SlideShare a Scribd company logo
1 of 38
Download to read offline
Copyright © PLUMgrid, Inc. 2011-2016
what, why and how?
Service Discovery and Registration in a
Microservices Architecture
Copyright © PLUMgrid, Inc. 2011-2016
About us
2
PLUMgrid
Khaliq
Fawad
@fawadkhaliq
Mesosphere
Sanchez
Fernando
@fernandosanchez
Copyright © PLUMgrid, Inc. 2011-2016
• What is Service Discovery and Registration?
• A bit of history: the world in year 2000 (load balancers, physical servers and
CCIEs)
• Evolution: Virtualization brings shuffling and unpredictability
• Today: Containers demand automation
• What are Microservices and how do they affect Service Registration / Discovery?
• Service Registration/Service Discovery Patterns and Tools
• Patterns
• Tools: ZooKeeper, etcd, Consul, Mesos-DNS, Minuteman etc.
• Scope inside OpenStack?
• The need for SR/SG in Openstack (as in any stack)
• Current picture
• Desired future state
• Q/A
Agenda
Part 1 - A bit of history
- DISCLAIMER
- Trying to provide context about the “what” and the “why”.
- Historically inaccurate
- Obviously and shamelessly biased
- A bit blurry…
- DISCLAIMER (2)
- This goes WAY BACK to provide context. I felt a bit OLD
making this presentation
- If you know what a v92 modem is, you probably will also feel
old listening to it.
A bit of history (1) : Service Registration in the early days
(Very) early days: applications living
on a single physical server
“Service Discovery”? = How do I find
my service “by name” when it really is
an IP address? Well… DNS!
1:1 relationship between the
Application and the backend
implementing it
A bit of history (2) : Service Registration in the early days
Early days: applications living on MANY physical servers
1:N relationship between Service IPs and backend Servers
Physical App Server “churn” was still “manageable”
“Service Discovery”?: DNS + Virtual IPs + Virtual Hosts
Need a Load Balancer!
“Service Registration” = When I add a new server to my service, how does it
get added to the list of available ”Service Backends”?
** Add a new backend to the Service IP/ Virtual IP in the load balancer
(“Service Access Point”)
** Many times, added manually by a guy who has a vendor certification.
** Including “healthchecks” for each backend
A bit of history (3) : Service Registration in the early days
- Advent of the 3-tier architecture (web, application, dB)
- Need load balancing in each layer so
that each can scale up/down
- With their respective healthchecks
- So each layer now has a “Service Registration
/ Service Discovery” need!
A bit of history (4) : Virtualization FTW
- Enter server virtualization: Web/App/dB Servers can be
created and destroyed in minutes.
- “Automated” Service Registration becomes an evident need
and options start to appear (we’ll discuss each in the 2nd part):
- “Sidecar process” in workloads to register into centralized “backend
database”?
- “External Orchestrator” registers backends upon creation?
- “API Gateways” with client or server-side discovery?
- Applications can scale up and down more dynamically, even
automatically depending on load
Enter Containerization!
Private Copy
Shared
App 3
Libraries
Guest
Operating
System
Infrastructure
App 1
Libs
Host Operating System
Start / stop time One minute to few seconds Milliseconds
Workload density 10 - 100x1x
App 2
Libraries
Guest
Operating
System
App 1
Libraries
Guest
Operating
System
App 2
Libs
App 3
Libs
Virtual Machines Containers
Host Operating System
Hypervisor
Infrastructure
App 4
Libs
App 5
Libs
Today: Containers and Container Orchestration
- Containers multiply the potential complexity:
can be created/destroyed in milliseconds, with
endpoints being one or more orders of
magnitude more numerous than VMs
- Impossible to have manual procedures: need
automatic discovery of backends
- All options mentioned for VMs may still be
considered, with their pros and cons:
- Sidecar, Centralized Orchestration, Client/Server
discovery…
From Containers to Microservices: What and Why?
“The Monolith” and its issues
- Traditional applications were typically developed
as a single unified codebase
- Which tends to grow along time
- Making it harder to maintain, troubleshoot, evolve
Microservices: divide and conquer!
- Divide applications into independent pieces
(typically functional areas)
- Interconnect the pieces with networking and
(REST) APIs
Microservices: Divide and Conquer
Traditional Architecture
Many functions
in a single process
Siloed
teams
RESTAPIs
Microservices Architecture
Cross-functional
teams organized
around capabilities
Scales
individually
Each element of
functionality defined as
“microservices”
Scales
monolithically
Microservices Challenge: SD/SR on steroids!
RESTAPIs
Dependencies Between Microservices Running Multiple Microservices-based Apps
SD/SR Evolution: from tiered architecture to usvcs
14
Before Micro-Services
10’s of services with well-defined endpoints
100’s of backends implementing them, with long duration
Secure Infrastructure with DMZ and Firewalling.
After Micro-Services
1000’s of services requiring new VIPs to talk to others
100000’s of backends that are created and destroyed
constantly, sometimes in milliseconds
1000’s of services requiring Auth handshakes
W W W
A AA
Copyright © PLUMgrid, Inc. 2011-2016
Service Registration/Service
Patterns and Tools
Copyright © PLUMgrid, Inc. 2011-2016
Copyright © PLUMgrid, Inc. 2011-2016
Let’s talk about some terminologies that will help us better classify the tools
● Self registration
● Third-party registration
● Client-side discovery
● Service-side discovery
Service Registration/Service Discovery Patterns
Copyright © PLUMgrid, Inc. 2011-2016
Self registration
Self Registration
Microservice
Microservice
Service
Registry
When going
up/down
When going
up/down
Copyright © PLUMgrid, Inc. 2011-2016
Third-party registration
Third Party Registration
Microservice
Microservice
Service
Registry
starts service
detects service crash
Microservice Service Manager
stop service
Copyright © PLUMgrid, Inc. 2011-2016
Client-side discovery
Client-side Discovery
Client
Service
Registry
MicroserviceAPI Gateway
1
2
3
4
Copyright © PLUMgrid, Inc. 2011-2016
Server-side discovery
Server-side Discovery
Client
Service
Registry
Microservice
API Gateway1
2
3
4
Copyright © PLUMgrid, Inc. 2011-2016
Service Discovery Tools
Copyright © PLUMgrid, Inc. 2011-2016
Key-value store based on ephemeral nodes
Consensus using ZAB
Clients handle failure or load balancing themselves
HA: Non-quorum nodes return error on read/write
Allows watch on changes
Written in Java. Provide Java and C language bindings.
Heavyweight for simple architectures
Zookeeper /A/C1
/C2
/C3
/C4
/B/C5
/C6
/C7
/C/C8
ZK
Cluster
Container Host A
config
C1 C3 R/W
C2 C4 NGINX
Container Host B
C6
C7 R/WC5
NGINX
Container Host C
R/WC1
NGINX
Register C1
Watch Lookup C1
Copyright © PLUMgrid, Inc. 2011-2016
Distributed K/V store based on directories
Consensus using RAFT
Service definition queried using JSON-based HTTP APIs
Supports TTLs on keys
Clients handle failure or load balancing themselves
Allows watch on changes
Supports TLS/SSL
etcd
Key , Value
---------------------
C1 , 1.2.3.4:80
C2 , 1.2.3.4:88
C3 , 1.2.3.5:80
C4 , 1.2.3.5:88
C5 , 1.2.3.6:80
C6 , 1.2.3.6:88
etcd
Cluster
Register C1
Look up C1
Container Host A
config
C1 confd
C2 NGINX
1.2.3.4
Container Host B
C4
confdC3
NGINX
config
1.2.3.5
Container Host C
confdC5
NGINXC6
config
1.2.3.6
Watch
Copyright © PLUMgrid, Inc. 2011-2016
Distributed key, value(KV) store based on data directories
Provides comprehensive service health checking using both
in-built solutions as well as user provided custom solutions.
Provides REST based HTTP API for interaction.
Security: TLS and ACLs
Service database can be queried using DNS.
Does dynamic load balancing.
Supports single data center and can be scaled to support
multiple data centers.
consul
Monitoring Service Locks
Key-value Configuration Store
Host Clustering & Failure Detection
Copyright © PLUMgrid, Inc. 2011-2016
Distributed service for announcement
and discovery of services built on top of
etcd
Translates etcd keys and values to the
DNS
Sky DNS
dockerdocker-skydns-adaptor
etcd
skydns
microservice 1
microservice 2
microservice 3
Update DNS entries
Read configuration
HTTP
Client
Read
configuration 1 2 Call
microservice
Copyright © PLUMgrid, Inc. 2011-2016
Translates names to the IP address and port on the machine
currently running each application
Syncs with Mesos Master periodically
Updates the DNS records to reflect the latest state
Is stateless
Supports SRV records
Round robin for tasks with the same name
Central DNS
Mesos-DNS
Mesos-DNS
Record
Generator
Mesos
Master Cluster
State
DNS
Resolver
External DNS
Servers
Mesos
Slave
DNS
Lookup
DNS
Records
DNS
Lookup
DNS
Records
Copyright © PLUMgrid, Inc. 2011-2016
Works with DC/OS
Distributed DNS proxy in all members of the cluster
Dual-dispatching of DNS queries to multiple DC/OS
masters to avoid SPOF!
Able to optimally route queries to nodes in a cluster
Spartan
DC/OS Master
DC/OS Svc. Registry (DNS)
DC/OS Master
DC/OS Svc. Registry (DNS)
DC/OS Master
DC/OS Svc. Registry (DNS)
Corporate/External
DNS Server
DC/OS Agent
Container
Container
Container
DC/OS Agent
Container
Container
Container
DC/OS Agent
Container
Container
Container
DC/OS Agent
Container
Container
Container
Service 1
Service 2
Service 3
External Service
Copyright © PLUMgrid, Inc. 2011-2016
HAproxy based
Ingests state of running Marathon applications
Regenerates HAproxy config
Central LB for east-west
Potentially hundreds of Microservices are talking to each
other
If all that traffic goes through a centralized Load Balancer,
it quickly becomes a bottleneck
Marathon-lb
DMZ
marathon-lb
(HA Proxy)
marathon-lb
(HA Proxy)
marathon-lb
(HA Proxy)
Internet
Autoscale
Controller
App
App
App
App
Marathon
Mesos Agents (worker nodes)
Copyright © PLUMgrid, Inc. 2011-2016
Works with DC/OS
Distributed Load Balancer
Distributed database of VIPs and endpoints
Provides health-checking and endpoint availability
update
Minuteman
DC/OS Master
DC/OS Svc. Registry (DNS)
DC/OS Master
DC/OS Svc. Registry (DNS)
DC/OS Master
DC/OS Svc. Registry (DNS)
Corporate/External
DNS Server
DC/OS Agent
Container
Container
Container
DC/OS Agent
Container
Container
Container
DC/OS Agent
Container
Container
Container
DC/OS Agent
Container
Container
Container
Service 1
Service 2
Service 3
External Service
Copyright © PLUMgrid, Inc. 2011-2016
HAproxy on each client host
Uses Zookeper as Service Directory
Synapse: updates HAproxy
Nerve: provides backend registry to
Zookeeper
SmartStack
Provider
Application
Zookeeper
Publication
Consumer
Application
HA
Proxy
SynapseNerve
API
Discovery
Copyright © PLUMgrid, Inc. 2011-2016
Service Registration/Service
In OpenStack
Copyright © PLUMgrid, Inc. 2011-2016
● Container first class citizens in OpenStack
● Microservices use-cases are emerging
● Use of service discovery and service registration tools is unavoidable
● OpenStack as an infrastructure layer as well as platform layer, service
discovery and service registration is a need.
Need for Service Discovery/Registration in OpenStack?
Copyright © PLUMgrid, Inc. 2011-2016
Magnum: containers infrastructure management service
Kolla: containerized deployment of OpenStack
Murano: application catalog for OpenStack
Kuryr: brings OpenStack Networking (Neutron) and Storage to containers
Microservices architecture facilitators in OpenStack
Copyright © PLUMgrid, Inc. 2011-2016
Approach-1:
Containers and ecosystem entirely managed by container technologies like
Docker, Kubernetes, Mesos running atop OpenStack infrastructure
Approach-2:
Containers and ecosystem is partly managed by container technologies and
partly/completely managed/supported by OpenStack components: Neutron,
Nova, Keystone etc.
Two approaches in OpenStack
Copyright © PLUMgrid, Inc. 2011-2016
Approach-1 (Docker, Mesos, Kubernetes managed containers)
● Service discovery and service registration provided by the container
orchestration platform via the options discussed above: etcd, mesos-
dns, skydns etc
● OpenStack does not participate in service registration and discovery
Approach-2 (Hybrid scenarios with OpenStack tools are used)
● No off-the-shelf proper solution exists today
● Although we have all the tooling to achieve the results.
● Afterall, it boils down to “register”, “lookup” and load balancing
Current Picture
Copyright © PLUMgrid, Inc. 2011-2016
1. Load Balancer: Octavia
2. Designate: DNS
3. Kuryr+Neutron: Networking
4. Service Discovery: A new OpenStack project?
One of the possible options is #4, which makes use of existing OpenStack
tooling to provide service registration and discovery for services and
microservices inside OpenStack.
Future/Desired Future State
Copyright © PLUMgrid, Inc. 2011-2016
Questions?
Thank you!

More Related Content

What's hot

Microservices Tracing With Spring Cloud and Zipkin @CybercomDEV
Microservices Tracing With Spring Cloud and Zipkin @CybercomDEVMicroservices Tracing With Spring Cloud and Zipkin @CybercomDEV
Microservices Tracing With Spring Cloud and Zipkin @CybercomDEVMarcin Grzejszczak
 
Saga about distributed business transactions in microservices world
Saga about distributed business transactions in microservices worldSaga about distributed business transactions in microservices world
Saga about distributed business transactions in microservices worldMikalai Alimenkou
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaAraf Karsh Hamid
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudEberhard Wolff
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
Istio Service Mesh
Istio Service MeshIstio Service Mesh
Istio Service MeshLuke Marsden
 
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...HostedbyConfluent
 
Real Time UI with Apache Kafka Streaming Analytics of Fast Data and Server Push
Real Time UI with Apache Kafka Streaming Analytics of Fast Data and Server PushReal Time UI with Apache Kafka Streaming Analytics of Fast Data and Server Push
Real Time UI with Apache Kafka Streaming Analytics of Fast Data and Server PushLucas Jellema
 
Api management best practices with wso2 api manager
Api management best practices with wso2 api managerApi management best practices with wso2 api manager
Api management best practices with wso2 api managerChanaka Fernando
 
