How Jelastic deployed its platform on Microsoft Azure
We continue to talk about solution companies (ISVs) using the Microsoft Azure cloud. In this issue, we present the story of how this is done by Jelastic , a company developing DevOps PaaS with support for advanced orchestration of Docker containers. Says Dmitry Lazarenko, Business Development Director at Jelastic.
Jelastic is a universal cloud platform that combines the ability to use PaaS (platform as a service) and IaaS (infrastructure as a service). Using Jelastic, you can greatly simplify the development of cloud services by setting up your environment in Java, Ruby, Python, PHP and / or Node.JS in a few minutes and placing the project in this environment using plugins for Eclipse, NetBeans or IDEA. Last year, at the flagship Microsoft / build conference, support for Jelastic PaaS on Microsoft Azure platform resources was announced. About how it was, what it led to and how everything works from the technical and technological side, read under the cut.
At the moment, the “coupling” of Jelastic and Azure from the side of technological solutions is as follows - the platform interacts with Azure in two ways:
- You can install it entirely in Azure IaaS and get your own private cloud. At the same time, we use virtual machines, virtual networks and high-performance storage systems Azure.
- Computing resources from different regions of Azure can be connected to a private Jelastic cloud deployed in its own data center, and thereby get a hybrid cloud. This scenario is in demand when customers do not have enough in-house computing resources and adding additional constant capacities to their data center is impractical due to a variable load profile. For example, New Year’s sale or “Habraeffect”, which lasts only a few days, and then subsides. In this case, we connect new virtual machines from Azure dynamically and use them to scale applications. Through the use of containerized virtualization technology, Jelastic can migrate applications between the private cloud and Azure regions in live mode without stopping the application.
Both of the above solutions can be installed automatically from the Azure Marketplace, an affiliate solutions store available to Microsoft Azure users.
The history of autoscaling to the Azure public cloud is also very relevant among large customers. The Azure cloud, available in a large number of countries around the world, allows you to allocate the necessary resources as close as possible to the private data center of clients and, thereby, minimize network latency and time spent on data transfer. In addition, we integrated Azure Traffic Manager to enable highly accessible geo-balancing.
Now let's look at the technical component. The architecture of our solution is as follows - Jelastic will include a set of management services written in Java. These services include: orchestrator, security system, metrics collection system, billing, template pool management, etc. There is also a distributed entry point consisting of a reverse Nginx proxy server and a Bind domain name server. HTTP or TCP requests to end-user applications go through this entry point and are distributed to specific applications.
Jelastic users typically create environments with an architecture similar to the following:
- 2 Nginx servers for load balancing
- 2-4 Java application servers (Glassfish / Tomcat / Jboss) with http session data replication
- SQL DBMS with replication (PostgreSQL, MariaDB, Percona)
- NoSQL DBMS with replication (MongoDB, Redis, Cassandra, Neo4j)
During the deployment process, despite the fact that in general the deployment took place without any problems, we had to adapt the established application architecture to the Azure specifics in some ways, which we would like to share. At first, several problems arose:
- Slow performance of Azure Premium Storage on Linux. It turned out that this was the result of an incorrect file system block size, which was used by default. After we changed the block size from 63 to 4096, the performance of the Azure Premium Storage disk subsystem grew by several orders of magnitude.
- Strong filtering of network packets in virtual networks. This problem is relevant for us, because we use virtual containers distributed across several Azure virtual machines, and in fact Jelastic independently manages the internal network of containers. The problem was solved due to the creation of an overlay network that works according to our rules.
- Limitations on the number of external IP addresses that can be assigned to one virtual machine. At the moment, no more than 2 external IP addresses can be set for one VM. Because several virtual containers can work in one Azure VM, then they could need more than 3 IP addresses. The problem was solved by using reserved IP (Reserved IP).
By interacting with Microsoft Azure and providing our platform through the Azure Marketplace, we have several goals:
- Increasing the number of large customers interested in PaaS for Java and other Open Source technologies on top of Microsoft Azure
- Jelastic and Microsoft launch joint sales to corporate customers, including the international market
At the moment, there are already some excellent results:
- Several international companies are interested in our solution on Azure
- Our solution was promoted as part of the Go-to-Market accelerator startup support program . In particular, this program included promotion through the blog and Microsoft Twitter, a success story on the Microsoft resource and a grant for an advertising campaign. Our decision on the basis of Azure became interested in one large oil and gas company in Latin America. This was preceded by a lot of collaboration with Microsoft in Brazil.
There are positive aspects to using Azure, as the platform has given us the opportunity to greatly simplify and speed up the installation of Jelastic for the end user. Previously, this process took several days and required the involvement of our deployment engineers. Now, with the help of the Azure Marketplace, a client can independently deploy an isolated Jelastic cluster and this will take only half an hour. If we talk about how we did it, how we moved, then there was no transition as such: with the help of Azure and the Azure Marketplace, we simplified and accelerated the installation of the product, while leaving alternative options. It took about a month and a half of work of our developers and deployment engineers to create a solution for the Azure Marketplace, but these costs paid off after 3-4 months.
A detailed guide on how to use Jelastic on Azure is available on the Jelastic website .