DevOps-engineers zijn multifunctionele specialisten die processen kunnen automatiseren en begrijpen hoe ontwikkelaars, QA en managers werken. Ze kunnen programmeren, beheersen snel complexe tools en verliezen zich niet voor onbekende taken. DevOps-engineers zijn schaars – ze kunnen 200–300 duizend roebel verdienen, maar er zijn nog steeds veel vacatures.
Dmitry Kuzmin legt uit waar een DevOps precies mee bezig is en wat je moet leren om op een dergelijke functie te kunnen solliciteren. Als bonus – belangrijke links naar boeken, video's, kanalen en professionele gemeenschappen.
Wat doet een DevOps-engineer?
Bij DevOps is het belangrijk om termen niet door elkaar te halen. DevOps is geen specifiek werkgebied, maar een professionele filosofie. Het is een methodologie die ontwikkelaars, testers en systeembeheerders helpt om sneller en efficiënter te werken door middel van automatisering en naadloosheid.
Daarom is een DevOps-engineer een specialist die deze methodologie in het werkproces implementeert:
- In de planningsfase helpt de DevOps-engineer bepalen welke architectuur de applicatie zal gebruiken, hoe deze zal schalen en kiest hij een orkestratiesysteem.
- Vervolgens configureert hij de servers, automatisiert het testen en de code-upload, en controleert hij de omgeving.
- Daarna automatiseert hij de tests en pakt hij de uitroltaken aan.
- Na de release is het belangrijk om feedback van gebruikers te verzamelen en verbeteringen door te voeren. DevOps zorgt ervoor dat gebruikers deze verbeteringen niet opmerken en dat het updateproces continu is.
- En hij lost tientallen problemen op die helpen om het systeem van ontwikkelaars, QA, systeembeheerders en managers te optimaliseren.
Alles wat hierboven is geschreven, gebeurt in bijna ideale projecten. In de echte wereld begin je vaak in een project waar de planning is overgeslagen, de architectuur fout is, en we over automatisering hebben nagedacht toen alle projecten stil lagen. Het begrijpen van al deze problemen, deze oplossen en ervoor zorgen dat alles werkt, is de sleutelvaardigheid van een DevOps-specialist.
Er is verwarring op de arbeidsmarkt. Soms zoekt een bedrijf DevOps-engineers voor de rol van systeemengineer, build-engineer of iets anders. De verantwoordelijkheden veranderen ook afhankelijk van de grootte van het bedrijf en de richting — soms zoekt men iemand voor consultancy, soms vraagt men om alles te automatiseren, en soms vereist men uitgebreide taken van een systeemadministrator die kan programmeren.
Wat heb je nodig om te beginnen in het beroep
Toegang tot het beroep vereist een voorbereiding. Gewoon naar cursussen gaan met nul kennis van IT en opleiden tot het niveau van junior is niet mogelijk. Je hebt een technische achtergrond nodig:
- Ideaal is als je al zes maanden of langer als systeemadministrator, operationeel specialist of tester werkt. Of je hebt tenminste enig begrip van hoe applicaties opstarten, in welke omgeving ze zich kunnen ontwikkelen en wat te doen als je een fout ziet. Als je geen ervaring hebt, volg dan een cursus over Linux-administratie terwijl je alles repeteert op een thuiscomputer.
- Begrijp hoe netwerktechnologieën werken — leer hoe je lokale en globale netwerken installeert, configureert en beheert.
- Kijk naar hoe en waaruit programmeren bestaat — schrijf een paar scripts in Python of Go, probeer de principes van OOP (Objectgeoriënteerd programmeren) te begrijpen, lees over de algemene productontwikkelingscyclus.
- Kennis van technische Engelse termen is nuttig — het is niet noodzakelijk om over vrije onderwerpen te communiceren, maar het is voldoende om documentatie en interfaces te kunnen lezen.
Het is niet nodig om alles wat genoemd is perfect te beheersen; voor het starten van de DevOps-opleiding is een minimaal niveau van voorbereiding voldoende. Als je zo'n technische achtergrond hebt, probeer dan je in te schrijven voor cursussen.
Wat moet een DevOps weten
Een goede DevOps-engineer is een veelzijdige specialist met een zeer brede blik. Voor succesvolle prestaties moet je in verschillende IT-gebieden meteen een goed begrip krijgen.
Ontwikkeling
DevOps schrijft een script dat ontwikkelaars helpt om code op de server te installeren. Hij maakt een programma dat 'on-the-fly' de responsiviteit van databases test. Hij schrijft een applicatie voor versiebeheer. Tot slot zal hij gewoon een potentiële ontwikkelingsprobleem opmerken dat zich op de server kan voordoen.
Een sterke DevOps-specialist kent verschillende talen die geschikt zijn voor automatisering. Hij of zij beheerst ze misschien niet perfect, maar kan snel een klein programma schrijven of andermans code lezen. Als je nog niet met ontwikkeling te maken hebt gehad, begin dan met Python - de syntaxis is eenvoudig, het werkt gemakkelijk met cloudtechnologieën, en er is veel documentatie en bibliotheken beschikbaar.
Besturingssystemen
Het is onmogelijk om alle mogelijkheden van elke versie van elk systeem te kennen - het kost duizenden uren om dat te leren zonder noemenswaardige resultaten. In plaats daarvan begrijpt een goede DevOps de algemene principes van het werken met elk besturingssysteem. Aangezien de meeste vacatures melding maken van Linux, lijkt het erop dat de meesten nu daar werken.
Een goede engineer begrijpt in welk systeem het beste project kan worden opgezet, welke tools gebruikt moeten worden en welke potentiële fouten zich kunnen voordoen tijdens de implementatie of exploitatie.
Cloudtechnologieën
De markt voor cloudtechnologieën gemiddeld met 20-25% per jaar - deze infrastructuur maakt het mogelijk om de operaties van code testen, applicaties samenstellen uit componenten en updates naar gebruikers te automatiseren. Een goede DevOps heeft kennis van zowel volledig cloud- als hybride oplossingen.
In de standaardvereisten voor ingenieurs staat meestal GCP, AWS en Azure vermeld.
Hierbij hoort ook de beheersing van CI/CD-tools. Voor continue integratie wordt doorgaans Jenkins gebruikt, maar het kan ook nuttig zijn om alternatieven uit te proberen. Er zijn er veel, zoals Buddy, TeamCity en GitLab CI. Het is ook nuttig om Terraform te leren - dit is een declaratieve tool die helpt bij het opzetten en configureren van infrastructuur in de cloud op afstand. En Packer, dat nodig is voor het automatisch creëren van OS-images..
Orkestratiesystemen en microservices
De microservicesarchitectuur heeft veel voordelen - stabiliteit, mogelijkheid tot snelle schaalvergroting, vereenvoudiging en hergebruik. DevOps begrijpt hoe microservices werken en kan potentiële problemen voorspellen.
Kent Docker en Kubernetes in detail. Begrijpt hoe containers werken en hoe een systeem zo kan worden opgebouwd dat delen ervan zonder gevolgen voor het geheel kunnen worden uitgeschakeld. Bijvoorbeeld, kan hij of zij een Kubernetes-cluster opzetten met behulp van Ansible.
Wat kan de toekomstige DevOps nog meer uitproberen?
Het opsommen van tools die nuttig kunnen zijn voor een DevOps-engineer kan eindeloos doorgaan. Sommigen werken aan de orkestratie van projecten, anderen zijn het grootste deel van de tijd bezig met de automatisering van implementatie en testen, terwijl weer anderen de efficiëntie in configuratiebeheer verhogen. In het proces zal duidelijk worden waar je moet beginnen en welke projecten nuttig zullen zijn.
Hier is nog een kleine minimumlijst die je zal helpen bij de start:
- Maak je vertrouwd met hoe Git en GitHub werken, als je daar nog niet mee bekend bent. Installeer GitLab op je server.
- Maak kennis met de opmaaktaal JSON en YAML.
- Installeer en experimenteer met databases — niet alleen met MySQL, maar ook met NoSQL. Probeer MongoDB.
- Snap hoe je de configuratie van meerdere servers tegelijk kunt beheren. Bijvoorbeeld met Ansible.
- Zorg ervoor dat je het monitoring van belasting en logs direct instelt. Probeer de combinatie van Prometheus, Grafana en Alertmanager.
- Zoek naar de beste oplossingen voor deploys voor verschillende talen — het is voldoende om simpelweg kennis te maken, de implementatie zal je op een trainings- of werkproject verder helpen.
Waarom je nu zou moeten beginnen met het leren van DevOps
Op de markt voor DevOps-engineers is er een tekort aan personeel. Dit wordt voor een deel bevestigd door het aantal en de kwaliteit van vacatures:
- In Rusland zijn er op HeadHunter altijd meer dan 2.000 vacatures beschikbaar voor dit trefwoord.
- En slechts 1.900 mensen hebben hun cv geplaatst.
Gezien het feit dat het plaatsen van een cv niet betekent dat men actief naar werk zoekt, blijkt dat er gemiddeld twee of zelfs drie vacatures per specialist zijn — zo'n situatie is er niet eens op de populaire markt voor webontwikkeling. Voeg daar ook vacatures van Habr en Telegram-kanalen aan toe — de tekort aan specialisten is enorm.

