Shifting towards future
The Engine Yard platform has been using AWS EC2 instances in order to host your applications. Clusters of EC2 instances forming environments, with each instance having its own role, had been the foundation for your applications to run. With the inherent pros and cons of the instances, there has been always a try to streamline configuration and make deployments a breeze. Chef recipes for configuration and fine tuning of the installed software, along with scripts and gems have been leveraged in order to customize the machines and deploy your code on them.
While the above has been proven to work just fine, the industry is heading towards a more abstract way of utilizing resources and giving the applications the space to grow and succeed. The broad adoption of the 12 Factor Apps principles has changes the way that software is getting built and deployed, by giving the required tools to the developers and taking away the pain of operations and infrastructure configuration and maintenance.
The Engine Yard Kontainers is a brand new platform designed to simplify your applications' deployments and scaling. Built on top of Kubernetes it gives you the exotic features that every successful application craves: simple deployments with no downtime and scaling within seconds. Along with Kibana and Grafana it is a complete platform that simplifies your applications' operations and monitoring.
By using Engine Yard Kontainers you will get instance access to all the tools that you will need for your applications:
- a cli tool for deployment and configuration of your applications
- Kibana for log aggregation
- Grafana for monitoring and alerting
All the above live within your private and isolated account, which means that you share no resources with anyone. This is a unique feature in terms of security and compliance.
On the Shoulders of Giants
Engine Yard Kontainers combines the exceptional services of AWS with the battle tested Kubernetes orchestration system in order to provide the platform that handles the deployment and growth of your applications. It handles the resource management, logging and monitoring for your applications, but also gives you the freedom of specifying the running environment of your applications (Linux distribution and packages) along with the processes that your applications consists of (e.g. webserver, sidekiq).
Commit, Deploy, Scale
With Engine Yard Kontainers the deployment of an application has never been easier. Write your code, commit your changes and just git push to the Kontainers remote repository. Based on your Dockerfile, an image will be built and the containers that will run your application will be deployed. Since in Engine Yard Kontainers all deployments are rolling, this means no downtime during deployments. Scaling is also supported out of the box. Based on cpu, memory or even custom business rules, you can set the autoscaling policy that make your application ready to serve an increased number of requests, whenever this is needed.
Migrate from EYCloud to Kontainers without code changes
Going from EYCloud to Kontainers is just a matter of adding 2 files in your existing repository. That's it. No code changes are required. Since in the rails applications all processes are described in the same codebase, adding just a Dockerfile that describes the desired running environment and a Procfile that summarizes the needed processes, will make your application ready for deployment on Engine Yard Kontainers.