SlideShare a Scribd company logo
Microservices
with Spring Cloud
Kasim Sert
2016 1
2
Agenda
๏ The Definitions
๏ Monolith vs Micro-Service
๏ Microservices Features
๏ Why HTTP,REST,JSON ?
๏ Case Study
๏ Demos
๏ Conclusion
3
What are Microservices ?
๏ Decomposition of single system into a suite of small
services each running as independent processes and
intercommunicating via well known protocols
4
What are Microservices ?
๏ Decomposition of single system into a suite of small
services each running as independent processes and
intercommunicating via well known protocols
๏ Developing a single application as a suite of small
services each running its own process and
communicating with lightweight mechanisms often
an HTTP resource API, Martin Fowler
5
What are Microservices ?
๏ Decomposition of single system into a suite of small
services each running as independent processes and
intercommunicating via well known protocols
๏ Developing a single application as a suite of small
services each running its own process and
communicating with lightweight mechanisms often
an HTTP resource API, Martin Fowler
๏Fine-Grained SOA, Adrian Cockcroft-Netflix
6
Microservices Features
๏ Composing a single application using small services
๏rather than a single monolithic application
๏ each running as independent processes
๏not just modules in a single executable
๏ intercommunicating via open protocols
๏HTTP/Rest,or Messaging
๏ Separately written deployed scaled and maintained
๏potentially in different languages
๏ Services are independently replaceable and upgradable
7
Microservices Are Not
๏ SOA
๏SOA is about integrating enterprise applications,
Microservices are about decomposing single
applications
๏ A Silver Bullet
๏Microservices approach involves drawbacks and risks
๏ New!
8
Microservices Are Trending
๏ Twitter moved from Ruby/Rails monolith to
Microservices
๏ Facebook moved from PHP monolith to Microservices
๏ Netflix moved from Java monolith to Microservices
9
Benefits of a Microservice
Approach
๏ Extreme Scalability
๏ Organisational Ownership
๏ Cheaper to Start
๏ Ideal for the Cloud
๏ Grasp latest technologies
๏ Promotes Agile Practices
๏ Promotes DevOps
๏ “It’s what the cool people do!”
10
Benefits of a Monolith
๏ Common code infrastructure
๏ More density/efficient allocation of hardware
๏ Less inter-process communication required, less
network hops
๏ Easy to scale(up to some level with load balancer)
๏ Easy to test as a single unit(up to some limit)
11
Monolith vs Microservices
12
HTTP
๏ Available verbs GET, POST, PUT, DELETE (and more)
๏ Mechanisms for

• caching and cache control

• content negotiation

• session management

• user agent and server identification
๏ Status codes in response (200, 404, etc) for

information, success, redirection, client error, server
error
๏ Rich standardised interface for interacting over the net
13
JSON
๏ Minimal and popular data representation format
๏ Schemaless in principle, but can be validated if needed
14
REST
๏ Uniform Interface By;

• Use of known HTTP verbs for manipulating resources

• Resource manipulation through representations which
separated from internal representations 

• Hypermedia as the engine of application state
(HATEOAS): Response contains all allowed operations
and the resource identifiers needed to trigger them
15
Case Study
๏ Consider Monolithic Online Shopping Application
๏Web/Mobile Interfaces
๏Functions for:
๏Searching for products
๏Product catalog
๏Inventory management
๏Shopping cart
๏Checkout
๏Order Fulfilment
๏How would this look with microservices?
16
Basic Diagram
17
Understanding Monolith
Application
18
New Types of Client
19
New Types of Persistence/
Services
20
Monolith Challenges
๏ Language/Framework Lock
๏ Digestion
๏Single developer can not digest
๏Single team can not manage a large
application(amazon’s 2 pizza rule)
๏ Deployment as single unit
๏Can not independently deploy single change (risky)
๏Ready changes should be wait(next deploy)
21
Case Study with Microservices
22
Microservices Advantages
๏ Encapsulate Business capabilities
๏ Not dependent on technology stack
๏ Easy to digest each service
๏ Easy to test, deploy manage, version and scale each
service.
๏ Changes can be deployed as soon as ready
23
Microservices Disadvantages
๏ Complexity moved to operation layer
๏fallacies of distributed computing
๏ Services will be unavailable
๏Design for failure
๏Much more need for monitoring(Healthcheck?)
๏ Remote Calls more expensive than in-process calls
๏ Problem of Transactions (Eventual consistency over
ACID)
๏ Features span multiple services (Hard to Integration
Test)
24
Fallacies of Distributed
Computing
๏ Network is reliable
๏ Latency is zero
๏ Bandwith is infinite
๏ The Network is secure
๏ Topology does not change
๏ There is one administrator
๏ Transport cost is zero
๏ The network is homogenous
25
Spring Cloud Summary
๏ Spring cloud(Using Netflix OSS internally)
๏Apply common patterns needed in distributed/cloud
applications
๏Distributed/Versioned/Centralised Config.
Management
๏Service Registration/Discovery
๏Load Balancing
๏Circuit Brakers
๏Monitoring
๏Based on Spring Boot
26
Spring Cloud Summary
๏ Spring Boot

