SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
VERT.X
M I C R O S E R V I C E S 	 W E R E 	 N E V E R 	 S O
E A S Y
	
CLEMENT	ESCOFFIER
Vert.x	Core	Developer,	Red	Hat
VERT.X
I N 	 1 0 	 S L I D E S . . .
V E R T. X 	I S 	 A 	 TO O L K I T 	T O 	 B U I L D
D I S T R I B U T E D 	 A N D 	 R E AC T I V E
A P P L I C A T I O N S 	 O N 	 T O P 	 O F 	 T H E 	 J V M
U S I N G 	 A N 	 A S Y N C H R O N O U S 	 N O N -
B L O C K I N G 	D E V E L O P M E N T 	 M O D E L .
TOOLKIT
Vert.x	is	a	plain	boring	jar
Vert.x	components	are	plain	boring	jars
Your	application	depends	on	this	set	of	jars	(classpath,	fat-
jar,	...)
TOOLKIT
These	slides	are	served	by	a	vert.x	application:
executed	on	Openshift
packaged	as	a	fat	jar
vertx-core:	the	main	vert.x	component
vertx-web:	a	component	to	build	modern	web	applications
vertx-hazelcast:	an	implementation	of	the	vert.x	cluster
manager
vertx-service-discovery-bridge-kubernetes:	an
extension	to	interact	with	Kubernetes
DISTRIBUTED
DISTRIBUTED
“ 	You	know	you	have	a	distributed	system	when	the	crash
of	a	computer	you've	never	heards	of	stops	you	from	getting
any	work	done.	(Leslie	Lamport)
REACTIVE
Reactive	systems	are
Responsive	-	they	respond	in	an	acceptable	time
Elastic	-	they	scale	up	and	down
Resilient	-	they	are	designed	to	handle	failures	gracefully
Asynchronous	-	they	interact	using	async	messages 	
http://www.reactivemanifesto.org/
REACTIVE
“ 	"Moore's	law"	is	the	observation	that,	over	the	history	of
computing	hardware,	the	number	of	transistors	in	a	dense
integrated	circuit	has	doubled	approximately	every	2	years.
Unfortunately,	no	free	lunch	anymore...
REACTIVE
CPU	manufacturers	cannot	get	a	single-core	CPU	to	go	any
faster
Multi-core	Processors
Require	parallel	execution
Require	a	different	way	to	design,	develop	and	execute
software
Reactive	systems	is	one	solution	to	this	issue
POLYGLOT
Vert.x	applications	can	be	developed	using
Java
Groovy
Ruby	(JRuby)
JavaScript	(Nashorn)
Ceylon
MICROSERVICES
R E B R A N D I N G
D I S T R I B U T E D
A P P L I C A T I O N S
MICROSERVICES
“ 	The	microservice	architectural	style	is	an	approach	to
developing	a	single	application	as	a	suite	of	small	services,
each	running	in	its	own	process	and	communicating	with
lightweight	mechanisms,	often	an	HTTP	resource	API.
These	services	are	built	around	business	capabilities	and
independently	deployable	by	fully	automated	deployment
machinery.	There	is	a	bare	minimum	of	centralized
management	of	these	services,	which	may	be	written	in
different	programming	languages	and	use	different	data
storage	technologies.	(Martin	Fowler)
A	SUITE	OF	INDEPENDENT
SERVICES:
Each	service	runs	in	its	own	process
So	they	are	distributed	applications 	
Lightweight	interactions	-	Loose-coupling
Not	only	HTTP
Messaging
Streams
(async)	RPC
A	SUITE	OF	INDEPENDENT
SERVICES:
Independently	developed,	tested	and	deployed
Automated	process
(Liskov)	substitutability 	
It's	all	about	agility
Agility	of	the	composition
You	can	replace	any	microservice
You	can	decide	who	uses	who
SORRY...	NO	FREE	LUNCH
Distributed	applications	are	hard
fail	(fail-stop,	byzantine	fault)
Discoverability	issue
Reliability	issue
Availability	issue 	
How	to	keep	things	on	track
Monitoring
Health
Tracing
...
COMPLEXITY	GROWTH
VERT.X	&	MICROSERVICES
We	wont'	build	regular	microservices,	but	reactive
microservices
Responsive	-	fast,	is	able	to	handle	a	large	number	of
events	/	connections
Elastic	-	scale	up	and	down	by	just	starting	and	stopping
nodes,	round-robin
Resilient	-	failure	as	first-class	citizen,	fail-over
Asynchronous	message-passing	-	asynchronous	and	non-
blocking	development	model
ASYNCHRONOUS	&	NON-
BLOCKING
WHAT	DOES	VERT.X
PROVIDE	TO	BUILD
MICROSERVICES?
TCP,	UDP,	HTTP	1	&	2	servers	and	clients
(non-blocking)	DNS	client
Event	bus	(messaging)
Distributed	data	structures
Load-balancing
Fail-over
Service	discovery
Failure	management,	Circuit-breaker
Shell,	Metrics,	Deployment	support
HTTP	&	REST
B E C A U S E 	 I T 	 A L W A Y S
B E G I N 	 W I T H 	 A 	 R E S T
VERT.X	HELLO	WORLD
vertx.createHttpServer()
.requestHandler(request -> {
// Handler receiving requests
request.response().end("World !");
})
.listen(8080, ar -> {
// Handler receiving start sequence completion (AsyncResult)
if (ar.succeeded()) {
System.out.println("Server started on port "
+ ar.result().actualPort());
} else {
ar.cause().printStackTrace();
}
});
VERT.X	HELLO	WORLD
Invoke
E V E N T 	 L O O PS
VERT.X	ASYNC	HTTP	CLIENT
HttpClient client = vertx.createHttpClient(
new HttpClientOptions()
.setDefaultHost(host)
.setDefaultPort(port));
client.getNow("/", response -> {
// Handler receiving the response
// Get the content
response.bodyHandler(buffer -> {
// Handler to read the content
});
});
SERVICE	DISCOVERY
Locate	the	services,	environment-agnostic
SERVICE	DISCOVERY	-
KUBERNETES
No	need	for	publication	-	Import	Kubernetes	services
HttpEndpoint.getClient(discovery,
new JsonObject().put("name", "vertx-http-server"),
result -> {
if (result.failed()) {
rc.response().end("D'oh no matching service");
return;
}
HttpClient client = result.result();
client.getNow("/", response -> {
response.bodyHandler(buffer -> {
rc.response().end("Hello " + buffer.toString());
});
});
});
CHAINED	HTTP	REQUESTS
Invoke
INTERACTING	WITH
BLOCKING	SYSTEMS
MESSAGING	WITH
THE	EVENT	BUS
T H E 	 S P I N E 	 O F 	 V E R T . X
A P P L I C A T I O N S
THE	EVENT	BUS
The	event	bus	is	the	nervous	system	of	vert.x:
Allows	different	components	to	communicate	regardless
the	implementation	language	and	their	location
whether	they	run	on	vert.x	or	not	(using	bridges)
Address:	Messages	are	sent	to	an	address
Handler:	Messages	are	received	in	handlers.
POINT	TO	POINT
PUBLISH	/	SUBSCRIBE
REQUEST	/	RESPONSE
DISTRIBUTED	EVENT	BUS
Almost	anything	can	send	and	receive	messages
DISTRIBUTED	EVENT	BUS
Let's	have	a	java	(Vert.x)	app,	and	a	node	app	sending	data
just	here:
hello	from	java	(8321)
hello	from	java	(8320)
hello	from	java	(8319)
hello	from	java	(8318)
hello	from	java	(8317)
hello	from	java	(8316)
hello	from	java	(8315)
hello	from	java	(8314)
hello	from	java	(8313)
DISTRIBUTED	EVENT	BUS
EVENTBUS	CLIENTS	AND
BRIDGES
Clients:
SockJS:	browser,	node.js
TCP:	every	system	able	to	open	a	TCP	socket
Go:	for	system	develop	in	Go 	
Bridges:
Stomp
AMQP
Camel
RELIABILITY
PATTERNS
D O N ' T 	 B E 	 F O O L , 	 B E
P R E P A R E D 	 T O 	 FA I L
RELIABILITY
It's	not	about	being	bug-free	or	bullet	proof,
it's	impossible.
It's	about	being	prepared	to	fail,
and	handling	these	failures.
MANAGING	FAILURES
Distributed	communication	may	fail
vertx.eventbus().send(..., ...,
new DeliveryOptions().setSendTimeout(1000),
reply -> {
if (reply.failed()) {
System.out.println("D'oh, he did not reply to me !");
} else {
System.out.println("Got a mail " + reply.result().body());
}
});
MANAGING	FAILURES
	
