Book Image

Building and Delivering Microservices on AWS

By : Amar Deep Singh
4 (1)
Book Image

Building and Delivering Microservices on AWS

4 (1)
By: Amar Deep Singh

Overview of this book

Reliable automation is crucial for any code change going into production. A release pipeline enables you to deliver features for your users efficiently and promptly. AWS CodePipeline, with its powerful integration and automation capabilities of building, testing, and deployment, offers a unique solution to common software delivery issues such as outages during deployment, a lack of standard delivery mechanisms, and challenges faced in creating sustainable pipelines. You’ll begin by developing a Java microservice and using AWS services such as CodeCommit, CodeArtifact, and CodeGuru to manage and review the source code. You’ll then learn to use the AWS CodeBuild service to build code and deploy it to AWS infrastructure and container services using the CodeDeploy service. As you advance, you’ll find out how to provision cloud infrastructure using CloudFormation templates and Terraform. The concluding chapters will show you how to combine all these AWS services to create a reliable and automated CodePipeline for delivering microservices from source code check-in to deployment without any downtime. Finally, you’ll discover how to integrate AWS CodePipeline with third-party services such as Bitbucket, Blazemeter, Snyk, and Jenkins. By the end of this microservices book, you’ll have gained the hands-on skills to build release pipelines for your applications.
Table of Contents (21 chapters)
1
Part 1: Pre-Plan the Pipeline
6
Part 2: Build the Pipeline
11
Part 3: Deploying the Pipeline

What is ECS?

We discussed in the previous section that running and managing smaller workloads is easy, but when workload sizes increase, maintenance becomes a challenge. Keeping track of all the available servers in a cluster and ensuring the available capacity, server health, resource utilization, and container placement is likely to become a headache.

To solve the challenges mentioned here, you need an orchestrator, which takes care of these issues for you. Amazon ECS is a fully managed container orchestration service that allows you to quickly deploy, manage, and scale containers in the cloud, providing the necessary tooling to manage both the containers and infrastructure. In order to understand ECS better, we need to first discuss a few related concepts of clusters, services, tasks, and task definitions.

Task definitions

In ECS, a task definition describes your application containers and their configuration. The task definition is a file in JSON format that works like...