Kush është DevOps dhe kur nuk nevojitet

Kush është DevOps dhe kur nuk nevojitet

Tema e DevOps ka bërë shumë popullore këto vitet e fundit. Shumë dëshirojnë të bashkohen, por, siç tregon praktika, shpesh kjo ndodh vetëm për shkak të nivelit të pagave.

Disa e përmendin DevOps në CV-në e tyre, ndonëse nuk e kuptojnë plotësisht termin. Disa mendojnë se duke studiuar Ansible, GitLab, Jenkins, Terraform dhe të ngjashme (lista mund të vazhdojë sipas dëshirës), ata menjëherë bëhen 'devops'. Kjo, natyrisht, nuk është e vërtetë.

Në disa vitet e fundit, kam punuar kryesisht për zbatimin e DevOps në kompani të ndryshme. Para kësaj, kam punuar për më shumë se 20 vjet në pozita nga administrator sistemi deri te drejtori IT. Tani jam DevOps Lead Engineer në Playgendary.

Kush është DevOps

Ideja për të shkruar këtë artikull lindi pas një pyetjeje tjetër: 'kush është DevOps?'. Ende nuk ka një term të konsoliduar për atë ose kë do të thotë. Disa përgjigje tashmë ekzistojnë në këtë video. Fillimisht do të nxjerr thelbësore nga ai, pastaj do të ndaj vëzhgimet dhe mendimet e mia.

DevOps nuk është një specialist që mund të angazhohet, nuk është një grup mjetesh, as një departament zhvilluesish dhe inxhinierësh.

DevOps është një filozofi dhe metodologji.

Me fjalë të tjera, është një grup praktikash që ndihmojnë në ndërveprimin e zhvilluesve me administratorët e sistemeve. Pra, lidh dhe integrohet proceset e punës me njëra-tjetrën.

Me ardhjen e DevOps, struktura dhe rolet e specialistëve mbeten të njëjta (ka zhvillues, ka inxhinierë), por rregullat e ndërveprimit kanë ndryshuar. Kufijtë midis departamenteve janë zbehur.

Qëllimet e DevOps mund të përshkruhen me tre pika:

  • Softi duhet të përditësohet rregullisht.
  • Softi duhet të zhvillohet shpejt.
  • Softi duhet të vendoset lehtë dhe brenda një kohe të shkurtër.

DevOps nuk ka një mjet të vetëm. Të konfiguroni, instaloni dhe mësoni disa produkte - nuk do të thotë që në kompani ka DevOps. Ekzistojnë shumë mjete dhe të gjitha përdoren në faza të ndryshme, por shërbejnë një qëllimi të përbashkët.

Kush është DevOps dhe kur nuk nevojitet
Dhe kjo është vetëm një pjesë e mjeteve DevOps

Që prej më shumë se 2 vjetësh, po intervistoj njerëz për pozita DevOps-inxhinier dhe kam kuptuar se sa e rëndësishme është të kuptohet qartë thelbi i termit. Kam grumbulluar përvojë specifike, vëzhgime dhe mendime që dua t'i ndaj.

Nga përvoja e intervistave shoh një pamje të tillë: specialistët që e konsiderojnë DevOps si një pozicion zakonisht kanë keqkuptime me kolegët.

Ishte një shembull i qartë. Në intervistë erdhi një djalosh me shumë fjalë të mençura në CV-në e tij. Në tri vendet e fundit të punës kishte punuar nga 5-6 muaj. Nga dy startup-e kishte dalë, sepse „nuk fluturoi“. Ndërsa për kompaninë e tretë tha se askush nuk e kupton atje: zhvilluesit shkruajnë kod për Windows, ndërsa drejtori e detyron të „mbështjellë“ atë kod në Docker të zakonshëm dhe ta integrojë në pipeline-in CI/CD. Djali tregoi shumë gjëra negative për vendin e tij aktual të punës dhe kolegët e tij — do të doja të përgjigjesha: „Pra ti nuk do ta shesësh elefantin.“

Pastaj i bëra një pyetje, e cila në listën time është një nga të parat për çdo kandidat.

— Çfarë do të thotë për ty personalisht DevOps?
— Në përgjithësi apo si e perceptoj unë?

Më interesonte mendimi i tij personal. Ai e dinte teorinë dhe origjinën e termit, por ishte kategorikisht i pajtuar me ta. Ai mendonte se DevOps është një pozite. Këtu fshihet rrënja e problemeve të tij, ashtu si dhe të specialistëve të tjerë me të njëjtin mendim.