Let op de salarisverwachtingen van kandidaten
DevOps is ook wereldwijd zeer gewild — als je van plan bent te verhuizen naar de VS of Europa, dan op het portal meer dan 34.000 bedrijven op zoek zijn naar dergelijke specialisten. Veelvoorkomende vereisten zijn 1-3 jaar ervaring, het kunnen werken met 'clouds' en een gebrek aan angst voor adviserende functies.
Op freelance platforms zijn de aanbiedingen drastisch minder — DevOps-engineers worden voornamelijk in vaste dienst en fulltime gezocht.

Een passend project vinden op freelance platforms is moeilijk, maar mogelijk.
Een typische carrièrepad van een DevOps-engineer kan ongeveer als volgt worden weergegeven:
- Een half jaar tot een jaar werkt als systeembeheerder bij een klein IT-bedrijf. Tegelijkertijd studeert hij een taal die geschikt is voor automatisering.
- Hij studeert intensief op cursussen, ongeveer een half jaar.
- Hij switcht naar een andere baan — in een bedrijf dat cloudoplossingen verkoopt, een filiaal van een grote corporatie, naar de ontwikkelaars van grote projecten. Eerlijk gezegd naar een plek waar voortdurend behoefte is aan automatisering en implementatie. In de beginnende positie is dat ongeveer 100.000 roebel.
- Jarenlang werkt en leert hij actief, waardoor zijn inkomen meerdere keren toeneemt.
- Hij wordt expert in de professionele gemeenschap en gaat naar consulting. Of hij groeit door naar systeemarchitect of IT-directeur.
DevOps is ingewikkeld. Je moet skills van meerdere beroepen combineren. Word iemand die verbeteringen kan voorstellen waar andere IT-specialisten zelfs niet nadenken over iets anders. Daar wordt veel voor betaald, maar je hebt ook een grote hoeveelheid kennis nodig.
Hoeveel verdienen DevOps
Het gemiddelde mediane salaris volgens gegevens van het tweede kwartaal van 2019 voor DevOps ligt tussen de 90 en 160 duizend roebel. Er zijn goedkopere aanbiedingen — voornamelijk 60-70 duizend.
Er zijn constant aanbiedingen tot 200 duizend, en er komen vacatures voor salarissen tot 330 duizend roebel voor.

