4 DevOps-Tipps für kleine Teams
Veröffentlicht: 2020-02-08Sie fragen sich, wie Sie DevOps für kleine Teams bereitstellen können? DevOps ist ein wachsendes Feld der Strategie und Umsetzung in Unternehmen jeder Größe. Es beschleunigt die Markteinführung, ermöglicht schnellere Rollouts und sorgt für zufriedenere Entwickler, Betriebsleiter und Kunden.
Wir werden darüber sprechen, was DevOps ist, wie große Unternehmen es einsetzen und welche Lektionen und Tipps kleine Unternehmen sofort lernen und einsetzen können.
Was ist DevOps?
DevOps ist ein schwierig zu definierender Begriff, vor allem, weil er eine Reihe von Praktiken umfasst. Im Grunde ist DevOps eine Kombination aus zwei Dingen im Sinne einer besseren Kommunikation: „Dev“ steht für „Developers“ und „Ops“ für Operations.
DevOps ist also normalerweise eine Gruppe von Codeentwicklern und Systembetriebsmanagern, die zusammenarbeiten, um Wissenssilos aufzubrechen – im Wesentlichen, um sicherzustellen, dass sie immer auf der gleichen Seite sind, wenn es um die effektive Entwicklung und Bereitstellung von Code geht.
DevOps bedeutet effektive Kommunikation zwischen Abteilungen. Es bedeutet, gemeinsam Strategien für eine Abteilung zu entwickeln, die der anderen Abteilung das Leben erleichtern. Es bedeutet im Allgemeinen auch mehr Code-Automatisierung, kleinere Code-Blöcke, Quellcodeverwaltungssysteme und vielleicht ein paar mehr Meetings.
Aber was passiert ohne DevOps?
Warum wird DevOps benötigt?
Traditionell pflegen Betriebsleiter die Produktionsumgebung – also alles, womit die Kunden und Klienten interagieren.
Entwickler hingegen arbeiten hinter den Kulissen und erstellen Code in der Testumgebung – einem Bereich, der von der Produktionsumgebung abgetrennt ist. Diese Entwicklungsumgebung simuliert im Idealfall die Produktionsumgebung und wie der Code oder die App in der realen Welt funktioniert.
In der Praxis bedeutet dies, dass Entwickler Code in ihre Blase schreiben und ihn zur Bereitstellung in der Produktionsumgebung versenden, wo Betriebsleiter herausfinden müssen, wie alles funktioniert und stabil bleibt, während sie den neuen Code integrieren. Und Entwickler sind normalerweise zu sehr damit beschäftigt, neue Funktionen zu programmieren, und Betriebsleiter sind zu sehr damit beschäftigt, nur zu versuchen, jeden Teller am Laufen zu halten, sodass die Zeit für die Überholung von Kommunikation und Umgebung kurz ist.
Und obwohl DevOps ein wenig Zeit braucht, um sich einzurichten und loszulegen, können die Ergebnisse jedes Unternehmen – ob groß oder klein – agiler und wettbewerbsfähiger machen.
DevOps in großen Unternehmen
DevOps ist ein Slam Dunk bei großen Unternehmen. Bei einer großen Anzahl von Entwicklern und einer ausreichend großen Codebasis kann die Entwicklung und Bereitstellung von Code ein titanischer Kampf sein.
Große Unternehmen haben mehr Kunden. Mehr Kunden bedeuten mehr Server, oft mehr Funktionen und mehr Belastung für das Netzwerk. Dadurch entsteht eine größere Codebasis, was bedeutet, dass selbst kleine Änderungen einen Kaskadeneffekt in der Umgebung haben können. Und da große Unternehmen oft versuchen, neue Funktionen herauszubringen, um auf dem Markt wettbewerbsfähig zu bleiben, müssen die Entwicklungsumgebung und die Produktionsumgebung im Gleichschritt sein.
Unternehmen wie Netflix, Amazon und Target haben sich DevOps zu eigen gemacht, um ihre Dienste zu optimieren. Die Integration ihrer Entwicklungsumgebung in ihre Produktionsumgebung (neben starker Automatisierung) ermöglicht es Netflix und Amazon, tausende Male pro Tag bereitzustellen .
Amazon verwendet ein System der kontinuierlichen Bereitstellung und automatisierten Quellcodeverwaltung, um Revisionen automatisch zu überprüfen und sie ohne menschliches Eingreifen durch den Erstellungs- und Testprozess zu führen.
Die NASA setzt ein ähnliches System ein, das eine Kombination aus dem AWS-Service von Amazon und containerisierten Datensystemen verwendet, um es NASA-Datenspezialisten zu ermöglichen, Telemetriedaten und -analysen mit ihren Ingenieuren in konstantem Tempo auszutauschen.
Aber diese Unternehmen und Organisationen sind enorm. Wie kann ein kleines Team dieses Maß an Organisation und Automatisierung überhaupt erreichen? Wie funktioniert DevOps für kleine Teams in der Wildnis?
DevOps-Lösungen, die kleine Teams übernehmen können
Kleine Teams haben nicht die gleiche Bandbreite wie größere Unternehmen – sowohl in Bezug auf die Anzahl der Mitarbeiter, Abteilungen und Ressourcen. Dies ist jedoch ein zweischneidiges Schwert, da kleinere Teams in der Regel bereits viele DevOps-Lösungen verwenden. Auch wenn es unbeabsichtigt ist.
Das bedeutet jedoch nicht, dass es keine Arbeit gibt, um unten zu sein. Derzeit setzen nur 25 % der Softwareindustrie DevOps auf hohem Niveau um.
Und andere DevOps-Tools und -Strategien können von größeren Unternehmen übernommen und genauso effektiv eingesetzt werden.
1. Erstellen Sie ein DevOps-Team
Wenn Sie kein großes Entwicklerteam haben, kommt die Erstellung eines eigenständigen DevOps-Teams wahrscheinlich nicht in Frage. Wenn Sie einen Entwickler und einen Systemmanager haben oder diese Rollen von derselben Person besetzt werden, könnte sich die Idee eines „Teams“ sogar albern anfühlen.
Und das ist in Ordnung. Es geht nicht unbedingt darum, eine Art Task Force zu gründen – es geht nur um Kommunikation. Selbst wenn Sie einen Entwickler und einen IT-Manager haben, könnte Ihre Form eines DevOps-„Teams“ ein wöchentliches Meeting und tägliche asynchrone Updates sein, um sich gegenseitig über die Vorgänge auf dem Laufenden zu halten.
Die Hauptziele des Teams sollten darin bestehen, die Entwicklungsumgebung an der Produktionsumgebung auszurichten, kleinere Codeabschnitte häufiger zu schreiben (und bereitzustellen) und die Automatisierung und Quellcodeverwaltung zu verbessern.
Lassen Sie uns darüber sprechen, was diese Dinge bedeuten und wie sie erreicht werden können.
2. Richten Sie Praktiken und Umgebungen aus
Sogar kleine Teams können mit der Anpassung ihrer Umgebungen beginnen, indem sie den Entwicklern mehr Zugriff auf die Produktionsumgebung gewähren, sogar nur um zu überwachen, wie sich Revisionen auf das Endprodukt auswirken.
Versuchen Sie, Ihrem Entwicklerteam einen laufenden Feed über den Netzwerkstatus zu geben, selbst wenn dieser nur auf einem Monitor in der Ecke angezeigt wird. Sie können sofort sehen, wie sich ihr bereitgestellter Code auf den Datenverkehr auswirkt, oder feststellen, ob ein plötzlicher Abfall ein großes Problem darstellen könnte.
Sie benötigen auch das DevOps-Team, um eine Strategie zu entwickeln, um die Entwicklungstestumgebung und die tatsächliche Produktionsumgebung so nah wie möglich zu gestalten – idealerweise identisch. Es wird viele Meetings und ein starkes Dokumentationsprojekt beinhalten, um die Umgebungen nicht nur in Einklang zu bringen, sondern sie auch bei Änderungen im Laufe der Zeit auf dem Laufenden zu halten .
Die Ausrichtung der beiden Umgebungen bedeutet, dass das Betriebsteam weniger Zeit damit verbringt, den Entwicklercode in die Realität des Endprodukts nachzurüsten.
3. Stellen Sie kleinere Code-Blöcke bereit
Der dritte Schritt besteht darin, aus der Denkweise des großen Updates herauszukommen. Es kann Wochen oder Monate dauern, bis große Coderevisionen getestet, genehmigt und bereitgestellt werden. Dies verlangsamt die Einführung von Funktionen und macht Sie im Allgemeinen weniger wettbewerbsfähig auf dem Markt. Es macht Sie auch weniger agil im Falle eines neuen, aufregenden Trends oder eines katastrophalen Problems.
Einer der Schlüssel zur Erweiterung von DevOps für kleine Teams in Ihrem Unternehmen besteht darin, sich darauf einzulassen, kleinere Codeblöcke zu schreiben und diese schneller bereitzustellen. Diese sollten so klein sein, dass sie innerhalb weniger Stunden getestet und implementiert werden können.
4. Umfassen Sie Automatisierung und Quellcodeverwaltung
Der letzte Weg zu erfolgreichen DevOps für kleine Teams ist der starke Einsatz von Automatisierung.
Warum Automatisierung? Zum einen beschleunigt die Automatisierung das Testen und Bereitstellen von Code. Es verschafft sowohl den Entwicklern als auch den Betriebsleitern Zeit, um die oben aufgeführten DevOps-Strategien umzusetzen. Diese zusätzliche Zeit ermöglicht es Ihren Dev- und Ops-Teams auch, sich auf Dinge zu konzentrieren, die das Geschäft verbessern, anstatt nur Feuer zu löschen. Und schließlich erhöht es die Effizienz und Genauigkeit der Dokumentation, die beide ihre eigenen Vorzüge für Onboarding, Schulung und Compliance haben.
Zunächst benötigen Sie etwas, mit dem Sie jederzeit und zu jeder Zeit Code erstellen und testen können. Eine App wie Jenkins oder Bitrise kann dazu beitragen, die kontinuierliche Integration und Bereitstellung zu erleichtern.
Dann benötigen Sie eine Versionsverwaltungsplattform, um Überarbeitungen im Code zu verfolgen und zu verwalten. Plattformen wie GitHub und SourceForge können Ihnen dabei helfen.
Der nächste Schritt in der Kette wird ein Konfigurationsmanagementsystem sein, um Konsistenz und Qualität auf ganzer Linie aufrechtzuerhalten. Tools wie Chef oder SaltStack sind großartige Ausgangspunkte.
New Relic schafft eine Plattform zur Beobachtung all Ihrer Systeme und ist äußerst nützlich für die Überwachung dieser Art von End-to-End-Code-Automatisierung.
Es kann auch eine gute Idee sein, sich mit der dynamischen Konfiguration zu befassen, falls Sie das gesamte automatisierte System schnell in eine neue Richtung schwenken müssen.
Implementieren von DevOps für kleine Teams und kleine Organisationen
Machen Sie sich keine Sorgen, dass Ihr Team oder Unternehmen zu klein ist, um DevOps effektiv zu implementieren. Stellen Sie sich diese Tools stattdessen als einen Buffettisch vor, aus dem Sie organisatorische Ideen ziehen können.
Kein Unternehmen, unabhängig von seiner Größe, wird durch mehr Kommunikation, mehr Verantwortlichkeit und eine umfassendere und granularere Revisionsverfolgung Schaden nehmen.