SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Massachusetts Microservices Meetup, October 2016
Darren Bathgate
Technical Architect
Architecting for Microservices
2
● Founded in 2004, Kenzan is a software engineering and professional
services company with 4 offices in RI, NYC, Los Angeles and Denver
● More than 150+ architects, developers, QA Engineers, project managers
● Full service solutions provider. Some of our services include:
○ Application development
○ Platform as a service
○ Cloud virtualization
○ DevOps
● Clients include: Thomson Reuters, Charter, Starz, HBO, AMC, and
Cablevision
About Kenzan
Overview
3
2010-2011
● Developed interactive television applications
● Built and maintained monolithic full stack web applications
2011-2012
● Architected and built first small scale microservice stack
● Around 15 microservices deployed on datacenter hardware
2013-2014
● Adopted cloud and AWS
● Assisted client with peeling a monolith into microservices
2015-Present
● Helped client reach thousands of instances in AWS running microservices
History Leading Up to Microservices
About Kenzan
4
History
● Graduated with a Bachelor’s in Software Engineering in 2010
● Started as a developer at Kenzan in 2011
● Promoted to Technical Architect in 2013
Specialties
● Java backend development
● AWS cloud and platform development
● Cassandra and RDBMS databases
Other Interests
● Really hyped about Docker and container related technologies
● Computer hardware enthusiast
About Me
5
What is a Microservice?
¯_(ツ)_/¯
A really small service?
6
● N number of modular components joined together via the network
● Decomposed by units of business or functionality
● Combined makes up an entire backend system
Microservices
Overview
7
● Smaller development teams
○ Scales development velocity
○ Teams build domain ownership of services
● Scalability
○ Adds independent scalability to units of business
○ Each service can scaled as needed to meet demand
● Resource isolation
○ Each service can be assigned fixed resources using virtualization
○ Services do not affect other systems when resources are exhausted
Microservices
Benefits
8
● Deployed on datacenter hardware using VMWare
● Java/Tomcat microservices
● Single and multi-tenant deployments per VM
● Nginx and Varnish used for routing traffic and caching
● Cassandra and Memcached NoSQL stores used for temporary
storage
Early Microservice Adoption
Overview
9
Routing
● Directs traffic to microservice based on requested path
● Edge side caching and auth-n gating (am I logged in?)
Edge Service
● Accepts requests from user input
● Drives business logic
● Enforces auth-z rules (do I have access to this resource?)
Middle Service
● Data tier abstraction
● Simple CRUD style operations
Data Tier
● Databases data stores
● External services
Early Microservice Adoption
Components
10
Early Microservice Adoption
Example Diagram
11
● Tight coupling of components
● Deciding what to split off first
● Stateful behavior
● Use of OS level dependencies like filesystem and network
● Supporting monolith and microservice during transition
Splitting the Monolith
Challenges
12
Splitting the Monolith
Example Monolith
13
● Decouple components
● Organized into functional divisions of business logic
● Move stateful in-memory stores into shared datastores
● Put router in front of the monolith to smooth rollout transition
Splitting the Monolith
Prepping the Monolith
14
Splitting the Monolith
Prepping the Monolith (Diagram)
15
● Start working from the bottom up
● Split up databases
● Peel out data access modules into Middle Services
● Peel out Edge modules into Edge Services
● Use Router to toggle redirection to new Edge Services
Splitting the Monolith
Peeling Components into Microservices
16
Splitting the Monolith
Peeling Components into Microservices (Diagram 1)
17
Splitting the Monolith
Peeling Components into Microservices (Diagram 2)
18
Maintaining Visibility
19
● More microservices become harder to trace and debug
● Each network hop increases complexity and latency
● Caching adds to the confusion (where did my data come from?)
● 500+ Microservices work for Netflix but is not right for everyone
● Netflix devotes time to understand failures
Maintaining Visibility
Overview
20
Death Star Topology
Image Source: https://contiv.github.io/articles/2016/03/06/scaling-microservices.html
21
● Start simple (<10 microservices)
● Define organization wide patterns for teams to follow
● Incorporate monitoring tools early
● Store logs and allow developers to search logs
● Use distributed tracing to track requests
● Circuit breaking
Maintaining Visibility
How Do I Maintain Visibility?
22
● Edge and Middle tier service pattern
● Pattern reduces network hops to a maximum of 5
● LB >> caching >> router >> edge >> middle >> data
Edge Tier
● Only connects to Middle services
● Never talks to another Edge service
Middle Tier
● Middle only talks to databases and data stores
● Never talks to more than 1 source of data
Microservice Design
How We Designed Microservices in the Past
23
Microservice Design
Predictable Failure
24
Microservice Design
Unpredictable Failure
25
Microservice Design
Unpredictable Failure
26
● Even the Edge and Middle design can be a bit confusing
● Currently exploring better alternatives to decoupling microservices
● Edge service becomes the orchestrator connecting middle services
● Reduced number of Edge services
Alternative Design
Overview
27
Alternative Design
Example Diagram
28
Alternative Design
Spinnaker
Image Source: http://cloudacademy.com/blog/netflix-spinnaker/
29
● Necessary with increased network communications of microservices
● Prevents cascading failures when one system is down
● Keeps other features running that do not depend on the downed system
● Every microservice should defend itself from its surrounding dependencies
Circuit Breaking
Overview
30
Circuit Breaking
Diagram
31
● Use the Dashboard!
● Hystrix circuit breaking generates useful metrics
● Not collecting and displaying them greatly reduces visibility to outages
● Metrics also help optimize circuit breaker settings
Circuit Breaking
Hystrix Dashboard
Image Source: http://techblog.netflix.com/2012/12/hystrix-dashboard-and-turbine.html
32
● “Are microservices a prerequisite to the cloud?”
● Independent scalability is greatly improved with microservices in the cloud
● Microservices use less server resources, and work well with affordable
instance tiers
● Easier to achieve resource isolation (microservices with dedicated CPU,
Memory, Storage, and Network)
● Ease of provisioning new microservices
Microservices in the Cloud
Benefits
33
● Immutable Hardware becomes necessary in a dynamically scaling cloud
environment
● Release artifacts are an OS image with the microservice provisioned
● OS Image is deployable to any environment
● Microservice redundancy can be scaled up and down as needed
● Containerization is another way to achieve immutable hardware
#dockerhype
Microservices in the Cloud
Immutable Hardware
34
@kenzanmedia
www.linkedin.com/company/kenzan-media
techblog.kenzan.com
www.facebook.com/kenzanmedia/
Want to learn more?
Follow Us!

