SlideShare uma empresa Scribd logo
1 de 37
v
Microservices Network Architecture 101
Dinesh G Dutt
May 26, 2016
Agenda
Microservices: Evolution of Application
Architecture
Container Networking 101
Container Networking 101-Alt
May 29, 2016 Cumulus Networks Confidential 2
Key Takeaways
Microservices are the latest step in evolution
of application architecture
 Make app development faster, apps more scalable,
adaptable
Container networking has two primary
modes: single host and multi-host
Using existing well-known techniques, multi-
host container networking can be made
quite easy
May 29, 2016 Cumulus Networks Confidential 3
May 29, 2016 Cumulus Networks Confidential 4
•Evolution of Microservices
Monolithic App Running On Mainframe
May 29, 2016 cumulusnetworks.com 5
Client-Server Architecture: Monolithic Server
May 29, 2016 cumulusnetworks.com 6
LAN
May 29, 2016 cumulusnetworks.com 7
Web Front-end
Application
Database
Internet
Client-Server Architecture: Server Split Into Three, Handle
More Clients
May 29, 2016 cumulusnetworks.com 8
Web Front-end
Application
Database
Web Front-end
Application
Database
Web Front-end
Application
Database
Internet
Server Virtualization, Multiple Instances of Servers
May 29, 2016 cumulusnetworks.com 9
Internet
Microservices Architecture: Devolving The Application Even
More
Microservices Are Popular Now Because …
They address a set of issues that plague the
fast-paced, highly scalable, ever evolving
world of modern software
 Reliability
 Scalability
 Faster development and release cycles
 Reduces barrier to entry for new frameworks and
technologies
May 29, 2016 Cumulus Networks Confidential 10
May 29, 2016 Cumulus Networks Confidential 11
•Distributed system design, and
therefore communications, is at the
heart of Microservices
For More About Microservices
https://www.nginx.com/blog/introduction-to-
microservices/
 Excellent 7 part article about Microservices
 Doesn’t cover networking
May 29, 2016 Cumulus Networks Confidential 12
Linux Containers (LXC)
If Microservices are the genotype,
containers are the phenotype
Containers a.k.a. LXC is a system isolation
method provided in Linux that’s lighter than
VM, but heavier than solutions such as
chroot or systemd-nspawn
 Doesn’t assume entire OS is isolated
 Underlying OS is common across all containers
May 29, 2016 Cumulus Networks Confidential 13
Container Landscape
May 29, 2016 Cumulus Networks Confidential 14
Linux kernel
(cgroups, namespaces)
Docker Rocket (CoreOS)OpenVZ
App App App
May 29, 2016 Cumulus Networks Confidential 15
•Container Communication
May 29, 2016 Cumulus Networks Confidential 16
Topology is
simulated in Vagrant
 Switches are running
Cumulus VX 3.0.0 box
 Hosts are running
williamyeh/ubuntu-
trusty64-docker box
 BGP between leaf and
spine (L3 fabric)
spine-1 spine-2
leaf-1
host-11
host-12
host-21
host-22
Docker Networking Options
May 29, 2016 Cumulus Networks Confidential 17
Single Host
 Bridged (default)
 Host mode
 None
 MacVlan
 IPVlan
Multi Host
 Overlay
• Flannel
 MacVlan
 IPVlan
 Bridged
Bridged Mode With Docker Container: Default
May 29, 2016 Cumulus Networks Confidential 18
10.1.20.1
10.1.20.11
eth0
docker0
172.17.0.4
172.17.0.1
172.17.0.3 172.17.0.2
 All containers connected to the
bridge can talk to each other
and to the host
 Host bridge interface (docker0)
is the gateway to talk to host
 Entities outside the host
cannot communicate with the
container
 IPAM is default assignment by
docker from subnet specified
 Can start container with a specific