Stand-alone, production-grade Spring-based applications
๏ Spring Data REST / Spring HATEOAS

Spring-based applications following HATEOAS principles
๏ Spring Cloud Config

Centralised external configuration management, backed by Git
๏ Netflix Eureka

REST-based service discovery and registration for failover and
load-balancing
๏ Netflix Ribbon
IPC library with built-in client-side software load-balancers
๏ Netflix Hystrix

Latency and fault tolerance for distributed system
๏ Netflix Hystrix Dashboard

Web-based UI for monitoring Hystrix 27
Netflix
๏ Reinvented itself in 2007
๏ Moved from DVD mailing to video-on-demand
๏Once USPS biggest customer
๏Now biggest source of Internet Traffic
๏ Became pioneer in Cloud computing
๏since all applications run on AWS
๏ Open sources its cloud projects with name Netflix Open
Source Software
28
Conclusion
๏ Monoliths always bad?
๏ How micro is micro?
๏Small enough for one developer to digest
๏Predictable and easy to experiment
๏If necessary can be rewritten in different technology
stack in two weeks
29
DEMO1-Spring Data REST
30
DEMO2-Spring Config Server
31
DEMO3-Spring Cloud
32
References
๏ https://en.wikipedia.org/wiki/Microservices
๏ http://martinfowler.com/articles/microservices.html
๏ https://start.spring.io
๏ https://projects.spring.io/spring-cloud/
33
Questions?
34

More Related Content

What's hot

Web application I have always dreamt of
Web application I have always dreamt ofWeb application I have always dreamt of
Web application I have always dreamt of
Victor_Cr
 
Microservices
MicroservicesMicroservices
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entitySpring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Toni Jara
 
istio: service mesh for all
istio: service mesh for allistio: service mesh for all
istio: service mesh for all
Mandar Jog
 
Building microservices web application using scala & akka
Building microservices web application using scala & akkaBuilding microservices web application using scala & akka
Building microservices web application using scala & akka
Binh Nguyen
 
Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015
Strannik_2013
 
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Sagara Gunathunga
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
Red Hat Developers
 
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2
 
The Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your ServicesThe Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your Services
Christian Posta
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejs
Bruno Pedro
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Lohika_Odessa_TechTalks
 
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Daniel Oh
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
Jenis Dharmadurai
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Srinivasan Nanduri
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
The Software House
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Faren faren
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service ArchitectureEduards Sizovs
 
linkerd: The Cloud Native Service Mesh
linkerd: The Cloud Native Service Meshlinkerd: The Cloud Native Service Mesh
linkerd: The Cloud Native Service Mesh
Dario Simonetti
 

What's hot (20)

Web application I have always dreamt of
Web application I have always dreamt ofWeb application I have always dreamt of
Web application I have always dreamt of
 
Microservices
MicroservicesMicroservices
Microservices
 
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entitySpring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
 
istio: service mesh for all
istio: service mesh for allistio: service mesh for all
istio: service mesh for all
 
