SlideShare a Scribd company logo
#vertx @bjschrijver
Building microservices with Vert.x
Bert Jan Schrijver
@bjschrijver
bertjan@jpoint.nl
#vertx @bjschrijver
Letโ€™s meet
Bert Jan Schrijver
#vertx @bjschrijver
โ€ขIntroduction
โ€ขWhy Vert.x?
โ€ขBasic demo
โ€ขDeep dive
โ€ขAdvanced demo
โ€ขMicroservices with Vert.x
โ€ขVert.x in practice
Outline
#vertx @bjschrijver
โ€ขIntroduction
โ€ขWhy Vert.x?
โ€ขBasic demo
โ€ขDeep dive
โ€ขAdvanced demo
โ€ขMicroservices with Vert.x
โ€ขVert.x in practice
Introduction
Malmberg	is	
an	educational	publisher	in	
the	Netherlands.	Malmberg	
is	building	modern,	rich	and	
scalable	e-learning	applications	
using	Java	8,	Vert.x,	AngularJS	
and	MongoDB,	running	on	
Amazon	cloud	services.
@YourTwitterHandle#DVXFR14{session hashtag}#vertx @bjschrijver
Vert.x
basics
#vertx @bjschrijver
โ€ขToolkit for building reactive applications on the JVM
โ€ขGeneral purpose application framework
โ€ขSwiss army knife for building modern and scalable
web apps
โ€ขEvent-driven, non-blocking
โ€ขPolyglot
โ€ขLightweight and fast
โ€ขFun to work with!
Vert.x: the basics
#vertx @bjschrijver
โ€ขWe love open source
โ€ขPowerful module system
โ€ขReactive characteristics
Why we chose Vert.x
#vertx @bjschrijver
Vert.x is reactive
@YourTwitterHandle#DVXFR14{session hashtag}#vertx @bjschrijver
Dem
o
@YourTwitterHandle#DVXFR14{session hashtag}#vertx @bjschrijver
Vert.x
in
depth
#vertx @bjschrijver
โ€ขVerticle, application, instance, JVM:
Vert.x in depth
Host
JVM
Vert.x instance
Verticle
Event Bus
Verticle
Verticle
Verticle
JVM
Vert.x instance
Verticle
Verticle
Verticle
Verticle
#vertx @bjschrijver
โ€ขVerticle, application, instance, JVM:
Host
Vert.x in depth
Host
JVM
Vert.x instance
Verticle
Event Bus
Verticle
Verticle
Verticle
JVM
Vert.x instance
Verticle
Verticle
Verticle
Verticle
#vertx @bjschrijver
โ€ขEvent driven and non blocking event loop
โ€ขMulti-reactor pattern
โ€ขActor-like concurrency
โ€ขDistributed event bus
โ€ขManagement and monitoring built-in
Vert.x in depth
#vertx @bjschrijver
โ€ขBoth request/response and publish/subscribe
โ€ขAll Vert.x instances have access to the event bus
โ€ขVerticles interact using messages
โ€ขMessages are received by Handlers
Vert.x event bus
#vertx @bjschrijver
โ€ขNever ever ever block the event loop!
โ€ขNeed to to blocking stuff? Use a worker
Vert.xโ€™s golden rule
#vertx @bjschrijver
Vert.x in one slide
Source: http://www.slideshare.net/clement.escoffier/vertx-31-be-reactive-on-the-jvm-but-not-only-in-java
@YourTwitterHandle#DVXFR14{session hashtag}#vertx @bjschrijver
Dem
o
@YourTwitterHandle#DVXFR14{session hashtag}#vertx @bjschrijver
Vert.x
and
m
icroservices
#vertx @bjschrijver
โ€ขSmall in size, single responsibility
โ€ขRuns in its own process
โ€ขHas its own data store
โ€ขDistributed by default
โ€ขIndependently develop, deploy, upgrade, scale
โ€ขPotentially heterogeneous/polyglot
โ€ขLight-weight communication
Anatomy of a microservice
#vertx @bjschrijver
โ€ขSmall in size, single responsibility
โ€ขRuns in its own process
โ€ขHas its own data store
โ€ขDistributed by default
โ€ขIndependently develop, deploy, upgrade, scale
โ€ขPotentially heterogeneous/polyglot
โ€ขLight-weight communication
Anatomy of a Vert.x modulemicroservice
@YourTwitterHandle#DVXFR14{session hashtag}#vertx @bjschrijver
Vert.x
in
practice
#vertx @bjschrijver
โ€ขOrganisation structure:
โ€ขCore platform team (infrastructure)
โ€ขCore modules team (Vert.x modules)
โ€ขProduct teams
โ€ขDeployment model: AWS, Nginx, MongoDB
โ€ขA product consists of multiple lightweight artifacts
โ€ขRe-use of Vert.x modules (no central services)
3 years of Vert.x: situation
#vertx @bjschrijver
โ€ขRolled our own deployment tooling and open
sourced itโ€จ
(https://github.com/msoute/vertx-deploy-tools)
โ€ขControlled from Jenkins
โ€ขZero-downtime deployments
โ€ขMicroservice deployments
3 years of Vert.x: deployments
#vertx @bjschrijver
โ€ขVery suitable for test driven development
โ€ขIntegration tests with embedded MongoDB
โ€ขGood cooperation with the Vert.x team
3 years of Vert.x: experiences
#vertx @bjschrijver
โ€ข Callback hell
โ€ข Java 8 helped a LOT
โ€ข Rx fixes the remaining issues
โ€ข Blocking the event loop
โ€ข Scaling / JVM overhead
โ€ข Debugging
โ€ข Static code analysis
โ€ข Upgrade from Vert.x 2 to Vert.x 3
3 years of Vert.x: challenges
@YourTwitterHandle#DVXFR14{session hashtag}#vertx @bjschrijver
Alm
ost there
;-)
@YourTwitterHandle#DVXFR14{session hashtag}#vertx @bjschrijver
Sum
m
ary
#vertx @bjschrijver
โ€ขVert.x: toolkit for reactive applications on the JVM
โ€ขPolyglot, event-driven
โ€ขVery suitable for building microservices
Summary
#vertx @bjschrijver
โ€ขhttps://github.com/bertjan/vertx3-examples
โ€ขhttp://vertx.io
โ€ขhttp://vertx.io/blog/my-first-vert-x-3-application
โ€ขhttps://github.com/vert-x3/vertx-examples
โ€ขhttp://github.com/msoute/vertx-deploy-tools
Vert.x resources
Donโ€™t worry, Iโ€™ll tweet a link to the slide deck ;-)
@YourTwitterHandle#DVXFR14{session hashtag}#vertx @bjschrijver
Q
&
A
@YourTwitterHandle#DVXFR14{session hashtag}#vertx @bjschrijver
One
m
ore
thingโ€ฆ
#vertx @bjschrijver
โ€ขMy next project with Vert.x:
One more thingโ€ฆ
#vertx @bjschrijver
โ€ขPlease care about conference quality
โ€ขRate this talk in the Devoxx app
โ€ขGot feedback? Want to learn more? Let me know!
Thanks for your time!
All pictures belong
to their respective authors
@bjschrijverโ€จ
bertjan@jpoint.nl

