SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
Micro Services 
Small is Beautiful 
Eberhard Wolff 
Freelancer / adesso AG 
http://ewolff.com
Architecture 
of Enterprise 
Java Apps
Eberhard Wolff - @ewolff
Eberhard Wolff - @ewolff
How can I 
implement a 
new feature??? 
Eberhard Wolff - @ewolff
Eberhard Wolff - @ewolff L
ECommerce System 
Eberhard Wolff - @ewolff 
New Stuff 
Spring & 
OSGi
ECommerce System 
Eberhard Wolff - @ewolff 
New Stuff 
NSepwri nSgtu &ff 
OSGi
Eberhard Wolff - @ewolff 
HTTP 
New 
Stuff 
Links 
No legacy code 
Any technology 
J Small code base
Micro Services: 
A Component Model 
• Separate process 
• Individual deployment unit 
• GUI (?) 
• + Logic 
• + database 
• Independent technology stacks 
• Small services + GUI – unlike SOA 
Eberhard Wolff - @ewolff
Components Collaborate 
Eberhard Wolff - @ewolff 
Micro 
Service 
Micro 
Service 
Link 
REST 
Messaging 
Data Replication
Micro Service 
can easily 
integrate 
with Legacy
Eberhard Wolff - @ewolff 
Online Shop 
Order 
Catalog 
Search 
Billing
Eberhard Wolff - @ewolff 
Online Shop 
elasticsearch 
Spring Batch 
Oracle 
Spring MVC 
MongoDB 
Order 
Catalog 
Search 
Billing
Service might 
be even 
smaller
Continuous 
Delivery 
Eberhard Wolff - @ewolff
Continuous Delivery: 
Build Pipeline 
Manual 
Explorative 
Testing 
Eberhard Wolff - @ewolff 
Automated 
Acceptance 
Testing 
Commit 
Stage 
Automated 
Capacity 
Testing 
Release
Without Micro Services 
• Modify order process slightly 
• Billing, Search & Catalog unchanged 
Eberhard Wolff - @ewolff 
Order 
Catalog 
Search 
Billing
Eberhard Wolff - @ewolff 
Order 
Catalog 
Search 
Billing
Continuous Delivery: 
Everything Tested etc 
Manual 
Explorative 
Testing 
Eberhard Wolff - @ewolff 
Automated 
Acceptance 
Testing 
Commit 
Stage 
Automated 
Capacity 
Testing 
Order 
Release Catalog 
Search 
Billing
Eberhard Wolff - @ewolff 
Build Pipeline 
• Just one component changed! 
• Lots of unneeded work 
• Takes much too long
With Micro Services 
Manual 
Explorative 
Testing 
Eberhard Wolff - @ewolff 
Automated 
Acceptance 
Testing 
Commit 
Stage 
Automated 
Capacity 
Testing 
Order Release
Eberhard Wolff - @ewolff 
Release 
• Just a single component 
• Faster feedback 
• Easier deployment 
• Rollback of single service also easier
How to scale 
Eberhard Wolff - @ewolff 
agile? 
Implement 
more feature
Eberhard Wolff - @ewolff 
Conways Law 
Architecture 
copies 
communication structures 
of the organization
Eberhard Wolff - @ewolff 
Online Shop 
Order 
Catalog 
Search 
Billing 
Component = Team
Eberhard Wolff - @ewolff 
Micro Service 
• Team independent from each other 
• No code dependencies 
• Can use individual technology stack 
• Can even deploy independently 
• Speed up development
Architecture Challenges 
• Code Reuse? 
• Handling interfaces? 
• Managing dependencies between 
(>100) Services? 
• Global architecture? 
• Global refactorings? 
Eberhard Wolff - @ewolff
Install and 
configure App 
Server for each 
Microservice??
Spring Boot 
Demo
Why Spring Boot? 
Eberhard Wolff - @ewolff 
• Easier deployment 
• i.e. just a JAR 
• Built in operations support
Eberhard Wolff - @ewolff 
Technologies 
• Dropwizard by Yammer 
• Vert.x 
• Play Framework
Deploy & 
Operate?
Component Model 
• No restriction on languag & 
environment 
• Individual processes 
• + infrastructure (database etc) 
• JARs, WARs, EARs: No good fit 
• Virtual machines as components? 
• Overhead?? 
Eberhard Wolff - @ewolff
Eberhard Wolff - @ewolff 
Docker 
• No true virtualization 
• Linux Containers (lxc) 
• i.e. shared kernel 
• i.e. separate file systems
Docker File Systems 
Eberhard Wolff - @ewolff 
• Read only base images 
• +read/write image 
• Can be stacked
Eberhard Wolff - @ewolff 
Docker 
• Linux only 
• So: Run it in VM 
• Controlled by Vagrant
Redis on Docker 
Eberhard Wolff - @ewolff 
• Small NoSQL database 
• In memory 
• Quite a few cool features
Eberhard Wolff - @ewolff 
Vagrant VM 
Docker Container 
Redis 
6379 
6379 
Port 
6379
Docker Demo
Communication Between 
Docker Container 
Eberhard Wolff - @ewolff 
• Via ports 
• Via data volumes
Docker is a 
Component 
System
Example: 
Log File 
Analysis
No Docker, no Micro Services 
• Log file analysis 
• One Application 
• Store (database) 
• Parse 
• GUI 
• One artifact on one server 
• Logs provided e.g. by a port 
Eberhard Wolff - @ewolff
Docker, Small Services 
• Log file analysis 
• ELK Stack 
• Elasticsearch: Store 
• Logstash: Parse 
• Kibana: Web based GUI 
• Install three servers 
• Automate installation ... L 
Eberhard Wolff - @ewolff
Dockerized ELK Stack 
• 1 Vagrantfile (25 lines) 
• 6 Dockerfiles (total 22 lines) 
• 1 HTML file (11 lines) 
• 1 Config (Logstash) (29 lines) 
Eberhard Wolff - @ewolff 
• Total: 87 lines, 9 files 
• Including one RegExp L
8080 
8080 
Eberhard Wolff - @ewolff 
Vagrant VM 
Container 
user-registration 
8080 
8081 
Port 
8081 
Container 
elasticsearch 
Container 
logstash 
9200 
9200 
Port 
9200 
9200 
link 
Container 
kibana 
Port 
8080 
Browser 
Volume 
/log
Demo ELK 
Stack
Individual 
Scaling per 
Service
Eberhard Wolff - @ewolff 
Links 
• https://github.com/ewolff/user-registration 
• http://www.heise.de/developer/ 
artikel/Episode-44-Modularisierte- 
Architektur-fuer-grosse- 
Systeme-2195818.html 
• http://projects.spring.io/spring-boot/ 
• http://www.docker.com/ 
• http://www.docker.com/tryit
Eberhard Wolff - @ewolff
Eberhard Wolff - @ewolff 
Micro Services 
• A new hope against Java Monoliths 
• Also great for legacy 
• Spring Boot for implementation 
• Docker as component model & 
runtime
Thank You!! 
Eberhard Wolff - @ewolff 
@ewolff

