distributed applications: a system/network/application code view · 2017-04-04 · • own code,...
TRANSCRIPT
Computer Networks GroupUniversität Paderborn
Distributed applications: A system/network/application code view
Holger Karl Paderborn University
Claims
• Developing and deploying applications: Together
• Deploying: Applications and infrastructure
• Education issues
2CloudNet 2016
Key ingredients
3
Applications
Distributed Cloud
Computing
Network Function
Virtualization?
CloudNet 2016
Developing, old school
• Monolithic IDEs producing monolithic code
4
CodeCloudNet 2016
Deploying?
5
Code ???
CloudNet 2016
Deploying, old school
• Great for single application, single machine
6CloudNet 2016
Developing, ca. 2016
• Own code, plus tons of modules, libraries, microservices, …
7
Code Code CodeCode
CloudNet 2016
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
Setup after deployment
9
VM
Code
DNS
CloudNet 2016
Multiple machines!
• Anything real will need multiple machines • Web frontends• Backends: Application servers, … • Data bases
• With support: Load balancers, …
CloudNet 2016 10
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
Setup after deployment
12
VMFront-end
DNS
VMBackend
CloudNet 2016
Scaling out?
• Load increases: need another frontend
13
Start secondfrontend
Integrate itwith backend
CloudNet 2016
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
Setup after deployment
15
VMFront-end1
DNS
VMBackend
VMFront-end2
VMLoad-
balancer
CloudNet 2016
Frontends at different sites?
• Wouldn't this make more sense?
16
VMFront-end1
DNS
VMBackend
VMFront-end2
CloudNet 2016
Deploying frontends at remote sites
• Definitely not great!
17CloudNet 2016
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
Issues
19
Describe Deploy Configure
Front-end
Back-end
CloudNet 2016
Describing complex applications – Templates
• Templates describe components in an application • Needs
• Which components • How interconnected • How to scale • Where to place
20CloudNet 2016
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
Templates, as they should be
• Quantitative annotations• Scaling• …
22
Front-end
Back-end
Fire-wall
Load-balancer
Data-base
1000 200
5000
CloudNet 2016
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
Developer knows best!
CloudNet 2016 24
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
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
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!
Mid-term goal: Merge NFV and DCC
28
DCC
NFV
CloudNet 2016
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!
Reality check: Developer
Developer knows best?
CloudNet 2016 30
Developer knows best?
CloudNet 2016 31
Fire-wall
Load-balancer
Back-end
Front-end
Place-ment
Life-cycle
Application
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
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
Challenge: Education!
• Teaching curricula: Integrate networking, distributed systems, virtualization
• Continuous education
CloudNet 2016 34
Conclusion
• NFV and DCC need to merge
• Developers need to understand that
• Research & education task
CloudNet 2016 35
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
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
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
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
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
Reality check: Orchestration
• Run third-party code inside an operator’s orchestration platform?
• Challenge: Present abstract view, restrict actions
CloudNet 2016 41
Buzzwords
• This talk so far: Participation
• Down the road: Anticipation
CloudNet 2016 42