DevOps

DevOps ist eine Reihe von Praktiken, die sich kombinieren Software-Entwicklung (Dev) und IT -Operationen (Ops). Es zielt darauf ab, die zu verkürzen Lebenszyklus für Systementwicklung und sorgen kontinuierliche Lieferung mit hoch Softwarequalität.[1] DevOps ergänzt sich mit Agile Software Entwicklung; Mehrere DevOps -Aspekte stammen aus der agilen Methodik.

Definition

Anders als eine funktionsübergreifende Kombination (und a Handkoffer) der Begriffe und Konzepte für "Entwicklung" und "Operationen" haben Akademiker und Praktiker keine universelle Definition für den Begriff "DevOps" entwickelt.[a][b][c][d] In den meisten Fällen ist DevOps durch Schlüsselprinzipien gekennzeichnet: gemeinsames Eigentum, Workflow -Automatisierung und schnelles Feedback.

Aus akademischer Sicht,, Len Bass, Ingo Weber und Liming Zhu - drei Informatikforscher aus dem Csiro und die Software Engineering Institute–Gekediertes Definieren von DevOps als "eine Reihe von Praktiken, mit denen die Zeit zwischen der Veränderung eines Systems und der Veränderung in die normale Produktion eingesetzt und gleichzeitig eine hohe Qualität gewährleistet wird".[5]

Der Begriff wird jedoch in mehreren Kontexten verwendet. DevOps ist eine Kombination aus spezifischen Praktiken, Kulturwandel und Tools.[6]

Geschichte

1993 das Telekommunikationsinformations -Networking -Architekturkonsortium (Tina-C) definierte ein Modell eines Service -Lebenszyklus, das die Softwareentwicklung mit (Telecom) Service -Operationen kombinierte.[7]

Im Jahr 2009 fand die erste Konferenz namens DevOpsDays in statt Gent, Belgien. Die Konferenz wurde vom belgischen Berater, Projektmanager und agilen Praktiker Patrick Debois gegründet.[8][9] Die Konferenz hat sich nun auf andere Länder verbreitet.[10]

Im Jahr 2012 wurde der Bericht des Bundesstaates DevOps von Alanna Brown bei Puppet konzipiert und ins Leben gerufen.[11][12]

Ab 2014 wurde der jährliche Bericht des State of DevOps von DevOps veröffentlicht von Nicole Forsgren, Gene Kim, Jez Humble und andere. Sie gaben an, dass die Annahme von DevOps beschleunigte.[13][14] Ebenfalls im Jahr 2014 schrieben Lisa Crispin und Janet Gregory das Buch agilere Tests mit einem Kapitel über Tests und DevOps.[15][16]

Im Jahr 2016 wurden die DORA -Kennzahlen für den Durchsatz (Bereitstellungsfrequenz, Vorlaufzeit für Änderungen) und Stabilität (mittlere Zeit für die Wiederherstellung, Änderungsausfallrate) im Bericht des Standes der DevOps veröffentlicht.[11]

Beziehung zu anderen Ansätzen

Viele der Ideen, die für DevOps -Praktiken von grundlegender Bedeutung sind Mager und Deming Plan-Do-Check-Act durchlaufen, bis zu Der Toyota -Weg und die Agil Annäherung an das Abbau von Komponenten und Stapelgrößen.[17] Entgegen dem "Top-Down"-proskriptiven Ansatz und dem starren Rahmen von Itil In den neunziger Jahren ist DevOps "Bottom-up" und eine flexible Praxis, die von Software-Ingenieuren erstellt wurde und die Software-Ingenieurbedürfnisse berücksichtigt.[18]

Agil

Die Motivationen für das zu moderne DevOps und mehrere Standard -DevOps -Praktiken wie automatisierter Build und Test, kontinuierliche Integration, und kontinuierliche Lieferung Ursprung aus der agilen Welt, die (informell) bis in die neunziger Jahre und formell bis 2001 stammt. Agile Entwicklungsteams verwenden Methoden wie Methoden wie z. Extremes Programmieren konnte den Kunden nicht durch eine frühzeitige und kontinuierliche Lieferung einer wertvollen Software zufriedenstellen "[19] Sofern sie nicht die mit ihren Anwendungen verbundenen Operationen / Infrastrukturverantwortung subsumiert haben, von denen viele sie automatisiert haben. Da Gedränge In den frühen 2000er Jahren wurde der dominierende agile Rahmen und ließ die technischen Praktiken, die Teil vieler agiler Teams waren, die Bewegung zur Automatisierung von Operationen / Infrastrukturfunktionen weg, die aus agilen und zu modernen DevOps ausgeweitet wurden. Heute konzentriert sich DevOps auf die Bereitstellung entwickelter Software, unabhängig davon, ob sie über Agile oder andere Methoden entwickelt wird.

