SlideShare a Scribd company logo
Developing
Microservices
using Spring
-
Beginners Guide
* Disclaimer: There are various topics covered in this session, each topic is worth a 2 day workshop session in itself, so this will cover only the very basics and try
to provide a birds eye view of the various concepts.
Agenda
● Microservices
● What ?
● Why ?
● Challenges of a distributed system
● Building Microservices using Spring
● Spring Boot
● Spring Cloud & Netflix OSS
● Conclusion
All Roads Lead to Microservices
Cloud
aPaaS
Continuous Delivery
Dev Ops
Agile
Microservices
Microservices – What ?
The term "Microservice Architecture" has sprung up over the
last few years to describe a particular way of designing
software applications as suites of independently deployable
services.
-Martin Fowler
http://martinfowler.com/articles/microservices.html
Microservices are loosely coupled service oriented
architecture with bounded contexts.
- Adrian Cockroft
Monolith Application
● Imaginary E-Commerce App
● Very efficient inter process calls between
components
● Good architecture, until it needs to scale
during busy shopping season.
Monolith Application
● You want to scale only 'Shopping
Cart' and 'Checkout' Modules,
but instead have to scale the
entire App
● Other Challenges with multiple
database and Session
management
Monolith Application – Good Parts
● Contains Everything
● Single Deployment
● Minimum viable product can
be reached quickly
● Easy (or Familiar) to understand
Monolith Application – Bad Parts
● Complex Architecture
● Difficult to Scale
(cannot scale only selected
modules)
● Long term commitment
to one technical stack
Microservices
● Distillation of SOA
● Single Context
● Smart Services / Dumb Pipes
● RESTful Communications
● Smaller codebase – easy to
reason about
● Easy to scale
Microservices
Challenges of distributed system
● Configuration Management
● Service Registration & Discovery
● Load Balancing
● Fault Tolerance
● Monitoring
● Concurrent API Integration & Transformation
*(This is not a complete list...)
Spring Boot
● Built on top of Spring framework
● Opinionated convention over configuration
● Creates stand-alone “Production” ready app
● Embedded Tomcat / Jetty
● Various Starters POMs to simplify configuration
● https://start.spring.io/ - Spring Initializr template project (We can
replace our kick start scripts with something like this)
Spring Boot
● It can get pretty small..
@RestController
class ThisWillActuallyRun {
@RequestMapping("/")
String home() {
"Hello World!"
}
}
Exercise 1 : Spring Boot Hello World
Spring Boot
● Retrieve data from database – Spring Data REST
● Entity Class
@Entity
@Table(name="users")
public class User implements Serializable{... }
● Repository Class
@Repository
public interface UserRepository extends JpaRepository<User, Integer> { }
● Main Class
@SpringBootApplication
public class SampleDataJpaApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleDataJpaApplication.class, args);
}
}
● The same project runs in local and Cloud - PWS
Exercise 2 : Spring Data REST
Spring Cloud
● Writing a single service with Spring Boot is easy.
● But things gets complex with managing multiple services
● http://cloud.spring.io/spring-cloud-netflix/ , to the rescue.
● Similar to Spring Data umbrella project.
Spring Cloud Netflix
● Configuration Management – Spring Cloud Config
● Service Registration & Discovery – Eureka
● Load Balancing – Feign & Ribbon
● Fault Tolerance (Circuit Breaker) – Hysterix
● Monitoring – Hysterix Dashboard
● Concurrent API Integration & Transformation - RxJava
Spring Cloud Config
● Distributed configuration management.
● Provides server and client-side support for externalized configuration.
● Store Configuration properties (YAML content) in remote repository (Git
supported by default)
● Curl -X POST http://localhost:8888/bus/refresh, to get the latest values from
the config server.
Exercise 3 : Config Server
Cloud Bus (AMQP / RabbitMQ)
Git (default)
properties
Config Server
/refresh
/refresh
Service Registry & Discovery - Eureka
● Eureka is Netflix OSS Project for Service Discovery Server & Client.
● Eureka Server – can be configured to be highly available, supports server
replication for resiliency.
● Clients registers with Eureka and sends heartbeat messages to Server.
● Eureka Server
@EnableEurekaServer
class Eureka {
}
● Eureka Client
@EnableDiscoveryClient
public class Application {... }
● Producer Consumer example
Exercise 4 : Eureka – Producer / Consumer
Load balancing - Ribbon
● Ribbon is a Netflix OSS Project, it provides software load balancers with
cluster of servers.
● Provides basic functionality like supply the public DNS name of servers
to client, rotate among the list of servers according to certain logic.
● Load balancer components
Rule – logic to determine which server to return from the serverlist.
Ping – to ensure server liveness
ServerList – can be static or dynamic
● Spring RestTemplate has been added with little bit of magic and made
Ribbon enabled.
● FeignClient is alternative to Spring RestTemplate, Feign is declarative
web service client, makes writing web service clients easier.
Exercise 5 : Producer / Consumer example with load balancer / Feign
Fault Tolerance - Hystrix
● Hystrix – Circuit Breaker Pattern
● Its a state machine, with 3 states – Closed, Open and Half-Open.
● Failures does not cascade up to the top of the call stack.
Exercise 6 : Hystrix in action
Monitoring
● Hystrix Dashboard
Import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard
@EnableHystrixDashboard
class HystrixDashboard { … }
Exercise 7 : Hystrix Dashboard in action
Concurrent API Integration - RxJava
● RxJava is Java implementation of MS
Reactive Extensions.
● A library for composing asynchronous
and event-based programs by using
Observable sequences.
● Netflix created RxJava to simplify
server side concurrency, a single
“heavy” client request that is executed
in parallel on the server.
● The service layer API method return an Observable<T> getData(), this can be
asynch or synch, and its transparent to the caller of this service.
● Can be achieved using Java Futures, but it supports one value, not for a
sequences. Also calling Future.get() will be a blocking.
● Callbacks can be used for asynchronous execution and works well for single level
of execution, but things gets complicated with nested Callbacks (callback hell !).
Conclusion
● Microservices Architectural Style needs certain infrastructure competencies
like, Rapid Provisioning, Continuous Delivery, Basic Monitoring, etc.,
● There are many new design patterns to learn when implementing a
distributed system.
● Spring Cloud Netflix implements certain patterns and Spring Boot makes it
easy to use.
References
● http://martinfowler.com/articles/microservices.html
● http://martinfowler.com/bliki/MicroservicePrerequisites.html
● http://projects.spring.io/spring-boot/
● http://projects.spring.io/spring-cloud/
● http://cloud.spring.io/spring-cloud-netflix/
● http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html
● https://github.com/ReactiveX/RxJava
● http://www.infoq.com/presentations/reactive-arch-grails
● http://www.infoq.com/presentations/Netflix-API-rxjava-hystrix
Images
● https://www.flickr.com/photos/bhophoto/384574407/

