Capstone Project: Framework to Build and Deploy Applications using Webservices

Capstone Project: Framework to Build and Deploy Applications using Webservices

Problem Statement:

With growing competition across various industries the need to launch new products or enhance existing products quicker in the market has never been greater and the ability of companies to scale based on business determines how relevant they are with their peers or else they will start to fall behind and lose business. Hence, companies, especially in the IT industry are seeking ways to optimize processes that bring development and operations teams together to allow faster cycles of development and scalability.

Below is a simple breakdown of how companies are spending time and money in various phases of a product/application launch.

The above numbers are based on an internal analysis of few projects.

As shown in red, in the pie chart above companies are not only investing almost half of their budget but also losing time and competition because of Infrastructure setup and Maintenance. Hence, the need to optimize/streamline these steps.

Objective: To create a platform/framework that can be used to build, test, deploy and operate docker applications at scale using AWS.

Proposed Solution: 

The proposal is to create a platform that can be used to build, test, deploy and operate docker applications at scale using AWS. The solution will offer a framework that will simplify building of infrastructure at a click of a button and automate maintenance and scaling based on volumes.

Using Docker and Amazon Web Services, using these two technologies we intent to create a powerful framework and toolset that can be used for building deploying, testing and operating any application.

High level steps involved are – 

Step 1 – Building a sample application (we used an open source microservice application to implement this framework).
Building a Web Application using Microservices based architecture and deploy to staging environment using docker images and native AWS CI/CD tools/services.

Step 2 – Deploying required foundational resources
Next, we will use this framework to deploy foundational resources in your AWS account, ElasticC2 container registry, Virtual Private Cloud (VPC) networking resources, and an HTTP proxy service that secures outbound communication for your applications.

Step 3 – Building the Infrastructure
Ansible and CloudFormation will be leveraged to create a generic tool chain for deploying any Docker applications or any cloud service using a fully automated, infrastructure as code.

Step 4 – Operations
Finally, we will extend CloudFormation to perform custom provisioning tasks using AWS Lambda functions, how to securely manage and inject secrets into Docker applications and supporting resources.

Architecture: