IT Operations zijn de Ops in DevOps, maar waar zijn ze ingebed binnen de organisatie? En hoe ziet de toekomst van IT operations er uit?
Kleine bedrijven, start-ups of software ontwikkelaars beweren vaak dat ze werken volgens het DevOps-model.
Wat ze eigenlijk bedoelen is: “We hebben vrijwel geen IT Operations capaciteit en we vertrouwen op de ontwikkelaars om alle omgevingen, van ontwikkeling tot test en productie, te bouwen, te implementeren en te beheren. Meestal met de hand.”
IT Operations is een discipline, met zijn eigen patronen en werkwijzen, methodologieën, modellen, tools, technologie, enz. Cloudhosting maakt het gemakkelijker om servers te implementeren, maar betekent niet dat je weet hoe je zo’n omgeving moet beheren.
DevOps betekent dat Development en IT Operations samenwerken om de Operations-vereisten inzake stabiliteit, betrouwbaarheid en prestaties in te passen in de ontwikkelingspraktijken en tegelijkertijd Development in het beheer van de productieomgeving te brengen.
Het betekent niet dat we terug moeten gaan naar het laissez-faire ‘anything goes’-model, waar ontwikkelaars onbeperkte toegang hebben tot de productieomgeving en 24x7x365 instellingen kunnen veranderen wanneer ze willen.
Denk na over wat je wilt veranderen, automatiseer het, test het en denk na wat je moet doen als het mis gaat. Documenteer de wijzigingen, zorg ervoor dat iedereen weet wanneer, waar en hoe je de wijziging doorvoert en zorg ervoor dat de opdrachtgever dit goedkeurt.
Devalueer het DevOps-concept niet door te zeggen dat je DevOps doet als je dat niet doet maar verdeel de taken en werk goed samen. Als je Development en IT Operations apart goed doet probeer dan een betere, meer flexibele, meer cloudgeoriënteerde manier van samenwerken te bewerkstelligen. Dat is een manier die het beste uit beide disciplines haalt.
Steeds meer bedrijven zijn afhankelijk van virtualisatie, containers, cloud computing, Infrastructure as a Service en Microservices. In die omgeving is er nog steeds ruimte voor IT Operations. Deze DevOps teams zullen veranderen en waarde te blijven leveren bij het ondersteunen van Agile IT Operations.
De rol van IT Operations (Ops) wordt meer applicatiegericht met inzicht in de applicaties die op de platformen draaien die ze bieden. Het smalle beeld dat zegt: “Mijn servers zijn in orde, het is niet mijn schuld dat de applicatie niet werkt.”, zal verdwijnen. Het is misschien niet jouw schuld, maar je deelt de verantwoordelijkheid voor de beschikbaarheid van de applicatie voor de gebruikers.
Een van de belangrijkste principes in DevOps is om IT Operations te betrekken bij de volledige levenscyclus van software-ontwikkeling en, in het bijzonder, om ervoor te zorgen dat operationele vereisten worden opgenomen in de ontwerp- en bouwfasen. De DevOps operationele vereisten:
Samenwerken aan de productgerichte documentatie op een standaard platform. Deze documentatie is het minimum:
Een degelijke set regressietest-scripts kan aanvraag worden uitgevoerd om te controleren / verifiëren / valideren dat alles correct wordt uitgevoerd.
Geautomatiseerd testen is essentieel voor een automatiseringsstrategie. Je moet kunnen verifiëren of een toepassing correct is geïmplementeerd.
De ideale testsuite test alle belangrijke onderdelen van de applicatie uit en biedt nuttige diagnoses als iets niet correct werkt. Dit is te combineren met synthetische monitoring, Application Performance Management (APM) tools en infrastructuurbewaking. Het doel is om ervoor te zorgen dat we weten of er iets mis is voor de gebruiker.
Iedereen wil dat de applicatie een succes wordt, maar niemand wil geld verspillen door vooraf infrastructuur in te kopen. Afhankelijk van het gebruik willen je hoger of lager kunnen schalen.
Daarvoor moet de applicatie horizontale schaalbaarheid ondersteunen. Bij het ontwerp van de applicatie moet hier over worden nagedacht. Er zijn drie goede tips:
Vlaggen geven je veel controle over hoe de applicatie werkt. Die kan je gebruiken om gemakkelijk iets terug te halen dat niet werkt zonder de volledige programmacode terug te draaien en de prestaties en schaalbaarheid te managen.
Vermijd waar mogelijk om waarden in de programmacode op te nemen, ze moeten in externe configuratiebestanden staan. Dit is vooral belangrijk omdat je de applicatie kan verplaatsen tussen omgevingen (Dev, Test, Staging, enz.) en de applicatie voor iedere omgeving moet configureren.
Een overdreven configureerbaar systeem kan ook een nachtmerrie creëren, omdat het opsporen van welke van deze instellingen verkeerd is geconfigureerd uiterst moeizaam kan zijn.
Bestaande programmacode met nieuw databaseschema of opgeslagen procedure? Nieuwe programmacode met bestaand databaseschema of opgeslagen procedures?
Vooruit of achteruit, het zou prima moeten werken, want als dat niet het geval is, introduceer je ‘kip en het ei’ afhankelijkheden. Wat dit betekent voor IT Operations is dat een deel van het systeem offline genomen moet kunnen worden om het andere deel te upgraden. Dat kan veel impact hebben op de gebruikers en kost waarschijnlijk heel wat papierwerk om het allemaal goedgekeurd te krijgen.
Ga er niet vanuit dat de afhankelijkheden altijd beschikbaar zijn. Vooral als het gaat om netwerkbronnen zoals databases of webservices. In een Cloud-omgeving, zoals van Amazon, kunnen complete servers in een oogwenk verdwijnen.
Zorg ervoor dat het systeem goed reageert op het wegvallen van afhankelijkheden. Registreer de fout en reageer elegant als de situatie zich voordoet.
Moderne web-apps zijn afhankelijk van webservices. Houd de afhankelijkheden in de gaten en zorg ervoor dat ze duidelijk gedocumenteerd zijn.
Door applicaties te structureren met statistieken en prestatie metrics, krijgt Operations de mogelijkheid om te weten wat er gebeurt met een applicatie. Standaardtellers bevatten zaken zoals transacties per seconde (nuttig voor capaciteit) en transactietijd (handig voor prestaties).
Mogelijk is dit een vertaling van Google Translate en kan fouten bevatten. Klik hier om mee te helpen met het verbeteren van vertalingen.