Invoke
MANAGING	FAILURE
client.get("/", response -> {
response
.exceptionHandler(t -> {
// If the content cannot be read
rc.response().end("Sorry... " + t.getMessage());
})
.bodyHandler(buffer -> {
rc.response().end("Ola " + buffer.toString());
});
})
.setTimeout(3000)
.exceptionHandler(t -> {
// If the connection cannot be established
rc.response().end("Sorry... " + t.getMessage());
})
.end();
MANAGING	FAILURE
	 Invoke
CIRCUIT	BREAKER
CIRCUIT	BREAKER
cb.executeWithFallback(future -> {
// Async operation
client.get("/", response -> {
response.bodyHandler(buffer -> {
future.complete("Ola " + buffer.toString());
});
})
.exceptionHandler(future::fail)
.end();
},
// Fallback
t -> "Sorry... " + t.getMessage() + " (" + cb.state() + ")"
)
// Handler called when the operation has completed
.setHandler(content -> /* ... */);
CIRCUIT	BREAKER
	 Invoke
SCALABILITY
PATTERNS
B E 	 P R E P A R E D 	 T O 	 B E
F A M O U S
BALANCING	THE	LOAD
When	several	consumers	listen	to	the	same	address,	Vert.x
dispatches	the	sent	messages	using	a	round	robin.
So,	to	improve	the	scalability,	just	spawn	a	new	node!
BALANCING	THE	LOAD
BALANCING	THE	LOAD
Invoke
SCALING	HTTP
THIS	IS	NOT	THE
END()
BUT	THE	FIRST	STEP	ON	THE	REACTIVE
MICROSERVICE	ROAD
HOW	TO	START	?
http://vertx.io
http://vertx.io/blog/posts/introduction-to-vertx.html
http://vertx-lab.dynamis-technologies.com
https://github.com/vert-x3/vertx-examples
Red	HatNews
youtube.com/Red	Hat
facebook.com/redhatinc
THANK	YOU!
linkedin.com/company/red-hat