More Related Content

PDF
Malmberg meetup June 2018 - Building microservices with Vert.x
PDF
Vert.x NL meetup October 2017 - Building microservices with Vert.x
PDF
Dublin JUG February 2018 - Building microservices with Vert.x
PDF
VJUG 24 - Building microservices with Vert.x
PDF
Building microservices with Vert.X @ Fall 2016
PDF
JBCNConf 2017 - Building microservices with Vert.x
PDF
GeekOut 2017 - Microservices in action at the Dutch National Police
PDF
Utrecht JUG - Building microservices with Vert.x
Malmberg meetup June 2018 - Building microservices with Vert.x
Vert.x NL meetup October 2017 - Building microservices with Vert.x
Dublin JUG February 2018 - Building microservices with Vert.x
VJUG 24 - Building microservices with Vert.x
Building microservices with Vert.X @ Fall 2016
JBCNConf 2017 - Building microservices with Vert.x
GeekOut 2017 - Microservices in action at the Dutch National Police
Utrecht JUG - Building microservices with Vert.x

What's hot (20)

PDF
Codemotion Amsterdam 2016 - Building microservices with Vert.x
PDF
Mastering microservices - Dot Net Tricks
PPTX
Microservices with Minimal APi and .NET 6
PDF
Virtual GitLab Meetup: How Containerized Pipelines and Kubernetes Can Boost Y...
PPTX
From zero to hero with Docker
PPTX
Java in azure dev ops
PDF
AWS Meetup Nov 2015 - News Corp Presentation
PPTX
Docker, From zero to hero
PPTX
Azure Saturday 2017 - Planning for the Cloud
PDF
Azure Saturday Hamburg: Containerize Your .NET Microservice - the Right Way!
PPTX
Azure Saturday 2017 - Hold my beer...
PPTX
Monoliths vs microservices
PPTX
How to deploy a Private Cloud based on WAP and Nutanix
PDF
Continuous Lifecycle: Enhance Your Compliance and Governance With Policy-Base...
PDF
Hijack a Kubernetes Cluster - a Walkthrough
PPTX
ASP.NET Core
PDF
Python conf 2013 taiwan azure
PPTX
The busy developer guide to Docker
PDF
DublinJS: Titanium & Alloy
PPTX
Changing the Game with Cloud, Microservices, and DevOps
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Mastering microservices - Dot Net Tricks
Microservices with Minimal APi and .NET 6
Virtual GitLab Meetup: How Containerized Pipelines and Kubernetes Can Boost Y...
From zero to hero with Docker
Java in azure dev ops
AWS Meetup Nov 2015 - News Corp Presentation
Docker, From zero to hero
Azure Saturday 2017 - Planning for the Cloud
Azure Saturday Hamburg: Containerize Your .NET Microservice - the Right Way!
Azure Saturday 2017 - Hold my beer...
Monoliths vs microservices
How to deploy a Private Cloud based on WAP and Nutanix
Continuous Lifecycle: Enhance Your Compliance and Governance With Policy-Base...
Hijack a Kubernetes Cluster - a Walkthrough
ASP.NET Core
Python conf 2013 taiwan azure
The busy developer guide to Docker
DublinJS: Titanium & Alloy
Changing the Game with Cloud, Microservices, and DevOps
Ad

