SlideShare ist ein Scribd-Unternehmen logo
1 von 32
PRODUCTION READY VERT.X
Berlin | 30.04.2014
TABLE OF CONTENTS
1. Introduction
2. The Beginning
3. What is Vert.x?
4. How to start?
5. Infrastructure as code
6. Vert.x module system
7. Integration with messaging system
8. Kafka module
2Berlin | 2014 | zanox | JUG BB
INTRODUCTION ZANOX
Europe‘s leading performance advertising network
3Berlin | 2014 | zanox | JUG BB
THE BEGINNING
4Berlin | 2014 | zanox | JUG BB
Java Magazin 04.14:
Vert.x im Unternehmenseinsatz
Entwicklung und Betrieb von
asynchronen Applikationen mit Vert.x in
der Praxis
THE BEGINNING
● New request processing-system for Zanox
● Requirements are pretty high (not negotiable):
● Low latency
● High throughput
● Scalable
● Resilient
● Responsive
● Event-Driven
● Fast
5Berlin | 2014 | zanox | JUG BB
THE BEGINNING
6Berlin | 2014 | zanox | JUG BB
“Vert.x is a lightweight, high performance application
platform for the JVM that's designed for modern
mobile, web, and enterprise applications.”
Vert.x
WHAT IS VERT.X?
7Berlin | 2014 | zanox | JUG BB
WHAT IS VERT.X?
8Berlin | 2014 | zanox | JUG BB
Polyglot
WHAT IS A VERTICLE?
● Classes with an own Classloader
● operates Single Threaded
● executed by an Event Loop
9Berlin | 2014 | zanox | JUG BB
10Berlin | 2014 | zanox | JUG BB
Event Loop Pool
Event Bus
V V V W W W
TAKE A LOOK INSIDE
WHAT‘S DEEP INSIDE?
● Build on top of Netty 4
● Uses Hazelcast for node discovery
● Jackson for JSON
● Java7+
11Berlin | 2014 | zanox | JUG BB
HOW TO START?
● Prerequisite: JDK 7
● download and unzip file from vertx.io
● put /bin directory to PATH variable
12Berlin | 2014 | zanox | JUG BB
HOW TO START?
● mvn archetype:generate -Dfilter=io.vertx:
(do not forget the colon!)
● generates structure for all languages (JS, Ruby,
Groovy, Python)
● maven pom is already set with relevant data
13Berlin | 2014 | zanox | JUG BB
HOW TO START?
14Berlin | 2014 | zanox | JUG BB
BEST PRACTICES
15Berlin | 2014 | zanox | JUG BB
BEST PRACTICES
● do not block the loop
● put blocking code or extensive computation into
worker verticles
● keep the application responsive
● stress test as often as possible
● encapsulate common code in modules (more on this
later)
16Berlin | 2014 | zanox | JUG BB
INFRASTRUCTURE AS CODE
17Berlin | 2014 | zanox | JUG BB
INFRASTRUCTURE AS CODE
18Berlin | 2014 | zanox | JUG BB
"CHEF IS LIKE A LITTLE SYSTEM
ADMIN ROBOT ... YOU TELL IT
HOW YOU WANT YOUR SYSTEM
CONFIGURED, AND IT WILL DO ALL
THE DIRTY WORK.”
INFRASTRUCTURE AS CODE
19Berlin | 2014 | zanox | JUG BB
INFRASTRUCTURE AS CODE
20Berlin | 2014 | zanox | JUG BB
Chef Cookbook
INFRASTRUCTURE AS CODE
21Berlin | 2014 | zanox | JUG BB
VERT.X MODULE SYSTEM
● Vert.x has a powerful module system.
● Package your Vert.x components into modules for
encapsulation and reuse.
● The module is a zip file
● It can be just plugged in into your application
22Berlin | 2014 | zanox | JUG BB
VERT.X MODULE SYSTEM
● Share your modules with the community by putting
them in Maven Central, any other Maven repository, or
in Bintray.
● Advertise your module in the module registry.
23Berlin | 2014 | zanox | JUG BB
VERT.X MODULE REGISTRY
● Just fill in the form and wait for approval:
24Berlin | 2014 | zanox | JUG BB
INTEGRATION WITH MESSAGING
SYSTEM
● Apache Kafka is a publish-subscribe messaging
implemented as a distributed commit log.
● Fast
● Scalable
● Durable
● Distributed
25
KAFKA MESSAGING SYSTEM
Berlin | 2014 | zanox | JUG BB
INTEGRATION WITH MESSAGING
SYSTEM
● Topic - categories for feeds of messages
● Producer - publishes messages to topics
● Consumer - subscribes to topics and process the feed
of published messages consumers
● Broker - Kafka is run as a cluster comprised of one or
more servers each of which is called a broker.
26
MAIN TERMINOLOGY:
Berlin | 2014 | zanox | JUG BB
KAFKA MODULE
● Application sends messages to Kafka module using
Vert.x event bus
● Kafka module acts as a producer
● Available on Maven Central and Vert.x module registry
27Berlin | 2014 | zanox | JUG BB
KAFKA MODULE IN MODULE REGISTRY
Open sourced Kafka module in Vert.x’s module registry -
http://modulereg.vertx.io/
28Berlin | 2014 | zanox | JUG BB
USING VERT.X MODULE
First, deploy the module into your application:
container.deployModule("com.zanox.vertx~mo
d-kafka~1.0.2", config);
29Berlin | 2014 | zanox | JUG BB
USING KAFKA MODULE
JsonObject config = new JsonObject();
config.putString("kafka-topic", ‘kafka_topic“);
config.putString("metadata.broker.list",
“localhost:9092”);
config.putString("request.required.acks", "1");
30
CONFIGURATION IS A JSON OBJECT:
Berlin | 2014 | zanox | JUG BB
METRICS OF VERT.X PROJECT
● On 4 Cores virtual machine we had the following
results:
● ~28 K requests per second without Kafka, with
lookup from Redis
● ~18 K requests per second with Kafka and lookup
from Redis
31Berlin | 2014 | zanox | JUG BB
32Berlin | 2014 | zanox | JUG BB

Weitere ähnliche Inhalte

Was ist angesagt?

OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...
OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...
OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...OpenNebula Project
 
An Introduction to the Vert.x framework
An Introduction to the Vert.x frameworkAn Introduction to the Vert.x framework
An Introduction to the Vert.x frameworkzznate
 
OpenNebulaConf 2016 - Sunstone integration with FreeIPA using Single Sign by ...
OpenNebulaConf 2016 - Sunstone integration with FreeIPA using Single Sign by ...OpenNebulaConf 2016 - Sunstone integration with FreeIPA using Single Sign by ...
OpenNebulaConf 2016 - Sunstone integration with FreeIPA using Single Sign by ...OpenNebula Project
 
vert.x - life beyond jetty and apache
vert.x - life beyond jetty and apachevert.x - life beyond jetty and apache
vert.x - life beyond jetty and apacheRalph Winzinger
 
Disaster recovery solution with open nebula and storpool
Disaster recovery solution with open nebula and storpoolDisaster recovery solution with open nebula and storpool
Disaster recovery solution with open nebula and storpoolOpenNebula Project
 
WebAssembly Fundamentals
WebAssembly FundamentalsWebAssembly Fundamentals
WebAssembly FundamentalsKnoldus Inc.
 
Node.js Internals and V8 / Operating System Interaction
Node.js Internals and V8 / Operating System InteractionNode.js Internals and V8 / Operating System Interaction
Node.js Internals and V8 / Operating System InteractionGlobalLogic Ukraine
 
Discover Quarkus and GraalVM
Discover Quarkus and GraalVMDiscover Quarkus and GraalVM
Discover Quarkus and GraalVMRomain Schlick
 
OpenNebulaConf 2016 - VTastic: Akamai Innovations for Distributed System Test...
OpenNebulaConf 2016 - VTastic: Akamai Innovations for Distributed System Test...OpenNebulaConf 2016 - VTastic: Akamai Innovations for Distributed System Test...
OpenNebulaConf 2016 - VTastic: Akamai Innovations for Distributed System Test...OpenNebula Project
 
Contrail Virtual Execution Platform
Contrail Virtual Execution PlatformContrail Virtual Execution Platform
Contrail Virtual Execution PlatformNETWAYS
 
Microservice Workshop Hands On
Microservice Workshop Hands On Microservice Workshop Hands On
Microservice Workshop Hands On Ram G Suri
 
OpenNebula in a Multiuser Environment
OpenNebula in a Multiuser EnvironmentOpenNebula in a Multiuser Environment
OpenNebula in a Multiuser EnvironmentNETWAYS
 
OpenNebulaConf2018 - Our Journey to OpenNebula - Germán Gutierrez - Booking.com
OpenNebulaConf2018 - Our Journey to OpenNebula - Germán Gutierrez - Booking.comOpenNebulaConf2018 - Our Journey to OpenNebula - Germán Gutierrez - Booking.com
OpenNebulaConf2018 - Our Journey to OpenNebula - Germán Gutierrez - Booking.comOpenNebula Project
 
OpenNebulaconf2017US: Orchestration of vMware datacenters with OpenNebula by ...
OpenNebulaconf2017US: Orchestration of vMware datacenters with OpenNebula by ...OpenNebulaconf2017US: Orchestration of vMware datacenters with OpenNebula by ...
OpenNebulaconf2017US: Orchestration of vMware datacenters with OpenNebula by ...OpenNebula Project
 
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...OpenNebula Project
 
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan HoracekOpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan HoracekNETWAYS
 
NATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSNATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSRaül Pérez
 

Was ist angesagt? (20)

OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...
OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...
OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...
 
An Introduction to the Vert.x framework
An Introduction to the Vert.x frameworkAn Introduction to the Vert.x framework
An Introduction to the Vert.x framework
 
OpenNebulaConf 2016 - Sunstone integration with FreeIPA using Single Sign by ...
OpenNebulaConf 2016 - Sunstone integration with FreeIPA using Single Sign by ...OpenNebulaConf 2016 - Sunstone integration with FreeIPA using Single Sign by ...
OpenNebulaConf 2016 - Sunstone integration with FreeIPA using Single Sign by ...
 
vert.x - life beyond jetty and apache
vert.x - life beyond jetty and apachevert.x - life beyond jetty and apache
vert.x - life beyond jetty and apache
 
Disaster recovery solution with open nebula and storpool
Disaster recovery solution with open nebula and storpoolDisaster recovery solution with open nebula and storpool
Disaster recovery solution with open nebula and storpool
 
WebAssembly Fundamentals
WebAssembly FundamentalsWebAssembly Fundamentals
WebAssembly Fundamentals
 
Bye bye WCF, hello gRPC
Bye bye WCF, hello gRPCBye bye WCF, hello gRPC
Bye bye WCF, hello gRPC
 
oVirt – open your virtual datacenter
oVirt – open your virtual datacenteroVirt – open your virtual datacenter
oVirt – open your virtual datacenter
 
Node.js Internals and V8 / Operating System Interaction
Node.js Internals and V8 / Operating System InteractionNode.js Internals and V8 / Operating System Interaction
Node.js Internals and V8 / Operating System Interaction
 
Discover Quarkus and GraalVM
Discover Quarkus and GraalVMDiscover Quarkus and GraalVM
Discover Quarkus and GraalVM
 
OpenNebulaConf 2016 - VTastic: Akamai Innovations for Distributed System Test...
OpenNebulaConf 2016 - VTastic: Akamai Innovations for Distributed System Test...OpenNebulaConf 2016 - VTastic: Akamai Innovations for Distributed System Test...
OpenNebulaConf 2016 - VTastic: Akamai Innovations for Distributed System Test...
 
Contrail Virtual Execution Platform
Contrail Virtual Execution PlatformContrail Virtual Execution Platform
Contrail Virtual Execution Platform
 
Microservice Workshop Hands On
Microservice Workshop Hands On Microservice Workshop Hands On
Microservice Workshop Hands On
 
OpenNebula in a Multiuser Environment
OpenNebula in a Multiuser EnvironmentOpenNebula in a Multiuser Environment
OpenNebula in a Multiuser Environment
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
OpenNebulaConf2018 - Our Journey to OpenNebula - Germán Gutierrez - Booking.com
OpenNebulaConf2018 - Our Journey to OpenNebula - Germán Gutierrez - Booking.comOpenNebulaConf2018 - Our Journey to OpenNebula - Germán Gutierrez - Booking.com
OpenNebulaConf2018 - Our Journey to OpenNebula - Germán Gutierrez - Booking.com
 
OpenNebulaconf2017US: Orchestration of vMware datacenters with OpenNebula by ...
OpenNebulaconf2017US: Orchestration of vMware datacenters with OpenNebula by ...OpenNebulaconf2017US: Orchestration of vMware datacenters with OpenNebula by ...
OpenNebulaconf2017US: Orchestration of vMware datacenters with OpenNebula by ...
 
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
 
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan HoracekOpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
 
NATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSNATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATS
 

Andere mochten auch

Real World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xMariam Hakobyan
 
Vert.x – The problem of real-time data binding
Vert.x – The problem of real-time data bindingVert.x – The problem of real-time data binding
Vert.x – The problem of real-time data bindingAlex Derkach
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingMayflower GmbH
 
Cloud Patterns Beuth Hochschule
Cloud Patterns Beuth HochschuleCloud Patterns Beuth Hochschule
Cloud Patterns Beuth HochschuleSascha Möllering
 
Real World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xSascha Möllering
 
Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive app...
 	Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive app... 	Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive app...
Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive app...Anna Shymchenko
 
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016University of Geneva
 
Integrate Jenkins with S3
Integrate Jenkins with S3Integrate Jenkins with S3
Integrate Jenkins with S3devopsjourney
 
Vert.x using Groovy - Simplifying non-blocking code
Vert.x using Groovy - Simplifying non-blocking codeVert.x using Groovy - Simplifying non-blocking code
Vert.x using Groovy - Simplifying non-blocking codesascha_klein
 

Andere mochten auch (20)

Real World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.x
 
Vert.x – The problem of real-time data binding
Vert.x – The problem of real-time data bindingVert.x – The problem of real-time data binding
Vert.x – The problem of real-time data binding
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
 
Heatmap
HeatmapHeatmap
Heatmap
 
Cloud Patterns Beuth Hochschule
Cloud Patterns Beuth HochschuleCloud Patterns Beuth Hochschule
Cloud Patterns Beuth Hochschule
 
Docker in der Cloud
Docker in der CloudDocker in der Cloud
Docker in der Cloud
 
Docker in der AWS Cloud
Docker in der AWS CloudDocker in der AWS Cloud
Docker in der AWS Cloud
 
MTC 2013 monetarisierung
MTC 2013 monetarisierungMTC 2013 monetarisierung
MTC 2013 monetarisierung
 
Real World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.x
 
DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop
 
Docker on AWS
Docker on AWSDocker on AWS
Docker on AWS
 
Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive app...
 	Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive app... 	Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive app...
Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive app...
 
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
 
Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
 
Docker in the Cloud
Docker in the CloudDocker in the Cloud
Docker in the Cloud
 
Integrate Jenkins with S3
Integrate Jenkins with S3Integrate Jenkins with S3
Integrate Jenkins with S3
 
Vert.x
Vert.xVert.x
Vert.x
 
Vert.x using Groovy - Simplifying non-blocking code
Vert.x using Groovy - Simplifying non-blocking codeVert.x using Groovy - Simplifying non-blocking code
Vert.x using Groovy - Simplifying non-blocking code
 
BED Con JBoss
BED Con JBossBED Con JBoss
BED Con JBoss
 
Vert.x 3
Vert.x 3Vert.x 3
Vert.x 3
 

Ähnlich wie Production ready Vert.x

Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...VMware Tanzu
 
Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformRonak Banka
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsBrad Williams
 
eZ Publish Platform 5.4 public webinar
eZ Publish Platform 5.4 public webinareZ Publish Platform 5.4 public webinar
eZ Publish Platform 5.4 public webinarRoland Benedetti
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformJeffrey T. Fritz
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...NETWAYS
 
Twelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring FrameworkTwelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring Frameworkdinkar thakur
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics sbbabu
 
create auto scale jboss cluster with openshift
create auto scale jboss cluster with openshiftcreate auto scale jboss cluster with openshift
create auto scale jboss cluster with openshiftYusuf Hadiwinata Sutandar
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetessparkfabrik
 
Serverless Pune Meetup 1
Serverless Pune Meetup 1Serverless Pune Meetup 1
Serverless Pune Meetup 1Vishal Biyani
 
Devops automation using Docker, Kubernetes and Openshift
Devops automation using Docker, Kubernetes and OpenshiftDevops automation using Docker, Kubernetes and Openshift
Devops automation using Docker, Kubernetes and OpenshiftJonathan Tse
 
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011Nuxeo
 
MuleSoft London Community November 2019 - MuleSoft and CICD
MuleSoft London Community November 2019 - MuleSoft and CICDMuleSoft London Community November 2019 - MuleSoft and CICD
MuleSoft London Community November 2019 - MuleSoft and CICDPace Integration
 
The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor appRavi Okade
 
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...VMware Tanzu
 
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...VMworld
 
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014FalafelSoftware
 
Cloudify 4.6 highlights webinar
Cloudify 4.6 highlights webinarCloudify 4.6 highlights webinar
Cloudify 4.6 highlights webinarCloudify Community
 

Ähnlich wie Production ready Vert.x (20)

Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...
 
Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platform
 
Cloud Foundry Roadmap in 2016
Cloud Foundry Roadmap in 2016Cloud Foundry Roadmap in 2016
Cloud Foundry Roadmap in 2016
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
 
eZ Publish Platform 5.4 public webinar
eZ Publish Platform 5.4 public webinareZ Publish Platform 5.4 public webinar
eZ Publish Platform 5.4 public webinar
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
 
Twelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring FrameworkTwelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring Framework
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 
create auto scale jboss cluster with openshift
create auto scale jboss cluster with openshiftcreate auto scale jboss cluster with openshift
create auto scale jboss cluster with openshift
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
Serverless Pune Meetup 1
Serverless Pune Meetup 1Serverless Pune Meetup 1
Serverless Pune Meetup 1
 
Devops automation using Docker, Kubernetes and Openshift
Devops automation using Docker, Kubernetes and OpenshiftDevops automation using Docker, Kubernetes and Openshift
Devops automation using Docker, Kubernetes and Openshift
 
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011
 
MuleSoft London Community November 2019 - MuleSoft and CICD
MuleSoft London Community November 2019 - MuleSoft and CICDMuleSoft London Community November 2019 - MuleSoft and CICD
MuleSoft London Community November 2019 - MuleSoft and CICD
 
The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor app
 
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
 
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
 
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
 
Cloudify 4.6 highlights webinar
Cloudify 4.6 highlights webinarCloudify 4.6 highlights webinar
Cloudify 4.6 highlights webinar
 

Kürzlich hochgeladen

Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
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 CCTVshikhaohhpro
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
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...ICS
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
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.pdfkalichargn70th171
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
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.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 

Kürzlich hochgeladen (20)

Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
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
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
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...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
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
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
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
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

Production ready Vert.x

  • 2. TABLE OF CONTENTS 1. Introduction 2. The Beginning 3. What is Vert.x? 4. How to start? 5. Infrastructure as code 6. Vert.x module system 7. Integration with messaging system 8. Kafka module 2Berlin | 2014 | zanox | JUG BB
  • 3. INTRODUCTION ZANOX Europe‘s leading performance advertising network 3Berlin | 2014 | zanox | JUG BB
  • 4. THE BEGINNING 4Berlin | 2014 | zanox | JUG BB Java Magazin 04.14: Vert.x im Unternehmenseinsatz Entwicklung und Betrieb von asynchronen Applikationen mit Vert.x in der Praxis
  • 5. THE BEGINNING ● New request processing-system for Zanox ● Requirements are pretty high (not negotiable): ● Low latency ● High throughput ● Scalable ● Resilient ● Responsive ● Event-Driven ● Fast 5Berlin | 2014 | zanox | JUG BB
  • 6. THE BEGINNING 6Berlin | 2014 | zanox | JUG BB
  • 7. “Vert.x is a lightweight, high performance application platform for the JVM that's designed for modern mobile, web, and enterprise applications.” Vert.x WHAT IS VERT.X? 7Berlin | 2014 | zanox | JUG BB
  • 8. WHAT IS VERT.X? 8Berlin | 2014 | zanox | JUG BB Polyglot
  • 9. WHAT IS A VERTICLE? ● Classes with an own Classloader ● operates Single Threaded ● executed by an Event Loop 9Berlin | 2014 | zanox | JUG BB
  • 10. 10Berlin | 2014 | zanox | JUG BB Event Loop Pool Event Bus V V V W W W TAKE A LOOK INSIDE
  • 11. WHAT‘S DEEP INSIDE? ● Build on top of Netty 4 ● Uses Hazelcast for node discovery ● Jackson for JSON ● Java7+ 11Berlin | 2014 | zanox | JUG BB
  • 12. HOW TO START? ● Prerequisite: JDK 7 ● download and unzip file from vertx.io ● put /bin directory to PATH variable 12Berlin | 2014 | zanox | JUG BB
  • 13. HOW TO START? ● mvn archetype:generate -Dfilter=io.vertx: (do not forget the colon!) ● generates structure for all languages (JS, Ruby, Groovy, Python) ● maven pom is already set with relevant data 13Berlin | 2014 | zanox | JUG BB
  • 14. HOW TO START? 14Berlin | 2014 | zanox | JUG BB
  • 15. BEST PRACTICES 15Berlin | 2014 | zanox | JUG BB
  • 16. BEST PRACTICES ● do not block the loop ● put blocking code or extensive computation into worker verticles ● keep the application responsive ● stress test as often as possible ● encapsulate common code in modules (more on this later) 16Berlin | 2014 | zanox | JUG BB
  • 17. INFRASTRUCTURE AS CODE 17Berlin | 2014 | zanox | JUG BB
  • 18. INFRASTRUCTURE AS CODE 18Berlin | 2014 | zanox | JUG BB "CHEF IS LIKE A LITTLE SYSTEM ADMIN ROBOT ... YOU TELL IT HOW YOU WANT YOUR SYSTEM CONFIGURED, AND IT WILL DO ALL THE DIRTY WORK.”
  • 19. INFRASTRUCTURE AS CODE 19Berlin | 2014 | zanox | JUG BB
  • 20. INFRASTRUCTURE AS CODE 20Berlin | 2014 | zanox | JUG BB Chef Cookbook
  • 21. INFRASTRUCTURE AS CODE 21Berlin | 2014 | zanox | JUG BB
  • 22. VERT.X MODULE SYSTEM ● Vert.x has a powerful module system. ● Package your Vert.x components into modules for encapsulation and reuse. ● The module is a zip file ● It can be just plugged in into your application 22Berlin | 2014 | zanox | JUG BB
  • 23. VERT.X MODULE SYSTEM ● Share your modules with the community by putting them in Maven Central, any other Maven repository, or in Bintray. ● Advertise your module in the module registry. 23Berlin | 2014 | zanox | JUG BB
  • 24. VERT.X MODULE REGISTRY ● Just fill in the form and wait for approval: 24Berlin | 2014 | zanox | JUG BB
  • 25. INTEGRATION WITH MESSAGING SYSTEM ● Apache Kafka is a publish-subscribe messaging implemented as a distributed commit log. ● Fast ● Scalable ● Durable ● Distributed 25 KAFKA MESSAGING SYSTEM Berlin | 2014 | zanox | JUG BB
  • 26. INTEGRATION WITH MESSAGING SYSTEM ● Topic - categories for feeds of messages ● Producer - publishes messages to topics ● Consumer - subscribes to topics and process the feed of published messages consumers ● Broker - Kafka is run as a cluster comprised of one or more servers each of which is called a broker. 26 MAIN TERMINOLOGY: Berlin | 2014 | zanox | JUG BB
  • 27. KAFKA MODULE ● Application sends messages to Kafka module using Vert.x event bus ● Kafka module acts as a producer ● Available on Maven Central and Vert.x module registry 27Berlin | 2014 | zanox | JUG BB
  • 28. KAFKA MODULE IN MODULE REGISTRY Open sourced Kafka module in Vert.x’s module registry - http://modulereg.vertx.io/ 28Berlin | 2014 | zanox | JUG BB
  • 29. USING VERT.X MODULE First, deploy the module into your application: container.deployModule("com.zanox.vertx~mo d-kafka~1.0.2", config); 29Berlin | 2014 | zanox | JUG BB
  • 30. USING KAFKA MODULE JsonObject config = new JsonObject(); config.putString("kafka-topic", ‘kafka_topic“); config.putString("metadata.broker.list", “localhost:9092”); config.putString("request.required.acks", "1"); 30 CONFIGURATION IS A JSON OBJECT: Berlin | 2014 | zanox | JUG BB
  • 31. METRICS OF VERT.X PROJECT ● On 4 Cores virtual machine we had the following results: ● ~28 K requests per second without Kafka, with lookup from Redis ● ~18 K requests per second with Kafka and lookup from Redis 31Berlin | 2014 | zanox | JUG BB
  • 32. 32Berlin | 2014 | zanox | JUG BB