Distributed applications: A challenge for systems, …...Computer Networks Group Universität...
Transcript of Distributed applications: A challenge for systems, …...Computer Networks Group Universität...
Computer Networks Group Universität Paderborn
Distributed applications: A challenge for systems, networks, and application development
Holger Karl Paderborn University
Claims
• Developing and deploying applications: Together
• Buzzword: Continuous software engineering, CI/CD
• Deploying: Applications and infrastructure
• Buzzword: Infrastructure as code
• Education issues
CleanSky 2017, Göttingen 2
Key ingredients
3
Applications
Distributed Cloud
Computing
Network Function
Virtualization ?
CleanSky 2017, Göttingen
Software-defined networking
Developing old school
• Monolithic IDEs producing monolithic code
4
Code
CleanSky 2017, Göttingen
Deploying?
5
Code ???
CleanSky 2017, Göttingen
Deploying, old school
• Great for single application, single machine
6 CleanSky 2017, Göttingen
Developing, ca. 2017
• Own code, plus tons of modules, libraries, microservices, …
7
Code Code Code Code
CleanSky 2017, Göttingen
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
CleanSky 2017, Göttingen
Setup after deployment
9
VM
Code
DNS
CleanSky 2017, Göttingen
Deploying complex applications – Manually
• Getting slightly less great
10
• Anything real will need multiple machines
Tell frontend how to talk to backend: IP, ports, keys, …
Tell backend which frontend to accept: IP, ports, keys, …
CleanSky 2017, Göttingen
Setup after deployment
11
VM Front- end
DNS
VM Back end
CleanSky 2017, Göttingen
Scaling out?
• Load increases: need another frontend
12
Start second frontend
Integrate it with backend
CleanSky 2017, Göttingen
Scaling out?
• But wait, there’s more:
• Becoming not so great
13
Distribute traffic to two frontends: Loadbalancer
needed
Firewall needs to be told to allow traffic
DNS should point to
loadbalancer
CleanSky 2017, Göttingen
Setup after deployment
14
VM Front- end1
DNS
VM Back end
VM Front- end2
VM Load-
balancer
CleanSky 2017, Göttingen
Frontends at different sites?
• Wouldn't this make more sense?
15
VM Front- end1
DNS
VM Back end
VM Front- end2
CleanSky 2017, Göttingen
Deploying frontends at remote sites
• Definitely not great!
16 CleanSky 2017, Göttingen
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
17 CleanSky 2017, Göttingen
Issues
18
Describe Deploy Configure
Front- end
Back-end
CleanSky 2017, Göttingen
Describing complex applications – Templates
• Templates describe components in an application • Needs
• Which components • How interconnected • How to scale • Where to place
19 CleanSky 2017, Göttingen
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
20 CleanSky 2017, Göttingen
Docker/Kubernetes example: Guestbook application
21
https://github.com/kubernetes/kubernetes/blob/release-1.2/examples/guestbook/all-in-one/guestbook-all-in-one.yaml
CleanSky 2017, Göttingen
Templates, as they should be
• Quantitative annotations • From profiling
• Scaling options • …
22
Front- end
Back-end
Fire-wall
Load-balancer
Data-base
1000 200
5000
CleanSky 2017, Göttingen
Services?
• “Ordinary” application boxes?
• “Network” functions?
• What’s the key, pivotal difference?
CleanSky 2017, Göttingen 23
Fire-wall
Load-balancer
Front- end
Back-end
Data-base
Claim: None!
• There is no inherent difference between
• microservices • network functions
• Differences are a historical, ecosystem-based coincidence • E.g., separate orchestrators, …
CleanSky 2017, Göttingen 24
Mid-term goal: Merge NFV and (D)CC
25
DCC
NFV
CleanSky 2017, Göttingen
Crossing from VNFs to SDN?
• Example: Load balancer • Given as a VNF • Or as SDN rules
• Decide which one? • Automatically convert?
• Open!
CleanSky 2017, Göttingen 26
Mid-term goal: Merge NFV, DCC, SDN
27
DCC
NFV
LANMAN 2016
SDN
Applications become more complex
• Application = Actual application + networking
CleanSky 2017, Göttingen 28
Fire-wall
Load-balancer
Back-end
Front- end
Application Application
components/ microservices
Networking components
(SDN or NFV)
Quantitative templates
Remember
Developer knows best!
CleanSky 2017, Göttingen 29
Example template: Quantitative scaling
CleanSky 2017, Göttingen 30
M. Keller, C. Robberts, H. Karl: Template Embedding: Using Application Architecture to Allocate Resources in Distributed Clouds, UCC 2014
Example template: Reordering
CleanSky 2017, Göttingen 31
S. Mehraghdam, M. Keller, H. Karl: Specifying and Placing Chains of Virtual Network Functions, CloudNet 2014
Issues
32
Describe Deploy Configure
Fire-wall
Fire-wall
Front- end
Back-end
Load-balancer
Data-base Front-
end
Front- end
CleanSky 2017, Göttingen
Deploying?
• Scaling? • Placement? • Lifecycle
management?
CleanSky 2017, Göttingen 33
• Where to put which component?
• Virtual network embedding
– NP-hard
• Embedding scalable templates: generalization • Still solvable with good
heuristics
• When to start, stop, migrate state of a component
One-size-fits-all solution?
• Use a single, “perfect” deployment scheme? • Independent of application?
• Remember: Developer knows best! • SotA: Some parameterization exists, but limited in flexibility
• E.g., Kubernetes
• No! Need bespoke deployment, orchestration schemes!
CleanSky 2017, Göttingen 34
Developer knows best!
• Application = Orchestration + actual application + networking • UNIFY, SONATA, ...
CleanSky 2017, Göttingen 35
Fire-wall
Load-balancer
Back-end
Front- end
Place-ment
Life- cycle
Application Bespoke
orchestration!
Reality check: Networking
• Networking: SDN controller applications • Create network topology for application • Developer support? Legacy?
CleanSky 2017, Göttingen 36
Fire-wall
Load-balancer
Back-end
Front- end
Place-ment
Life- cycle
Application
Bespoke networking!
SDN controller
High-level architecture
CleanSky 2017, Göttingen 37
Application Orchestrator
Front- end
NFV orchestrator
Cloud orchestrator
Fire-wall
Load-balancer
Back-end
Front- end
Place-ment
Life- cycle
Reality check: Developer
Developer knows best?
CleanSky 2017, Göttingen 38
Developer knows best?
CleanSky 2017, Göttingen 39
Fire-wall
Load-balancer
Back-end
Front- end
Place-ment
Life- cycle
Application
Reality check: Develop SDN network applications
• NetIDE: Bring SDN closer to developers • Supporting legacy applications on controller frameworks
CleanSky 2017, Göttingen 40
P. A. Aranda Gutiérrez et al., NetIDE: All-in-one framework for next
generation, composed SDN applications, NetSoft Demo, 2016
http://www.netide.eu
NetIDE: Ease developer’s tasks by SDK
CleanSky 2017, Göttingen 41
P. A. Aranda Gutiérrez et al., NetIDE: All-in-one framework for next
generation, composed SDN applications, NetSoft Demo, 2016
Reality check: Templates
• Ideal developer writes perfect templates • Real developer?
• Option: semi-automatic generation?
• Based on semantic understanding of components
CleanSky 2017, Göttingen 42
https://sfb901.uni-paderborn.de
Reality check: Orchestration with 3rd party modules?
• Run code from outside application inside an orchestration platform? • Security, isolation, conflicts, …?
• Sure – as microservices! • SONATA (5G PPP): microservices-based orchestration
CleanSky 2017, Göttingen 43
http://sonata-nfv.eu
SONATA: Architecture overview
CleanSky 2017, Göttingen 44
Challenge: Education!
• Teaching curricula: Integrate networking, distributed systems, virtualization
• Continuous education
CleanSky 2017, Göttingen 45
Conclusion
• NFV and (D)CC need to merge; SDN integrated
• Developers and Ops need to understand that • DevOps for complex, distributed applications
• Research & education task
CleanSky 2017, Göttingen 46