SlideShare a Scribd company logo
1 of 26
Building geographically distributed
microservices with containers
Outline
Why geographically distributed?
How?
Solutions?
Issues?
Geographical Distribution
“the natural arrangement and apportionment of the various
forms of animals and plants in the different regions and
localities of the earth”
- Merriam-Webster dictionary
Geographical Distribution
“the natural arrangement and apportionment of the various
software components of systems and services in the
different regions and localities of the earth”
Distribution Levels
Availability Zones < 10ms
Regions within a continent < 100ms
Global regions > 100ms
Benefits
Superior resiliency
Hybrid Solutions
Regulatory requirements
Avoid vendor lock-in
Challenges
Deployment orchestration
Networking
Connectivity between DCs/clouds
Security
Requirements
Easy deployment of apps
Network level abstraction
Secure connectivity between apps
Options
VPNs between clouds
DIY deployment orchestration
Containers
Platform?
Containers FTW
Efficient use of resources
Application portability
Environment parity
Easy ´deployability´
In Practice
with
Overlay Network
An overlay network is a computer network that is built on top of
another network. Nodes in the overlay network can be thought of
as being connected by virtual or logical links, each of which
corresponds to a path, perhaps through many physical links, in the
underlying network.
- Wikipedia
Features
Mesh networking
DNS
NAT traversal
Multicast
Security out-of-box
Network details
Kernel Open V-Switch handles routing
Standard VXLAN overlay
IPSec with AES GCM encryption
User
Space
Kernel
Space
Network
Host 1
User
App
Weave
Router
OVS
Module
Host 2
User
App
Weave
Router
OVS
Module
Scheduler
Understands zones
Spreads deployments
Supports location pinning
But what about the microservices?
Murphy’s Law
Anything that can go wrong
will go wrong
Services still care
CAP theorem
Split brains
Network glitches
App level issues
Abstractions FTW
Apps don’t care about infra
Apps don’t care on network encryption
Location abstracted (to a degree)
Good application
principles
Service Mesh
Don’t “cache” DNS results
Figure out your consistency model
Summary
Containers FTW
Overlay networks ease up many things
Murphy’s Law  Failure testing
Distributed systems are still HARD
info@kontena.io
@kontenainc
slack.kontena.io
github.com/kontena
meetup.com/pro/kontena
www.kontena.io
Thank You!

More Related Content

Similar to Building geographically distributed microservices with containers

Similar to Building geographically distributed microservices with containers (20)

Project DRAC: Creating an applications-aware network
Project DRAC: Creating an applications-aware networkProject DRAC: Creating an applications-aware network
Project DRAC: Creating an applications-aware network
 
Distributed computing
Distributed computingDistributed computing
Distributed computing
 
Delivered Guest Talk in Faculty Development Programme held on 27th July 2017 ...
Delivered Guest Talk in Faculty Development Programme held on 27th July 2017 ...Delivered Guest Talk in Faculty Development Programme held on 27th July 2017 ...
Delivered Guest Talk in Faculty Development Programme held on 27th July 2017 ...
 
Salesforce - Introduction to Security & Access
Salesforce -  Introduction to Security & Access Salesforce -  Introduction to Security & Access
Salesforce - Introduction to Security & Access
 
Grid computing
Grid computingGrid computing
Grid computing
 
Advanced Networking on GloMoSim
Advanced Networking on GloMoSimAdvanced Networking on GloMoSim
Advanced Networking on GloMoSim
 
13778757.ppt
13778757.ppt13778757.ppt
13778757.ppt
 
Virtualization in Distributed System: A Brief Overview
Virtualization in Distributed System: A Brief OverviewVirtualization in Distributed System: A Brief Overview
Virtualization in Distributed System: A Brief Overview
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Virtualization in Distributed System: A Brief Overview
Virtualization in Distributed System: A Brief OverviewVirtualization in Distributed System: A Brief Overview
Virtualization in Distributed System: A Brief Overview
 
(R)evolution of the computing continuum - A few challenges
(R)evolution of the computing continuum  - A few challenges(R)evolution of the computing continuum  - A few challenges
(R)evolution of the computing continuum - A few challenges
 
cloud computing
cloud computingcloud computing
cloud computing
 
How Ellie Mae Leveraged Juniper Networks vSRX to Gain Secure Connectivity to ...
How Ellie Mae Leveraged Juniper Networks vSRX to Gain Secure Connectivity to ...How Ellie Mae Leveraged Juniper Networks vSRX to Gain Secure Connectivity to ...
How Ellie Mae Leveraged Juniper Networks vSRX to Gain Secure Connectivity to ...
 
Security in cloud computing
Security in cloud computingSecurity in cloud computing
Security in cloud computing
 
Types of computer network ...
Types of computer network ...Types of computer network ...
Types of computer network ...
 
Dos unit1
Dos unit1Dos unit1
Dos unit1
 
Cluster and Grid Computing
Cluster and Grid ComputingCluster and Grid Computing
Cluster and Grid Computing
 
Inroduction to grid computing by gargi shankar verma
Inroduction to grid computing by gargi shankar vermaInroduction to grid computing by gargi shankar verma
Inroduction to grid computing by gargi shankar verma
 
Sensor networks a survey
Sensor networks a surveySensor networks a survey
Sensor networks a survey
 
MOVEMENT ASSISTED COMPONENT BASED SCALABLE FRAMEWORK FOR DISTRIBUTED WIRELESS...
MOVEMENT ASSISTED COMPONENT BASED SCALABLE FRAMEWORK FOR DISTRIBUTED WIRELESS...MOVEMENT ASSISTED COMPONENT BASED SCALABLE FRAMEWORK FOR DISTRIBUTED WIRELESS...
MOVEMENT ASSISTED COMPONENT BASED SCALABLE FRAMEWORK FOR DISTRIBUTED WIRELESS...
 

