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 или 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 или .
vorziehen. Unsere Blog-Beiträge:
Quelle: habr.com
