SlideShare a Scribd company logo
1 of 228
Download to read offline
@BastianHofmann
Running Microservices
Successfully
Bastian Hofmann
Microservices
Monolith
http://blog.philipphauer.de/microservices-nutshell-pros-cons/
Monolith Microservices
" Microservices are great for
turning method calls in to
distributed computing
problems
https://twitter.com/tenderlove/status/1027591532847816704
Challenges
Performance
Latency
Operational overhead
Monitoring
Learning Curves
Code Reuse
Maintenance
Benefits
Enforces stricter separation of
concerns
Diverse technology stacks
Independent scaling
Independent development
Independent deployments
There are good reasons to split off
functionality into independent
services
How to run Microservices without
shooting yourself in the foot
Let's talk about
• Deploying
• Running
• Configuring
• Discovering
• Monitoring
• Scaling
A lot of this is also useful for
monoliths
https://www.flickr.com/photos/npobre/2601582256/
Let's define our requirements
Deployment
How to get the services on our
servers?
Diverse technology stacks
The same approach for every service
Fast deployments
Automation
One Click Deployment
Fast rollbacks
Availability
Zero Downtime Deployments
Running the service
How do I stop and start a service and
ensure it keeps running?
Diverse technology stacks
Diverse system dependencies
The same approach for every service
Configuration Management
How do I synchronize configuration
over services?
Config file on disk
[	
		"db_user":	"user",	
		"db_pw":	"pw",	
		"serviceA":	"serviceA.local:8018"	
]
Duplication
Inconsistencies
Security
Cycling of credentials
Service Discovery
How does one service know where
another service is?
Load balancing?
Service/Server down?
Health checks
Monitoring
How do I know how my application is
behaving?
Distributed Systems
We want to measure
Latency
Availability
Throughput
We want all logs aggregated and
searchable
Scaling
How can I cope with growing traffic?
Reacting to changes in traffic?
You have to take care about a lot of
things when doing Microservices!
There are tools that can help us with
this
Container orchestration platform
Deploy, run and scale your services
in isolated containers
Very Powerful
Large community
Lot’s of large company backers
Compared to other cloud
technoligies
No vendor lock in
Runs on
AWS
Azure
Google Cloud Platform
Bare metal
Your laptop
SysEleven
Learning curve
Why containers?
Services run in isolation
Everything needed to run a service in
one image
Decouple
Ops and Dev
Make things …
Easier to deploy
Easier to upgrade system
dependencies
Easier to scale
Easier to develop
Leaner than
Virtual Machines
FROM	php:7.2-apache	
WORKDIR	/var/www/html	
RUN	apt-get	update	-y	&&		
		apt-get	install	-y	--no-install-recommends	curl		
		rm	-rf	/var/lib/apt/lists/*	
ENV	TMP_DIR	/tmp	
COPY	.	/var/www/html/	
EXPOSE	80	
ENTRYPOINT	[“apache2”,	“-DFOREGROUND”]
docker	build	-t	symfony-demo:2.0.0	.
docker	run	-p	8080:80	symfony-demo:2.0.0
Kubernetes helps you running
containers
Let’s define some core Kubernetes
concepts
Kubernetes Cluster
• A physical server
• Containers get distributed
automatically
Node
• A docker image built from
a Dockerfile that contains
everything a service needs
to run
Image
• A container runs a docker
image.
• Only 1 process can run
inside of a container
Container
• A group of 1 or more
containers
• Same port space
• Ports are not accessible
from outside of the pod
Pod
• Defines and manages how
many instances of a pod
should run
Replica Set
• Manages updates and
rollbacks of replica sets
Deployment
• Makes a port of a pod
accessible to other pods
Service
• Makes a service
accessible to the outside
of Kubernetes
Ingress
• Configuration that can be
mounted inside of a
container
ConfigMap
• Volumes can be mounted
into a container to access
a ConfigMap, Secret or a
folder on the host
Volumes
Example
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
PHP Application POD
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
PHP Application POD
ReplicaSet: 2 instances
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
PHP Application POD
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
ReplicaSet: 2 instances
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
CONFIG
WEB :80
PHP Application POD PHP Application POD
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
ReplicaSet: 2 instances
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
CONFIG
WEB :80
https://php-app.k8s.foo.com:443/
PHP Application POD PHP Application POD
Let’s deploy the symfony demo app
https://github.com/symfony/demo
First we need a Kubernetes cluster
kubectl
$	kubectl	get	pods
NAME																																													READY					
STATUS				RESTARTS			AGE	
kubernetes-dashboard-5b5bf59977-t9xb9												1/1							
Running			2										9d	
nginx-ingress-controller-5549f5597c-97kcw								0/1							
Running			2										9d	
nginx-ingress-default-backend-564d9d9477-tmnnr			1/1							
Running			4										9d	
mysql-556c9b5bcb-5jdrt																											1/1							
Running			1										8d	
symfony-demo-5b75f5fc6-c7wr9																					1/1							
Running			0										8d	
symfony-demo-5b75f5fc6-jg8n4																					1/1							
Running			23									8d
Demo
Creating a Docker image
PHP
Copy our code
Build the project
Composer install
yarn install
yarn run build
Building the image
docker	build	-t	symfony-demo:2.0.0	.
Now we have to tell Kubernetes
what to do with the image
Resources are defined in YAML or
JSON
Deployment
kind:	Deployment	
apiVersion:	extensions/v1beta1	
metadata:	
		name:	symfony-demo	
spec:	
	template:	
				metadata:	
							labels:	
										app:	symfony-demo	
				spec:	
						containers:	
								-	name:	symfony-demo	
										image:	symfony-demo:1.0.0	
									ports:
containers:	
								-	name:	symfony-demo	
										image:	symfony-demo:1.0.0	
									ports:	
												-	containerPort:	80	
										livenessProbe:	
												httpGet:	
														path:	/	
														port:	80	
												timeoutSeconds:	1	
												initialDelaySeconds:	10	
										readinessProbe:	
												httpGet:	
														path:	/
Many more options configurable
Many more options
• Setting environment variables
• Mounting volumes
• Requesting resources
• Defining upgrade strategies
• Defining command
• Configure networking
• Configure the scheduler
• Listen on lifecycle events
• Configure system capabilities for the container
• …
Service
kind:	Service	
apiVersion:	v1	
metadata:	
		name:	symfony-demo	
spec:	
		ports:	
		-	
				name:	http	
				port:	80	
				targetPort:	80	
				protocol:	TCP	
		selector:	
				app:	symfony-demo
Ingress
kind:	Ingress	
apiVersion:	extensions/v1beta1	
metadata:	
		name:	symfony-demo	
spec:	
		rules:	
		-	host:	symfony-demo.local.k8s	
				http:	
						paths:	
						-	path:	/	
								backend:	
										serviceName:	symfony-demo	
										servicePort:	80
Creating everything
kubectl	apply	-f	deployment/webapp.yaml
Rolling Deployments
kind:	Deployment	
apiVersion:	extensions/v1beta1	
metadata:	
		name:	symfony-demo	
spec:	
	template:	
				spec:	
						containers:	
								-	name:	symfony-demo	
										image:	symfony-demo:1.1.0	
									ports:	
												-	containerPort:	80
kubectl	apply	-f	deployment/webapp.yaml
Rollback
$	kubectl	rollout	undo	deployments	symfony-deom	--to-
revision=1
Configuration
Should not be included in the docker
image
ConfigMap
Key/Value Store
kind:	ConfigMap	
apiVersion:	v1	
metadata:	
		name:	special-config	
data:	
		special-key:	value	
		bool-value:	true
Can be accessed in a pod through
environment variables
spec:	
		containers:	
				-	name:	test-container	
						image:	k8s.gcr.io/busybox	
						command:	[	"/bin/sh",	"-c",	"env"	]	
						env:	
		-	name:	SPECIAL_KEY	
				valueFrom:	
						configMapKeyRef:	
								name:	special-config	
								key:	special-key
spec:	
		containers:	
				-	name:	test-container	
						image:	k8s.gcr.io/busybox	
						command:	[	"/bin/sh",	"-c",	"env"	]	
						envFrom:	
						-	configMapRef:	
										name:	special-config
Can be accessed through volumes
spec:	
		containers:	
				-	name:	test-container	
						image:	k8s.gcr.io/busybox	
						command:	[	"/bin/sh",	"-c",	"ls	/etc/config/"	]	
						volumeMounts:	
						-	name:	config-volume	
								mountPath:	/etc/config	
		volumes:	
				-	name:	config-volume	
						configMap:	
								name:	special-config
Service Discovery
Within a pod
Shared port namespace
Separate file systems
Separate process spaces
Network wise everything behaves
like localhost
Between pods
You have to expose ports with
services
kind:	Service	
apiVersion:	v1	
metadata:	
		name:	symfony-demo	
spec:	
		ports:	
		-	
				name:	http	
				port:	80	
				targetPort:	80	
				protocol:	TCP	
		selector:	
				app:	symfony-demo
Every service has a virtual IP address
$	kubectl	get	service	symfony-demo	
NAME											TYPE								CLUSTER-IP				PORT(S)			AGE	
symfony-demo			ClusterIP			10.106.119.24	80/TCP				6d
Discoverable in other containers by
Environment Variables
SYMFONY_DEMO_SERVICE_HOST=10.106.119.24	
SYMFONY_DEMO_SERVICE_PORT=80
DNS
$	nslookup	symfony-demo	
Server:				10.0.0.10	
Address	1:	10.0.0.10	
Name:						symfony-demo	
Address	1:	10.106.119.24
$	curl	http://symfony-demo
Service Mesh
Istio
https://istio.io/
LinkerD
https://linkerd.io/
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
PHP Application POD
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
PHP Application POD
NodeJS ISTIO
NodeJS Service POD
NodeJS ISTIO
NodeJS Service POD
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
PHP Application POD
NodeJS ISTIO
NodeJS Service POD
NodeJS ISTIO
NodeJS Service POD
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
PHP Application POD
NodeJS ISTIO
NodeJS Service POD
NodeJS ISTIO
NodeJS Service POD
PHP-FPM
NGINX
ISTIO
STATSD
MEM

CACHED
MONGO

ROUTER
PHP Application POD
NodeJS ISTIO
NodeJS Service POD
NodeJS ISTIO
NodeJS Service POD
Benefits
Advanced routing
Prefer service in current namespace,
fall back to default namespace
A/B Testing
https://medium.com/vamp-io/a-b-testing-on-kubernetes-with-istio-0-8-6323efa2b4e2
Canary deployments
https://istio.io/blog/2017/0.1-canary/
Circuit Breakers
https://istio.io/docs/tasks/traffic-management/circuit-breaking/
Security
https://istio.io/blog/2017/0.1-auth/
Advanced monitoring
Profiling
Monitoring
Metrics-Server
Takes metrics from Kubernetes and
stores them in a monitoring solution
e.g. Prometheus
Combine with metrics of other
components
Service Mesh
Your services
Grafana for displaying the data
Logging
kubectl logs
$	kubectl	logs	symfony-demo-5b75f5fc6-c7wr9
One interface
Easy to pipe into central log
management system
Scaling
Manual Scaling
kubectl	scale	--replicas=3	deployment/my-app
AutoScaling
https://kubernetes.io/docs/user-guide/
horizontal-pod-autoscaling/
Summary
Powerful
Helpful
Together with the whole Eco-System
And Docker
Kubernetes helps you to run
microservices successfully
By standardizing Deployment,
Scaling, Configuration, Monitoring,
Service Discovery, Health Checks, ...
http://speakerdeck.com/
u/bastianhofmann
Vielen Dank für Ihre Aufmerksamkeit!

More Related Content

What's hot

Building Resilient Applications with Cloudflare DNS
Building Resilient Applications with Cloudflare DNSBuilding Resilient Applications with Cloudflare DNS
Building Resilient Applications with Cloudflare DNSDevOps.com
 
OpenShift Origin Internals
OpenShift Origin Internals OpenShift Origin Internals
OpenShift Origin Internals OpenShift Origin
 
Load Balancing Applications on Kubernetes with NGINX
Load Balancing Applications on Kubernetes with NGINXLoad Balancing Applications on Kubernetes with NGINX
Load Balancing Applications on Kubernetes with NGINXAine Long
 
Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep DiveDocker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep DiveKen Thompson
 
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.jsIñaki Baz Castillo
 
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.jsvoip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.jsIñaki Baz Castillo
 

What's hot (12)

KVM_security
KVM_securityKVM_security
KVM_security
 
Why do I need Kubernetes?
Why do I need Kubernetes?Why do I need Kubernetes?
Why do I need Kubernetes?
 
Building Resilient Applications with Cloudflare DNS
Building Resilient Applications with Cloudflare DNSBuilding Resilient Applications with Cloudflare DNS
Building Resilient Applications with Cloudflare DNS
 
Orchestrating Linux Containers
Orchestrating Linux ContainersOrchestrating Linux Containers
Orchestrating Linux Containers
 
OpenShift Origin Internals
OpenShift Origin Internals OpenShift Origin Internals
OpenShift Origin Internals
 
Janus & docker: friends or foe
Janus & docker: friends or foe Janus & docker: friends or foe
Janus & docker: friends or foe
 
Load Balancing Applications on Kubernetes with NGINX
Load Balancing Applications on Kubernetes with NGINXLoad Balancing Applications on Kubernetes with NGINX
Load Balancing Applications on Kubernetes with NGINX
 
Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep DiveDocker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
 
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js
 
Building Python Development Station
Building Python Development StationBuilding Python Development Station
Building Python Development Station
 
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.jsvoip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
 
oVirt – open your virtual datacenter
oVirt – open your virtual datacenteroVirt – open your virtual datacenter
oVirt – open your virtual datacenter
 

Similar to Running microservices successfully | Bastian Hofmann | CODEiD

Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Cisco DevNet
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsFederico Michele Facca
 
Breaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersBreaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersAmazon Web Services
 
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...Lucas Jellema
 
Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...Black Duck by Synopsys
 
Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...Tim Mackey
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Ahmed Misbah
 
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...Lucas Jellema
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceEvan McGee
 
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...Jitendra Bafna
 
Distributed crypto-currency trading with Apache Pulsar
Distributed crypto-currency trading with Apache PulsarDistributed crypto-currency trading with Apache Pulsar
Distributed crypto-currency trading with Apache PulsarData Con LA
 
Distributed Crypto-Currency Trading with Apache Pulsar
Distributed Crypto-Currency Trading with Apache PulsarDistributed Crypto-Currency Trading with Apache Pulsar
Distributed Crypto-Currency Trading with Apache PulsarStreamlio
 
MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference ArchitectureMRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference ArchitectureNGINX, Inc.
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los AngelesVMware Tanzu
 
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Lucas Jellema
 
PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux Neotys
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10MagaliDavidCruz
 

Similar to Running microservices successfully | Bastian Hofmann | CODEiD (20)

Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platforms
 
Breaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersBreaking the Monolith Road to Containers
Breaking the Monolith Road to Containers
 
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
 
Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...
 
Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)
 
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
 
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
 
Distributed crypto-currency trading with Apache Pulsar
Distributed crypto-currency trading with Apache PulsarDistributed crypto-currency trading with Apache Pulsar
Distributed crypto-currency trading with Apache Pulsar
 
Distributed Crypto-Currency Trading with Apache Pulsar
Distributed Crypto-Currency Trading with Apache PulsarDistributed Crypto-Currency Trading with Apache Pulsar
Distributed Crypto-Currency Trading with Apache Pulsar
 
Un-clouding the cloud
Un-clouding the cloudUn-clouding the cloud
Un-clouding the cloud
 
MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference ArchitectureMRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
 
PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 

More from CODEiD PHP Community

GRASP - General Responsibility Assignment Software Principles
GRASP -  General Responsibility Assignment Software PrinciplesGRASP -  General Responsibility Assignment Software Principles
GRASP - General Responsibility Assignment Software PrinciplesCODEiD PHP Community
 
The PHP developer stack for building chatbots | Christoph Rumpel | CODEiD
The PHP developer stack for building chatbots | Christoph Rumpel | CODEiDThe PHP developer stack for building chatbots | Christoph Rumpel | CODEiD
The PHP developer stack for building chatbots | Christoph Rumpel | CODEiDCODEiD PHP Community
 
Ioc container | Hannes Van De Vreken | CODEiD
Ioc container | Hannes Van De Vreken | CODEiDIoc container | Hannes Van De Vreken | CODEiD
Ioc container | Hannes Van De Vreken | CODEiDCODEiD PHP Community
 
Effective codereview | Dave Liddament | CODEiD
Effective codereview | Dave Liddament | CODEiDEffective codereview | Dave Liddament | CODEiD
Effective codereview | Dave Liddament | CODEiDCODEiD PHP Community
 
Contract testing | Евгений Кузьмин | CODEiD
Contract testing | Евгений Кузьмин | CODEiDContract testing | Евгений Кузьмин | CODEiD
Contract testing | Евгений Кузьмин | CODEiDCODEiD PHP Community
 
Graphql + Symfony | Александр Демченко | CODEiD
Graphql + Symfony | Александр Демченко | CODEiDGraphql + Symfony | Александр Демченко | CODEiD
Graphql + Symfony | Александр Демченко | CODEiDCODEiD PHP Community
 
Mastering message queues | Tobias Nyholm | CODEiD
Mastering message queues | Tobias Nyholm | CODEiDMastering message queues | Tobias Nyholm | CODEiD
Mastering message queues | Tobias Nyholm | CODEiDCODEiD PHP Community
 
Symfony4: A new way to develop applications | Antonio Peric | CODEiD
Symfony4: A new way to develop applications | Antonio Peric | CODEiDSymfony4: A new way to develop applications | Antonio Peric | CODEiD
Symfony4: A new way to develop applications | Antonio Peric | CODEiDCODEiD PHP Community
 
Domain Driven Design | Артём Антоненко | CODEID |
Domain Driven Design | Артём Антоненко | CODEID |Domain Driven Design | Артём Антоненко | CODEID |
Domain Driven Design | Артём Антоненко | CODEID |CODEiD PHP Community
 
CodeID - PHP Odessa Conf: Сергей Тимошевский "Все пути ведут к микросервисам"
CodeID - PHP Odessa Conf: Сергей Тимошевский "Все пути ведут к микросервисам"CodeID - PHP Odessa Conf: Сергей Тимошевский "Все пути ведут к микросервисам"
CodeID - PHP Odessa Conf: Сергей Тимошевский "Все пути ведут к микросервисам"CODEiD PHP Community
 
CodeID - PHP Odessa Conf: Вячеслав Мозговой "Как сделать сайт быстрым и люб...
CodeID - PHP Odessa Conf: Вячеслав Мозговой "Как сделать сайт быстрым и люб...CodeID - PHP Odessa Conf: Вячеслав Мозговой "Как сделать сайт быстрым и люб...
CodeID - PHP Odessa Conf: Вячеслав Мозговой "Как сделать сайт быстрым и люб...CODEiD PHP Community
 

More from CODEiD PHP Community (11)

GRASP - General Responsibility Assignment Software Principles
GRASP -  General Responsibility Assignment Software PrinciplesGRASP -  General Responsibility Assignment Software Principles
GRASP - General Responsibility Assignment Software Principles
 
The PHP developer stack for building chatbots | Christoph Rumpel | CODEiD
The PHP developer stack for building chatbots | Christoph Rumpel | CODEiDThe PHP developer stack for building chatbots | Christoph Rumpel | CODEiD
The PHP developer stack for building chatbots | Christoph Rumpel | CODEiD
 
Ioc container | Hannes Van De Vreken | CODEiD
Ioc container | Hannes Van De Vreken | CODEiDIoc container | Hannes Van De Vreken | CODEiD
Ioc container | Hannes Van De Vreken | CODEiD
 
Effective codereview | Dave Liddament | CODEiD
Effective codereview | Dave Liddament | CODEiDEffective codereview | Dave Liddament | CODEiD
Effective codereview | Dave Liddament | CODEiD
 
Contract testing | Евгений Кузьмин | CODEiD
Contract testing | Евгений Кузьмин | CODEiDContract testing | Евгений Кузьмин | CODEiD
Contract testing | Евгений Кузьмин | CODEiD
 
Graphql + Symfony | Александр Демченко | CODEiD
Graphql + Symfony | Александр Демченко | CODEiDGraphql + Symfony | Александр Демченко | CODEiD
Graphql + Symfony | Александр Демченко | CODEiD
 
Mastering message queues | Tobias Nyholm | CODEiD
Mastering message queues | Tobias Nyholm | CODEiDMastering message queues | Tobias Nyholm | CODEiD
Mastering message queues | Tobias Nyholm | CODEiD
 
Symfony4: A new way to develop applications | Antonio Peric | CODEiD
Symfony4: A new way to develop applications | Antonio Peric | CODEiDSymfony4: A new way to develop applications | Antonio Peric | CODEiD
Symfony4: A new way to develop applications | Antonio Peric | CODEiD
 
Domain Driven Design | Артём Антоненко | CODEID |
Domain Driven Design | Артём Антоненко | CODEID |Domain Driven Design | Артём Антоненко | CODEID |
Domain Driven Design | Артём Антоненко | CODEID |
 
CodeID - PHP Odessa Conf: Сергей Тимошевский "Все пути ведут к микросервисам"
CodeID - PHP Odessa Conf: Сергей Тимошевский "Все пути ведут к микросервисам"CodeID - PHP Odessa Conf: Сергей Тимошевский "Все пути ведут к микросервисам"
CodeID - PHP Odessa Conf: Сергей Тимошевский "Все пути ведут к микросервисам"
 
CodeID - PHP Odessa Conf: Вячеслав Мозговой "Как сделать сайт быстрым и люб...
CodeID - PHP Odessa Conf: Вячеслав Мозговой "Как сделать сайт быстрым и люб...CodeID - PHP Odessa Conf: Вячеслав Мозговой "Как сделать сайт быстрым и люб...
CodeID - PHP Odessa Conf: Вячеслав Мозговой "Как сделать сайт быстрым и люб...
 

Recently uploaded

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...MyIntelliSource, Inc.
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
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
 
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
 
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
 
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
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
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 ...MyIntelliSource, Inc.
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
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 ...harshavardhanraghave
 
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.docxComplianceQuest1
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
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
 
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
 
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.
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
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 Modelsaagamshah0812
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 

Recently uploaded (20)

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...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
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
 
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...
 
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
 
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
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
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 ...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
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 ...
 
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
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
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...
 
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
 
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
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
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
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 

Running microservices successfully | Bastian Hofmann | CODEiD