Mais conteúdo relacionado

Mais procurados

HOW AND WHY GRAALVM IS QUICKLY BECOMING RELEVANT FOR YOU
HOW AND WHY GRAALVM IS QUICKLY BECOMING RELEVANT FOR YOUHOW AND WHY GRAALVM IS QUICKLY BECOMING RELEVANT FOR YOU
HOW AND WHY GRAALVM IS QUICKLY BECOMING RELEVANT FOR YOU
Lucas Jellema
 

Mais procurados (20)

A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech TalkA Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
 
Ansible
AnsibleAnsible
Ansible
 
React vs Angular
React vs Angular React vs Angular
React vs Angular
 
SpringOne Tour: Spring Boot 3 and Beyond
SpringOne Tour: Spring Boot 3 and BeyondSpringOne Tour: Spring Boot 3 and Beyond
SpringOne Tour: Spring Boot 3 and Beyond
 
Mutiny + quarkus
Mutiny + quarkusMutiny + quarkus
Mutiny + quarkus
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes
 
GraalVm and Quarkus
GraalVm and QuarkusGraalVm and Quarkus
GraalVm and Quarkus
 
Ansible
AnsibleAnsible
Ansible
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
 
Express js
Express jsExpress js
Express js
 
Oracle Enterprise Manager
Oracle Enterprise ManagerOracle Enterprise Manager
Oracle Enterprise Manager
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Spring Boot+Kafka: the New Enterprise Platform
Spring Boot+Kafka: the New Enterprise PlatformSpring Boot+Kafka: the New Enterprise Platform
Spring Boot+Kafka: the New Enterprise Platform
 
HOW AND WHY GRAALVM IS QUICKLY BECOMING RELEVANT FOR YOU
HOW AND WHY GRAALVM IS QUICKLY BECOMING RELEVANT FOR YOUHOW AND WHY GRAALVM IS QUICKLY BECOMING RELEVANT FOR YOU
HOW AND WHY GRAALVM IS QUICKLY BECOMING RELEVANT FOR YOU
 
Reactive programming intro
Reactive programming introReactive programming intro
Reactive programming intro
 

Destaque

An Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVMAn Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVM
Steve Pember
 
DDD-Enabling Architectures with EventStore
DDD-Enabling Architectures with EventStoreDDD-Enabling Architectures with EventStore
DDD-Enabling Architectures with EventStore
SzymonPobiega
 
Vert.x introduction
Vert.x introductionVert.x introduction
Vert.x introduction
GR8Conf
 

Destaque (20)

Building microservices with vert.x 3.0
Building microservices with vert.x 3.0Building microservices with vert.x 3.0
Building microservices with vert.x 3.0
 
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
 
