This blog presents a high level reference architecture for using Resilio Connect to deploy a Distributed Game Build / Binary Repository in an all-on-premises or hybrid cloud deployment. The reference architecture should simplify getting started with Resilio Connect.
During the course of software development it is necessary to maintain a history of builds and make these builds readily available to development teams wherever they are. Having a fast, and scalable repository improves the efficiency of the development process.
One of the cool things about Resilio is that devops teams at gaming companies are able to use existing IT infrastructure (both software and hardware) to build a distributed binary repository. The solution is cross platform. On the client side, Resilio offers agents for Windows, Mac, and Linux. On the server side, devops teams can use existing storage, version control systems, and continuous integration and development (CI/CD) frameworks.
Architecturally, the scenarios for this repository could be physically centralized or distributed across multiple sites and/or cloud regions. The goal is to create a cohesive, fluidly scalable, fast, and efficient build storage and distribution system, using storage you already own or want to obtain. A key value point is that this design is built on open systems (and file formats) and your choice of infrastructure (on-premise or cloud). The end result will be an easy to use, fast and efficient way to store, sync, and distribute builds at near wire speed and the lowest cost possible.
Build Repository, Starting Points
One of the first steps in using Resilio Connect to support your game build repository is deciding on an architecture. Where will the builds be stored? Centrally or will the repository need to be distributed across multiple sites? Will one of the sites use the cloud?
Whichever architecture your company decides on, it’s important to allocate high performance scalable storage to the build repository. Resilio supports pretty much any type of storage but recommends using fast storage to store the build’s binary files.
Cloud object storage is well-suited to storing builds long-term at low cost. Resilio supports a variety of popular cloud storage offerings out of the box (Amazon S3, GCP, Azure Files and Blobs). Resilio also supports S3-compatible solutions like Wasabi, Backblaze, Cloudian, and the IBM Cloud. Other high performance file-based solutions such as Azure NetApp Files and AWS FSX can be used as well, when mounted from Windows and Linux.
The architecture described in this blog supports either an all-on-premise model or hybrid cloud. There can be any number of sites. The picture above depicts 2 sites, LA and NY, while incorporating a centralized cloud storage repository (AWS S3) used for long-term build storage.
Adding storage on-prem or in another region will ensure high availability and eliminate down time for the development teams. Using a p2p architecture like Resilio’s makes it easy to replicate data across multiple sites.
Using the cloud over the long-term will also help free up capacity on on-premise storage. Using the cloud for long-term storage and archiving will likely be a serious consideration for many gaming companies. The ability to scale capacity on-demand and at low-cost is unprecedented.
That said, part of the challenge using cloud storage is minimizing egress fees. Resilio’s solution gives customers a way to have all builds stored in the cloud (using your cloud provider of choice) yet provide access to builds on-demand, or via policy, using the Resilio Connect Storage Gateway (RCGW). This makes efficient use of on-premise storage–and minimizes the amount of data that needs to be pulled down (downloaded) from the cloud.
Trade-offs – On-premise vs. Cloud Repo
Resilio Connect complements your company’s investments in servers, storage, and networks. Resilio Connect gives you the flexibility to use any type of IT infrastructure, any type of storage.
A larger question is when to use the cloud in combination with on-prem. There are numerous pros and cons. The following table describes a few, but your IT team may be better suited to understanding and communicating these in the context of your company’s goals.
|Resilio Deployment Model||Pros||Cons|
|On-premise only||Efficiently move data across the organization|
Leverage existing IT infrastructure (Servers, Storage, Network, Software).
Incorporate any number of sites
Move data freely in any direction (one-way, two-way, multi-directional, full mesh).
Lower cost than cloud if recurring two-way data movement is required (i.e., data egress).
Leverage IT best practices and methods.
|Scalability dependencies and/or constraints on IT infrastructure architecture or resources.|
CAPEX if new resources are required
|Hybrid or Multi-cloud||Low-cost long-term storage.|
Minimizes operating costs (OPEX).
Minimizes capital costs with pay-as-you go model.
Scales capacity non-disruptively in near real-time
|Egress fees associated with retrieving or migrating data.|
Using cloud may require other stakeholders across organization
Resilio Connect Storage Gateway
In support of both the on-premise and hybrid cloud model, Resilio offers a software-only Resilio Connect Cloud Storage Gateway (RCGW). The gateway requires a Resilio Agent that runs on Windows Server (either physical or virtual). The gateway acts as an efficient, transparent, policy-driven storage cache. The gateway enables customers to efficiently retrieve builds on-demand and cache them locally. The remote storage could be hosted pretty much anywhere: in cloud object storage or another on-premise facility.
In this scenario, a dedicated Windows Server (or HA cluster) will be used as a storage gateway running Resilio Connect. The gateway will serve as a smart cache for all of the builds.
Access Scenarios & Use Cases
There are two primary data access scenarios for the distributed build repository: Users accessing builds in the office (full- or part-time) or remote access (e.g., work from home).
Accessing builds in the office
A key capability of this gateway is transparent selective sync (TSS). Through TSS, builds can be made available locally to the office or directly to end users. TSS effectively gives your company a way to browse remote build files before downloading them. The storage is shared just like it would be on a standard Windows Server deployment–through UNC shares or your existing DFS namespace.
The folder storing the builds will be shared to the office employees via a standard UNC path, using the SMB file sharing protocol.
This may be mapped to a named server:
Or via a drive mapping:
Or DFS namespace:
For standard Windows file sharing, your IT team may already have this setup. In this scenario, users won’t need to install anything or change the way they access builds from a local UNC share. They can either mount the UNC share, map a drive, or browse to the share using Active Directory. This works great for users in the office or with high speed, low latency access to the office LAN.
When users browse the file share, they will see all of the builds currently available in the repository. From the user perspective, all of the builds appear to be stored locally, even those that are not locally in the cache. Some builds will already be downloaded and synchronized in the local cache; other builds could be stored remotely in the long-term build Repository. One point to note: Browsing files will not trigger the build to download; only an explicit action such as opening or copying the build file will trigger the actual build download.
Work from home
The COVID pandemic continues to change the way the world works and many of us will be working from home for quite some time. Remote users need a reliable and predictable way to get the data they need from home or other remote locations. One challenge with home networks and many long-distance remote networks is that the connections are slow, unreliable, and suffer from high latency compared to the office network. Accessing files remotely using VPN and SMB doesn’t work well for large files.
In these situations, Resilio offers a Resilio Connect Agent. When using a Resilio Connect agent to work remotely, end-users are able to view and browse all of the available builds directly on the remote storage. Much like the gateway model, this provides a highly efficient way for users to determine which builds they need to access before downloading them. Moreover, the builds (and other data) can be purged at the edge to free up storage space, while being stored for the long-term on lower cost, centralized storage to minimize costs.
In either scenario, the first person who requests a build that is not in a local cache will trigger a build download from the build store (cloud or another office). When used over a WAN, Resilio Connect uses its own native WAN-optimized protocol. The Resilio protocol ensures fast delivery of the build file over the WAN in a way that overcomes latency and unreliability.
In both the remote work and in-office access scenarios, Resilio Connect will convert actual builds to a placeholder after a specific period of time, so you could limit the amount of storage used for local caching. The Resilio Connect agent can be configured to purge/delete the local cache based on a policy. For example, if certain builds have not been accessed in 30 days, then delete only the local copy. This saves storage space on the local server and keeps the remote copy available in object storage or another storage platform.
In summary, what’s really cool about this distributed artifact repository is the following:
- Gives users an easy and familiar way to browse remote files on any type of storage without having to download the complete file; only the metadata of the file is captured.
- Builds can be stored on a platform of your choice.
- Fast access to builds; as fast as your network allows.
- The on-demand sync mechanism is transparent to your toolchain. From the operating system point of view, the file appears local.
- Simplicity: The solution is easy to set up and deploy.
- Policy-driven: Policies can be set to manage the cache on storage gateways and end-points.
- By using object storage, devops benefits from unlimited versioning in the cloud
Speed-up Data Movement Globally
Resilio Connect uses various techniques to move files faster.
- WAN optimized, UDP-based transport protocol overcomes high latency and packet loss to provide maximum throughput over any network.
- Resilio’s peer-to-peer architecture downloads builds—not only from the central build repository, but from any available endpoint—such as other offices or even desktops.
- Block-level retransmission guarantees that in case of any connection interruption the transfer will resume from the point of failure.
- Differential sync engine minimizes the amount of data that needs to be transferred. When updating a file or a folder, only the changes will be transferred.
In this blog we presented how modern gaming companies can use Resilio Connect to develop a fluidly scalable, efficient, and fast Distributed Game Build Repository. The Resilio solution provides fast and efficient access to build data, enables companies to incorporate cloud storage on their own terms, and ultimately reduces the cost of storing and distributing data to game contributors and developers across the organization. Moreover, the solution enables customers to better utilize existing infrastructure—in some cases without a single change to your existing infrastructure—and pivot to enable workers to efficiently and securely work remotely, from home or in the office part time.