DORA-rapport 2019: Hoe u de efficiëntie van DevOps kunt verbeteren

DORA-rapport 2019: Hoe u de efficiëntie van DevOps kunt verbeteren

Een paar jaar geleden beschouwden veel organisaties DevOps als een veelbelovend experiment in plaats van als een reguliere benadering van softwareontwikkeling. DevOps is nu een bewezen en krachtige reeks ontwikkelings- en implementatiepraktijken en -tools die de release van nieuwe producten kunnen versnellen en de productiviteit kunnen verhogen. Belangrijker nog is dat de impact van DevOps op de algehele bedrijfsgroei en verhoogde winstgevendheid ligt.

Team Mail.ru Cloud-oplossingen vertaalde het meest interessante uit 2019 Accelerate State of DevOps-rapport, samengesteld door DevOps Research & Assessment (DORA)-experts. Bij het onderzoek waren 31 specialisten van over de hele wereld betrokken. Laten we eens kijken naar wat er in 000 in de branche is veranderd en hoe bedrijven de efficiëntie van hun softwarelevering kunnen verbeteren.

Hoe de sector en de bedrijfsgrootte de staat van DevOps beïnvloeden

Uit het onderzoek bleek geen correlatie tussen de prestaties van DevOps en de sector van een organisatie, met uitzondering van de detailhandel, die iets beter presteerde. Dit is met name te wijten aan het feit dat detailhandelaren snel moeten reageren op schommelingen in de vraag en de behoeften van klanten. Volgens het onderzoek kan elk bedrijf een hoog niveau van DevOps bereiken, inclusief de financiële sector en de publieke sector.

DevOps-prestaties bij bedrijven met meer dan 5000 werknemers waren lager dan bij bedrijven met minder dan 5000 werknemers. Hoogstwaarschijnlijk is dit te wijten aan het feit dat grote organisaties grotere processen, striktere controle en een complexere IT-systeemarchitectuur hebben, wat vertragingen introduceert in het proces van het ontwikkelen en uitrollen van code. Tegelijkertijd zijn experts van mening dat de schaal van het bedrijf het succes bij het bouwen van DevOps niet in de weg staat, maar dat het in sommige gevallen gewoon meer inspanning kan vergen.

Hoe het niveau van DevOps in een bedrijf te beoordelen

Experts vergeleken DevOps-processen met een benchmark en verdeelden de respondenten in vier groepen: beste, goede, gemiddelde en slechte presteerders.

Voor het rapport hebben we vier belangrijke maatstaven gebruikt om de effectiviteit van DevOps te beoordelen: de tijd om veranderingen in de softwareontwikkeling te voltooien, de implementatiefrequentie, het foutpercentage en de hersteltijd.

Vier niveaus van DevOps - beoordeel waar uw bedrijf staat:

Een maatstaf voor het beoordelen van de effectiviteit van de softwarelevering voor de belangrijkste services en applicaties van het bedrijf

Teams met de beste records

Teams met goede prestaties

Gemiddelde teams

Slecht presterende teams

Implementatiefrequentie
Hoe vaak het bedrijf code in productie implementeert of vrijgeeft aan eindgebruikers.

Op verzoek meerdere implementaties per dag

Van één keer per dag tot één keer per week

Van één keer per week tot één keer per maand

Eén keer per maand/meerdere maanden

Wijzig de uitvoeringstijd
Hoe lang duurt het om van een test over te gaan naar software die succesvol in productie draait?

In minder dan een dag

Van één dag tot een week

Van een week tot een maand

Van een maand tot zes maanden

Hersteltijd van de service
Hoe lang duurt het om een ​​service te herstellen na een incident of bug die gebruikers treft.

Minder dan een uur

Overdag

In een week

Van een week tot een maand

Wijzig het faalpercentage
Welk percentage updates of nieuwe releases leidt tot verminderde service en vereist oplossingen?

0-15%

0-15%

0-15%

46-60%

Uit het onderzoek kwam de volgende trend naar voren: het aantal goed presterende teams is bijna verdrievoudigd, van 7% van alle respondenten in 2018 naar 20% in 2019.

DORA-rapport 2019: Hoe u de efficiëntie van DevOps kunt verbeteren
Verdeling van ontwikkelteams naar prestatieniveau.

Vergeleken met teams in de laag presterende groep, presteren goed presterende DevOps-teams:

  1. 208 keer meer code-implementaties uitgevoerd.
  2. Besteed 106 keer minder tijd aan code-implementatie.
  3. We kwamen 7 keer minder vaak fouten tegen.
  4. Software werd 2,604 keer sneller hersteld na storingen.

