Orchestration is

(necessary)

bad

#0: who am I?

Piotr Stapp

Piotr Stapp

  • CEO @ Dotnetomaniak
  • VP @ devWarsztaty
  • Head architect @FinAi
  • M.Sc (distction) Oxford Brooks University in Web Tech
  • M.Sc. Warsaw University of Technology in Computer Science
  • Microsoft MVP

 

  • Rzemiosło.IT speaker x 3

#1: History

(or architecture)

If you can’t feed a team with two pizzas, it’s too large. That limits a task force to five to seven people, depending on their appetites 

 

Jeff Bezos

Why two pizza rule?

\Huge\tfrac{n*(n-1)}{2}
%n = # of people

n = # of people

How many links are in your group?

 => 15 links

 => 66 links

=> 1225 links

\tfrac{n*(n-1)}{2}

Two-pizza team (n=6) 

2x two-pizza team

My company (~50 ppl)

Important dates

  • 2007.02 -> RabbitMQ initial release -(1.0.0-alpha)
  • 2010.10 -> AngularJS initial release
  • 2011.05-> "microservice" term in Venice
  • 2012.05 -> James Lewis - Micro services - Java, the Unix Way at Kraków
  • 2013.03 -> Docker debuted at PyCon
  • 2013.05 -> React initial release
  • 2014.02 -> Vue.js initial release
  • 2014.03 -> Docker 0.9 released
  • 2014.06 -> Kubernetes initial release
  • 2014.11 -> Docker annouced for AWS EC2
1

#2 Arch VS. release

???

From spaghetti to ...

(simple one)

by @gutek

Repeat & repeat

A bit lasagna and ravioli

by @gutek

"IKEA" release

Modern one

by @gutek and me :)

and ....

Title Text

Who runs the world?

Who runs the world?

The new kingmakers

The new kingmakers

#3 Kubernetes

or K8S (k12345678s)

From standard

by @gutek

to K8S pods

 

by @gutek

Uwaga: NIEBEZPIECZEŃSTWO

to K8S

1000 words

YAML

apiVersion: apps/v1
kind: Deployment
metadata:
  name: #{ApplicationName}#
spec:
  selector:
    matchLabels:
      app: #{ApplicationName}#
  replicas: 2
  template:
    metadata:
      labels:
        app: #{ApplicationName}#
    spec:
      containers:
      - name: #{ApplicationName}#
        image: #{image}#
        ports:
        - containerPort: 80
---
kind: Service
apiVersion: v1
metadata:
  name: #{ApplicationName}#
spec:
  selector:
    app: #{ApplicationName}#
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  type: ClusterIP
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: #{ApplicationName}#
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: internal
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: #{ApplicationName}#
          servicePort: 80
    host: #{ApplicationName}#-app-#{EnvironmentName}#.internal.comapny.com
  tls:
    - secretName: internal.comapny.com
      hosts:
        - #{ApplicationName}#-app-#{EnvironmentName}#..internal.comapny.com

DEMO :)

Deployment strategies

#4 Future

or not

Next one

Kubernetes-based event-driven autoscaling.

by

Serverless in server room

#5 Bad things

or sum-up

Pets VS. cattle

Reklama :)

Najbliższa edycja we wrześniu:

 

Napisz do mnie na

piotr.stapp@gmail.com

a dostaniesz dodatkowy bonus

 

 
Pytania?
 

Pamiętaj o kursie we wrześniu

i napisz do mnie na

piotr.stapp@gmail.com

a dostaniesz dodatkowy bonus

 

orchestration is bad - rzemioslo.it

By Piotr Stapp

orchestration is bad - rzemioslo.it

  • 113