IP address in bridge subnet
Default Allowed Communication In Bridged Mode
May 29, 2016 Cumulus Networks Confidential 19
10.1.20.1
10.1.20.11
eth0
docker0
172.17.0.4
172.17.0.1
172.17.0.3 172.17.0.2
docker1
172.16.1.1
172.16.1.2
X
• Router cannot ping 172.16.1.x or 172.17.0.x, but 172.16.1.x or 172.17.0.x can ping 10.1.2.1
• Router is not aware of the reachability to 172.x network, by default
• Can start docker such that containers are also isolated from each other
Single Host Networking: NAT always for External
Communication
May 29, 2016 Cumulus Networks Confidential 20
Multi-host Networking
Introduced in docker version
Uses VxLAN overlay to connect L2 networks
Complex setup:
 Build a machine with a key-value store daemon
 All machines to be in multi-host mode need access
to this KV store
 Need docker swarm
May 29, 2016 Cumulus Networks Confidential 21
May 29, 2016 Cumulus Networks Confidential 22
•A Networking Dude looks at Multi-
host Networking
What NAT ?
NAT exists to allow docker containers to run
in cloud VMs and not expose themselves via
private IP addresses
This is not typically the use case for folks
deploying containers in their own DC
So, what can we do for such folks ?
May 29, 2016 Cumulus Networks Confidential 23
Simplified Multi-host Routing
Turn off NAT
Assign non-default IP addresses to docker
bridges
Run routing protocol on the host to
announce these addresses
 Or use a giant L2 network with each host doing
IPAM over an allocated range
May 29, 2016 Cumulus Networks Confidential 24
Simplified Multi-host Routing
In brief:
 Using the straight up linux bridging driver for
containers coupled with routing on the host gives
you multi-host container communication
 Using straight up Linux iptables provides the
microsegmentation between containers
May 29, 2016 Cumulus Networks Confidential 25
•Newer Networking Options
Why More Choices ?
Problems with existing models:
 Bridging the default way involves NAT for external
communication
• NAT is not scalable, performance issues
 Ability to assign IP addresses to containers without
regard to bridge subnet
May 29, 2016 Cumulus Networks Confidential 27
MacVlan Model
May 29, 2016 Cumulus Networks Confidential 28
Constructs multiple MAC
addresses based on
original MAC address of
parent interface (eth0 in
picture)
Containers attach to the
parent interface directly, no
bridge
Containers have an IP
address allocated from the
bridge subnet where bridge
is upstream (typically a
bridge/VLAN in the ToR)
10.1.20.1
10.1.20.11
eth0
10.1.20.3 10.1.20.210.1.20.4
• docker network create –d macvlan 
–-subnet=10.1.20.0/24 –-gateway=10.1.20.1 
-o parent=eth0 mcv1
• docker run –net=mcv1 –it ubuntu bash
IPVlan: L3 Mode
May 29, 2016 Cumulus Networks Confidential 29
 Ipvlan interface is created
attached to an existing interface
(eth0, for eg)
 Container interfaces attach to
this ipvlan interface
 Container IPs MUST be allocated
manually (no IPAM)
 Containers connected to same
parent can communicate with
each other, even if they’re in
different subnets
 All broadcast/multicast dropped
10.1.20.1
10.1.20.11
eth0
20.1.1.12/24 12.2.1.2/3010.0.1.11/24
• docker network create –d ipvlan 
–-subnet=10.1.20.0/24 --subnet=20.1.1.0/24 
-o ipvlan_mode=l3 –o parent=eth0 ipv1
• docker run –net=ipv1 –ip=10.1.20.11 –it ubuntu bash
May 29, 2016 Cumulus Networks Confidential 30
•Container Frameworks
Why Do We Need Container Frameworks ?
Multi-host containers require more than
communication simplification:
 Cluster management
 Job scheduling
 Policy (simple or complex ones)
 Service discovery
 Event-driven models
 Lifecycle management
May 29, 2016 Cumulus Networks Confidential 31
Swarm/Kubernetes/Mesos/Weave
Microservices Landscape
May 29, 2016 Cumulus Networks Confidential 32
Linux kernel
(cgroups, namespaces)
App App App
Docker Rocket (CoreOS)OpenVZ
Swarm/Kubernetes/Mesos/Weave
Microservices Landscape
May 29, 2016 Cumulus Networks Confidential 33
Linux kernel
(cgroups, namespaces)
App App App
Docker Rocket (CoreOS)OpenVZ
Calic
o
What Did I Not Cover
Network plugins
Host mode
Flannel use
 Came out of CoreOS, similar to overlay mode in
