Bubble Animation

DevOps in der twinformatics

DevOps beschreibt einen Ansatz, wie die Zusammenarbeit zwischen Softwareentwicklung und IT-Betrieb verbessert werden kann. Es soll durch gemeinsame Anreize, Prozesse und Software-Werkzeuge eine effektivere und effizientere Zusammenarbeit der Bereiche Dev, Ops, Qualitätssicherung (QS) und Fachbereichen ermöglichen.

Einführung

Die Rolle DevOps-Engineer geht ursprünglich auf das Profil der Systemadministrator*innen zurück. Letztere waren für den reibungslosen Betrieb von Computersystemen verantwortlich, sowohl in der Entwicklungs- als auch in Produktivumgebungen. 

Durch die Entwicklung vieler neuer Technologien war auch eine Weiterentwicklung des Skillsets der Systemadministrator*innen unabkömmlich. In der Folge beschäftigten sich Systemadministrator*innen immer stärker mit der Suche nach Synergien zwischen 
innovativen Entwicklungsprozessen und neuen Technologien wie Build Tools, dynamischen Umgebungen oder Cloud Computing.  

DevOps-Engineers entwickelten sich also zu einer der Schlüsselrollen, wenn es darum ging, Innovationen voranzutreiben. 

Hier bei twinformatics nutzen DevOps- Engineers ein sehr breites Spektrum an Fähigkeiten und Fertigkeiten, um den Technologie-Stack unseres Unternehmens weiterzuentwickeln. 

Skills

Früher waren die Aufgaben von DevOps-Engineers hauptsächlich die Konfiguration, Administration und das Monitoring von Systemen. Das trifft in gewisser Weise auch heute noch zu. Immerhin braucht es in einem Unternehmen mit vielen Entwickler*innen und ebenso vielen Produkten, die gewartet werden müssen, jemanden der den Systemen seine Aufmerksamkeit widmet. 

Dazu zählen alltägliche Aufgaben wie Sicherungs- und Wiederherstellungsvorgänge, das Auffinden von Fehlern oder das Migrieren von 

Datenbanken. Das, was dem Job des DevOps-Engineers in der twinformatics die Würze verleiht, sind aber viele weitere interessante, herausfordernde und zukunftsorientierte Aufgaben, die ich im Folgenden beschreiben möchte: 

Anderen dabei helfen, effizienter zu arbeiten 

Selbst die besten DevOps-Engineers können sich in einem Unternehmen mit mehr als 500 Mitarbeiter*innen nicht im Alleingang um den Betrieb von Systemen und Applikationen kümmern. Daher lautet unser Leitprinzip „You built it, you run it“. Dieses Prinzip bringt viele Herausforderungen, aber auch Vorteile mit sich. Erfahrungsgemäß beschleunigt 
es den Entwicklungsprozess enorm. Abgesehen davon schärft die Möglichkeit, die Infrastruktur direkt zu beeinflussen, das Bewusstsein und die Verantwortung von Entwickler*innen für DevOps-Prozesse.  

Und genau diese Möglichkeit möchten wir Entwickler*innen geben, indem wir ihnen zuverlässige und nutzbare Mittel zur Verfügung zu stellen.  

Ich möchte das anhand des Beispiels einer Datenbak erklären. Anstatt die Datenbank selbst bereitzustellen, können DevOps-Engineers zur Bereitstellung der erforderlichen Infrastruktur auf automatisierte und getestete Methoden zurückgreifen. Dies kann ein Terraform-Skript, ein Kubernetes Configuration Descriptor für die Cloud oder schlicht und einfach ein Ansible Script sein. Anstatt immer wieder dieselben Aufgaben ausführen zu müssen, reicht es hier, Merge Requests zu überprüfen und zu genehmigen. 

Helfen, neue Technologien einzuführen 