Building microservices web application using scala & akka
Building microservices web application using scala & akkaBuilding microservices web application using scala & akka
Building microservices web application using scala & akka
 
Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015
 
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
 
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
 
JavaCro'15 - Service Discovery in OSGi Beyond the JVM using Docker and Consul...
JavaCro'15 - Service Discovery in OSGi Beyond the JVM using Docker and Consul...JavaCro'15 - Service Discovery in OSGi Beyond the JVM using Docker and Consul...
JavaCro'15 - Service Discovery in OSGi Beyond the JVM using Docker and Consul...
 
The Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your ServicesThe Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your Services
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejs
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...
 
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
linkerd: The Cloud Native Service Mesh
linkerd: The Cloud Native Service Meshlinkerd: The Cloud Native Service Mesh
linkerd: The Cloud Native Service Mesh
 

Viewers also liked

introduce to spring cloud
introduce to spring cloudintroduce to spring cloud
introduce to spring cloud
Doo Sung Eom
 
The craft of meta programming on JVM
The craft of meta programming on JVMThe craft of meta programming on JVM
The craft of meta programming on JVM
Igor Khotin
 
Next-gen OData/ui5 microservices with Spring Boot
Next-gen OData/ui5 microservices with Spring BootNext-gen OData/ui5 microservices with Spring Boot
Next-gen OData/ui5 microservices with Spring Boot
Jan Penninkhof
 
REST API Best (Recommended) Practices
REST API Best (Recommended) PracticesREST API Best (Recommended) Practices
REST API Best (Recommended) Practices
Rasheed Waraich
 
Microservices with spring boot
Microservices  with spring bootMicroservices  with spring boot
Microservices with spring boot
Mesut Can Gurle
 
The Fintechs
The FintechsThe Fintechs
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
Rasheed Waraich
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
Eberhard Wolff
 
Spring cloud for microservices architecture
Spring cloud for microservices architectureSpring cloud for microservices architecture
Spring cloud for microservices architecture
Igor Khotin
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
Divide and Conquer: Easier Continuous Delivery using Micro-Services
Divide and Conquer: Easier Continuous Delivery using Micro-ServicesDivide and Conquer: Easier Continuous Delivery using Micro-Services
Divide and Conquer: Easier Continuous Delivery using Micro-Services
Carlos Sanchez
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
Rasheed Waraich
 
Microservices with Spring and Cloud Foundry
Microservices with Spring and Cloud FoundryMicroservices with Spring and Cloud Foundry
Microservices with Spring and Cloud Foundry
mimacom
 

Viewers also liked (14)

introduce to spring cloud
introduce to spring cloudintroduce to spring cloud
introduce to spring cloud
 
The craft of meta programming on JVM
The craft of meta programming on JVMThe craft of meta programming on JVM
The craft of meta programming on JVM
 
Next-gen OData/ui5 microservices with Spring Boot
Next-gen OData/ui5 microservices with Spring BootNext-gen OData/ui5 microservices with Spring Boot
Next-gen OData/ui5 microservices with Spring Boot
 
REST API Best (Recommended) Practices
REST API Best (Recommended) PracticesREST API Best (Recommended) Practices
REST API Best (Recommended) Practices
 
Microservices with spring boot
Microservices  with spring bootMicroservices  with spring boot
Microservices with spring boot
 
The Fintechs
The FintechsThe Fintechs
The Fintechs
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
 
Spring cloud for microservices architecture
Spring cloud for microservices architectureSpring cloud for microservices architecture
Spring cloud for microservices architecture
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
Divide and Conquer: Easier Continuous Delivery using Micro-Services
Divide and Conquer: Easier Continuous Delivery using Micro-ServicesDivide and Conquer: Easier Continuous Delivery using Micro-Services
Divide and Conquer: Easier Continuous Delivery using Micro-Services
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
Microservices with Spring and Cloud Foundry
Microservices with Spring and Cloud FoundryMicroservices with Spring and Cloud Foundry
Microservices with Spring and Cloud Foundry
 

Similar to Microservices with Spring

Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?
NGINX, Inc.
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
Rick Hightower
 
