Eine Einführung für Anfänger in die DevOps-Prinzipien

0
118
Shutterstock/BoVLD

DevOps ist ein Schlagwort, das häufig herumgeworfen wird, eigentlich handelt es sich um eine Reihe von Prinzipien, die den gesamten Entwicklungsprozess rationalisieren und steuern sollen, vom Gehirn Ihrer Programmierer bis hin zu Ihren Servern.< /p>

Die Grundlagen

Die meisten Teams können ihre Entwickler wahrscheinlich in zwei Hauptkategorien einteilen:

  • Entwickler, die sich mit der Aktualisierung der Codebasis, der Behebung von Fehlern und der gesamten Programmierung befassen. Sie können auch andere Rollen wie Web- und UI-Designer in diese Kategorie aufnehmen. Im Allgemeinen umfasst dies alle Personen, die an der Entwicklung Ihres Produkts beteiligt sind.
  • Systemadministratoren oder das “Operations-Team” Diese Leute kümmern sich um die Aktualisierung von Servern mit neuem Code, verwalten sowohl Ihre öffentliche als auch interne Serverinfrastruktur und halten alles am Laufen.

Einfach ausgedrückt geht es bei DevOps darum, diese beiden Teams zusammenzuführen (daher das Kofferwort eines Namens). Es macht Ihre Entwickler nicht zu Systemadministratoren oder umgekehrt, aber es sollte ihnen helfen, zusammenzuarbeiten.

Jeder Aspekt und jede Phase wird durch Tools ergänzt, die diesen gesamten Prozess vereinfachen. DevOps ist mehr als nur Tools und Automatisierung und die Implementierung einer Reihe von “DevOps-Tools” wird Ihr Team nicht automatisch doppelt so schnell arbeiten lassen, aber diese Tools sind ein wichtiger Teil des Prozesses und es wäre schwer, ohne einige von ihnen so effizient zu sein.

Während es viele andere Schlagworte gibt, die unter dem Dach von “DevOps” Das Grundkonzept ist ziemlich einfach. Wenn ein Team richtig arbeitet, läuft DevOps im Allgemeinen wie folgt ab:

Shutterstock/Ribkhan

Zur Erläuterung beginnen wir mit der Monitoring-Phase. Dazu müssen Sie Ihre Server im Auge behalten, Analysen beobachten, Protokolle analysieren und Probleme mit Ihrer Codebasis identifizieren. Während ein großer Teil davon mit Code zu tun hat, fällt vieles auch auf die geschäftliche Seite der Dinge. Erreichen Sie Ihre Ziele effektiv? Sind Ihre Kunden zufrieden? In dieser Phase geht es darum, herauszufinden, was nicht stimmt, damit Sie sich die richtigen Ziele setzen können. Beliebte Überwachungstools sind Nagios, AWS CloudWatch und Analysesoftware wie Google Analytics.

Vielleicht bekommen Sie ein Ticket direkt von einem Kunden und beginnen mit der Planungsphase. Hier setzen Sie sich mit Ihren leitenden Entwicklern zusammen und besprechen, was zum Ausfüllen eines Tickets zu tun ist. Wenn Sie Software wie Jira verwenden, werden Sie wahrscheinlich ein großes Ticket in einzelne Storys und Issues aufteilen, die leichter nachverfolgt und einzelnen Entwicklern zugewiesen werden können. Wenn Sie einen Code-Sprint für die nächsten ein oder zwei Wochen planen, sollten Sie Ihren Plan klar aufbereiten, um den Zeitaufwand für das Wiederholen des Codes zu reduzieren.

Werbung

Anstatt nur einmal zu testen und zu bauen, wenn alles fertig ist, reicht jeder Entwickler in einer DevOps-Umgebung im Idealfall mehrmals täglich Änderungen an die Quellcodeverwaltung, wenn Probleme abgeschlossen sind oder ein kleiner Meilenstein erreicht wird. Dadurch können die Build- und Testphasen früh beginnen und sicherstellen, dass sich kein Entwickler zu weit vom HEAD der Master-Quellcodeverwaltung entfernt. In dieser Phase geht es hauptsächlich um die ordnungsgemäße Verwaltung der Quellcodeverwaltung. Ein effektiver Git-Dienst wie GitHub, Gitlab oder BitBucket ist daher entscheidend für einen reibungslosen Ablauf der kontinuierlichen Integration.

Sie müssen nicht jeden Commit sofort für die Produktion bereitstellen, aber schnelle automatisierte Bereitstellungen sind ein wichtiger Bestandteil, um schnelle Releases voranzutreiben. Außerdem entlastet es Ihr Betriebsteam, sodass es sich auf wichtigere Dinge konzentrieren kann, als die Server manuell mit neuem Code zu aktualisieren.

Sobald neue Änderungen bereitgestellt werden, beginnt der Zyklus von vorne. Möglicherweise führt diese neue Funktion, die Sie hinzugefügt haben, dazu, dass der Staging-Datenbankserver Überstunden macht und muss möglicherweise zur Leistungsüberprüfung markiert und vor der Bereitstellung in der Produktion behoben werden. Wenn alles richtig läuft, hört DevOps auf, eine feste Abfolge von Schritten zu sein, sondern wird einfach zu einer Kultur, der jeder auf natürliche Weise folgt.

Continuous Integration/Continuous Delivery Pipelines

h2>

Automatisierung und Tools sind ein wichtiger Bestandteil jeder DevOps-Umgebung. Das vielleicht größte Tool ist eine Continuous Integration/Continuous Delivery (CI/CD)-Pipeline. Dies ist ein automatisierter Prozess, der mit dem Quellcode beginnt und den Prozess des Erstellens, Testens und Bereitstellens auf Servern abwickelt.

Die CodePipeline von AWS ist ein gutes Beispiel dafür. Immer wenn eine Änderung in der Quellcodeverwaltung (entweder GitHub, BitBucket oder AWS CodeCommit) erkannt wird, wird sie zum Erstellen und Testen an AWS CodeBuild gesendet. Alternativ wird Jenkins ziemlich oft verwendet, um diese Build-Phase abzuwickeln.

Wenn ein Build abgeschlossen ist, möchten Sie ihn normalerweise an eine Testumgebung senden, bevor Sie direkt in die Produktion gehen. Dennoch werden die Iterationszeiten durch die Automatisierung von Bereitstellungen sowohl auf Test- als auch auf Produktionsservern erheblich beschleunigt. In der AWS-Pipeline wird dies von CodeDeploy verarbeitet. Jenkins kann auch die Bereitstellung sowie Software wie Ansible übernehmen.

Alles in allem kann eine CI/CD-Pipeline den größten Teil des DevOps-Flows automatisieren, vom Build bis zur Bereitstellung, was sie zu einem entscheidenden Teil für jedes Team macht Sie möchten effizient arbeiten.