Doelgroep
Ben je een ontwikkelaar die zijn carriĆØre wil richten op een geavanceerdere DevOps-model? Ben je een klassieke Ops-engineer en wil je graag begrijpen wat DevOps inhoudt? Of ben je geen van beide, maar heb je wat tijd in de IT-sector gewerkt en wil je van carriĆØre veranderen zonder te weten waar je moet beginnen?
Als dat zo is, lees dan verder om te ontdekken hoe je binnen zes maanden een middelmatige DevOps-engineer kunt worden! En als je al jaren bezig bent met DevOps, kun je ook veel nuttige informatie uit deze reeks artikelen halen en ontdekken waar de sector van integratie en automatisering zich momenteel bevindt en waar deze naartoe gaat.

Wat betekent dit allemaal?
Laten we eerst kijken naar wat DevOps is. Je kunt definities opzoeken en door alle jargon heen ploegen, maar weet dat de meeste definities gewoon een mengelmoes van woorden zijn in een vage vorm. Daarom geef ik je een samenvatting van al deze definities: DevOps is een manier van softwarelevering waarbij de pijn en verantwoordelijkheid wordt gedeeld door alle betrokkenen. Dat is het eigenlijk.
Goed, maar wat betekent deze afkorting eigenlijk? Het betekent dat traditionele ontwikkelaars (personen die software maken) in hun werk geleid werden door prikkels die aanzienlijk verschilden van de prikkels van de Operations (personen die de software beheren). Bijvoorbeeld, als ontwikkelaar wil ik zo snel mogelijk zoveel mogelijk nieuwe functies creƫren. Dat is tenslotte mijn werk, en dat is wat klanten eisen! Aan de andere kant, als ik een Ops-persoon ben, wil ik zo min mogelijk nieuwe functies, omdat elke nieuwe functie een verandering is en veranderingen vaak problemen met zich meebrengen. Als gevolg van deze discrepantie in prikkels is DevOps ontstaan.
DevOps probeert ontwikkeling en operaties (integratie en automatisering) in ƩƩn groep te verenigen. Het idee is dat nu ƩƩn groep zowel de pijn als de verantwoordelijkheid (en waarschijnlijk de beloning) deelt voor het creƫren, implementeren en profiteren van klantgerichte software.
Puristen zullen je vertellen dat er geen zoiets bestaat als een 'DevOps-engineer'. 'DevOps is een cultuur, geen rol', zullen ze zeggen. Natuurlijk hebben ze technisch gezien gelijk, maar zoals vaak het geval is, is deze term buiten zijn oorspronkelijke betekenis getreden. Een DevOps-engineer is dan ook een soort 'system engineer 2.0'. Met andere woorden, dit is iemand die de softwareontwikkelingscyclus begrijpt en tools en processen voor softwareontwikkeling creƫert om klassieke operationele uitdagingen op te lossen.

DevOps betekent uiteindelijk het creëren van digitale pijplijnen die de code van de laptop van de ontwikkelaar nemen en omzetten in opbrengsten uit het gebruik van het eindproduct, dat is waar het uiteindelijk om draait. Houd er rekening mee dat de carrièrekeuze voor DevOps goed beloond wordt, met bijna elk bedrijf dat ofwel 'DevOps doet', of er aanspraak op maakt. Ongeacht waar deze bedrijven zich bevinden, zijn de algemene werkgelegenheidsmogelijkheden als DevOps vrij hoog en impliceren ze 'leuke' en betekenisvolle werkgelegenheid voor de komende jaren.
Maar wees voorzichtig met bedrijven die een 'DevOps-team' of 'DevOps-afdeling' aannemen. Strikt genomen zouden zulke dingen niet mogen bestaan, omdat DevOps uiteindelijk nog steeds een cultuur en een manier van softwarelevering is, en geen nieuwe ploeg of afdeling met een trendy naam moet worden samengesteld.
Disclaimer
Laten we nu even het glas 'Cool-Aid' opzijzetten en nadenken over het volgende. Heb je de oude gezegde gehoord dat 'er geen junior DevOps-engineers zijn'? Als je dat nog niet gehoord hebt, weet dan dat dit een populaire trope is op Reddit en StackOverflow. Maar wat betekent het?
In eenvoudige bewoordingen betekent deze zin dat jarenlange ervaring in combinatie met een stevig begrip van de tools nodig is om uiteindelijk een echt effectieve Senior DevOps-praktijk te worden. En helaas is er geen kortere weg naar dit doel. Dus dit is geen poging om het systeem te bedriegen ā ik geloof niet dat je daadwerkelijk kunt doen alsof je een senior DevOps-engineer bent met slechts een paar maanden ervaring in het vak. Het bereiken van een duidelijk begrip van de snel veranderende tools en methodologieĆ«n vereist jarenlange ervaring, daar kom je niet omheen. Er is echter bijna een overeenstemming (modieus, als je wilt) over de tools en concepten die de meeste bedrijven gebruiken, en daar gaat dit artikel over.
Nogmaals, tools verschillen van vaardigheden, dus terwijl je de tools bestudeert, zorg ervoor dat je je vaardigheden niet verwaarloost (vragen stellen, netwerken, schriftelijke communicatie, probleemoplossing, enz.). Het belangrijkste is om niet uit het oog te verliezen wat we willen bereiken - een volledig geautomatiseerde digitale pijplijn creƫren die ideeƫn omzet in winstgevende stukjes code. Dit is de enige en belangrijkste conclusie van dit hele artikel!
Genug gepraat, wanneer kan ik beginnen?
Hieronder staat de roadmap 'Fundamentele kennis van DevOps'. Zodra je alles hebt beheerst wat daar staat, kun je met vertrouwen en eerlijkheid jezelf een DevOps-engineer noemen! Of een cloudengineer, als je de titel āDevOpsā niet leuk vindt.