Async API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven FutureAsync API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven FutureSolace
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices Bozhidar Bozhanov
 
ITLC HN 14 - Bizweb Microservices Architecture
ITLC HN 14  - Bizweb Microservices ArchitectureITLC HN 14  - Bizweb Microservices Architecture
ITLC HN 14 - Bizweb Microservices ArchitectureIT Expert Club
 
Event Driven Microservices architecture
Event Driven Microservices architectureEvent Driven Microservices architecture
Event Driven Microservices architectureNikhilBarthwal4
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기YongSung Yoon
 

What's hot (20)

Microservices Tracing With Spring Cloud and Zipkin @CybercomDEV
Microservices Tracing With Spring Cloud and Zipkin @CybercomDEVMicroservices Tracing With Spring Cloud and Zipkin @CybercomDEV
Microservices Tracing With Spring Cloud and Zipkin @CybercomDEV
 
Saga about distributed business transactions in microservices world
Saga about distributed business transactions in microservices worldSaga about distributed business transactions in microservices world
Saga about distributed business transactions in microservices world
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Istio Service Mesh
Istio Service MeshIstio Service Mesh
Istio Service Mesh
 
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
 
Postman
PostmanPostman
Postman
 
Real Time UI with Apache Kafka Streaming Analytics of Fast Data and Server Push
Real Time UI with Apache Kafka Streaming Analytics of Fast Data and Server PushReal Time UI with Apache Kafka Streaming Analytics of Fast Data and Server Push
Real Time UI with Apache Kafka Streaming Analytics of Fast Data and Server Push
 