More from Kontena, Inc.

More from Kontena, Inc. (13)

CD NYC From Source Code to Production
CD NYC From Source Code to ProductionCD NYC From Source Code to Production
CD NYC From Source Code to Production
 
The Automated Container Deployment Pipeline- JAXDevOps
The Automated Container Deployment Pipeline- JAXDevOpsThe Automated Container Deployment Pipeline- JAXDevOps
The Automated Container Deployment Pipeline- JAXDevOps
 
Running Docker in Production - The Good, the Bad and The Ugly
Running Docker in Production - The Good, the Bad and The UglyRunning Docker in Production - The Good, the Bad and The Ugly
Running Docker in Production - The Good, the Bad and The Ugly
 
Running Dockerized services across several cloud providers
Running Dockerized services across several cloud providersRunning Dockerized services across several cloud providers
Running Dockerized services across several cloud providers
 
Running Containers on Nebula OpenStack
Running Containers on Nebula OpenStackRunning Containers on Nebula OpenStack
Running Containers on Nebula OpenStack
 
Running and Scaling Symfony app in container(s)
Running and Scaling Symfony app in container(s)Running and Scaling Symfony app in container(s)
Running and Scaling Symfony app in container(s)
 
Automating the CI / CD pipeline of your containerized applications
Automating the CI / CD pipeline of your containerized applicationsAutomating the CI / CD pipeline of your containerized applications
Automating the CI / CD pipeline of your containerized applications
 
WordPressCafe - Deploying WordPress using Kontena
WordPressCafe - Deploying WordPress using KontenaWordPressCafe - Deploying WordPress using Kontena
WordPressCafe - Deploying WordPress using Kontena
 
Barcelona MeetUp - Kontena Intro
Barcelona MeetUp - Kontena IntroBarcelona MeetUp - Kontena Intro
Barcelona MeetUp - Kontena Intro
 
Dockerizing Ruby Applications - The Best Practices
Dockerizing Ruby Applications - The Best PracticesDockerizing Ruby Applications - The Best Practices
Dockerizing Ruby Applications - The Best Practices
 
CoreOS Battle Stories
CoreOS Battle StoriesCoreOS Battle Stories
CoreOS Battle Stories
 
Docker in Production - Stateful Services
Docker in Production - Stateful ServicesDocker in Production - Stateful Services
Docker in Production - Stateful Services
 
Beginners Guide To Kontena
Beginners Guide To KontenaBeginners Guide To Kontena
Beginners Guide To Kontena
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Building geographically distributed microservices with containers

Editor's Notes

  1. Why would one want to run apps across clouds / datacenters Focus on platform issues and solutions, not so much app level What I mean with platform?
  2. Single cloud region halt does not halt your app Natural disasters Mis config, AWS example Locality, latency issues Data has to be within EU for example Do not tie yourself into one provider Hybrid solutions Access to in-house private assets Oracle running in the basement
  3. Configuration management is a pain How do you deploy your app into multiple clouds Networking is different in all providers How to enable connectivity between clouds Securely How will your services find each others between clouds Some services are internal, microservices
  4. App developers should not have to worry about DC/cloud provider details Apps can connect to other apps “natively”, no need to worry about any network level details Network level security should be taken care of by the “platform”
  5. Script your way out VPNs for inter-cloud connectivity Anyone setup VPN knows it’s a bit of a pain Not all cloud provider provide private networking Containers help to solve some of the issues Ready made cross-cloud platform, are there any?
  6. After a few weeks/months system looks like this, a perfectly working system You have every feature that you need, and still some duck tape for the future What if that generator dies? Fun to build these kinds of things, but maybe not best use for your time (and company money)
  7. Why is everyone talking about containers? You can run multiple apps on one single host with ease Any host with container engine can run any app As long as they are using the standard image format Java reference Deploying an app is basically two step process, pull image and run it
  8. Bunch of other alternatives too Kubernetes Docker Swarm Rancher Networking Calico Canal Flannel …
  9. Containers abstract the provider out Overlay networking as an enabler Abstract provider networking details out Transparent security at low level networking
  10. Each node relays data for the network. All mesh nodes cooperate in the distribution of data in the network DNS helps service discovery Data between apps traverses NATs Overlays can support multicast across clouds Security on network level
  11. (container) scheduler needs to understand your infra locations To some level Scheduler should be able to spread app instances into different “zones” Scheduler should be able to pin services in a certain location Placement-pref spread in Swarm Kube failure domain zones & SelectorSpreadPriority
  12. Conway’s law is kinda important when thinking about distributed systems But there’s far more important law to think about Murphy’s Law Things When your running multiple instances and at multiple different locations at the same time, likelihood of things breaking gets higher And when things break, they break in more than one place Personal experience: And things usually break during bank holidays. Christmas time, Easter, Mid-summer in Finland
  13. 500-700 containers lost at sea each year Force majoures still happen Numerous examples of connectivity breaks between datacenters Few years ago in Finland main fiber line cut with an excavator  half of the country suffered
  14. Even if the network is abstracted, CAP still applies Some one can still use an excavator and cut the fibers So at app level, still use Circuit breakers
  15. Linkerd, Istio, Conduit, Aspen Mesh Many apps “cache” DNS results after startup For example Ruby Mongo driver used to do this System level consistency model For strongly consistent systems, geo dist might not even work Chaos engineering Run few alpha CoreOS boxes in prod