Onder de specialisten in DevOps zijn de salarissen hoger dan bij de rest. Bron:
DevOps-ingenieurs, inclusief beginners, zijn momenteel nodig in grote banken, corporaties, cloudservices, handelsystemen en andere organisaties die zorgen voor het onderhoud van hun IT-oplossingen.
Een uitstekende kandidaat voor een junior positie met een salaris van 60-90 duizend is een beginnende systeembeheerder met ongeveer een jaar ervaring en een relevante diploma.

Er zijn geen statistieken over, maar uit gevoel betalen mensen met ervaring in Linux meer.
Wat te kijken en te lezen voor groei in het beroep
Om je onder te dompelen in de wereld van DevOps, probeer onmiddellijk verschillende bronnen van informatie:
- [YouTube, ENG] — veel video's van conferenties en educatieve webinars.
- [YouTube, RUS] — video van presentaties van de professionele DevOps-conferentie in Rusland.
- [boek, RUS] — een van de meest populaire boeken over de filosofie van DevOps. Het boek behandelt algemene principes van de methodologie en vertelt waar je in de eerste plaats op moet letten bij het werken aan elk project.
- [boek, RUS] — veel theorie en principes over hoe systeembeheer zou moeten zijn ingericht.
- [boek, ENG] — wekelijkse overzicht van nieuws over wat er wereldwijd in DevOps gebeurt.
- [Telegram, RUS] — nieuws uit de industrie, aankondigingen van conferenties, links naar nieuwe interessante artikelen en boeken.
- [Telegram, RUS] — een Russisch-talige chat waar je om advies en hulp bij configuraties kunt vragen.
- Devops.com — een grote internationale site met artikelen, webinars, podcasts en columns van de grootste bedrijven in de industrie.
- — een Russisch-talige gemeenschap van DevOps-ingenieurs en sympathisanten.
- De beste boeken over de taal die je zult gebruiken voor ontwikkeling.
Waar te leren over DevOps
Gestructureerde kennis kun je verkrijgen via de cursus «» bij Netology. Je leert de volledige cyclus van de methodologie:
- Je leert hoe je code kunt analyseren en snel versiebeheertools kunt gebruiken.
- Je begrijpt de beste praktijken van continue integratie, testen en build-processen.
- Je leert hoe je veranderingen in applicaties beheert en automatiseert.
- In de praktijk bestudeer je configuratie- en beheertools.
- Je raakt gewend om direct de juiste diensten voor monitoring te selecteren en in te stellen.
Als bonus krijg je de cursus programmeren in Python — je kunt taken nog sneller en makkelijker oplossen. Alles in de praktijk — we gebruiken AWS, GCP of Azure.
Dit is voldoende om van een beginnende ingenieur of systeembeheerder een gewilde DevOps-ingenieur te maken en je uurtarief op de arbeidsmarkt prettig omhoog te schroeven.
Bron: habr.com