More Related Content

What's hot (20)

PDF
Building ‘Bootiful’ microservices cloud
Idan Fridman
 
PPTX
Reactive Micro Services with Java seminar
Gal Marder
 
PDF
Spring Boot
gedoplan
 
PPTX
Asynchronous programming in ASP.NET
Alex Thissen
 
PDF
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
 
PPTX
Validating latest changes with XCI
Victor Morales
 
PDF
Alfresco Transform Service DevCon 2019
J V
 
PDF
Gradual migration to MicroProfile
Rudy De Busscher
 
PPTX
DevOps with Elastic Beanstalk - TCCC-2014
scolestock
 
PDF
Advanced Spring Boot with Consul
VMware Tanzu
 
PPTX
Spring Web flow. A little flow of happiness
Strannik_2013
 
PPTX
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
DataArt
 
PPTX
How to contribute to an open source project and don’t die during the Code Rev...
Victor Morales
 
PPTX
ASP.NET vNext
Alex Thissen
 
PDF
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PPTX
Moving From Actions & Behaviors to Microservices
Jeff Potts
 
PDF
KKBOX WWDC17 Security - Antony
Liyao Chen
 
PPTX
ASP.NET Core Demos
Erik Noren
 
PDF
Containerize!
Henryk Konsek
 
PDF
Connecting Apache Kafka With Mule ESB
Jitendra Bafna
 
