Wir klÀren die Grundlagen der Methodologie und wie sie von Nutzen sein kann.
AuĂerdem sprechen wir ĂŒber DevOps-Spezialisten: deren Aufgaben, GehĂ€lter und notwendige FĂ€higkeiten.
Foto / Flickr / CC BY-SA
Was ist DevOps
DevOps ist eine Softwareentwicklungsmethodologie, deren Ziel es ist, die Zusammenarbeit zwischen Programmierern und Systemadministratoren im Unternehmen zu verbessern. Wenn IT-Spezialisten aus verschiedenen Abteilungen die Aufgaben der anderen nicht verstehen, verzögert sich die Bereitstellung neuer Anwendungen und Aktualisierungen.
DevOps etabliert einen ânahtlosenâ Entwicklungszyklus, der dazu beitrĂ€gt, die Bereitstellung von Softwareprodukten zu beschleunigen. Diese Beschleunigung wird durch die EinfĂŒhrung von Automatisierungssystemen erreicht. Zudem beginnen Programmierer, sich an der Serverkonfiguration und der Fehlersuche zu beteiligen, indem sie beispielsweise automatisierte Tests schreiben.
So wird die Zusammenarbeit zwischen den Abteilungen verbessert. Die Mitarbeiter beginnen besser zu verstehen, welche Phasen ein Softwareprodukt durchlÀuft, bevor es in die HÀnde des Nutzers gelangt.
Wenn ein Entwickler versteht, mit welchen Herausforderungen ein Administrator bei der Serverkonfiguration konfrontiert ist, wird er versuchen, mögliche "schwierige Punkte" im Code zu beseitigen. Dadurch wird die Anzahl der Fehler beim Bereitstellen der Anwendung reduziert â laut Statistik  ungefĂ€hr um das FĂŒnfzehnfache.
Wer braucht eine Methodologie und wer nicht
Viele , dass DevOps jeder Organisation zugutekommen wird, die Softwareentwicklung betreibt. Dies gilt selbst fĂŒr Unternehmen, die lediglich Verbraucher von IT-Diensten sind und keine eigenen Anwendungen entwickeln. In diesem Fall wird die EinfĂŒhrung einer DevOps-Kultur helfen, sich auf Innovationen zu konzentrieren.
Ausnahmen  Startups, aber auch hier hĂ€ngt alles vom Umfang des Projekts ab. Wenn Ihr Ziel darin besteht, ein minimal funktionsfĂ€higes Produkt (MVP) auf den Markt zu bringen, um eine neue Idee zu testen, können Sie auch ohne DevOps auskommen. Zum Beispiel hat der GrĂŒnder von Groupon in der Anfangszeit des Services alle Angebote manuell  und Bestellungen gesammelt. Er hat keine Automatisierungstools verwendet.
Die Implementierung von Methodologien und Automatisierungstools macht nur dann Sinn, wenn die Anwendung an PopularitÀt gewinnt. Dies wird helfen, GeschÀftsprozesse zu optimieren und die Veröffentlichung von Updates zu beschleunigen.
DevOps einfĂŒhren
Hier sind einige Empfehlungen fĂŒr den Ăbergang zu einer neuen Methodik.
Identifizieren Sie Probleme in den GeschĂ€ftsprozessen. Vor der EinfĂŒhrung der Methodik sollten Sie die Ziele und Herausforderungen der Organisation festlegen. Diese werden die Strategie fĂŒr den Ăbergang zu DevOps bestimmen. Erstellen Sie dazu eine Liste von Fragen, wie zum Beispiel:
- WofĂŒr wird die meiste Zeit beim Software-Update aufgewendet?
- LĂ€sst sich dieser Prozess automatisieren?
- Hat die Organisationsstruktur Einfluss darauf?
Details zur Identifizierung von Problemen in der Organisation «» und «» von den Autoren der Methodologie.
Ăndern Sie die Kultur im Unternehmen. Es ist wichtig, alle Mitarbeiter davon zu ĂŒberzeugen, ihre gewohnten Arbeitsweisen zu Ă€ndern und ihre Kompetenzen zu erweitern. Zum Beispiel sind bei Facebook alle Programmierer  fĂŒr den gesamten Lebenszyklus der Anwendung: vom Codieren bis zur Implementierung. AuĂerdem gibt es bei Facebook keine separate Testabteilung â die Tester schreiben die Entwickler selbst.
Fangen Sie klein an. WĂ€hlen Sie den Prozess aus, der bei der Bereitstellung von Updates die meiste Zeit und MĂŒhe kostet, und automatisieren Sie ihn. Das kann  empfehlen  Es lohnt sich auch, auf Systeme der kontinuierlichen Integration zu achten, die fĂŒr die Erstellung und das Testen des Endprodukts verantwortlich sind. Beispiele solcher Werkzeuge sind Jenkins, TeamCity und Bamboo.
Bewerten Sie die Verbesserungen.
Entwickeln Sie Metriken zur Leistungsbewertung der implementierten Lösungen und erstellen Sie eine Checkliste. Metriken können die HĂ€ufigkeit der Releases, die Arbeitszeit an Softwarefunktionen und die Anzahl der Bugs im Code sein. Diskutieren Sie die Ergebnisse nicht nur mit den Managern, sondern auch mit dem restlichen Team, das am Projekt arbeitet. Fragen Sie, welche Werkzeuge fehlen. BerĂŒcksichtigen Sie diese Anfragen bei der weiteren Optimierung der Prozesse. Kritik an DevOps
Obwohl die Methodik
Organisationen dabei hilft, schneller Entscheidungen in Bezug auf die Anwendungsentwicklung zu treffen,  Unternehmen treffen schneller Entscheidungen bezĂŒglich der Anwendungsentwicklung,  Die Anzahl der Fehler in der Software fördert die Mitarbeiter dazu, Neues zu lernen, hat jedoch auch Kritiker.
Es gibt , dass Programmierer sich nicht mit den Details der Arbeit von Systemadministratoren auskennen sollten. Angeblich fĂŒhrt DevOps dazu, dass in Unternehmen statt spezialisierter Entwickler oder Administratoren Personen auftauchen, die alles nur oberflĂ€chlich verstehen.
Es wird auch angenommen, dass DevOps  bei schlechtem Management. Wenn Entwickler- und Admin-Teams keine gemeinsamen Ziele haben, sind die Manager schuld, die keine effektive Zusammenarbeit zwischen den Teams organisieren. Um dieses Problem zu lösen, wird nicht eine neue Methodologie benötigt, sondern ein Bewertungssystem fĂŒr Manager basierend auf RĂŒckmeldungen von Mitarbeitern. Hier kann man lesen, .

