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
Um die Bedeutung moderner Cloud-Technologien einschätzen zu können, werden zunächst Grundlagen herkömmlicher Cluster-Architekturen behandelt. Darunter zählen Konzepte wie vertikale und horizontale Skalierung, Load-Balancing, Storage-Arten, usw.
In 2010 stellten die Entwickler von Hadoop fest, dass bei sehr große Clustern (4.000 Knoten und mehr) das bisherige MapReduce Framework nicht mehr richtig skaliert.
Deshalb wurde dieses komplett überarbeitet.
Das Ergebnis war YARN (Yet Another Resource Negotiator).
Neben einer besseren Skalierbarkeit erzeugte YARN weitere positive Nebeneffekte.
Im Oktober 2013 wurde YARN mit dem Hadoop 2.0 Release veröffentlicht.
Was es mit YARN auf sich hat - und welche zusätzlichen Änderungen in Hadoop 2.0 eingeflossen sind - zeigt diese Session.
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß DanielHillinger
Vom Loadbalancer bis zum Storage muss jede Komponente hochverfügbar sein und sie müssen auch noch zusammenspielen, damit Cloud Control hochverfügbar wird und man die Downtime auch für geplante Maintenance-Aktionen gering halten kann. Ein besonderes Augenmerk werde ich dabei auf folgende Punkte legen:
- Loadbalancer Config
- Multi Instance OMS
- RAC-Datenbank
- Patching
HashiTalks: DACH - Die Verwendung von IaC im DevOps ProzessJochen Zehnder
Das Thema digitale Transformation stellt heutzutage eine große Herausforderung für viele Firmen dar. Hierbei muss man sich mit vielen Themen beschäftigen und diese auf das eigene Unternehmen anpassen. Eines dieser Themen ist die Verwendung der Cloud für das Betreiben der eigenen Anwendungen. Für viele Firmen stellt sich dabei die Frage wie sie ihre Prozesse anpassen müssen. In diesem Vortrag geht Jochen Zehnder, von 56K.Cloud, dieser Frage anhand eines Fallbeispiels nach. Hierbei stellt er die Möglichkeiten von Infrastructure as Code (IaC) vor, und wie dies in den DevOps Prozess eingebettet werden kann.
A short overview of features, pros and cons of Apache Storm and Spark Streaming in German.
Eine kurze Übersicht über features, Pro und Kontra des Einsatzes von Apache Storm und Spark Streaming
Leveraging the Power of Solr with SparkQAware GmbH
JAX 2016, Mainz: Talk by Johannes Weigend (@JohannesWeigend, CTO at QAware).
Abstract: Apache Solr is a distributed NoSQL database with impressive search capabilities. Apache Spark makes M/R faster and richer. In this code-intense session Johannes shows how to combine both to solve real-time search and processing problems. The demos feature a portable Solr Cloud / Spark Cluster based on Intel NUC Hardware.
Um die Bedeutung moderner Cloud-Technologien einschätzen zu können, werden zunächst Grundlagen herkömmlicher Cluster-Architekturen behandelt. Darunter zählen Konzepte wie vertikale und horizontale Skalierung, Load-Balancing, Storage-Arten, usw.
In 2010 stellten die Entwickler von Hadoop fest, dass bei sehr große Clustern (4.000 Knoten und mehr) das bisherige MapReduce Framework nicht mehr richtig skaliert.
Deshalb wurde dieses komplett überarbeitet.
Das Ergebnis war YARN (Yet Another Resource Negotiator).
Neben einer besseren Skalierbarkeit erzeugte YARN weitere positive Nebeneffekte.
Im Oktober 2013 wurde YARN mit dem Hadoop 2.0 Release veröffentlicht.
Was es mit YARN auf sich hat - und welche zusätzlichen Änderungen in Hadoop 2.0 eingeflossen sind - zeigt diese Session.
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß DanielHillinger
Vom Loadbalancer bis zum Storage muss jede Komponente hochverfügbar sein und sie müssen auch noch zusammenspielen, damit Cloud Control hochverfügbar wird und man die Downtime auch für geplante Maintenance-Aktionen gering halten kann. Ein besonderes Augenmerk werde ich dabei auf folgende Punkte legen:
- Loadbalancer Config
- Multi Instance OMS
- RAC-Datenbank
- Patching
HashiTalks: DACH - Die Verwendung von IaC im DevOps ProzessJochen Zehnder
Das Thema digitale Transformation stellt heutzutage eine große Herausforderung für viele Firmen dar. Hierbei muss man sich mit vielen Themen beschäftigen und diese auf das eigene Unternehmen anpassen. Eines dieser Themen ist die Verwendung der Cloud für das Betreiben der eigenen Anwendungen. Für viele Firmen stellt sich dabei die Frage wie sie ihre Prozesse anpassen müssen. In diesem Vortrag geht Jochen Zehnder, von 56K.Cloud, dieser Frage anhand eines Fallbeispiels nach. Hierbei stellt er die Möglichkeiten von Infrastructure as Code (IaC) vor, und wie dies in den DevOps Prozess eingebettet werden kann.
A short overview of features, pros and cons of Apache Storm and Spark Streaming in German.
Eine kurze Übersicht über features, Pro und Kontra des Einsatzes von Apache Storm und Spark Streaming
Leveraging the Power of Solr with SparkQAware GmbH
JAX 2016, Mainz: Talk by Johannes Weigend (@JohannesWeigend, CTO at QAware).
Abstract: Apache Solr is a distributed NoSQL database with impressive search capabilities. Apache Spark makes M/R faster and richer. In this code-intense session Johannes shows how to combine both to solve real-time search and processing problems. The demos feature a portable Solr Cloud / Spark Cluster based on Intel NUC Hardware.
Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrtAWS Germany
Präsentation "Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrt" von Rolf Kersten.
Diese Session gibt einen Überblick über Amazon WorkSpaces, den WorkSpaces Application Manager und Desktop Application Marketplace und zeigt Anwendungs-Szenarien sowie Kundenbeispiele unterschiedlicher Größe, von einer Handvoll WorkSpaces bis zu großen Installationen mit mehreren tausend WorkSpaces und weltweit verteiltem Zugriff.
LinuxTag 2008 - Virtuelle Cold-Standby Server mit LinuxSchlomo Schapiro
Cold-Standby-Server sind eine anerkannte Methode zur Realisierung hochverfügbarer Umgebungen. Will man damit mehrere Produktiv-Server absichern, steht schnell viel ungenutzte Hardware im Rechenzentrum herum. Mit Virtuellen Maschinen und einem SAN lässt sich dieser Overhead deutlich reduzieren.
Dabei wird ein Linux-Server aus dem SAN gestartet, so daß das System auf einer dedizierten Hardware und in einer Virtuellen Maschine lauffähig ist. Beim Ausfall der Hardware kann die VM das System sofort übernehmen, ohne daß Daten kopiert werden müssen.
Die Vorteile eines SAN kommen hierbei zum tragen und ermöglich erst die Gestaltung dieser Lösung. Am Beispiel SuSE Linux Enterprise Server wird die Technologie und die Implementierung vorgestellt.
Hintergrundinformationen zur Kundenumgebung, in der die Lösung entwickelt wurde, runden den Vortrag ab.
JavaLand 2022, März, Brühl, Dirk Kröhan, Software Architect bei QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
“Kann man das nicht einfach cachen?” - So oder so ähnlich hat es bestimmt schon jeder mal gehört. Hin und wieder auch mit einer Prise Sarkasmus, wenn Caching als das schnelle Pflaster für schlecht geschriebene Datenbankabfragen dienen soll.
Es gibt aber natürlich genügend Anwendungsfälle wo Caching nicht nur sinnvoll, sondern auch notwendig sein kann. Wenn niedrige Latenzen oder die Entlastung der Datenbank gefordert ist führt kaum ein Weg an Caching vorbei.
In unserem Projekt ist eine flexible Konfiguration und niedrige Latenz eine Kernanforderung und somit begann eine Reise von local caches zu distributed caches. Klingt einfach? Ist es auch, schließlich tauscht man durch die Spring Cache Abstraction nur eine Dependency aus - oder etwa nicht?
Packt die Kamera ein und geht mit mir auf Spring-Caching-Safari - wilde Invalidations und unangenehme Deployments inklusive! Erfrischung gibt es an der Learnings- und Good-Practices-Oase.
Seid gespannt auf:
- Local Caches vs. Distributed Caches
- Spring Caching Abstraction
- Resilient Cache Manager
- Caching Stats & Latency Metrics
- Self-made @CollectionCachable Annotation
next bullet point is loading... Cache is cold.
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/
Keepalived & HA-Proxy as an alternative to commercial loadbalancer - August 2014inovex GmbH
The speaker Jan Gehring is the initiator of the Rex Project, which he has developed in his free time since 2010. Jan works for inovex GmbH as a senior linux system architect and designs, optimises and deploys highly scalable, automated linux environments for customers. For 13 years he has been professionally with Linux and open source and could through numerous projects gained extensive practical experience. His duties include the design, construction and operation of systems. His focus is here in the Data Center Automation, highly available and highly scalable web architectures, and Java-based application servers.
Open Patterns for Day 2 Ops [Gluecon 2017]rhirschfeld
Short presentation talking about how to create shared open best practices for upgrades and ongoing operations. Includes a demo of four upgrade patterns.
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.
Provisionierung von Dockerhosts und -Containern mit Terraform, Ansible und LXD auf Blech und Cloud
Lästige und aufwändige manuelle Serverinstallation kann auf einfache Art durch automatisierte Provisionierung und Konfiguration der Infrastruktur ersetzt werden. Dieser Vortrag zeigt einen Ansatz, bei dem die Definition der Infrastruktur in voll maschinenlesbarer und ausführbarer Form in einem git repo anstatt in den Köpfen der (oder des) Engineers vorhanden sind.
Es wird gezeigt, wie das Verfahren sowohl auf Blech (d.h. auf lokalen physischen Maschinen) als auch in der Cloud angewendet werden kann, und somit eine grosse Übereinstimmung zwischen Test-/Integrations- und Produktionsinfrastruktur erreicht wird.
Die vorgestellten Werkzeuge sind terraform und ansible für Provisionierung und Konfigurationsmanagement, sowie lxd (nur lokal) und docker für System- und Applikationscontainer. Die vollständige Codebasis ist auf github verfügbar, so dass alle TeilnehmerInnen auch sofort mit eigenen Experimenten loslegen können.
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.
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.
Effizienter Hardware LifeCycle auf Oracle SPARC M7 ServerJomaSoft
Durch die Nutzung von Solaris LDoms und Zonen können Applikationen ohne Anpassungen auf die neuen SPARC M7 Server migriert werden. Mit dem Tool VDCF sehr effizient.
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.
CloudLand, Juni/Juli 2022, Mario-Leander Reimer (@LeanderReimer, Principal Software Architect bei QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Die einfache und effiziente Entwicklung Cloud-nativer Anwendungen stellt viele Teams vor erhebliche Herausforderungen. Denn zusätzlich zur Umsetzung von fachlichen Features und Microservices sind Entwickler nun oft auch für den Aufbau der benötigten Cloud Services mit Infrastructure as Code à la Terraform mit verantwortlich. Diese hohe Cognitive Load führt leider schnell zu Überlastung und suboptimalen Lösungen.
Crossplane ist ein Open Source Add-on für Kubernetes welches dieses Problem adressiert. Mittels Crossplane kann Cloud Infrastruktur für alle gängigen Cloud Provider deklarativ aufgebaut werden, ohne eine Zeile Code zu schreiben. Auch besteht die Möglichkeit hoch spezifische Self-Service APIs und Abstraktionen zu erstellen, die dann sehr einfach von den Feature Teams angewendet werden können. Dieser Vortrag zeigt den praktischen Einsatz von Crossplane mit seinen Funktionen in der AWS und Google Cloud, sowie die nahtlose Integration mit einem GitOps Ansatz.
Enterprise Cloud Native ist das neue NormalQAware GmbH
CODEx Speakers Night 2019, November 2019, Hannover: Vortrag von Mario-Leander Reimer (@LeanderReimer, Cheftechnologe bei QAware)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Abstract: Der Einsatz Cloud nativer Technologien gehört in vielen deutschen Unternehmen mittlerweile zur Normalität. Großartig! Doch bei aller Liebe zur Technologie beobachte ich momentan bei vielen Teams und Kunden einen gewissen Grad an Ernüchterung und Zweifeln was den Einsatz moderner Tools, Techniken und Open Source Bausteinen angeht.
Mit steigender Verbreitung gibt es naturgemäß auch negative Erfahrungen und auch Fehlschläge. Das ist ganz normal! Klar, es gibt viel Raum für Verbesserungen. Um so wichtiger ist es, die aktuellen Trends und Neuerungen im Cloud-native Universum kontinuerlich im Auge zu behalten und diese mutig in das eigene Unternehmen und seine Projekte zu tragen.
Die kontinuierliche Verbesserung der Cloud-native Developer Experience ist einer dieser Bereiche. Schlanke Entwickler-Tools und Ansätze wie Skaffold, Werf, Squash oder TelePresence vereinfachen die Entwicklung und beschleunigen den Inner Development Loop enorm. Zahlreiche neue Serverless und FaaS Frameworks zielen darauf die Verbauungstiefe von Cloud-nativen Anwendungen deutlich zu reduzieren. Die Entwicklung und speziell der Betrieb werden zunehmend einfacher. "Don't do it yourself" heißt die Devise.
Auch das steigende Angebot an essentiellen Infrastruktur-Bausteinen wie Service Meshes, API Gateways und Messaging Systemen gilt es zu beobachten, um moderne Systeme der Zukunft zu bauen. Continuous Security und Continuous Compliance gewinnen im Enterprise Umfeld und speziell bei regulierten Unternehmen immer mehr an Bedeutung, auch hier lassen die passenden Tools und Technologien nicht lange auf sich warten.
Es bleibt also spannend, es gibt viel zu lernen und zu erforschen.
Production-ready Infrastruktur in 3 WochenAndré Goliath
Es gibt sie doch noch: Projekte die man auf der grünen Wiese starten darf - incl. Infrastruktur. Nur AWS als Cloud Provider ist gesetzt. In dieser Session gebe ich nach den ersten Wochen Einblicke und Lessons Learned, wie wir vom Zustand eines weißen Blatt Papiers auf ein Account- und Infrastruktur-Setup gekommen sind, mit dem wir zumindest mal sofort loslegen können ohne die üblichen „Abkürzungen“ bei Qualität und Featureumfang zu gehen. Ein wesentlicher Teil davon ist das Tooling von gruntwork.io, welches in diesem Kontext kurz vorgestellt wird. [Disclaimer: Wir sind auch nur normale Kunden mit einer gruntworks-Subscription ohne weitere Connections dorthin – diese Session wird also explizit keine gruntwork.io Werbeveranstaltung, auch wenn sich das inhaltlich nicht 100%ig vermeiden lässt]
Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrtAWS Germany
Präsentation "Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrt" von Rolf Kersten.
Diese Session gibt einen Überblick über Amazon WorkSpaces, den WorkSpaces Application Manager und Desktop Application Marketplace und zeigt Anwendungs-Szenarien sowie Kundenbeispiele unterschiedlicher Größe, von einer Handvoll WorkSpaces bis zu großen Installationen mit mehreren tausend WorkSpaces und weltweit verteiltem Zugriff.
LinuxTag 2008 - Virtuelle Cold-Standby Server mit LinuxSchlomo Schapiro
Cold-Standby-Server sind eine anerkannte Methode zur Realisierung hochverfügbarer Umgebungen. Will man damit mehrere Produktiv-Server absichern, steht schnell viel ungenutzte Hardware im Rechenzentrum herum. Mit Virtuellen Maschinen und einem SAN lässt sich dieser Overhead deutlich reduzieren.
Dabei wird ein Linux-Server aus dem SAN gestartet, so daß das System auf einer dedizierten Hardware und in einer Virtuellen Maschine lauffähig ist. Beim Ausfall der Hardware kann die VM das System sofort übernehmen, ohne daß Daten kopiert werden müssen.
Die Vorteile eines SAN kommen hierbei zum tragen und ermöglich erst die Gestaltung dieser Lösung. Am Beispiel SuSE Linux Enterprise Server wird die Technologie und die Implementierung vorgestellt.
Hintergrundinformationen zur Kundenumgebung, in der die Lösung entwickelt wurde, runden den Vortrag ab.
JavaLand 2022, März, Brühl, Dirk Kröhan, Software Architect bei QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
“Kann man das nicht einfach cachen?” - So oder so ähnlich hat es bestimmt schon jeder mal gehört. Hin und wieder auch mit einer Prise Sarkasmus, wenn Caching als das schnelle Pflaster für schlecht geschriebene Datenbankabfragen dienen soll.
Es gibt aber natürlich genügend Anwendungsfälle wo Caching nicht nur sinnvoll, sondern auch notwendig sein kann. Wenn niedrige Latenzen oder die Entlastung der Datenbank gefordert ist führt kaum ein Weg an Caching vorbei.
In unserem Projekt ist eine flexible Konfiguration und niedrige Latenz eine Kernanforderung und somit begann eine Reise von local caches zu distributed caches. Klingt einfach? Ist es auch, schließlich tauscht man durch die Spring Cache Abstraction nur eine Dependency aus - oder etwa nicht?
Packt die Kamera ein und geht mit mir auf Spring-Caching-Safari - wilde Invalidations und unangenehme Deployments inklusive! Erfrischung gibt es an der Learnings- und Good-Practices-Oase.
Seid gespannt auf:
- Local Caches vs. Distributed Caches
- Spring Caching Abstraction
- Resilient Cache Manager
- Caching Stats & Latency Metrics
- Self-made @CollectionCachable Annotation
next bullet point is loading... Cache is cold.
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/
Keepalived & HA-Proxy as an alternative to commercial loadbalancer - August 2014inovex GmbH
The speaker Jan Gehring is the initiator of the Rex Project, which he has developed in his free time since 2010. Jan works for inovex GmbH as a senior linux system architect and designs, optimises and deploys highly scalable, automated linux environments for customers. For 13 years he has been professionally with Linux and open source and could through numerous projects gained extensive practical experience. His duties include the design, construction and operation of systems. His focus is here in the Data Center Automation, highly available and highly scalable web architectures, and Java-based application servers.
Open Patterns for Day 2 Ops [Gluecon 2017]rhirschfeld
Short presentation talking about how to create shared open best practices for upgrades and ongoing operations. Includes a demo of four upgrade patterns.
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.
Provisionierung von Dockerhosts und -Containern mit Terraform, Ansible und LXD auf Blech und Cloud
Lästige und aufwändige manuelle Serverinstallation kann auf einfache Art durch automatisierte Provisionierung und Konfiguration der Infrastruktur ersetzt werden. Dieser Vortrag zeigt einen Ansatz, bei dem die Definition der Infrastruktur in voll maschinenlesbarer und ausführbarer Form in einem git repo anstatt in den Köpfen der (oder des) Engineers vorhanden sind.
Es wird gezeigt, wie das Verfahren sowohl auf Blech (d.h. auf lokalen physischen Maschinen) als auch in der Cloud angewendet werden kann, und somit eine grosse Übereinstimmung zwischen Test-/Integrations- und Produktionsinfrastruktur erreicht wird.
Die vorgestellten Werkzeuge sind terraform und ansible für Provisionierung und Konfigurationsmanagement, sowie lxd (nur lokal) und docker für System- und Applikationscontainer. Die vollständige Codebasis ist auf github verfügbar, so dass alle TeilnehmerInnen auch sofort mit eigenen Experimenten loslegen können.
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.
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.
Effizienter Hardware LifeCycle auf Oracle SPARC M7 ServerJomaSoft
Durch die Nutzung von Solaris LDoms und Zonen können Applikationen ohne Anpassungen auf die neuen SPARC M7 Server migriert werden. Mit dem Tool VDCF sehr effizient.
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.
CloudLand, Juni/Juli 2022, Mario-Leander Reimer (@LeanderReimer, Principal Software Architect bei QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Die einfache und effiziente Entwicklung Cloud-nativer Anwendungen stellt viele Teams vor erhebliche Herausforderungen. Denn zusätzlich zur Umsetzung von fachlichen Features und Microservices sind Entwickler nun oft auch für den Aufbau der benötigten Cloud Services mit Infrastructure as Code à la Terraform mit verantwortlich. Diese hohe Cognitive Load führt leider schnell zu Überlastung und suboptimalen Lösungen.
Crossplane ist ein Open Source Add-on für Kubernetes welches dieses Problem adressiert. Mittels Crossplane kann Cloud Infrastruktur für alle gängigen Cloud Provider deklarativ aufgebaut werden, ohne eine Zeile Code zu schreiben. Auch besteht die Möglichkeit hoch spezifische Self-Service APIs und Abstraktionen zu erstellen, die dann sehr einfach von den Feature Teams angewendet werden können. Dieser Vortrag zeigt den praktischen Einsatz von Crossplane mit seinen Funktionen in der AWS und Google Cloud, sowie die nahtlose Integration mit einem GitOps Ansatz.
Enterprise Cloud Native ist das neue NormalQAware GmbH
CODEx Speakers Night 2019, November 2019, Hannover: Vortrag von Mario-Leander Reimer (@LeanderReimer, Cheftechnologe bei QAware)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Abstract: Der Einsatz Cloud nativer Technologien gehört in vielen deutschen Unternehmen mittlerweile zur Normalität. Großartig! Doch bei aller Liebe zur Technologie beobachte ich momentan bei vielen Teams und Kunden einen gewissen Grad an Ernüchterung und Zweifeln was den Einsatz moderner Tools, Techniken und Open Source Bausteinen angeht.
Mit steigender Verbreitung gibt es naturgemäß auch negative Erfahrungen und auch Fehlschläge. Das ist ganz normal! Klar, es gibt viel Raum für Verbesserungen. Um so wichtiger ist es, die aktuellen Trends und Neuerungen im Cloud-native Universum kontinuerlich im Auge zu behalten und diese mutig in das eigene Unternehmen und seine Projekte zu tragen.
Die kontinuierliche Verbesserung der Cloud-native Developer Experience ist einer dieser Bereiche. Schlanke Entwickler-Tools und Ansätze wie Skaffold, Werf, Squash oder TelePresence vereinfachen die Entwicklung und beschleunigen den Inner Development Loop enorm. Zahlreiche neue Serverless und FaaS Frameworks zielen darauf die Verbauungstiefe von Cloud-nativen Anwendungen deutlich zu reduzieren. Die Entwicklung und speziell der Betrieb werden zunehmend einfacher. "Don't do it yourself" heißt die Devise.
Auch das steigende Angebot an essentiellen Infrastruktur-Bausteinen wie Service Meshes, API Gateways und Messaging Systemen gilt es zu beobachten, um moderne Systeme der Zukunft zu bauen. Continuous Security und Continuous Compliance gewinnen im Enterprise Umfeld und speziell bei regulierten Unternehmen immer mehr an Bedeutung, auch hier lassen die passenden Tools und Technologien nicht lange auf sich warten.
Es bleibt also spannend, es gibt viel zu lernen und zu erforschen.
Production-ready Infrastruktur in 3 WochenAndré Goliath
Es gibt sie doch noch: Projekte die man auf der grünen Wiese starten darf - incl. Infrastruktur. Nur AWS als Cloud Provider ist gesetzt. In dieser Session gebe ich nach den ersten Wochen Einblicke und Lessons Learned, wie wir vom Zustand eines weißen Blatt Papiers auf ein Account- und Infrastruktur-Setup gekommen sind, mit dem wir zumindest mal sofort loslegen können ohne die üblichen „Abkürzungen“ bei Qualität und Featureumfang zu gehen. Ein wesentlicher Teil davon ist das Tooling von gruntwork.io, welches in diesem Kontext kurz vorgestellt wird. [Disclaimer: Wir sind auch nur normale Kunden mit einer gruntworks-Subscription ohne weitere Connections dorthin – diese Session wird also explizit keine gruntwork.io Werbeveranstaltung, auch wenn sich das inhaltlich nicht 100%ig vermeiden lässt]
Auch nach mehr als 20 Jahren ist Jakarta EE (ehemals Java EE) DER Standard, wenn es um die Entwicklung Java-basierter Enterprise-Computing-Lösungen geht. Das gilt zumindest immer dann, wenn die Anwendung als Monolith in einem Application-Server deployt werden soll. Wie aber steht es mit einer Anwendung, die aus einer Vielzahl autark laufender Microservices besteht? Und wie gut schlägt sich Jakarta EE in der Cloud, in der geringer Speicherbedarf und schnelle Startzeiten gefragt sind? Die Session zeigt, wie es Jakarta EE geschafft hat, mit der Zeit zu gehen und so mit Hilfe von Nebenprojekten wie Eclipse MicroProfile den Anforderungen moderner Cloud-Native-Anwendungen gerecht zu werden. Ein Ausblick das Zusammenspiel mit GraalVM und Quarkus zeigt, das Jakarta EE dabei auch in extrem verteilten Cloud-Szenarien, aka Serverless, eine gute Figur macht.
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopValentin Zacharias
Vorstellung der Lambda Architektur, ihrer Motivation und einer konkreten technischen Umsetzung mit den Open Source Technologien Hadoop 2, Kafka und Storm.
Dataservices - Data Processing mit MicroservicesQAware GmbH
IT-Tage 2018, Frankfurt: Vortrag von Mario-Leander Reimer (@LeanderReimer, Cheftechnologe bei QAware)
=== Dokument bitte herunterladen für bessere Lesbarkeit! ===
Abstract: Data Processing und Microservices sind ein perfektes Gespann. In dieser Kombination können Microservices dazu verwendet werden, ein flexibles, Event-getriebenes und skalierbares System von lose gekoppelten Datenverarbeitungsaufgaben aufzubauen. Diesen Ansatz nennen wir Dataservices.
In diesem Vortrag stellen wir zunächst die wesentlichen Konzepte und einige Schlüsseltechnologien vor, um Dataservice-Architekturen zu realisieren. Anschließend werden wir die einzelnen Bestandteile einer exemplarischen Datenverarbeitungs-Pipeline schrittweise komponieren und die Showcase-Pipeline in der Cloud zur Ausführung bringen und skalieren.
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.
K8s-native Daten-Pipelines mit Argo Workflows und EventsQAware GmbH
Data2Day, Karlsruhe, September 2022, Mario-Leander Reimer (@LeanderReimer, Principal Software Architect bei QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Daten sind der neue Brennstoff für moderne digital Produkte. Aber auch Daten müssen zunächst gefördert und anschließend aufwendig raffiniert und angereichert werden, bevor sie wirklich nutzbringend verwendet werden können. Die hierfür verwendeten ETL- und ELT-Ansätze und Tools sind dabei häufig entweder proprietär oder extrem individuell. Die Wartbarkeit und Skalierbarkeit solcher Ansätze ist leider beschränkt.
Dieser Vortrag beschreibt die Evolution und Migration einer individuellen Datenversorgung auf Basis von Jenkins und einzelnen Maven-Projekten, hinzu flexibel orchestrierbaren Kubernetes-nativen Datenpipelines auf Basis von Argo Workflows und Events zur Orchestrierung.
Ähnlich wie Infrastructure as Code mit Terraform (20)
This document contains the agenda for a meetup of the InfraCoders Vienna and Vienna Kubernauts user groups on January 15th, 2019. The agenda includes four presentations: two on using Ansible for deployments and managing JBoss servers, one on building a high-performance storage solution for Kubernetes using LINSTOR, and one on developing custom Kubernetes controllers. Background information is provided on registration numbers and growth of the InfraCoders Vienna user group.
The document discusses the Fn Project, an open-source serverless computing platform. It provides lessons learned from using serverless technologies, including issues with execution times, timeouts, and vendor lock-in. The Fn Project aims to address these issues by providing a platform that can be deployed anywhere and uses containers as primitives. It has components like the Fn CLI and Fn Server and supports building scalable and reliable functions.
Our InfraCoders III Meetup took place in on May 8th, 2018 at braintribe's firestarters.space (Halbgasse 7, 1070 Wien)
We had 2 main talks: news fresh from KubeCon & CloudNativeCon Europe (May 2-4 in Kopenhagen) presented by Aleks Lazic / Me2Digital & Toni Schmidbauer /sIT Solutions and an intro to and live demo of CI/CD with the Open Source container-native Serverless Plattform FN by Maximilian Jerg / UniPortal/Oracle.
We also had 2 lightning talks:
Oliver Moser / braintribe : 'Compression in Prometheus
Erik Auer / A1 Digital : 'Building a Jenkins Job Generator'
1. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Infrastructure as Code mit Terraform
(Live Demo on Oracle Bare MetalCloud)
Marcus Doeringer
https://www.xing.com/profile/Marcus_Doeringer2
Harald Schmaldienst
https://www.linkedin.com/in/schmaldienst/
InfraCoders Vienna (Meetup)
https://www.meetup.com/de-DE/InfraCoders-Vienna/
2. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Agenda
• 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
3. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform – entwickelt von HashiCorp
• HashiCorp – bietet verschiedene Tools für Cloud Operations
• Ziel des Tool-Sets – “Any Application” “Any Infrastructure”
• Provisionierung
– Vagrant- erzeugen und konfigurieren von portablen Entwicklungs-Umgebungen
– Packer – Erzeugen von platform-spezifischen server images aus einer “Single Source”
– Terraform – Erzeugung, Deployment und Management von Infrastruktur über
verschienden Provider hinweg (AWS, Azure, GCP, Oracle Cloud Vmware, uvm.)
• Secure
– Vault – Zentrales und sicheres Verwalten des Zugriffs auf “distributed secrets” (z.B. Keys)
• RUN
– Nomad - Cluster manager und Scheduler für das Deployment von Applikationen über
verschiedene Infrastrukturen hinweg
– Consul – Ein verteiltes, hochverfügbares Tool zur Service Discovery, Konfiguration und
Orchestrierung
4. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform
• Open Source Software mit großer Verbreitung im Markt
• Geschrieben in Go
• Runtimes verfügbar für OSX, FreeBSD, Linux, OpenBSD, Solaris, Windows
• IA32, x64 und ARM
• Fast development – monatliche Releases
• HCL: Hashi Configuration Language
– Interoperabilität mit JSON
• Gut integrierbar mit existierenden Tools - Puppet, Chef, Ansible, uvm.
5. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Cloud Orchestration & Infrastructure as Code (IaC)
• (…) Infrastructure as Code (IaC) is the process of managing
and provisioning computing infrastructure (processes, bare-
metal servers, virtual servers, etc.) and their configuration
through machine-processable definition files, rather than
physical hardware configuration or the use of interactive
configuration tools.[1]
• The definition files may be in a version control system. This
has been achieved previously through either scripts or
declarative definitions, rather than manual processes, but
developments as specifically titled 'IaC' are now focused on
the declarative approaches. (…)
[1] https://en.wikipedia.org/wiki/Infrastructure_as_Code
6. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Cloud Orchestration & Infrastructure as Code (IaC)
• Infrastructure Lifecycle
– Provision
– Update
– Destroy
• Die 4 generellen Kategorien von IaC
– Ad hoc Scripts
– Configuration Management Tools
(Chef, Puppet, Ansible, …)
– Server Templating Tools
(Packer, Vagrant, Docker, ….)
– Server Provisioning Tools
(Terraform, Cloud Formation, Heat, …)
7. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Vergleich der gängigsten Server Provisioning und Configuration
Management Tools
8. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Vergleich der gängigsten Server Provisioning und Configuration
Management Tools
Source: https://blog.gruntwork.io/why-we-use-terraform-and-not-chef-puppet-ansible-saltstack-or-cloudformation-7989dad2865c
9. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Erste Schritte mit Terraform
10. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Erste Schritte mit Terraform ./
├── terraform
├── terraform-provider-atlas
├── terraform-provider-aws
├── terraform-provider-azure
├── terraform-provider-azurerm
├── terraform-provider-chef
├── terraform-provider-cloudflare
├── terraform-provider-cloudstack
├── terraform-provider-consul
├── terraform-provider-digitalocean
├── terraform-provider-baremetal
alicloud archive arukas atlas aws azure azurerm bitbucket chef circonus clc cloudflare cloudstack cobbler consul
datadog digitalocean dme dns dnsimple docker dyn external fastly github gitlab google grafana heroku http icinga2
ignition influxdb kubernetes librato local logentries mailgun mysql newrelic Neinmad ns1 oneandone opc
openstack opsgenie packet pagerduty postgresql powerdns profitbricks rabbitmq rancher random rundeck
scaleway softlayer spotinst statuscake template terraform tls triton ultradns vault vcd vsphere
• Download
– binary, apt, yum, choco, brew
• Create a .tf file in a workspace
– hw.tf
output "hw" {
value = "test” }
• $ terraform apply
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
hw = test
• Provider… ->
11. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
• Terraform Konfigs werden in .tf Files definiert
• Basierend auf der HashiCorp Configuration Language (HCL) https://github.com/hashicorp/hcl
• JSON ist für die Code Erstellung unterstützt
• Konfigs werden definiert nach folgendem Schema:
keyword1 "some_name" {
key = "value"
nested {
key = "value'
}
}
HCL – Basic Terraform .tf Format
{
"keyword1": [
{
"some_name": [
{
"key": "value",
"nested": [
{
"key": "value"
}
]
}
]
}
]
}
12. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform – “Provider”
Zuerst definiert man den “Provider”
Provider abstrahieren die APIs aller unterstützen Anbieter, um Infrastruktur zu erzeugen.
Zum Beispiel:
provider "baremetal" {
tenancy_ocid = "${var.tenancy_ocid}"
user_ocid = "${var.user_ocid}"
fingerprint = "${var.fingerprint}"
private_key_path = "${var.private_key_path}"
}
Der baremetal Provider z.B. erlaubt es Terraform Resourcen im definerten Mandanten der BMCS zu erzeugen,
managen und zu löschen (apply – destroy)
Tenancy ist die OCID des Mandanten (“tenants”). User OCID is der Identifier des Users. Fingerprint ist der md5
fingerprint des privaten Keys, der verwendet wird, um auf die Cloud API zuzugreifen, und private key path ist
der Pfad zum privaten PEM Key für das API.
13. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform – “Resources”
Ressourcen
Ist der Provider konfiguriert, kann man beginnen Ressourcen zu erzeugen.
Mit dem BMCS baremetal provider, kann man Cloud Ressourcen erzeugen,
Wie z.B. Compute Instanzen (Server& VMs), Block- und Object Storage, div. Netzwerk-Komponenten,
Loadbalancer, usw.
Das folgende Beispiel erzeugt eine Compute Instanz:
resource "baremetal_core_instance" "TFInstance" {
availability_domain = "${lookup(data.baremetal_identity_availability_domains.ADs.availability_domains[var.AD -
1],"name")}"
compartment_id = "${var.compartment_ocid}"
display_name = "TFInstance"
hostname_label = "instance1"
image = "${lookup(data.baremetal_core_images.OLImageOCID.images[0], "id")}"
shape = "${var.InstanceShape}"
subnet_id = "${var.SubnetOCID}"
metadata {
ssh_authorized_keys = "${var.ssh_public_key}"
user_data = "${base64encode(file(var.BootStrapFile))}"
}
}
component provider type name
14. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform – Planning
15. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform – Planning
Hat man eine Konfiguration definiert, kann man einen Testlauf ohne “Apply” durchführen .
"terraform plan" übernimmt die Konfiguration und erzeugt einen detaillierten Report darüber, welche Ressourcen erzeugt,
gelöscht oder geändert werden – inklusive den Informationen zu den Abhängigkeiten mit anderen Ressourcen, die von den
Änderungen betroffen wären.
terraform plan -out=plan1
Den Output von terraform plan zu speichern ist v.a. zum Vergleich mit den tatsächlich ausgeführten Aktionen hilfreich.
17. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform – Apply
Nach Check des Plans kann die Konfiguration ausgeführt werden: APPLY
$ terraform apply
Man kann auch ein Apply von
Gespeicherten TF-Plänen ausführen:
$ terraform apply plan1
Plan und apply kann auch für einzelne
Ressourcen ausgeführt werden:
mit dem -target flag.
18. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform - Destroy
19. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform - Destroy
Wenn Infrastruktur gelöscht werden soll, kann das einfach unter Berücksichtigung aller Abhängigkeiten erfolgen mit:
$ terraform destroy
Nach einem Prompt nach dem “yes” zur Bestätigung löscht Terraform die komplette Umgebung – bzw. einzelne targets,
wenn man die angibt.
Wenn man mit Terraform beginnt, ist es wichtig den Zyklus von plan – apply - destroy zu beachten!
Wird z.B. eine Ressource in einem .tf File geändet oder gelöscht, erkennt Terraform die Differenz im Vergleich zum State File
und ändert oder löscht die Ressource beim nächten apply entsprechend!
$ terraform plan -destroy
Bietet die Möglichkeit zu sehen, was
gelöscht würde, ohne das “destroy”
Wirklich auszuführen.
20. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform - Variablen
Diese Beispiele zeigen häufig verwendete Varuablen wie compartment_id (Cloud Mandant), shape_id (Compute
Größe), OS image/version.
Best Practice ist, Default-Variablen in einem File "variables.tf" zu deklarieren.
# Choose an Availability Domain
variable "AD" {
default = "1"
}
variable "InstanceShape" {
default = "VM.Standard1.2"
}
variable "InstanceOS" {
default = "Oracle Linux"
}
variable "InstanceOSVersion" {
default = "7.3"
}
Map Variable
variable "environment" { default = "dev" }
variable "shape" {
type = "map"
default = {
dev = "VM.Standard1.2"
test = "VM.Standard1.4"
prod = "BM.Standard1.36"
}
}
resource "baremetal_core_instance" "app-server" {
image = "${var.image}"
shape = "${lookup(var.instance_type, var.environment)}"
subnet_id = "${var.subnet_id}"
}
21. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Variablen zuordnen und überschreiben
Variablen ohne default-Wert müssen natürlich Werte zugewiesen werden.
Haben Variablen keinen default-Wert, fragt Terraform bei “plan” oder “apply” nach einem Wert..
Default Varaiblen können mittels Command-Line, tfvars file oder inline überschrieben werden.
Beispiel für das Überschreiben auf der Command-Line:
$ terraform apply -var 'InstanceShape=VM.Standard1.4'
Beispiel für das Setzen von Variablen in einem .tfvars File:
instance_type="VM.Standard1.2"
22. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform - Outputs
Terraform can die dynamisch erzeugten Variablen anzeigen.
Häufiges Beispiel – die IP Adressen neu erzeugter Hosts anzeigen:
$ cat outputs.tf
output "InstancePrivateIP" { value = ["${data.baremetal_core_vnic.InstanceVnic.private_ip_address}"]}
output "InstancePublicIP" { value = ["${data.baremetal_core_vnic.InstanceVnic.public_ip_address}"]}
Oder am Ende eines terraform apply:
Apply complete! Resources: 4 added, 0 changed, 0 destroyed.
State path:
Outputs:
InstancePrivateIP = [ 10.0.0.10 ]
InstancePublicIP = [ 129.146.3.173]
Outputs werden oft zur Interaktion mit anderen Tools genutzt. Terraform show (human readable) und das terraform.tfstate
File beinhalten ebenfalls diese outputs.
23. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform - Provisioners
Terraform kann mit anderen “Provisioners” wie Chef, puppet, Ansible, oder Shells Skripten interagieren.
Das einfache Beispiel unten zeigt die Verwendung eines Provisioners zur Remote Execution, um ein touch auf ein File
mit touch anzulegen:
$ cat remote-exec.tf
resource "null_resource" "remote-exec" {
depends_on = ["baremetal_core_instance.TFInstance"]
provisioner "remote-exec" {
connection {
agent = false
timeout = "10m"
host = "${data.baremetal_core_vnic.InstanceVnic.public_ip_address}"
user = "opc"
private_key = "${var.ssh_private_key}"
}
inline = [
"touch ~/IMadeAFile.Right.Here",
]
}
}
24. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform Command - Übersicht
terraform
Usage: terraform [--version] [--help] <command> [args]
Common commands:
apply Builds or changes infrastructure
console Interactive console for Terraform interpolations
destroy Destroy Terraform-managed infrastructure
env Environment management
fmt Rewrites config files to caNeinnical format
get Download and install modules for the configuration
graph Create a visual graph of Terraform resources
import Import existing infrastructure into Terraform
init Initialize a new or existing Terraform configuration
output Read an output from a state file
plan Generate and show an execution plan
push Upload this Terraform module to Atlas to run
refresh Update local state file against real resources
show Inspect Terraform state or plan
taint Manually mark a resource for recreation
untaint Manually unmark a resource as tainted
validate Validates the Terraform files
version Prints the Terraform version
terraform.tfstate {
"version": 3,
"terraform_version": "0.9.5",
"serial": 1,
"lineage": "a54a3c11-c934-41d5-b60d",
"modules": [
25. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform – Resource Graph - Visualisierung
Terraform kann Graphen mit allen Abhängigkeiten erstellen – z.B. für die Planung. management and more.
$ terraform graph | dot -Tpng > tgraph1.png
27. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Pros and Cons – Terraform
Vorteile
• Einfacher Start, fortschreitende Steigerung der Komplexität wo nötig
• Fördert das Prinzip der “Immutable Infrastructure”
• Security – Nachvollziehbarkeit - Versionskontrolle
• Vault, Consult, Nomad, Packer, Atlas von Terraform bilden eine stimmige Tool-Suite
• Ein spezialisiertes Tool für Provisionierung von Infrastruktur – schlankes und zielgerichtets Konzept
• Häufige Releases, sehr lebendiges Projekt, kommerzieller Support kann bezogen werden
Nachteile
• Der Import von existierender Infrastruktur ist mühsam / fast nicht möglich
• Des Handling von Variablen, Iterationen und weitergeben von Variablen kann unübersichtlich werden
• Bei unsauberer Entwicklung zu Beginn kann Bereinigung Neuerstellung bedeuten
• Configuration- und Server Management Tools sind weiterhin notwendig, WEIL:
• Umbenennen ist letztlich destroy-create (etwas extreme Form der “Immutable Infrastructure”)
28. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Terraform – weiterführende Info
Getting Started with Terraform - Kirill Shirinkin
978-1-78646-510-8
http://techbus.safaribooksonline.com/book/operating-systems-and-server-administration/9781786465108
Terraform: Up and Running - Yevgeniy Brikman
978-1-4919-7708-8
http://techbus.safaribooksonline.com/book/operating-systems-and-server-
administration/virtualization/9781491977071
The Terraform Book Kindle Edition - James Turnbull
978-0-9888202-5-8
https://terraformbook.com/
29. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Oracle Cloud Platform – was ist das Besondere daran?
“…reason is that most of the people who are architecting this cloud
at Oracle have already built Amazon, Azure, or Google. We’ve all
already made a ton of mistakes and are eager not to repeat them.”
- Matteo Frigo (Oracle Cloud Architect)
30. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Technology Benefit
Erweiterte Multi-Mandanten-Fähigkeit
Komplexe Organisationen und Access Management sauber
abzubilden
Availability Domains (ADs) Hochverfügbarkeit über mehrere Rechenzentren in Regionen
Flaches Netzwerk (Clos) & non-blocking
Völlig konstante sehr niedrige Latenz
“Noisy Neighbors” Problem eliminiert
IO Virtualization “off host”(!)
Ermöglicht sicheres Deployment von VMs UND Bare Metal
Servern ohne jeglichen “Cloud-Software” + erhöhte Sicherheit
Direct-attached NVMe Storage Für extreme IO Workoads im x 100k IOPS Bereich
Oracle Cloud Platform – Design Konzepte
31. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Availbility
Domain 1
Availability
Domain 2
Availability
Domain 3
Region 1
Availability
Domain 1
Availability
Domain 2
Availability
Domain 3
Availability
Domain 1
Availability
Domain 2
Availability
Domain 3
Region 3
Region 2
Region und Availability Domain Topologie
• Regionen ermöglichen Disaster Recovery (Geo-redundant)
• Availability Domains bieten High Availability innerhalb einer Region
• Fehler-unabhängige ADs
• “Geringe” Entfernung (km)
• Für Low-latency & High-bandwidth Netzwerk
• Synchrone Replication ist supported
• Trotzdem voneinender isoliert
32. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Innerhalb einer Region – High Availability
• Mehere fehlerunabhängige, komplett unabhängige Datacenter – Availability
Domains (ADs)
• Berechenbare niedrige Latenz & High Speed Netzwerk, verschlüsselter
Interconnect zwischen ADs
• < 500µs RTT Latenz, 1Tb/s Bandbreite z.B. in Region US Central (Phoenix)
• Ermöglicht zero-data-loss Architekturen (e.g. Oracle MAA) und
hochverfügbare Scale-Out Architekturen (e.g. Cassandra)
Datacenters
Region
Availability
Domain 1
Availability
Domain 2
Availability
Domain 3
33. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Innerhalb einer AD – hochskalierbares High Performance Netzwerk
• Clos Netzwerk (non-oversubscribed) – flach, performant, berechenbar
• Skaliert sehr gut – ~1 Million Netzwerk Ports in einer AD
• Berechenbare niedrige Latenz & High Speed Interconnect zwischen Hosts in
einer AD
• < 100µs RTT Latenz, 10Gb/s Bandbreite
Physical Network
Datacenters
Region
Availability
Domain 1
Availability
Domain 2
Availability
Domain 3
34. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Virtuelles Netzwerk mit Virtualisierung “off-box”
• Flexible und komplett konfiguierbare Overlay Netzwerke –Management und
IO unabhängig vom Hypervisor – reduzierter Overhead und Bare Metal
Ressourcen
Region Availability
Domain 1
Availability
Domain 2
Availability
Domain 3
Physisches Netzwerk
Data Center
Virtuelles Netzwerk
35. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
Any middlebox – IDS/IPS,…Bare metal hosts VMs Engineered Systems
Physisches Netzwerk
Data Center
Region
Virtuelles Netzwerk
Compute & Storage Ressourcen
Alle Layers – Hochverfügbar, konstante Performance, Flexibel
?
Availability
Domain 1
Availability
Domain 2
Availability
Domain 3
Bare metal w/NVMe
36. Vienna Kubernauts, Überblick über Infrastructure as Code mit Terraform | Harald Schmaldienst
ORACLE CLOUD INFRASTRUCTURE (REGION)
IGW
Internet GatewayVirtual Cloud
Network
AVAILABILITY DOMAIN-1 AVAILABILITY DOMAIN-2
Subnet-A
Public/Web
Subnet-B
App
Subnet-C
Database
IAM Service
Audit Service
Object Storage
Customer
Datacenter
Region Wide Services
Web Server 1
Nexus
App Server 1
Nexus
Batch Server
Oracle DB Server
DMZSubnetPrivateSubnets
Subnet-A
Public/Web
Subnet-B
App
Subnet-C
Database
Web Server 2
Nexus
App Server 2
Oracle DB Server
Oracle Data Guard
Failover
LB HTTP
Hinweis der Redaktion
Oracle IaaS gives you:
a Software Defined Virtualized Data Center
Cost effective, highly elastic Compute, Storage, and Network Resources
Allowing you to:
Easily migrate your existing Software Stacks and Infrastructure Automation Tools without needing to re-write them
While providing you with full control of infrastructure, and strong security, governance, and performance