Contenu connexe

Tendances

The Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficThe Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficC4Media
 
Presentation cloud computing
Presentation cloud computingPresentation cloud computing
Presentation cloud computingAkash Pandey
 
[WSO2Con EU 2018] Architecting for a Container Native Environment
[WSO2Con EU 2018] Architecting for a Container Native Environment[WSO2Con EU 2018] Architecting for a Container Native Environment
[WSO2Con EU 2018] Architecting for a Container Native EnvironmentWSO2
 
Saga transactions msa_ architecture
Saga transactions msa_ architectureSaga transactions msa_ architecture
Saga transactions msa_ architectureMauro Vocale
 
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...Vietnam Open Infrastructure User Group
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices ArchitectureVin Dahake
 
Evaluating Streaming Data Solutions
Evaluating Streaming Data SolutionsEvaluating Streaming Data Solutions
Evaluating Streaming Data SolutionsStreamlio
 
The role of databases in modern application development
The role of databases in modern application developmentThe role of databases in modern application development
The role of databases in modern application developmentMariaDB plc
 
Istio Mesh – Managing Container Deployments at Scale
Istio Mesh – Managing Container Deployments at ScaleIstio Mesh – Managing Container Deployments at Scale
Istio Mesh – Managing Container Deployments at ScaleMofizur Rahman
 