Bovendien is de kans dat goed presterende DevOps-teams de prestatiestatistieken van de organisatie halen of overtreffen twee keer zo groot als slecht presterende teams.

Veel deskundigen zijn van mening dat het onmogelijk is om op alle indicatoren tegelijk een stijging te realiseren; er moet een compromis worden gesloten. Sommigen zijn dan ook van mening dat het verhogen van de snelheid van releases een negatieve invloed kan hebben op de betrouwbaarheid van het softwareleveringsproces en de dienstverlening. Onderzoek heeft echter aangetoond dat snelheid en consistentie van resultaten elkaar niet uitsluiten.

Ik zie niets verrassends in de groei van het aantal DevOps-teams; het is logisch: de DevOps-filosofie is inmiddels populair en het aantal startups groeit.

Maar naar mijn mening hebben de experts niet geheel correcte parameters gekozen om de effectiviteit van DevOps te beoordelen.

Het evalueren op basis van de snelheid van de code-uitrol is op zijn zachtst gezegd vreemd. Dit geldt alleen voor startups, waarbij de belangrijkste parameter de snelheid is waarmee het product op de markt wordt gebracht, en vaak wordt het product in zijn ruwe vorm gelanceerd. In dergelijke omstandigheden zijn mechanismen die de ontwikkeling en levering aan de productie versnellen van cruciaal belang. Maar voor gevestigde software, zoals financiële of medische software, bestaat de parameter voor het percentage mislukkingen mogelijk niet; fouten kunnen onaanvaardbaar zijn.

Hetzelfde geldt voor de hersteltijd van services: voor elke ontwikkelde service zou deze in seconden moeten worden berekend, maar voor veel services is downtime onaanvaardbaar; voor dit doel zijn naadloze uitroltechnologieën (bijvoorbeeld groen/blauw) uitgevonden.

Bovendien moet u zich niet concentreren op het aantal code-implementaties; dit hangt af van de behoefte en competenties van het ontwikkelteam. Als de implementatie gepaard gaat met het toevoegen van nieuwe functionaliteit, is dat één ding, maar als het gaat om het corrigeren van fouten die tijdens eerdere implementaties zijn gemaakt, is dat iets heel anders.

Denis Romanenko, freelance-expert bij Mail.ru Cloud Solutions

Hoe u DevOps-processen kunt verbeteren

Het rapport presenteert twee gebieden die DevOps zullen helpen verbeteren: het verhogen van de efficiëntie van softwareontwikkeling en -levering en het verbeteren van de productiviteit van werknemers.

DORA-rapport 2019: Hoe u de efficiëntie van DevOps kunt verbeteren
Elk van de gebieden omvat zijn eigen componenten, door te verbeteren kunt u het gewenste doel bereiken.

Volgens het rapport is de bedrijfscultuur de sleutel tot digitale transformatie. Goed presterende DevOps-teams hebben behoefte aan een cultuur van vertrouwen en psychologische veiligheid, prestatiegevoel en duidelijke doelen. In deze omgeving kunnen teamleden weloverwogen beslissingen nemen, hun mening geven en creatiever zijn.

Cloudtechnologieën, continue levering, tests voor noodherstel en verandermanagement zullen ook helpen de efficiëntie van de ontwikkeling en levering van software te verbeteren. De productiviteit kan worden verhoogd door te investeren in eenvoudig te gebruiken tools, de technische schulden terug te dringen (dat wil zeggen het percentage ineffectieve code en verouderde technologie terug te dringen), de bedrijfskennisbasis en de toegang tot externe oplossingen te organiseren.

Ik denk dat de methodiek en ideologie van DevOps juist is dat deze processen niet afhankelijk zijn van externe omstandigheden, zoals de cloud of je eigen hardware. De cloud zelf is niets meer dan een hulpmiddel; op sommige plaatsen zal het helpen, op andere zal het belemmeren of zal er geen vraag naar zijn.

Denis Romanenko, freelance-expert bij Mail.ru Cloud Solutions

Hieronder zullen we enkele componenten bekijken die de efficiëntie van DevOps-teams kunnen verbeteren.

Cloudtechnologieën maken DevOps-succes mogelijk

Anno 2019 kiezen steeds meer organisaties voor cloudoplossingen die de productiviteit van DevOps-teams aanzienlijk verhogen.

