DevOps er en programvareutviklingsmetodikk som har som oppgave å etablere interaksjon mellom programmerere og systemadministratorer i en bedrift. Hvis IT-spesialister fra ulike avdelinger ikke forstår hverandres oppgaver, blir utgivelsen av nye applikasjoner og oppdateringer for dem forsinket.
DevOps skaper en "sømløs" utviklingssyklus, og bidrar dermed til å fremskynde utgivelsen av et programvareprodukt. Akselerasjon oppnås gjennom innføring av automasjonssystemer. I tillegg begynner programmerere å delta i å sette opp servere og finne feil, for eksempel kan de skrive automatiserte tester.
Dette forbedrer samhandlingen mellom avdelingene. Ansatte begynner å bedre forstå hvilke stadier et programvareprodukt går gjennom før det kommer i hendene på brukeren.
Når en utvikler forstår hva en administrator møter når han setter opp en server, vil han prøve å jevne ut mulige "skarpe hjørner" i koden. Dette reduserer antall feil når du distribuerer en applikasjon - ifølge statistikk, det avtar omtrent fem ganger.
Hvem trenger og ikke trenger metodikken
Mange mener IT-eksperterat DevOps vil være til nytte for enhver organisasjon som utvikler programvare. Dette gjelder selv om bedriften er en enkel forbruker av IT-tjenester og ikke utvikler egne applikasjoner. I dette tilfellet vil implementering av en DevOps-kultur hjelpe deg med å fokusere på innovasjon.
Unntaket redegjøre for startups, men her avhenger alt av prosjektets omfang. Hvis målet ditt er å lansere et minimum levedyktig produkt (MVP) for å teste en ny idé, kan du klare deg uten DevOps. For eksempel begynte grunnleggeren av Groupon å jobbe med tjenesten manuelt lagt ut alle tilbud på nettsiden og innsamlede bestillinger. Han brukte ingen automatiseringsverktøy.
Det er bare fornuftig å implementere automatiseringsmetodikk og -verktøy når applikasjonen begynner å bli populær. Dette vil bidra til å strømlinjeforme forretningsprosesser og fremskynde utgivelsen av oppdateringer.
Hvordan implementere DevOps
Nedenfor er noen anbefalinger for å bytte til en ny metodikk.
Identifisere problemer i forretningsprosesser. Før du implementerer metodikken, fremhev organisasjonens mål og problemer. Strategien for overgang til DevOps vil avhenge av dem. For å gjøre dette, lag en liste med spørsmål, for eksempel:
Hva tar mest tid når du oppdaterer programvare?
Er det mulig å automatisere denne prosessen?
Påvirker strukturen i organisasjonen dette?
Lær mer om å identifisere problemer i en organisasjon kan leses i bøker «Prosjekt "Phoenix""Og"DevOps-veiledning» fra forfatterne av metodikken.
Endre kulturen i bedriften. Det er viktig å overbevise alle ansatte om å endre sine vanlige arbeidsmåter og utvide sitt kompetansespekter. For eksempel på Facebook alle programmerere møte for hele applikasjonens livssyklus: fra koding til implementering. Facebook har heller ikke en egen testavdeling – testene er skrevet av utviklerne selv.
Begynn i det små. Velg prosessen som tar mest tid og krefter når du slipper oppdateringer og automatiser den. Dette kanskje testing eller applikasjonsdistribusjonsprosess. Eksperter rådgi Det første trinnet er å implementere distribuerte versjonskontrollverktøy. De gjør det lettere å administrere kilder. Blant slike løsninger er de mest kjente Git, Mercurial, Subversion (SVN) og CVS.
Det er også verdt å ta hensyn til kontinuerlige integrasjonssystemer som er ansvarlige for montering og testing av sluttproduktet. Eksempler på slike verktøy: Jenkins, TeamCity og Bamboo.
Vurder forbedringer. Utvikle ytelsesmålinger for implementerte løsninger og lag en sjekkliste. Beregninger kan inkludere utgivelsesfrekvens, tid brukt på å jobbe med programvarefunksjoner og antall feil i koden. Diskuter resultatene ikke bare med ledere, men også med resten av teamet som er involvert i prosjektet. Spør hvilke verktøy som mangler. Ta disse forespørslene i betraktning når du optimaliserer prosessene dine videre.
Kritikk av DevOps
Selv om metodikken det hjelper organisasjoner kan ta raskere beslutninger angående applikasjonsutvikling, kutt antall feil i programvaren og oppmuntrer ansatte til å lære nye ting, har den også kritikere.
Det er utsiktat programmerere ikke skal forstå detaljene i arbeidet til systemadministratorer. Angivelig fører DevOps til at i stedet for utviklings- eller administrasjonsspesialister har selskapet folk som forstår alt, men overfladisk.
Det antas også at DevOps ikke fungerer med dårlig ledelse. Dersom utviklings- og adminteamene ikke har felles mål, er det lederne som har skylden for ikke å organisere kommunikasjonen mellom teamene. For å løse dette problemet er det ikke nødvendig med en ny metodikk, men et system for å evaluere ledere basert på tilbakemeldinger fra underordnede. Du kan lese den her, hvilke spørsmål som bør inkluderes i medarbeiderundersøkelsesskjemaer.
En DevOps-ingeniør implementerer DevOps-metodikken. Den synkroniserer alle stadier av å lage et programvareprodukt: fra å skrive kode til å teste og frigi applikasjonen. En slik spesialist kontrollerer utviklings- og administrasjonsavdelingene, pluss automatiserer utførelsen av oppgavene deres ved å implementere ulike programvareverktøy.
Trikset til en DevOps-ingeniør er at han kombinerer mange yrker: administrator, utvikler, tester og leder.
Joe Sanchez, DevOps-evangelist hos VMware, et virtualiseringsprogramvareselskap, utpekt en rekke ferdigheter som en DevOps-ingeniør må ha. I tillegg til den åpenbare kunnskapen om DevOps-metodikk, bør denne personen ha erfaring med å administrere Windows- og Linux-operativsystemer og erfaring med å jobbe med automatiseringsverktøy som f.eks. Chef, Puppet, Ansible. Han bør også kunne skrive skript og kode på et par språk og forstå nettverksteknologier.
En DevOps-ingeniør er ansvarlig for all automatisering av oppgaver knyttet til konfigurering og distribusjon av applikasjoner. Programvareovervåking faller også på hans skuldre. For å løse disse problemene bruker han ulike konfigurasjonsstyringssystemer, virtualiseringsløsninger og skyverktøy for å balansere ressurser.
Hvem ansetter
DevOps-ingeniører kan være til nytte for enhver organisasjon som utvikler applikasjoner eller administrerer et stort antall servere. DevOps-ingeniører ansetter IT-giganter som Amazon, Adobe og Facebook. De jobber også på Netflix, Walmart og Etsy.
Ikke ansette DevOps-ingeniører er bare startups. Jobben deres er å gi ut et minimum levedyktig produkt for å teste en ny idé. I de fleste tilfeller kan startups klare seg uten DevOps.
Hvor mye lønn
DevOps-ingeniører tjene mer enn noen i bransjen. Gjennomsnittlig inntekt for slike spesialister rundt om i verden varierer fra 100 til 125 tusen dollar per år.
I USA de få 90 tusen dollar per år (500 tusen rubler per måned). I Canada de betale 122 tusen dollar per år (670 tusen rubler per måned), og i Storbritannia - 67,5 tusen pund sterling per år (490 tusen rubler per måned).
Som for Russland, Moskva selskaper klar betale DevOps-spesialister fra 100 til 200 tusen rubler per måned. I St. Petersburg er arbeidsgiverne litt mer sjenerøse - de tilbyr 160-360 tusen rubler per måned. I regionene er lønn oppgitt til 100–120 tusen rubler per måned.
Hvordan bli en DevOps-spesialist
DevOps er en relativt ny retning innen IT, så det er ingen etablert liste over krav til DevOps-ingeniører. I de ledige stillingene, blant kravene til denne stillingen, kan du finne både Debian- og CentOS-administrasjonskunnskaper og evnen til å jobbe med diskstasjoner. RAID-arrayer.
Basert på dette kan vi konkludere med at for det første må en DevOps-ingeniør ha et godt teknisk syn. Det er viktig for en slik person å stadig lære nye verktøy og teknologier.
Den enkleste måten å bli DevOps-ingeniør på er en systemadministrator eller utvikler. De har allerede en rekke ferdigheter som bare må utvikles. Hovedoppgaven er å forbedre minimumssettet med kunnskap i DevOps, forstå hvordan man jobber med automatiseringsverktøy og fylle hull i administrasjon, programmering og virtualiseringsferdigheter.
For å forstå hvor kunnskap fortsatt mangler, kan du bruke mini-Wikipedia på GitHub eller mentalt kart. Innbyggere i Hacker News også anbefale lese bøker "Prosjekt "Phoenix""Og"DevOps-veiledning" (som vi nevnte ovenfor) og "DevOps filosofi. Kunsten å IT-ledelse» under stempelet til O'Reilly Media.