Deze kaart geeft mijn (en waarschijnlijk de meeste mensen die in dit vakgebied werken) visie weer van wat een competente DevOps-engineer zou moeten weten. Dat gezegd hebbende, dit is slechts een mening, en natuurlijk zullen er mensen zijn die het daar niet mee eens zijn. Dat is prima! We streven hier niet naar perfectie, maar naar een solide fundament waarop daadwerkelijk kan worden gebouwd.
Je moet deze weg geleidelijk afleggen, laag voor laag. Beginnen (en doorgaan!) moet met de fundamentele basis, eerst de elementen die in het blauw zijn gemarkeerd - Linux, Python en AWS. Dan, als de tijd of de vraag op de arbeidsmarkt het toelaat, ga je aan de slag met de paarse dingen - Golang en Google Cloud.
Eerlijk gezegd is de basislaag iets dat je eindeloos moet bestuderen. Linux OS is erg complex en het kost jaren om het onder de knie te krijgen. Python vereist voortdurende oefening om bij te blijven. AWS ontwikkelt zich zo snel dat wat je vandaag weet, over een jaar slechts een deel van je totale kennis zal zijn. Zodra je de basis hebt geleerd, ga je verder met het verwerven van daadwerkelijke vaardigheden. Let op, er zijn in totaal 6 blauwe kolommen (Configuratie, Versie, Packaging, Deploy, Uitvoering, Monitoring), ƩƩn per maand studie.

Je hebt vast het ontbreken van een belangrijke fase in onze zes maanden durende cyclus opgemerkt - testen. Ik heb deze bewust niet op de roadmap gezet, omdat het schrijven van een module, integratie en acceptatietests moeilijk zijn en traditioneel op de schouders van de ontwikkelaars rusten. Het overslaan van de fase 'testen' is te verklaren door het feit dat het doel van deze roadmap is om zo snel mogelijk de basisvaardigheden en -tools te leren. Het gebrek aan testervaring is volgens de auteur slechts een klein obstakel voor het juiste gebruik van DevOps.
Vergeet bovendien niet dat we hier geen hoopje onsamenhangende technische onzin bestuderen, maar ons richten op het begrijpen van de tools die samen een helder verhaal creƫren. Dit verhaal vertegenwoordigt de end-to-end automatisering van het proces - een digitale lopende band die bits verplaatst zoals op een assemblyline. Je wilt toch niet een hoop tools leren en voortdurend stoppen! De DevOps-toolset verandert snel, terwijl concepten veel minder vaak veranderen. Daarom moet je streven naar het gebruik van tools als leerproxy's voor hogere niveau concepten.
OkƩ, laten we iets dieper graven!
Fundamentele kennis
Onder de bovenste trede met de inscriptie Foundation zie je de vaardigheden die elke DevOps-engineer moet beheersen. Deze vaardigheden omvatten een stevige grip op de drie 'pijlers' van de sector, namelijk: besturingssysteem, programmeertaal en publieke cloud. Dit zijn geen zaken die je snel kunt leren en dan verder kunt gaan. Deze vaardigheden moeten voortdurend worden verfijnd en het vakmanschap moet worden aangescherpt om aan de voorhoede van de sector te blijven en de professionele omgeving om je heen te actualiseren. Laten we ze ƩƩn voor ƩƩn doornemen.
Linux is waar alles gebeurt. Kun je een geweldige DevOps-praktijker zijn terwijl je volledig binnen het Microsoft-ecosysteem blijft? Zeker, dat kan! Er is geen wet die voorschrijft dat je alleen Linux moet gebruiken. Houd er echter rekening mee dat, hoewel je alles wat je met Linux kunt doen ook in Windows kunt, dit veel lastiger en met minder functionaliteit gaat. Op dit moment kun je gerust stellen dat zonder kennis van Linux je geen echte DevOps-professional kunt worden, dus Linux is iets wat je moet blijven bestuderen.
Eerlijk gezegd is de beste manier om dit te doen simpelweg Linux (Fedora of Ubuntu) thuis te installeren en het zo veel mogelijk te gebruiken. Natuurlijk zul je veel dingen kapot maken, vastlopen in werkprocessen en alles moeten oplossen, maar op deze manier leer je Linux echt!

