Cognizant Academy Truyum Fse Java - Microservices With Aws Case Study Specification
Cognizant Academy Truyum Fse Java - Microservices With Aws Case Study Specification
Cognizant Academy Truyum Fse Java - Microservices With Aws Case Study Specification
truYum
Version 1.0
Prepared By / Last
Reviewed By Approved By
Updated By
Signature
Date
Table of Contents
1.0 Introduction 3
1.1 Purpose of this document
1.2 Project Overview
1.3 Scope
1.4 Hardware and Software Requirement
They are planning to open an online portal called truYum through which they want to
reach out a larger customer base.
For this Front End Portal, the development team wants to develop a strong middle ware
layer exposed as Microservices REST End Points so that the web portal can service its
customers accordingly.
1.3 Scope
Develop truYum application web services using Microservices on .Net core and deploy
that to Azure
2. Software Requirement
i. Have PMD Plugin, EclEmma Code Coverage Plugin and AWS Code Commit
Enabled
b. Maven
c. Docker (Optional)
https://cognizant.kpoint.com/app/video/gcc-6e36500f-c1af-42c1-a6c7-ed8aac53ab22
https://cognizant.kpoint.com/app/video/gcc-92f246c9-024a-40b7-8bfc-96b3ce7c1a39
https://cognizant.kpoint.com/app/video/gcc-cfedd9c1-e29e-4e3e-b3e2-1960277f72a3
https://cognizant.kpoint.com/app/video/gcc-900a7172-43b7-42f3-a6cc-e301bd9cc9b3
Other References:
Java 8 https://dzone.com/articles/parallel-and-asynchronous-programming-in-java-8
Parallel
Programming
Swagger https://dzone.com/articles/centralized-documentation-in-microservice-spring-b
(Optional)
Lombok https://javabydeveloper.com/lombok-slf4j-examples/
Logging
Spring https://dzone.com/articles/spring-boot-security-json-web-tokenjwt-hello-world
Security
H2 In- https://dzone.com/articles/spring-data-jpa-with-an-embedded-database-and-
memory spring-boot
Database https://www.baeldung.com/spring-boot-h2-database
Menu 1. REST with Spring Boot Menu Service holds the list of
Microservice menu items that are serviced by
2. Can use Files to read the the Yum Restaurant.
menu and display
Menu Items are exposed by this
(Ex: menu.csv that holds: service.
3. No Database
Order 1. REST with Spring Boot Once the customer logs in, they
Microservice view the Menu and can make an
2. Can use H2 in memory order. Order Details are persisted
database to persist the using this service.
orders
8. Whenever an incorrect
menu item is received in
order, throw an error
response that “Item is not
available”.
Authenticatio Spring Security with Spring Every Customer has to login to get
n Service Boot (Authentication authenticated and all Microservices
Microservice) has to verify the customer to get
authorized
JSON Web Tokens
Yum Portal This is an independent MVC Yum Portal must provide the
Application, runs on a following functionalties:
different port.
(Assume that the customers
This application need not be already have a profile in the portal)
hosted in AWS.
1. Login
However the other
Microservices (Menu, Order 2. View Menu (Interacts with
and Authentication) has to be Menu Microservice to
hosted in AWS. display Menu Items in a
Table view)
The Yum Portal must hit the
Microservices in AWS and 3. Place Order (Selects a
then get the JSON response menu item and places an
and display in the Portal. order by calling Order
Service)
Junit must mock the
Microservices and the test
cases must be written.
Go thru the learning kpoint videos as listed in Section 2.0. Deploy Menu and Order
Microservice on AWS
o Check in the code to AWS Code Commit
o Create ECR for storing the container images
o Dockerize the application using the Code Pipeline
o Use Fargate deployment
o Use AWS Code Build and Deploy to build, dockerize and deploy the container to ECS
o Use ECS to configure auto scaling policies (scale in) to reduce the running task to 1 if CPU
utilization goes less than 30%.
o Configure the Desired count to 2 in the Service Configuration
Create a MVC application in local environment to show the Menu items and the order details
hosted in cloud
All the Services must be created in AWS ECS Cluster, Internet Facing Load Balancers must
be configured for every microservice, the URLs exposed by Load Balancer can be used in the
TruYum portal to access the services
No Databsae in AWS must be created. Only H2 / In-memory database must be used in Ordre
Microservice.