1. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
HSR Gastvortrag CloudInf 17.10.2017
Wie nutzen wir Cloud Infrastruktur
Aarno Aukia
VSHN AG
2. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Agenda
●
Wer ist Aarno / VSHN ?
●
Was machen wir und für wen ?
●
Wie nutz(t)en wir Cloud Infrastruktur bisher ?
●
'Herausforderungen'
●
Container/Docker ?
●
Cloud Native Computing
●
Container Orchestration
●
Aufbau Container Plattform APPUiO.ch
3. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Wer bist Du ?
Aarno Aukia, CTO & co-founder
ETH → Google → Atrila → VSHN
@aarnoaukia http://about.me/aarno
VSHN - the DevOps Company
Seit 2014, aktuell 22 Personen in Zürich
Wir helfen Software-Entwicklern ihre
Applikationen agil und 24/7 auf beliebiger
Infrastruktur zu betreiben.
https://vshn.ch @vshn_ch
4. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Ops: Feuerwehr as a Service
5. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
DevOps: people, processes & tools
6. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Philosophie
7. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Warum Cloud Infrastruktur
●
Fokus auf DevOps: Automatisierung,
Deployment
●
Software, nicht Hardware
●
Infrastructure-as-a-Service weltweit
verfügbar
●
Cloud-Unabhängigkeit
8. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Wie nutz(t)en wir Cloud Infrastruktur bisher 1
●
Ca 800 managed Server
●
Ca 32000 monitored Services
●
Weltweit verteilt
●
Alle Konfiguration in GIT
●
Standardmässig in Backup & Monitoring
9. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Wie nutz(t)en wir Cloud Infrastruktur bisher 2
●
Virtuelle Server auf beliebiger
infrastruktur
●
Erstellt (je nach Anbieter/Technologie):
●
Manuell
●
Via API (Ansible oder Terraform)
●
Via API (control.vshn.net)
●
Bootstrapping
●
Cloudinit → Hostname, Zertifikat → Puppet
●
Manuell → Hostname, Zertifikat → Puppet
10. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Wie nutz(t)en wir Cloud Infrastruktur bisher 3
●
Puppet
●
Basic config
●
Users/keys/hashes/groups/sudoers/ssh/ntp/dns/r
epos/tzconfig/puppet/partitions/mounts/dhcp/ip
tables/Monitoring/Backup
●
Services
●
MySQL/PostgreSQL/MongoDB/Nginx/Varnish/etc
●
Inkl IPtables, Monitoring, Backup
●
Appservers
●
PHP/Python/Ruby/Java/Javascript/Golang/Rust/E
rlang/Elixir/etc
●
Inkl IPtables, Monitoring, Backup
11. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Wie nutz(t)en wir Cloud Infrastruktur bisher 4
●
Puppet
●
Applikationen ('Profile')
●
Jira/Confluence/Bitbucket/ELK/BGP/Gitlab/Postfi
x/DNS/DHCP/Jenkins/Nextcloud/LDAP etc
●
Mit den Services die die App benötigt (DB etc)
●
Inkl IPtables, Monitoring, Backup
12. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Wie nutz(t)en wir Cloud Infrastruktur bisher 5
●
Ansible
●
Maintenance
●
Updates
●
Cluster-Orchestrierung
13. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Wie nutz(t)en wir Cloud Infrastruktur bisher 6
●
Integration mit Cloud-Anbietern
●
Erstellen neue VMs/Services über API
●
Compute
●
Storage
●
Private/public Networks
●
BGP für HA auf IP-Ebene (Failover, Anycast)
●
Loadbalancer (zB AWS ELB)
14. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Beispiel Kundenapplikation
15. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Herausforderungen
●
Server Skalierung benötigt Minuten bis Stunden,
ggf manuelles Eingreifen nötig
●
Configuration Management auf Server-Level,
nicht auf Projekt/Deployment-Level
●
Dependencies in separatem GIT, separates
Koordinieren von Versionen etc
●
Hinzufügen von Services ist komplex, betrifft
mehrere Komponenten, viele bewegliche Teile &
Risiko
●
Abhängigkeiten zwischen Services zur Laufzeit
●
Skaliert OK nach oben, schlecht nach unten
16. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Soll-Zustand: Weihnachtswunschliste
●
Löst den build-ship-run Workflow, integriert in
CI/CD, DevOps und Self-Service-Portal
●
Isolierung von verschiedenen
Projekten/Services/Kunden untereinander
●
Löst die alltäglichen Software-Plattform
Probleme: unterbruchsfrei deployen, skalieren,
Monitoring, Backup, Logs, Metriken, etc
●
Offene Standards: 100% Open Source
●
Kein Anbieter Lock-In, cloud-native nicht cloud-
only, funktioniert auf beliebiger Infrastruktur
●
Erweiterbar via API
17. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Docker
Container Laufzeitumgebung
Tools für Container Image Erstellung
'Dockerfile' beschreibt Umgebung, kann
automatisch erstellt und schnell gestartet werden
Verpackt Applikationscode, Applikationsserver,
Plugins, Module, Libraries bis zur Libc
'Motiviert' zum sauberen Umsetzen des 12-Factor-
App-Pattern
https://blog.vshn.ch/2016/11/docker
https://github.com/docker/docker-ce/blob/maste
r/components.conf
18. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
12 Factor App Patterns: https://12factor.net/de/
●
deklarative Formate benutzen für die
Automatisierung der Konfiguration
●
einen sauberen, portablen Vertrag mit dem
zugrundeliegenden Betriebssystem
●
sich für das Deployment auf modernen Cloud-
Plattformen eignen
●
die Abweichung minimieren zwischen
Entwicklung und Produktion, um Continuous
Deployment zu ermöglichen
●
Parallel/horizontal skalieren können
19. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
From container to production ?
20. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Cloud Native Computing 1/2
Software-Patterns und 'best practice'
Erfahrung für (verteilte) Software
Applikationen
●
Containerisiert
●
Dynamisch orchestriert
●
Microservice-orientiert
21. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Cloud Native Computing 2/2
●
Open Source Software implementation
von diesen Software-Patterns
●
Erfahrung & Code Austausch für die
'generischen' Probleme
●
Infra unabhängig
22. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
The Cloud Native Computing Foundation
●
https://www.cncf.io/
●
Unter-Stiftung der Linux Foundation
●
Gegründet 2015
●
https://www.cncf.io/about/members/
●
Cisco, CoreOS, Docker, Google, IBM, RH,
SUSE, Netapp, Dell, Fujitsu, Huawei, Intel,
Samsung, ATT, Canonical, Twitter, ebay,
Zalando, etc
23. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
https://www.cncf.io/projects/ 1/3
Kubernetes
container/service orchestration
Prometheus
metrics aggregation & alerting
OpenTracing
distributed service call tracing
Fluentd
log data collector
Linkerd
service call framework (discovery, routing,
failure handling, visibility)
24. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
https://www.cncf.io/projects/ 2/3
gRPC
multi-language service call framework
(data serialization, streaming, auth)
CoreDNS
DNS server for service discovery
Containerd
container runtime daemon (OCI runtime
(runC), OCI image spec)
Rkt
container runtime (App Container (appc)
spec)
25. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
https://www.cncf.io/projects/ 3/3
CNI
Container Network Interface - networking
for Linux containers
Envoy
Service Proxy
Jaeger
Distributed Tracing
26. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
27. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Warum Cloud Native Computing?
●
Software-Patterns lösen high-level
Probleme anstatt 'einfach Tool X nehmen'
●
Open Source && Open Standards
●
Support von breitem Konsortium
●
Läuft auf jeder Infrastruktur → cloud-
native nicht cloud-only
●
Applikations-Infrastruktur als Code
●
DevOps Philosophie
28. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Kubernetes
Container Orchestrator
●
Wieviele Container Instanzen sollen
laufen pro Service?
●
Auf welchen IP/Port/Server befinden sie
sich?
●
Wie finden sie sich?
●
Was passiert wenn ein Container/Server
verschwindet?
●
Skalierung, Load Balancing, rollende
Deployments, Persistent Storage, etc
29. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Kubernetes Beispiel
30. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Fluentd
Log shipper
●
Logs von verschiedenen Quellen
zusammensammeln
●
Logs an verschiedene Endpunkte
weiterleiten
●
500+ Plugins, schlanker Core
●
Plugins werden individuell und verteilt
weiter entwickelt
31. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Prometheus
Metriken und Alerting
●
Time Series Datenbank
●
Query Sprache
●
Visualisierung/Graphen
●
Alarmieren auf Schwellwerte
32. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Cloud Native Computing
Cloud Native Computing Switzerland
https://www.meetup.com/de-DE/Cloud-Nat
ive-Computing-Switzerland/
33. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
OpenShift
Produkt aus den Open-Source
Technologien
Benutzt Docker, Kubernetes,
Prometheus*, Fluentd, etc unter der
Haube
Zusätzlich: automatisiert den Container-
Buildprozess
Web-GUI, CLI client, REST-API
https://blog.vshn.ch/2016/08/openshift
https://github.com/openshift/origin
34. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
OpenShift
35. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Warum wir dies einsetzen
●
Volle Kontrolle über den Inhalt des Containers
für den Entwickler
●
Automatisierung des Container-Build- und
Deployment-Prozesses, Interaktion via
GUI/CLI/API
●
Plattform macht und abstrahiert Deployment,
Load Balancing, SSL, Skalierung, System-
Updates, Monitoring, Backups, Hardware,
Storage, Netzwerk, etc
●
Effizienter Betrieb der standardisierten
Plattform inkl. Docker, Kubernetes, etc
36. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
APPUiO.ch
●
Service-Produkt von VSHN
●
Managed Docker, Kubernetes, OpenShift
●
Shared Plattform in der Schweiz auf
Cloudscale.ch
●
Private Cluster auf beliebiger
Infrastruktur weltweit (AWS, Azure, on-
premises)
●
Monatliche kostenlose halbtägige
Schulungen: TechLabs
●
Ab Fr. 40/Mt
37. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
APPUiO.ch
38. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Demotime
Links:
https://github.com/arska/python-helloworld
https://github.com/openshift/django-ex
https://github.com/arska/nodejs-helloworld
https://github.com/arska/springdemo
https://github.com/arska/phpinfo
39. VSHN AG I Neugasse 10 I 8005 Zürich I T 044 545 53 00 www.vshn.ch
Danke!
Tönt das alles spanned?
Wir suchen Leute!
https://stackoverflow.com/jobs/143639/sit
e-reliability-engineer-sre-and-devops-eng
ineer-vshn
https://blog.vshn.ch → Jobs
@vshn_ch @aarnoaukia