DevOps: Konzept und Umfang | Komentor

Der Softwareentwicklungszyklus hat sich so sehr von dem, was er früher war, zu einem effizienteren und pragmatischeren entwickelt. Diese Entwicklung war notwendig wegen der ständig steigenden Zahl realer Probleme mit komplexen Lösungen. Bisher war der Lebenszyklus der Softwareentwicklung, auch als SDLC bekannt, sehr starr. Natürlich wurde es damals zur Lösung der Softwareentwicklungsprobleme eingesetzt, aber der Bedarf an einer besseren Vorgehensweise führte zur Entwicklung der Agile-Methodik.

Agile Softwareentwicklung kann als eine Reihe von Methoden und Praktiken beschrieben werden, die ein Softwareteam leiten. Diese Methoden und Prinzipien ermöglichen die Denkweise von Zusammenarbeit mit allen Beteiligten u Flexibilität beim Reagieren auf und Bewirken von Änderungen, während das Team ein Softwareprodukt erstellt. Die agile Methode der Softwareentwicklung hat enorme Erfolge verzeichnet, sowohl in Bezug auf die Erfüllung der Erwartungen aller Beteiligten, die rechtzeitige Lieferung eines funktionierenden Produkts als auch die schnelle Reaktion des Teams auf Änderungen des Kunden. Es scheint jedoch, dass sich die agile Methodik mehr auf das „ Kodierung ” Aspekt des Software-Lebenszyklus. Auf die Bereitstellung, Sicherung und Skalierbarkeit des Softwareprodukts im agilen Ökosystem wurde nicht viel Wert gelegt. Es gab eine virtuelle Mauer zwischen dem Team, das den Code schreibt, und dem Team, das den Code versendet oder bereitstellt. Dies führte zu so vielen Herausforderungen, von denen festgestellt wurde, dass sie beide Teams betreffen. Die Lösung für dieses Problem wurde in zwei Wörtern gefunden, die zu einem verbunden wurden, nämlich: Entwicklung + Operationen = DevOps

Definitionen

DevOps besteht, wie bereits angedeutet, aus zwei Wörtern Entwicklung und Operationen. „Es ist eine Software-Engineering-Praxis, die darauf abzielt, Softwareentwicklung (Dev) und Softwarebetrieb (Ops) zu vereinen“ — Wikipedia. Amazon Web Services ( AWS ) definierte DevOps als „die Kombination kultureller Philosophien, Praktiken und Tools, die die Fähigkeit einer Organisation erhöht, Anwendungen und Dienste mit hoher Geschwindigkeit bereitzustellen: Produkte schneller zu entwickeln und zu verbessern als Organisationen, die herkömmliche Softwareentwicklungs- und Infrastrukturverwaltungsprozesse verwenden“. Das Schöne an den beiden obigen Definitionen ist, dass beide übereinstimmen, dass DevOps eine Praxis ist. Einige Fachleute auf diesem Gebiet glauben jedoch, dass es sich nicht nur um eine Praxis, sondern um eine Denkweise handelt. Chidiebube Amos, ein DevOps-Lernvermittler bei Andela, definierte es als „eine Denkweise, die die Herausforderungen beim Versand und der Sicherung von Softwareprodukten auf AGILE Weise minimiert“. Bemerkenswert bei dieser späteren Definition ist die Erwähnung des agilen Weges. DevOps erweitert agile Prinzipien über die Grenzen „des Codes“ hinaus auf die gesamten bereitgestellten Services. Obwohl es mehrere Definitionen dessen geben kann, was DevOps ist, ist es wichtig zu beachten, dass DevOps mit der agilen Methodik das Verständnis, die Praxis und die Denkweise erreichen möchte, dass Software erst dann fertig ist, wenn sie erfolgreich an den Endbenutzer geliefert wurde und seinen Anforderungen entspricht Erwartungen.

Warum DevOps

Es gibt eine Reihe von Gründen, warum DevOps in der Welt der Softwareentwicklung relevant ist:

1. Verbesserte Teamkommunikation und Zusammenarbeit: Vor der Zeit von DevOps war es eine Geschichte, in der das Entwicklungsteam die Anwendung an das Betriebsteam übergab und dann auf das Ergebnis wartete. Oftmals baute dies eine hohe Mauer zwischen den beiden Teams auf, da das Dev-Team nur daran interessiert war, die Features fertigzustellen, während sich die Ops-Teams um die Auslieferung und Bereitstellung kümmerten. Jedes Team war einfach nicht genug besorgt darüber, was im anderen Team vor sich geht. Einfach gesagt, es fehlte an Zusammenarbeit und Kommunikation. DevOps bringt eine Kultur auf den Tisch, in der diese Teams vereint sind und ein ultimatives Ziel haben, nämlich die Bereitstellung einer funktionierenden Anwendung auf die effektivste und effizienteste Weise für den Endbenutzer. Die Kultur konzentriert sich mehr auf die Leistung als auf die individuellen Teamziele.