Vert.x clustering on Docker, CoreOS and ETCD
Vert.x clustering on Docker, CoreOS and ETCDVert.x clustering on Docker, CoreOS and ETCD
Vert.x clustering on Docker, CoreOS and ETCD
 
Modern app programming with RxJava and Eclipse Vert.x
Modern app programming with RxJava and Eclipse Vert.xModern app programming with RxJava and Eclipse Vert.x
Modern app programming with RxJava and Eclipse Vert.x
 
Vert.x for Microservices Architecture
Vert.x for Microservices ArchitectureVert.x for Microservices Architecture
Vert.x for Microservices Architecture
 
Vert.x
Vert.xVert.x
Vert.x
 
Reactive Distributed Applications with Vert.x
Reactive Distributed Applications with Vert.xReactive Distributed Applications with Vert.x
Reactive Distributed Applications with Vert.x
 
Edge Following Algorithm Chiara Galdi
Edge Following Algorithm Chiara GaldiEdge Following Algorithm Chiara Galdi
Edge Following Algorithm Chiara Galdi
 
autodiscoverable microservices with vertx3
autodiscoverable microservices with vertx3autodiscoverable microservices with vertx3
autodiscoverable microservices with vertx3
 
An Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVMAn Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVM
 
E marketing 2014-2015
E marketing 2014-2015E marketing 2014-2015
E marketing 2014-2015
 
Vertx in production
Vertx in productionVertx in production
Vertx in production
 
DDD-Enabling Architectures with EventStore
DDD-Enabling Architectures with EventStoreDDD-Enabling Architectures with EventStore
DDD-Enabling Architectures with EventStore
 
Vert.x introduction
Vert.x introductionVert.x introduction
Vert.x introduction
 
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
 
Professor J.F. Etter - E-Cigarette Summit 2014
Professor J.F. Etter - E-Cigarette Summit 2014Professor J.F. Etter - E-Cigarette Summit 2014
Professor J.F. Etter - E-Cigarette Summit 2014
 
It's not tools, Stupid
It's not tools, StupidIt's not tools, Stupid
It's not tools, Stupid
 
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...
 
Agile Is A Four-Letter Word (Jen Krieger)
Agile Is A Four-Letter Word (Jen Krieger)Agile Is A Four-Letter Word (Jen Krieger)
Agile Is A Four-Letter Word (Jen Krieger)
 
Developer Meet Designer (Andres Galante & Brian Leathem)
Developer Meet Designer (Andres Galante & Brian Leathem)Developer Meet Designer (Andres Galante & Brian Leathem)
Developer Meet Designer (Andres Galante & Brian Leathem)
 

Semelhante a Vert.X: Microservices Were Never So Easy (Clement Escoffier)

June8 presentation
June8 presentationJune8 presentation
June8 presentation
nicobn
 

Semelhante a Vert.X: Microservices Were Never So Easy (Clement Escoffier) (20)

Nancy + rest mow2012
Nancy + rest   mow2012Nancy + rest   mow2012
Nancy + rest mow2012
 
CoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love SystemdCoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love Systemd
 
Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018
 
Vert.x - Reactive & Distributed [Devoxx version]
Vert.x - Reactive & Distributed [Devoxx version]Vert.x - Reactive & Distributed [Devoxx version]
Vert.x - Reactive & Distributed [Devoxx version]
 
Meetup talk: Readying your Go Webservice
Meetup talk: Readying your Go WebserviceMeetup talk: Readying your Go Webservice
Meetup talk: Readying your Go Webservice
 
How to configure with Spring an api not based on Spring
How to configure with Spring an api not based on SpringHow to configure with Spring an api not based on Spring
How to configure with Spring an api not based on Spring
 
Lightning fast with Varnish
Lightning fast with VarnishLightning fast with Varnish
Lightning fast with Varnish
 
swift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClientswift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClient
 
Free FreeRTOS Course-Task Management
Free FreeRTOS Course-Task ManagementFree FreeRTOS Course-Task Management
Free FreeRTOS Course-Task Management
 
Netty from the trenches
Netty from the trenchesNetty from the trenches
Netty from the trenches
 
June8 presentation
June8 presentationJune8 presentation
June8 presentation
 
Remote Notifications
Remote NotificationsRemote Notifications
Remote Notifications
 
Intro to Rack
Intro to RackIntro to Rack
Intro to Rack
 