Merging microservices architecture with SOA practices
Merging microservices architecture with SOA practicesMerging microservices architecture with SOA practices
Merging microservices architecture with SOA practices
Chris Haddad
 
The Role of Data Virtualization in an API Economy
The Role of Data Virtualization in an API EconomyThe Role of Data Virtualization in an API Economy
The Role of Data Virtualization in an API Economy
Denodo
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice ContainerJamie (Taka) Wang
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
VMware Tanzu
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
PINGXIONG3
 
Containers and microservices create new performance challenges kowall - app...
Containers and microservices create new performance challenges   kowall - app...Containers and microservices create new performance challenges   kowall - app...
Containers and microservices create new performance challenges kowall - app...
Jonah Kowall
 
AppSphere 15 - Containers and Microservices Create New Performance Challenges
AppSphere 15 - Containers and Microservices Create New Performance ChallengesAppSphere 15 - Containers and Microservices Create New Performance Challenges
AppSphere 15 - Containers and Microservices Create New Performance Challenges
AppDynamics
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro
Sonic leigh
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
Vinod Wilson
 
Building Big Architectures
Building Big ArchitecturesBuilding Big Architectures
Building Big Architectures
Ramit Surana
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Lucian Neghina
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
MahmoudZidan41
 
DevOps and Microservice
DevOps and MicroserviceDevOps and Microservice
DevOps and Microservice
Inho Kang
 
Introduction to event based microservices
Introduction to event based microservicesIntroduction to event based microservices
Introduction to event based microservices
Grigoris Grigoriadis
 
Move fast and make things with microservices
Move fast and make things with microservicesMove fast and make things with microservices
Move fast and make things with microservices
Mithun Arunan
 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services Architecture
Ranjan Baisak
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Jack-Junjie Cai
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
Łukasz Sowa
 

Similar to Microservices with Spring (20)

Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
 
Merging microservices architecture with SOA practices
Merging microservices architecture with SOA practicesMerging microservices architecture with SOA practices
Merging microservices architecture with SOA practices
 
The Role of Data Virtualization in an API Economy
The Role of Data Virtualization in an API EconomyThe Role of Data Virtualization in an API Economy
The Role of Data Virtualization in an API Economy
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice Container
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
Containers and microservices create new performance challenges kowall - app...
Containers and microservices create new performance challenges   kowall - app...Containers and microservices create new performance challenges   kowall - app...
Containers and microservices create new performance challenges kowall - app...
 
AppSphere 15 - Containers and Microservices Create New Performance Challenges
AppSphere 15 - Containers and Microservices Create New Performance ChallengesAppSphere 15 - Containers and Microservices Create New Performance Challenges
AppSphere 15 - Containers and Microservices Create New Performance Challenges
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
Building Big Architectures
Building Big ArchitecturesBuilding Big Architectures
Building Big Architectures
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
DevOps and Microservice
DevOps and MicroserviceDevOps and Microservice
DevOps and Microservice
 
Introduction to event based microservices
Introduction to event based microservicesIntroduction to event based microservices
Introduction to event based microservices
 
Move fast and make things with microservices
Move fast and make things with microservicesMove fast and make things with microservices
Move fast and make things with microservices
 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services Architecture
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
 

More from Software Infrastructure

Kotlin
KotlinKotlin
NoSql
NoSqlNoSql
Stream Analytics
Stream AnalyticsStream Analytics
Stream Analytics
Software Infrastructure
 
Quartz Scheduler
Quartz SchedulerQuartz Scheduler
Quartz Scheduler
Software Infrastructure
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Software Infrastructure
 
Deep Learning
Deep Learning Deep Learning
Deep Learning
Software Infrastructure
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
Software Infrastructure
 
Java9
Java9Java9
Machine learning
Machine learningMachine learning
Machine learning
Software Infrastructure
 
Raspberry PI
Raspberry PIRaspberry PI
Golang
GolangGolang
Codename one
Codename oneCodename one
Hazelcast sunum
Hazelcast sunumHazelcast sunum
Hazelcast sunum
Software Infrastructure
 
Microsoft bot framework
Microsoft bot frameworkMicrosoft bot framework
Microsoft bot framework
Software Infrastructure
 
