distributed applications: a system/network/application code view · 2017-04-04 · • own code,...

42
Computer Networks Group Universität Paderborn Distributed applications: A system/network/application code view Holger Karl Paderborn University

Upload: others

Post on 16-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Buzzwords

• This talk so far: Participation

• Down the road: Anticipation

CloudNet 2016 42