Foto / Flickr / CC BY-SA
Wer ist ein DevOps-Ingenieur?
Ein DevOps-Ingenieur implementiert die DevOps-Methodologie. Er koordiniert alle Phasen der Softwareentwicklung: vom Codieren ĂŒber das Testen bis hin zur Veröffentlichung der Anwendung. Diese Fachkraft ĂŒberwacht die Entwicklungs- und Verwaltungsteams und automatisiert deren Aufgaben durch den Einsatz verschiedener Software-Tools.
Die Besonderheit eines DevOps-Ingenieurs liegt darin, dass er zahlreiche Berufe kombiniert: Administrator, Entwickler, Tester und Manager.
Joe Sanchez, DevOps-Evangelist bei VMware, einem Softwareunternehmen fĂŒr Virtualisierung,  eine Reihe von FĂ€higkeiten, ĂŒber die ein DevOps-Ingenieur verfĂŒgen sollte. Neben dem offensichtlichen Wissen ĂŒber die DevOps-Methodologie muss diese Person Erfahrung in der Verwaltung von Windows- und Linux-Betriebssystemen sowie mit Automatisierungswerkzeugen wie , , haben. ZusĂ€tzlich sollte er in der Lage sein, Skripte und Code in ein oder zwei Programmiersprachen zu schreiben und die Netzwerktechnologien zu verstehen.
Ein DevOps-Ingenieur ist verantwortlich fĂŒr die Automatisierung von Aufgaben, die mit der Einrichtung und Bereitstellung von Anwendungen verbunden sind. Zu seinen Aufgaben gehört auch das Monitoring von Software. Um diese Aufgaben zu bewĂ€ltigen, nutzt er verschiedene Konfigurationsmanagement-Systeme, Virtualisierungslösungen und Cloud-Tools zur Ressourcenoptimierung.
Wer stellt ein
DevOps-Ingenieure können fĂŒr jede Organisation von Nutzen sein, die mit Anwendungsentwicklung oder dem Management einer groĂen Anzahl von Servern beschĂ€ftigt ist. DevOps-Ingenieure  IT-Giganten wie Amazon, Adobe und Facebook. Sie arbeiten auch bei Netflix, Walmart und Etsy.
 DevOps-Ingenieure. Ihre Aufgabe ist es, ein minimal funktionsfÀhiges Produkt zu launchen, um eine neue Idee zu testen. In den meisten FÀllen benötigen Startups keine DevOps-Ressourcen.