Blockchain use cases
Blockchain use casesBlockchain use cases
Blockchain use cases
Software Infrastructure
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side Swift
Software Infrastructure
 
Push Notification
Push NotificationPush Notification
Push Notification
Software Infrastructure
 
.Net Core
.Net Core.Net Core
Java Batch
Java BatchJava Batch
Big Data & Hadoop
Big Data & HadoopBig Data & Hadoop
Big Data & Hadoop
Software Infrastructure
 

More from Software Infrastructure (20)

Kotlin
KotlinKotlin
Kotlin
 
NoSql
NoSqlNoSql
NoSql
 
Stream Analytics
Stream AnalyticsStream Analytics
Stream Analytics
 
Quartz Scheduler
Quartz SchedulerQuartz Scheduler
Quartz Scheduler
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Deep Learning
Deep Learning Deep Learning
Deep Learning
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Java9
Java9Java9
Java9
 
Machine learning
Machine learningMachine learning
Machine learning
 
Raspberry PI
Raspberry PIRaspberry PI
Raspberry PI
 
Golang
GolangGolang
Golang
 
Codename one
Codename oneCodename one
Codename one
 
Hazelcast sunum
Hazelcast sunumHazelcast sunum
Hazelcast sunum
 
Microsoft bot framework
Microsoft bot frameworkMicrosoft bot framework
Microsoft bot framework
 
Blockchain use cases
Blockchain use casesBlockchain use cases
Blockchain use cases
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side Swift
 
Push Notification
Push NotificationPush Notification
Push Notification
 
.Net Core
.Net Core.Net Core
.Net Core
 
Java Batch
Java BatchJava Batch
Java Batch
 
Big Data & Hadoop
Big Data & HadoopBig Data & Hadoop
Big Data & Hadoop
 

Recently uploaded

Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 

Recently uploaded (20)

Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 

