Microservice
Microservice
3.3: Create working directories with starter code for the two microservices
3.4: Create a Git repository for the microservices code and push the code to CodeCommit
4: Configuring the application as two microservices and testing them in Docker containers
4.3: Create the customer microservice Dockerfile and launch a test container
4.5: Create the employee microservice Dockerfile and launch a test container
4.6: Adjust the employee microservice port and rebuild the image
5.4: Create definition files for each microservice and register them with Amazon ECS
6.2: Create a security group and an Application Load Balancer, and configure rules to route traffic
7.2: Create the Amazon ECS service for the employee microservice
8.6: Observe how CodeDeploy modified the load balancer listener rules
9.2: Adjust the UI for the employee microservice and push the updated image to Amazon ECR
9.3: Confirm that the employee pipeline ran and the microservice was updated
In this project, you’re challenged to use at least 11 AWS offerings, including some that might be new to
you, to build a microservices and continuous integration and continuous development (CI/CD) solution.
Throughout various AWS Academy courses, you have completed hands-on labs. You have used different
AWS services and features to build a variety of solutions.
In many parts of the project, step-by-step guidance is not provided. This is intentional. These specific
sections of the project are meant to challenge you to practice skills that you have acquired throughout
your learning experiences prior to this project. In some cases, you might be challenged to use resources
to independently learn new skills.
This environment is long lived. When the session timer runs to 0:00, the session will end, but any data
and resources that you created in the AWS account will be retained. If you later launch a new session (for
example, the next day), you will find that your work is still in the lab environment. Also, at any point before
the session timer reaches 0:00, you can choose Start Lab again to extend the current session time.
Important: Monitor your lab budget in the lab interface. When you have an active lab session, the latest
known remaining budget information displays at the top of this screen. The remaining budget that you see
might not reflect your most recent account activity. If you exceed your lab budget, your lab account will be
disabled, and all progress and resources will be lost. If you exceed the budget, please contact your
educator for assistance.
If you ever want to reset the lab environment to the original state, before you started the lab, use the
Reset option above these instructions. Note that this won't reset your budget. Warning: If you reset the
environment, you will permanently delete everything that you have created or stored in this AWS account.
In this lab environment, access to AWS services and service actions are restricted to the ones that are
needed to complete the project. You might encounter errors if you attempt to access other services or
perform actions beyond the ones that are described in this lab.
Scenario
The owners of a café corporation with many franchise locations have noticed how popular their gourmet
coffee offerings have become.
Customers (the café franchise location managers) cannot seem to get enough of the high-quality coffee
beans that are needed to create amazing cappuccinos and lattes in their cafés.
Meanwhile, the employees in the café corporate office have been challenged to consistently source the
highest-quality coffee beans. Recently, the leaders at the corporate office learned that one of their favorite
coffee suppliers wants to sell her company. The café corporate managers jumped at the opportunity to
buy the company. The acquired coffee supplier runs a coffee supplier listings application on an AWS
account, as shown in the following image.
The coffee suppliers application currently runs as a monolithic application. It has reliability and
performance issues. That is one of the reasons that you have recently been hired to work in the café
corporate office. In this project, you perform s that are associated with software development engineer
(SDE), app developer, and cloud support engineer roles.
You have been ed to split the monolithic application into microservices, so that you can scale the services
independently and allocate more compute resources to the services that experience the highest demand,
with the goal of avoiding bottlenecks. A microservices design will also help avoid single points of failure,
which could bring down the entire application in a monolithic design. With services isolated from one
another, if one microservice becomes temporarily unavailable, the other microservices might remain
available.
You have also been challenged to develop a CI/CD pipeline to automatically deploy updates to the
production cluster that runs containers, using a blue/green deployment strategy.
Solution requirements
Detail Solution re
1 Create an architecture diagram and cost estimate for the solution. R1, R2
2 Analyze the design of the monolithic application and test the application. R3
3 Create a development environment on AWS Cloud9, and check the monolithic source code into CodeCommit. R3
4 Break the monolithic design into microservices, and launch test Docker containers. R3, R4
Create ECR repositories to store Docker images. Create an ECS cluster, ECS definitions, and CodeDeploy
5 R3
application specification files.
6 Create target groups and an Application Load Balancer that routes web traffic to them. R5
Configure applications and deployments groups in CodeDeploy, and create two CI/CD pipelines by using
8 R5, R6
CodePipeline.
Modify your microservices and scale capacity, and use the pipelines that you created to deploy iterative
9 R5, R6
improvements to production by using a blue/green deployment strategy.