DORA-rapport 2019: Hoe u de efficiëntie van DevOps kunt verbeteren
Welke infrastructuren gebruiken DevOps-teams?

DORA ontdekte dat 80% van de respondenten plaatsneemt kernapplicaties of -diensten op het cloudplatform. Slechts 29% van de respondenten heeft echter alle vijf de belangrijkste cloudkenmerken van het National Institute of Standards and Technology geïmplementeerd: de belangrijkste standaard voor het beoordelen van de waarde van de cloud binnen DevOps.

Kenschetsing

Percentage gebruikers

Zelfbediening op aanvraag
Consumenten kunnen automatisch computerbronnen ter beschikking stellen
indien nodig, zonder de deelname van de aanbieder.

57%
(+ 11% sinds 2018)

Brede netwerktoegang
Cloudmogelijkheden zijn beschikbaar via verschillende platforms,
zoals mobiele telefoons, tablets, laptops en werkstations.

60%
(+ 14% sinds 2018)

Middelenpool
De bronnen van de provider worden gecombineerd in een multi-tenantmodel, waarbij fysieke en virtuele bronnen op aanvraag dynamisch worden toegewezen.

58%
(+ 15% sinds 2018)

Schaalbaarheid en elasticiteit
Hulpbronnen schalen horizontaal of verticaal op aanvraag, zijn vrijwel onbeperkt en kunnen op elk moment in elke hoeveelheid worden uitgegeven.

58%
(+135 sinds 2018)

doorzichtigheid
Cloudsystemen monitoren, optimaliseren en rapporteren automatisch het gebruik van hulpbronnen, afhankelijk van het type dienst: gegevensopslag en -verwerking, hoeveelheid verkeer,
actieve gebruikersaccounts.

62%
(+ 14% sinds 2018)

Platform as a Service (PaaS) evolueert steeds meer naar een implementatiemodel waarin containers centraal staan. Cloudplatforms maken het eenvoudiger om software te implementeren, zodat teams zich alleen zorgen hoeven te maken over het uitvoeren van de applicatiecode zelf. Schaalvergroting, resourceplanning, beheer en onderhoud van de infrastructuur worden ook overgedragen aan de providers.

Voor cloudproviders wordt het aanbieden van een verscheidenheid aan diensten een universele standaard: virtuele machinenetwerken, identiteits- en toegangsbeheer (IAM), opslag en databases, machinaal leren, Internet of Things (IoT), containeroplossingen, beveiligingsoplossingen en meer. .

Klanten van cloudproviders betalen alleen voor de middelen die zij gebruiken, wat kostentransparantie oplevert, in tegenstelling tot traditionele datacenters waar informatie over ontwikkelingskosten moeilijk of onmogelijk te verkrijgen is. Respondenten van bedrijven die voldoen aan de hierboven genoemde cloudkenmerken hebben 2,6 keer meer kans om de kosten van het draaien van software nauwkeurig in te schatten, 2 keer meer kans om te begrijpen welke applicaties meer bronnen vereisen, en 1,65 keer meer kans om binnen hun IT-budget te blijven.

Soms blijkt dat het inhuren van een competente specialist en het nemen van toegewezen capaciteit in een datacenter winstgevender is dan betalen voor de cloud. Welke optie beter is, hangt af van het profiel en de omvang van het bedrijf, de beschikbaarheid van eigen personeel aan IT-specialisten en expertise. De cloud is bijvoorbeeld handig in gebruik bij het starten van een bedrijf of als het bedrijf geen eigen IT-afdeling heeft. Bij het opschalen kan het kosteneffectiever zijn om de gehele of een deel van de infrastructuur op locatie te onderhouden.

Denis Romanenko, freelance-expert bij Mail.ru Cloud Solutions

Technische DevOps-praktijken

Veel organisaties die DevOps willen implementeren, zijn op zoek naar een reeks richtlijnen of best practices. Geen twee bedrijven zijn echter hetzelfde, dus welke praktijken u moet kiezen, hangt af van de huidige stand van zaken en de doelstellingen van het bedrijf.

Dat gezegd hebbende, zijn er algemene gebieden die de prestaties van DevOps kunnen helpen verbeteren: sommige zijn ontwikkeld op teamniveau, andere vereisen inspanningen op organisatieniveau.

Welke groeigebieden worden in 2019 benadrukt voor DevOps-teams:

