Populariteten för Ansible gör denna verktygssvit till en efterfrågad lösning för webbutvecklingsuppdrag. Företag och varumärken som använder en sådan teknik i sitt pågående arbete (eller vill prova det i framtiden) kommer mer än gärna att titta närmare på Ansible.
Denna automationsmotor med öppen källkod har varit mycket efterfrågad och det är inte konstigt, den bidrar till att uppnå en önskad, förenklad automation. Och du strävar säkert efter detta i ditt företag. Därför kan du använda några tips för att optimalt söka efter och anställa Ansible-utvecklare.
Att välja den bästa kandidaten bland alla som har ansökt är inte en enkel uppgift; många kommer att uppfylla kraven i din jobbannons, och här kommer den knepiga delen. Risken är att lägga för mycket kraft, tid och pengar på en process som började dåligt planerad och som kommer att bli kostsam att återställa längre fram.
Låt oss hoppa direkt till det och klargöra det väsentliga om Ansible och hur anställningsprocessen för Ansible-utvecklare ska se ut.
Om Ansible
Ansible representerar en uppsättning programvaruverktyg (även betraktad som en motor med öppen källkod för automatisering och IT-infrastruktur) som används för konfigurationshantering, orkestrering och appdistribution, bland annat. Andra, lika livskraftiga användningsområden för Ansible, är tillhandahållande av infrastruktur, uppdatering av server och arbetsstation, uppgradering av säkerhet, installation av programvara, patchsystem och automatiseringsdelning i större skala.
Med Ansible kan utvecklare konfigurera datorer på nätverksnivå - inte bara en enda dator. Det är enkelt att installera och använda, och det finns inga krav på säkerhetsinfrastruktur eller användning av agentprogramvara. I kombination med DevOps är Ansible en utmärkt verktygssvit eftersom den möjliggör enkel automatisering och förenklar arbetet för DevOps-experter.
Michael DeHaan skapade Ansible, och det släpptes första gången 2012. Nästa år, 2013, grundade Said Ziouani och Timothy Gerla Ansible, Inc (AnsibleWorks, Inc.). Red Hat förvärvade det senare 2016.
Varför och när ska man anställa en Ansible-utvecklare?
Du måste anlita en Ansible-utvecklare om du behöver automatisering. Detta är det centrala försäljningsargumentet som Ansible tillhandahåller.
De betydande fördelarna med automatisering kan främst ses i funktionalitet och standardisering av molndistributioner (både privata och offentliga). Med hjälp av moduler, playbooks och roller kan utvecklarna orkestrera säkerhetssystemen på bästa möjliga sätt.
Genom att arbeta med bara en plattform för automatisering (Ansible) blir distributionen, hanteringen och skalningen av arbetet mycket mer hanterbar. Du kommer också att märka hur den dagliga hanteringen är enklare och mer tillförlitlig, liksom uppgraderingar och installationer i den meningen att de är enkla att genomföra.
Med Ansible kommer utvecklingsprocessen att påskyndas och förbättras tack vare en process som kallas multistep app-orchestrating. Detta möjliggör regelbundna koduppdateringar, inklusive buggfixar och andra nyheter i de kommande programvarufunktionerna.
Användbar statistik om Ansible
Den genomsnittliga lönen för en Ansible dev är $87,019 per år, med den lägsta lönen på $68K och den högsta på $112K per år.
När det gäller populariteten för Ansible som verktygssvit har 9,49% av utvecklarna sagt att detta är deras grundläggande verktyg att använda vid utveckling.
Populära varumärken som förlitar sig på Ansible-användning
Det här är några varumärken som använder Ansible:
- Revolut
- Amelco
- Udemy
- Walmart
- trivago
- Alibaba Resor
- Udemy
- Typform
- ViaVarejo
- StartaMörkt
Intervjua en Ansible-utvecklare
Naturligtvis är detta den centrala delen av anställningsprocessen. För att hitta och anställa den bästa Ansible-utvecklaren måste du vara uppmärksam på de tekniska och icke-tekniska färdigheter (och vissa väsentligheter) som utvecklaren måste ha. Sedan måste du använda relevanta intervjufrågor för att kunna bedöma den sökande på rätt sätt.
Tekniska färdigheter hos en Ansible-utvecklare
En erfaren Ansible-utvecklare kommer att ha betydande erfarenhet av:
- Att känna till Yaml-syntaxen
- Har erfarenhet av kodredigerare, som Visual Studio Code
- Känna till Ansible Galaxy väl, med dess kataloguppgifter och kommandon
- Använda spellböckerna för Ansible
- Kunskap om källkontrollsystem, som Git och dess kommandon git pull, git push, git clone.
Anmol Nagpal, en DevOps-ingenjör i Proxify-nätverket, sa att det finns några viktiga tekniska fokuspunkter att leta efter hos en Ansible-utvecklare:
"Ansible-utvecklaren bör ha omfattande kunskaper om Unix och Windows OS och förstå Docker i stor utsträckning. De behöver praktisk erfarenhet av CI/CD-automatiseringsrörledningar, och lika viktigt, utmärkt erfarenhet av L2 (ethernet) och L3 (switch) nätverk också.
Icke-tekniska färdigheter hos en Ansible-utvecklare
De icke-tekniska färdigheterna är lika nödvändiga som de tekniska. Hur mycket du än värdesätter teknisk expertis - professionalism och attityd på arbetsplatsen är betydande påverkansfaktorer för ett framgångsrikt arbetsförhållande.
Rekryterare, anställningschefer och specialister på talangutveckling bör fokusera på punctuality. Detta visar hur ansvarsfullt någon tar intervjun, vilket är en bra indikator på framtida beteende i en arbetsmiljö (att komma i tid, respektera andras tid).
Med detta sagt visar förberedelserna av utvecklaren också deras engagemang - utrustningens kvalitet (kamera, headset), rum och belysning samt klädkod är alla viktiga faktorer som påverkar det intryck som kandidaten lämnar vid första anblicken.
Sedan är deras English proficiency-nivå ännu en nyckelfaktor att se upp för. Om det finns ett språkligt hinder mellan utvecklaren och kunden kommer det sannolikt att påverka den dagliga kommunikationen. Den övergripande attityden är också viktig; att vara öppen, kommunikativ, optimistisk, nyfiken och en noggrann lyssnare är alla viktiga faktorer för en välmående arbetsdynamik.
De behöver goda kommunikations- och problemlösningsförmågor, förmåga att trivas i ett team och ett tillväxtorienterat tankesätt.
Essentials och bedömning av en Ansible-utvecklare
Det finns inga hinder för att lära sig Ansible (vilket betyder att det är mycket enkelt). En viktig sak för kandidaten att ha är en utmärkt behärskning av Linux-systemet eftersom vi måste köra Ansible på det (Ansible kan också köras på WSL - Windows Subsystem for Linux - men det stöds för närvarande inte av Ansible och det bör inte användas för verkligt arbete).
En annan önskad förutsättning är att ha stor erfarenhet och goda kunskaper om det mänskligt läsbara språket för dataserialisering, YAML, eftersom Ansible-playböckerna är skrivna på detta språk.
Slutligen är Ansible skrivet i Python. I bästa fall måste utvecklaren vara mycket bekant med och mycket erfaren inom Python.
Anmol lade till de önskvärda måste-haves (eller väsentligheter) för blivande Ansible-ingenjörer som i:
"Utvecklaren behöver minst sex månaders erfarenhet av Linux. Men de behöver också kunskap om funktionaliteten i Ansible, Ansible-rollerna, taggarna, playbooks och GitLab. Annars skulle jag fråga dem om konfigurationshantering, hur man kör spelboken med taggar, och jag skulle också fråga om Ansible Galaxy, ad hoc-kommandon, inga direktåtkomstservrar och fler liknande relevanta punkter.
Ansible intervjufrågor
1. Kan du förklara vad CI/CD är?
Väntat svarr: För utrullningsprocesser och effektivisering av utveckling använder vi Continuous Integration. När en app har byggts anropar vi Ansible från ett CI-system. Det här är ett vanligt sätt att göra en enkel integration.
Med Continuous Delivery genomför vi en process för att ta en kod till produktion när den koden tidigare fanns i ett fjärrförvar.
2. Vilka är kraven på Ansible-servern?
Väntat svar: Det är ett måste att ha en virtuell maskin med installerad Linux på den. När det gäller programmeringsspråk behöver vi minst Python v2.6 eller högre.
3. Vad är Ansible Playbooks?
Väntat svar: Ansible Playbooks är en grupp av uppgifter i en lista som används för att utföra mot värdar automatiskt. När vi har fler värdar i fler grupper kallas detta Inventory.
Varje enskild modul i Playbook är avsedd för en viss uppgift. Den innehåller de metadata som användaren utför arbetsuppgifterna för och information om själva utförandet av arbetsuppgifterna (var och när).
Vi kan använda Playbook på två sätt: inifrån plattformen (Red Hat Ansible Automation Platform) och från CLI.
4. Vad är Ansible-uppgifter?
Väntat svar: Den minsta handlingsenhet som vi vill automatisera med hjälp av en playbook kallas för en uppgift. Den här uppgiften bryter ner en konfigurationspolicy och delar upp den i kodblock. Därefter hjälper dessa kodblock till i automatiseringsprocesserna och är avgörande för automatiseringsprocessen totalt sett.
Spelboken består av en serie uppgifter, och Ansible kommer att utföra dem (uppgifterna) exakt som i spelboken, i samma ordning. Alla dessa uppgifter används för appdistribution till en fjärrmiljö eller också för en webbserverinstallation.
5. Fördjupa dig i Ansible-moduler.
Väntat svar: Ansible-moduler används inuti Ansible playbook och är fristående skript. Här är några exempel:
- Package Management - För installation av olika paket, uppgradering, nedgradering och borttagning av dessa paket.
- Ansible Command Module - För implementering av kommandon i fjärrnoden, och används vanligtvis för Linux-kommandon för fjärrservrar.
- Ansible Yum Module - Används för att installera olika tjänster med pakethanteraren Yum (standard för Red Hat Linux-distributioner).
- Ansible File Module - För olika metoder för att skapa nya filer; tilldelning av ägare, gruppbehörigheter med mera.
- Ansible User Module - För hantering av olika konton för användare av ett Linux-system, och för att lägga till grupper, lösenordsinställningar och till och med radering av ett användarkonto.
- Ansible Lineinfile Module - För justeringar av den befintliga raden; infoga, ändra, ta bort och ersätta rader.
- Ansible Archive Module - För att skapa komprimerade arkiv, men i olika filer.
- Ansible Template Module - En modul med alla möjliga konfigurationsparametrar som du behöver för enklare hantering av serverkonfigurationen genom att skapa statiska filer.
- Ansible Cli_Command Module - För att skicka konfigurationer (textbaserade) till enheter via network_cli-insticksprogrammet.
- Ansible Windows-moduler - Dessa moduler testas för Windows-värdar.
6. Vad kan du säga om Ansible-taggarna?
Väntat svar: Taggen representerar ett attribut för strukturen i Ansible, dess uppgifter, roller och spel. Låt oss säga att vi har en massiv spelbok. I det här fallet är det bäst att bara köra en del av den och inte allt i den playbooken. Taggattributet visar sig vara en perfekt lösning för detta.
När vi använder taggarna kan vi välja vad vi kontrollerar eller om vi ska använda taggarna via kommandoraden. Men vi kan använda två sätt att filtrera de taggbaserade uppgifterna:
- (För kommandoraden) använd -taggar och -skip-taggar
- (Ansible konfigurationsinställningar) använd TAGS_RUN och TAGS-SKIP
7. Beskriv Ansible Roles.
Väntat svar: Med Ansible roles kan vi utveckla återanvändbara automatiseringskomponenter. Vi gör detta genom att gruppera och kapsla in mallar, konfigurationsfiler, handlers och tasks (alla benämnda automatiseringsartefakter).
Det som är bra med roller är att de möjliggör automatisk laddning av filer, uppgifter, vars, meta, standardvärden och hanterare, bland många andra. Så när vi väl har samlat innehåll i roller (genom att gruppera flera uppgifter) är det ganska enkelt att dela detta med resten av användarna.
Rollerna består av många playbooks; i huvudsak är de en uppsättning filer som tilldelats för en specifik roll innan konfigurationerna delas upp.
8. Vad är Ansible Galaxy?
Väntat svar: Det massiva offentliga förvaret av Ansible-roller kallas Ansible Galaxy, och dessa roller ökar och uppgraderas också ständigt. Galaxy är webbplatsen som gör det möjligt för användare att skapa, installera, hantera och dela samhällsutvecklade roller.
Om vi (utvecklare) skapar roller kan vi dela dem via Galaxy och använda GitHub-kontot. På så sätt kan vi importera rollerna och göra dem tillgängliga för alla i Ansible-gemenskapen. Om vi importerar roller kommer de i sin tur att vara synliga och tillgängliga i sökindexet för Galaxy, så att användare också kan använda dem genom att först ladda ner dem.
9. Kan du utveckla Ansible Tower?
Väntat svar: Ansible Tower representerar företagsversionen av Ansible, vilket möjliggör distribution av Ansible-fördelar i stor skala. Den kan integreras med den befintliga infrastrukturen, t.ex. säkerhet, nätverk, appdistribution, lagring och livscykelprocesser för programvaruutveckling.
Funktionerna i Ansible Tower inkluderar:
- Schemaläggning av jobb
- GUI instrumentpanel (Grafiskt användargränssnitt)
- RESTful API
- Uppdateringar av jobbstatus i realtid
- Arbetsflöden med flera spelböcker
- Loggning av integrationer (extern)
- Åtkomstkontroll (rollbaserad)
10. På vilket eller vilka sätt kan du testa projekten i Ansible?
Väntat svar: Vi kan testa dessa projekt på tre sätt:
- Asserts - Om vi kör ett test i Python kommer Asserts att duplicera metoden och sättet för testkörningen. När ett system når ett visst tillstånd (avsett tillstånd) verifierar Asserts detta åt oss.
- Manual Run - För detta behöver vi bara leka och se till att vi har önskat tillstånd för systemet. Den här metoden är ganska enkel, men en nackdel är att det kan finnas en skillnad mellan resultaten i miljöerna (testmiljö vs. produktionsmiljö)
- Check Mode - Om vi inte kör simuleringen men vill veta hur saker och ting skulle gå till kan check mode visa oss just detta, dvs. vi kan kontrollera om allt från engagemanget beter sig som vi vill att det ska göra. En brist är att vi inte kan köra kommandon och skript för spelböcker och roller. En lösning på detta är att inaktivera check-mode för specifika uppgifter, och vi behöver bara köra check_mode:no
Vad skiljer en bra Ansible-utvecklare från en bra?
De bästa Ansible-utvecklarna kommer att ha fler års erfarenhet, goda kunskaper i engelska, kritiskt tänkande och resultat över genomsnittet i de tekniska testerna.
Det finns också vissa specifika saker som högkvalitativa Ansible-utvecklare gör, vilket gör deras arbete enklare, renare och mer optimerat (förutom att det också påskyndar utvecklingsprocessen:
- Kommentarer och användning av blanksteg - Med YAML kan utvecklarna skriva Ansible Playbooks of Ansible; därför hjälper blanksteg (bokstavligt utrymme) YAML att beteckna nestningen och definiera dokumentets struktur.
- Organisera playbooks genom roller - Förmodligen det mest effektiva sättet att hantera playbooks, även om det finns andra sätt att göra det lika bra. Rollfunktionen är uteslutande avsedd för de välorganiserade strukturerna i spelböckerna.
- Versionshantering - Versionshantering är inget nytt eller ovanligt inom kodning, tvärtom. Att till exempel hålla variabler, roller, inventarier och playbooks i Git-versionssystemet är ett utmärkt sätt att hålla koll på dataseten.
- Unika namn på variabler - Variablernas namn är inte bara unika utan har också en betydelsefull innebörd. För att undvika förvirring lägger utvecklarna till ett prefix (rollnamn) till en variabel, vilket resulterar i snyggt organiserade variabler.
- Staging och produktion med en separat inventering - Allt är mer tillgängligt när utvecklaren inte håller allt underhållet i en enda inventeringsfil utan istället använder separata.
- Använda blocksyntax - Ansible Blocks hjälper utvecklaren att logiskt genomföra uppgiftsgruppering. Med detta sagt kan de enkelt aktivera rollbacks när det är brådskande, ställa in data till uppgifter och organisera koden.
- Användning av inbyggda moduler - Istället för att överdrivet använda specifika kommandon (shell, raw, command) och senare komplicera saker, använder utvecklarna dem sparsamt. Och de gör det eftersom Ansible har inbyggda moduler, hundratals av dem.
- Rolling updates with serial keyword - Ansible erbjuder serial keyword som gör det möjligt för utvecklaren att välja antalet maskiner som ska uppdateras på en gång och i en batch. Med nyckelordet serial kan utvecklare också välja antalet värdar som ska hanteras också.
Till de listade punkterna ovan lade Anmol till:
"Utvecklaren bör ha utmärkt kunskap om taggarna och rollerna och felsökning. De kommer att behärska YAML-säkerhet och kryptering och veta hur man arbetar med rollback och shell scripting. Naturligtvis kommer de också att ha stor kunskap om Python och Go."
Möjliga utmaningar under anställningen av en Ansible-utvecklare
Genom att känna till vilka utmaningar som kan uppstå under anställningsprocessen kan du förvänta dig att kandidaterna är väl förberedda:
Begränsad talangpool
Det är vanligt att stöta på den här utmaningen, men du kanske kan försöka utforska den på ett bredare plan. Testa olika jobbplattformar där rekryterare och talanger inte är en bristvara. Ju fler jobbplattformar som undersöks, desto bättre är chanserna att utvidga denna talangpool.
Brist på högutbildade kandidater
Det kan vara ett problem att hitta kandidater med spetskompetens, även om talangpoolen är ganska stor - det är antalet kvalificerade kandidater som är det viktiga här, inte hur stor talangpoolen är. Det kommer att finnas många bra Ansible-utvecklare, men kanske inte med fantastisk kunskap och enastående färdigheter.
Konkurrenter
Förutsatt att det finns Ansible-utvecklare som verkligen briljerar i det de gör, kan de redan vara anställda eller begära en lön som inte passar din budget.
I dessa fall kan dina konkurrenter vara den avgörande faktorn i det hela. Vissa ger redan utvecklaren sin önskade (höga) lön eller är beredda att lägga ut pengar om de vill anställa den bästa utvecklaren som andra önskar. Vissa konkurrenter kan också vara beredda att ge mycket bättre erbjudanden än genomsnittet på marknaden.
Den kostsamma och utdragna rekryteringsprocessen
Kostnaderna är en utmaning även för rekryterings- och anställningsprocessen. Detta innebär att det finns en risk för att rekryterare söker efter kandidater på ett dåligt sätt, vilket leder till att olämpliga kandidater intervjuas, att de bästa utvecklarna missas och att processen upprepas på nytt.
Affärsdrivrutiner och värdet av Ansible
Låt oss se vilka fördelar det finns med att använda Ansible i utvecklingsarbetet; på vilket sätt Ansible tillför värde för ett företag och varför det är viktigt att använda/implementera det:
- Flexibel - Utvecklaren kan enkelt organisera och diktera den övergripande dynamiken för appmiljön, oavsett var den distribueras. Anpassning går lika lätt också, enligt specifika krav.
- Inget behov av agentprogram - Det finns inte längre något behov av brandväggsportar eller installation av specifik programvara eftersom det nu är möjligt att automatisera kundens system utan att dessa saker installeras och utan individuella och nya hanteringsstrukturer.
Kostnadsfritt - Eftersom Ansible är öppen källkod är det också kostnadsfritt och tillgängligt för alla.
- Effektiv - Det är otroligt att det med Ansible inte finns något behov av ytterligare programvara att installera; detta ger i sin tur mycket utrymme för specifika resurser för appen, annars på servern.
- Lätt att installera och använda - Funktionerna i Ansible gör det inte bara lätt att använda utan också lätt att installera initialt.