In diesem Vortrag gehen wir der Frage nach, wie IT Architektur im Zeitalter von Cloud und DevOps ausgestaltet werden soll. Welchen Einfluss haben die Veränderungen und Fortschritte der letzten Jahre auf Systeme und Prozesse. Wieso sind Innovation und Digitalisierung so wichtig? Was bedeutet 'cloud-native' eigentlich und wie soll ich denn nun meine Anwendungen bauen? Dazu sehen wir uns fünf Innovationsbereiche etwas näher an und analysieren ihren Einfluss auf unsere IT- und Lösungsarchitektur: Microservices und Container, Cloud und DevOps, BigData, IoT und last-but-not-least künstliche Intelligenz.
1. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF
HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH
The Big Five
IT Architektur Heute
Anatole Tresch, Principal Consultant AD-ZH
anatole.tresch@trivadis.com
Twitter: @atsticks
2. Agenda
1. Einführung
2. The Big "Five"
Microservices und Container
Cloud und DevOps
Big Data
IoT
Künstliche Intelligenz
3. Und in der Praxis?
3. Die guten alten Zeiten…
Schwarzwaldgipfel3 22.03.2018
• Anforderungen
• Spezifikationen
• Implementation
• Betrieb
-> Klare Ziele
-> Langfristig und relativ starr
7. Microservices
Schwarzwaldgipfel7 22.03.2018
• Entspricht weitgehend der Unix-Philosophie
(„Do One Thing and Do It Well“)
• Bounded Context
• APIs kapseln die Implementierungsdetails
• Isoliert
• Dezentralisiert und horizontal skalierbar
• Fehlertolerant
8. Vorteile von Microservices
Schwarzwaldgipfel8 22.03.2018
• Unabhängige Teams -> Skalierung agiler Entwicklungs-Prozesse
• Leicht weiterentwickelbar und ersetzbar
• Stabile Architektur
• Langfristig produktive Entwicklung
• Unabhängig voneinander skalierbar.
• Können gegen den Ausfall anderer Services abgesichert werden, so dass das
Gesamtsystem robust ist.
• Continuous Delivery ist einfacher.
• Einfache Modernisierung des Stacks.
9. Nachteile von Microservices
Schwarzwaldgipfel9 22.03.2018
• Zusätzliche Komplexität
• Netzwerk-Latenzen, Lastverteilung oder Netzwerkpartitionierung
• Grössere Ausfall-Wahrscheinlichkeit des Gesamtsystems
• Komplexe Softwareverteilung
• Hoher Aufwand für Migration bestehender Systeme
• Logging und Monitoring
• Unterschiedliche Zeitzonen der Clients UND Hosts
• CAP-Theorem (Verfügbarkeit vs. Konsistenz)
• Unterschiedliche Programmiersprachen und Software-Stacks
11. Vorteile von Containern
Schwarzwaldgipfel11 22.03.2018
• Portabilität
• Sehr effiziente Ressourcennutzung (CPU, RAM, FS)
• Restartability, einfaches Recovery
• Einfach zurücksetzbar
• Isolation der Laufzeitumgebung inkl. Abhängigkeiten
12. Nachteile von Containern
Schwarzwaldgipfel12 22.03.2018
• Isolation des Kernel ist komplex
• Update aller betroffener Container im Falle von Issues/Upgrades
• Vielfalt an Einstellungs- und Konfigurationsmöglichkeiten begünstigen Fehler (zB
privilegierte Container)
• Kontrolle bzgl. Qualität von Container-Repositories
13. Cloud
Schwarzwaldgipfel13 22.03.2018
• Bereitstellung von IT-Infrastruktur zB
Speicherplatz, Rechenleistung oder
Anwendungssoftware als Dienstleistung
• Zugriff über ein Rechnernetz ohne lokale
Installation.
• IaaS
• PaaS
• SaaS
• FaaS
17. DevOps in der Praxis
Schwarzwaldgipfel17 22.03.2018
• Automatisierung mit CI- und CD-Werkzeuge als „Deployment Pipeline“:
• Code – Entwicklung und Review, Versionskontrolle, Merge
• Build – Continuous-Integration-Tools, Build Status
• Test – Statische und dynamische Code-Analysen und Tests,
• Package – Ausliefern von binären Formaten
• Release – Change Management, Freigabe von Releases
• Configure – Configuration / Systems Management-Werkzeuge
• Monitor – Application performance, Kunden-Feedback
• Bekannte Tools: Docker, Jenkins, Ansible, Puppet
18. BigData
Schwarzwaldgipfel18 22.03.2018
• Datenmengen, welche
• zu groß
• zu komplex
• zu schnelllebig oder
• zu schwach strukturiert sind
um sie mit manuellen und herkömmlichen Methoden
der Datenverarbeitung auszuwerten.
19. BigData – «Big»
Schwarzwaldgipfel19 22.03.2018
• Volume
Umfang, Datenvolumen
• Velocity
Geschwindigkeit, mit der die Datenmengen generiert und transferiert werden
• Variety
Bandbreite der Datentypen und -quellen
20. BigData – «Data»
Schwarzwaldgipfel20 22.03.2018
• Geschäftsprozess-Verbesserungen in allen Funktionsbereichen, v.a. aber in
• Technologieentwicklung und Informationstechnik
• Marketing
• Vertriebs- und Servicesteuerung
• Trendforschung
• Prognosen
21. IoT
Schwarzwaldgipfel21 22.03.2018
• Internet der Dinge
• Vision einer globalen Infrastruktur
der Informationsgesellschaften
• Vernetzung physischer und
virtueller Gegenstände durch
Informations- und Kommunikationstechniken
• Anwendungsgebiete in allen Bereichen
24. Impact
Schwarzwaldgipfel24 22.03.2018
• Automatisierung intelligenten Verhaltens und
Maschinenlernen
• „Intelligenz“ ?
• Wegweisende Antriebskräfte der Digitalen Revolution
• Nachbildung menschenähnlicher Entscheidungsstrukturen
• Oftmals «nachgeahmte» Intelligenz:
• Simulation „intelligentes Verhalten“ mit einfachen
Algorithmen
Und in der Praxis?
25. Moderne Architektur in der Praxis
Schwarzwaldgipfel25 22.03.2018
• Viele Lösungsvarianten
• Verteilung ergibt neue Fragestellungen
• Kombination Alt und Neu
• Bewährte Konzepte hinterfragen
• Cloud Native Know How selten
26. Know How Beispiel – Web-Shop für …
Schwarzwaldgipfel26 22.03.2018
• Webshop
• 1 Datenbank
• 1 Business Tier (REST API)
• 1 Frontend
// Add a product
POST /cart/product/123
// View basket
GET /cart
// View products
GET /products
// Place Order
POST /order (with product data)
27. Know How Beispiel – Web-Shop
Schwarzwaldgipfel27 22.03.2018
• Aufteilen in Microservices
• Produkts API
• Order API
• Cart API
// Place Order
POST /order (with product data)
// View products
GET /products
// Add a product
POST /cart/product/123
// View basket
GET /cart
Service
Service
Service
28. Know How Beispiel – Web-Shop
Schwarzwaldgipfel28 22.03.2018
• Der «Produkt» Microservice
• REST Service
• Messaging Service
• Datastore Service
• Monitoring Service
// View products
GET /products
29. Know How Beispiel – Ein einfacher Web-Shop
Schwarzwaldgipfel29 22.03.2018
• Finale Microservice Architektur
-> Das sind bereits 12 Microservices!
Products Orders Cart
REST Service REST Service REST Service
Messagebus Messagebus Messagebus
Datastore Datastore Datastore
Monitoring Monitoring Monitoring
41. Schwarzwaldgipfel41 22.03.2018
Wir brauchen eine resiliente Software-Architektur
Wie müssen wir also unsere Systeme bauen, damit
wir nebst den Vorteilen auch einen reibungslosen
Betrieb hinkriegen?
47. Going Resilient…47 19.10.16
Resiliente Platformen
• Cloud Platformen
• Orchestrierung (zB Mesos, Kubernetes, Openshift)
• Software-Container
Eine Betrieb on-premise macht nur in wenigen Fällen Sinn.
Risiko der Cloud-Vendor-Abhängigkeit miteinbeziehen.
48. Going Resilient…48 19.10.16
Resilientes Software-Design
• Bounded Queues
• Fan out & quickest reply
• Circuit Breakers and Fail Fast
• Timeouts
• Throttling, Semaphores
• Failover
• Degradation of service level
49. DevOps
• DevOps bringt die nötige Flexibilität und Agilität
• Ohne DevOps werden die Systeme starr und unflexibel bleiben
• DevOps Plattformen können innert Stunden aufgebaut werden
• Kollaborative Arbeits- und Abrechnungsmodelle
• Pilotprojekte
50. Der Umgang mit Daten
• Storage ist günstig
• Daten in auswertbarer Form speichern
• Auswertungen on-the-fly
• Vorteile von no-sql nutzen
• Ereignisgesteuerte Konzepte, zB Event-Sourcing nutzen
• In der Cloud skalieren (Storage und CPU)
51. Künstliche Intelligenz
• Noch im Anfangsstadium
• Als Services in der Cloud beziehbar
• Wird viele manuelle Prozesse in Zukunft überflüssig machen oder stark
vereinfachen
53. Schwarzwaldgipfel53 22.03.2018
…eigentlich «nur» Microservices…
Wir wollten eine moderne Architektur…
…ok. Vielleicht noch etwas BigData und IoT,
Weil’s so cool ist..
DevOps gehört eh in die Charta der Menschenrechte
für Entwickler ;-)
Unsere Legacy-Systeme sind und vorerst mal egal…
54. Charakteristika einer modernen Cloud Architektur
Schwarzwaldgipfel54 22.03.2018
1. Skalierbarkeit
2. Microservices und Container
3. Elastic Load Balancing
4. APIs
5. DevOps und Continuous Deployment
6. Resilienz und Fehlertoleranz
7. Konnektivität
8. Data Collection
9. Monitoring