Op organisatorisch niveau

  • losjes gekoppelde architectuur
  • implementatie van veranderingen
  • code-ondersteuning

Op teamniveau

  • continue integratie
  • automatisering testen
  • automatisering van de implementatie
  • controle
  • ontwikkelingspijplijn

Op team- en organisatieniveau

  • gebruik van clouddiensten
  • testen voor herstel na een ramp

Het onderzoek bevestigde de positieve impact van losjes gekoppelde architectuur op de prestaties van DevOps.

Losjes gekoppelde architectuur is waar teams systemen op aanvraag onafhankelijk kunnen testen, implementeren en wijzigen, onafhankelijk van andere teams, zonder extra ondersteuning, middelen, goedkeuring en met minder feedback. Hierdoor kunt u efficiënter werken, maar vereist dit wel een hoog niveau van organisatie en management.

Deze aanpak is alleen mogelijk voor startups en onder enig voorbehoud. Bij andere bedrijven kan de situatie anders zijn. Een goed voorbeeld: bankieren/fintech. Daar mogen uitsluitend propriëtaire oplossingen worden gebruikt, maar er zullen DevOps-praktijken worden toegepast.

Denis Romanenko, freelance-expert bij Mail.ru Cloud Solutions

Succesvolle DevOps-teams automatiseren alles

Continue integratie en levering (CI/CD) Hiermee kunt u services en applicaties tegen lagere kosten en risico's in productie brengen, en releases ondersteunen in overeenstemming met de doelstellingen van de organisatie.

Succesvolle CI/CD betekent ook dat teams op verzoek wijzigingen in de productie kunnen doorvoeren, onmiddellijke feedback krijgen over de kwaliteit van de implementatie en er snel naar kunnen handelen om de volgende implementatiecyclus te verbeteren.

Uit het rapport blijkt dat succesvolle DevOps-teams investeren in een breed scala aan ondersteunende processen, praktijken en tools:

  • 92% gebruikt geautomatiseerde montagegereedschappen;
  • 87% maakt gebruik van geautomatiseerde unit-tests;
  • 57% breidt de automatisering uit naar acceptatietesten;
  • 72% automatiseert implementaties in testomgevingen, 69% doet hetzelfde voor implementatie in productie;
  • 69% integreert chatbots in het implementatieproces;
  • 57% integreert met monitoringtools.

Het is belangrijk om de juiste tools en technologieën te kiezen

Bij het bouwen van complexe systemen en het beheren van bedrijfskritische infrastructuren is het belangrijk om technologieën te selecteren:

  • die zowel bij de eerste aansluiting als bij continu gebruik gemakkelijk te gebruiken zijn;
  • die u helpen uw doelen te bereiken.

Het rapport onderzocht de tools die worden gebruikt bij het implementeren van software via CI/CD en testautomatiseringstools - dit zijn de technologieën die ten grondslag liggen aan DevOps.

Welke technologieën gebruiken DevOps-teams:

Technologie

Slecht presterende teams

Gemiddelde teams

Teams met goede prestaties

Goed presterende teams

Een combinatie van eigen, open source en commercieel verpakte producten

30%

34%

32%

33%

Voornamelijk open source en sterk op maat gemaakte pakketoplossingen

17%

8%

7%

10%

Meestal open source en pakketoplossingen met weinig maatwerk

14%

21%

18%

20%

Voornamelijk commerciële oplossingen in dozen

8%

12%

8%

4%

Interne ontwikkelingen en eigen oplossingen voor het bedrijf

20%

6%

5%

6%

Voornamelijk open source met sterk maatwerk

6%

7%

5%

12%

Voornamelijk open source met een beetje maatwerk

5%

12%

24%

15%

De bruikbaarheid van tools heeft een aanzienlijke impact op het vermogen van een team om de waarde van de door hen gekozen technologiestapel te maximaliseren: ingenieurs met gebruiksvriendelijke technologieën hebben 1,5 keer meer kans om tot goed presterende teams te behoren.

Naar mijn mening geeft deze tabel het gevoel dat je, om een ​​succesvol DevOps-team te zijn, de mode moet volgen, en niet het technische probleem.

Een competente specialist kiest hulpmiddelen voor de taak, en niet andersom. Er zijn altijd verschillende hulpmiddelen en benaderingen om elk probleem op te lossen. Een specifiek hulpmiddel wordt bepaald door: de specifieke kenmerken van de taak; hoe bekend het personeel is met deze tool (hoe hoog is de instapdrempel als de tool nieuw is); financiële component, indien aanwezig.

