SlideShare a Scribd company logo
1 of 56
Download to read offline
@crichardson
Deploying Spring Boot
applications with Docker
Chris Richardson
Author of POJOs in Action
Founder of the original CloudFoundry.com
@crichardson
chris@chrisrichardson.net
http://plainoldobjects.com
http://microservices.io
@crichardson
Presentation goal
Deploying Spring-based
microservices using
Docker
@crichardson
About Chris
@crichardson
About Chris
Founder of a startup that’s creating
a platform for developing
event-driven microservices
(http://bit.ly/trialeventuate)
@crichardson
For more information
https://github.com/cer/event-sourcing-examples
https://github.com/cer/microservices-examples
http://microservices.io
http://plainoldobjects.com/
https://twitter.com/crichardson
@crichardson
Agenda
Introduction to Spring Boot
Why immutable infrastructure/containerization
Spring Boot and Docker
Using Docker Compose to deploy infrastructure
Using Docker Compose to launch your application
Docker-based deployment pipeline
@crichardson
User registration microservices
User
Registration
Service
RabbitMQ
MongoDB
POST /user
{
emailAddress: "foo@bar.com",
password: "xyz"
}
NewUserNotification
User Management
Service
Email Service
Exchange
Queue Queue
User
Registration
Web App
Registration
Form
Confirmation
page
http://plainoldobjects.com/category/spring-boot/
@crichardson
Spring-based components
@crichardson
Building microservices with
Spring Boot
Makes it easy to create stand-alone, production ready
Spring applications
Automatically configures Spring using Convention over
Configuration
Externalizes configuration
Generates standalone executable JARs with embedded
web server
Provides a standard foundation for
all your microservices
@crichardson
Spring Boot simplifies configuration
Spring
Container
Application
components
Fully
configured
application
Configuration
Metadata
•Typesafe JavaConfig
•Annotations
•Legacy XML
Default
Configuration
Metadata
Spring
Boot
You write less
of this
Inferred from
CLASSPATH
@crichardson
Tiny Spring configuration
Scan for controllers
Customize JSON serialization
@crichardson
About auto-configuration
Builds on Spring framework features
@EnableAutoConfiguration - triggers the inclusion of default
configuration
@Conditional - beans only active if condition is satisfied
Conditional on class defined on class path
e.g. Mongo Driver implies Mongo beans
Conditional on bean defined/undefined
e.g. define Mongo beans if you haven’t
@crichardson
The Main program
@crichardson
Building with Gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.1.8.RELEASE")
}
}
apply plugin: 'scala'
apply plugin: 'spring-boot'
dependencies {
compile "org.springframework.boot:spring-boot-starter-web"
compile "org.springframework.boot:spring-boot-starter-data-mongodb"
compile "org.springframework.boot:spring-boot-starter-amqp"
compile "org.springframework.boot:spring-boot-starter-actuator"
testCompile "org.springframework.boot:spring-boot-starter-test"
}
...
Ensures correct dependencies
@crichardson
Running the microservice
$ java -jar build/libs/spring-boot-restful-service.jar --server.port=8081
...
2014-12-03 16:32:04.671 INFO 93199 --- [ main]
n.c.m.r.main.UserRegistrationMain$ : Started UserRegistrationMain. in 5.707
seconds (JVM running for 6.553)
$ curl localhost:8081/health
{"status":"UP",
"mongo":{"status":"UP","version":"2.4.10"},
"rabbit":{"status":"UP", ...}
}
Built in health checks
Command line arg processing
@crichardson
Agenda
Introduction to Spring Boot
Why immutable infrastructure/containerization
Spring Boot and Docker
Using Docker Compose to deploy infrastructure
Using Docker Compose to launch your application
Docker-based deployment pipeline
@crichardson
Spring Boot simplifies
deployment
Spring Boot creates self-contained JAR file
No separate application server to install/configure
Externalize configuration = immutable application
Just need Java
But which version of Java? 7.x? 8.y?
And, what about the other applications?
Tomcat, Play, NodeJS, ...
Deploying a system is complex
@crichardson
Package service as an RPM
Benefits:
Encapsulates language, framework, application server, ...
Handles dependencies
...
But
Conflicting dependency versions
Conflicting ports, ...
@crichardson
Let’s have immutable
infrastructure
@crichardson
Package as AMI
http://boxfuse.com/learn/why.html
packer.io,
github.com/Netflix/aminator
cloudnative.io
@crichardson
Service-as-AMI is great BUT...
Building is so slow!
Booting is so slow!
AMIs aren’t portable - need to build for multiple platforms
Heavy-weight: Not practical to run multiple VMs on a
developer machine
...
@crichardson
Package a service as a
Docker image
Lightweight, OS-level virtualization mechanism
Runs on Linux
directly
via, e.g., Virtual Box
https://www.docker.com/
@crichardson
Docker images
Portable application packaging format
Self-contained, read-only file-system image of an operating
system + application
Layered structure = sharing and caching very, very fast
5 seconds to package application!
@crichardson
Docker container
Running Docker image
Group of sandboxed processes
Builds on control groups and namespaces
Contains entire OS but typically the only process is the
application (JVM) fast startup
Boot2docker
Docker on the Mac (and
Windows)
Runs Docker in a small
VirtualBox VM
http://boot2docker.io/
Shares /User with VM
@crichardson
Agenda
Introduction to Spring Boot
Why immutable infrastructure/containerization
Spring Boot and Docker
Using Docker Compose to deploy infrastructure
Using Docker Compose to launch your application
Docker-based deployment pipeline
@crichardson
Packaging a Spring Boot
application as a Docker image
Install Java
Install application JAR file
Configure image to run Java on startup
Handle externalized configuration
@crichardson
Docker and Java
https://registry.hub.docker.com/_/java/
@crichardson
FROM java:openjdk-8u45-jdk
MAINTAINER chris@chrisrichardson.net
EXPOSE 8080
CMD java -jar spring-boot-restful-service.jar
ADD build/spring-boot-restful-service.jar .
Dockerfile for packaging a
Spring Boot application
Base image
Copy JAR into image
Expose 8080
Bonus question: why is the ADD command last?
Startup command
@crichardson
Building the Spring Boot
application
copy jar to subdir so it can be
referenced by Dockerfile
Build image using ./Dockerfile
@crichardson
Running the Spring Boot
container
docker	
  run	
  -­‐d	
  -­‐p	
  8080:8080	
  	
  