Viewers also liked (15)

PDF
Codemotion Amsterdam 2016 - The DevOps Disaster
PDF
JavaZone 2016: Continuous performance
PDF
Utrecht JUG - Pipeline as code
PDF
Jfokus 2017 - The DevOps Disaster
PDF
JavaOne Ignite 2016 - How to build your own self-driving car
PDF
JavaOne 2016 - Pipeline as code
PDF
DevOps Utrecht - The DevOps Disaster
PDF
GOTO Amsterdam 2016 - The DevOps Disaster
PDF
Codemotion tech pills - Continuous performance
PDF
JavaLand 2016 - Decoding the air around you with Java and $7 hardware
PDF
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
PDF
JavaLand 2016: Continuous performance
PDF
Amsterdam JUG - Continuous performance
PDF
JavaLand 2017 - Pipeline as code
PDF
Digital Ocean Amsterdam meetup March 2017 - The DevOps disaster
Codemotion Amsterdam 2016 - The DevOps Disaster
JavaZone 2016: Continuous performance
Utrecht JUG - Pipeline as code
Jfokus 2017 - The DevOps Disaster
JavaOne Ignite 2016 - How to build your own self-driving car
JavaOne 2016 - Pipeline as code
DevOps Utrecht - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps Disaster
Codemotion tech pills - Continuous performance
JavaLand 2016 - Decoding the air around you with Java and $7 hardware
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
JavaLand 2016: Continuous performance
Amsterdam JUG - Continuous performance
JavaLand 2017 - Pipeline as code
Digital Ocean Amsterdam meetup March 2017 - The DevOps disaster
Ad

Similar to Devoxx UK 2016 - Building microservices with Vert.x (20)