Java Middleware Surgery
Java Middleware Surgery Java Middleware Surgery
Java Middleware Surgery C2B2 Consulting
 
Microservices, Monoliths, SOA and How We Got Here
Microservices, Monoliths, SOA and How We Got HereMicroservices, Monoliths, SOA and How We Got Here
Microservices, Monoliths, SOA and How We Got HereLightbend
 
Getting-Started-With-Openstack
Getting-Started-With-OpenstackGetting-Started-With-Openstack
Getting-Started-With-OpenstackFarhad Fathi
 
What is reactive
What is reactiveWhat is reactive
What is reactiveLightbend
 
MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...
MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...
MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...confluent
 
Oracle SOA Suite Performance Tuning- UKOUG Application Server & Middleware SI...
Oracle SOA Suite Performance Tuning- UKOUG Application Server & Middleware SI...Oracle SOA Suite Performance Tuning- UKOUG Application Server & Middleware SI...
Oracle SOA Suite Performance Tuning- UKOUG Application Server & Middleware SI...C2B2 Consulting
 
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...Daniel Bryant
 
Transforming monolith systems to microservices
Transforming monolith systems to microservicesTransforming monolith systems to microservices
Transforming monolith systems to microservicesAlon Yair
 

Tendances (20)

The Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficThe Service Mesh: It's about Traffic
The Service Mesh: It's about Traffic
 
Presentation cloud computing
Presentation cloud computingPresentation cloud computing
Presentation cloud computing
 
[WSO2Con EU 2018] Architecting for a Container Native Environment
[WSO2Con EU 2018] Architecting for a Container Native Environment[WSO2Con EU 2018] Architecting for a Container Native Environment
[WSO2Con EU 2018] Architecting for a Container Native Environment
 
Saga transactions msa_ architecture
Saga transactions msa_ architectureSaga transactions msa_ architecture
Saga transactions msa_ architecture
 
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
 
Evaluating Streaming Data Solutions
Evaluating Streaming Data SolutionsEvaluating Streaming Data Solutions
Evaluating Streaming Data Solutions
 
The role of databases in modern application development
The role of databases in modern application developmentThe role of databases in modern application development
The role of databases in modern application development
 
Istio Mesh – Managing Container Deployments at Scale
Istio Mesh – Managing Container Deployments at ScaleIstio Mesh – Managing Container Deployments at Scale
Istio Mesh – Managing Container Deployments at Scale
 
Java Middleware Surgery
Java Middleware Surgery Java Middleware Surgery
Java Middleware Surgery
 
Microservices, Monoliths, SOA and How We Got Here
Microservices, Monoliths, SOA and How We Got HereMicroservices, Monoliths, SOA and How We Got Here
Microservices, Monoliths, SOA and How We Got Here
 
VMWare Networking Basic
VMWare Networking BasicVMWare Networking Basic
VMWare Networking Basic
 
Getting-Started-With-Openstack
Getting-Started-With-OpenstackGetting-Started-With-Openstack
Getting-Started-With-Openstack
 
What is reactive
What is reactiveWhat is reactive
What is reactive
 
Microservices
MicroservicesMicroservices
Microservices
 
Service mesh
Service meshService mesh
Service mesh
 
MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...
MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...
MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...
 
Oracle SOA Suite Performance Tuning- UKOUG Application Server & Middleware SI...
Oracle SOA Suite Performance Tuning- UKOUG Application Server & Middleware SI...Oracle SOA Suite Performance Tuning- UKOUG Application Server & Middleware SI...
Oracle SOA Suite Performance Tuning- UKOUG Application Server & Middleware SI...
 
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
 
Transforming monolith systems to microservices
Transforming monolith systems to microservicesTransforming monolith systems to microservices
Transforming monolith systems to microservices
 

En vedette