Overigens zijn in Noord-Amerika de RedHat-varianten meer verspreid, dus het is logisch om te beginnen met Fedora of CentOS. Als je je afvraagt of je de KDE- of Gnome-editie moet kopen, kies dan voor KDE. Dit is wat Linus Torvalds zelf gebruikt.
Python is tegenwoordig de dominante back-end programmeertaal. Het is eenvoudig om mee te beginnen en wordt veel gebruikt. Python is zeer populair in het gebied van kunstmatige intelligentie en machine learning, dus als je ooit wilt overstappen naar nog een heet gebied, ben je daar volledig op voorbereid.

Amazon Web Services: opnieuw, het is onmogelijk om een ervaren DevOps-professional te worden zonder een solide begrip van hoe de publieke cloud werkt. En als je hier zo veel mogelijk over wilt leren, bestudeer dan Amazon Web Services. Dit is een toonaangevende speler in deze servicetak, die de meest uitgebreide set werktools biedt.
Kun je in plaats daarvan beginnen met Google Cloud of Azure? Natuurlijk is dat mogelijk! Maar gezien de laatste financiƫle crisis moet je bedenken dat AWS de veiligste optie is, althans in 2018, omdat het je in staat stelt om gratis een account aan te maken en te beginnen met het ontdekken van cloudservices. Bovendien biedt de AWS-console de gebruiker een eenvoudig en duidelijk menu om uit te kiezen. Het goede nieuws is dat je hiervoor niet alle technologieƫn van Amazon hoeft te kennen.

Begin met het volgende: VPC, EC2, IAM, S3, CloudWatch, ELB (Elastic Load Balancing onder EC2) en Security Group. Dit is voldoende om te beginnen, en elk modern cloudbedrijf gebruikt deze tools doorgaans actief. De eigen leerwebsite van AWS is een goede plek om te beginnen.
Ik raad je aan om dagelijks 20-30 minuten te besteden aan het leren en oefenen met de programmeertaal Python, het besturingssysteem Linux en de cloudservice AWS, naast andere zaken die je moet leren. Over het algemeen vind ik dat 1 uur per dag, vijf keer per week, voldoende is om de processen in de DevOps-industrie binnen 6 maanden of zelfs minder te begrijpen. Er zijn in totaal 6 hoofdcomponenten, elk overeenkomend met een maand van leren. Dit is alles wat je nodig hebt om basiskennis op te doen.
In de volgende artikelen zullen we het volgende niveau van complexiteit bekijken: hoe je de configuratie, versiebeheer, packaging, implementatie, uitvoering en monitoring van software volledig kunt automatiseren.
De voortzetting volgt zeer binnenkort...
Een beetje reclame š
Bedankt dat je bij ons blijft. Houd je van onze artikelen? Wil je meer interessante inhoud zien? Ondersteun ons door een bestelling te plaatsen of ons aan vrienden aan te bevelen, , een unieke variant van entry-level servers, die we voor jou hebben bedacht: (opties beschikbaar met RAID1 en RAID10, tot 24 cores en tot 40GB DDR4).
Dell R730xd is 2 keer goedkoper in datacenter Equinix Tier IV in Amsterdam? Alleen bij ons in Nederland! Dell R420 ā 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB ā vanaf $99! Lees over hoe
Bron: habr.com