Punëdhënësit, duke dëgjuar për „magjinë DevOps“, duan të gjejnë njeriun që do të vijë dhe do të krijojë këtë „magji“. Ndërsa aplikantët nga kategoria „DevOps është një pozitë“ nuk kuptojnë se me këtë qasje nuk do të mund t'i përmbushin pritshmëritë. Dhe, në përgjithësi, shkruan në CV-në e tij DevOps, sepse është një trend dhe paguhet shumë për këtë.

Metodologjia dhe filozofia DevOps

Metodologjia mund të jetë teorike dhe praktike. Në rastin tonë — e dyta. Siç e përmenda më lart, DevOps është një grup praktikash dhe strategjish që aplikohen për të arritur qëllimet e deklaruara. Dhe në çdo rast, në varësi të proceseve të biznesit të kompanisë, ajo mund të diferencohet ndjeshëm. Çfarë nuk e bën më të mirë ose më të keqe.

Metodologjia DevOps është vetëm një mjet për të arritur qëllimet e vendosura.

Tani për atë që është filozofia DevOps. Dhe kjo, ndoshta, është pyetja më e vështirë.

Të formulojë një përgjigje të shkurtër dhe të qartë është mjaft e vështirë, sepse ajo ende nuk është formalisht e përcaktuar. Dhe pasi ndjekësit e filozofisë DevOps përdorin më shumë praktikën — nuk kanë kohë për filozofizime. Megjithatë, ky është një proces shumë i rëndësishëm. Për më tepër, ai lidhet drejtpërdrejt me aktivitetin inxhinierik. Ka madje një fushë të specializuar të njohurive — filozofia e teknologjive.

Në universitetin tim nuk kishte një lëndë të tillë, prandaj u detyrova të studioj gjithçka vetë me materialet që mund të gjeja në vitet '90. Tema nuk është e obligueshme për arsimimin inxhinierik, andaj edhe mungon formalizimi i përgjigjes. Por ata njerëz që janë angazhuar seriozisht në DevOps fillojnë të ndiejnë njëfarë "shpirti" ose "një gjithëpërfshirshmëri të paqënderprerë" të gjithë proceseve të kompanisë.

Me përvojën time kam përpjekur të formalizoj disa "postulata" të kësaj filozofie. Nga kjo doli:

  • DevOps nuk është diçka e pavarur që mund të veçohet si një drejtim njohurish ose aktiviteti.
  • Të gjithë punonjësit e kompanisë duhet të udhëheqin nga metodologjia DevOps gjatë planifikimit të aktiviteteve të tyre.
  • DevOps prek të gjithë proceset brenda kompanisë.
  • DevOps ekziston për të reduktuar kohën e shpenzuar në çdo proces brenda kompanisë për të siguruar zhvillimin e shërbimeve të saj dhe maksimumin e komoditetit për klientët.
  • DevOps, në gjuhën moderne, është pozita proaktive e çdo punonjësi të kompanisë, e orientuar drejt reduktimit të kostove të kohës dhe përmirësimit të cilësisë së produkteve IT që na rrethojnë.

Mendoj se "postulatet" e mia janë një temë e veçantë për diskutim. Por tani ka një pikë referimi.

Çfarë bën DevOps

Fjalë kyçe këtu është – komunikimet. Ka shumë komunikime, iniciatori i të cilave duhet të jetë pikërisht inxhinieri DevOps. Pse kështu? Sepse kjo është një filozofi dhe metodologji, dhe pastaj janë njohuritë inxhinierike.

Nuk mund të flas me 100% siguri për tregun perëndimor të punës. Por për tregun DevOps në Rusi di një sasi të madhe. Përveç qindra intervistave, gjatë një viti e gjysmë kam marrë pjesë në njëqind presales teknike për shërbimin "Zbatimi i DevOps" për kompani të mëdha ruse dhe banka.

Në Rusi, DevOps është akoma një temë shumë e re, por është duke u bërë trend. Sipas të dhënave që kam, vetëm në Moskë, mungesa e specialistëve të tillë për vitin 2019 ka qenë më shumë se 1000 njerëz. Dhe fjala Kubernetes për punëdhënësit është gati si një pëlhurë e kuqe për një bull. Adheptët e këtij instrumenti janë të gatshëm ta përdorin atë madje edhe në raste kur nuk është e nevojshme dhe nuk është ekonomikisht e dobishme. Punëdhënësi nuk kupton gjithmonë në cilat raste është më e arsyeshme të përdoret, ndërsa me një implementim të duhur, kostot e klasterit Kubernetes janë 2-3 herë më të larta se ato për implementimin e një aplikacioni sipas një skeme të zakonshme klasteri. Përdoreni atje ku është me të vërtetë e nevojshme.