Erzbänder

Archops präsentiert eine Erweiterung für DevOps -Praxis, beginnend mit Softwarearchitektur Artefakte anstelle von Quellcode für die Betriebsbereitstellung.[20] Archops gibt an, dass Architekturmodelle erstklassige Einheiten in der Softwareentwicklung, Bereitstellung und Operationen sind.

CI/CD

Automatisierung ist ein Kernprinzip für den Erfolg von DevOps und CI/CD ist eine kritische Komponente.[21] Außerdem trägt die Verbesserung der Zusammenarbeit und Kommunikation zwischen und innerhalb der Teams dazu bei, schneller zu erreichen Zeit zum Marktmit reduzierten Risiken.[22]

Standortverantwortungstechnik

In 2003, Google aufgetreten Standortzuverlässigkeitstechnik (SRE), ein Ansatz zur Veröffentlichung neuer Merkmale kontinuierlich in großflächige Hochverfügbarkeitssysteme und gleichzeitig qualitativ hochwertige Endbenutzererfahrung.[23] Während Sre vor der Entwicklung von DevOps geht, werden sie im Allgemeinen als miteinander verbunden angesehen.

Toyota -Produktionssystem, Lean Thinking, Kaizen

Toyota -Produktionssystem, auch unter dem Akronym TPS bekannt, war die Inspiration für schlankes Denken mit seinem Fokus auf ständige Verbesserung, Kaizen, Fluss und kleine Chargen. Das Andon Cord -Prinzip Um schnelles Feedback zu erstellen, ist Schwarm und die Lösung von Problemen aus TPS.[24][25]

DevSecops, Verlagerung der Sicherheit verlassen

DevSecops ist eine Erweiterung von DevOps, damit Sicherheitspraktiken in den DevOps -Ansatz integriert werden können. Im Gegensatz zu einem traditionellen zentralisierten Sicherheitsteammodell ist jedes Lieferteam befugt, die richtigen Sicherheitskontrollen in seine Softwarebereitstellung zu berücksichtigen. Sicherheitspraktiken und Tests werden früher im Entwicklungslebenszyklus durchgeführt, daher der Begriff "nach links verschieben" kann verwendet werden. Die Sicherheit wird in drei Hauptbereichen getestet: statische, Softwarezusammensetzung und Dynamik.

Überprüfen Sie den Code statisch über Statische Anwendungssicherheitstests (Sast) ist White-Box-Test mit besonderem Schwerpunkt auf Sicherheit. Abhängig von der Programmiersprache sind verschiedene Tools erforderlich, um eine solche statische Codeanalyse durchzuführen. Die Software -Komposition wird analysiert, insbesondere Bibliotheken und ihre Version Zertifikat und andere Expertengruppen. Wenn sie Kunden Software geben, stehen Lizenzen und deren Übereinstimmung mit einer der verteilten Software im Mittelpunkt, insbesondere im Fokus Copyleft Lizenzen. Dynamische Tests werden auch genannt Black-Box-Tests. Die Software wird getestet, ohne ihre inneren Funktionen zu kennen. In DevSecops wird es in einer Hand genannt dynamisch (Dast) oder Penetrationstests. Das Ziel ist es, unter anderem Fehler zu fangen wie Cross-Site-Scripting, oder SQL-Injektion frühzeitig. Bedrohungstypen werden zum Beispiel von der veröffentlicht Öffnen Sie das Sicherheitsprojekt für Webanwendungen, z.B. Es ist Top10.[26] Andererseits, besonders mit Microservices Interaktive Anwendungstests (IAST) ist hilfreich, um zu überprüfen, welcher Code ausgeführt wird, wenn automatisierte Funktionstests ausgeführt werden. Der Schwerpunkt liegt auf der Erkennung von Schwachstellen innerhalb der Anwendungen. Im Gegensatz zu Sast und Dast arbeitet IAST in der Anwendung.