Splitting monolithsdeck slideshare_pdf
Splitting monolithsdeck slideshare_pdfSplitting monolithsdeck slideshare_pdf
Splitting monolithsdeck slideshare_pdfDaniel Khan
 
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivotalOpenSourceHub
 
Lessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to MicroservicesLessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to MicroservicesVMware Tanzu
 
Microservices in the Enterprise: A Research Study and Reference Architecture
Microservices in the Enterprise: A Research Study and Reference ArchitectureMicroservices in the Enterprise: A Research Study and Reference Architecture
Microservices in the Enterprise: A Research Study and Reference ArchitectureJesus Rodriguez
 
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...Toshiaki Maki
 
Payroll Management System
Payroll Management SystemPayroll Management System
Payroll Management SystemDheeraj Jha
 
Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Chris Richardson
 

En vedette (7)

Splitting monolithsdeck slideshare_pdf
Splitting monolithsdeck slideshare_pdfSplitting monolithsdeck slideshare_pdf
Splitting monolithsdeck slideshare_pdf
 
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
 
Lessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to MicroservicesLessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to Microservices
 
Microservices in the Enterprise: A Research Study and Reference Architecture
Microservices in the Enterprise: A Research Study and Reference ArchitectureMicroservices in the Enterprise: A Research Study and Reference Architecture
Microservices in the Enterprise: A Research Study and Reference Architecture
 
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
 
Payroll Management System
Payroll Management SystemPayroll Management System
Payroll Management System
 
Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...
 

Similaire à Kenzan: Architecting for Microservices

MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference ArchitectureMRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference ArchitectureNGINX, Inc.
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesMirantis
 
NGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEA
NGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEANGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEA
NGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEANGINX, Inc.
 
Microservices, docker , kubernetes and many more
Microservices, docker , kubernetes and many moreMicroservices, docker , kubernetes and many more
Microservices, docker , kubernetes and many moreVishwas N
 
Microservices at ibotta pitfalls and learnings
Microservices at ibotta pitfalls and learningsMicroservices at ibotta pitfalls and learnings
Microservices at ibotta pitfalls and learningsMatthew Reynolds
 
Designing microservices platforms with nats
Designing microservices platforms with natsDesigning microservices platforms with nats
Designing microservices platforms with natsChanaka Fernando
 
Microservices and developer pattern saga
Microservices and developer pattern sagaMicroservices and developer pattern saga
Microservices and developer pattern sagaviktorklyuster
 
About microservices on cloud computing services
About microservices on cloud computing servicesAbout microservices on cloud computing services
About microservices on cloud computing servicesssuser53aac4
 
Ato Z of Microservices Architecture by Systango
Ato Z of Microservices Architecture by SystangoAto Z of Microservices Architecture by Systango
Ato Z of Microservices Architecture by SystangoSystango
 
Microservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get StartedMicroservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get StartedShailendra Chauhan
 
Power of Microservices Architecture in Drupal Development
Power of Microservices Architecture in Drupal DevelopmentPower of Microservices Architecture in Drupal Development
Power of Microservices Architecture in Drupal DevelopmentOpenSense Labs
 
Mobile applications
Mobile applicationsMobile applications
Mobile applicationsappo1728
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Ambassador Labs
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionMukesh Singh
 
The what, why and how of knative
The what, why and how of knativeThe what, why and how of knative
The what, why and how of knativeMofizur Rahman
 

Similaire à Kenzan: Architecting for Microservices (20)

Microservices
MicroservicesMicroservices
Microservices
 
Micro Services Intro
Micro Services IntroMicro Services Intro
Micro Services Intro
 
MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference ArchitectureMRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh Architectures
 
NGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEA
NGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEANGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEA
NGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEA
 
linkerd.pdf
linkerd.pdflinkerd.pdf
linkerd.pdf
 
Microservices, docker , kubernetes and many more
Microservices, docker , kubernetes and many moreMicroservices, docker , kubernetes and many more
Microservices, docker , kubernetes and many more
 
