Distributed applications: A system/network/application code view · 2017-04-04 · • Own code,...
Transcript of Distributed applications: A system/network/application code view · 2017-04-04 · • Own code,...
![Page 1: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/1.jpg)
Computer Networks GroupUniversität Paderborn
Distributed applications: A system/network/application code view
Holger Karl Paderborn University
![Page 2: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/2.jpg)
Claims
• Developing and deploying applications: Together
• Deploying: Applications and infrastructure
• Education issues
2CloudNet 2016
![Page 3: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/3.jpg)
Key ingredients
3
Applications
Distributed Cloud
Computing
Network Function
Virtualization?
CloudNet 2016
![Page 4: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/4.jpg)
Developing, old school
• Monolithic IDEs producing monolithic code
4
CodeCloudNet 2016
![Page 5: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/5.jpg)
Deploying?
5
Code ???
CloudNet 2016
![Page 6: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/6.jpg)
Deploying, old school
• Great for single application, single machine
6CloudNet 2016
![Page 7: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/7.jpg)
Developing, ca. 2016
• Own code, plus tons of modules, libraries, microservices, …
7
Code Code CodeCode
CloudNet 2016
![Page 8: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/8.jpg)
Deploying using virtual machines
• Great for simple applications • Even inside, e.g., VMWare clusters
8
Customize a ready-made image to local needs
E.g., network addresses
CloudNet 2016
![Page 9: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/9.jpg)
Setup after deployment
9
VM
Code
DNS
CloudNet 2016
![Page 10: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/10.jpg)
Multiple machines!
• Anything real will need multiple machines • Web frontends• Backends: Application servers, … • Data bases
• With support: Load balancers, …
CloudNet 2016 10
![Page 11: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/11.jpg)
Deploying complex applications – Manually
• Getting slightly less great
11
Tell frontend how to talk to backend: IP, ports, keys, …
Tell backend which frontend to accepts:
IP, ports, keys, …
CloudNet 2016
![Page 12: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/12.jpg)
Setup after deployment
12
VMFront-end
DNS
VMBackend
CloudNet 2016
![Page 13: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/13.jpg)
Scaling out?
• Load increases: need another frontend
13
Start secondfrontend
Integrate itwith backend
CloudNet 2016
![Page 14: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/14.jpg)
Scaling out?
• But wait, there’s more:
• Becoming not so great
14
Distribute traffic totwo frontends: Loadbalancer
needed
Firewalls needsto be told toallow traffic
DNS shouldpoint to
loadbalancer
CloudNet 2016
![Page 15: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/15.jpg)
Setup after deployment
15
VMFront-end1
DNS
VMBackend
VMFront-end2
VMLoad-
balancer
CloudNet 2016
![Page 16: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/16.jpg)
Frontends at different sites?
• Wouldn't this make more sense?
16
VMFront-end1
DNS
VMBackend
VMFront-end2
CloudNet 2016
![Page 17: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/17.jpg)
Deploying frontends at remote sites
• Definitely not great!
17CloudNet 2016
![Page 18: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/18.jpg)
What do we need?
• Get rid of manual configuration via console
• Describing configuration of a composed application • Its actual application-oriented components • Support components like firewalls, … • Scaling properties
• Deploying such a composed application • Configuring underlying infrastructure
18CloudNet 2016
![Page 19: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/19.jpg)
Issues
19
Describe Deploy Configure
Front-end
Back-end
CloudNet 2016
![Page 20: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/20.jpg)
Describing complex applications – Templates
• Templates describe components in an application • Needs
• Which components • How interconnected • How to scale • Where to place
20CloudNet 2016
![Page 21: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/21.jpg)
Template examples
• OpenStack: HEAT Orchestration Template (HOT)• HEAT: OpenStack’s orchestration plugin• Composition, interconnected, limited scaling properties, single site
• Docker Swarm• Container-based (instead of VMs) • Relatively simple setup, easy generation
• Google Kubernetes• By and large similar to HOT
21CloudNet 2016
![Page 22: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/22.jpg)
Templates, as they should be
• Quantitative annotations• Scaling• …
22
Front-end
Back-end
Fire-wall
Load-balancer
Data-base
1000 200
5000
CloudNet 2016
![Page 23: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/23.jpg)
Example template: Quantitative scaling
CloudNet 2016 23
M. Keller, C. Robberts, H. Karl: Template Embedding: Using Application Architecture to Allocate Resources in Distributed Clouds, UCC 2014
![Page 24: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/24.jpg)
Developer knows best!
CloudNet 2016 24
![Page 25: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/25.jpg)
Issues
25
Describe Deploy Configure
Front-end
Back-end
Fire-wall
Load-balancer
Data-base
1000 200
5000
Fire-wall
Fire-wall
Front-end
Back-end
Load-balancer
Data-baseFront-
end
Front-end
CloudNet 2016
![Page 26: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/26.jpg)
Deploying?
• Scaling? • Placement? • Lifecylce
management?
CloudNet 2016 26
• Where to put which component?
• Virtual network embedding – NP-hard
• Embedding scalabletemplates: generalization• Still solvable with good
heuristics
• When to start, stop, migrate state of a component
![Page 27: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/27.jpg)
Developer knows best!
• Application = Orchestration + actual application + networking• UNIFY, SONATA, ...
CloudNet 2016 27
Fire-wall
Load-balancer
Back-end
Front-end
Place-ment
Life-cycle
ApplicationBespoke
orchestration!
![Page 28: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/28.jpg)
Mid-term goal: Merge NFV and DCC
28
DCC
NFV
CloudNet 2016
![Page 29: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/29.jpg)
Reality check: Networking
• Networking: SDN controller applications • Create network topology for application • Developer support? Legacy?
CloudNet 2016 29
Fire-wall
Load-balancer
Back-end
Front-end
Place-ment
Life-cycle
Application
Bespoke networking!
![Page 30: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/30.jpg)
Reality check: Developer
Developer knows best?
CloudNet 2016 30
![Page 31: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/31.jpg)
Developer knows best?
CloudNet 2016 31
Fire-wall
Load-balancer
Back-end
Front-end
Place-ment
Life-cycle
Application
![Page 32: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/32.jpg)
Example issue: Crossing from VNFs to SDN?
• Example: Load balancer • Given as a VNF• Or as SDN rules
• Decide which one? • Automatically convert?
• Open!
CloudNet 2016 32
![Page 33: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/33.jpg)
Reality check: Templates
• Ideal developer writes perfect templates • Real developer?
• Option: semi-automatic generation?• Based on semantic understanding of components
• Option: Education!
CloudNet 2016 33
![Page 34: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/34.jpg)
Challenge: Education!
• Teaching curricula: Integrate networking, distributed systems, virtualization
• Continuous education
CloudNet 2016 34
![Page 35: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/35.jpg)
Conclusion
• NFV and DCC need to merge
• Developers need to understand that
• Research & education task
CloudNet 2016 35
![Page 36: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/36.jpg)
Docker/Kubernetes example: Guestbook application
36
https://github.com/kubernetes/kubernetes/blob/release-1.2/examples/guestbook/all-in-one/guestbook-all-in-one.yaml
CloudNet 2016
![Page 37: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/37.jpg)
Example template: Reordering
CloudNet 2016 37
S. Mehraghdam, M. Keller, H. Karl: Specifying and Placing Chains of Virtual Network Functions, CloudNet 2014
f1 f2 LB
f3
f3
f3
LB
f3
f3
f3
f1 f2
f1 f2
f1 f2
![Page 38: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/38.jpg)
SONATA: Architecture overview
CloudNet 2016 38
InfrastructureInfrastructure
SSM
1
SSM
2
MANOFrameworkGa
tekeep
er
MessageBroker
ExecutiveMessageBroker
ServiceDecision
ServiceExecution M
onito
ringp
rocessorplugin
ExecutiveMessageBroker
InfrastructureAdaptor
Conflictresolution
SSM
1
SSM
2
SSM
n
SSM
n
Pluginmanagement
InfrastructureAbstraction
Or-Gk
Or-Rep
Infrastructure VNF
VNF
VNF
Repo
sitories
Monito
ring
Service
SSM
NFInfra
str.
SONATAServicePlatformPlatform
Catalogue
s
Gk-Cat
SSM
1
SSM
2
ExecutiveMessageBroker
VNFDecision VNFExecution
ExecutiveMessageBroker
SSM
1
SSM
2
SSM
n
SSM
n
ResourceMan
agem
ent
Slice
Man
agem
ent
NFVO VNFM
VNFAdaptor
VIMVIMVIM
![Page 39: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/39.jpg)
NetIDE: Bring SDN closer to developers
• Supporting legacy applications on controller frameworks
CloudNet 2016 39
P. A. Aranda Gutiérrez et al., NetIDE: All-in-one framework for nextgeneration, composed SDN applications, NetSoft Demo, 2016
![Page 40: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/40.jpg)
NetIDE: Bring SDN closer to developers
• Easing developer tasks
CloudNet 2016 40
P. A. Aranda Gutiérrez et al., NetIDE: All-in-one framework for nextgeneration, composed SDN applications, NetSoft Demo, 2016
![Page 41: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/41.jpg)
Reality check: Orchestration
• Run third-party code inside an operator’s orchestration platform?
• Challenge: Present abstract view, restrict actions
CloudNet 2016 41
![Page 42: Distributed applications: A system/network/application code view · 2017-04-04 · • Own code, plus tons of modules, libraries, microservices, … 7 Code Code Code Code CloudNet](https://reader033.fdocuments.net/reader033/viewer/2022050117/5f4d82ed68593756d475cb60/html5/thumbnails/42.jpg)
Buzzwords
• This talk so far: Participation
• Down the road: Anticipation
CloudNet 2016 42