JS everywhere 2011
JS everywhere 2011JS everywhere 2011
JS everywhere 2011
 
Crushing React bugs with Jest and Enzyme
Crushing React bugs with Jest and EnzymeCrushing React bugs with Jest and Enzyme
Crushing React bugs with Jest and Enzyme
 
Go for the paranoid network programmer, 3rd edition
Go for the paranoid network programmer, 3rd editionGo for the paranoid network programmer, 3rd edition
Go for the paranoid network programmer, 3rd edition
 
Arquitecturas de microservicios - Medianet Software
Arquitecturas de microservicios   -  Medianet SoftwareArquitecturas de microservicios   -  Medianet Software
Arquitecturas de microservicios - Medianet Software
 
iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기
 
Managing State in React Apps with RxJS by James Wright at FrontCon 2019
Managing State in React Apps with RxJS by James Wright at FrontCon 2019Managing State in React Apps with RxJS by James Wright at FrontCon 2019
Managing State in React Apps with RxJS by James Wright at FrontCon 2019
 
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...
 

Mais de Red Hat Developers

Friends don't let friends do dual writes: Outbox pattern with OpenShift Strea...
Friends don't let friends do dual writes: Outbox pattern with OpenShift Strea...Friends don't let friends do dual writes: Outbox pattern with OpenShift Strea...
Friends don't let friends do dual writes: Outbox pattern with OpenShift Strea...
Red Hat Developers
 

Mais de Red Hat Developers (20)

DevNation Tech Talk: Getting GitOps
DevNation Tech Talk: Getting GitOpsDevNation Tech Talk: Getting GitOps
DevNation Tech Talk: Getting GitOps
 
Exploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on KubernetesExploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on Kubernetes
 
GitHub Makeover | DevNation Tech Talk
GitHub Makeover | DevNation Tech TalkGitHub Makeover | DevNation Tech Talk
GitHub Makeover | DevNation Tech Talk
 
Quinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
Quinoa: A modern Quarkus UI with no hassles | DevNation tech TalkQuinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
Quinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
 
Extra micrometer practices with Quarkus | DevNation Tech Talk
Extra micrometer practices with Quarkus | DevNation Tech TalkExtra micrometer practices with Quarkus | DevNation Tech Talk
Extra micrometer practices with Quarkus | DevNation Tech Talk
 
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
 
Integrating Loom in Quarkus | DevNation Tech Talk
Integrating Loom in Quarkus | DevNation Tech TalkIntegrating Loom in Quarkus | DevNation Tech Talk
Integrating Loom in Quarkus | DevNation Tech Talk
 
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech Talk
 
Distributed deployment of microservices across multiple OpenShift clusters | ...
Distributed deployment of microservices across multiple OpenShift clusters | ...Distributed deployment of microservices across multiple OpenShift clusters | ...
Distributed deployment of microservices across multiple OpenShift clusters | ...
 
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
 
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
 
11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk
 
GitHub Actions and OpenShift: ​​Supercharging your software development loops...
GitHub Actions and OpenShift: ​​Supercharging your software development loops...GitHub Actions and OpenShift: ​​Supercharging your software development loops...
GitHub Actions and OpenShift: ​​Supercharging your software development loops...
 
To the moon and beyond with Java 17 APIs! | DevNation Tech Talk
To the moon and beyond with Java 17 APIs! | DevNation Tech TalkTo the moon and beyond with Java 17 APIs! | DevNation Tech Talk
To the moon and beyond with Java 17 APIs! | DevNation Tech Talk
 
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
 
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
 
Kubernetes configuration and security policies with KubeLinter | DevNation Te...
Kubernetes configuration and security policies with KubeLinter | DevNation Te...Kubernetes configuration and security policies with KubeLinter | DevNation Te...
Kubernetes configuration and security policies with KubeLinter | DevNation Te...
 
Level-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
Level-up your gaming telemetry using Kafka Streams | DevNation Tech TalkLevel-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
Level-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
 
Friends don't let friends do dual writes: Outbox pattern with OpenShift Strea...
Friends don't let friends do dual writes: Outbox pattern with OpenShift Strea...Friends don't let friends do dual writes: Outbox pattern with OpenShift Strea...
Friends don't let friends do dual writes: Outbox pattern with OpenShift Strea...
 

Último

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Último (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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 🔝✔️✔️
 
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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
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
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
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
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
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
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
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
 
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-...
 
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...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
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
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
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
 
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
 

Vert.X: Microservices Were Never So Easy (Clement Escoffier)