Microservices at ibotta pitfalls and learnings
Microservices at ibotta pitfalls and learningsMicroservices at ibotta pitfalls and learnings
Microservices at ibotta pitfalls and learnings
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Designing microservices platforms with nats
Designing microservices platforms with natsDesigning microservices platforms with nats
Designing microservices platforms with nats
 
ZhuSem.ppt
ZhuSem.pptZhuSem.ppt
ZhuSem.ppt
 
Microservices and developer pattern saga
Microservices and developer pattern sagaMicroservices and developer pattern saga
Microservices and developer pattern saga
 
About microservices on cloud computing services
About microservices on cloud computing servicesAbout microservices on cloud computing services
About microservices on cloud computing services
 
Ato Z of Microservices Architecture by Systango
Ato Z of Microservices Architecture by SystangoAto Z of Microservices Architecture by Systango
Ato Z of Microservices Architecture by Systango
 
Microservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get StartedMicroservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get Started
 
Power of Microservices Architecture in Drupal Development
Power of Microservices Architecture in Drupal DevelopmentPower of Microservices Architecture in Drupal Development
Power of Microservices Architecture in Drupal Development
 
Mobile applications
Mobile applicationsMobile applications
Mobile applications
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
 
The what, why and how of knative
The what, why and how of knativeThe what, why and how of knative
The what, why and how of knative
 