2. Kürzerer Entwicklungszyklus: Mit dem Konzept von DevOps werden die Entwicklungs- und Betriebsteams harmonisch. Dies bedeutet, dass aufgrund der ordnungsgemäßen Kommunikation und des Informationsaustauschs weniger Zeit für die Entwicklung und Bereitstellung der Anwendung aufgewendet wird. Um diesen Punkt besser zu verstehen: Angenommen, ein Entwicklerteam benötigt 2 Stunden, um das Produkt fertigzustellen, und weitere 2 Stunden, bis die Ops-Teams herausfinden, wie die Anwendung eingerichtet und bereitgestellt wird, bedeutet dies, dass beide Teams insgesamt 4 Stunden aufwenden . So viel Zeit, die das Ops-Team aufwendet, ist sehr unnötig, vorausgesetzt, beide Teams arbeiten synchron miteinander. Mit anderen Worten, wenn die Ops-Teams wissen, welche Umgebungsvariable festgelegt werden muss, welche Paketversionen und welche Anwendungsanständigkeiten das Entwicklerteam verwendet hat usw., kann dies die Zeit, die sie für das Versenden und Bereitstellen der gesamten Anwendung aufwenden, erheblich verkürzen . Das Endergebnis ist, dass weniger Zeit für die Erstellung und Lieferung des Produkts an den Endbenutzer aufgewendet wird.

3. Schnellere Minderung von Softwarefehlern: Durch eine bessere Kommunikation und Zusammenarbeit zwischen Operations und Softwareentwicklern können Fehler und Mängel in der Anwendung in jeder Phase des Entwicklungszyklus rechtzeitig erkannt und behoben werden. Darüber hinaus ist die Wiederherstellung nach einem Ausfall viel schneller, wenn die Entwicklungs- und Betriebsteams zusammenarbeiten, Ideen austauschen und die Herausforderungen beider Teams während der Entwicklung berücksichtigen.

4. Erhöhte Effizienz: DevOps bringt Automatisierung in Aufgaben, die die Effizienz des Softwareentwicklungsprozesses erheblich steigern. Aufgaben wie das Testen werden mithilfe von Continuous Integration (CI) automatisiert. Die Cloud-basierte Plattform trägt dazu bei, den Prozess der Bereitstellung und der Testvorgänge zu beschleunigen. Tools zur Buildbeschleunigung können dabei helfen, Code schneller zu kompilieren. Diese Tools helfen, den Softwareentwicklungsprozess zu beschleunigen.

5. Besseres Ressourcenmanagement: Ressourcen wie Zeit und Manpower werden mit DevOps agil besser genutzt. Dies liegt daran, dass es keine Kommunikationsmauer zwischen den QA-Teams und Testern oder zwischen den Entwicklern und dem Betrieb usw. gibt. Das Ergebnis davon ist ein angemessenes Zeitmanagement und eine schnellere Bereitstellung von Ressourcen für das nächste Team, das sie benötigt.

DevOps nutzt die Denkweise von Menschen statt Prozessen statt Tools. Tools können helfen, die Arbeit zu erleichtern, aber wenn der Prozess und die Person, die das Tool verwendet, nicht funktionsfähig sind oder nicht ordnungsgemäß verwaltet werden, ist das Tool so gut wie nichts. Aus diesem Grund priorisiert DevOps den Menschen über den Prozess und den Prozess über das Tool.

Wenn jedoch nicht das geeignete Werkzeug verwendet wird, kann eine Katastrophe möglicherweise nicht vollständig vermieden werden. Es gibt zahlreiche Tools, mit denen DevOps ihre Aufgaben erledigen kann, hier sind einige davon:

1. Cloud-Computing-Plattformen: Der Begriff Cloud ist eine Metapher, die in der Tech-Welt verwendet wird, um das Internet zu bezeichnen. Natürlich ist diese Erklärung sehr einfach, aber sehr relevant für das Verständnis des Konzepts des Cloud Computing. „Cloud Computing ist ein Paradigma der Informationstechnologie (IT), das den allgegenwärtigen Zugriff auf gemeinsam genutzte Pools konfigurierbarer Systemressourcen und übergeordneter Dienste ermöglicht, die mit minimalem Verwaltungsaufwand schnell bereitgestellt werden können, häufig über das Internet.“ —Wikipedia. Einfach ausgedrückt bedeutet Cloud Computing das Speichern und Zugreifen auf Daten und Programme über das Internet anstelle der herkömmlichen Verwendung physischer Hardware. Es gibt drei grundlegende Modelle, die beim Cloud Computing verwendet werden:

  • Infrastruktur als Service (IaaS)
  • Plattform als Service (PaaS)
  • Software als Service (SaaS)

Die Erklärung dieser Modelle würde den Rahmen dieses Artikels sprengen, aber sie sind sehr einfach zu verstehen.

Einige der beliebten Anbieter, die diese Dienste anbieten, sind unten in keiner bestimmten Reihenfolge aufgeführt:

  • Amazon Webservice
  • Google Cloud-Plattform
  • Microsoft Azure
  • Rackspace
  • OpenStack
  • Pivotal Cloud Foundry

2. Virtualisierungsplattform: Das Wort „virtuell“ bezeichnet etwas, das nicht physisch ist. Virtualisierung bedeutet in diesem Zusammenhang die Verwendung von Software zur Abstraktion von Hardware. Dies ist das Rückgrat der Cloud-Plattform, die wir oben definiert haben. Virtualisierung kann Anwendungen, Server, Speicher und Netzwerke betreffen. Übliche Tools, die für die Virtualisierung in DevOps verwendet werden, sind:

  • VMware
  • Ganeti
  • KVM (kernbasierte virtuelle Maschine)
  • Xen
  • VirtualBox
  • Offenbar
  • Packer
  • Landstreicher
  • Virtuell
  • QEMU

3. Containerisierung: Dies ist eines der Toolsets, die das Leben einfacher machen. Das meine ich übrigens wörtlich. Die Idee von Containern besteht darin, alles, was die Software zum Ausführen benötigt, in einem Dateisystem zu haben. Die Essenz besteht darin, eine automatisierte Bereitstellung von Software zu ermöglichen. In einem professionelleren Begriff: „Anwendungscontainerisierung ist eine Virtualisierungsmethode auf Betriebssystemebene, die verwendet wird, um verteilte Anwendungen bereitzustellen und auszuführen, ohne eine ganze virtuelle Maschine (VM) für jede Anwendung zu starten.“ — searchitoperations.techtarget.com

Häufig verwendete Werkzeuge dafür sind:

  • Docker
  • LXC (Linux-Container)

4. Kontinuierliche Integration: Kontinuierliche Integration ist der Prozess des Automatisierens und Testens von Code, wenn Änderungen am Quellcode vorgenommen werden. Diese Änderungen am Quellcode werden häufig in einem Versionskontroll-Repository wie Github vorgenommen. Alle am Quellcode im Repository vorgenommenen Änderungen lösen ein Build-System aus, um den neuesten Code aus dem gemeinsam genutzten Repository abzurufen und den vollständigen Master-Branch zu erstellen, zu testen und zu validieren. CI-Tools in DevOps sind:

  • Jenkin
  • Travis C.I
  • Team Stadt
  • Gradl

5. Zusammenarbeit Zusammenarbeit ist eines der großartigsten Werkzeuge in DevOps. Die gesamte Philosophie von DevOps hängt von der Zusammenarbeit ab. Es gibt mehrere Tools, die für die Zusammenarbeit mit Teams im DevOps-Ökosystem verwendet werden können. Sie sind:

  • Locker
  • Microsoft Teams
  • HipChat
  • Basislager
  • Favro

Bevor ich meine letzte Verbeugung mache, möchte ich das Wort erwähnen KAMS für dich. Das stimmt! Du kannst es laut sagen. Dies ist ein Akronym, das von Damon Edwards und John Willis auf den DevOpsDays Mountainview 2010 geprägt wurde und für das steht C Kultur EIN Automatisierung M Messung u S Haring. Dies sind die Kernwerte der DevOps-Bewegung, und es ist wichtig und notwendig, dass jede Organisation, die das Konzept von DevOps anwenden möchte, dies tun sollte KAMS Werte. Diese Werte sind für sich genommen sehr wichtig, um ein sehr erfolgreiches Team aufzubauen. Sie werden einfach als DevOps-Werte angepasst, um den Himmel zu Ihrem Ausgangspunkt gegenüber Ihrem Limit zu machen.

Similar Posts

Leave a Reply

Your email address will not be published.