10 Dec 2013 by Yuri Sagalov
Two weeks ago we officially released the AeroFS Private Cloud, a completely behind-your-firewall approach to file syncing and collaboration, to an overwhelmingly positive reception. Today I'd like to explain how we built it.
When we launched AeroFS from private beta this past April, we brought to market the idea that you don't have to give up your data privacy to enable syncing and collaboration in a BYOD world. The product we launched in April, the AeroFS Hybrid Cloud, allows businesses to sync and collaborate without ever having to trust us with their data, while managing their user accounts in the cloud. For many businesses, this solution is sufficient: They need to keep control over their data for compliance/security/IT policy reasons, but are happy to hand off the management piece.
At the same time, many larger businesses came to us with a stricter requirement: They need a file syncing and collaboration solution that never talks to our servers. With the help of products such as VMware and OpenStack, many companies are rolling out their own private cloud infrastructures and would like to provide better collaboration and syncing solutions on that infrastructure.
Traditional enterprise software is incredibly difficult to setup, maintain, and upgrade, often requiring companies to spend many hours and thousands of dollars on training. Installation often requires spending many hours on-site with customers, and dragging out the overall deployment cycle.
We decided that if we do provide an AeroFS Appliance, we’d need to set a few rules for ourselves:
In our own experience with software installation, dependency requirements can be an absolute nightmare and "simple" things like OS upgrades or third party package upgrades result in hours in lost productivity.
In order to minimize the amount of time our customers have to spend managing dependencies (and minimize our own time debugging various OS configurations) a black-box approach had to be taken. We will deliver the software as an appliance as a virtual machine with a completely pre-configured operating system. Since the behavior of VMware/VirtualBox/OpenStack is fairly predictable, we can be reasonably sure that if the user is able to boot the appliance, the software should work.
The installation step is the first time a user really interacts with your software, so it's important to get this step right.
As part of our black box approach, we do not want to expose the root shell to end-users to prevent inadvertent misconfiguration. This means that we need to get users out of the appliance console and into the web browser as early as possible.
The earliest possible opportunity to get the user into the browser is when their networking configuration is done, which is exactly what the AeroFS Appliance does. Once the appliance is booted, we expose a few ways to setup networking, and immediately ask the user to point their web browser at that IP.
Beyond that, the entire installation process can be done in five easy steps:
(Want to learn more about the setup process? Check out our quick install guide here)
One of the biggest problems with delivering software into a closed environment is encouraging people to upgrade. In the Hybrid Cloud model we perform upgrades automatically. Obviously, this is not possible when the software is deployed completely behind the corporate firewall, so we need a very simple upgrade path to encourage prompt upgrades and minimize downtime.
Since the software is delivered as an appliance, upgrades can be done in four quick steps:
An added benefit of this process is that if by some chance your upgrade goes awry, you can simply bring up your old instance, thus minimizing unexpected downtime.
AeroFS is a multi-component system. We have services that handle registration/authentication/etc., as well as client installable software that handle the day-to-day syncing operations of various devices.
One of the challenges that arise in such an environment is configuring each client to talk to the correct AeroFS Appliance.
Traditionally, users would have to configure settings manually, resulting in many unnecessary support requests and headaches for the end users. Occasionally, IT departments can pre-configure these settings through install scripts, but that is only viable in large IT organizations.
We wanted to take this pain out of both the users and the IT admins hands. This meant that we had to be able to repackage the software on the fly on the appliance itself.
During the last step of the AeroFS Appliance configuration, the Appliance takes the configuration parameters passed in by the admin and repackages the clients to only communicate with that appliance. Now, when an end user downloads/installs an AeroFS client from the appliance website they need to only specify their username and password, preserving the one-step setup process of the AeroFS Client!
Further, upgrades to the AeroFS Client are as seamless as before: Updated AeroFS Clients are delivered as part of the AeroFS Appliance, so when an IT administrator upgrades an AeroFS Appliance, the clients will automatically be upgraded as well, reducing the work required for the IT administrator.
An important piece in this entire process is our approach to security. An in-depth overview is available here, but we want to point out two important details:
The above work allows us to make a claim that's rarely possible in the enterprise world: In most cases, you can get the AeroFS Appliance up and running in five minutes. Really.
Don't believe us? Check out the demo below, or better yet, sign up for our free 30-day trial (no credit card required) and let us know what you think!