Dernier

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Kenzan: Architecting for Microservices

  • 1. Massachusetts Microservices Meetup, October 2016 Darren Bathgate Technical Architect Architecting for Microservices
  • 2. 2 ● Founded in 2004, Kenzan is a software engineering and professional services company with 4 offices in RI, NYC, Los Angeles and Denver ● More than 150+ architects, developers, QA Engineers, project managers ● Full service solutions provider. Some of our services include: ○ Application development ○ Platform as a service ○ Cloud virtualization ○ DevOps ● Clients include: Thomson Reuters, Charter, Starz, HBO, AMC, and Cablevision About Kenzan Overview
  • 3. 3 2010-2011 ● Developed interactive television applications ● Built and maintained monolithic full stack web applications 2011-2012 ● Architected and built first small scale microservice stack ● Around 15 microservices deployed on datacenter hardware 2013-2014 ● Adopted cloud and AWS ● Assisted client with peeling a monolith into microservices 2015-Present ● Helped client reach thousands of instances in AWS running microservices History Leading Up to Microservices About Kenzan
  • 4. 4 History ● Graduated with a Bachelor’s in Software Engineering in 2010 ● Started as a developer at Kenzan in 2011 ● Promoted to Technical Architect in 2013 Specialties ● Java backend development ● AWS cloud and platform development ● Cassandra and RDBMS databases Other Interests ● Really hyped about Docker and container related technologies ● Computer hardware enthusiast About Me
  • 5. 5 What is a Microservice? ¯_(ツ)_/¯ A really small service?
  • 6. 6 ● N number of modular components joined together via the network ● Decomposed by units of business or functionality ● Combined makes up an entire backend system Microservices Overview
  • 7. 7 ● Smaller development teams ○ Scales development velocity ○ Teams build domain ownership of services ● Scalability ○ Adds independent scalability to units of business ○ Each service can scaled as needed to meet demand ● Resource isolation ○ Each service can be assigned fixed resources using virtualization ○ Services do not affect other systems when resources are exhausted Microservices Benefits
  • 8. 8 ● Deployed on datacenter hardware using VMWare ● Java/Tomcat microservices ● Single and multi-tenant deployments per VM ● Nginx and Varnish used for routing traffic and caching ● Cassandra and Memcached NoSQL stores used for temporary storage Early Microservice Adoption Overview
  • 9. 9 Routing ● Directs traffic to microservice based on requested path ● Edge side caching and auth-n gating (am I logged in?) Edge Service ● Accepts requests from user input ● Drives business logic ● Enforces auth-z rules (do I have access to this resource?) Middle Service ● Data tier abstraction ● Simple CRUD style operations Data Tier ● Databases data stores ● External services Early Microservice Adoption Components
  • 11. 11 ● Tight coupling of components ● Deciding what to split off first ● Stateful behavior ● Use of OS level dependencies like filesystem and network ● Supporting monolith and microservice during transition Splitting the Monolith Challenges
  • 13. 13 ● Decouple components ● Organized into functional divisions of business logic ● Move stateful in-memory stores into shared datastores ● Put router in front of the monolith to smooth rollout transition Splitting the Monolith Prepping the Monolith
  • 14. 14 Splitting the Monolith Prepping the Monolith (Diagram)
  • 15. 15 ● Start working from the bottom up ● Split up databases ● Peel out data access modules into Middle Services ● Peel out Edge modules into Edge Services ● Use Router to toggle redirection to new Edge Services Splitting the Monolith Peeling Components into Microservices
  • 16. 16 Splitting the Monolith Peeling Components into Microservices (Diagram 1)
  • 17. 17 Splitting the Monolith Peeling Components into Microservices (Diagram 2)
  • 19. 19 ● More microservices become harder to trace and debug ● Each network hop increases complexity and latency ● Caching adds to the confusion (where did my data come from?) ● 500+ Microservices work for Netflix but is not right for everyone ● Netflix devotes time to understand failures Maintaining Visibility Overview
  • 20. 20 Death Star Topology Image Source: https://contiv.github.io/articles/2016/03/06/scaling-microservices.html
  • 21. 21 ● Start simple (<10 microservices) ● Define organization wide patterns for teams to follow ● Incorporate monitoring tools early ● Store logs and allow developers to search logs ● Use distributed tracing to track requests ● Circuit breaking Maintaining Visibility How Do I Maintain Visibility?
  • 22. 22 ● Edge and Middle tier service pattern ● Pattern reduces network hops to a maximum of 5 ● LB >> caching >> router >> edge >> middle >> data Edge Tier ● Only connects to Middle services ● Never talks to another Edge service Middle Tier ● Middle only talks to databases and data stores ● Never talks to more than 1 source of data Microservice Design How We Designed Microservices in the Past
  • 26. 26 ● Even the Edge and Middle design can be a bit confusing ● Currently exploring better alternatives to decoupling microservices ● Edge service becomes the orchestrator connecting middle services ● Reduced number of Edge services Alternative Design Overview
  • 28. 28 Alternative Design Spinnaker Image Source: http://cloudacademy.com/blog/netflix-spinnaker/
  • 29. 29 ● Necessary with increased network communications of microservices ● Prevents cascading failures when one system is down ● Keeps other features running that do not depend on the downed system ● Every microservice should defend itself from its surrounding dependencies Circuit Breaking Overview
  • 31. 31 ● Use the Dashboard! ● Hystrix circuit breaking generates useful metrics ● Not collecting and displaying them greatly reduces visibility to outages ● Metrics also help optimize circuit breaker settings Circuit Breaking Hystrix Dashboard Image Source: http://techblog.netflix.com/2012/12/hystrix-dashboard-and-turbine.html
  • 32. 32 ● “Are microservices a prerequisite to the cloud?” ● Independent scalability is greatly improved with microservices in the cloud ● Microservices use less server resources, and work well with affordable instance tiers ● Easier to achieve resource isolation (microservices with dedicated CPU, Memory, Storage, and Network) ● Ease of provisioning new microservices Microservices in the Cloud Benefits
  • 33. 33 ● Immutable Hardware becomes necessary in a dynamically scaling cloud environment ● Release artifacts are an OS image with the microservice provisioned ● OS Image is deployable to any environment ● Microservice redundancy can be scaled up and down as needed ● Containerization is another way to achieve immutable hardware #dockerhype Microservices in the Cloud Immutable Hardware