Cloud Provider like AWS offer different ways to interact with their systems and to control it. One way are the typical Web UI, others are command line tools. But they also provide APIs for many programming languages. Using them many tasks can be automated, if wanted in a reactive way like Kubernetes does it in reconciliation loops.
Take a look in how this can be done with the programming language Go and as an example for AWS as cloud provider. In the end there's a hint leading to a private project for a multi-cloud provider reconciler library in Go.
HashiCorp, Cloud Orchestration, IaC
Über Terraform
Terraform in Action: erste Schritte
Oracle Bare Metal Cloud Services Grundlagen
Live Demo Kubernetes on Oracle BMCS mit TF
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
Kubernetes ermöglicht eine Automatisierung der Bereitstellung, Skalierung und Verwaltung von verteilten Docker-Container. Der Einstieg, die Umsetzung und Wartung hingegen ist eine extreme Herausforderung und kostet am Ende nicht nur viel Geld, sondern auch Ihre Nerven. Microsoft Azure bietet mit den Azure Kubernetes Services (Kurz AKS) die Erlösung, der soeben genannten Schmerzen. In dieser Session zeigt Ihnen der Docker- und Azure-Experte Gregor Biswanger einen Überblick von Kubernetes und wie einfach Azure für uns eine Kuberenetes-Landschaft herbeizaubern kann.
DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwaltenDevDay Dresden
Continuous Delivery setzt auf die Automatisierung von Entwicklungs- und Betriebsprozessen, um die Performance und Qualität in der IT zu erhöhen. Mit Terraform zeigte der Referent ein Tool, mit dessen Hilfe Infrastruktur effizient verwaltet werden kann.
Der Referent demonstrierte live den Aufbau einer Cloud-Infrastruktur aus virtuellen Instanzen, Netzen, Loadbalancing und DNS bei Amazon AWS. Weiterhin ging er auf Herausforderungen und Vorteile (immutable Infrastructure) ein, die sich dadurch bei der Implementierung von Continuous-Delivery-Pipelines für die Entwicklung und den Betrieb ergeben.
Kubernetes und Docker sind trotz des hohen Verbreitungsgrads noch relativ junge Technologien. Viele Menschen machen gerade gute und teilweise auch schmerzliche Erfahrungen mit beiden. Der Vortrag bietet einen Katalog an Patterns und Antipatterns bei der Entwicklung von Anwendungen auf Basis Kubernetes und Docker. Der Katalog repräsentiert dabei die Erfahrung aus mehreren Industrieprojekten, die es bis in Produktion geschafft haben.
Es geht darum, was man bei Docker-Files und Kubernetes-Deskriptoren richtig und falsch machen kann; welche Architekturbausteine man einsetzen sollte; wie die Continuous Delivery Pipeline gestaltet werden sollte und wie Anwendungen auf Cloud-Native-Plattformen gut betreibbar und diagnostizierbar gemacht werden können.
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
JavaLand 2018, Brühl: Vortrag von Josef Adersberger (@adersberger, CTO bei QAware).
Abstract:
Kubernetes und Docker sind trotz des hohen Verbreitungsgrads noch relativ junge Technologien. Viele Menschen machen gerade gute und teilweise auch schmerzliche Erfahrungen mit beiden. Der Vortrag bietet einen Katalog an Patterns und Antipatterns bei der Entwicklung von Anwendungen auf Basis Kubernetes und Docker. Der Katalog repräsentiert dabei die Erfahrung aus mehreren Industrieprojekten, die es bis in Produktion geschafft haben.
Es geht darum, was man bei Docker-Files und Kubernetes-Deskriptoren richtig und falsch machen kann; welche Architekturbausteine man einsetzen sollte; wie die Continuous Delivery Pipeline gestaltet werden sollte und wie Anwendungen auf Cloud-Native-Plattformen gut betreibbar und diagnostizierbar gemacht werden können.
HashiCorp, Cloud Orchestration, IaC
Über Terraform
Terraform in Action: erste Schritte
Oracle Bare Metal Cloud Services Grundlagen
Live Demo Kubernetes on Oracle BMCS mit TF
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
Kubernetes ermöglicht eine Automatisierung der Bereitstellung, Skalierung und Verwaltung von verteilten Docker-Container. Der Einstieg, die Umsetzung und Wartung hingegen ist eine extreme Herausforderung und kostet am Ende nicht nur viel Geld, sondern auch Ihre Nerven. Microsoft Azure bietet mit den Azure Kubernetes Services (Kurz AKS) die Erlösung, der soeben genannten Schmerzen. In dieser Session zeigt Ihnen der Docker- und Azure-Experte Gregor Biswanger einen Überblick von Kubernetes und wie einfach Azure für uns eine Kuberenetes-Landschaft herbeizaubern kann.
DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwaltenDevDay Dresden
Continuous Delivery setzt auf die Automatisierung von Entwicklungs- und Betriebsprozessen, um die Performance und Qualität in der IT zu erhöhen. Mit Terraform zeigte der Referent ein Tool, mit dessen Hilfe Infrastruktur effizient verwaltet werden kann.
Der Referent demonstrierte live den Aufbau einer Cloud-Infrastruktur aus virtuellen Instanzen, Netzen, Loadbalancing und DNS bei Amazon AWS. Weiterhin ging er auf Herausforderungen und Vorteile (immutable Infrastructure) ein, die sich dadurch bei der Implementierung von Continuous-Delivery-Pipelines für die Entwicklung und den Betrieb ergeben.
Kubernetes und Docker sind trotz des hohen Verbreitungsgrads noch relativ junge Technologien. Viele Menschen machen gerade gute und teilweise auch schmerzliche Erfahrungen mit beiden. Der Vortrag bietet einen Katalog an Patterns und Antipatterns bei der Entwicklung von Anwendungen auf Basis Kubernetes und Docker. Der Katalog repräsentiert dabei die Erfahrung aus mehreren Industrieprojekten, die es bis in Produktion geschafft haben.
Es geht darum, was man bei Docker-Files und Kubernetes-Deskriptoren richtig und falsch machen kann; welche Architekturbausteine man einsetzen sollte; wie die Continuous Delivery Pipeline gestaltet werden sollte und wie Anwendungen auf Cloud-Native-Plattformen gut betreibbar und diagnostizierbar gemacht werden können.
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
JavaLand 2018, Brühl: Vortrag von Josef Adersberger (@adersberger, CTO bei QAware).
Abstract:
Kubernetes und Docker sind trotz des hohen Verbreitungsgrads noch relativ junge Technologien. Viele Menschen machen gerade gute und teilweise auch schmerzliche Erfahrungen mit beiden. Der Vortrag bietet einen Katalog an Patterns und Antipatterns bei der Entwicklung von Anwendungen auf Basis Kubernetes und Docker. Der Katalog repräsentiert dabei die Erfahrung aus mehreren Industrieprojekten, die es bis in Produktion geschafft haben.
Es geht darum, was man bei Docker-Files und Kubernetes-Deskriptoren richtig und falsch machen kann; welche Architekturbausteine man einsetzen sollte; wie die Continuous Delivery Pipeline gestaltet werden sollte und wie Anwendungen auf Cloud-Native-Plattformen gut betreibbar und diagnostizierbar gemacht werden können.
http://www.opitz-consulting.com/go/3-6-11 --- Softwareentwicklung, -test und -betrieb können durch Virtualisierung viele Vorteile erzielen. In diesem Zusammenhang werden häufig Werkzeuge für die Bereitstellung von Umgebungen eingesetzt. Verschiedene Werkzeuge adressieren aber unterschiedliche Einsatzszenarien. Wo im Applikationslebenszyklus können diese Werkzeuge sinnvoll eingesetzt werden und wie sieht es mit Kosten und Nutzen aus? ---- Unser Senior Software Architect Richard Attermeyer stellte bei der W Jax am 5.11.2014 in München die Tools Vagrant, Puppet und Docker im Einzelnen vor und erläuterte ihren Nutzen anhand von Use Cases und Live Demos. ---- Weitere Infos: https://jax.de/wjax2014/sessions/vagrant-puppet-docker-fuer-entwickler-und-architekten ---- Über uns: Als führender Projektspezialist für ganzheitliche IT-Lösungen tragen wir zur Wertsteigerung der Organisationen unserer Kunden bei und bringen IT und Business in Einklang. Mit OPITZ CONSULTING als zuverlässigem Partner können sich unsere Kunden auf ihr Kerngeschäft konzentrieren und ihre Wettbewerbsvorteile nachhaltig absichern und ausbauen.---- Über unsere IT-Beratung: http://www.opitz-consulting.com/go/3-8-10 ---- Unser Leistungsangebot: http://www.opitz-consulting.com/go/3-8-874 ---- Karriere bei OPITZ CONSULTING: http://www.opitz-consulting.com/go/3-8-5
A Hitchhiker's Guide to the Cloud Native StackQAware GmbH
ContainerConf 2016, Mannheim: Vortrag von Mario-Leander Reimer (@LeanderReimer, Cheftechnologe bei QAware).
Abstract: Cloud-Größen wie Google, Twitter und Netflix haben die Kern-Bausteine ihrer Infrastruktur quelloffen verfügbar gemacht. Das Resultat aus vielen Jahren Cloud-Erfahrung ist nun frei zugänglich, und jeder kann seine eigenen cloud-nativen Anwendungen entwickeln – Anwendungen, die in der Cloud zuverlässig laufen und fast beliebig skalieren. Die einzelnen Bausteine wachsen zu einem großen Ganzen zusammen, dem Cloud Native Stack. In dieser Session stellen wir die wichtigsten Konzepte und Schlüssel-Technologien vor, und bringen dann eine Spring Cloud basierte Beispiel Anwendung schrittweise auf Kubernetes und DC/OS zum Laufen. Dabei diskutieren wir verschiedene praktikable Architektur-Alternativen.
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfMario-Leander Reimer
Cloud companies like Google, Twitter and Netflix have made the core building blocks of their infrastructure open source. As a result, their experience from several years is publicly available and everyone can now build cloud native applications – applications that run in the cloud reliably und scale almost arbitrarily. The individual open-source components have grown together to form something new: the cloud native stack. Cloud native applications follow three key principles: they are built and composed as microservices. They are packaged and distributed in containers. The containers are executed dynamically in the cloud. But which technology is best to build this kind of application? This talk will be your guidebook.
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaQAware GmbH
Mastering Kubernetes, Juli 2022, Franz Wimmer (@zalintyre, Senior Software Engineer bei QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
Observability ist eine entscheidende Komponente jeder ernsthaften Kubernetes-basierten Plattform. Nur so können der zuverlässige Betrieb Cloud-nativer Anwendungen und das schnelle Debugging kniffligster Probleme, die nur in der Produktionsumgebung auftreten, durch die Entwickler gewährleistet werden.
Die wesentlichen Säulen guter Observability sind Logs, Metriken und Traces. Es gibt eine große Anzahl kommerzieller Tools und SaaS-Anbieterr, welche die Aggregation und Analyse der relevanten Diagnosedaten unterstützen.
In diesem Vortrag verwenden wir hingegen einen vollständig auf Open-Source-Bausteinen basierenden Stack: Promtail zum Weiterleiten von Logs an Loki, Prometheus zum Sammeln von Metriken und Tempo zum Empfangen von Traces. Wir zeigen zudem, wie mit der neuen Exemplars-Storage-Funktion der schnelle Übergang von Metriken zu Traces und Logs möglich wird.
Eine Sammlung von Best Practices für Applikationen mit AngularJS. Der Vortrag stellt Strukturen und Konventionen vor, mit denen sich auch umfangreiche Applikationen wartbar und erweiterbar halten lassen.
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
JAX 2017, Mainz: Vortrag von Josef Fuchshuber (@fuchshuber, Cheftechnologe bei QAware) und Tobias Placht (@knacht, Software Ingenieur bei QAware).
Abstract: Wie oft kannst du ein neues Feature releasen? Jede Woche? Jeden Tag? Jede Stunde? Continuous Delivery ist einer der wesentlichen Treiber, warum wir Cloud-native Anwendung bauen. Für Software-driven Organisationen ist das der Schlüssel für eine sicherere, stabilere Software bei minimiertem Risiko und kurzen Feedbackschleifen. Die Herausforderung dabei ist, aus jeder Codeänderung möglichst schnell eine lauffähige und gründlich getestete Software zu machen. Das ist für viele Firmen ein wesentlicher Wettbewerbsvorteil. Wir zeigen in diesem Vortrag eine Werkzeugkette, mit der Continuous Delivery nicht nur für Cloud-native Anwendungen, sondern auch auf Cloud-nativer Infrastruktur möglich ist. Ganz im Gedanken von „Everything is Code“ betrachten wir dabei nicht nur das Bauen und Testen von Software, sondern auch die Automatisierung der Infrastrukturbereitstellung, der Deployments und Roll-outs. Dabei treffen alte Bekannte (z.B. Jenkins, SonarQube) auf Cloud-Computing-Technologien wie z.B. Docker für Betriebssystemvirtualisierung und DC/OS für das Clustermanagement.
english: (german see below)
target of this bkr-workflow framework is to use a workflow based framework wiithin your java-programms (micro-workflow) to improve operation and maintenance of your software system, exspecially for long running complex projects, where your staff is replaced during project runtime.
We developed it in a real software project with a project runtime of 7 yaers.
deutsch:
Ziel des bkr-workflow framework ist es die Weiterentwicklung und Pflege von Java Programmen in komplexen Softwareprojekten durch Einsatz eines workflow-frameworks (micro-workflow) sicherzustellen und zu verbessern. Dieses Vorgehen ist besonders gut geeignet um gleichartige Programmstrukturen zu erzeigen, auch wenn während der Projektlaufzeit wesentliche Teile der Mitarbeiter ersetzt werden müssen. Das System wurde im Rahmen eines komplexen Softwareentwicklungsprojektes entwickelt und dabei erfolgreich eingesetzt.
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“OPEN KNOWLEDGE GmbH
„Cloud is the new Normal”, so Andrew R. Jassy (CIO AWS). Was also liegt näher, als genau jetzt den Schritt in die Cloud zu wagen? Denn schließlich wollen wir ja alle irgendwie ein klein wenig „normal“ sein. Aber ist dieser Schritt wirklich so einfach, wie uns die verschiedenen Cloudanbieter glauben machen? Lässt sich eine klassische Enterprise-Architektur einfach so in die Cloud überführen oder bedarf es neuer Cloud-spezifischer Architekturmuster? Wie kann uns das Cloud Maturity Model dabei helfen? Und was steckt eigentlich hinter Akronymen wie IaaS, PaaS, BaaS, SaaS und FaaS?
Im Rahmen des Worskhops werde ich eine klassische Enterprise Anwendung Schritt für Schritt in die Cloud migrieren und dabei die verschiedenen Stufen / Reifegrade des Cloud Maturity Models durchlaufen. Angefangen bei "Lift & Shift" bis hin zu "Cloud Native" und "Cloud Voodoo – aka Serverless".
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalteninovex GmbH
Continuous Delivery setzt auf die Automatisierung von Entwicklungs- und Betriebsprozessen, um die Performance und Qualität im Applikationsbetrieb zu erhöhen. Hierbei ist Terraform ein passendes Werkzeug, mit dessen Hilfe Infrastruktur effizient verwaltet werden kann. Die Session erläutert den Aufbau einer Cloud-Infrastruktur bei Amazon AWS mit Terraform, bestehend aus virtuellen Instanzen, Netzen, Load Balancing und DNS. Die Herausforderungen und Vorteile (Immutable Infrastructure), die sich dadurch bei der Implementierung von Continuous-Delivery-Pipelines für die Entwicklung und den Betrieb ergeben, werden dann anhand des Beispiels diskutiert.
Event: JAX 2016, 20.04.2016
Speaker: Sascha Askani, inovex GmbH
Mehr Tech-Vorträge: https://www.inovex.de/de/content-pool/vortraege/
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Bernd Zuther
Immer mehr Unternehmen zerschlagen ihre Software-Systeme in kleine Microservices. Wenn das passiert, entstehen mehrere Deployment-Artefakte, was nicht nur das Deployment des Gesamtsystems komplexer macht. Um diese Komplexität beherrschen zu können und die Auslieferungsmöglichkeiten einer Software zu verbessern, ist der Einsatz von Werkzeugen zur Infrastruktur-Automatisierung unumgänglich.
Testgetriebene Entwicklung mit Jasmine und Karma hat sich mittlerweile schon als defacto-Standard etabliert. Routinen ohne Abhängigkeiten lassen sich damit ohne Probleme testen. Die Schwierigkeiten beginnen jedoch schon, wenn es um die Auflösung von Abhängigkeiten geht. In diesem Vortrag werden verschiedene Strategien und Werkzeuge vorgestellt, mit denen Abhängigkeiten zu Objekten und Funktionen oder zum Server abgedeckt werden können. Aber nicht nur Abhängigkeiten stellen Schwierigkeiten bei der testgetriebenen Entwicklung dar, auch der Umgang mit Fixtures ist bei der testgetriebenen Entwicklung mit JavaScript relevant. Abgerundet wird dieser Vortrag mit einigen Best Practices für die testgetriebenen Entwicklung mit JavaScript.
Modulare Infrastrukturen lösen Serversysteme ab, Paradigmenwechsel
Themen: wie Docker, Kubernetes spielen eine zunehmend eine große Rolle – Skalierbarkeit
Klassifizierung ist notwendig, auch im Oracle-Umfeld – hier WLS
Betrachtung Use-Cases: WLS (Docker und Kubernetes)
Bei der Konzeption von End-2-End-Tests ist eine der größten Problemstellungen die Frage, wie die Testausführung möglichst robust, reproduzierbar und parallelisierbar gestaltet werden kann. Diese Hürde lässt sich meist mit klassischen Ansätzen nicht überwinden.
Einen eleganten Ausweg bieten in Container verpackte Testumgebungen. Dadurch wird es möglich, einen definierten Systemstand reproduzierbar aufzurufen und Tests performant auszuführen. Anhand typischer E2E-Tests wird gezeigt, wie z. B. parallele GUI-Tests in verschiedenen Umgebungen zur Qualitätssicherung beitragen. Die Beispiele sind mit dem Open-Source-Tools „Sakuli“ und „Docker“ realisiert und testen Web- und Rich-Client-Applikationen. Um die Integration in eine Continous-Deployment-Pipeline zu demonstrieren, wird eine rein auf Container-Technologie basierende Testumgebung durch das CI-Tool Jenkins aufgebaut, um darauf automatisierte End-2-End-Tests headless zur Ausführung zu bringen.
Ziel ist es, dem Zuhörer aufzuzeigen, wie das Potenzial von Container-Technologien genutzt werden kann, um die Softwarequalität zu erhöhen und den manuellen Testaufwand drastisch zu verringern. Eine abschließende Bewertung der Erfahrungen sowie ein Ausblick auf weitere Einsatzszenarien und Entwicklungsschritte runden den Vortrag ab.
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenAlex Kellner
Wie kann ich ein komplexes Upgrade in TYPO3 ideal vorbereiten und strukturiert abarbeiten? Welche Stolperfallen gibt es zu beachten? Was sind die Erfolgsfaktoren?
Modell der Zusammenarbeit. Migration von Progress 4GL nach C#.NET Куранкова Татьяна
You will find this presentation in English on the web-site of the company Ispirer Systems
http://www.ispirer.com/products/brochures-white-papers-and-presentations
Die 2016 gegründete und inzwischen in der Eclipse Foundation beheimatete Initiative MicroProfile ist angetreten, die Lücke zwischen dem Enterprise-Java-Standard (Java EE aka EE4J) und den Praxisanforderungen Microservices-basierter Architekturen zu schließen. Das bestehende Momentum der JEE-Community als Hebel nutzen und organisch um den Bedarf der Microservices-Community ergänzen, so der Plan. Und dieser Plan scheint aufzugehen. In nur wenigen Monaten ist es gelungen, eine Reihe sinnvoller Microservices-relevanter APIs mit bestehenden Java-EE-7/8-APIs zu kombinieren und diese in regelmäßigen MicroProfile-Releases zu veröffentlichen. Egal ob Health Check, Metrics, Fault Tolerance, JWT Propagation, Configuration, Tracing oder Open API, MicroProfile scheint die richtigen Antworten – sprich APIs – im Gepäck zu haben. Die Session zeigt den aktuellen Stand von MicroProfile und demonstriert dessen Mehrwert anhand praktischer Beispiele.
Talk about the programming language Go and the feature of generics. Those have been added to the language with the version 1.18. To have more control about allowed generics Go also got type constraints as careful extension of the interfaces. Get insight into this powerful extension and how it can help you.
The document discusses moving from imperative APIs to declarative APIs. With declarative APIs, clients describe a desired state in documents rather than controlling how services execute tasks. Controllers are responsible for continuously reconciling the current state with the desired state described in documents. The approach aims to simplify distributed environments by centralizing business logic processing. Kubernetes is provided as an example of how controllers can subscribe to document changes and process reconciliations. Declarative APIs may also be useful for integrating commercial services.
http://www.opitz-consulting.com/go/3-6-11 --- Softwareentwicklung, -test und -betrieb können durch Virtualisierung viele Vorteile erzielen. In diesem Zusammenhang werden häufig Werkzeuge für die Bereitstellung von Umgebungen eingesetzt. Verschiedene Werkzeuge adressieren aber unterschiedliche Einsatzszenarien. Wo im Applikationslebenszyklus können diese Werkzeuge sinnvoll eingesetzt werden und wie sieht es mit Kosten und Nutzen aus? ---- Unser Senior Software Architect Richard Attermeyer stellte bei der W Jax am 5.11.2014 in München die Tools Vagrant, Puppet und Docker im Einzelnen vor und erläuterte ihren Nutzen anhand von Use Cases und Live Demos. ---- Weitere Infos: https://jax.de/wjax2014/sessions/vagrant-puppet-docker-fuer-entwickler-und-architekten ---- Über uns: Als führender Projektspezialist für ganzheitliche IT-Lösungen tragen wir zur Wertsteigerung der Organisationen unserer Kunden bei und bringen IT und Business in Einklang. Mit OPITZ CONSULTING als zuverlässigem Partner können sich unsere Kunden auf ihr Kerngeschäft konzentrieren und ihre Wettbewerbsvorteile nachhaltig absichern und ausbauen.---- Über unsere IT-Beratung: http://www.opitz-consulting.com/go/3-8-10 ---- Unser Leistungsangebot: http://www.opitz-consulting.com/go/3-8-874 ---- Karriere bei OPITZ CONSULTING: http://www.opitz-consulting.com/go/3-8-5
A Hitchhiker's Guide to the Cloud Native StackQAware GmbH
ContainerConf 2016, Mannheim: Vortrag von Mario-Leander Reimer (@LeanderReimer, Cheftechnologe bei QAware).
Abstract: Cloud-Größen wie Google, Twitter und Netflix haben die Kern-Bausteine ihrer Infrastruktur quelloffen verfügbar gemacht. Das Resultat aus vielen Jahren Cloud-Erfahrung ist nun frei zugänglich, und jeder kann seine eigenen cloud-nativen Anwendungen entwickeln – Anwendungen, die in der Cloud zuverlässig laufen und fast beliebig skalieren. Die einzelnen Bausteine wachsen zu einem großen Ganzen zusammen, dem Cloud Native Stack. In dieser Session stellen wir die wichtigsten Konzepte und Schlüssel-Technologien vor, und bringen dann eine Spring Cloud basierte Beispiel Anwendung schrittweise auf Kubernetes und DC/OS zum Laufen. Dabei diskutieren wir verschiedene praktikable Architektur-Alternativen.
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfMario-Leander Reimer
Cloud companies like Google, Twitter and Netflix have made the core building blocks of their infrastructure open source. As a result, their experience from several years is publicly available and everyone can now build cloud native applications – applications that run in the cloud reliably und scale almost arbitrarily. The individual open-source components have grown together to form something new: the cloud native stack. Cloud native applications follow three key principles: they are built and composed as microservices. They are packaged and distributed in containers. The containers are executed dynamically in the cloud. But which technology is best to build this kind of application? This talk will be your guidebook.
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaQAware GmbH
Mastering Kubernetes, Juli 2022, Franz Wimmer (@zalintyre, Senior Software Engineer bei QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
Observability ist eine entscheidende Komponente jeder ernsthaften Kubernetes-basierten Plattform. Nur so können der zuverlässige Betrieb Cloud-nativer Anwendungen und das schnelle Debugging kniffligster Probleme, die nur in der Produktionsumgebung auftreten, durch die Entwickler gewährleistet werden.
Die wesentlichen Säulen guter Observability sind Logs, Metriken und Traces. Es gibt eine große Anzahl kommerzieller Tools und SaaS-Anbieterr, welche die Aggregation und Analyse der relevanten Diagnosedaten unterstützen.
In diesem Vortrag verwenden wir hingegen einen vollständig auf Open-Source-Bausteinen basierenden Stack: Promtail zum Weiterleiten von Logs an Loki, Prometheus zum Sammeln von Metriken und Tempo zum Empfangen von Traces. Wir zeigen zudem, wie mit der neuen Exemplars-Storage-Funktion der schnelle Übergang von Metriken zu Traces und Logs möglich wird.
Eine Sammlung von Best Practices für Applikationen mit AngularJS. Der Vortrag stellt Strukturen und Konventionen vor, mit denen sich auch umfangreiche Applikationen wartbar und erweiterbar halten lassen.
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
JAX 2017, Mainz: Vortrag von Josef Fuchshuber (@fuchshuber, Cheftechnologe bei QAware) und Tobias Placht (@knacht, Software Ingenieur bei QAware).
Abstract: Wie oft kannst du ein neues Feature releasen? Jede Woche? Jeden Tag? Jede Stunde? Continuous Delivery ist einer der wesentlichen Treiber, warum wir Cloud-native Anwendung bauen. Für Software-driven Organisationen ist das der Schlüssel für eine sicherere, stabilere Software bei minimiertem Risiko und kurzen Feedbackschleifen. Die Herausforderung dabei ist, aus jeder Codeänderung möglichst schnell eine lauffähige und gründlich getestete Software zu machen. Das ist für viele Firmen ein wesentlicher Wettbewerbsvorteil. Wir zeigen in diesem Vortrag eine Werkzeugkette, mit der Continuous Delivery nicht nur für Cloud-native Anwendungen, sondern auch auf Cloud-nativer Infrastruktur möglich ist. Ganz im Gedanken von „Everything is Code“ betrachten wir dabei nicht nur das Bauen und Testen von Software, sondern auch die Automatisierung der Infrastrukturbereitstellung, der Deployments und Roll-outs. Dabei treffen alte Bekannte (z.B. Jenkins, SonarQube) auf Cloud-Computing-Technologien wie z.B. Docker für Betriebssystemvirtualisierung und DC/OS für das Clustermanagement.
english: (german see below)
target of this bkr-workflow framework is to use a workflow based framework wiithin your java-programms (micro-workflow) to improve operation and maintenance of your software system, exspecially for long running complex projects, where your staff is replaced during project runtime.
We developed it in a real software project with a project runtime of 7 yaers.
deutsch:
Ziel des bkr-workflow framework ist es die Weiterentwicklung und Pflege von Java Programmen in komplexen Softwareprojekten durch Einsatz eines workflow-frameworks (micro-workflow) sicherzustellen und zu verbessern. Dieses Vorgehen ist besonders gut geeignet um gleichartige Programmstrukturen zu erzeigen, auch wenn während der Projektlaufzeit wesentliche Teile der Mitarbeiter ersetzt werden müssen. Das System wurde im Rahmen eines komplexen Softwareentwicklungsprojektes entwickelt und dabei erfolgreich eingesetzt.
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“OPEN KNOWLEDGE GmbH
„Cloud is the new Normal”, so Andrew R. Jassy (CIO AWS). Was also liegt näher, als genau jetzt den Schritt in die Cloud zu wagen? Denn schließlich wollen wir ja alle irgendwie ein klein wenig „normal“ sein. Aber ist dieser Schritt wirklich so einfach, wie uns die verschiedenen Cloudanbieter glauben machen? Lässt sich eine klassische Enterprise-Architektur einfach so in die Cloud überführen oder bedarf es neuer Cloud-spezifischer Architekturmuster? Wie kann uns das Cloud Maturity Model dabei helfen? Und was steckt eigentlich hinter Akronymen wie IaaS, PaaS, BaaS, SaaS und FaaS?
Im Rahmen des Worskhops werde ich eine klassische Enterprise Anwendung Schritt für Schritt in die Cloud migrieren und dabei die verschiedenen Stufen / Reifegrade des Cloud Maturity Models durchlaufen. Angefangen bei "Lift & Shift" bis hin zu "Cloud Native" und "Cloud Voodoo – aka Serverless".
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalteninovex GmbH
Continuous Delivery setzt auf die Automatisierung von Entwicklungs- und Betriebsprozessen, um die Performance und Qualität im Applikationsbetrieb zu erhöhen. Hierbei ist Terraform ein passendes Werkzeug, mit dessen Hilfe Infrastruktur effizient verwaltet werden kann. Die Session erläutert den Aufbau einer Cloud-Infrastruktur bei Amazon AWS mit Terraform, bestehend aus virtuellen Instanzen, Netzen, Load Balancing und DNS. Die Herausforderungen und Vorteile (Immutable Infrastructure), die sich dadurch bei der Implementierung von Continuous-Delivery-Pipelines für die Entwicklung und den Betrieb ergeben, werden dann anhand des Beispiels diskutiert.
Event: JAX 2016, 20.04.2016
Speaker: Sascha Askani, inovex GmbH
Mehr Tech-Vorträge: https://www.inovex.de/de/content-pool/vortraege/
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Bernd Zuther
Immer mehr Unternehmen zerschlagen ihre Software-Systeme in kleine Microservices. Wenn das passiert, entstehen mehrere Deployment-Artefakte, was nicht nur das Deployment des Gesamtsystems komplexer macht. Um diese Komplexität beherrschen zu können und die Auslieferungsmöglichkeiten einer Software zu verbessern, ist der Einsatz von Werkzeugen zur Infrastruktur-Automatisierung unumgänglich.
Testgetriebene Entwicklung mit Jasmine und Karma hat sich mittlerweile schon als defacto-Standard etabliert. Routinen ohne Abhängigkeiten lassen sich damit ohne Probleme testen. Die Schwierigkeiten beginnen jedoch schon, wenn es um die Auflösung von Abhängigkeiten geht. In diesem Vortrag werden verschiedene Strategien und Werkzeuge vorgestellt, mit denen Abhängigkeiten zu Objekten und Funktionen oder zum Server abgedeckt werden können. Aber nicht nur Abhängigkeiten stellen Schwierigkeiten bei der testgetriebenen Entwicklung dar, auch der Umgang mit Fixtures ist bei der testgetriebenen Entwicklung mit JavaScript relevant. Abgerundet wird dieser Vortrag mit einigen Best Practices für die testgetriebenen Entwicklung mit JavaScript.
Modulare Infrastrukturen lösen Serversysteme ab, Paradigmenwechsel
Themen: wie Docker, Kubernetes spielen eine zunehmend eine große Rolle – Skalierbarkeit
Klassifizierung ist notwendig, auch im Oracle-Umfeld – hier WLS
Betrachtung Use-Cases: WLS (Docker und Kubernetes)
Bei der Konzeption von End-2-End-Tests ist eine der größten Problemstellungen die Frage, wie die Testausführung möglichst robust, reproduzierbar und parallelisierbar gestaltet werden kann. Diese Hürde lässt sich meist mit klassischen Ansätzen nicht überwinden.
Einen eleganten Ausweg bieten in Container verpackte Testumgebungen. Dadurch wird es möglich, einen definierten Systemstand reproduzierbar aufzurufen und Tests performant auszuführen. Anhand typischer E2E-Tests wird gezeigt, wie z. B. parallele GUI-Tests in verschiedenen Umgebungen zur Qualitätssicherung beitragen. Die Beispiele sind mit dem Open-Source-Tools „Sakuli“ und „Docker“ realisiert und testen Web- und Rich-Client-Applikationen. Um die Integration in eine Continous-Deployment-Pipeline zu demonstrieren, wird eine rein auf Container-Technologie basierende Testumgebung durch das CI-Tool Jenkins aufgebaut, um darauf automatisierte End-2-End-Tests headless zur Ausführung zu bringen.
Ziel ist es, dem Zuhörer aufzuzeigen, wie das Potenzial von Container-Technologien genutzt werden kann, um die Softwarequalität zu erhöhen und den manuellen Testaufwand drastisch zu verringern. Eine abschließende Bewertung der Erfahrungen sowie ein Ausblick auf weitere Einsatzszenarien und Entwicklungsschritte runden den Vortrag ab.
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenAlex Kellner
Wie kann ich ein komplexes Upgrade in TYPO3 ideal vorbereiten und strukturiert abarbeiten? Welche Stolperfallen gibt es zu beachten? Was sind die Erfolgsfaktoren?
Modell der Zusammenarbeit. Migration von Progress 4GL nach C#.NET Куранкова Татьяна
You will find this presentation in English on the web-site of the company Ispirer Systems
http://www.ispirer.com/products/brochures-white-papers-and-presentations
Die 2016 gegründete und inzwischen in der Eclipse Foundation beheimatete Initiative MicroProfile ist angetreten, die Lücke zwischen dem Enterprise-Java-Standard (Java EE aka EE4J) und den Praxisanforderungen Microservices-basierter Architekturen zu schließen. Das bestehende Momentum der JEE-Community als Hebel nutzen und organisch um den Bedarf der Microservices-Community ergänzen, so der Plan. Und dieser Plan scheint aufzugehen. In nur wenigen Monaten ist es gelungen, eine Reihe sinnvoller Microservices-relevanter APIs mit bestehenden Java-EE-7/8-APIs zu kombinieren und diese in regelmäßigen MicroProfile-Releases zu veröffentlichen. Egal ob Health Check, Metrics, Fault Tolerance, JWT Propagation, Configuration, Tracing oder Open API, MicroProfile scheint die richtigen Antworten – sprich APIs – im Gepäck zu haben. Die Session zeigt den aktuellen Stand von MicroProfile und demonstriert dessen Mehrwert anhand praktischer Beispiele.
Talk about the programming language Go and the feature of generics. Those have been added to the language with the version 1.18. To have more control about allowed generics Go also got type constraints as careful extension of the interfaces. Get insight into this powerful extension and how it can help you.
The document discusses moving from imperative APIs to declarative APIs. With declarative APIs, clients describe a desired state in documents rather than controlling how services execute tasks. Controllers are responsible for continuously reconciling the current state with the desired state described in documents. The approach aims to simplify distributed environments by centralizing business logic processing. Kubernetes is provided as an example of how controllers can subscribe to document changes and process reconciliations. Declarative APIs may also be useful for integrating commercial services.
This document discusses concurrency in Go and provides examples of using goroutines and channels for common concurrency patterns like background jobs, streaming data processing, and building services. It explains how goroutines allow running functions concurrently, and how typed channels enable goroutines to communicate and synchronize work through message passing. The examples demonstrate spawning goroutines, piping data between processes, and implementing a service backend that handles requests concurrently using a select statement.
Functions in Go provide a powerful, flexible and elegant way to organize code. They can be used to define simple logic, handle events and state machines, and manage concurrent processing. Functions are first-class types that can be passed around like any other value. This allows defining reusable logic through closures and implementing interfaces through anonymous functions. Combined with channels, functions enable building concurrent and asynchronous systems in a way that remains maintainable. Overall, Go's lightweight functions are a primary tool for organizing code across many domains.
Blockchains - Mehr als nur digitale WährungenFrank Müller
Eine Einführung in die Technologie der Blockchains und hier Speziell Ethereum als Chain mit Accounts und Smart Contracts, mit Whisper für das Peer-to-Peer Messaging und mit Swarm für Dateispeicherung.
Der Status von Ethereum heute sowie die Schritte für das nächste große Release und diverse Anwendungsfälle werden gezeigt.
Talk zum Thema Nebenläufigkeit auf der OOP 2016 in München. Neben einer prinzipiellen Einführung und Motivation werden die Sprachen Erlang/OTP, Google Go und Pony vorgestellt. Weiter sind einige typische Designmuster sowie Fallstricke enthalten. Der Vortrag hatte die Dauer von 90 Minuten.
Juju - Scalable Software with Google GoFrank Müller
The document discusses the results of a study on the effects of a new drug on memory and cognitive function in older adults. The double-blind study involved 100 participants aged 65-80 who were given either the drug or a placebo daily for 6 months. Researchers found that those who received the drug performed significantly better on memory and problem-solving tests at the end of the study compared to those who received the placebo.
RESTful Web Applications with Google GoFrank Müller
This document discusses building RESTful web applications with Google Go. It describes using Go's HTTP package to handle requests, creating a custom multiplexer to route requests based on path, defining handler interfaces to support CRUD operations, using contexts to pass request information to handlers, and marshaling data to JSON. An example shows stat, content, and tag handlers interacting to serve page and tag requests, with the stat handler asynchronously updating backend data.
Vortrag der OOP 2014
Ein Einstieg in die Software Juju für das Provisioning und die Konfiguration von Clouds sowie ein Überblick über Architekturaspekte.
Vortrag der OOP 2014
Überblick über die Vorteile der Programmiersprache Go für skalierbare Anwendungen sowie ein Einblick in hierbei zu beachtende Probleme und ihre Lösung.
An introduction into Googles programming language Go, which had its first release in March 2012. The talk has been held at the regulars' table of the GTUG Bremen.
4. • Cloud Provider wie AWS, GCP oder Azure ermöglichen die
Auslagerung von Rechenzentren
• Ressourcen und Dienste können gemietet werden
• Der Betrieb der Infrastruktur erfolgt durch die Cloud Provider
• Die Administration der Software und Dienste erfolgt durch den
Nutzer
• Hierfür werden Web UIs, Kommandozeilen-Programme und
APIs geboten
Externe Ressourcen und Dienste Frank Müller
5. •Erleichtern den Umgang mit
komplexen Infrastrukturen
•Skalieren gut
•Lassen sich hochverfügbar
betreiben
•Können Latenzen durch eine
weltweite Verteilung gering
halten
Anwendungen in der Cloud Frank Müller
7. • Anwendungen auf Abruf automatisch installieren
• Anwendungen aktualisieren und dazugehörige Konfigurationen,
Datenbank Schemata und weitere Dinge anpassen
• Backups einer Anwendung erstellen oder sie restaurieren
• Leader einer einen verteilten Anwendung ohne einen internen
Wahlprozess setzen
• Fehler im Cluster simulieren, um seine Widerstandsfähigkeit zu
testen
Handarbeit in Clouds vermeiden Frank Müller
9. • Kubernetes nutzt Controller mit Reconciliation Loops zur
Reaktion auf Ereignisse im Cluster
• Dieser Mechanismus kann auch für eigene Operatoren genutzt
werden
• Sie können sich für individuelle Ressourcen oder Ressourcen-
Typen registrieren
• Callbacks für die Operationen Add, Update und Delete
ermöglichen die Automatisierungen
Controller reagieren auf Veränderungen Frank Müller
11. • Ein Dokument (Custom Ressource) wird dem Cluster zur
Installation und Konfiguration von Microservices hinzugefügt
• Der entsprechende Operator wird hierüber informiert und liest
das Dokument aus
• Er installiert den Microservice mit allen individuellen
Konfigurationen und Komponenten auf Basis des Dokuments
• Bei Bedarf werden die Verbindung zu Datenbanken,
Dateisystemen, Message Queues und weiterem gesetzt
Zum Beispiel Microservices installieren Frank Müller
13. •AWS bietet eine flexible API
•Ressourcen lassen sich
gezielt oder gefiltert abfragen
•Anlage, Modifikation und
Löschung sind möglich
•Kein Subscribe auf
Änderungen
Eine umfangreiche API Frank Müller
14. •Eine Verbindung zu AWS wird
konfiguriert
•Auf dieses Basis verbindet
sich ein EC2 Client
•Eine Schleife fragt die
Instanzen gefiltert ab
•Diese können über Callbacks
verarbeitet werden
Ein einfacher Ansatz für EC2 Instanzen Frank Müller
16. • Entwicklung bei Google seit Ende 2007, erstes Release
November 2009
• Initial durch Robert Griesemer, Rob Pike und Ken Thompson
• Heute große Community
• Fokus liegt auf Geschwindigkeit, Nebenläufigkeit und Spaß
• Bis heute ist Go abwärtskompatibel
• Einsatz rund um Cloud-Native und Microservices
Die Programmiersprache Go Frank Müller
17. ❞
Go hat das Ziel, die Sicherheit und
Geschwindigkeit einer statisch typisierten
kompilierten Sprache mit der Ausdrucksstärke
und dem Komfort einer dynamisch typisierten
interpretierten Sprache zu verbinden.
Zudem soll die Sprache für moderne,
stark skalierende Systeme
geeignet sein.
–Rob Pike
18. • Syntax passt auf eine HTML-Seite
• Klare und wenig mehrdeutige Struktur der Sprache
• Type Inference und Garbage Collection erlauben ein Arbeiten
ähnlich wie in vielen dynamisch typisierten Sprachen
• Nebenläufigkeit unterstützt elastische Server-Anwendungen
• Compiling ist sehr schnell, Single Binary und Cross Compiling
erleichtern die Arbeit in heterogenen Umgebungen
Was Spaß macht Frank Müller
21. •Lädt die Konfiguration
•Stellt zentrale Informationen
und Funktionen zur Verfügung
•Unterstützt die Reconciler
Start mit einem zentralen Manager Frank Müller
22. package cloud
// Cloud manages all needed information to reconcile AWS services.
type Cloud struct {
ctx context.Context
cancel func()
cfg aws.Config
err error
}
Die Cloud verwalten Frank Müller
23. // NewCloud instantiates the cloud connection with the default config.
func NewCloud(ctx context.Context) (*Cloud, error) {
ctx, cancel := context.WithCancel(ctx)
cfg, err := config.LoadDefaultConfig(ctx)
if err != nil {
return nil, err
}
return &Cloud{
ctx: ctx,
cancel: cancel,
cfg: cfg,
}, nil
}
Verbindung aufbauen Frank Müller
25. package machine
// Callback defines the signature to work on an EC2 instance.
type Callback func(
cloud *cloud.Cloud,
client *ec2.Client,
inst *type.Instance,
description string)
// StateCallbacks allows to register individual callbacks per state.
type StateCallbacks map[types.InstanceStateName]Callback
Package für EC2 Virtual Machines Frank Müller
26. // GoReconcile starts monitoring a number of instances defined by the input.
// Based on the state the defined callbacks will be called.
func GoReconcile(
cloud *cloud.Cloud,
input *ec2.DescribeInstancesInput,
callbacks StateCallbacks,
description string) {
// Start internal reconciler as goroutine.
go reconcile(cloud, input, callbacks, description)
}
Instanzen immer wieder prüfen Frank Müller
27. // reconcile as goroutine monitors the input instances in a loop.
func reconcile(...) {
client := ec2.NewFromConfig(cloud.Config())
ticker := time.NewTicker(cloud.ReconcileDuration())
defer ticker.Stop()
for {
select {
case <-cloud.Done():
log.Printf("EC2 reconciler %q stopped", description)
return
case <-ticker.C:
reconcileInstances(cloud, client, input, callbacks, description)
}
}
}
Reconcile-Goroutine Frank Müller
28. // reconcileInstances queries the filtered instances and executes the callbacks.
func reconcileInstances(...) {
output, err := ec2.DescribeInstances(cloud.Ctx(), input)
if err != nil { ... } // Log and return.
for _, reservation := range output.Reservations {
for _, instance := range reservation.Instances {
callback, ok := callbacks[aws.StringValue(instance.State.Name)]
if ok {
// Callback for this state is registered, so execute.
callback(cloud, client, instance, description)
}
}
}
}
Instanzen suchen & Callbacks aufrufen Frank Müller
29. •Eigene individuelle Tools
können nun entwickelt
werden
•Callbacks für die EC2
Instance Status lassen sich
registrieren
•Mehrere Reconciler in einem
Binary sind möglich
Einsatzbereit für EC2-Instanzen Frank Müller
30. package main
// StatesCache allows to store the current states of all found instances.
type StatesCache map[string]types.InstanceStateName
// StateLogger logs any state change.
type StateLogger struct {
cache StatesCache
}
// NewStateLogger creates a StateLogger instance.
func NewStateLogger() *StateLogger {
return &StateLogger{cache: StatesCache{}}
}
Monitor für Statusänderungen – 1 Frank Müller
31. // Callback implements the machine callback.
func (l *StateLogger) Callback(cloud *cloud.Cloud, client *ec2.Client,
inst *type.Instance, description string) {
id := aws.String(inst.InstanceID)
state := aws.String(inst.State.Name)
if state != l.cache[id] {
log.Printf("status of instance %q changed to %q", id, state)
l.cache[id] = state
}
}
Monitor für Statusänderungen – 2 Frank Müller
32. // Callbacks returns all StateCallbacks for the StateLogger. So in this
// case the own callback for all states.
func (l *StateLogger) StateCallbacks() machine.StateCallbacks {
return machine.StateCallbacks{
types.InstanceStateNamePending: l.Callback,
types.InstanceStateNameRunning: l.Callback,
types.InstanceStateNameShuttingDown: l.Callback,
types.InstanceStateNameTerminated: l.Callback,
types.InstanceStateNameStopping: l.Callback,
types.InstanceStateNameStopped: l.Callback,
}
}
Monitor für Statusänderungen – 3 Frank Müller
33. // Now we can start the awsbot.
func main() {
cloud, err := awsbot.NewCloud()
if err != nil { ... } // Log with exit.
// Filter instances by tag.
input := &ec2.DescribeInstancesInput{
Filters: []*ec2.Filter{
&ec2.Filter{
Name: aws.String("tag:Name"),
Values: []*string{aws.String("JAX2023")},
},
},
},
...
Monitor für Statusänderungen – 4 Frank Müller
func JAXInstances() *ec2.DescribeInstancesInput { // Filter all instances
return &ec2.DescribeInstancesInput{ // tagged "JAX2023".
Filters: []*ec2.Filter{
&ec2.Filter{
Name: aws.String("tag:Name"),
Values: []*string{aws.String("JAX2023")},
},
},
}
}
func AllInstances() *ec2.DescribeInstancesInput { // Filter all instances.
return &ec2.DescribeInstancesInput{}
}
34. // Now we can start the cloud reconciling.
func main() {
cloud, err := cloud.NewCloud()
if err != nil {
log.Fatalf("cannot create cloud reconciler: %v", err)
}
machine.GoReconcile(cloud, JAXInstances(), NewStateLogger().Callbacks(),
"States of JAX 2023 instances")
machine.GoReconcile(cloud, AllInstances(), NewStateLogger().Callbacks(),
"States of all instances")
<-cloud.Done()
}
Monitor für Statusänderungen – 5 Frank Müller
36. • Die dargestellte Lösung ist ein Start nur für AWS
• Ein generischer Ansatz erlaubt den Einsatz für unterschiedliche
Cloud Provider
• Ein Manager und individuelle Services kapseln die notwendigen
Funktionalitäten
• Provider-spezifische Aufgaben werden durch Interfaces
dargestellt
• Diese werden pro unterstütztem Provider implementiert
Generischer Ansatz Frank Müller
37. Komponenten Frank Müller
main Cloud
<Interface>
Cloud
AWS, GCP,
...
Cloud
Provider
<Interface>
Machine
AWS, GCP,
...
Machine
Service
Cloud
Provider
38. • Weitere Services werden hinzugefügt, zum Beispiel verschiedene
Speicher, Datenbanken und Queues
• Weitere Provider werden hinzugefügt, zum Beispiel GCP, Azure,
aber auch Kubernetes sowie lokale Container und Mocks
• Direkter Zugriff auf die API der Cloud Provider innerhalb der
Callbacks
• Kein Polling des Zustands via Timer, sondern Abonnement auf
Basis der Subscription Mechanism der Cloud Provider
Entwicklungsmöglichkeiten Frank Müller
39. •Code ist Open-Source
•Lizenz ist New BSD
•Repository bei GitHub unter
tideland/go-cloubotics
•Import als
tideland.dev/go/cloubotics
•Mitstreiter herzlich
willkommen
Entwicklung von Go Cloubotics gestartet Frank Müller
41. • Clouds bieten eine große Anzahl an Diensten
• Eine Automatisierung kann sich an den Kubernetes Operatoren
orientieren
• Im Idealfall können die gleichen Automatisierungen für
unterschiedliche Instanzen oder gar verschiedene Cloud Provider
eingesetzt werden
Zusammenfassung Frank Müller