docker
 Apparently not used much with docker
 One use case is with Kubernetes, but its not really
required there, as per our last webinar
May 29, 2016 Cumulus Networks Confidential 34
Summary
Microservices are the next evolution in
building scalable, resilient, agile
applications
Container networking has many new and
moving parts, but at the heart linux bridging
and iptables are good enough
Running a routing protocol on the host
simplifies multi-host container networking
May 29, 2016 Cumulus Networks Confidential 35
May 29, 2016 Cumulus Networks Confidential 36
•Operationalizing Linux VRF in the
Data Center
•Guest: David Ahern, Primary VRF
Author in the Linux kernel
•When: June 23
Next Month’s Webinar
© 2016 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its affiliates in
the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive
licensee of Linus Torvalds, owner of the mark on a world-wide basis.
ThankYou!
Cumulus Networks Confidential 37May 29, 2016

Mais conteúdo relacionado

Mais procurados

MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)
JuHwan Lee
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
Kernel TLV
 
Virtualized network with openvswitch
Virtualized network with openvswitchVirtualized network with openvswitch
Virtualized network with openvswitch
Sim Janghoon
 

Mais procurados (20)

OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Dive
 
MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)
 
DPDK KNI interface
DPDK KNI interfaceDPDK KNI interface
DPDK KNI interface
 
ACRN Kata Container on ACRN
ACRN Kata Container on ACRNACRN Kata Container on ACRN
ACRN Kata Container on ACRN
 
SFScon15 - Thomas Lamprecht: "Proxmox Virtual Environment 4.0"
SFScon15 - Thomas Lamprecht: "Proxmox Virtual Environment 4.0"SFScon15 - Thomas Lamprecht: "Proxmox Virtual Environment 4.0"
SFScon15 - Thomas Lamprecht: "Proxmox Virtual Environment 4.0"
 
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
 
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
 
Meetup 23 - 02 - OVN - The future of networking in OpenStack
Meetup 23 - 02 - OVN - The future of networking in OpenStackMeetup 23 - 02 - OVN - The future of networking in OpenStack
Meetup 23 - 02 - OVN - The future of networking in OpenStack
 
Janus & docker: friends or foe
Janus & docker: friends or foe Janus & docker: friends or foe
Janus & docker: friends or foe
 
VXLAN Integration with CloudStack Advanced Zone
VXLAN Integration with CloudStack Advanced ZoneVXLAN Integration with CloudStack Advanced Zone
VXLAN Integration with CloudStack Advanced Zone
 
Understanding Open vSwitch
Understanding Open vSwitch Understanding Open vSwitch
Understanding Open vSwitch
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in Cilium
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
Virtualized network with openvswitch
Virtualized network with openvswitchVirtualized network with openvswitch
Virtualized network with openvswitch
 
Enable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zunEnable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zun
 
eBPF Perf Tools 2019
eBPF Perf Tools 2019eBPF Perf Tools 2019
eBPF Perf Tools 2019
 
[Container Plumbing Days 2023] Why was nerdctl made?
[Container Plumbing Days 2023] Why was nerdctl made?[Container Plumbing Days 2023] Why was nerdctl made?
[Container Plumbing Days 2023] Why was nerdctl made?
 
Building a redundant CloudStack management cluster - Vladimir Melnik
Building a redundant CloudStack management cluster - Vladimir MelnikBuilding a redundant CloudStack management cluster - Vladimir Melnik
Building a redundant CloudStack management cluster - Vladimir Melnik
 

Destaque

Destaque (20)

Network Architecture for Containers
Network Architecture for ContainersNetwork Architecture for Containers
Network Architecture for Containers
 
Docker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksDocker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined Networks
 
Webinar-Linux Networking is Awesome
Webinar-Linux Networking is AwesomeWebinar-Linux Networking is Awesome
Webinar-Linux Networking is Awesome
 
Webinar: Network Automation [Tips & Tricks]
Webinar: Network Automation [Tips & Tricks]Webinar: Network Automation [Tips & Tricks]
Webinar: Network Automation [Tips & Tricks]
 
Demystifying Networking Webinar Series- Routing on the Host
Demystifying Networking Webinar Series- Routing on the HostDemystifying Networking Webinar Series- Routing on the Host
Demystifying Networking Webinar Series- Routing on the Host
 