Building ‘Bootiful’ microservices cloud
Idan Fridman
 
Reactive Micro Services with Java seminar
Gal Marder
 
Spring Boot
gedoplan
 
Asynchronous programming in ASP.NET
Alex Thissen
 
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
 
Validating latest changes with XCI
Victor Morales
 
Alfresco Transform Service DevCon 2019
J V
 
Gradual migration to MicroProfile
Rudy De Busscher
 
DevOps with Elastic Beanstalk - TCCC-2014
scolestock
 
Advanced Spring Boot with Consul
VMware Tanzu
 
Spring Web flow. A little flow of happiness
Strannik_2013
 
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
DataArt
 
How to contribute to an open source project and don’t die during the Code Rev...
Victor Morales
 
ASP.NET vNext
Alex Thissen
 
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Moving From Actions & Behaviors to Microservices
Jeff Potts
 
KKBOX WWDC17 Security - Antony
Liyao Chen
 
ASP.NET Core Demos
Erik Noren
 
Containerize!
Henryk Konsek
 
Connecting Apache Kafka With Mule ESB
Jitendra Bafna
 

Similar to Developing Microservices using Spring - Beginner's Guide (20)

PPTX
Springboot Microservices
NexThoughts Technologies
 
PDF
Microservices and modularity with java
DPC Consulting Ltd
 
PPTX
Ultimate Guide to Microservice Architecture on Kubernetes
kloia
 
PDF
Lagom : Reactive microservice framework
Fabrice Sznajderman
 
PDF
An approach to responsive, realtime with Backbone.js and WebSockets
Andrei Sebastian Cîmpean
 
PDF
Java one2013
Aleksei Kornev
 
ODP
Introduction to Lagom Framework
Knoldus Inc.
 
PDF
Microservices @ Work - A Practice Report of Developing Microservices
QAware GmbH
 
PDF
NetflixOSS Open House Lightning talks
Ruslan Meshenberg
 
PDF
All About Microservices and OpenSource Microservice Frameworks
Mohammad Asif Siddiqui
 
ODP
Drools & jBPM future roadmap talk
Mark Proctor
 
PPT
Cloud compiler - Minor Project by students of CBPGEC
vipin kumar
 
PDF
Scale and Load Testing of Micro-Service
IRJET Journal
 
PPTX
OS for AI: Elastic Microservices & the Next Gen of ML
Nordic APIs
 
PPT
Distributed & Highly Available server applications in Java and Scala
Max Alexejev
 
PDF
Pivotal Cloud Foundry 2.6: A First Look
VMware Tanzu
 
PPTX
Liferay (DXP) 7 Tech Meetup for Developers
Azilen Technologies Pvt. Ltd.
 
PDF
AKS: k8s e azure
Alessandro Melchiori
 
PPSX
Struts 2 - Introduction
Hitesh-Java
 
PDF
MuleSoft Surat Virtual Meetup#6 - MuleSoft Project Template Using Maven Arche...
Jitendra Bafna
 
Springboot Microservices
NexThoughts Technologies
 
Microservices and modularity with java
DPC Consulting Ltd
 
Ultimate Guide to Microservice Architecture on Kubernetes
kloia
 
Lagom : Reactive microservice framework
Fabrice Sznajderman
 
An approach to responsive, realtime with Backbone.js and WebSockets
Andrei Sebastian Cîmpean
 
Java one2013
Aleksei Kornev
 
Introduction to Lagom Framework
Knoldus Inc.
 
Microservices @ Work - A Practice Report of Developing Microservices
QAware GmbH
 
NetflixOSS Open House Lightning talks
Ruslan Meshenberg
 