Kultureller Wandel

DevOps -Initiativen können kulturelle Veränderungen in Unternehmen schaffen[27] Indem Sie den Weg transformieren Operationen, Entwickler, und Tester Arbeiten während der Entwicklungs- und Lieferprozesse.[1] Es ist eine entscheidende Herausforderung bei der Einführung von Enterprise Devops, diese Gruppen zusammenzuarbeiten.[28][29] Bei DevOps geht es genauso um Kultur wie um die Toolchain.[30]

Microservices

Obwohl es im Prinzip möglich ist, DevOps mit jedem architektonischen Stil zu praktizieren, ist die Microservices Der Architekturstil wird zum Standard für den Bau kontinuierlich einsetzter Systeme. Der kleine Service -Service ermöglicht es der Architektur eines individuellen Dienstes durch kontinuierliches Refactoring.[31]

DevOps Automatisierung

Es unterstützt auch Konsistenz, Zuverlässigkeit und Effizienz innerhalb der Organisation und wird normalerweise durch ein freigegebenes Code -Repository oder eine Versionskontrolle aktiviert. Wie DevOps -Forscher Ravi Teja Yarlagadda hypotheket: "Durch DevOps wird angenommen, dass alle Funktionen mit einem einfachen Code an einem zentralen Ort durchgeführt, kontrolliert und verwaltet werden können."[32]

Automatisierung mit Versionskontrolle

Viele Organisationen verwenden die Versionskontrolle, um DevOps Automatisierungstechnologien wie virtuelle Maschinen, Containerisierung (oder Virtualisierung auf OS-Ebene), und CI/CD. Die Paper DevOps: Die Entwicklung einer Toolchain im Bankdomain stellt fest, dass bei Teams von Entwicklern, die an demselben Projekt arbeiten, alle Entwickler Änderungen an derselben Codebasis vornehmen und manchmal auch dieselben Dateien bearbeiten müssen. Für eine effiziente Arbeit muss es dort sind Seien Sie ein System, das den Ingenieuren hilft, Konflikte zu vermeiden und die Codebasisgeschichte zu behalten, "[33] Mit dem Git -Versionskontrollsystem und der Github -Plattform, auf die als Beispiele bezeichnet werden.

Gitops

Gitops entwickelten sich aus DevOps.[34][35][36] Der spezifische Zustand der Bereitstellungskonfiguration ist Version kontrolliert (Verwendung Git zum Beispiel).[37][38][39] Änderungen an der Konfiguration können mithilfe von verwaltet werden Code-Review Praktiken und können mit der Versionskontrollierung zurückgerollt werden.

Siehe auch

Anmerkungen

  1. ^ Dyck et al. (2015) "Nach unserem Kenntnisstand gibt es keine einheitliche Definition für die Begriffe, die Engineering und DevOps veröffentlichen. Infolgedessen verwenden viele Menschen ihre eigenen Definitionen oder verlassen sich auf andere, was zu Verwirrung über diese Begriffe führt."[2]
  2. ^ Jabbari et al. (2016) "Die Forschungsergebnisse dieser Studie haben gezeigt, dass eine Definition erforderlich ist, da einzelne Studien DevOps nicht konsequent definieren."[3]
  3. ^ Erich et al. (2017) "Wir haben festgestellt, dass es in der Untersuchung von DevOps verschiedene Lücken gibt: Es gibt keinen Konsens darüber, was Konzepte DevOps abdeckt, noch wie DevOps definiert sind."[4]
  4. ^ Erich et al. (2017) "Wir haben festgestellt, dass es kaum Übereinstimmung über die Merkmale von DevOps in der akademischen Literatur besteht."[4]

