SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Application Development
Frameworks
Java EE vs Spring Boot & Spring Cloud
@benbravo73
“Compare & contrast
the use of Spring
and tell me why
Spring Boot / Cloud
is important”
Outline
● Choosing a Framework
○ What’s Important?
○ Cloud-native apps
○ Microservices
○ Spring Boot vs Java EE
○ Cloud features
○ Adoption
● Summary
Developers need
frameworks to help
them do their work
They simply want to
Build, Ship & Run their
code
Choosing a Framework
Build, Ship & Run means:
● Develop it
● Test it
● Package it
● Deploy it
● Monitor it
● Scale it
There’s a lot to do, and it’s
complex work
Good frameworks make it
fast and easy
What’s important?
Choosing a Framework
For businesses, fast and easy
development also means:
Increased productivity ☑
Better quality ☑
More frequent releases ☑
Greater engagement ☑
Easier experimentation ☑
What’s important?
Cloud is now vital part
of application delivery
and scalability
Apps need to be
“cloud-native” by
default
Choosing a Framework
Cloud-native apps are
● Self contained
● Robust
● Self-healing
● Elastic
Cloud-native apps can be
deployed into the cloud and
scaled with ease
So how do you build a cloud-
native app?
Cloud-native apps
Choosing a Framework
The current best option for
building cloud-native apps is
Microservice architecture
Modern frameworks support
microservice architecture out of
the box
But what constitutes a
microservice?
Cloud-native apps
Choosing a Framework
Microservices
Microservices are services that
are…
● Small
● Isolated
● Reusable
● Disposable
Because they’re small you may
need hundreds so they must be
easy to make and manage!
Choosing a Framework
Microservices
In Java there are two
competing service
development frameworks...
● Java Platform
Enterprise Edition
[JEE]
● Spring Framework
[inc Boot & Cloud]
Java Enterprise Edition
is an Application Server
specification for full-
stack monolithic web-
apps
Spring Boot is a
Java based
framework for
building
microservices
Let’s compare
Spring Boot and
Java EE when
developing
microservices
vs
Choosing a Framework
Scenario: The boss wants a
“hello-world” microservice and
she want’s it now…
Let’s compare the effort
required to meet this challenge
using Java EE vs Spring Boot
> Note the number of steps for each and
the time required to complete them
Spring Boot vs JEE
1. Go to start.spring.io and download a
starter project
2. Open the project in your IDE
3. Create a new Controller class
4. Add @RestController to your class
5. Add @RequestMappping to your method
6. Build your JAR (mvn package)
7. Run java -jar <filename>
8. Check your message is returned
Congratulations, your service is up!
Elapsed Time 15 mins
1. Choose a JEE Application Server with the right mix of
features, standards support, etc. (weeks*)
2. Install the JEE application server on the target
machine
3. Add the vendors JEE JARs to your Maven Repository
4. Create a new WAR project (mvn archetype)
5. Add the Jar dependencies you need to your POM (i.
e. the vendors JEE jar)
6. Open the project in your IDE
7. Create a new Controller class
8. Add @Path to your class
9. Add @GET to your method
10. Add your servlet-mapping url-pattern instructions to
your servlet.xml file
11. Build and package your WAR file
12. Take your WAR file to the application server
13. Install it in the correct folder on the app server
14. Reboot / restart the app server
15. Check the log / console to see if your particular
service has started successfully
16. Call localhost to check your message is returned
Congratulations, your service is up!
Elapsed Time 2-4 hours*
Spring Boot
Spring Boot:
Builds easier thanks to pre-
configured dependencies and
auto-configuration
Ships easier thanks to simple
JAR packaging
Runs easier thanks to
embedded servers
Choosing a Framework
Spring Boot vs JEE
Microservice
developers find
Spring Boot easier,
cleaner, and more
productive
“Spring Boot blew
my mind! I used to
spend days getting
a service running”
(Real quote from a Java developer on Reddit)
But what about the
cloud?
Choosing a Framework
Cloud features
Microservices need a
supportive environment, one
with cloud specific features...
● API Gateway
● Service Discovery
● Load balancing
● Externalised Config
● Metrics & Monitoring
● Persistence & Messaging
● Etc...
Spring Cloud adds
several cloud-native
features to Spring Boot
You don’t get any of
these features with JEE
Service Discovery ☑
External Config ☑
API Gateway ☑
Circuit Breakers ☑
Load Balancers ☑
Event Bus ☑
Monitoring & Logging ☑
Spring Cloud
Service Discovery ❎
External Config ❎
API Gateway ❎
Circuit Breakers ❎
Load Balancers ❎
Event Bus ❎
Monitoring & Logging ❎
Spring Boot is trending!
Adoption is growing
rapidly across all
sectors and industries
Meanwhile, JEE adoption is in decline
Google Trends (JEE vs Spring Boot)
Tipping point: October 2015
Summary
Java Enterprise Edition
● JEE is ill-equipped for cloud-native microservice development
● JEE is missing several crucial cloud capabilities
● JEE config & packaging slows Build, Ship and Run cycles
● JEE adoption is in decline
Spring Boot & Spring Cloud
● Spring Boot & Spring Cloud accelerate your cloud
development
● Building microservices with Spring Boot is easier, cleaner and
more productive than in JEE
● Spring Cloud adds powerful cloud-native capabilities
● Adoption of Spring Boot and Spring Cloud is growing rapidly
Like to know more?
Check out my Spring Boot & Spring Cloud CQRS Microservice project…
On Wordpress: https://goo.gl/ijjREg
On GitHub: https://goo.gl/uGGISx
On SlideShare: http://goo.gl/gnoy6j
@benbravo73