Kush është DevOps dhe kur nuk nevojitet

Zbatimi i DevOps nga pikëpamja financiare është i shtrenjtë. Dhe është i arsyeshëm vetëm aty ku sjell përfitime ekonomike në fusha të tjera, jo për vete.

Inxhinierët e DevOps, në fakt, janë pionierë — ata duhet të jenë të parët që e zbatonin këtë metodologji në kompani dhe të ndihmojnë në ndërtimin e proceseve. Që kjo të ketë sukses, specialisti duhet të bashkëpunojë vazhdimisht me punonjësit dhe kolegët në të gjitha nivelet. Siç thoshë zakonisht, në procesin e zbatimit të DevOps duhet të përfshihen të gjithë punonjësit e kompanisë: nga pastruesja deri te CEO. Dhe kjo është një kusht i domosdoshëm. Nëse anëtari më i ri i ekipit nuk do të dijë dhe kuptojë çfarë është DevOps dhe pse realizohen veprime të caktuara organizative, zbatimi i suksesshëm nuk do të ndodhë.

Për më tepër, inxhinierët e DevOps duhet t'i përdorin herë pas here burimet administrative. Për shembull, për të përballuar "rezistencën e mjedisit" — kur ekipi nuk është i gatshëm të pranojë instrumentet dhe metodologjinë DevOps.

Zhvilluesi duhet të shkruaj vetëm kodin dhe testet. Për këtë, ai nuk ka nevojë për një laptop super të fuqishëm, në të cilin do të zhvillonte dhe mbante lokalisht të gjithë infrastrukturën e projektit. Për shembull, front-end developer mban në laptopin e tij të gjitha elementet e aplikacionit, duke përfshirë bazën e të dhënave, emuluesin S3 (minio) dhe të tjera. Kështu, ai harxhon shumë kohë në mbajtjen e kësaj infrastrukture lokale dhe lufton vetëm me të gjitha problemet e këtij zgjidhjeje. Në vend që të zhvillonte kodin për frontin. Të tillë njerëz mund të kenë një rezistencë të madhe ndaj çdo ndryshimi.

Por otro lado, hay equipos que, al contrario, están contentos con la implementación de nuevas herramientas y métodos, y participan activamente en este proceso. Aunque incluso en este caso, la comunicación entre el ingeniero de DevOps y el equipo no se ha cancelado.

Cuando DevOps no es necesario

Hay situaciones en las que DevOps no es necesario. Es un hecho que se debe entender y aceptar.

En primer lugar, esto se aplica a cualquier empresa (especialmente a las pequeñas), cuando sus ganancias no dependen directamente de la presencia o ausencia de productos de TI que proporcionen servicios de información a los clientes. Y aquí no se trata del sitio web de la empresa, ya sea una 'tarjeta de presentación' estática o con bloques de noticias dinámicas, etc.

Se requiere DevOps cuando la satisfacción del cliente y su deseo de volver a acudir a usted depende de la existencia de estos servicios de información para interactuar con los clientes, de su calidad y de su direccionamiento.

Un ejemplo destacado es un conocido banco. La empresa no tiene oficinas físicas para clientes; el flujo de documentos se realiza por correo o mensajeros, y muchos empleados trabajan desde casa. La empresa ha dejado de ser solo un banco y, en mi opinión, se ha convertido en una empresa de TI con avanzadas tecnologías DevOps.

Hay muchos otros ejemplos y conferencias que se pueden encontrar en los registros de meetups y conferencias temáticas. Parte de ellos los he asistido personalmente: es una experiencia muy útil para quienes desean desarrollarse en esta área. Aquí hay enlaces a canales de YouTube con buenas conferencias y materiales sobre DevOps:

Ahora observe su negocio y piense en lo siguiente: ¿cuánto dependen su empresa y sus ganancias de los productos de TI que facilitan la interacción con el cliente?

Si su empresa vende pescado en una pequeña tienda y el único producto de TI son dos configuraciones de 1C: Enterprise (Contabilidad y UHN), probablemente no tenga sentido hablar de DevOps.

Sin embargo, si trabaja en una gran empresa comercial y de producción (por ejemplo, produce escopetas de caza), entonces debería reflexionar. Puede tomar la iniciativa y comunicar a su dirección las perspectivas de implementar DevOps. Y, de paso, liderar este proceso. Una postura proactiva es uno de los postulados importantes de la filosofía DevOps.

