If you’ve ever had to deploy an application in the cloud, then you know the pain of cloud infrastructure, whether that is AWS, Azure, or Google Cloud.

The process is not only manual and tedious, but also time consuming. While there are some solutions like CloudFormation and Terraform, it’s very painful to write and deploy these scripts. You now have to maintain more code just to deploy your application in the cloud. At Oatfin, we’ve been working on solutions to make cloud infrastructure painless.

As a software engineer, I have always wondered why the cloud has to be so painful. Why can’t I push a button and have my application be deployed on AWS for example? And once I’ve deployed my application, why is it so hard to scale, secure, and monitor it? This should not be so hard in the modern world of web applications, but it is.

Oatfin enables companies to deliver cloud applications faster by helping transition from manual processes to self-service automation. Our app empowers teams to deploy, monitor, scale, and secure their apps quickly without having to write manual scripts that can take weeks. In addition, it also has many features to help a developer get code live in production and testing as well as zero downtime updates and one-click rollback using versioning.

How Oatfin Works

We are in the process of automating more, but right now the app first creates build artifacts and pushes them to S3 or a docker registry (Gitlab, Github, or Amazon’s Elastic Container Registry, ECR) in the case of docker containers. This works with the front-end and back-end APIs. In the case of front-end, we can either push the generated code to CloudFront or create a docker container with standard Apache/Nginx to serve the files.

We currently have a demo API using python with flask and celery, which uses Gitlab pipelines to create multiple containers. We’re working on providing more examples for other frameworks.

Users can also define docker images using the app:

Add a container image

Here we see the list of containers:

Container images

Once a container is added, a user can then create a cloud infrastructure application and deploy it on AWS for example in less than ten seconds.

To create an infrastructure, a user specifies the name, description, a virtual private cloud (VPC), the type of infrastructure, and finally the container image to deploy.

The app creates the underlying infrastructure which includes two security groups, a load balancer, a target group, an auto-scale policy, a log group, an ECS cluster, a service, and a task definition.

Create application infrastructure

The final step is to deploy the app. As part of deploying the app, the final step is to run the task. That’s all! The app is now scalable, secure with logging and monitoring.

Deploying an application infrastructure

Here we see the list of infrastructures we’ve created

List of application infrastructures