Verweise

  1. ^ a b Loukides, Mike (7. Juni 2012). "Was ist DevOps?". O'Reilly Media.
  2. ^ Dyck, Andrej; Penner, Ralf; Lichter, Horst (19. Mai 2015). "Auf dem Weg zu Definitionen für Release Engineering und DevOps". Proceedings des IEEE/ACM 3. Internationalen Workshops 2015 über Release Engineering. IEEE: 3. doi:10.1109/releng.2015.10. ISBN 978-1-4673-7070-7. S2CID 4659735.
  3. ^ Jabbari, Ramtin; bin Ali, Nauman; Petersen, Kai; Tanveer, Binish (Mai 2016). "Was ist DevOps ?: Eine systematische Kartierungsstudie zu Definitionen und Praktiken". Verfahren des wissenschaftlichen Workshops 2016. Verband für Rechenmaschinen.
  4. ^ a b Erich, F. M. A.; Amrit, C.; Daneva, M. (Juni 2017). "Eine qualitative Studie zur Verwendung von DevOps in der Praxis". Journal of Software: Evolution und Prozess. 29 (6): e1885. doi:10.1002/smr.1885. S2CID 35914007.
  5. ^ Bass, Len; Weber, Ingo; Zhu, Liming (2015). DevOps: Perspektive eines Softwarearchitekten. ISBN 978-0134049847.
  6. ^ Muñoz, Mirna; Negrete Rodríguez, Mario (April 2021). "Eine Anleitung zur Umsetzung oder Stärkung eines DevOps -Ansatzes in Organisationen: eine Fallstudie". {{}}: Journal zitieren erfordert |journal= (Hilfe)
  7. ^ Chapman, M., Gatti, N: Ein Modell eines Lebenszyklus, Proceedings of Tina '93, S. I-205-I-215, Sep., 1993.
  8. ^ Mezak, Steve (25. Januar 2018). "Die Ursprünge von DevOps: Was ist in einem Namen?". Devops.com. Abgerufen 6. Mai 2019.
  9. ^ Debois, Patrick (9. Oktober 2008). "Agile 2008 Toronto". Gerade genug dokumentierte Informationen. Abgerufen 12. März 2015.
  10. ^ Debois, Patrick. "DevOps Tage". DevOps Tage. Abgerufen 31. März 2011.
  11. ^ a b Alana Brown; Nicole Forsgren; Jez bescheiden; Nigel Kersten; Gene Kim (2016). "2016 State of DevOps Report" (PDF). Puppenlabors, Dora (DevOps Research. Abgerufen 6. Mai 2019.
  12. ^ "Puppe - Alanna Brown". Puppenlabors. Abgerufen 27. April 2019.
  13. ^ Nicole Forsgren; Gene Kim; Nigel Kersten; Jez Humble (2014). "2014 Report von DevOps" State of DevOps " (PDF). Puppenlabors, IT Revolution Press und Gedankenwerke. Abgerufen 27. April 2019.
  14. ^ "2015 State of DevOps Report" (PDF). Puppet Labs, PwC, IT Revolution Press. 2015. Abgerufen 6. Mai 2019.
  15. ^ "Agilere Tests" (PDF). Oktober 2014. Abgerufen 6. Mai 2019.
  16. ^ Crispin, Lisa; Gregory, Janet (Oktober 2014). Agilere Tests. ISBN 9780133749571. Abgerufen 6. Mai 2019.
  17. ^ Klein, Brandon Thorin (1. Mai 2021). "The DevOps: Ein prägnantes Verständnis für die DevOps Philosophie und Wissenschaft". doi:10.2172/1785164. Osti 1785164. S2CID 236606284. {{}}: Journal zitieren erfordert |journal= (Hilfe)
  18. ^ "Die Geschichte und Entwicklung von DevOps | Tom Geraghty". Abgerufen 29. November 2020.
  19. ^ "Prinzipien hinter dem agilen Manifest". agilemanifesto.org. Abgerufen 6. Dezember 2020.
  20. ^ Castellanos, Camilo; Correal, Dario (15. September 2018). Ausführung von Architekturmodellen für Big Data Analytics. Vorlesungsnotizen in Informatik. Vol. 11048. S. 364–371. doi:10.1007/978-3-030-00761-4_24. ISBN 978-3-030-00760-7.
  21. ^ Bescheiden, Jez; Farley, David (2011). Kontinuierliche Lieferung: Zuverlässige Software -Freisetzungen durch Build-, Test- und Bereitstellungsautomation. Pearson Education Inc. ISBN 978-0-321-60191-9.
  22. ^ Chen, Lianping (2015). "Kontinuierliche Lieferung: große Vorteile, aber auch Herausforderungen". IEEE -Software. 32 (2): 50–54. doi:10.1109/ms.2015.27. S2CID 1241241.
  23. ^ Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard (April 2016). Standortzuverlässigkeitstechnik. O'Reilly Media. ISBN 978-1-4919-2909-4.
  24. ^ Analyse der DNA von DevOps, Brent Aaron Reed, Willy Schaub, 2018-11-14.
  25. ^ Das DevOps-Handbuch: Wie man erstklassige Agilität, Zuverlässigkeit und Sicherheit in Technologieorganisationen, Gene Kim, Patrick Debois, John Willis, Jezz Humble, 2016, erstellt.
  26. ^ Owasp top10, Open Web Application Security Project, abgerufen 2021-11-25.
  27. ^ Emerging Technology Analysis: DevOps eine Kulturverschiebung, keine Technologie (Bericht). Gärtner.
  28. ^ "Gartner es Glossar - DevOps". Gärtner. Abgerufen 30. Oktober 2015.
  29. ^ Jones, Stephen; Noppen, Joost; Lettice, Fiona (21. Juli 2016). Proceedings des 2. Internationalen Workshops zum qualitativempfindlichen Entwickler Ops - QUDOS 2016 (PDF). S. 7–11. doi:10.1145/2945408.2945410. ISBN 9781450344111. S2CID 515140.
  30. ^ Mandi Walls (25. September 2015). "Aufbau einer DevOps -Kultur". O'Reilly.
  31. ^ Chen, Lianping; Ali Babar, Muhammad (2014). "2014 IEEE/IFIP -Konferenz über Softwarearchitektur". Die 11. Arbeits-/IFIP -Konferenz über Softwarearchitektur (WICSA 2014). IEEE. S. 195–204. doi:10.1109/WICSA.2014.45. ISBN 978-1-4799-3412-6.
  32. ^ Teja Yarlagadda, Ravi (9. März 2021). "DevOps und seine Praktiken". SSRN 3798877.
  33. ^ Morisio, Maurizio (16. April 2021). DevOps: Entwicklung einer Toolchain im Bankenbereich. Polutecnico di Torino (Laurea). Abgerufen 16. August 2021.
  34. ^ "Erste Schritte mit Gitops". Thenewstack.io. 13. Dezember 2021. Abgerufen 5. April 2022.
  35. ^ "Gitops -Workflows und Prinzipien für Kubernetes". Containerjournal.com. 1. April 2022. Abgerufen 5. April 2022.
  36. ^ "Kubernetes im Maßstab ohne Gitops ist eine schlechte Idee". Thenewstack.io. 7. März 2022. Abgerufen 5. April 2022.
  37. ^ "Top 5 Herausforderungen im modernen Kubernetes -Test". Thenewstack.io. 11. März 2022. Abgerufen 5. April 2022.
  38. ^ "Die größten Telekommunikationsunternehmen der Welt umfassen jetzt Gitops. Deutsche Telekom erklärt, warum".
  39. ^ "Kann 'links' in DevOps -Pipelines zu weit gehen?". TechTarget.com. Abgerufen 5. April 2022.

Weitere Lektüre

  • Davis, Jennifer; Daniels, Ryn (30. Mai 2016). Wirksame DevOps: Aufbau einer Kultur der Zusammenarbeit, Affinität und Werkzeug im Maßstab. Sebastopol, CA: O'Reilly. ISBN 9781491926437. OCLC 951434424.
  • Kim, Gen; Debois, Patrick; Willis, John; Bescheiden, Jez; Allspaw, John (7. Oktober 2015). Das DevOps-Handbuch: So schaffen Sie erstklassige Agilität, Zuverlässigkeit und Sicherheit in Technologieorganisationen (First Ed.). Portland, oder. ISBN 9781942788003. OCLC 907166314.
  • Forsgren, Nicole; Bescheiden, Jez; Kim, Gene (27. März 2018). Beschleunigen: Die Wissenschaft von Lean Software und DevOps: Aufbau und Skalierung von Hochleistungs -Technologieorganisationen (First Ed.). IT Revolution Press. ISBN 9781942788331.