From a Monolithic Single Instance Server to Microservices Freedom
Our phenomenal hosting partner in Sweden Elastx easy:PaaS was courting a new client, Björn Lundén (BL). They were stuck with a hosting partner that only offered monolithic single instance virtual servers, with a set and static number of preferences.
BL needed scaling options, as their number of users grew and they needed the ability to scale separate components of their app. After meetings with the Elastx team, they were introduced to the benefits of microservices, and the freedom to innovate and optimize within the Jelastic platform.
A monolithic application is where all of the required logic is located within one ‘unit’ (a war, a jar, a single application, one repository). The design philosophy is that the application is responsible not just for a particular task, but perform every step needed to complete a particular function.
Microservices is a software architecture design pattern, in which complex applications are composed of small, independent processes communicating with each other. These services are small, highly decoupled and focus on doing a small task.
In Jelastic each environment within a large, complex and enterprise-ready application represents a service that can be scaled, configured and monitored separately. And if any change is required in the project, it can be easily made in the specific service without any need to rebuild and redeploy the entire application (as it is demanded in monolithic apps). With such structure, the application can even be managed by different teams, when each is responsible only for a certain part.
Key aspects of microservices are:
- They do one thing or are responsible for one functionality
- Each microservice can be built by any set of tools or languages since each is independent from others
- They are truly loosely coupled since each microservice is physically separated from others
- Relative independence between different teams developing different microservices
- Easier testing and continuous delivery or deployment
Enter Elastx easy:PaaS powered by Jelastic. Clusterization. Cloud-in-a-box.
Henry Arousell from Björn Lundén chatted with us about the transition to the platform and the benefits of microservices for continuous scalable deployments.
Tell us about Björn Lundén
Björn Lundén Information AB started started in 1987 as a book publishing company specializing in books about law and economics. We make hard-to-understand- things easy. The company also does lectures on these subjects.
The last 15 or so years, we have also added software to our line of products and services and the last 3 years we have offered the product BL Ekonomi. It is a service, offered as a subscription (per month/year) that allows the user to manage their small business accounting and invoicing needs.
How many total users do you have currently?
We have about 11,200 licences out of which about 3,600 are active users on a regular basis, that all in all use about 31,500 databases.
What was the challenge you faced?
Well, many. But certainly one of the hardest was to find a reliable partner that, not only shared our view of QOS (quality of service), but also had the platform and know how to implement it. For us as mainly a developer organisation, finding a partner that complimented us with server and production environment expertise was paramount.
What was the solution?
The server side of the application runs on top of two Elastx easy:PaaS/Jelastic environments:
- one with NGINX on top of two tomcat nodes that powers the actual application, written in Java 7
- the other one is a massive MySQL server that runs more than 31500 organisation databases
Why Jelastic/Elastx easy:PaaS?
We met the Elastx crew at Sweden’s biggest Java developer conference Jfokus and kind of took it from there. At the time we were in big need of help with scaling and we were in a situation with a partner that only offered monolithic single instance virtual servers with a set and static number of preferences, which made it very difficult for us to scale as the number of users grew.
When we saw the Jelastic console we were blown away. As our software organisation consists mainly of developers, we immediately wanted to get our hands on such an intuitive tool. Not only for our production needs put for a multitude of testing and laboratory level stuff. I know it might sound cheesy, but we really were in awe.
How have you set up your environment?
On March 25, 2015, our Tomcat environment look like this:
And the environment running MySQL looks like this:
What were the results when you switched to Elastx easy:PaaS?
The biggest difference in our daily life is probably accessibility to the production environment. We now have access to logs and servers statistics at the tip of our fingertips. No longer do we have to contact a guy at the server center and ask him for such info.
No, wait, the biggest difference is that as we’ve watched our product grow in customer popularity and the demand for more server power that comes along with that, we have been able to increase this very easily ourselves.
What was the cost difference?
That is really hard to say since we have grown tremendously since switching to Elastx easy:PaaS. But it’s safe to say that it is better than before since we paid a flat rate for our virtual servers, regardless of usage or load.
Did you see a performance increase?
Yes. Very much so. It is hard to say exactly how much time was saved and to us it wasn’t really the unique selling proposition we were looking for. The biggest difference was that we are now able to purchase the correct amount of computing power. With a static server setup, we would either have too little power, or to have enough, we would have to pay such amounts of money that it killed the business case. When we know the alternative, it’s really hard to understand that a 24/7/365 flat rate was ever considered a reasonable arrangement.
But, of course. being able to purchase the right amount of power when needed has enabled us to provide a much better customer experience at an affordable price!
Highlights of using the platform
Well, the BL Ekonomi server core is, in itself, a monolithic design. As it happens though, we are in the process of adding to it a series of microservices to add new and extended features. In this process we are involving the people at Elastx to help us find the optimal solution for providing a smooth continuous integration environment to the developers.
Shortest time to implementation compared to other providers or solutions you have tested or used in the past?
When first releasing on the Elastx/Jelastic platform, we did a one or two day workshop with the guys at Elastx to show them our product and set it up correctly leveraging all the new possibilities of load balancing and having separated the Tomcat and MySQL nodes from the previous production setup. As easy as pie.
Microservices are, in a way, return to basics with simple applications that are fulfilling today’s needs for complexity by working together through utilization of each others APIs.
The container system in the Jelastic Cloud goes hand in hand with the microservice architecture pattern. One of the recent technologies underlying microservices is Docker, a technology for packaging applications and deploying them in containers. Be sure to try it out with 14-day free trial and comment below about your experience with Jelastic.