PDF
Building microservices with Vert.x - Bert Jan Schrijver - Codemotion Amsterda...
PDF
Fuse integration-services
PPTX
Business and IT agility through DevOps and microservice architecture powered ...
PPTX
ThatConference 2016 - Highly Available Node.js
DOCX
Md Zahir Uddin
PPTX
WSO2 Workshop Sydney 2016 - Microservices
PPTX
JavaScript Frameworks: For the Year 2017
PDF
Bol.com Tech lab September 2017 - Microservices in action at the Dutch Nation...
PPTX
VB.NET Development Company for Scalable Web Applications
PDF
Agile Secure Cloud Application Development Management
PPTX
My personal story from azure it pro to azure dev ops
PPTX
Designing Microservices
PDF
Mastering azure devOps - Dot Net Tricks
PDF
Cloud Native Camel Riding
PPTX
Neo4j for Cloud Management at Scale
ย 
PDF
Is OSGi Modularity Always Worth It? - Glyn Normington
PPTX
Why to Cloud Native
PPTX
Micro services
PDF
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
PDF
IncQuery Server for Teamwork Cloud - Talk at IW2019
Building microservices with Vert.x - Bert Jan Schrijver - Codemotion Amsterda...
Fuse integration-services
Business and IT agility through DevOps and microservice architecture powered ...
ThatConference 2016 - Highly Available Node.js
Md Zahir Uddin
WSO2 Workshop Sydney 2016 - Microservices
JavaScript Frameworks: For the Year 2017
Bol.com Tech lab September 2017 - Microservices in action at the Dutch Nation...
VB.NET Development Company for Scalable Web Applications
Agile Secure Cloud Application Development Management
My personal story from azure it pro to azure dev ops
Designing Microservices
Mastering azure devOps - Dot Net Tricks
Cloud Native Camel Riding
Neo4j for Cloud Management at Scale
ย 
Is OSGi Modularity Always Worth It? - Glyn Normington
Why to Cloud Native
Micro services
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
IncQuery Server for Teamwork Cloud - Talk at IW2019

Recently uploaded (20)

PDF
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
PPTX
Digital Literacy And Online Safety on internet
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
PDF
Vigrab.top โ€“ Online Tool for Downloading and Converting Social Media Videos a...
PPTX
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
PDF
Tenda Login Guide: Access Your Router in 5 Easy Steps
PPTX
Funds Management Learning Material for Beg
PDF
An introduction to the IFRS (ISSB) Stndards.pdf
PPTX
Introduction to Information and Communication Technology
PDF
RPKI Status Update, presented by Makito Lay at IDNOG 10
ย 
PDF
The Internet -By the Numbers, Sri Lanka Edition
ย 
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PDF
๐Ÿ’ฐ ๐”๐Š๐“๐ˆ ๐Š๐„๐Œ๐„๐๐€๐๐†๐€๐ ๐Š๐ˆ๐๐„๐‘๐Ÿ’๐ƒ ๐‡๐€๐‘๐ˆ ๐ˆ๐๐ˆ ๐Ÿ๐ŸŽ๐Ÿ๐Ÿ“ ๐Ÿ’ฐ
ย 
PDF
Testing WebRTC applications at scale.pdf
PPTX
Introuction about WHO-FIC in ICD-10.pptx
PDF
WebRTC in SignalWire - troubleshooting media negotiation
PDF
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
PDF
Decoding a Decade: 10 Years of Applied CTI Discipline
PPTX
Internet___Basics___Styled_ presentation
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
Digital Literacy And Online Safety on internet
Slides PPTX World Game (s) Eco Economic Epochs.pptx
Vigrab.top โ€“ Online Tool for Downloading and Converting Social Media Videos a...
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
Tenda Login Guide: Access Your Router in 5 Easy Steps
Funds Management Learning Material for Beg
An introduction to the IFRS (ISSB) Stndards.pdf
Introduction to Information and Communication Technology
RPKI Status Update, presented by Makito Lay at IDNOG 10
ย 
The Internet -By the Numbers, Sri Lanka Edition
ย 
The New Creative Director: How AI Tools for Social Media Content Creation Are...
๐Ÿ’ฐ ๐”๐Š๐“๐ˆ ๐Š๐„๐Œ๐„๐๐€๐๐†๐€๐ ๐Š๐ˆ๐๐„๐‘๐Ÿ’๐ƒ ๐‡๐€๐‘๐ˆ ๐ˆ๐๐ˆ ๐Ÿ๐ŸŽ๐Ÿ๐Ÿ“ ๐Ÿ’ฐ
ย 
Testing WebRTC applications at scale.pdf
Introuction about WHO-FIC in ICD-10.pptx
WebRTC in SignalWire - troubleshooting media negotiation
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
Decoding a Decade: 10 Years of Applied CTI Discipline
Internet___Basics___Styled_ presentation
522797556-Unit-2-Temperature-measurement-1-1.pptx

Devoxx UK 2016 - Building microservices with Vert.x