„Automatizarea procesului de deployment și a infrastructurii presupune un efort inițial semnificativ, care se justifică datorită beneficiilor pe care le aduce. De cele mai multe ori, o asemenea abordare necesită o schimbare de mentalitate atât la nivel de echipă, cât și la nivel de companie.”
Dăm startul unei serii de articole pe tema #msgbuilds, prin intermediul căreia ne propunem să aducem mai multă notorietate în jurul experților tehnici din cadrul echipei msg systems România. Pe parcursul perioadei următoare, vom reveni săptămânal cu câte un interviu în care vom explora activitatea oamenilor care construiesc msg systems România prin activitatea lor de zi cu zi.
Colegul nostru, Andrei Moldovan ocupă rolul de IT Consultant în cadrul departamentului Automotive al msg România. Andrei ne-a acordat un scurt interviu despre tema Deployment de microservicii Kubernetes folosind Azure Pipelines v0.1.
În cele ce urmează veți putea afla mai multe detalii despre particularitățile rezultate în urma mixului unor tehnologii Cloud de ultimă generație, precum și despre schimbarea de mentalitate necesară pentru a automatiza procese esențiale.
msg: Care este rolul tău în echipa/ departamentul din care faci parte?
Andrei Moldovan: Activitatea mea principală implică definirea și dezvoltarea de concepte de arhitecturi Cloud, precum și oferirea de consultanță în procesele de implementare de noi tehnologii în proiecte. În plus, în urmă cu jumătate de an am preluat și rolul de coach tehnic pentru colegii noi.
msg: Cum ai sumariza experiența ta cu această tehnologie?
A.M: Cunoștințele noastre de Kubernetes sunt relativ avansate, devreme ce implementăm această metodă de orchestrare în proiectele clienților noștri de mai bine de un an. O parte dintre eforturile noastre se orientează și spre automatizarea de infrastructuri, unde progresul este unul remarcabil.
msg: Povestește-ne despre un trend pe care l-ai identificat și dacă, prin activitatea ta, contribui la adoptarea lui.
A.M: Din nevoia de modernizare, încurajăm clienții să se îndrepte spre infrastructuri Cloud publice, folosind tehnologii de ultimă generație. Spre exemplu, proiectul căruia îmi dedic activitatea în prezent este un proiect ambițios, de altfel un reper în ceea ce înseamnă mixul de tehnologii Cloud, Big Data și DevOps, unde sunt de părere că experiența pe care o acumulăm ne ajută nu doar pe noi, ca echipă, ci și alte echipe din departamentul Automotive și nu numai.
msg: Oferă-ne câteva detalii despre contextul în care ai aplicat această metodă de deployment.
a. Care este proiectul/ clientul?
A.M: Proiectul la care am făcut referire mai devreme presupune procesarea datelor furnizate de platformele software instalate pe mașini autonome. Practic, vorbim despre o platformă de analiză a datelor, pe Cloud-ul public, folosind tehnologii Big Data. Clientul pentru care implementăm această soluție este compania Daimler AG.
b. Care a fost obiectivul pe care am încercat să-l atingem odată cu implementarea acestei soluții?
A.M: Am țintit automatizarea procesului de deployment și, implicit a infrastructurii pe Azure Cloud, în același timp crescând performanța livrării de noi funcționalități.
c. De ce Azure Pipelines v0.1?
A.M: Cred că prima parte a titlului, „Deploying Kubernetes Microservices” este suficient de explicită; practic, este vorba despre un proces de Continuous Development/ Continuous Integration pe Cloud, mai exact, pe platforma Azure. Probabil că este mai interesant faptul că am ales versiunea 0.1, ceea ce presupune că infrastructura se află într-un stadiu incipient de dezvoltare.
d. Care sunt etapele principale în pregătirea unui proces de deployment?
A.M: În cazul proiectului nostru, am pornit de la separarea bibliotecilor implementate de noi, respectiv de microservicii. Ulterior, etapa de design al unui pipeline CI/ CD a fost relativ ușoară—asamblarea bibliotecilor și al microserviciilor, generarea de imagini în Docker și deployment-ul acestora în diferite medii.
e. Care sunt avantajele utilizării acestui framework?
A.M: Azure prezintă o serie de componente predefinite pentru implementarea unui pipeline CI/CD, care oferă suport pentru o gamă variată de tehnologii precum Maven, Gradle, Docker, NodeJS, Helm, Kubernetes și multe altele.
f. Care ar fi top 3 lecții pe care le-ai învățat din această experiență?
A.M: Consider că automatizarea procesului de deployment reduce substanțial efortul operațional necesar în etapa de dezvoltare a componentelor software. Mai mult decât atât, timpul alocat tranziției codului din etapa de dezvoltare în cea de producție poate fi redus la ordinul minutelor. Aș mai menționa și faptul că automatizarea infrastructurii și al procesului de deployment reduce riscul propagării eventualelor erori în etapa de producție.
Un gând de final
DevOps is not that scary. Automatizarea procesului de deployment și a infrastructurii presupune un efort inițial semnificativ, care se justifică datorită beneficiilor pe care le aduce. De cele mai multe ori, o asemenea abordare necesită o schimbare de mentalitate atât la nivel de echipă, cât și la nivel de companie.