SlideShare a Scribd company logo
Von JavaEE auf
Microservice in 6 Monaten
The Good, the Bad, and the wtfs...
André Goliath
ENTERPRISE IT
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
MY VISION
(AND MY KEY HOLDER, TOO)
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
SO, HOW TO GET THERE?
WHEN
WHY
WITH WHOM
TO WHAT EXTENT
SO, HOW TO GET THERE?
WHEN
WHY
WITH WHOM
TO WHAT EXTENT
SO, HOW TO GET THERE?
Now!
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
„Digitization“
Cloud Computing Internet of Things
Virtual Reality
Microservices
$anything as a Service
fastIndustry 4.0
Web 2.0
Social Media
Big Data
Privacy & Security
„Digitization“
Cloud Computing Internet of Things
Virtual Reality
Microservices
$anything as a Service
Industry 4.0
Web 2.0
Social Media
Big Data
Privacy & Security
yeah, let´s
do this!
fast
WHEN
WHY
WITH WHOM
TO WHAT EXTENT
SO, HOW TO GET THERE?
Because we can!
Because we need to!
How long does it take from idea to production?
How long does it need to take from idea to production?
What is the cost of implementing an one-liner feature?
What should the cost be?
Because we need to!
How long does it take from idea to production?
How long does it need to take from idea to production?
What is the cost of implementing an one-liner feature?
What should the cost be?
6 months
Cost to develop x 5
and then some…
6 Monoliths.
600 Services. 15 Clients. 25 Backends.
Featuring code from 1995 till today.
(Anyone remember J2EE1.2 ?)
Don´t get me wrong.
Monoliths are not bad.
(at least not all of them)
WHEN
WHY
WITH WHOM
TO WHAT EXTENT
SO, HOW TO GET THERE?
How to code?
How to deploy?
How to use?
SO, HOW TO GET THERE?
How to code?
How to deploy?
How to use?
SO, HOW TO GET THERE?
Spring Boot
But be careful!
How to catch a 404 error
and wrap it in your own JSON response?
How to catch a 404 error
and wrap it in your own JSON response?
It took us about 30 work hours to figure this one out.
And it involves manipulating the embedded Tomcat.
Without a specific Spring Boot API for that feature.
Coding 1 Microservice? Easy.
Coding 100 Microservices? Not so easy.
How do we organize our configuration?
Do we want to share code?
Do we want to force all microservices to use the same Spring Boot version?
Do we allow communication between services?
What aspects do we NEED to be the same for all services?
HATOEAS? Service Boundaries?
Share framework code, nothing else.
Share framework code, nothing else.
If you have no regrets
about sharing your code
on github, it is probably
framework code
Share framework code, nothing else.
Filter (Security, Authentication, Logging, Monitoring)
Error Handling
Profile / Envíronment Configuration
Logging Configuration
Common Documentation
If you have no regrets
about sharing your code
on github, it is probably
framework code
How about communication?
Customer Search Card Management Account Management
„Backend“ Microservices
Mobile App Online Banking Branch
„Gateway“ Microservices
Mobile App Online Banking Branch
Actual Frontends
Customer Search Card Management Account Management
„Backend“ Microservices
Data
Tailoring
Mobile App Online Banking Branch
„Gateway“ Microservices
Mobile App Online Banking Branch
Actual Frontends
HATEOAS
Links
Service
Orchestration
Clientspecific
Security
Spring Cloud
„Production-Ready“ Features…
… but only in an ideal world.
Spring Cloud
Actuator endpoints
Good for quick debugging, but how to integrate them in an enterprise monitoring world?
Configserver
You better play by the rules. Don´t use a – in your service name!
Routing Stuff (Eureka, Zuul, Ribbon)
Works. But only if you commit to doing routing the Netflix-way.
How to code?
How to deploy?
How to use?
SO, HOW TO GET THERE?
Automation!
Tests
Builds
Provisioning
Deployments
Automation! But…
Strict Hardware and OS Restrictions
No direct communication between development and production environments
No SSH connections to production
„I don´t trust those tools“ (senior dev.)
You want to put something into production?
Fine, here complete these forms,
and have them signed by 10 people,
who have never heard of you,
and have no clue what you are doing.
The most important rule
Use the same deployment toolchain
for development, UATs, and production!
So here is what we did.
Step 1: Prepare everything for coding
Code Repo
Developer
Jenkins
Deploy
Scripts
Ansible
ansible-playbook create.yml
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Step 2: Code and Test
Code Repo
Developer
Jenkins
Deploy
Scripts
git push origin f-newStuff
git
post-push
hook
ssh
scp
Development / Test Environment
Service
Host A
Service
Host B
Config
Server
Apache
mod_proxy
Step 3: Deploy to Production
Code Repo
Developer
Deploy
Scripts
POTS:
„Please deploy v1, I‘ll mail you the paperwork“
ftp
ssh
Development / Test Environment
Service
Host A
Service
Host B
Config
Server
Apache
mod_proxy
Ops Guy
Production Environment
Gateway
Service
Host B
Config
Server
Apache
mod_proxy
some proprietary protocols…
Service
Host A
Why no Docker?
Why no Docker?
Getting into Docker is easy. Even at a later stage.
Getting back from Docker to something else is a hell of a ride.
How to code?
How to deploy?
How to use?
SO, HOW TO GET THERE?
Working software
over comprehensive documentation
- agilemanifesto.org -
Test-Driven Documentation
using spring-restdocs
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Swagger UI
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
WHEN
WHY
WITH WHOM
TO WHAT EXTENT
SO, HOW TO GET THERE?
You must overcome Conway‘s Law
Vertical Teams
Just get used to it.
Customer Search Card Management Account Management
„Backend“ Microservices
Mobile App Online Banking Branch
„Gateway“ Microservices
Mobile App Online Banking Branch
Actual Frontends
All developed in
one team!?!
WHEN
WHY
WITH WHOM
TO WHAT EXTENT
SO, HOW TO GET THERE?
There is no need for a big bang
We started with 1 service and 1 client
There are viable migration paths
even for legacy code
Bottom Line?
It works. Even in enterprises.
One step at a time,
and you´ll be fine.
Thank You!
André Goliath
Senior Technical Consultant
andre.goliath@senacor.de