-­‐e	
  	
  SPRING_DATA_MONGODB_URI=mongodb://192.168.59.103/userregistration	
  	
  
-­‐e	
  SPRING_RABBITMQ_HOST=192.168.59.103	
  	
  
-­‐-­‐name	
  sb_rest_svc	
  
sb_rest_svc
Map container port
to host port
Run as
daemon
Container
name
Image name
Specify environment
variables
@crichardson
Testing the REST API
$	
  curl	
  -­‐v	
  -­‐d	
  '{"emailAddress":	
  "foo@bar.com"}'	
  -­‐H	
  "content-­‐type:	
  application/json"	
  
http://${DOCKER_HOST_IP}:8080/user	
  
{"id":"5561f726e4b0b15173726b96","emailAddress":"foo@bar.com"}
@crichardson
Agenda
Introduction to Spring Boot
Why immutable infrastructure/containerization
Spring Boot and Docker
Using Docker Compose to deploy infrastructure
Using Docker Compose to launch your application
Docker-based deployment pipeline
@crichardson
Problem
Typical application needs a database
Many apps also need a message broker
Other projects need even more than that
Zookeeper, Kafka, DynamoDB
Making sure every developer installs the correctly version =
PITA
@crichardson
A couple of years ago Vagrant
was the cool way to do this
VM
s
are
so
yesterday!
@crichardson
Using Docker is easier and
much more efficient
@crichardson
Using shell scripts
$	
  docker	
  run	
  -­‐d	
  -­‐p	
  5672:5672	
  -­‐p	
  15672:15672	
  -­‐-­‐name	
  rabbitmq	
  dockerbile/
