Seit ich bei Linux Handbook und High On Cloud angefangen habe, mit diversen Web-Apps zu arbeiten, hat der DevOps-Begriff oft meine Aufmerksamkeit erregt, da wir bei Linux Handbook speziell darauf eingehen.
Wir haben Tutorials zu vielen Tools im Zusammenhang mit DevOps behandelt, aber wir haben nie wirklich versucht, das eigentliche Konzept eingehend zu untersuchen. Da das Linux-Handbuch Linux-Servern gewidmet ist , müssen wir auch ihre wichtige Rolle im DevOps-Bereich untersuchen.
Aber bevor wir das tun, ist es wichtig zu verstehen, was DevOps wirklich ist. DevOps ist ein äußerst beliebtes Schlagwort und Sie werden im Internet mehrere Definitionen dafür finden. Aber aufgrund meiner eigenen Erfahrungen bin ich fortan zu folgenden schlüssigen Definitionen und Gedanken gelangt. Dies ist ein Versuch, bestehende DevOps-Normen zu überdenken und in Form eines neuen Modells zu überdenken, das ich hier vorschlage.
Was ist DevOps?
DevOps ist ein kontinuierlicher Vereinfachungsprozess zur Aufrechterhaltung eines empfindlichen Gleichgewichts zwischen Funktionalität, Benutzerfreundlichkeit und Sicherheit einer Anwendung, sowohl in Bezug auf ihre Entwicklung Entwicklung und Op erations .
Wie kann ich das sicherstellen?
Sicherzustellen, dass sich eine Anwendung effizient entwickelt und gleichzeitig betriebsbereit ist, ist eine ständige Herausforderung für DevOps-Ingenieure. Dazu müssen die grundlegendsten Komponenten von DevOps kontinuierlich überwacht werden.
Lebenszyklus der Anwendungsentwicklung (ADLC)
Eine neue Anwendung erstellen? Du startest gleich hier!
Der Anwendungsentwicklungslebenszyklus ist die grundlegende Motivation hinter der Entwicklung einer Anwendung. Wenn der Entwicklungsprozess nicht sorgfältig und konsequent überwacht wird, können Sie sich seiner fehlerfreien Entwicklung nicht absolut sicher sein. Eine Anwendung unterliegt immer ADLC, bis sie produktionsreif ist.
ADLC ist ein wesentliches Software-Engineering-Prinzip, das aus sechs wesentlichen Phasen besteht. Die Entwicklung einer Anwendung umfasst die folgenden Schritte:
- Konzeptplan :Den Kerngedanken hinter der Anwendung formen.
- Programmierung :Hier wird die Anwendung erstellt und entwickelt.
- Dokumentation :Eine exzellente Anwendung ist ohne sorgfältige (für Menschen lesbare) Dokumentation nutzlos.
- Testen zur Qualitätssicherung :Sicherstellen, dass das Endprodukt funktionsfähig, benutzerfreundlich und sicher ist.
- Fehlerbehebung :Beim Testen gemeldete Fehler werden behoben.
- Entwicklungsversion :Die erste Version der Anwendung wird veröffentlicht.
Bis und sofern keine stabile Version verfügbar ist, wird dieser Zyklus bestehen bleiben. Sobald eine Software als produktionsbereite stabile Version veröffentlicht wird, fällt sie nicht mehr unter ADLC. Es fällt schließlich unter den System Development Life Cycle (SDLC).
Lebenszyklus der Systementwicklung (SDLC)
Ein Teil unserer DevOps-Community könnte sagen, dass sowohl ADLC als auch SDLC ein und dasselbe sind. Aber im realen Szenario sehe ich, dass ADLC und SDLC ziemlich unterschiedlich sind.
Der Lebenszyklus der Systementwicklung ist die grundlegende Motivation sowohl für die Entwicklung als auch für den Betrieb einer Anwendung. Es beinhaltet die kontinuierliche Weiterentwicklung der Anwendung nach ihrer ersten stabilen Veröffentlichung und stellt ihre kontinuierliche Betriebsfähigkeit sicher.
- Konzeptplan :Überarbeitung der Kernidee hinter der Anwendung.
- Programmierung :Hier wird die Anwendung weiterentwickelt.
- Dokumentation :Kontinuierliche Aktualisierung der menschenlesbaren Dokumentation.
- Testen neuer Versionen auf Qualität :Sicherstellen, dass das neue Endprodukt funktionsfähig, benutzerfreundlich und sicher ist.
- Fehlerbehebung :Beim Testen gemeldete Fehler werden behoben.
- Entwicklungsversion :Für eine neue Anwendung (versionsmäßig oder als App selbst) entwickelt sich eine Entwicklungsversion in dieser Phase zu ihrer ersten stabilen Version.
- Stabile Version :Die neueste stabile Version wird als Produkt mit Korrekturen in Bezug auf Fehler/Sicherheit zusammen mit neuen Funktionen veröffentlicht.
- Bereitstellung :Das stabile Produkt wird auf Server(n) bereitgestellt.
- Wartung &Überwachung :Konsequente und regelmäßige Überwachung von Servern und den darauf ausgeführten Anwendungen.
Ein von der Community betriebenes offenes Modell wird immer die reibungsloseste Wartung haben. Der letzte Schritt im Zyklus ist wirklich nur mit einem Open-Source-Modell erreichbar. Dies ist der wichtigste Faktor in Bezug auf die Entwicklung einer Anwendung.
Eine Anwendung, die noch kein stabiles Release hat, kann nicht als abgeschlossen betrachtet werden. Sobald eine Anwendung vollständig erstellt ist, entwickelt sich ADLC zu SDLC. Warum?
- ADLC ist ein reiner Entwickler Entwicklungsmodell
- SDLC ist sowohl ein Entwickler Entwicklung und Op erations Modell
Verstehst du jetzt meinen Punkt? Unter ADLC ist eine Anwendung noch nicht produktionsbereit, weshalb sie sich noch in der Barebone-Entwicklung befinden würde. Daher können wir es nicht DevOps nennen. Erst wenn die erste stabile Version herauskommt, entwickelt sie sich zu SDLC, was DevOps ist, weil eine produktionsreife Anwendung dann kontinuierlich betriebsbereit ist.
Wie aus den beiden Abkürzungen und dem obigen Diagramm hervorgeht, unterscheidet sich eine Anwendung stark von einem gesamten System. Eine Anwendung ist nur ein Teil eines vollständigen systemischen Prozesses. Das unterscheidet SDLC von ADLC. ADLC ist also eigentlich eine Teilmenge von SDLC.
SDLC muss von uns als Community kontinuierlich weiterentwickelt werden, wobei das empfindliche Gleichgewicht zwischen Funktionalität, Benutzerfreundlichkeit und Sicherheit zu berücksichtigen ist.
Präsentation des neuen DevOps-Dreiecks
Dieses Diagramm ist nie dasselbe, weil SDLC nie stationär ist. Es ist SDLC, das kontinuierlich geschwenkt wird innerhalb des Dreiecks durch die Community basierend auf dem kontinuierlichen Feedback von Entwicklern, Testern und Benutzern.
Ein derartiger Schwenkprozess ändert sich ständig gemäß den Anforderungen der eingesetzten Anwendung. Dieses sich ständig ändernde Modell in der realen Welt ist der Prozess von DevOps.
Wo SDLC innerhalb des Dreiecks liegt, wird immer von Anwendung zu Anwendung variieren. Die schwenkbare Position hängt tatsächlich von der Art der Anwendung ab, die während der Entwicklung mit einem genauen Auge auf Folgendes entwickelt wird:
Funktionalität :Die primäre Funktion der Anwendung. Zum Beispiel die Möglichkeit, Nachrichten über Rocket.Chat zu versenden.
Benutzerfreundlichkeit :Die Benutzerfreundlichkeit der Anwendung. Zum Beispiel, wie bequem Sie Nachrichten über Rocket.Chat versenden können.
Sicherheit :Sicherheitsgrad der Anwendung. Zum Beispiel eine Fehlerbehebung, die eine Rocket.Chat-Schwachstelle wie diese behebt.
Eine vielfältige Community, die eine Open-Source-Anwendung unterstützt, muss immer ein empfindliches Gleichgewicht zwischen Funktionalität, Benutzerfreundlichkeit und Sicherheit wahren.
Aber wie eigentlich?
Demut am Arbeitsplatz:Ultimative Präzision in der Drehbewegung
Letztendlich sind Entwickler, Benutzer und Tester alle Menschen. Ob lokal oder virtuell, DevOps-Kulturen und -Arbeitsplätze müssen die einfache Idee des Mitgefühls übernehmen. Ein Arbeitsplatz, der Freundlichkeit unter Kollegen praktiziert, wird zwangsläufig sowohl die ADLC- als auch die SDLC-Produktivität steigern!
Es geht nicht nur um Web-Apps, es geht auch um Menschen. Sie sind diejenigen, die sie kontinuierlich erstellen, bereitstellen und warten. Darum geht es in der Community und deshalb ist DevOps auch eine Kultur. Die DevOps-Kultur erstreckt sich nicht nur auf die Verwaltung einer Webanwendung, sondern auch auf die Menschen, die sie verwirklichen.
Ein Open-Source-Ansatz macht diesen gesamten Prozess weitaus leichter erreichbar als ein proprietärer. Das habe ich gefühlt, als ich mit diesem kollektiven System aus Menschen, Praktiken und Technologie gearbeitet habe .
Ich freue mich darauf, meine Gedanken zu diesem Genre in einer Reihe von Artikeln weiterzugeben, die folgen werden. Meiner Meinung nach ist DevOps überall anwendbar, sei es in einem kleinen, mittleren oder großen Unternehmen, aber in Form von personifizierten Modellen.
Dies ist nur ein kleiner Teil dessen, was ich in dieser Serie unbedingt erforschen möchte. Bitte teilen Sie Ihre Gedanken im Kommentarbereich unten mit. Vielen Dank für Ihren Besuch im Linux-Handbuch!