Neben der Automatisierung gehört es zum Rüstzeug von DevOps-Engineers, neue Technologien zu studieren und zu bewerten. Das Schwierige dabei ist, nicht auf jeden Hype aufzuspringen, der gerade kursiert. Viel wichtiger ist es, neue Technologien gründlich unter die Lupe zu nehmen und in erster Linie zu prüfen, wie viel Aufwand bei der Implementierung eines bestehenden Systems auf einen zukommt.  

Ein perfektes Beispiel ist die Docker-Technologie und Docker-Umgebungen wie Swarm, On-Premise Kubernetes oder ihre Cloud-Pendants wie EKS bei Amazon oder GKE bei Google. 

Seit seiner Einführung 2014 hat Kubernetes beachtliche Fortschritte in puncto Benutzerfreundlichkeit, Funktionalität und Flexibilität gemacht. 2014 wäre es ziemlich gefährlich gewesen, den gesamten Technologie-Stack eines Unternehmens hin zu einer selbstverwalteten On-Premise-Installation von Kubernetes zu verschieben. Heute, nur sieben Jahre später, ist die Technologie ausgereift genug, um eine solche Überlegung ernsthaft zu erwägen, insbesondere da Kubernetes selbst, heutzutage längst von allen namhaften Cloud Anbieter als komplett verwaltetes Service verfügbar ist. Und genau damit beschäftigen wir uns derzeit bei twinformatics. 

Kurz zusammengefasst: Das, was den Job von DevOps-Engineers ausmacht, ist die Möglichkeit, sich mit immer neuen Dingen zu beschäftigen und neues zu lernen. 

Das Team unterstützen 

Aufgrund des breiten Spektrums an Aufgaben, die zur täglichen Arbeit von DevOps-Engineers gehören, passiert es ganz automatisch, dass Wissen in fast allen Bereichen des Softwareentwicklungsprozesses und der Infrastruktur-Landschaft gesammelt wird. Dies hilft wiederum dabei, unsere Entwickler*innenTeams zu unterstützen. Diese Unterstützung 
umfasst Aufgaben wie das Erfassen des Netzwerkverkehrs eines Services oder das Durchsuchen von Logdateien in der Kommandozeile , oder auch um den richtigen Ausdruck für die Metrik in einem Grafana-Dashboard zu finden. 

Design der Cloud-Infrastruktur 

Ein wesentlicher und innovativer Aspekt unserer Arbeit, dem ich einen eigenen Absatz widmen möchte, ist cloud-basierte Infrastruktur. 

Insbesondere in großen Unternehmen kann es nahezu unmöglich sein, eine Cloud-Initiative zu starten. Schließlich steht viel auf dem Spiel. Die üblichen Fragen, die auftreten, sind: 

  • Wie können vorhandene Dienste mit cloud-basierten koexistieren? 
  • Kann der Build-Prozess auf eine Cloud-Plattform übertragen werden? 
  • Ist das Netzwerk für eine nahtlose und sichere Integration geeignet? 
  • Wie viel Aufwand ist es, Entwickler*innen zu ermöglichen, die Cloud so nutzen wie sie das von lokaler Infrastruktur gewohnt sind? 
  • Kostet es mehr oder weniger? 
  • Was ist der generelle Nutzen?

Einige dieser Fragen sind für jene leicht zu beantworten, die schon einmal einen Bereitschaftsdienst absolviert haben. Für die Beantwortung anderer Fragen ist es am besten, ein Proof-of-Concept-Szenario zu implementieren. 

Fazit 

Hier bei twinformatics haben DevOps Engineers die Möglichkeit, sich mit interessanten Technologien zu befassen und den bestehenden Technologie-Stack durch innovative Ansätze weiterzuentwickeln. Gleichzeitig wird uns die Freiheit gegeben, neue Ideen zu evaluieren und neue Lösungsansätze zu verfolgen. Auf diese Weise stellen wir sicher, dass wir uns als Unternehmen stetig weiterentwickeln und in dieser schnelllebigen Zeit mit den neuesten technologischen Trends Schritt halten können.