Our Entire application stack is containerized
“We had more than 100 plus microservice based applications running on traditional VMs. Deploying and rolling back was a pain before we got it containerised. We have an identical containerised setup running on AWS ECS. Thanks to the team at Dascase ”
— Director of Engineering
What are Containers?
Well the name itself is taken from the shipping industry. The content inside the container does not matter at all, it can be transported on a truck, on a train or a ship. Exactly similar to the shipping container, an application container is nothing but a packaged software. Similar to real world containers, the software container can be shipped to other places and executed in totally different platforms.
Its not a new technology per se. Its been around for over a decade now. Almost all big boys like Google runs their core applications on millions of containers.
Containers solves the problem of “why it worked perfectly in QA but not in PROD”.
The most important fact to note here is this. A container has all the required dependencies for the application to function properly. Nothing more nothing less. Unlike virtualisation, containers are extremely light weight.
What is Docker?
Docker is nothing but a user friendly software/API to communicate with the operating system, in building isolated containers. Basically containers are built using the kernel features like Cgroup, Namespaces and such. Docker provides a user friendly mechanism to build, run and ship containers.
Docker has an excellent api for creating and shipping images. This is the killer feature which made people adopt Docker at the scale that we are seeing today.
Who is using Containers?
Almost all major companies are running their workloads on containers. Be it the big giants like Google, Netflix, Amazon, or the startups.
Companies like datadog conducted survey and provided some deep insights into container adoption by companies and the rate at which its currently changing.
What’s in it for you?
As the container images are carefully built and follows the bare minimum requirement compared to a virtual machine, the possible attack vectors are less.
One of the biggest advantage of docker containers is that it ensures consistency across different platforms and environments. It provides repeatable development, test and production environments. This helps in achieving production parity environment across the board.
One of the biggest advantage of using containers is parity. This means no matter what, you run the same image everywhere. Be it the developers laptop/ or a customer’s production environment. Your developers will have more time for important stuff, because setting up an environment using docker is a cake walk.
Super Fast Deployments
You can deploy within seconds. Yes that’s right. This is because you are building your application and not an operating system with your application(which is the case in traditional virtualisation). Hence the time taken to pull down the new application image and replacing an existing one is in seconds.
One of the biggest advantage of docker is portability. Almost all major public cloud service providers have their own solutions for running large number of containers. The bottom line is this. If the underlying host OS supports docker, it can work in any platform. Migrating your application from say Google Cloud to AWS will be super easy as only the underlying platform changes.
Docker ensures that your application only has access to its own space and resources. Each container is isolated and segregated. Docker also ensures that each application only uses resources that have been assigned to them. A particular application won’t use all of your available resources, which would normally lead to performance degradation or complete downtime for other applications.
Kubernetes is one of the highly used orchestration platform for running containers at large scale. Its a battle-tested open source solution for orchestrating containers. It is nothing but a software layer that sits on top of your infrastructure (both bare metal and virtualised).
The Search giant Google, open sourced Kubernetes in 2014. Kubernetes provides the following out of the box.
- Automatic Rollouts and Rollbacks. Yes that’s right, if your latest version is not working, kubernetes will happily rollback to the previous working version without any extra effort on your side.
- Self Healing. If your container health check fails, kubernetes will try and replace it with a new one.
- Service Discovery & Load Balancing. As containers can be scheduled on any available node, discovering it and registering behind a service is automagically done by kubernetes.
If you are looking to migrate your microservice based architecture to kubernetes orchestration platform, we can help you to reach that goal.
Rolling back to a previous version was a night mare before we migrated to kubernetes. Thanks to the automation team at Dascase.
ECS(Elastic Container Service), is a managed service offering from AWS. If you have substantial workloads of different applications in AWS Cloud, containerising it and running it in ECS makes perfect sense. One of the main advantages of ECS is the fact that there is no additional cost associated with it.
One of the best thing about ECS is that you have an option to only pay for the container resources. Basically you can choose to run just containers without any virtual machine management overhead at all.
Schedule a call with us to discuss your migration plan for running your workloads on ECS.
RedHat openshift is an enterprise offering to orchestrate containers in a secure manner. Enterprises worried about security and more compliance often selects OpenShift over Kubernetes. OpenShift is built on top of kubernetes, so the API semantics and other specifics will be similar. Well in short, call it as “Enterprise Kubernetes”.
We can help migrate your enterprise applications to RedHat OpenShift
Rollback was a night mare before Dascase engineers migrated our workloads to kubernetes based platform.