Denis Romanenko, freelance-expert bij Mail.ru Cloud Solutions

Herstel na een ramp

Elke organisatie waarvan de werking afhankelijk is van de werking van software moet dit hebben ramp herstel plan. Het rapport laat zien welke soorten rampenbestendigheidstests verschillende bedrijven gebruiken.

Welke soorten tests gebruiken bedrijven voor noodherstel?

Type proef

Slecht presterende teams

Gemiddelde teams

Teams met goede prestaties

Goed presterende teams

De gemiddelde

Tests die geen invloed hebben op echte systemen

35%

26%

27%

30%

28%

Failover van de infrastructuur (inclusief datacenters)

27%

43%

34%

38%

38%

Testen van applicatiefouten

25%

46%

41%

49%

43%

Simulatie van incidenten met verstoring van testsystemen

18%

22%

23%

29%

23%

Simulatie van incidenten waarbij werksystemen worden verstoord

18%

11%

12%

13%

12%

Het creëren van automatisering en systemen die ontwrichten
productiesystemen op een regelmatige, voortdurende basis

9%

8%

7%

9%

8%

Slechts 40% van de respondenten voert jaarlijks disaster recovery-tests uit met behulp van een of meer van de genoemde methoden. Tegelijkertijd hebben bedrijven die noodhersteltests uitvoeren een hoger niveau van servicebeschikbaarheid. Uit het rapport blijkt dat goed presterende DevOps-teams 1.4 keer meer kans hebben om testgegevens voor noodherstel op te nemen in hun softwareontwikkelings- en implementatieprocessen.

Het is belangrijk om DevOps-teams toegang te geven tot informatie

Door eenvoudig informatie te vinden om problemen op te lossen, kunnen DevOps-teams productief blijven. Dit geldt vooral in de huidige technologische omgeving, die uit complexe systemen bestaat.

Bronnen van dergelijke informatie kunnen in twee groepen worden verdeeld:

  1. Interne bronnen: bedrijfsdocumentatie over het maken en onderhouden van code, bedrijfskennisbanken, repositories en meer. DevOps-teams die gebruik maakten van interne kennisbronnen waren 1,73 keer productiever.
  2. Externe bronnen: Zoekmachines en stapelvoltooiing. Uitbestede DevOps-teams waren 1,67 keer productiever. Externe technologieën bieden een groot voordeel voor leren en groei, vooral het gebruik van publieke clouds en open source-tools.

Het is belangrijk voor bedrijven om de technische schulden terug te dringen

Technische schulden omvatten code of systemen met bekende maar niet-opgeloste bugs; onvoldoende testdekking; code of ontwerp van lage kwaliteit; artefacten die niet worden gebruikt maar niet worden verwijderd; implementaties die het team niet effectief kan ondersteunen; verouderde technologieën; onvolledige of verouderde documentatie.

Experts hebben ontdekt dat technische schulden een negatieve invloed hebben op de prestaties van DevOps. Teams met een hoge technische schuld waren 1,6 keer minder productief. Teams met hoge prestaties hadden 1,4 keer meer kans op een lage technische schuld.

Belangrijkste bevindingen uit de State of DevOps Study

  1. Het percentage DevOps-teams met hoge prestaties is bijna verdrievoudigd tot 20%. Dit betekent dat bedrijven de belofte begrijpen van praktijken voor het verbeteren van de ontwikkeling en levering van software, en dat bedrijven DevOps actiever implementeren in hun IT-afdelingen.
  2. Snelle levering van applicaties en diensten vormt de kern van technologie- en organisatorische transformatie. De snelheid en consistentie van releases verhogen de winst en de klanttevredenheid.
  3. Cloudtechnologieën blijven de sleutel tot het bereiken van uitmuntendheid voor DevOps-teams. Door het gebruik van clouds kunt u de softwarelevering met de vereiste snelheid organiseren, waardoor de beschikbaarheid, schaalbaarheid en prestaties van de infrastructuur worden gegarandeerd.
  4. De effectiviteit van DevOps-teams kan worden verbeterd door aandacht te besteden aan de productiviteit van teamleden, het bieden van een comfortabele psychologische sfeer en het gebruik van handige tools.
  5. Het verhogen van de snelheid van het uitrollen van releases met de juiste aanpak heeft geen invloed op de stabiliteit van de diensten en applicaties van het bedrijf.

Bron: www.habr.com

Voeg een reactie