rabbitmq	
  
$	
  docker	
  run	
  -­‐d	
  -­‐p	
  27017:27017	
  -­‐-­‐name	
  mongodb	
  dockerbile/mongodb	
  mongod	
  -­‐-­‐
smallbiles
Not bad but we can do better!
@crichardson
About Docker Compose
Tool for defining and running an application consisting of
multiple docker containers
Create a docker-compose.yml
Declarative system definition
Commands to start, stop, and remove containers
https://docs.docker.com/compose/
@crichardson
Docker-compose.yml
rabbitmq:	
  
	
  	
  image:	
  dockerbile/rabbitmq	
  
	
  	
  ports:	
  
	
  	
  	
  	
  -­‐	
  "5672:5672"	
  
	
  	
  	
  	
  -­‐	
  "15672:15672"	
  
mongodb:	
  
	
  	
  image:	
  dockerbile/mongodb	
  
	
  	
  ports:	
  
	
  	
  	
  	
  -­‐	
  "27017:27017"	
  
	
  	
  command:	
  mongod	
  -­‐-­‐smallbiles
@crichardson
Using Docker Compose
$	
  docker-­‐compose	
  up	
  -­‐d	
  
Recreating	
  docker_mongodb_1...	
  
Recreating	
  docker_rabbitmq_1...	
  
$	
  docker-­‐compose	
  stop	
  
Stopping	
  docker_rabbitmq_1...	
  
Stopping	
  docker_mongodb_1...
$	
  docker-­‐compose	
  rm	
  
Going	
  to	
  remove	
  docker_rabbitmq_1,	
  docker_mongodb_1	
  
Are	
  you	
  sure?	
  [yN]	
  y	
  
Removing	
  docker_mongodb_1...	
  
Removing	
  docker_rabbitmq_1...	
  