Building Scalable Data Center Networks
Building Scalable Data Center NetworksBuilding Scalable Data Center Networks
Building Scalable Data Center Networks
 
Demystifying Networking: Data Center Networking Trends 2017
Demystifying Networking: Data Center Networking Trends 2017Demystifying Networking: Data Center Networking Trends 2017
Demystifying Networking: Data Center Networking Trends 2017
 
Manage your switches like servers
Manage your switches like serversManage your switches like servers
Manage your switches like servers
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the Tillerman
 
Cumulus Linux 2.5.3
Cumulus Linux 2.5.3Cumulus Linux 2.5.3
Cumulus Linux 2.5.3
 
Linux networking is Awesome!
Linux networking is Awesome!Linux networking is Awesome!
Linux networking is Awesome!
 
How deep is your buffer – Demystifying buffers and application performance
How deep is your buffer – Demystifying buffers and application performanceHow deep is your buffer – Demystifying buffers and application performance
How deep is your buffer – Demystifying buffers and application performance
 
Cumulus Linux 2.5.4
Cumulus Linux 2.5.4Cumulus Linux 2.5.4
Cumulus Linux 2.5.4
 
July NYC Open Networking Meeup
July NYC Open Networking MeeupJuly NYC Open Networking Meeup
July NYC Open Networking Meeup
 
Dreamhost deploying dreamcompute at scale
Dreamhost deploying dreamcompute at scaleDreamhost deploying dreamcompute at scale
Dreamhost deploying dreamcompute at scale
 
Cumulus Linux 2.5.5 What's New
Cumulus Linux 2.5.5 What's NewCumulus Linux 2.5.5 What's New
Cumulus Linux 2.5.5 What's New
 
Ifupdown2: Network Interface Manager
Ifupdown2: Network Interface ManagerIfupdown2: Network Interface Manager
Ifupdown2: Network Interface Manager
 
Operationalizing BGP in the SDDC
Operationalizing BGP in the SDDCOperationalizing BGP in the SDDC
Operationalizing BGP in the SDDC
 
Operationalizing VRF in the Data Center
Operationalizing VRF in the Data CenterOperationalizing VRF in the Data Center
Operationalizing VRF in the Data Center
 
Nutanix + Cumulus Linux: Deploying True Hyper Convergence with Open Networking
Nutanix + Cumulus Linux: Deploying True Hyper Convergence with Open NetworkingNutanix + Cumulus Linux: Deploying True Hyper Convergence with Open Networking
Nutanix + Cumulus Linux: Deploying True Hyper Convergence with Open Networking
 

Semelhante a Microservices Network Architecture 101

Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...
Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...
Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...
OpenStack
 

Semelhante a Microservices Network Architecture 101 (20)

Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...
Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...
Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...
 