Përmasat dhe volumi i xhiros financiare vjetore nuk janë kritere thelbësore për të përcaktuar nëse kompanisë suaj i nevojitet DevOps.

Imagjinoni një industri të madhe që nuk interakton drejtpërdrejt me klientët. Për shembull, disa prodhues automjetesh dhe kompani të prodhimit të automjeteve. Tani nuk jam i sigurt, por nga përvoja ime e kaluar, për shumë vite, e gjithë ndërveprimi me klientët është bërë përmes postës elektronike dhe telefonit.

Klientët e tyre janë një listë e kufizuar e tregtarëve të automjeteve. Dhe për secilin është caktuar një specialist nga prodhuesi. Të gjithë dokumentacioni i brendshëm ndodhi përmes ERP SAP. Punonjësit e brendshëm, në thelb, janë klientë të sistemit informacionit. Por menaxhimi i këtij sistemi informacioni kryhet me mjete klasike të menaxhimit të sistemeve klaster. Kjo përjashton mundësinë e përdorimit të praktikave DevOps.

Pra, përfundimi: për të tilla ndërmarrje, implementimi i DevOps nuk është diçka kritikisht të nevojshme, nëse e kujtojmë qëllimet e metodologjisë nga fillimi i artikullit. Por nuk përjashtoj që disa mjete DevOps mund të përdoren nga ata sot.

Nga ana tjetër, ka shumë kompani të vogla që zhvillojnë software duke përdorur metodologjinë, filozofinë, praktikat dhe mjetet DevOps. Dhe mendojnë se shpenzimet për implementimin e DevOps janë shpenzime që i lejojnë atyre të konkurrojnë efikashtë në tregun e softwares. Shembuj të tillë kompanish mund të shihen këtu.

Kriteri kryesor për të kuptuar nëse ju nevojitet DevOps: çfarë rëndësie kanë produktet tuaja IT për kompaninë dhe klientët.

Nëse produkti kryesor i kompanisë, i cili sjell të ardhura, është software – ju nevojitet DevOps. Dhe nuk ka rëndësi nëse ju shkoni me të vërtetë para me produkte të tjera. Këtu përfshihen gjithashtu dyqanet online ose aplikacione mobile me lojëra.

Cdo lojë ekziston falë financimit: të drejtpërdrejt ose tërthor nga lojtarët. Në Playgendary ne zhvillojmë lojëra mobile falas, në krijimin e të cilave marrin pjesë më shumë se 200 njerëz. Si e përdorim DevOps?

Po, pikërisht ashtu siç përshkruhet më lart. Unë kam komunikim të vazhdueshëm me zhvilluesit dhe testuesit, organizoj trajnime të brendshme për metodologjinë dhe mjetet DevOps.

Aktualisht ne po përdorim Jenkins si një mjet për CI/CD pipelines për të ekzekutuar të gjitha linjat e ndërtimit me Unity dhe për depozitimin e mëpasshëm në App Store dhe Play Market. Nga seti klasik i mjeteve:

  • Asana — për menaxhimin e projekteve. Kemi vendosur integrimin me Jenkins.
  • Google Meet — për mbajtjen e videokonferencave.
  • Slack — për komunikime dhe njoftime të ndryshme, duke përfshirë njoftimet nga Jenkins.
  • Atlassian Confluence — për dokumentimin dhe punën në grup.

Në planet tona afatshkurtra është implementimi i analizës statike të kodit me SonarQube dhe realizimi i testimit të automatizuar UI me mjetet e Selenium në fazën e Integrimit të Vazhdushëm.

Në përfundim

Dua të përfundoj me këtë mendim: për t'u bërë një inxhinier DevOps me kualifikim të lartë, është thelbësore të mësosh të komunikosh në mënyrë aktive me njerëzit.

Inxhinieri DevOps është një lojtar ekipi. Ashtu si ndryshe. Iniciativa në komunikimin me kolegët duhet të vijë prej tij vetë, dhe jo nën ndikimin e ndonjë rrethane. Specialistët DevOps duhet të shikojnë dhe të ofrojnë zgjidhjen më të mirë për ekipin.

Dhe po, implementimi i çdo zgjidhjeje do të kërkojë shumë diskutime dhe deri në fund mund të ndryshojë krejtësisht. Duke u zhvilluar vetë, duke ofruar dhe realizuar idetë e tij — një njeri i tillë përfaqëson një vlerë gjithnjë e më të madhe si për ekipin, ashtu edhe për punëdhënësin. Çka, përfundimisht, reflektohet në madhësinë e shpërblimit të tij mujor ose në formën e bonuseve shtesë.

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster