Case Study / Mobitor
Director of Development at Mobitor
Case Study Highlights
Previously, Mobitor was hosting development and test environments on premise. The lack of capacity was slowing down development and impacting the ability for Mobitor to be agile.
Today Mobitor uses Ravello to run two semi-permanent clones of its production environment in the public cloud: one for QA and one for Development.
Mobitor plans to use Ravello's self-service portal to allow developers and QA engineers to spin up replicas of production on demand.
Mobitor is a leading provider of mobile-first B2B solutions. Its product portfolio consists of the StoreX product, a demand chain solution for the Retail and Consumer Packaged Goods industries, and the SOPIC product, a logistics solution for the medical device industry. Both products are cloud-based and offered by Mobitor under a Software-as-a-Service model.
Mobitor's customer list sports impressive names such as Johnson & Johnson, Safeway Inc., and Kaiser Permanente.
Overview of the StoreX Architecture
StoreX is Mobitor's most recent product. The application architecture is a multi-tier service oriented architecture running on the Microsoft platform. The components inside the architecture communicate via a central service bus that is managed by a broker. The application tiers are formed by the load balancer, application servers, and database. The illustration below contains a schematic representation of the architecture.
In the back end, the Mobitor solutions integrate with Enterprise Resource Planning software from vendors such as Oracle and SAP.
The production instances of both StoreX and SOPIC are hosted in multiple hosting facilities across the USA.
Introducing Ravello at Mobitor
Previously, Mobitor was hosting development and test environments in its offices in Walnut Creek, CA. Luke Hartsuyker, Director of Development at Mobitor, describes the situation as follows: "We often ran out of capacity. People used to send out emails to everybody in the office, asking if a certain environment could be deleted to free up space. It usually took a few days before the resources could be made available and a new environment spun up."
The lack of capacity was slowing down development and impacting the ability for Mobitor to be agile. After an evaluation of possible options, Mobitor decided to do a proof of concept with Ravello.
Luke Hartsuyker explains: "I have a lot of experience with cloud infrastructure from previous roles, so moving our dev and test to a public infrastructure cloud was the first option we considered. What is often overlooked though is that developing automation is a proper development task, which, especially on the Windows platform, is not that easy. I did not want to hire a full time DevOps person to take care of this. With Ravello, we get 'Automatic Automation'. We simply uploaded our Hyper-V based machines, configured them the way we want, and created a "blueprint". The blueprint is a full-environment snapshot of an entire multi-VM application stack. Creating a new instance of our stack from the blueprint is literally two clicks in the GUI or two API calls. No error prone automation code is required."
Details of the Ravello Solution
Today Mobitor uses Ravello to run two semi-permanent clones of its production environment: one for QA and one for Development. In Ravello terminology, these environments are called multi-VM applications or simply "applications".
The two applications are powered on during the work week and are shut down in the weekends. Each application is a scaled down replica of production, and consists of 13 virtual machines. The virtual machines include a Microsoft SQLServer, two Web Servers, two Mobile Gateways, two CouchDB servers and a few other VMs running various management tasks. Authentication is provided by an Active Directory domain controller that is running inside the application. All Windows servers are joined to this domain, so authentication works consistently across all VMs. The application also contains a Linux based load balancer.
Developers and QA engineers access the applications through a VPN (Virtual Private Network). For this purpose, a Windows 2012 server with the VPN role is also part of the application. The VPN access allows users to get a local IP address on the private software defined network that connects together all VMs that make up the application. This makes it unnecessary to open up each VM to the public Internet; opening up just the VPN end point is sufficient. This setup also allows users to address each VM by its short DNS name, such as "appserver" or "database". This is considerable more developer friendly than using long Internet domain names of the cloud provider, that also change every time an application is restarted.
Updated software versions are pushed into the app servers by the developers directly from within Microsoft Visual Studio. If developers need to access a console, they can use a remote desktop connection.
Mobitor is currently implementing Continuous Integration, and plans to use Ravello as a key component in the implementation. In CI, every change to a software program is automatically tested using an automated test suite. When using Ravello, these tests can be run in a replica of the production environment, making the test results much more reliable. Also, it is possible to keep the test environment around in case a test failed. This makes it easier for a developer to investigate, reproduce and fix the error.
In addition to implementing CI, Mobitor will shortly do a project to consolidate the SOPIC platform onto the StoreX architecture. Mobitor plans to use Ravello for this project as well. During the project, there is a greatly increased need for development and test environments, but that demand will cease to exist after the project is done. A cloud-based solution like Ravello is ideal in this situation because you only pay for what you use.
Finally, Mobitor plans to use Ravello's self-service portal to allow developers and QA engineers to spin up replicas of production on demand. This allows each developer to have their own environment. Doing this in an on-premise model would be prohibitively expensive, as the demand for these environments is very bursty, and can be highly correlated (in case of e.g. deadlines that have to be met to ship new releases). Also here, a pay for what you use model makes a lot of sense financially.
About Ravello Systems
Ravello is the industry's leading nested virtualization and software defined networking service. It enables enterprises to encapsulate their complex VMware workloads and clone them in AWS without making any changes. Now enterprises can spin up development, test, UAT and staging environments on demand and significantly increase agility. Ravello is built by the same team that developed the KVM hypervisor in Linux.