All About Microservices and OpenSource Microservice Frameworks
Mohammad Asif Siddiqui
 
Drools & jBPM future roadmap talk
Mark Proctor
 
Cloud compiler - Minor Project by students of CBPGEC
vipin kumar
 
Scale and Load Testing of Micro-Service
IRJET Journal
 
OS for AI: Elastic Microservices & the Next Gen of ML
Nordic APIs
 
Distributed & Highly Available server applications in Java and Scala
Max Alexejev
 
Pivotal Cloud Foundry 2.6: A First Look
VMware Tanzu
 
Liferay (DXP) 7 Tech Meetup for Developers
Azilen Technologies Pvt. Ltd.
 
AKS: k8s e azure
Alessandro Melchiori
 
Struts 2 - Introduction
Hitesh-Java
 
MuleSoft Surat Virtual Meetup#6 - MuleSoft Project Template Using Maven Arche...
Jitendra Bafna
 
Ad

Recently uploaded (20)

PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
July Patch Tuesday
Ivanti
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
July Patch Tuesday
Ivanti
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Ad

Developing Microservices using Spring - Beginner's Guide

  • 1. Developing Microservices using Spring - Beginners Guide * Disclaimer: There are various topics covered in this session, each topic is worth a 2 day workshop session in itself, so this will cover only the very basics and try to provide a birds eye view of the various concepts.
  • 2. Agenda ● Microservices ● What ? ● Why ? ● Challenges of a distributed system ● Building Microservices using Spring ● Spring Boot ● Spring Cloud & Netflix OSS ● Conclusion
  • 3. All Roads Lead to Microservices Cloud aPaaS Continuous Delivery Dev Ops Agile Microservices
  • 4. Microservices – What ? The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. -Martin Fowler http://martinfowler.com/articles/microservices.html Microservices are loosely coupled service oriented architecture with bounded contexts. - Adrian Cockroft
  • 5. Monolith Application ● Imaginary E-Commerce App ● Very efficient inter process calls between components ● Good architecture, until it needs to scale during busy shopping season.
  • 6. Monolith Application ● You want to scale only 'Shopping Cart' and 'Checkout' Modules, but instead have to scale the entire App ● Other Challenges with multiple database and Session management
  • 7. Monolith Application – Good Parts ● Contains Everything ● Single Deployment ● Minimum viable product can be reached quickly ● Easy (or Familiar) to understand
  • 8. Monolith Application – Bad Parts ● Complex Architecture ● Difficult to Scale (cannot scale only selected modules) ● Long term commitment to one technical stack
  • 9. Microservices ● Distillation of SOA ● Single Context ● Smart Services / Dumb Pipes ● RESTful Communications ● Smaller codebase – easy to reason about ● Easy to scale
  • 11. Challenges of distributed system ● Configuration Management ● Service Registration & Discovery ● Load Balancing ● Fault Tolerance ● Monitoring ● Concurrent API Integration & Transformation *(This is not a complete list...)
  • 12. Spring Boot ● Built on top of Spring framework ● Opinionated convention over configuration ● Creates stand-alone “Production” ready app ● Embedded Tomcat / Jetty ● Various Starters POMs to simplify configuration ● https://start.spring.io/ - Spring Initializr template project (We can replace our kick start scripts with something like this)
  • 13. Spring Boot ● It can get pretty small.. @RestController class ThisWillActuallyRun { @RequestMapping("/") String home() { "Hello World!" } } Exercise 1 : Spring Boot Hello World
  • 14. Spring Boot ● Retrieve data from database – Spring Data REST ● Entity Class @Entity @Table(name="users") public class User implements Serializable{... } ● Repository Class @Repository public interface UserRepository extends JpaRepository<User, Integer> { } ● Main Class @SpringBootApplication public class SampleDataJpaApplication { public static void main(String[] args) throws Exception { SpringApplication.run(SampleDataJpaApplication.class, args); } } ● The same project runs in local and Cloud - PWS Exercise 2 : Spring Data REST
  • 15. Spring Cloud ● Writing a single service with Spring Boot is easy. ● But things gets complex with managing multiple services ● http://cloud.spring.io/spring-cloud-netflix/ , to the rescue. ● Similar to Spring Data umbrella project.
  • 16. Spring Cloud Netflix ● Configuration Management – Spring Cloud Config ● Service Registration & Discovery – Eureka ● Load Balancing – Feign & Ribbon ● Fault Tolerance (Circuit Breaker) – Hysterix ● Monitoring – Hysterix Dashboard ● Concurrent API Integration & Transformation - RxJava
  • 17. Spring Cloud Config ● Distributed configuration management. ● Provides server and client-side support for externalized configuration. ● Store Configuration properties (YAML content) in remote repository (Git supported by default) ● Curl -X POST http://localhost:8888/bus/refresh, to get the latest values from the config server. Exercise 3 : Config Server Cloud Bus (AMQP / RabbitMQ) Git (default) properties Config Server /refresh /refresh
  • 18. Service Registry & Discovery - Eureka ● Eureka is Netflix OSS Project for Service Discovery Server & Client. ● Eureka Server – can be configured to be highly available, supports server replication for resiliency. ● Clients registers with Eureka and sends heartbeat messages to Server. ● Eureka Server @EnableEurekaServer class Eureka { } ● Eureka Client @EnableDiscoveryClient public class Application {... } ● Producer Consumer example Exercise 4 : Eureka – Producer / Consumer
  • 19. Load balancing - Ribbon ● Ribbon is a Netflix OSS Project, it provides software load balancers with cluster of servers. ● Provides basic functionality like supply the public DNS name of servers to client, rotate among the list of servers according to certain logic. ● Load balancer components Rule – logic to determine which server to return from the serverlist. Ping – to ensure server liveness ServerList – can be static or dynamic ● Spring RestTemplate has been added with little bit of magic and made Ribbon enabled. ● FeignClient is alternative to Spring RestTemplate, Feign is declarative web service client, makes writing web service clients easier. Exercise 5 : Producer / Consumer example with load balancer / Feign
  • 20. Fault Tolerance - Hystrix ● Hystrix – Circuit Breaker Pattern ● Its a state machine, with 3 states – Closed, Open and Half-Open. ● Failures does not cascade up to the top of the call stack. Exercise 6 : Hystrix in action
  • 21. Monitoring ● Hystrix Dashboard Import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard @EnableHystrixDashboard class HystrixDashboard { … } Exercise 7 : Hystrix Dashboard in action
  • 22. Concurrent API Integration - RxJava ● RxJava is Java implementation of MS Reactive Extensions. ● A library for composing asynchronous and event-based programs by using Observable sequences. ● Netflix created RxJava to simplify server side concurrency, a single “heavy” client request that is executed in parallel on the server. ● The service layer API method return an Observable<T> getData(), this can be asynch or synch, and its transparent to the caller of this service. ● Can be achieved using Java Futures, but it supports one value, not for a sequences. Also calling Future.get() will be a blocking. ● Callbacks can be used for asynchronous execution and works well for single level of execution, but things gets complicated with nested Callbacks (callback hell !).
  • 23. Conclusion ● Microservices Architectural Style needs certain infrastructure competencies like, Rapid Provisioning, Continuous Delivery, Basic Monitoring, etc., ● There are many new design patterns to learn when implementing a distributed system. ● Spring Cloud Netflix implements certain patterns and Spring Boot makes it easy to use.
  • 24. References ● http://martinfowler.com/articles/microservices.html ● http://martinfowler.com/bliki/MicroservicePrerequisites.html ● http://projects.spring.io/spring-boot/ ● http://projects.spring.io/spring-cloud/ ● http://cloud.spring.io/spring-cloud-netflix/ ● http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html ● https://github.com/ReactiveX/RxJava ● http://www.infoq.com/presentations/reactive-arch-grails ● http://www.infoq.com/presentations/Netflix-API-rxjava-hystrix Images ● https://www.flickr.com/photos/bhophoto/384574407/