Mais conteúdo relacionado

Mais procurados

Understanding the CloudStack Release Process
Understanding the CloudStack Release ProcessUnderstanding the CloudStack Release Process
Understanding the CloudStack Release Process
ke4qqq
 
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Matthew Cobby
 

Mais procurados (20)

Software Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous DeliverySoftware Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous Delivery
 
Java Architectures - a New Hope
Java Architectures - a New HopeJava Architectures - a New Hope
Java Architectures - a New Hope
 
ELK Stack
ELK StackELK Stack
ELK Stack
 
Developing Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDeveloping Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring Cloud
 
Java Application Servers Are Dead!
Java Application Servers Are Dead!Java Application Servers Are Dead!
Java Application Servers Are Dead!
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
 
IaC? VSTS to the rescue! Abbreviations explained
IaC? VSTS to the rescue! Abbreviations explainedIaC? VSTS to the rescue! Abbreviations explained
IaC? VSTS to the rescue! Abbreviations explained
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
High Availability and Scalability: Too Expensive! Architectures for Future E...
High Availability and Scalability: Too Expensive! Architectures for Future E...High Availability and Scalability: Too Expensive! Architectures for Future E...
High Availability and Scalability: Too Expensive! Architectures for Future E...
 
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
 
Java Application Servers Are Dead! - Short Version
Java Application Servers Are Dead! - Short VersionJava Application Servers Are Dead! - Short Version
Java Application Servers Are Dead! - Short Version
 