[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)
[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)
[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
Building a sdn solution for the deployment of web application stacks in docker
Building a sdn solution for the deployment of web application stacks in dockerBuilding a sdn solution for the deployment of web application stacks in docker
Building a sdn solution for the deployment of web application stacks in docker
 
The Rise of Microservices - Containers and Orchestration
The Rise of Microservices - Containers and OrchestrationThe Rise of Microservices - Containers and Orchestration
The Rise of Microservices - Containers and Orchestration
 
Unleash the Power of Open Networking
Unleash the Power of Open NetworkingUnleash the Power of Open Networking
Unleash the Power of Open Networking
 
BRKSDN-2115
BRKSDN-2115 BRKSDN-2115
BRKSDN-2115
 
The Future of Web Application Architectures
The Future of Web Application ArchitecturesThe Future of Web Application Architectures
The Future of Web Application Architectures
 
Docker for Mac and Windows: The Insider's Guide by Justin Cormack
Docker for Mac and Windows: The Insider's Guide by Justin CormackDocker for Mac and Windows: The Insider's Guide by Justin Cormack
Docker for Mac and Windows: The Insider's Guide by Justin Cormack
 
Microservices, Containers and Docker
Microservices, Containers and DockerMicroservices, Containers and Docker
Microservices, Containers and Docker
 
Webinar container management in OpenStack
Webinar container management in OpenStackWebinar container management in OpenStack
Webinar container management in OpenStack
 
Supporting bioinformatics applications with hybrid multi-cloud services
Supporting bioinformatics applications with hybrid multi-cloud servicesSupporting bioinformatics applications with hybrid multi-cloud services
Supporting bioinformatics applications with hybrid multi-cloud services
 
IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017
 
Hybrid messaging webcast: Using the best of both worlds to drive your busines...
Hybrid messaging webcast: Using the best of both worlds to drive your busines...Hybrid messaging webcast: Using the best of both worlds to drive your busines...
Hybrid messaging webcast: Using the best of both worlds to drive your busines...
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
MidoNet Overview - OpenStack and SDN integration
MidoNet Overview - OpenStack and SDN integrationMidoNet Overview - OpenStack and SDN integration
MidoNet Overview - OpenStack and SDN integration
 
C418 - Build, Deploy and Manage Your First Open Pattern with PureApplication ...
C418 - Build, Deploy and Manage Your First Open Pattern with PureApplication ...C418 - Build, Deploy and Manage Your First Open Pattern with PureApplication ...
C418 - Build, Deploy and Manage Your First Open Pattern with PureApplication ...
 
Docker for Mac
Docker for MacDocker for Mac
Docker for Mac
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OS
 
Securing Microservices in Containerized Environments
Securing Microservices in Containerized Environments Securing Microservices in Containerized Environments
Securing Microservices in Containerized Environments
 

Mais de Cumulus Networks

Mais de Cumulus Networks (12)

Building a Layer 3 network with Cumulus Linux
Building a Layer 3 network with Cumulus LinuxBuilding a Layer 3 network with Cumulus Linux
Building a Layer 3 network with Cumulus Linux
 
Operationalizing EVPN in the Data Center: Part 2
Operationalizing EVPN in the Data Center: Part 2Operationalizing EVPN in the Data Center: Part 2
Operationalizing EVPN in the Data Center: Part 2
 
Demystifying EVPN in the data center: Part 1 in 2 episode series
Demystifying EVPN in the data center: Part 1 in 2 episode seriesDemystifying EVPN in the data center: Part 1 in 2 episode series
Demystifying EVPN in the data center: Part 1 in 2 episode series
 
Best practices for network troubleshooting
Best practices for network troubleshootingBest practices for network troubleshooting
Best practices for network troubleshooting
 
NetDevOps 202: Life After Configuration
NetDevOps 202: Life After ConfigurationNetDevOps 202: Life After Configuration
NetDevOps 202: Life After Configuration
 
Cumulus Networks: Automating Network Configuration
Cumulus Networks: Automating Network ConfigurationCumulus Networks: Automating Network Configuration
Cumulus Networks: Automating Network Configuration
 
Open Networking for Your OpenStack
Open Networking for Your OpenStackOpen Networking for Your OpenStack
Open Networking for Your OpenStack
 
Big data, better networks
Big data, better networksBig data, better networks
Big data, better networks
 
Mlag invisibile layer 2 redundancy
Mlag invisibile layer 2 redundancyMlag invisibile layer 2 redundancy
Mlag invisibile layer 2 redundancy
 
Using linux to manage the entire rack
Using linux to manage the entire rackUsing linux to manage the entire rack
Using linux to manage the entire rack
 
Big Data, Better Networks
Big Data, Better NetworksBig Data, Better Networks
Big Data, Better Networks
 
Open Hardware for All - Webinar March 25, 2015
Open Hardware for All - Webinar March 25, 2015Open Hardware for All - Webinar March 25, 2015
Open Hardware for All - Webinar March 25, 2015
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Microservices Network Architecture 101

  • 1. v Microservices Network Architecture 101 Dinesh G Dutt May 26, 2016
  • 2. Agenda Microservices: Evolution of Application Architecture Container Networking 101 Container Networking 101-Alt May 29, 2016 Cumulus Networks Confidential 2
  • 3. Key Takeaways Microservices are the latest step in evolution of application architecture  Make app development faster, apps more scalable, adaptable Container networking has two primary modes: single host and multi-host Using existing well-known techniques, multi- host container networking can be made quite easy May 29, 2016 Cumulus Networks Confidential 3
  • 4. May 29, 2016 Cumulus Networks Confidential 4 •Evolution of Microservices
  • 5. Monolithic App Running On Mainframe May 29, 2016 cumulusnetworks.com 5
  • 6. Client-Server Architecture: Monolithic Server May 29, 2016 cumulusnetworks.com 6 LAN
  • 7. May 29, 2016 cumulusnetworks.com 7 Web Front-end Application Database Internet Client-Server Architecture: Server Split Into Three, Handle More Clients
  • 8. May 29, 2016 cumulusnetworks.com 8 Web Front-end Application Database Web Front-end Application Database Web Front-end Application Database Internet Server Virtualization, Multiple Instances of Servers
  • 9. May 29, 2016 cumulusnetworks.com 9 Internet Microservices Architecture: Devolving The Application Even More
  • 10. Microservices Are Popular Now Because … They address a set of issues that plague the fast-paced, highly scalable, ever evolving world of modern software  Reliability  Scalability  Faster development and release cycles  Reduces barrier to entry for new frameworks and technologies May 29, 2016 Cumulus Networks Confidential 10
  • 11. May 29, 2016 Cumulus Networks Confidential 11 •Distributed system design, and therefore communications, is at the heart of Microservices
  • 12. For More About Microservices https://www.nginx.com/blog/introduction-to- microservices/  Excellent 7 part article about Microservices  Doesn’t cover networking May 29, 2016 Cumulus Networks Confidential 12
  • 13. Linux Containers (LXC) If Microservices are the genotype, containers are the phenotype Containers a.k.a. LXC is a system isolation method provided in Linux that’s lighter than VM, but heavier than solutions such as chroot or systemd-nspawn  Doesn’t assume entire OS is isolated  Underlying OS is common across all containers May 29, 2016 Cumulus Networks Confidential 13
  • 14. Container Landscape May 29, 2016 Cumulus Networks Confidential 14 Linux kernel (cgroups, namespaces) Docker Rocket (CoreOS)OpenVZ App App App
  • 15. May 29, 2016 Cumulus Networks Confidential 15 •Container Communication
  • 16. May 29, 2016 Cumulus Networks Confidential 16 Topology is simulated in Vagrant  Switches are running Cumulus VX 3.0.0 box  Hosts are running williamyeh/ubuntu- trusty64-docker box  BGP between leaf and spine (L3 fabric) spine-1 spine-2 leaf-1 host-11 host-12 host-21 host-22
  • 17. Docker Networking Options May 29, 2016 Cumulus Networks Confidential 17 Single Host  Bridged (default)  Host mode  None  MacVlan  IPVlan Multi Host  Overlay • Flannel  MacVlan  IPVlan  Bridged
  • 18. Bridged Mode With Docker Container: Default May 29, 2016 Cumulus Networks Confidential 18 10.1.20.1 10.1.20.11 eth0 docker0 172.17.0.4 172.17.0.1 172.17.0.3 172.17.0.2  All containers connected to the bridge can talk to each other and to the host  Host bridge interface (docker0) is the gateway to talk to host  Entities outside the host cannot communicate with the container  IPAM is default assignment by docker from subnet specified  Can start container with a specific IP address in bridge subnet
  • 19. Default Allowed Communication In Bridged Mode May 29, 2016 Cumulus Networks Confidential 19 10.1.20.1 10.1.20.11 eth0 docker0 172.17.0.4 172.17.0.1 172.17.0.3 172.17.0.2 docker1 172.16.1.1 172.16.1.2 X • Router cannot ping 172.16.1.x or 172.17.0.x, but 172.16.1.x or 172.17.0.x can ping 10.1.2.1 • Router is not aware of the reachability to 172.x network, by default • Can start docker such that containers are also isolated from each other
  • 20. Single Host Networking: NAT always for External Communication May 29, 2016 Cumulus Networks Confidential 20
  • 21. Multi-host Networking Introduced in docker version Uses VxLAN overlay to connect L2 networks Complex setup:  Build a machine with a key-value store daemon  All machines to be in multi-host mode need access to this KV store  Need docker swarm May 29, 2016 Cumulus Networks Confidential 21
  • 22. May 29, 2016 Cumulus Networks Confidential 22 •A Networking Dude looks at Multi- host Networking
  • 23. What NAT ? NAT exists to allow docker containers to run in cloud VMs and not expose themselves via private IP addresses This is not typically the use case for folks deploying containers in their own DC So, what can we do for such folks ? May 29, 2016 Cumulus Networks Confidential 23
  • 24. Simplified Multi-host Routing Turn off NAT Assign non-default IP addresses to docker bridges Run routing protocol on the host to announce these addresses  Or use a giant L2 network with each host doing IPAM over an allocated range May 29, 2016 Cumulus Networks Confidential 24
  • 25. Simplified Multi-host Routing In brief:  Using the straight up linux bridging driver for containers coupled with routing on the host gives you multi-host container communication  Using straight up Linux iptables provides the microsegmentation between containers May 29, 2016 Cumulus Networks Confidential 25
  • 27. Why More Choices ? Problems with existing models:  Bridging the default way involves NAT for external communication • NAT is not scalable, performance issues  Ability to assign IP addresses to containers without regard to bridge subnet May 29, 2016 Cumulus Networks Confidential 27
  • 28. MacVlan Model May 29, 2016 Cumulus Networks Confidential 28 Constructs multiple MAC addresses based on original MAC address of parent interface (eth0 in picture) Containers attach to the parent interface directly, no bridge Containers have an IP address allocated from the bridge subnet where bridge is upstream (typically a bridge/VLAN in the ToR) 10.1.20.1 10.1.20.11 eth0 10.1.20.3 10.1.20.210.1.20.4 • docker network create –d macvlan –-subnet=10.1.20.0/24 –-gateway=10.1.20.1 -o parent=eth0 mcv1 • docker run –net=mcv1 –it ubuntu bash
  • 29. IPVlan: L3 Mode May 29, 2016 Cumulus Networks Confidential 29  Ipvlan interface is created attached to an existing interface (eth0, for eg)  Container interfaces attach to this ipvlan interface  Container IPs MUST be allocated manually (no IPAM)  Containers connected to same parent can communicate with each other, even if they’re in different subnets  All broadcast/multicast dropped 10.1.20.1 10.1.20.11 eth0 20.1.1.12/24 12.2.1.2/3010.0.1.11/24 • docker network create –d ipvlan –-subnet=10.1.20.0/24 --subnet=20.1.1.0/24 -o ipvlan_mode=l3 –o parent=eth0 ipv1 • docker run –net=ipv1 –ip=10.1.20.11 –it ubuntu bash
  • 30. May 29, 2016 Cumulus Networks Confidential 30 •Container Frameworks
  • 31. Why Do We Need Container Frameworks ? Multi-host containers require more than communication simplification:  Cluster management  Job scheduling  Policy (simple or complex ones)  Service discovery  Event-driven models  Lifecycle management May 29, 2016 Cumulus Networks Confidential 31
  • 32. Swarm/Kubernetes/Mesos/Weave Microservices Landscape May 29, 2016 Cumulus Networks Confidential 32 Linux kernel (cgroups, namespaces) App App App Docker Rocket (CoreOS)OpenVZ
  • 33. Swarm/Kubernetes/Mesos/Weave Microservices Landscape May 29, 2016 Cumulus Networks Confidential 33 Linux kernel (cgroups, namespaces) App App App Docker Rocket (CoreOS)OpenVZ Calic o
  • 34. What Did I Not Cover Network plugins Host mode Flannel use  Came out of CoreOS, similar to overlay mode in docker  Apparently not used much with docker  One use case is with Kubernetes, but its not really required there, as per our last webinar May 29, 2016 Cumulus Networks Confidential 34
  • 35. Summary Microservices are the next evolution in building scalable, resilient, agile applications Container networking has many new and moving parts, but at the heart linux bridging and iptables are good enough Running a routing protocol on the host simplifies multi-host container networking May 29, 2016 Cumulus Networks Confidential 35
  • 36. May 29, 2016 Cumulus Networks Confidential 36 •Operationalizing Linux VRF in the Data Center •Guest: David Ahern, Primary VRF Author in the Linux kernel •When: June 23 Next Month’s Webinar
  • 37. © 2016 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis. ThankYou! Cumulus Networks Confidential 37May 29, 2016