Contenu connexe

Tendances

Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!Jakub Kubrynski
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring BootTrey Howard
 
Spring - Part 2 - Autowiring, Annotations, Java based Configuration - slides
Spring - Part 2 - Autowiring, Annotations, Java based Configuration - slidesSpring - Part 2 - Autowiring, Annotations, Java based Configuration - slides
Spring - Part 2 - Autowiring, Annotations, Java based Configuration - slidesHitesh-Java
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action Alex Movila
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework Rohit Kelapure
 
Asp.net MVC training session
Asp.net MVC training sessionAsp.net MVC training session
Asp.net MVC training sessionHrichi Mohamed
 
Spring Interview Questions and Answers | Spring Tutorial | Spring Framework T...
Spring Interview Questions and Answers | Spring Tutorial | Spring Framework T...Spring Interview Questions and Answers | Spring Tutorial | Spring Framework T...
Spring Interview Questions and Answers | Spring Tutorial | Spring Framework T...Edureka!
 
9781305078444 ppt ch02
9781305078444 ppt ch029781305078444 ppt ch02
9781305078444 ppt ch02Terry Yoast
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - CoreDzmitry Naskou
 
Spring Framework
Spring FrameworkSpring Framework
Spring Frameworknomykk
 

Tendances (20)

Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
 
Spring Core
Spring CoreSpring Core
Spring Core
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
 
Spring boot
Spring bootSpring boot
Spring boot
 
Spring boot
Spring bootSpring boot
Spring boot
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
Spring - Part 2 - Autowiring, Annotations, Java based Configuration - slides
Spring - Part 2 - Autowiring, Annotations, Java based Configuration - slidesSpring - Part 2 - Autowiring, Annotations, Java based Configuration - slides
Spring - Part 2 - Autowiring, Annotations, Java based Configuration - slides
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework
 
Asp.net MVC training session
Asp.net MVC training sessionAsp.net MVC training session
Asp.net MVC training session
 
Spring Interview Questions and Answers | Spring Tutorial | Spring Framework T...
Spring Interview Questions and Answers | Spring Tutorial | Spring Framework T...Spring Interview Questions and Answers | Spring Tutorial | Spring Framework T...
Spring Interview Questions and Answers | Spring Tutorial | Spring Framework T...
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
WebSockets with Spring 4
WebSockets with Spring 4WebSockets with Spring 4
WebSockets with Spring 4
 
Java Spring
Java SpringJava Spring
Java Spring
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Spring annotation
Spring annotationSpring annotation
Spring annotation
 
9781305078444 ppt ch02
9781305078444 ppt ch029781305078444 ppt ch02
9781305078444 ppt ch02
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 

En vedette

Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...Mario Fusco
 
From object oriented to functional domain modeling
From object oriented to functional domain modelingFrom object oriented to functional domain modeling
From object oriented to functional domain modelingMario Fusco
 
Introduction to Kafka with Spring Integration
Introduction to Kafka with Spring IntegrationIntroduction to Kafka with Spring Integration
Introduction to Kafka with Spring IntegrationBorislav Markov
 
Introduction To Functional Reactive Programming Poznan
Introduction To Functional Reactive Programming PoznanIntroduction To Functional Reactive Programming Poznan
Introduction To Functional Reactive Programming PoznanEliasz Sawicki
 
Spring integration with the Java DSL
Spring integration with the Java DSLSpring integration with the Java DSL
Spring integration with the Java DSLBen Wilcock
 
Microservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event SourcingMicroservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event SourcingBen Wilcock
 
Integration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesIntegration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesApcera
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Aviran Mordo
 

En vedette (8)

Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...
 
From object oriented to functional domain modeling
From object oriented to functional domain modelingFrom object oriented to functional domain modeling
From object oriented to functional domain modeling
 
Introduction to Kafka with Spring Integration
Introduction to Kafka with Spring IntegrationIntroduction to Kafka with Spring Integration
Introduction to Kafka with Spring Integration
 
Introduction To Functional Reactive Programming Poznan
Introduction To Functional Reactive Programming PoznanIntroduction To Functional Reactive Programming Poznan
Introduction To Functional Reactive Programming Poznan
 
Spring integration with the Java DSL
Spring integration with the Java DSLSpring integration with the Java DSL
Spring integration with the Java DSL
 
Microservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event SourcingMicroservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event Sourcing
 
Integration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesIntegration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices Architectures
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015
 

Similaire à Microservices - java ee vs spring boot and spring cloud

Spring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applicationsSpring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applicationsKaty Slemon
 
Accelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at ScaleAccelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at ScaleAsir Selvasingh
 
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...VMware Tanzu
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 
Cloud-based Performance & Web Load Testing
Cloud-based Performance & Web Load TestingCloud-based Performance & Web Load Testing
Cloud-based Performance & Web Load TestingInCycleSoftware
 
Enhancing Website and Application Testing with Java Scrapers.pdf
Enhancing Website and Application Testing with Java Scrapers.pdfEnhancing Website and Application Testing with Java Scrapers.pdf
Enhancing Website and Application Testing with Java Scrapers.pdfAnanthReddy38
 
Module 6 _ Spring Boot for java application to begin
Module 6 _ Spring Boot for java application to beginModule 6 _ Spring Boot for java application to begin
Module 6 _ Spring Boot for java application to beginDeepakprasad838637
 
Seminar Modernizing Your Development Using Microservices, Container & Kubernetes
Seminar Modernizing Your Development Using Microservices, Container & KubernetesSeminar Modernizing Your Development Using Microservices, Container & Kubernetes
Seminar Modernizing Your Development Using Microservices, Container & KubernetesPT Datacomm Diangraha
 
Spring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – IntroductionSpring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – IntroductionTomcy John
 
Getting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceGetting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceCloudBees
 
Spring presentecion isil
Spring presentecion isilSpring presentecion isil
Spring presentecion isilWilly Aguirre
 
Spring presentecion isil
Spring presentecion isilSpring presentecion isil
Spring presentecion isilWilly Aguirre
 
Test Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and MochaTest Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and MochaSalesforce Developers
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaSCloudBees
 