@crichardson
Agenda
Introduction to Spring Boot
Why immutable infrastructure/containerization
Spring Boot and Docker
Using Docker Compose to deploy infrastructure
Using Docker Compose to launch your application
Docker-based deployment pipeline
@crichardson
Let’s imagine that you want to run your
distributed app (e.g. end-to-end testing)
@crichardson
java -jar app1.jar
java -jar app2.jar
Lots of scripting :-(
@crichardson
docker run -d … app1
docker run -d … app2
Lots of scripting :-(
@crichardson
Docker-compose.yml - part 1
restfulservice:	
  
	
  	
  image:	
  java:openjdk-­‐8u45-­‐jdk	
  
	
  	
  working_dir:	
  /app	
  
	
  	
  volumes:	
  
	
  	
  	
  	
  -­‐	
  spring-­‐boot-­‐restful-­‐service/build/libs:/app	
  
	
  	
  command:	
  java	
  -­‐jar	
  /app/spring-­‐boot-­‐restful-­‐service.jar	
  
	
  	
  ports:	
  
	
  	
  	
  	
  -­‐	
  "8081:8080"	
  
	
  	
  links:	
  
	
  	
  	
  	
  -­‐	
  rabbitmq	
  
	
  	
  	
  	
  -­‐	
  mongodb	
  
	
  	
  environment:	
  
	
  	
  	
  	
  SPRING_DATA_MONGODB_URI:	
  mongodb://mongodb/userregistration	
  
	
  	
  	
  	
  SPRING_RABBITMQ_HOST:	
  rabbitmq
Link to other containers
Make the jar file available
inside container
@crichardson
Docker-compose.yml - part 2
web:	
  
	
  	
  image:	
  java:openjdk-­‐8u45-­‐jdk	
  
	
  	
  working_dir:	
  /app	
  
	
  	
  volumes:	
  
	
  	
  	
  	
  -­‐	
  spring-­‐boot-­‐webapp/target:/app	
  
	
  	
  command:	
  java	
  -­‐jar	
  /app/spring-­‐boot-­‐user-­‐registration-­‐webapp-­‐1.0-­‐SNAPSHOT.jar	
  
	
  	
  ports:	
  
	
  	
  	
  	
  -­‐	
  "8080:8080"	
  
	
  	
  links:	
  
	
  	
  	
  	
  -­‐	
  restfulservice	
  
	
  	
  environment:	
  
	
  	
  	
  	
  USER_REGISTRATION_URL:	
  http://restfulservice:8080/user	
  
Link to the other
container
hostname of other
container
@crichardson
@crichardson
Agenda
Introduction to Spring Boot
Why immutable infrastructure/containerization
Spring Boot and Docker
Using Docker Compose to deploy infrastructure
Using Docker Compose to launch your application
Docker-based deployment pipeline
@crichardson
My application architecture
API
gateway Event
Store
Service 1
Service 2
Service ...
Event
Archiver
Indexer
AWS
Cloud
S3
NodeJS Scala/Spring Boot
@crichardson
Jenkins-based deployment
pipeline
Build & Test
microservice
Build & Test
Docker
image
Deploy
Docker
image
to registry
One pipeline per microservice
@crichardson
Smoke testing docker images
Smoke test
Docker
daemon
Service
containerGET /health
POST /containers/create
creates
POST /containers/{id}/start
Docker daemon must listen on
TCP port
@crichardson
Publishing Docker images
docker tag service-${VERSION}:latest 
${REGISTRY_HOST_AND_PORT}/service-${VERSION}
docker push ${REGISTRY_HOST_AND_PORT}/service-${VERSION}
docker/publish.sh
Pushing only takes 25
seconds!
@crichardson
CI environment runs on
Docker
EC2 Instance
Jenkins
Container
Artifactory
container
EBS volume
/jenkins-
home
/gradle-home
/artifactory-
home
@crichardson
Updating production
environment
Large EC2 instance running Docker
Deployment tool:
1. Compares running containers with what’s been built by Jenkins
2. Pulls latest images from Docker registry
3. Stops old versions
4. Launches new versions
One day: use Docker clustering solution and a service discovery mechanism,
Most likely, AWS container service
Mesos and Marathon + Zookeeper, Kubernetes or ???
@crichardson
Summary
Spring Boot is a great way to build Spring-based
microservices
Docker is a great way to package microservices
Docker-compose is a super useful development tool
@crichardson
@crichardson chris@chrisrichardson.net
http://plainoldobjects.com http://microservices.io

More Related Content

What's hot

Linux history & features
Linux history & featuresLinux history & features
Linux history & features
Rohit Kumar
 
Introduction_of_ADDS
Introduction_of_ADDSIntroduction_of_ADDS
Introduction_of_ADDS
Harsh Sethi
 
Cloud computing writeup
Cloud computing writeupCloud computing writeup
Cloud computing writeup
selvavijay1987
 

What's hot (20)

왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
NFV Security PPT
NFV Security PPTNFV Security PPT
NFV Security PPT
 
Embedded Virtualization for Mobile Devices
Embedded Virtualization for Mobile DevicesEmbedded Virtualization for Mobile Devices
Embedded Virtualization for Mobile Devices
 
Linux history & features
Linux history & featuresLinux history & features
Linux history & features
 
Django에서 websocket을 사용하는 방법
Django에서 websocket을 사용하는 방법Django에서 websocket을 사용하는 방법
Django에서 websocket을 사용하는 방법
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
 
What is Docker
What is Docker What is Docker
What is Docker
 
DNS server configuration
DNS server configurationDNS server configuration
DNS server configuration
 
Cloud & Data Center Networking
Cloud & Data Center NetworkingCloud & Data Center Networking
Cloud & Data Center Networking
 
systemd
systemdsystemd
systemd
 
Server pac 101
Server pac 101Server pac 101
Server pac 101
 
Introduction to linux containers
Introduction to linux containersIntroduction to linux containers
Introduction to linux containers
 
Introduction_of_ADDS
Introduction_of_ADDSIntroduction_of_ADDS
Introduction_of_ADDS
 
Db2 recovery IDUG EMEA 2013
Db2 recovery IDUG EMEA 2013Db2 recovery IDUG EMEA 2013
Db2 recovery IDUG EMEA 2013
 
Dockers and containers basics
Dockers and containers basicsDockers and containers basics
Dockers and containers basics
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101
 
Cloud computing writeup
Cloud computing writeupCloud computing writeup
Cloud computing writeup
 
Installing & Configuring IBM Domino 9 on CentOS
Installing & Configuring IBM Domino 9 on CentOSInstalling & Configuring IBM Domino 9 on CentOS
Installing & Configuring IBM Domino 9 on CentOS
 
Introduction To Docker
Introduction To  DockerIntroduction To  Docker
Introduction To Docker
 
Running k3s on raspberry pi
Running k3s on raspberry piRunning k3s on raspberry pi
Running k3s on raspberry pi
 

Viewers also liked

Viewers also liked (14)

Java Microservices with Netflix OSS & Spring
Java Microservices with Netflix OSS & Spring Java Microservices with Netflix OSS & Spring
Java Microservices with Netflix OSS & Spring
 
From a Monolithic to a Distributed API Architecture
 at Eventbrite - Presente...
From a Monolithic to a Distributed API Architecture
 at Eventbrite - Presente...From a Monolithic to a Distributed API Architecture
 at Eventbrite - Presente...
From a Monolithic to a Distributed API Architecture
 at Eventbrite - Presente...
 
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
 
Zero to Continuous Delivery on Google Cloud
Zero to Continuous Delivery on Google CloudZero to Continuous Delivery on Google Cloud
Zero to Continuous Delivery on Google Cloud
 
Deployment Automation with Microservices
Deployment Automation with MicroservicesDeployment Automation with Microservices
Deployment Automation with Microservices
 
Data stream processing and micro service architecture
Data stream processing and micro service architectureData stream processing and micro service architecture
Data stream processing and micro service architecture
 
Voxxed Days Thessaloniki 2016 - Continuous Delivery: Jenkins, Docker and Spri...
Voxxed Days Thessaloniki 2016 - Continuous Delivery: Jenkins, Docker and Spri...Voxxed Days Thessaloniki 2016 - Continuous Delivery: Jenkins, Docker and Spri...
Voxxed Days Thessaloniki 2016 - Continuous Delivery: Jenkins, Docker and Spri...
 
Continuous Delivery - Voxxed Days Bucharest 2017
Continuous Delivery - Voxxed Days Bucharest 2017Continuous Delivery - Voxxed Days Bucharest 2017
Continuous Delivery - Voxxed Days Bucharest 2017
 
Microservices deployment patterns
Microservices deployment patternsMicroservices deployment patterns
Microservices deployment patterns
 
Building a Modern Microservices Architecture at Gilt: The Essentials
Building a Modern Microservices Architecture at Gilt: The EssentialsBuilding a Modern Microservices Architecture at Gilt: The Essentials
Building a Modern Microservices Architecture at Gilt: The Essentials
 
The seven more deadly sins of microservices final
The seven more deadly sins of microservices finalThe seven more deadly sins of microservices final
The seven more deadly sins of microservices final
 
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
 
Edge architecture ieee international conference on cloud engineering
Edge architecture   ieee international conference on cloud engineeringEdge architecture   ieee international conference on cloud engineering
Edge architecture ieee international conference on cloud engineering
 
Zuul @ Netflix SpringOne Platform
Zuul @ Netflix SpringOne PlatformZuul @ Netflix SpringOne Platform
Zuul @ Netflix SpringOne Platform
 

Similar to Developing and deploying applications with Spring Boot and Docker (@oakjug)

Similar to Developing and deploying applications with Spring Boot and Docker (@oakjug) (20)

Docker & JVM: A Perfect Match
Docker & JVM: A Perfect MatchDocker & JVM: A Perfect Match
Docker & JVM: A Perfect Match
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to Advance
 
Docker - Der Wal in der Kiste
Docker - Der Wal in der KisteDocker - Der Wal in der Kiste
Docker - Der Wal in der Kiste
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
 
Setup docker on existing application
Setup docker on existing applicationSetup docker on existing application
Setup docker on existing application
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
Microservices, la risposta che (forse) cercavi!
Microservices, la risposta che (forse) cercavi!Microservices, la risposta che (forse) cercavi!
Microservices, la risposta che (forse) cercavi!
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
 
Docker
DockerDocker
Docker
 
How to Dockerize Web Application using Docker Compose
How to Dockerize Web Application using Docker ComposeHow to Dockerize Web Application using Docker Compose
How to Dockerize Web Application using Docker Compose
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small business
 
How to Dockerize your Sitecore module
How to Dockerize your Sitecore moduleHow to Dockerize your Sitecore module
How to Dockerize your Sitecore module
 
Microservices DevOps on Google Cloud Platform
Microservices DevOps on Google Cloud PlatformMicroservices DevOps on Google Cloud Platform
Microservices DevOps on Google Cloud Platform
 
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzEnabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
 
Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)
 
Docker Introduction.pdf
Docker Introduction.pdfDocker Introduction.pdf
Docker Introduction.pdf
 
20170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 201720170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 2017
 

More from Chris Richardson

More from Chris Richardson (20)

The microservice architecture: what, why, when and how?
The microservice architecture: what, why, when and how?The microservice architecture: what, why, when and how?
The microservice architecture: what, why, when and how?
 
More the merrier: a microservices anti-pattern
More the merrier: a microservices anti-patternMore the merrier: a microservices anti-pattern
More the merrier: a microservices anti-pattern
 
YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...
YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...
YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...
 
Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!
 
Dark energy, dark matter and microservice architecture collaboration patterns
Dark energy, dark matter and microservice architecture collaboration patternsDark energy, dark matter and microservice architecture collaboration patterns
Dark energy, dark matter and microservice architecture collaboration patterns
 
Scenarios_and_Architecture_SkillsMatter_April_2022.pdf
Scenarios_and_Architecture_SkillsMatter_April_2022.pdfScenarios_and_Architecture_SkillsMatter_April_2022.pdf
Scenarios_and_Architecture_SkillsMatter_April_2022.pdf
 
Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions
 
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
 
Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...
 
A pattern language for microservices - June 2021
A pattern language for microservices - June 2021 A pattern language for microservices - June 2021
A pattern language for microservices - June 2021
 
QConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
QConPlus 2021: Minimizing Design Time Coupling in a Microservice ArchitectureQConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
QConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
 
Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...
Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...
Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...
 
Designing loosely coupled services
Designing loosely coupled servicesDesigning loosely coupled services
Designing loosely coupled services
 
Microservices - an architecture that enables DevOps (T Systems DevOps day)
Microservices - an architecture that enables DevOps (T Systems DevOps day)Microservices - an architecture that enables DevOps (T Systems DevOps day)
Microservices - an architecture that enables DevOps (T Systems DevOps day)
 
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
 
Decompose your monolith: Six principles for refactoring a monolith to microse...
Decompose your monolith: Six principles for refactoring a monolith to microse...Decompose your monolith: Six principles for refactoring a monolith to microse...
Decompose your monolith: Six principles for refactoring a monolith to microse...
 
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
 
Overview of the Eventuate Tram Customers and Orders application
Overview of the Eventuate Tram Customers and Orders applicationOverview of the Eventuate Tram Customers and Orders application
Overview of the Eventuate Tram Customers and Orders application
 
An overview of the Eventuate Platform
An overview of the Eventuate PlatformAn overview of the Eventuate Platform
An overview of the Eventuate Platform
 
#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolith#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolith
 

Recently uploaded

CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 

Recently uploaded (20)

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

Developing and deploying applications with Spring Boot and Docker (@oakjug)