microservices: principles and in practice
TRANSCRIPT
![Page 1: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/1.jpg)
December 11thMicroservices
Principles and In Practice
![Page 2: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/2.jpg)
Definition
“Small autonomous services that work together,
modelled around a business domain”- Sam Newman -
Building Microservices
![Page 3: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/3.jpg)
Microservices vs Monolithic services
- Martin Fowler -
![Page 4: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/4.jpg)
Microservices vs Monolithic services
- Philip Hauer -
When scaling.
![Page 5: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/5.jpg)
Principles of microservices
![Page 6: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/6.jpg)
Principle 01
Small Autonomous Services
![Page 7: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/7.jpg)
Principle 01 -Small autonomous services that work together
Merchant API
Admin API
Consumer API
Payment API
![Page 8: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/8.jpg)
Principle 01 -Small autonomous services that work together
Merchant API
Admin API
Consumer API
Payment API
Small??Autonomous Services?Work together
![Page 9: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/9.jpg)
Principle 01 -Small autonomous services that work together
Merchant API
Wallet API
Notifications APIEmployee Mgt API
CINCO Onboarding API Menu Related API
Rewards API
![Page 10: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/10.jpg)
Definition
“Small autonomous services that work together,
modelled around a business domain”- Sam Newman -
Building Microservices
![Page 11: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/11.jpg)
Principle 02
Business Domain BasedModelling
![Page 12: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/12.jpg)
Merchant API
Wallet API
Notifications APIEmployee Mgt API
CINCO Onboarding API Menu Related API
Rewards API
Principle 02 - Business Domain Based Modelling
![Page 13: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/13.jpg)
Principle 03
Culture of Automation
![Page 14: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/14.jpg)
Principle 03 - Culture of Automation
Automated TestingContinuous Delivery
Lot of upfront work for a transition
![Page 15: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/15.jpg)
Principle 04
Hide Implementation Details
![Page 16: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/16.jpg)
Principle 04 - Hide implementation Details
Merchant API
LEAPSET DB PROFILE
DB
Consumer API
Admin API
Payment API
Drastically impacts the ability to change
![Page 17: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/17.jpg)
Principle 04 - Hide implementation Details
Data Level APIs
LEAPSET DB
PROFILE DB
Merchant API
Easier said than done, of course.Especially for startups and where time to market is critical
Authentication Services
You need to make a request to get the data.People who manage these data level services can do their job
![Page 18: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/18.jpg)
Decentralization
Principle 05
![Page 19: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/19.jpg)
Microservices architecture boasts about autonomyMicroservices architecture optimizes around autonomy
Principle 05 - Decentralization
![Page 20: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/20.jpg)
● Do we still need to rely on another party to create a new server instances?
○ I know.. I know … checks and balances are required.. that’s fine.○ Practical issues...shush!
● Do we still rely on another party for deployment?○ Deserves a separate section on its own - Mr Mumtaz will cover it
● Do we have to communicate to all other teams in the Cake ecosystem for us to push a release
● Is it a one man show? What happens if “that man” is done and dusted?○ One centralized architect? Is he the guru for everything or is to
the team that comes together..Where is brainstorming? collective decision making? Many brains against one?
● Decentralization does not mean decentralizing everything
Principle 05 - Decentralization
![Page 21: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/21.jpg)
Principle 05 - Dumb Pipes
ESB
Merchant API Admin API Payment API IDM Other APIS
Clients
● Should not be domain aware● Cannot become too smart
![Page 22: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/22.jpg)
Principle 06
Consumer First
![Page 23: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/23.jpg)
Principle 06 - Consumer First
● Api Blueprint● Raml● Swagger
○ Features;■ Industry Standard - Open API Initiative (OAI) - Has announced
an open governance model around the Swagger Specification under the Linux Foundation.
■ Largest community and has been around since 2011. ■ Stub generators and Live documentation demo. Can be used
as interactive sandbox■ Open source 100%
○ Platform Swagger Url■ https://plat1-api.leapset.com:8343/sandbox/
![Page 24: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/24.jpg)
Principle 06 - Consumer First
![Page 25: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/25.jpg)
Principle 06 - Consumer First
● Service Discovery tools
![Page 26: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/26.jpg)
Principle 07
Isolate FailureObserve and Debug Failure
![Page 27: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/27.jpg)
Principle 07
● Log aggregation tools - make it highly observable.○ Logstash○ Just imagine logging into 40 servers to debug issues
● Tools that can be used for monitoring○ Cacti○ Nagios○ Graphite○ Grafana
![Page 28: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/28.jpg)
Principle 07
● AWS Autoscaling
● Correlation Ids
![Page 29: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/29.jpg)
Principle 08
Deploy Independently
![Page 30: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/30.jpg)
Virtual Machine vs Containers
![Page 31: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/31.jpg)
Docker
Docker allows you to package an application with all of its dependencies into a standardized unit for software development.
![Page 32: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/32.jpg)
Docker
● Lightweight● Open● Secure● Accelerate Developer Onboarding
○ Eliminate Environment Inconsistencies● Easily Share and Collaborate on Applications
○ Ship More Software Faster○ Portable○ Fast
![Page 33: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/33.jpg)
AWS Elastic Beanstalk
● An AWS Product● Infrastructure manager● Reduces management complexity without restricting choice or
control● Quickly deploy and manage applications in the AWS cloud
![Page 34: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/34.jpg)
Demo
Demo
![Page 35: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/35.jpg)
Demo
SF ConnectorCAKE Platform
![Page 36: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/36.jpg)
AWS Elastic Beanstalk
![Page 37: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/37.jpg)
Do we have a problem?
![Page 38: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/38.jpg)
Do we have a problem?
![Page 39: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/39.jpg)
Do we have a problem?
![Page 40: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/40.jpg)
A Solution
Amazon ECSAmazon EC2 Container Service
![Page 42: Microservices: Principles and in Practice](https://reader033.vdocuments.us/reader033/viewer/2022051318/5876712f1a28abd0018b6291/html5/thumbnails/42.jpg)