Wie viel verdienen
DevOps-Ingenieure  in der Branche am meisten. Das durchschnittliche Gehalt solcher FachkrÀfte liegt weltweit zwischen 100.000 und 125.000 Dollar pro Jahr.
In den USA  90.000 Dollar pro Jahr (500.000 Rubel pro Monat). In Kanada erhalten sie  122.000 US-Dollar pro Jahr (670.000 Rubel pro Monat) und im Vereinigten Königreich sind es 67.500 Pfund Sterling pro Jahr (490.000 Rubel pro Monat).
In Bezug auf Russland sind moskauer Unternehmen  DevOps-Spezialisten zwischen 100.000 und 200.000 Rubel pro Monat zu zahlen. In Sankt Petersburg sind die Arbeitgeber etwas groĂzĂŒgiger â sie bieten 160.000 bis 360.000 Rubel pro Monat. In den Regionen liegt das Gehalt bei 100.000 bis 120.000 Rubel pro Monat.
Wie man DevOps-Spezialist wird
DevOps ist ein relativ neues Feld in der IT, daher gibt es keinen festen Katalog an Anforderungen fĂŒr DevOps-Ingenieure. In Stellenanzeigen sind unter den Anforderungen sowohl Kenntnisse in der Administration von Debian und CentOS als auch die FĂ€higkeit, mit Festplattenspeicher .
zu arbeiten, zu finden. Daraus lĂ€sst sich schlieĂen, dass ein DevOps-Ingenieur vor allem einen guten technischen Ăberblick haben sollte. Es ist wichtig, dass diese Person kontinuierlich neue Tools und Technologien lernt.
Der einfachste Weg, DevOps-Ingenieur zu werden, fĂŒhrt ĂŒber Systemadministratoren oder Entwickler. Sie bringen bereits eine Reihe von FĂ€higkeiten mit, die weiterentwickelt werden mĂŒssen. Die Hauptaufgabe besteht darin, das notwendige Wissen ĂŒber DevOps zu ergĂ€nzen, zu verstehen, wie man mit Automatisierungswerkzeugen arbeitet, und die LĂŒcken in den FĂ€higkeiten zur Administration, Programmierung und Virtualisierung zu schlieĂen.
Um herauszufinden, wo noch WissenslĂŒcken bestehen, kann man auf  oder zurĂŒckgreifen. Die Mitglieder von Hacker News empfehlen ebenfalls  BĂŒcher wie â» und «â (die wir bereits erwĂ€hnt haben) und ââ unter dem Label O'Reilly Media.
Es lohnt sich auch, unseren zu abonnieren, Artikel auf dem spezialisierten  zu lesen und den Austausch mit DevOps-Ingenieuren in zu suchen. AuĂerdem sollte man die kostenlosen Kurse auf  oder .
vorziehen. Unsere Blog-BeitrÀge:
Quelle: habr.com