What should I do now?! JCS for WebLogic Admins
What should I do now?! JCS for WebLogic AdminsWhat should I do now?! JCS for WebLogic Admins
What should I do now?! JCS for WebLogic AdminsSimon Haslam
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023VMware Tanzu
 

Similaire à Microservices - java ee vs spring boot and spring cloud (20)

Spring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applicationsSpring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applications
 
Accelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at ScaleAccelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at Scale
 
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...
 
spring
springspring
spring
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
oraclewls-jrebel
oraclewls-jrebeloraclewls-jrebel
oraclewls-jrebel
 
Cloud-based Performance & Web Load Testing
Cloud-based Performance & Web Load TestingCloud-based Performance & Web Load Testing
Cloud-based Performance & Web Load Testing
 
Enhancing Website and Application Testing with Java Scrapers.pdf
Enhancing Website and Application Testing with Java Scrapers.pdfEnhancing Website and Application Testing with Java Scrapers.pdf
Enhancing Website and Application Testing with Java Scrapers.pdf
 
Module 6 _ Spring Boot for java application to begin
Module 6 _ Spring Boot for java application to beginModule 6 _ Spring Boot for java application to begin
Module 6 _ Spring Boot for java application to begin
 
Seminar Modernizing Your Development Using Microservices, Container & Kubernetes
Seminar Modernizing Your Development Using Microservices, Container & KubernetesSeminar Modernizing Your Development Using Microservices, Container & Kubernetes
Seminar Modernizing Your Development Using Microservices, Container & Kubernetes
 
Spring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – IntroductionSpring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – Introduction
 
Spring Framework Rohit
Spring Framework RohitSpring Framework Rohit
Spring Framework Rohit
 
Getting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceGetting Started with Platform-as-a-Service
Getting Started with Platform-as-a-Service
 
Spring presentecion isil
Spring presentecion isilSpring presentecion isil
Spring presentecion isil
 
Spring presentecion isil
Spring presentecion isilSpring presentecion isil
Spring presentecion isil
 
Test Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and MochaTest Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and Mocha
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
 
What should I do now?! JCS for WebLogic Admins
What should I do now?! JCS for WebLogic AdminsWhat should I do now?! JCS for WebLogic Admins
What should I do now?! JCS for WebLogic Admins
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 

Dernier

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 

Dernier (20)

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 

