Automate and Scale Your App Deployment Using these 3 Tools

Vitor Pedro
Analytics Vidhya
Published in
2 min readApr 16, 2020

--

Photo by SpaceX on Unsplash

As a Software Engineer I love to build new apps, to think about the best possible solutions for each feature that needs to be implemented and to design their architecture in an optimised and maintainable way.

It’s just great to start building something from scratch and to see how that turns in our completed product. It turns out to be even better when you have a great team that can support you and help with fresh points of view and new ideas.

After this new piece of software is built, it’s time to deploy it to our customers. Although this is a very important task, I would like to spend the minimum time possible here, and get back to do what I do best: design and write new software products.

At YooniK most of our software solutions are available as REST APIs and a great part of them rely on deep learning models to process data and deliver the results. Therefore it is extremely important to make them scalable in a production environment.

These are the 3 tools we are using to deploy and scale our APIs:

1. Docker containers

By using Docker we can package an application and all its dependencies in a virtual container. This provides flexibility to run the software in multiple computing environments, such as in-premises, in a public cloud or in a private cloud. A Docker container image is a standalone package that includes everything that is needed to run an application.

2. Kubernetes clusters

After packaging our application, we set it up for deployment in a Kubernetes cluster. Kubernetes is an open source platform for automating deployment, scaling and management of containerized applications. In a production environment we need to manage the containers that run the applications and make sure that there is no downtime. All of this can me handled by Kubernetes.

Among other important features Kubernetes also provides service discovery, load balancing and automated rollouts and rollbacks.

3. Amazon EKS

Finally, after containerizing our software product with Docker and setting up the configuration files for Kubernetes, we are ready for deployment.

Amazon Elastic Kubernetes Service (EKS) offers a fully managed Kubernetes infrastructure that is secure, reliable and scalable. It’s a great way to get your app into production without worrying about security, availability and the need to scale with more computing power because we get all of this with EKS.

Thanks for reading, enjoy every moment of your day!

Originally published at www.vitorpedro.com.

--

--

Vitor Pedro
Analytics Vidhya

I am a software engineer that has been messing around with computers since I was 6. I have also a great interest in long term investing and personal finance.