More Related Content

PDF
Javaland 2017: "You´ll do microservices now". Now what?
PPTX
Das kannste schon so machen
PDF
Don't screw it up: how to build durable web apis
PDF
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...
PDF
The Real World - Plugging the Enterprise Into It (nodejs)
PDF
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
PDF
Going Node At Netflix
PDF
9 anti-patterns for node.js teams
Javaland 2017: "You´ll do microservices now". Now what?
Das kannste schon so machen
Don't screw it up: how to build durable web apis
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...
The Real World - Plugging the Enterprise Into It (nodejs)
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Going Node At Netflix
9 anti-patterns for node.js teams

What's hot (20)

PDF
Modern UI Development With Node.js
PDF
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
PDF
Deploying JHipster Microservices
PDF
探討Web ui自動化測試工具
PDF
JavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
PDF
Microservices for the Masses with Spring Boot, JHipster, and JWT - Rich Web 2016
PPTX
Introduction to NodeJS
PDF
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
PPTX
Introduction to Node.js
PDF
Night Watch with QA
PDF
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
PDF
Tricks and Tips With NIO Using the Grizzly Framework
PDF
[HTML5DevConf SF] Hardware Hacking for Javascript Developers
PPTX
Node.JS error handling best practices
PPTX
Introduction to Node js
PDF
Java Web Application Security - UberConf 2011
PDF
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
PPTX
前端網頁自動測試
PDF
Abusing bleeding edge web standards for appsec glory
PDF
2021 04-15 operational verification (with notes)
Modern UI Development With Node.js
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
Deploying JHipster Microservices
探討Web ui自動化測試工具
JavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
Microservices for the Masses with Spring Boot, JHipster, and JWT - Rich Web 2016
Introduction to NodeJS
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
Introduction to Node.js
Night Watch with QA
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
Tricks and Tips With NIO Using the Grizzly Framework
[HTML5DevConf SF] Hardware Hacking for Javascript Developers
Node.JS error handling best practices
Introduction to Node js
Java Web Application Security - UberConf 2011
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
前端網頁自動測試
Abusing bleeding edge web standards for appsec glory
2021 04-15 operational verification (with notes)
Ad

Similar to Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs... (20)

PDF
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
PPTX
Securing Underprotected APIs - Deja vu Security
PDF
Securing a Great Developer Experience - DevOps Indonesia Meetup by Stefan Str...
PDF
The Modern Tech Stack: Microservices - The Dark Side
PDF
Fixing security by fixing software development
PDF
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
PDF
Microservices, Microfrontends and Feature Teams
PPT
Software Trends, 2019
PDF
Faster Secure Software Development with Continuous Deployment - PH Days 2013
PDF
Using Data Science & Serverless Python to find apartment in Toronto
PDF
How to build a social network on serverless
PDF
APIdays Barcelona 2019 - How to build a social network on Serverless with Yan...
KEY
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
ZIP
iPhone/iPad Development with Titanium
PDF
Automation in iOS development
PDF
Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...
PDF
Serverless 101 in Montreal
PDF
Canopy SF Home Automation Meetup Slides 10/14/2014
PDF
Scaling Up Lookout
PDF
Building serverless apps with Go & SAM
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Securing Underprotected APIs - Deja vu Security
Securing a Great Developer Experience - DevOps Indonesia Meetup by Stefan Str...
The Modern Tech Stack: Microservices - The Dark Side
Fixing security by fixing software development
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
Microservices, Microfrontends and Feature Teams
Software Trends, 2019
Faster Secure Software Development with Continuous Deployment - PH Days 2013
Using Data Science & Serverless Python to find apartment in Toronto
How to build a social network on serverless
APIdays Barcelona 2019 - How to build a social network on Serverless with Yan...
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
iPhone/iPad Development with Titanium
Automation in iOS development
Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...
Serverless 101 in Montreal
Canopy SF Home Automation Meetup Slides 10/14/2014
Scaling Up Lookout
Building serverless apps with Go & SAM
Ad

Recently uploaded (20)

PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Introduction to Artificial Intelligence
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
medical staffing services at VALiNTRY
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PDF
System and Network Administraation Chapter 3
PDF
System and Network Administration Chapter 2
Operating system designcfffgfgggggggvggggggggg
Introduction to Artificial Intelligence
Design an Analysis of Algorithms I-SECS-1021-03
How to Choose the Right IT Partner for Your Business in Malaysia
Which alternative to Crystal Reports is best for small or large businesses.pdf
PTS Company Brochure 2025 (1).pdf.......
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
wealthsignaloriginal-com-DS-text-... (1).pdf
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Softaken Excel to vCard Converter Software.pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Reimagine Home Health with the Power of Agentic AI​
medical staffing services at VALiNTRY
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
System and Network Administraation Chapter 3
System and Network Administration Chapter 2

Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...