I Don't Test Often ...
I Don't Test Often ...I Don't Test Often ...
I Don't Test Often ...
 
DevOps and AWS - Code PaLOUsa 2017
DevOps and AWS  - Code PaLOUsa 2017DevOps and AWS  - Code PaLOUsa 2017
DevOps and AWS - Code PaLOUsa 2017
 
Understanding the CloudStack Release Process
Understanding the CloudStack Release ProcessUnderstanding the CloudStack Release Process
Understanding the CloudStack Release Process
 
DevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with AlfrescoDevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with Alfresco
 
Spinnaker Microsrvices
Spinnaker MicrosrvicesSpinnaker Microsrvices
Spinnaker Microsrvices
 
JustLetMeCode-Final
JustLetMeCode-FinalJustLetMeCode-Final
JustLetMeCode-Final
 
Developer day - AWS: Fast Environments = Fast Deployments
Developer day - AWS: Fast Environments = Fast DeploymentsDeveloper day - AWS: Fast Environments = Fast Deployments
Developer day - AWS: Fast Environments = Fast Deployments
 
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
 

Destaque

A BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
A BRIEF OVERVIEW ON WILDLIFE MANAGEMENTA BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
A BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
Pintu Kabiraj
 
Multi-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service BrokerMulti-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service Broker
Amazon Web Services
 
Sitios turísticos de valledupar
Sitios turísticos de valleduparSitios turísticos de valledupar
Sitios turísticos de valledupar
elkin
 

Destaque (20)

Reversing Engineering a Web Application - For fun, behavior and detection
Reversing Engineering a Web Application - For fun, behavior and detectionReversing Engineering a Web Application - For fun, behavior and detection
Reversing Engineering a Web Application - For fun, behavior and detection
 
A BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
A BRIEF OVERVIEW ON WILDLIFE MANAGEMENTA BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
A BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
 
(ARC401) Cloud First: New Architecture for New Infrastructure
(ARC401) Cloud First: New Architecture for New Infrastructure(ARC401) Cloud First: New Architecture for New Infrastructure
(ARC401) Cloud First: New Architecture for New Infrastructure
 
E-commerce Berlin Expo - Divante - Anna Lankauf
E-commerce Berlin Expo - Divante - Anna LankaufE-commerce Berlin Expo - Divante - Anna Lankauf
E-commerce Berlin Expo - Divante - Anna Lankauf
 
Analyze, Influence and Engage Your Customer - v1.7
Analyze, Influence and Engage Your Customer - v1.7Analyze, Influence and Engage Your Customer - v1.7
Analyze, Influence and Engage Your Customer - v1.7
 
Expect the unexpected: Prepare for failures in microservices
Expect the unexpected: Prepare for failures in microservicesExpect the unexpected: Prepare for failures in microservices
Expect the unexpected: Prepare for failures in microservices
 
Exponentiële groei v2
Exponentiële groei v2Exponentiële groei v2
Exponentiële groei v2
 
Docker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott CoultonDocker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott Coulton
 
What is DevOps?
What is DevOps?What is DevOps?
What is DevOps?
 
Multi-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service BrokerMulti-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service Broker
 
VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...
VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...
VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...
 
IBM Containers- Bluemix
IBM Containers- BluemixIBM Containers- Bluemix
IBM Containers- Bluemix
 
Big Data Europe: Simplifying Development and Deployment of Big Data Applications
Big Data Europe: Simplifying Development and Deployment of Big Data ApplicationsBig Data Europe: Simplifying Development and Deployment of Big Data Applications
Big Data Europe: Simplifying Development and Deployment of Big Data Applications
 
"How overlay networks can make public clouds your global WAN" by Ryan Koop o...
 "How overlay networks can make public clouds your global WAN" by Ryan Koop o... "How overlay networks can make public clouds your global WAN" by Ryan Koop o...
"How overlay networks can make public clouds your global WAN" by Ryan Koop o...
 
Performance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environmentsPerformance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environments
 
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
 