Microservices - java ee vs spring boot and spring cloud

  • 1. Application Development Frameworks Java EE vs Spring Boot & Spring Cloud @benbravo73
  • 2. “Compare & contrast the use of Spring and tell me why Spring Boot / Cloud is important”
  • 3. Outline ● Choosing a Framework ○ What’s Important? ○ Cloud-native apps ○ Microservices ○ Spring Boot vs Java EE ○ Cloud features ○ Adoption ● Summary
  • 4. Developers need frameworks to help them do their work They simply want to Build, Ship & Run their code
  • 5. Choosing a Framework Build, Ship & Run means: ● Develop it ● Test it ● Package it ● Deploy it ● Monitor it ● Scale it There’s a lot to do, and it’s complex work Good frameworks make it fast and easy What’s important?
  • 6. Choosing a Framework For businesses, fast and easy development also means: Increased productivity ☑ Better quality ☑ More frequent releases ☑ Greater engagement ☑ Easier experimentation ☑ What’s important?
  • 7. Cloud is now vital part of application delivery and scalability Apps need to be “cloud-native” by default
  • 8. Choosing a Framework Cloud-native apps are ● Self contained ● Robust ● Self-healing ● Elastic Cloud-native apps can be deployed into the cloud and scaled with ease So how do you build a cloud- native app? Cloud-native apps
  • 9. Choosing a Framework The current best option for building cloud-native apps is Microservice architecture Modern frameworks support microservice architecture out of the box But what constitutes a microservice? Cloud-native apps
  • 10. Choosing a Framework Microservices Microservices are services that are… ● Small ● Isolated ● Reusable ● Disposable Because they’re small you may need hundreds so they must be easy to make and manage!
  • 11. Choosing a Framework Microservices In Java there are two competing service development frameworks... ● Java Platform Enterprise Edition [JEE] ● Spring Framework [inc Boot & Cloud]
  • 12. Java Enterprise Edition is an Application Server specification for full- stack monolithic web- apps
  • 13. Spring Boot is a Java based framework for building microservices
  • 14. Let’s compare Spring Boot and Java EE when developing microservices vs
  • 15. Choosing a Framework Scenario: The boss wants a “hello-world” microservice and she want’s it now… Let’s compare the effort required to meet this challenge using Java EE vs Spring Boot > Note the number of steps for each and the time required to complete them Spring Boot vs JEE
  • 16. 1. Go to start.spring.io and download a starter project 2. Open the project in your IDE 3. Create a new Controller class 4. Add @RestController to your class 5. Add @RequestMappping to your method 6. Build your JAR (mvn package) 7. Run java -jar <filename> 8. Check your message is returned Congratulations, your service is up! Elapsed Time 15 mins 1. Choose a JEE Application Server with the right mix of features, standards support, etc. (weeks*) 2. Install the JEE application server on the target machine 3. Add the vendors JEE JARs to your Maven Repository 4. Create a new WAR project (mvn archetype) 5. Add the Jar dependencies you need to your POM (i. e. the vendors JEE jar) 6. Open the project in your IDE 7. Create a new Controller class 8. Add @Path to your class 9. Add @GET to your method 10. Add your servlet-mapping url-pattern instructions to your servlet.xml file 11. Build and package your WAR file 12. Take your WAR file to the application server 13. Install it in the correct folder on the app server 14. Reboot / restart the app server 15. Check the log / console to see if your particular service has started successfully 16. Call localhost to check your message is returned Congratulations, your service is up! Elapsed Time 2-4 hours* Spring Boot
  • 17. Spring Boot: Builds easier thanks to pre- configured dependencies and auto-configuration Ships easier thanks to simple JAR packaging Runs easier thanks to embedded servers Choosing a Framework Spring Boot vs JEE
  • 18. Microservice developers find Spring Boot easier, cleaner, and more productive
  • 19. “Spring Boot blew my mind! I used to spend days getting a service running” (Real quote from a Java developer on Reddit)
  • 20. But what about the cloud?
  • 21. Choosing a Framework Cloud features Microservices need a supportive environment, one with cloud specific features... ● API Gateway ● Service Discovery ● Load balancing ● Externalised Config ● Metrics & Monitoring ● Persistence & Messaging ● Etc...
  • 22. Spring Cloud adds several cloud-native features to Spring Boot You don’t get any of these features with JEE
  • 23. Service Discovery ☑ External Config ☑ API Gateway ☑ Circuit Breakers ☑ Load Balancers ☑ Event Bus ☑ Monitoring & Logging ☑ Spring Cloud Service Discovery ❎ External Config ❎ API Gateway ❎ Circuit Breakers ❎ Load Balancers ❎ Event Bus ❎ Monitoring & Logging ❎
  • 24. Spring Boot is trending! Adoption is growing rapidly across all sectors and industries Meanwhile, JEE adoption is in decline
  • 25. Google Trends (JEE vs Spring Boot) Tipping point: October 2015
  • 27. Java Enterprise Edition ● JEE is ill-equipped for cloud-native microservice development ● JEE is missing several crucial cloud capabilities ● JEE config & packaging slows Build, Ship and Run cycles ● JEE adoption is in decline
  • 28. Spring Boot & Spring Cloud ● Spring Boot & Spring Cloud accelerate your cloud development ● Building microservices with Spring Boot is easier, cleaner and more productive than in JEE ● Spring Cloud adds powerful cloud-native capabilities ● Adoption of Spring Boot and Spring Cloud is growing rapidly
  • 29. Like to know more? Check out my Spring Boot & Spring Cloud CQRS Microservice project… On Wordpress: https://goo.gl/ijjREg On GitHub: https://goo.gl/uGGISx On SlideShare: http://goo.gl/gnoy6j @benbravo73