Microservice's in detailed
Microservice's in detailedMicroservice's in detailed
Microservice's in detailed
 
Api management best practices with wso2 api manager
Api management best practices with wso2 api managerApi management best practices with wso2 api manager
Api management best practices with wso2 api manager
 
Async API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven FutureAsync API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven Future
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
 
Observability
ObservabilityObservability
Observability
 
ITLC HN 14 - Bizweb Microservices Architecture
ITLC HN 14  - Bizweb Microservices ArchitectureITLC HN 14  - Bizweb Microservices Architecture
ITLC HN 14 - Bizweb Microservices Architecture
 
Event Driven Microservices architecture
Event Driven Microservices architectureEvent Driven Microservices architecture
Event Driven Microservices architecture
 
Amazon Aurora 100% 활용하기
Amazon Aurora 100% 활용하기Amazon Aurora 100% 활용하기
Amazon Aurora 100% 활용하기
 
CICD Mule
CICD Mule CICD Mule
CICD Mule
 
Springboot Microservices
Springboot MicroservicesSpringboot Microservices
Springboot Microservices
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
 

Similar to Service Discovery and Registration in a Microservices Architecture

Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...confluent
 
Reduce Risk with End to End Monitoring of Middleware-based Applications
Reduce Risk with End to End Monitoring of Middleware-based ApplicationsReduce Risk with End to End Monitoring of Middleware-based Applications
Reduce Risk with End to End Monitoring of Middleware-based ApplicationsSL Corporation
 
Cloud Foundry Technical Overview
Cloud Foundry Technical OverviewCloud Foundry Technical Overview
Cloud Foundry Technical Overviewcornelia davis
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureFaren faren
 
Cloud Foundry - Second Generation Code (CCNG). Technical Overview
Cloud Foundry - Second Generation Code (CCNG). Technical Overview Cloud Foundry - Second Generation Code (CCNG). Technical Overview
Cloud Foundry - Second Generation Code (CCNG). Technical Overview Nima Badiey
 
.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
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern LaunguageInho Kang
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...confluent
 
Ibm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalIbm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalaspyker
 
Netflix0SS Services on Docker
Netflix0SS Services on DockerNetflix0SS Services on Docker
Netflix0SS Services on DockerDocker, Inc.
 
Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak
 
How leading financial services organisations are winning with tech
How leading financial services organisations are winning with techHow leading financial services organisations are winning with tech
How leading financial services organisations are winning with techMongoDB
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microserviceLuigi Bennardis
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFRoy Braam
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesRakesh Gujjarlapudi
 
Asynchronous micro-services and the unified log
Asynchronous micro-services and the unified logAsynchronous micro-services and the unified log
Asynchronous micro-services and the unified logAlexander Dean
 
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 PreviewCloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 PreviewChip Childers
 
Microservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applicationsMicroservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applicationsStijn Van Den Enden
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Rick Hightower
 

Similar to Service Discovery and Registration in a Microservices Architecture (20)

Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
 
Reduce Risk with End to End Monitoring of Middleware-based Applications
Reduce Risk with End to End Monitoring of Middleware-based ApplicationsReduce Risk with End to End Monitoring of Middleware-based Applications
Reduce Risk with End to End Monitoring of Middleware-based Applications
 
Cloud Foundry Technical Overview
Cloud Foundry Technical OverviewCloud Foundry Technical Overview
Cloud Foundry Technical Overview
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Cloud Foundry - Second Generation Code (CCNG). Technical Overview
Cloud Foundry - Second Generation Code (CCNG). Technical Overview Cloud Foundry - Second Generation Code (CCNG). Technical Overview
Cloud Foundry - Second Generation Code (CCNG). Technical Overview
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
 
Ibm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalIbm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinal
 
Netflix0SS Services on Docker
Netflix0SS Services on DockerNetflix0SS Services on Docker
Netflix0SS Services on Docker
 
Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud Management
 
How leading financial services organisations are winning with tech
How leading financial services organisations are winning with techHow leading financial services organisations are winning with tech
How leading financial services organisations are winning with tech
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microservice
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
Asynchronous micro-services and the unified log
Asynchronous micro-services and the unified logAsynchronous micro-services and the unified log
Asynchronous micro-services and the unified log
 
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 PreviewCloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
 
Microservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applicationsMicroservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applications
 
Microservices
MicroservicesMicroservices
Microservices
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
 

More from PLUMgrid

SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)PLUMgrid
 
In-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack CloudsIn-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack CloudsPLUMgrid
 
Monitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack CloudsMonitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack CloudsPLUMgrid
 
Delivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile EdgeDelivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile EdgePLUMgrid
 
Design and Deploy Secure Clouds for Financial Services Use Cases
Design and Deploy Secure Clouds for Financial Services Use CasesDesign and Deploy Secure Clouds for Financial Services Use Cases
Design and Deploy Secure Clouds for Financial Services Use CasesPLUMgrid
 
How to Quickly Implement a Secure Cloud for Government and Military | Webinar
How to Quickly Implement a Secure Cloud for Government and Military | WebinarHow to Quickly Implement a Secure Cloud for Government and Military | Webinar
How to Quickly Implement a Secure Cloud for Government and Military | WebinarPLUMgrid
 
OpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate RelationshipOpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate RelationshipPLUMgrid
 
You Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it TooYou Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it TooPLUMgrid
 
You Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it TooYou Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it TooPLUMgrid
 
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...PLUMgrid
 
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron IntegrationNetworking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron IntegrationPLUMgrid
 
Implementing vCPE with OpenStack and Software Defined Networks
Implementing vCPE with OpenStack and Software Defined NetworksImplementing vCPE with OpenStack and Software Defined Networks
Implementing vCPE with OpenStack and Software Defined NetworksPLUMgrid
 
Hands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack NetworkHands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack NetworkPLUMgrid
 
Securing Micro Services in Cloud Foundry
Securing Micro Services in Cloud FoundrySecuring Micro Services in Cloud Foundry
Securing Micro Services in Cloud FoundryPLUMgrid
 
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...PLUMgrid
 
Unified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack CloudsUnified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack CloudsPLUMgrid
 
Building a Scalable Federated Hybrid Cloud
Building a Scalable Federated Hybrid CloudBuilding a Scalable Federated Hybrid Cloud
Building a Scalable Federated Hybrid CloudPLUMgrid
 
Managing Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual NetworkManaging Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual NetworkPLUMgrid
 
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFVRevolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFVPLUMgrid
 
See Your OpenStack Network Like Never Before
See Your OpenStack Network Like Never BeforeSee Your OpenStack Network Like Never Before
See Your OpenStack Network Like Never BeforePLUMgrid
 

More from PLUMgrid (20)

SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
 
In-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack CloudsIn-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack Clouds
 
Monitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack CloudsMonitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack Clouds
 
Delivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile EdgeDelivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile Edge
 
Design and Deploy Secure Clouds for Financial Services Use Cases
Design and Deploy Secure Clouds for Financial Services Use CasesDesign and Deploy Secure Clouds for Financial Services Use Cases
Design and Deploy Secure Clouds for Financial Services Use Cases
 
How to Quickly Implement a Secure Cloud for Government and Military | Webinar
How to Quickly Implement a Secure Cloud for Government and Military | WebinarHow to Quickly Implement a Secure Cloud for Government and Military | Webinar
How to Quickly Implement a Secure Cloud for Government and Military | Webinar
 
OpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate RelationshipOpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
 
You Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it TooYou Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it Too
 
You Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it TooYou Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it Too
 
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
 
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron IntegrationNetworking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
 
Implementing vCPE with OpenStack and Software Defined Networks
Implementing vCPE with OpenStack and Software Defined NetworksImplementing vCPE with OpenStack and Software Defined Networks
Implementing vCPE with OpenStack and Software Defined Networks
 
Hands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack NetworkHands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack Network
 
Securing Micro Services in Cloud Foundry
Securing Micro Services in Cloud FoundrySecuring Micro Services in Cloud Foundry
Securing Micro Services in Cloud Foundry
 
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
 
Unified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack CloudsUnified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack Clouds
 
Building a Scalable Federated Hybrid Cloud
Building a Scalable Federated Hybrid CloudBuilding a Scalable Federated Hybrid Cloud
Building a Scalable Federated Hybrid Cloud
 
Managing Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual NetworkManaging Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual Network
 
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFVRevolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
 
See Your OpenStack Network Like Never Before
See Your OpenStack Network Like Never BeforeSee Your OpenStack Network Like Never Before
See Your OpenStack Network Like Never Before
 

Recently uploaded

UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 

Recently uploaded (20)

UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 

Service Discovery and Registration in a Microservices Architecture

  • 1. Copyright © PLUMgrid, Inc. 2011-2016 what, why and how? Service Discovery and Registration in a Microservices Architecture
  • 2. Copyright © PLUMgrid, Inc. 2011-2016 About us 2 PLUMgrid Khaliq Fawad @fawadkhaliq Mesosphere Sanchez Fernando @fernandosanchez
  • 3. Copyright © PLUMgrid, Inc. 2011-2016 • What is Service Discovery and Registration? • A bit of history: the world in year 2000 (load balancers, physical servers and CCIEs) • Evolution: Virtualization brings shuffling and unpredictability • Today: Containers demand automation • What are Microservices and how do they affect Service Registration / Discovery? • Service Registration/Service Discovery Patterns and Tools • Patterns • Tools: ZooKeeper, etcd, Consul, Mesos-DNS, Minuteman etc. • Scope inside OpenStack? • The need for SR/SG in Openstack (as in any stack) • Current picture • Desired future state • Q/A Agenda
  • 4. Part 1 - A bit of history - DISCLAIMER - Trying to provide context about the “what” and the “why”. - Historically inaccurate - Obviously and shamelessly biased - A bit blurry… - DISCLAIMER (2) - This goes WAY BACK to provide context. I felt a bit OLD making this presentation - If you know what a v92 modem is, you probably will also feel old listening to it.
  • 5. A bit of history (1) : Service Registration in the early days (Very) early days: applications living on a single physical server “Service Discovery”? = How do I find my service “by name” when it really is an IP address? Well… DNS! 1:1 relationship between the Application and the backend implementing it
  • 6. A bit of history (2) : Service Registration in the early days Early days: applications living on MANY physical servers 1:N relationship between Service IPs and backend Servers Physical App Server “churn” was still “manageable” “Service Discovery”?: DNS + Virtual IPs + Virtual Hosts Need a Load Balancer! “Service Registration” = When I add a new server to my service, how does it get added to the list of available ”Service Backends”? ** Add a new backend to the Service IP/ Virtual IP in the load balancer (“Service Access Point”) ** Many times, added manually by a guy who has a vendor certification. ** Including “healthchecks” for each backend
  • 7. A bit of history (3) : Service Registration in the early days - Advent of the 3-tier architecture (web, application, dB) - Need load balancing in each layer so that each can scale up/down - With their respective healthchecks - So each layer now has a “Service Registration / Service Discovery” need!
  • 8. A bit of history (4) : Virtualization FTW - Enter server virtualization: Web/App/dB Servers can be created and destroyed in minutes. - “Automated” Service Registration becomes an evident need and options start to appear (we’ll discuss each in the 2nd part): - “Sidecar process” in workloads to register into centralized “backend database”? - “External Orchestrator” registers backends upon creation? - “API Gateways” with client or server-side discovery? - Applications can scale up and down more dynamically, even automatically depending on load
  • 9. Enter Containerization! Private Copy Shared App 3 Libraries Guest Operating System Infrastructure App 1 Libs Host Operating System Start / stop time One minute to few seconds Milliseconds Workload density 10 - 100x1x App 2 Libraries Guest Operating System App 1 Libraries Guest Operating System App 2 Libs App 3 Libs Virtual Machines Containers Host Operating System Hypervisor Infrastructure App 4 Libs App 5 Libs
  • 10. Today: Containers and Container Orchestration - Containers multiply the potential complexity: can be created/destroyed in milliseconds, with endpoints being one or more orders of magnitude more numerous than VMs - Impossible to have manual procedures: need automatic discovery of backends - All options mentioned for VMs may still be considered, with their pros and cons: - Sidecar, Centralized Orchestration, Client/Server discovery…
  • 11. From Containers to Microservices: What and Why? “The Monolith” and its issues - Traditional applications were typically developed as a single unified codebase - Which tends to grow along time - Making it harder to maintain, troubleshoot, evolve Microservices: divide and conquer! - Divide applications into independent pieces (typically functional areas) - Interconnect the pieces with networking and (REST) APIs
  • 12. Microservices: Divide and Conquer Traditional Architecture Many functions in a single process Siloed teams RESTAPIs Microservices Architecture Cross-functional teams organized around capabilities Scales individually Each element of functionality defined as “microservices” Scales monolithically
  • 13. Microservices Challenge: SD/SR on steroids! RESTAPIs Dependencies Between Microservices Running Multiple Microservices-based Apps
  • 14. SD/SR Evolution: from tiered architecture to usvcs 14 Before Micro-Services 10’s of services with well-defined endpoints 100’s of backends implementing them, with long duration Secure Infrastructure with DMZ and Firewalling. After Micro-Services 1000’s of services requiring new VIPs to talk to others 100000’s of backends that are created and destroyed constantly, sometimes in milliseconds 1000’s of services requiring Auth handshakes W W W A AA
  • 15. Copyright © PLUMgrid, Inc. 2011-2016 Service Registration/Service Patterns and Tools
  • 16. Copyright © PLUMgrid, Inc. 2011-2016
  • 17. Copyright © PLUMgrid, Inc. 2011-2016 Let’s talk about some terminologies that will help us better classify the tools ● Self registration ● Third-party registration ● Client-side discovery ● Service-side discovery Service Registration/Service Discovery Patterns
  • 18. Copyright © PLUMgrid, Inc. 2011-2016 Self registration Self Registration Microservice Microservice Service Registry When going up/down When going up/down
  • 19. Copyright © PLUMgrid, Inc. 2011-2016 Third-party registration Third Party Registration Microservice Microservice Service Registry starts service detects service crash Microservice Service Manager stop service
  • 20. Copyright © PLUMgrid, Inc. 2011-2016 Client-side discovery Client-side Discovery Client Service Registry MicroserviceAPI Gateway 1 2 3 4
  • 21. Copyright © PLUMgrid, Inc. 2011-2016 Server-side discovery Server-side Discovery Client Service Registry Microservice API Gateway1 2 3 4
  • 22. Copyright © PLUMgrid, Inc. 2011-2016 Service Discovery Tools
  • 23. Copyright © PLUMgrid, Inc. 2011-2016 Key-value store based on ephemeral nodes Consensus using ZAB Clients handle failure or load balancing themselves HA: Non-quorum nodes return error on read/write Allows watch on changes Written in Java. Provide Java and C language bindings. Heavyweight for simple architectures Zookeeper /A/C1 /C2 /C3 /C4 /B/C5 /C6 /C7 /C/C8 ZK Cluster Container Host A config C1 C3 R/W C2 C4 NGINX Container Host B C6 C7 R/WC5 NGINX Container Host C R/WC1 NGINX Register C1 Watch Lookup C1
  • 24. Copyright © PLUMgrid, Inc. 2011-2016 Distributed K/V store based on directories Consensus using RAFT Service definition queried using JSON-based HTTP APIs Supports TTLs on keys Clients handle failure or load balancing themselves Allows watch on changes Supports TLS/SSL etcd Key , Value --------------------- C1 , 1.2.3.4:80 C2 , 1.2.3.4:88 C3 , 1.2.3.5:80 C4 , 1.2.3.5:88 C5 , 1.2.3.6:80 C6 , 1.2.3.6:88 etcd Cluster Register C1 Look up C1 Container Host A config C1 confd C2 NGINX 1.2.3.4 Container Host B C4 confdC3 NGINX config 1.2.3.5 Container Host C confdC5 NGINXC6 config 1.2.3.6 Watch
  • 25. Copyright © PLUMgrid, Inc. 2011-2016 Distributed key, value(KV) store based on data directories Provides comprehensive service health checking using both in-built solutions as well as user provided custom solutions. Provides REST based HTTP API for interaction. Security: TLS and ACLs Service database can be queried using DNS. Does dynamic load balancing. Supports single data center and can be scaled to support multiple data centers. consul Monitoring Service Locks Key-value Configuration Store Host Clustering & Failure Detection
  • 26. Copyright © PLUMgrid, Inc. 2011-2016 Distributed service for announcement and discovery of services built on top of etcd Translates etcd keys and values to the DNS Sky DNS dockerdocker-skydns-adaptor etcd skydns microservice 1 microservice 2 microservice 3 Update DNS entries Read configuration HTTP Client Read configuration 1 2 Call microservice
  • 27. Copyright © PLUMgrid, Inc. 2011-2016 Translates names to the IP address and port on the machine currently running each application Syncs with Mesos Master periodically Updates the DNS records to reflect the latest state Is stateless Supports SRV records Round robin for tasks with the same name Central DNS Mesos-DNS Mesos-DNS Record Generator Mesos Master Cluster State DNS Resolver External DNS Servers Mesos Slave DNS Lookup DNS Records DNS Lookup DNS Records
  • 28. Copyright © PLUMgrid, Inc. 2011-2016 Works with DC/OS Distributed DNS proxy in all members of the cluster Dual-dispatching of DNS queries to multiple DC/OS masters to avoid SPOF! Able to optimally route queries to nodes in a cluster Spartan DC/OS Master DC/OS Svc. Registry (DNS) DC/OS Master DC/OS Svc. Registry (DNS) DC/OS Master DC/OS Svc. Registry (DNS) Corporate/External DNS Server DC/OS Agent Container Container Container DC/OS Agent Container Container Container DC/OS Agent Container Container Container DC/OS Agent Container Container Container Service 1 Service 2 Service 3 External Service
  • 29. Copyright © PLUMgrid, Inc. 2011-2016 HAproxy based Ingests state of running Marathon applications Regenerates HAproxy config Central LB for east-west Potentially hundreds of Microservices are talking to each other If all that traffic goes through a centralized Load Balancer, it quickly becomes a bottleneck Marathon-lb DMZ marathon-lb (HA Proxy) marathon-lb (HA Proxy) marathon-lb (HA Proxy) Internet Autoscale Controller App App App App Marathon Mesos Agents (worker nodes)
  • 30. Copyright © PLUMgrid, Inc. 2011-2016 Works with DC/OS Distributed Load Balancer Distributed database of VIPs and endpoints Provides health-checking and endpoint availability update Minuteman DC/OS Master DC/OS Svc. Registry (DNS) DC/OS Master DC/OS Svc. Registry (DNS) DC/OS Master DC/OS Svc. Registry (DNS) Corporate/External DNS Server DC/OS Agent Container Container Container DC/OS Agent Container Container Container DC/OS Agent Container Container Container DC/OS Agent Container Container Container Service 1 Service 2 Service 3 External Service
  • 31. Copyright © PLUMgrid, Inc. 2011-2016 HAproxy on each client host Uses Zookeper as Service Directory Synapse: updates HAproxy Nerve: provides backend registry to Zookeeper SmartStack Provider Application Zookeeper Publication Consumer Application HA Proxy SynapseNerve API Discovery
  • 32. Copyright © PLUMgrid, Inc. 2011-2016 Service Registration/Service In OpenStack
  • 33. Copyright © PLUMgrid, Inc. 2011-2016 ● Container first class citizens in OpenStack ● Microservices use-cases are emerging ● Use of service discovery and service registration tools is unavoidable ● OpenStack as an infrastructure layer as well as platform layer, service discovery and service registration is a need. Need for Service Discovery/Registration in OpenStack?
  • 34. Copyright © PLUMgrid, Inc. 2011-2016 Magnum: containers infrastructure management service Kolla: containerized deployment of OpenStack Murano: application catalog for OpenStack Kuryr: brings OpenStack Networking (Neutron) and Storage to containers Microservices architecture facilitators in OpenStack
  • 35. Copyright © PLUMgrid, Inc. 2011-2016 Approach-1: Containers and ecosystem entirely managed by container technologies like Docker, Kubernetes, Mesos running atop OpenStack infrastructure Approach-2: Containers and ecosystem is partly managed by container technologies and partly/completely managed/supported by OpenStack components: Neutron, Nova, Keystone etc. Two approaches in OpenStack
  • 36. Copyright © PLUMgrid, Inc. 2011-2016 Approach-1 (Docker, Mesos, Kubernetes managed containers) ● Service discovery and service registration provided by the container orchestration platform via the options discussed above: etcd, mesos- dns, skydns etc ● OpenStack does not participate in service registration and discovery Approach-2 (Hybrid scenarios with OpenStack tools are used) ● No off-the-shelf proper solution exists today ● Although we have all the tooling to achieve the results. ● Afterall, it boils down to “register”, “lookup” and load balancing Current Picture
  • 37. Copyright © PLUMgrid, Inc. 2011-2016 1. Load Balancer: Octavia 2. Designate: DNS 3. Kuryr+Neutron: Networking 4. Service Discovery: A new OpenStack project? One of the possible options is #4, which makes use of existing OpenStack tooling to provide service registration and discovery for services and microservices inside OpenStack. Future/Desired Future State
  • 38. Copyright © PLUMgrid, Inc. 2011-2016 Questions? Thank you!