Sitios turísticos de valledupar
Sitios turísticos de valleduparSitios turísticos de valledupar
Sitios turísticos de valledupar
 
Do we need a bigger dev data culture
Do we need a bigger dev data cultureDo we need a bigger dev data culture
Do we need a bigger dev data culture
 
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on KubernetesIBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
 
Docker security introduction-task-2016
Docker security introduction-task-2016Docker security introduction-task-2016
Docker security introduction-task-2016
 

Semelhante a Micro Services - Small is Beautiful

Amazon Elastic Beanstalk
Amazon Elastic BeanstalkAmazon Elastic Beanstalk
Amazon Elastic Beanstalk
Eberhard Wolff
 

Semelhante a Micro Services - Small is Beautiful (20)

NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?
 
NoSQL and Architectures
NoSQL and ArchitecturesNoSQL and Architectures
NoSQL and Architectures
 
Apex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEXApex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEX
 
Amazon Elastic Beanstalk
Amazon Elastic BeanstalkAmazon Elastic Beanstalk
Amazon Elastic Beanstalk
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 
Reporting
ReportingReporting
Reporting
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
 
AppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptxAppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptx
 
AppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptxAppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptx
 
Continuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the EnterpriseContinuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the Enterprise
 
Fluxible
FluxibleFluxible
Fluxible
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshell
 
What's New in WCF 4.5
What's New in WCF 4.5What's New in WCF 4.5
What's New in WCF 4.5
 
WebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEAWebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEA
 
NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013
 
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objectsBacking Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
 
Introducing Venice
Introducing VeniceIntroducing Venice
Introducing Venice
 
Owin from spec to application
Owin from spec to applicationOwin from spec to application
Owin from spec to application
 
TIAD : Automating the aplication lifecycle
TIAD : Automating the aplication lifecycleTIAD : Automating the aplication lifecycle
TIAD : Automating the aplication lifecycle
 
Introducing Venice - Strata NYC 2017
Introducing Venice - Strata NYC 2017Introducing Venice - Strata NYC 2017
Introducing Venice - Strata NYC 2017
 

Mais de Eberhard Wolff