Microservices with Spring

  • 2. 2 Agenda ๏ The Definitions ๏ Monolith vs Micro-Service ๏ Microservices Features ๏ Why HTTP,REST,JSON ? ๏ Case Study ๏ Demos ๏ Conclusion
  • 3. 3
  • 4. What are Microservices ? ๏ Decomposition of single system into a suite of small services each running as independent processes and intercommunicating via well known protocols 4
  • 5. What are Microservices ? ๏ Decomposition of single system into a suite of small services each running as independent processes and intercommunicating via well known protocols ๏ Developing a single application as a suite of small services each running its own process and communicating with lightweight mechanisms often an HTTP resource API, Martin Fowler 5
  • 6. What are Microservices ? ๏ Decomposition of single system into a suite of small services each running as independent processes and intercommunicating via well known protocols ๏ Developing a single application as a suite of small services each running its own process and communicating with lightweight mechanisms often an HTTP resource API, Martin Fowler ๏Fine-Grained SOA, Adrian Cockcroft-Netflix 6
  • 7. Microservices Features ๏ Composing a single application using small services ๏rather than a single monolithic application ๏ each running as independent processes ๏not just modules in a single executable ๏ intercommunicating via open protocols ๏HTTP/Rest,or Messaging ๏ Separately written deployed scaled and maintained ๏potentially in different languages ๏ Services are independently replaceable and upgradable 7
  • 8. Microservices Are Not ๏ SOA ๏SOA is about integrating enterprise applications, Microservices are about decomposing single applications ๏ A Silver Bullet ๏Microservices approach involves drawbacks and risks ๏ New! 8
  • 9. Microservices Are Trending ๏ Twitter moved from Ruby/Rails monolith to Microservices ๏ Facebook moved from PHP monolith to Microservices ๏ Netflix moved from Java monolith to Microservices 9
  • 10. Benefits of a Microservice Approach ๏ Extreme Scalability ๏ Organisational Ownership ๏ Cheaper to Start ๏ Ideal for the Cloud ๏ Grasp latest technologies ๏ Promotes Agile Practices ๏ Promotes DevOps ๏ “It’s what the cool people do!” 10
  • 11. Benefits of a Monolith ๏ Common code infrastructure ๏ More density/efficient allocation of hardware ๏ Less inter-process communication required, less network hops ๏ Easy to scale(up to some level with load balancer) ๏ Easy to test as a single unit(up to some limit) 11
  • 13. HTTP ๏ Available verbs GET, POST, PUT, DELETE (and more) ๏ Mechanisms for
 • caching and cache control
 • content negotiation
 • session management
 • user agent and server identification ๏ Status codes in response (200, 404, etc) for
 information, success, redirection, client error, server error ๏ Rich standardised interface for interacting over the net 13
  • 14. JSON ๏ Minimal and popular data representation format ๏ Schemaless in principle, but can be validated if needed 14
  • 15. REST ๏ Uniform Interface By;
 • Use of known HTTP verbs for manipulating resources
 • Resource manipulation through representations which separated from internal representations 
 • Hypermedia as the engine of application state (HATEOAS): Response contains all allowed operations and the resource identifiers needed to trigger them 15
  • 16. Case Study ๏ Consider Monolithic Online Shopping Application ๏Web/Mobile Interfaces ๏Functions for: ๏Searching for products ๏Product catalog ๏Inventory management ๏Shopping cart ๏Checkout ๏Order Fulfilment ๏How would this look with microservices? 16
  • 19. New Types of Client 19
  • 20. New Types of Persistence/ Services 20
  • 21. Monolith Challenges ๏ Language/Framework Lock ๏ Digestion ๏Single developer can not digest ๏Single team can not manage a large application(amazon’s 2 pizza rule) ๏ Deployment as single unit ๏Can not independently deploy single change (risky) ๏Ready changes should be wait(next deploy) 21
  • 22. Case Study with Microservices 22
  • 23. Microservices Advantages ๏ Encapsulate Business capabilities ๏ Not dependent on technology stack ๏ Easy to digest each service ๏ Easy to test, deploy manage, version and scale each service. ๏ Changes can be deployed as soon as ready 23
  • 24. Microservices Disadvantages ๏ Complexity moved to operation layer ๏fallacies of distributed computing ๏ Services will be unavailable ๏Design for failure ๏Much more need for monitoring(Healthcheck?) ๏ Remote Calls more expensive than in-process calls ๏ Problem of Transactions (Eventual consistency over ACID) ๏ Features span multiple services (Hard to Integration Test) 24
  • 25. Fallacies of Distributed Computing ๏ Network is reliable ๏ Latency is zero ๏ Bandwith is infinite ๏ The Network is secure ๏ Topology does not change ๏ There is one administrator ๏ Transport cost is zero ๏ The network is homogenous 25
  • 26. Spring Cloud Summary ๏ Spring cloud(Using Netflix OSS internally) ๏Apply common patterns needed in distributed/cloud applications ๏Distributed/Versioned/Centralised Config. Management ๏Service Registration/Discovery ๏Load Balancing ๏Circuit Brakers ๏Monitoring ๏Based on Spring Boot 26
  • 27. Spring Cloud Summary ๏ Spring Boot
 Stand-alone, production-grade Spring-based applications ๏ Spring Data REST / Spring HATEOAS
 Spring-based applications following HATEOAS principles ๏ Spring Cloud Config
 Centralised external configuration management, backed by Git ๏ Netflix Eureka
 REST-based service discovery and registration for failover and load-balancing ๏ Netflix Ribbon IPC library with built-in client-side software load-balancers ๏ Netflix Hystrix
 Latency and fault tolerance for distributed system ๏ Netflix Hystrix Dashboard
 Web-based UI for monitoring Hystrix 27
  • 28. Netflix ๏ Reinvented itself in 2007 ๏ Moved from DVD mailing to video-on-demand ๏Once USPS biggest customer ๏Now biggest source of Internet Traffic ๏ Became pioneer in Cloud computing ๏since all applications run on AWS ๏ Open sources its cloud projects with name Netflix Open Source Software 28
  • 29. Conclusion ๏ Monoliths always bad? ๏ How micro is micro? ๏Small enough for one developer to digest ๏Predictable and easy to experiment ๏If necessary can be rewritten in different technology stack in two weeks 29