De populariteit van Ansible maakt deze toolsuite tot een veelgevraagde oplossing voor webontwikkelingsopdrachten. Bedrijven en merken die een dergelijke technologie gebruiken in hun huidige werk (of het in de toekomst willen uitproberen) zullen Ansible graag van naderbij bekijken.
Er is veel vraag naar deze open-source automatiseringsengine en geen wonder waarom; hij draagt bij aan het bereiken van een gewenste, vereenvoudigde automatisering. En u streeft hier zeker naar in uw bedrijf. U kunt dus wel wat tips gebruiken om optimaal te zoeken naar Ansible-ontwikkelaars en ze in te huren.
De beste kandidaat kiezen uit iedereen die heeft gesolliciteerd is geen eenvoudige taak; velen zullen voldoen aan de vereisten voor uw vacature, en hier komt het lastige gedeelte. Het risico is dat er te veel moeite, tijd en geld wordt gestoken in een proces dat slecht is gepland en dat later veel geld zal kosten om terug te draaien.
Laten we meteen ter zake komen en de essentie van Ansible verduidelijken en uitleggen hoe het rekruteringsproces van Ansible-ontwikkelaars eruit zou moeten zien.
Over Ansible
Ansible is een suite van softwaretools (ook wel beschouwd als een open-source engine voor automatisering en IT-infrastructuur) die onder andere wordt gebruikt voor configuratiebeheer, orkestratie en app-implementatie. Andere, net zo levensvatbare toepassingen van Ansible, zijn de voorziening infrastructuur, server en werkstation updaten, beveiliging upgraden, software installatie, patch systemen, en automatisering delen op grotere schaal.
Met Ansible kunnen ontwikkelaars computers op netwerkniveau configureren - niet alleen een enkele computer. Het is eenvoudig te installeren en te gebruiken en er zijn geen vereisten voor de beveiligingsinfrastructuur of het gebruik van agentsoftware. In combinatie met DevOps is Ansible een uitstekende toolsuite omdat het eenvoudige automatisering mogelijk maakt en het werk voor DevOps-experts vereenvoudigt.
Michael DeHaan creëerde Ansible en het werd voor het eerst uitgebracht in 2012. Het jaar daarop, in 2013, richtten Said Ziouani en Timothy Gerla Ansible, Inc (AnsibleWorks, Inc.) op. Red Hat nam het later over in 2016.
Waarom en wanneer een Ansible-ontwikkelaar inhuren?
Je moet een Ansible-ontwikkelaar inhuren als je automatisering nodig hebt. Dit is het centrale verkoopargument van Ansible.
De significante voordelen van automatisering zijn vooral te zien in de functionaliteit en standaardisatie van cloudimplementaties (zowel privé als publiek). Met behulp van modules, playbooks en rollen kunnen ontwikkelaars de beveiligingssystemen op de best mogelijke manier orkestreren.
Door te werken met slechts één platform voor automatisering (Ansible) worden de implementatie, het beheer en het schalen van werk veel beter beheersbaar. Je zult ook merken dat het dagelijkse beheer eenvoudiger en betrouwbaarder is, net als de upgrades en installaties in de zin dat ze eenvoudig te implementeren zijn.
Met Ansible wordt het ontwikkelingsproces versneld en verbeterd dankzij een proces dat multistep app-orchestrating heet. Dit maakt regelmatige code-updates mogelijk, inclusief bugfixes en andere nieuwigheden in de aankomende softwarefuncties.
Nuttige statistieken over Ansible
Het gemiddelde salaris van een Ansible dev is $87.019 per jaar, met het laagste salaris van $68K en het hoogste van $112K per jaar.
Wat betreft de populariteit van Ansible als tool suite, heeft 9,49% van de ontwikkelaars gezegd dat dit hun belangrijkste tool is om te gebruiken bij ontwikkeling.
Populaire merknamen die vertrouwen op het gebruik van Ansible
Dit zijn enkele merken die Ansible gebruiken:
- Revolut
- Amelco
- Udemy
- Walmart
- trivago
- Alibaba Reizen
- Udemy
- Typformulier
- ViaVarejo
- StartDonker
Een Ansible-ontwikkelaar interviewen
Natuurlijk is dit het centrale, centrale onderdeel van het aannameproces. Om de beste Ansible dev te vinden en in te huren, moet je aandacht besteden aan de technische en niet-technische vaardigheden (en bepaalde essentials) die de dev moet bezitten. Dan moet je relevante interviewvragen gebruiken om de dev dienovereenkomstig te beoordelen.
Technische vaardigheden van een Ansible-ontwikkelaar
Een ervaren Ansible-ontwikkelaar zal veel ervaring hebben met:
- De Yaml syntaxis kennen
- Ervaring hebben met code editors, zoals Visual Studio Code.
- De Ansible Galaxy goed kennen, met zijn directory taken en commando's
- De spelboeken van Ansible gebruiken
- Kennis van bronbeheersystemen, zoals Git en de commando's git pull, git push, git clone.
Anmol Nagpal, een DevOps engineer in het Proxify netwerk, zegt dat er een paar cruciale technische aandachtspunten zijn om naar te zoeken in een Ansible-ontwikkelaar:
"De Ansible ontwikkelaar moet veel kennis hebben van Unix en Windows OS en moet Docker goed begrijpen. Ze hebben praktijkervaring nodig met CI/CD automation pipelines, en net zo belangrijk, uitstekende ervaring met L2 (ethernet) en L3 (switch) netwerken."
Niet-technische vaardigheden van een Ansible-ontwikkelaar
De niet-technische vaardigheden zijn net zo noodzakelijk als de technische. Hoeveel waarde je ook hecht aan technische expertise - professionaliteit en houding op de werkvloer zijn belangrijke invloedsfactoren voor het succes van de werkrelatie.
De recruiters, aanwervingsmanagers en talentacquisitiespecialisten moeten zich richten op punctualiteit. Dit laat zien hoe verantwoordelijk iemand het interview opneemt, wat een goede indicator is voor toekomstig gedrag in een werkomgeving (op tijd komen, andermans tijd respecteren).
Met dit gezegd hebbende, de voorbereiding van de dev toont ook hun toewijding - kwaliteit van de apparatuur (camera, headset), ruimte en verlichting, en dresscode zijn allemaal belangrijke factoren die de indruk die de kandidaat achterlaat op het eerste gezicht beïnvloeden.
Dan is hun Engelse taalvaardigheidsniveau nog een belangrijke factor om op te letten. Als er een taalbarrière is tussen de ontwikkelaar en de klant, zal dit waarschijnlijk de dagelijkse communicatie beïnvloeden. De algemene houding is ook essentieel; open, communicatief, optimistisch, nieuwsgierig en een aandachtige luisteraar dragen allemaal bij aan een succesvolle werkdynamiek.
Ze hebben goede communicatieve en probleemoplossende vaardigheden nodig, het vermogen om in een team te werken en een op groei gerichte mentaliteit.
Essenties en beoordeling van een Ansible-ontwikkelaar
Je hoeft niet door hoepels te springen om Ansible te leren (wat betekent dat het heel eenvoudig is). Een belangrijk ding dat de kandidaat moet hebben is een uitstekende beheersing van het Linux systeem, omdat we daar Ansible op moeten draaien (Ansible kan ook draaien op WSL - het Windows Subsysteem voor Linux - maar het wordt momenteel niet ondersteund door Ansible, en het zou niet gebruikt moeten worden voor echt werk).
Een andere vereiste is dat je ruime ervaring en goede kennis hebt van de menselijk leesbare taal voor gegevensserialisatie, YAML, omdat de Ansible-playbooks in deze taal zijn geschreven.
Tenslotte is Ansible geschreven in Python. In het beste geval moet de ontwikkelaar zeer bekend en ervaren zijn met Python.
Anmol voegde de gewenste must-haves (of essentials) toe voor toekomstige Ansible-engineers zoals in:
"De ontwikkelaar heeft minstens zes maanden ervaring met Linux nodig. Maar ze hebben ook kennis nodig van de functionaliteit van Ansible, de Ansible rollen, tags, playbooks en GitLab. Anders zou ik bij hen navraag doen over configuratiebeheer, hoe je het playbook uitvoert met tags, en ik zou ook vragen naar Ansible Galaxy, ad hoc commando's, geen directe toegang tot servers, en meer vergelijkbare relevante punten."
Interviewvragen over Ansible
1. Kunt u uitleggen wat CI/CD is?
Verwacht antwoordr: Voor de implementatieprocessen en het stroomlijnen van de ontwikkeling gebruiken we Continuous Integration. Nadat een app is gebouwd, roepen we Ansible aan vanuit een CI-systeem. Dit is een gebruikelijke manier om een eenvoudige integratie uit te voeren.
Met Continuous Delivery voeren we een proces uit om code naar productie te brengen als die code eerder in een externe repository stond.
2. Wat zijn de vereisten voor de Ansible-server?
Verwacht antwoord: Het is een must om een virtuele machine te hebben met Linux erop geïnstalleerd. Wat programmeertalen betreft, hebben we ten minste Python v2.6 of hoger nodig.
3. Wat zijn Ansible Playbooks?
Verwacht antwoord: Ansible Playbooks zijn een groep taken in een lijst die worden gebruikt om automatisch tegen hosts uit te voeren. Als we meer hosts in meer groepen hebben, wordt dit Inventory genoemd.
Elke afzonderlijke module in Playbook is bedoeld voor een bepaalde taak. Het bevat de metagegevens waarvoor de gebruiker de uitvoering van de taaktaken uitvoert en informatie voor de taakuitvoering zelf (waar en wanneer).
We kunnen het Playbook op twee manieren gebruiken: vanuit het platform (Red Hat Ansible Automation Platform) en vanuit de CLI.
4. Wat zijn Ansible-taken?
Verwacht antwoord: De kleinste actie-eenheid die we willen automatiseren met behulp van een spelboek noemen we een taak. Deze taak splitst een configuratiebeleid op en verdeelt het in codeblokken. Vervolgens helpen deze codeblokken bij de automatiseringsprocessen en zijn ze van vitaal belang voor het automatiseringsproces als geheel.
Het playbook bestaat uit een serie taken, en Ansible zal ze (de taken) precies zo uitvoeren als in het playbook, in dezelfde volgorde. Al deze taken worden gebruikt voor het uitrollen van apps naar een omgeving op afstand of ook voor het instellen van een webserver.
5. Uitweiden over Ansible modules.
Verwacht antwoord: Ansible modules worden gebruikt in het Ansible playbook en zijn standalone scripts. Hier zijn een paar voorbeelden:
- Pakketbeheer - Voor het installeren van verschillende pakketten, upgraden, downgraden en verwijderen van deze pakketten.
- Ansible Command Module - Voor het implementeren van de commando's in het knooppunt op afstand, en meestal gebruikt voor Linux-commando's voor servers op afstand.
- Ansible Yum Module - Gebruikt om verschillende diensten te installeren met Yum package manager (standaard voor Red Hat Linux distributies).
- Ansible File Module - Voor verschillende methoden om nieuwe bestanden aan te maken; eigenaar toewijzen, groepsrechten en meer.
- Ansible User Module - Voor het beheer van verschillende gebruikersaccounts van een Linux-systeem en voor het toevoegen van groepen, wachtwoordinstellingen en zelfs het verwijderen van een gebruikersaccount.
- Ansible Lineinfile Module - Voor aanpassingen aan de bestaande regel; invoegen, wijzigen, verwijderen en vervangen van regels.
- Ansible Archive Module - Voor het maken van gecomprimeerde archieven, maar in verschillende bestanden.
- Ansible Template Module - Een module met alle mogelijke configuratieparameters die je nodig hebt voor eenvoudiger serverconfiguratiebeheer door statische bestanden te maken.
- Ansible Cli_Command Module - Voor het pushen van configuraties (op tekst gebaseerd) naar apparaten via de network_cli plugin.
- Ansible Windows Modules - Deze modules zijn getest voor Windows hosts.
6. Wat kun je zeggen over de Ansible Tags?
Verwacht antwoord: De tag vertegenwoordigt een attribuut voor de structuur van Ansible, zijn taken, rollen en spelen. Laten we zeggen dat we een enorm playbook hebben. In dit geval is het het beste om alleen een deel ervan uit te voeren en niet alles in dat playbook. Het tag-attribuut blijkt hiervoor een perfecte oplossing te zijn.
Bij het toepassen van de tags kunnen we kiezen wat we controleren of dat we de tags gebruiken via de opdrachtregel. Maar we kunnen twee manieren gebruiken om de tag-gebaseerde taken te filteren:
- (Voor opdrachtregel) gebruik -tags en -skip-tags
- (Instellingen Ansible configuratie) gebruik TAGS_RUN en TAGS-SKIP
7. Beschrijf de rollen van Ansible.
Verwacht antwoord: Met Ansible-rollen kunnen we herbruikbare automatiseringscomponenten ontwikkelen. We doen dit door sjablonen, configuratiebestanden, handlers en taken (allemaal automatiseringsartefacten met een naam) te groeperen en in te kapselen.
Het goede aan Rollen is dat ze het automatisch laden van bestanden, taken, vars, meta, defaults en handlers mogelijk maken, naast vele andere. Dus, zodra we inhoud samenvoegen in rollen (door meerdere taken te groeperen), is het vrij eenvoudig om dit te delen met de rest van de gebruikers.
De Rollen bestaan uit een groot aantal playbooks; in wezen zijn ze een verzameling bestanden die zijn toegewezen aan een specifieke rol voordat de configuraties worden verdeeld.
8. Wat is Ansible Galaxy?
Verwacht antwoord: De enorme openbare opslagplaats van Ansible-rollen heet Ansible Galaxy, en deze rollen worden ook voortdurend uitgebreid en geüpgraded. De Galaxy is de website waarmee gebruikers door de gemeenschap ontwikkelde rollen kunnen maken, installeren, beheren en delen.
Als wij (ontwikkelaars) rollen maken, kunnen we die delen via Galaxy en met behulp van het GitHub account. Op deze manier kunnen we de rollen importeren en ze toegankelijk maken voor iedereen in de Ansible-gemeenschap. Als we rollen importeren, zijn ze zichtbaar en toegankelijk in de zoekindex van Galaxy, zodat gebruikers ze ook kunnen gebruiken door ze eerst te downloaden.
9. Kunt u dieper ingaan op Ansible Tower?
Verwacht antwoord: De Ansible Tower vertegenwoordigt de Ansible-bedrijfsversie, waardoor de inzet van Ansible-voordelen op schaal mogelijk wordt. Het kan geïntegreerd worden met de bestaande infrastructuur, zoals beveiliging, netwerken, app deployment, opslag en software development lifecycle processen.
De functies van Ansible Tower omvatten:
- Taakplanning
- GUI-dashboard (Grafische gebruikersinterface)
- RESTful API
- Updates van de taakstatus in real-time
- Multi-playbook-workflows
- Logging integraties (extern)
- Toegangscontrole (rolgebaseerd)
10. Op welke manier(en) kun je de projecten van Ansible testen?
Verwacht antwoord: We kunnen deze projecten op drie manieren testen:
- Asserts - Als we een test uitvoeren in Python, zullen de Asserts de methode en de manier van uitvoeren van de test dupliceren. Wanneer een systeem in een bepaalde (bedoelde) toestand komt, verifieert Asserts dit voor ons.
- Handmatig uitvoeren - Hiervoor hoeven we alleen maar te spelen en ervoor te zorgen dat we de gewenste status voor het systeem hebben. Deze methode is vrij eenvoudig, maar een nadeel is dat er een verschil kan zijn tussen de resultaten in de omgevingen (testomgeving vs. productieomgeving)
- Check Mode - Als we de simulatie niet uitvoeren, maar willen weten hoe de dingen zouden lopen, kan de check mode ons precies dit laten zien, dat wil zeggen, we kunnen controleren of alles van de opdracht zich gedraagt zoals we willen. Een fout is dat we geen commando's en scripts kunnen uitvoeren voor playbooks en rollen. Een oplossing hiervoor is het uitschakelen van de controlemodus voor specifieke taken, en we hoeven alleen check_mode:no uit te voeren
Wat onderscheidt een goede Ansible-ontwikkelaar van een goede?
De beste Ansible ontwikkelaars hebben meerdere jaren ervaring, goede Engelse taalvaardigheid, kritisch denken en bovengemiddelde resultaten in de technische tests.
Er zijn ook bepaalde specifieke dingen die Ansible ontwikkelaars van hoge kwaliteit doen, die hun werk gemakkelijker, schoner en meer geoptimaliseerd maken (naast het versnellen van het ontwikkelingsproces:
- Memerkingen en gebruik van witruimte - Met YAML kunnen de ontwikkelaars de Ansible Playbooks van Ansible schrijven; daarom helpt de witruimte (letterlijke ruimte) YAML om de nesting aan te geven en de structuur van het document te definiëren.
- Het organiseren van playbooks via rollen - Waarschijnlijk de meest efficiënte manier om de playbooks te beheren, ook al zijn er andere manieren om het net zo goed te doen. De rolfunctie is uitsluitend bedoeld voor de overzichtelijke structuren van de playbooks.
- Gebruik van versiebeheer - Versiebeheer is niets nieuws of ongewoons in codering, integendeel. Bijvoorbeeld, het bijhouden van variabelen, rollen, inventaris en playbooks in het Git versie systeem is een uitstekende manier om in controle te blijven met de datasets.
- Unieke naamgeving voor variabelen - De namen van de variabelen zijn niet alleen uniek, maar hebben ook een betekenis. Om verwarring te voorkomen, voegen de ontwikkelaars een prefix (rolnaam) toe aan een variabele, wat resulteert in netjes georganiseerde variabelen.
- Staging en productie met een aparte inventaris - Alles is toegankelijker als de ontwikkelaar niet alles bijhoudt in één inventarisbestand, maar in plaats daarvan aparte gebruikt.
- Bloksyntax gebruiken - Ansible Blocks helpen de ontwikkelaar bij het logisch groeperen van taken. Met dit gezegd hebbende, maken ze gemakkelijk rollbacks mogelijk wanneer dit dringend is, stellen ze gegevens in op taken en organiseren ze de code.
- Native modules use - In plaats van overmatig gebruik van specifieke commando's (shell, raw, command) en later dingen ingewikkelder te maken, gebruiken de ontwikkelaars ze spaarzaam. En dat doen ze omdat Ansible native modules heeft, honderden zelfs.
- Rolling updates met serieel sleutelwoord - Ansible biedt het seriële sleutelwoord waarmee de dev het aantal machines kan kiezen dat in één keer en in één batch moet worden bijgewerkt. Met het sleutelwoord serial kunnen ontwikkelaars ook het aantal hosts selecteren dat beheerd moet worden.
Anmol heeft aan de bovenstaande punten toegevoegd:
"De ontwikkelaar moet een uitstekende kennis hebben van de tags en rollen en probleemoplossing. Ze zullen de YAML beveiliging en encryptie onder de knie krijgen en weten hoe te werken rond rollback en shell scripting. Natuurlijk zullen ze ook veel kennis hebben van Python en Go."
Mogelijke uitdagingen bij het inhuren van een Ansible-ontwikkelaar
Door te weten wat de mogelijke uitdagingen zijn tijdens het aanwervingsproces, kun je verwachten dat de kandidaten goed voorbereid zijn:
Beperkte talentenpool
Deze uitdaging komt vaak voor, maar misschien kun je proberen het breder te trekken. Probeer verschillende banenplatforms waar recruiters en talent niet schaars zijn. Hoe meer jobplatforms worden onderzocht, hoe groter de kans dat deze talentenpool wordt uitgebreid.
Gebrek aan hoogopgeleide kandidaten
Het vinden van de stellaire expertise in kandidaten kan een probleem zijn, zelfs als de talentenpool vrij groot is - het gaat hier om het aantal gekwalificeerde kandidaten, niet om hoe groot de talentenpool is. Er zullen veel goede Ansible ontwikkelaars zijn, maar misschien niet met stellaire kennis en uitstekende vaardigheden.
Concurrenten
Ervan uitgaande dat er Ansible ontwikkelaars zijn die echt uitblinken in wat ze doen, kunnen ze al in dienst zijn of een salaris vragen dat niet in je budget past.
In die gevallen kunnen je concurrenten de doorslag geven. Sommigen geven de dev al hun gewenste (hoge) salaris of zijn bereid om meer uit te geven als ze de beste dev willen inhuren. Sommige concurrenten zouden ook bereid kunnen zijn om veel betere aanbiedingen te doen dan het marktgemiddelde.
Het kostbare en langdurige wervingsproces
Kosten zijn ook een uitdaging voor het wervings- en aannameproces. Dit betekent dat er een risico bestaat dat recruiters slecht zoeken naar kandidaten, waardoor er ongeschikte kandidaten op gesprek komen, de beste devs worden gemist en het proces opnieuw wordt herhaald.
Zakelijke drijfveren en de waarde van Ansible
Laten we eens kijken wat de voordelen zijn van het gebruik van Ansible bij ontwikkeling; op welke manier Ansible waarde toevoegt voor een bedrijf en waarom het essentieel is om het te gebruiken/implementeren:
- Flexibel - De ontwikkelaar kan de algehele dynamiek van de app-omgeving eenvoudig organiseren en dicteren, ongeacht de plaats van implementatie. Aanpassen gaat net zo gemakkelijk, volgens specifieke vereisten.
- Geen agentprogramma's meer nodig - Er zijn geen firewallpoorten of specifieke software-installaties meer nodig omdat het nu mogelijk is om het systeem van de klant te automatiseren zonder dat deze dingen geïnstalleerd zijn en zonder individuele en nieuwe beheerstructuren.
- Gratis - Omdat Ansible open-source is, is het ook gratis en voor iedereen toegankelijk.
- Efficiënt - Het is ongelooflijk dat je met Ansible geen extra software hoeft te installeren; dit maakt op zijn beurt veel ruimte voor specifieke bronnen voor de app, anders op de server.
- Gemakkelijk op te zetten en te gebruiken - De functies van Ansible maken het niet alleen gemakkelijk om te gebruiken, maar ook om het initieel op te zetten.