Mais de Eberhard Wolff (20)

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous Delivery
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, Async
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=Maintainability
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for Innovation
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Micro Services - Small is Beautiful

  • 1. Micro Services Small is Beautiful Eberhard Wolff Freelancer / adesso AG http://ewolff.com
  • 5. How can I implement a new feature??? Eberhard Wolff - @ewolff
  • 6. Eberhard Wolff - @ewolff L
  • 7. ECommerce System Eberhard Wolff - @ewolff New Stuff Spring & OSGi
  • 8. ECommerce System Eberhard Wolff - @ewolff New Stuff NSepwri nSgtu &ff OSGi
  • 9. Eberhard Wolff - @ewolff HTTP New Stuff Links No legacy code Any technology J Small code base
  • 10. Micro Services: A Component Model • Separate process • Individual deployment unit • GUI (?) • + Logic • + database • Independent technology stacks • Small services + GUI – unlike SOA Eberhard Wolff - @ewolff
  • 11. Components Collaborate Eberhard Wolff - @ewolff Micro Service Micro Service Link REST Messaging Data Replication
  • 12. Micro Service can easily integrate with Legacy
  • 13. Eberhard Wolff - @ewolff Online Shop Order Catalog Search Billing
  • 14. Eberhard Wolff - @ewolff Online Shop elasticsearch Spring Batch Oracle Spring MVC MongoDB Order Catalog Search Billing
  • 15. Service might be even smaller
  • 16. Continuous Delivery Eberhard Wolff - @ewolff
  • 17. Continuous Delivery: Build Pipeline Manual Explorative Testing Eberhard Wolff - @ewolff Automated Acceptance Testing Commit Stage Automated Capacity Testing Release
  • 18. Without Micro Services • Modify order process slightly • Billing, Search & Catalog unchanged Eberhard Wolff - @ewolff Order Catalog Search Billing
  • 19. Eberhard Wolff - @ewolff Order Catalog Search Billing
  • 20. Continuous Delivery: Everything Tested etc Manual Explorative Testing Eberhard Wolff - @ewolff Automated Acceptance Testing Commit Stage Automated Capacity Testing Order Release Catalog Search Billing
  • 21. Eberhard Wolff - @ewolff Build Pipeline • Just one component changed! • Lots of unneeded work • Takes much too long
  • 22. With Micro Services Manual Explorative Testing Eberhard Wolff - @ewolff Automated Acceptance Testing Commit Stage Automated Capacity Testing Order Release
  • 23. Eberhard Wolff - @ewolff Release • Just a single component • Faster feedback • Easier deployment • Rollback of single service also easier
  • 24. How to scale Eberhard Wolff - @ewolff agile? Implement more feature
  • 25. Eberhard Wolff - @ewolff Conways Law Architecture copies communication structures of the organization
  • 26. Eberhard Wolff - @ewolff Online Shop Order Catalog Search Billing Component = Team
  • 27. Eberhard Wolff - @ewolff Micro Service • Team independent from each other • No code dependencies • Can use individual technology stack • Can even deploy independently • Speed up development
  • 28. Architecture Challenges • Code Reuse? • Handling interfaces? • Managing dependencies between (>100) Services? • Global architecture? • Global refactorings? Eberhard Wolff - @ewolff
  • 29. Install and configure App Server for each Microservice??
  • 31. Why Spring Boot? Eberhard Wolff - @ewolff • Easier deployment • i.e. just a JAR • Built in operations support
  • 32. Eberhard Wolff - @ewolff Technologies • Dropwizard by Yammer • Vert.x • Play Framework
  • 34. Component Model • No restriction on languag & environment • Individual processes • + infrastructure (database etc) • JARs, WARs, EARs: No good fit • Virtual machines as components? • Overhead?? Eberhard Wolff - @ewolff
  • 35. Eberhard Wolff - @ewolff Docker • No true virtualization • Linux Containers (lxc) • i.e. shared kernel • i.e. separate file systems
  • 36. Docker File Systems Eberhard Wolff - @ewolff • Read only base images • +read/write image • Can be stacked
  • 37. Eberhard Wolff - @ewolff Docker • Linux only • So: Run it in VM • Controlled by Vagrant
  • 38. Redis on Docker Eberhard Wolff - @ewolff • Small NoSQL database • In memory • Quite a few cool features
  • 39. Eberhard Wolff - @ewolff Vagrant VM Docker Container Redis 6379 6379 Port 6379
  • 41. Communication Between Docker Container Eberhard Wolff - @ewolff • Via ports • Via data volumes
  • 42. Docker is a Component System
  • 43. Example: Log File Analysis
  • 44. No Docker, no Micro Services • Log file analysis • One Application • Store (database) • Parse • GUI • One artifact on one server • Logs provided e.g. by a port Eberhard Wolff - @ewolff
  • 45. Docker, Small Services • Log file analysis • ELK Stack • Elasticsearch: Store • Logstash: Parse • Kibana: Web based GUI • Install three servers • Automate installation ... L Eberhard Wolff - @ewolff
  • 46. Dockerized ELK Stack • 1 Vagrantfile (25 lines) • 6 Dockerfiles (total 22 lines) • 1 HTML file (11 lines) • 1 Config (Logstash) (29 lines) Eberhard Wolff - @ewolff • Total: 87 lines, 9 files • Including one RegExp L
  • 47. 8080 8080 Eberhard Wolff - @ewolff Vagrant VM Container user-registration 8080 8081 Port 8081 Container elasticsearch Container logstash 9200 9200 Port 9200 9200 link Container kibana Port 8080 Browser Volume /log
  • 50. Eberhard Wolff - @ewolff Links • https://github.com/ewolff/user-registration • http://www.heise.de/developer/ artikel/Episode-44-Modularisierte- Architektur-fuer-grosse- Systeme-2195818.html • http://projects.spring.io/spring-boot/ • http://www.docker.com/ • http://www.docker.com/tryit
  • 51. Eberhard Wolff - @ewolff
  • 52. Eberhard Wolff - @ewolff Micro Services • A new hope against Java Monoliths • Also great for legacy • Spring Boot for implementation • Docker as component model & runtime
  • 53. Thank You!! Eberhard Wolff - @ewolff @ewolff