Business need
The main idea of this project was to create a solution that will help to schedule working periods for virtual machines in different cloud computing providers in an easy and simple way. One of the main concepts is to allow different users to share images and groups of images used for virtual machines creation between them and charge them for usage. Also, the application should provide API’s for integration with different company applications to provide with the usage charging system.
Solution
We have developed an application which works over AWS Elastic Beanstalk and uses Redis for synchronization of distributed resources. The application supports three cloud providers and provides a common interface for work. The app has a huge potential to raise the quantity of all the providers. What is more, it supports intelligent scheduling system. In the future, a system of reports on the resources used will be added.
Our customer is the company from California, that already has been working in eLearning sphere for 15 years. If at the beginning it was just a start-up, that later has turned into a big and successful company that operates around the US and Europe. Most of their projects are in the sphere of training and eLearning, and among their clients are such giants as Google and Microsoft.
- To develop software that supports at least 3 providers on initial stage: AWS, GCP, Azure.
- To develop complex mechanism-scheduler that allows controlling virtual machines working periods in groups and directly.
- To develop billing system that considers all application-related cases like charging in subscription mode, charging in per-use mode, both cases together.
- To develop HA application, that works on distributed cluster.
To develop an application that will be tightly integrated into the clients’ ecosystem. - To configure the environment (networks (according to RFC1918), subnets, firewall rule, the interaction between networks and subnets, the ability to set a static IP address to virtual machines.
The application, developed by Softarex Technologies, Inc. made the communication between users easier and now can boast with:
- simultaneous support of AWS, GCP, and Azure providers;
incredible flexibility in use; - exceptionally high speed of operations;
- better interaction of products among themselves;
- for these subscriptions, there are cost schedules in the form of bar chart, basic and line charts;
- the time of the configuration of the environment was reduced directly on the cloud provider;
- now it became possible to quickly configure any complex system, in just a couple of clicks.
Technologies
- Java 1.8
- AWS
- Spring Boot
- Spring Security
- Spring data
- Spring retry
- Hibernate
- Azure
- GCP
- Quartz
- Redis
- PostgreSQL
- AngularJS 1.5
- Swagger
- Recurly
- Docker