DevOps kimdir və nə vaxt lazım deyil

DevOps kimdir və nə vaxt lazım deyil

DevOps mövzusu son bir neçə ildə çox populyarlaşdı. Çoxları buna qoşulmağı xəyal edir, amma təcrübənin göstərdiyi kimi, çox vaxt yalnız maaş səviyyəsinə görə.

Bəziləri CV-lərində DevOps-u göstərirlər, baxmayaraq ki, onlar həmişə terminin mahiyyətini bilmirlər və başa düşmürlər. Kimsə Ansible, GitLab, Jenkins, Terraform və bu kimi proqramları öyrəndikdən sonra (siyahı zövqünüzə görə davam etdirilə bilər) dərhal "devops" olacağını düşünür. Bu, təbii ki, doğru deyil.

Son bir neçə il ərzində mən əsasən müxtəlif şirkətlərdə DevOps-un tətbiqi ilə məşğul olmuşam. Bundan əvvəl o, 20 ildən artıq sistem inzibatçısı vəzifəsindən İT direktoru vəzifəsində çalışıb. Hal-hazırda Playgendary-də DevOps Baş Mühəndisi.

DevOps kimdir

Məqalə yazmaq fikri başqa bir sualdan sonra yarandı: “DevOps kimdir?”. Nə və ya kim olduğuna dair hələ də müəyyən bir termin yoxdur. Cavabların bəziləri artıq bundadır video. Əvvəlcə ondan əsas tezisləri işıqlandıracağam, sonra isə müşahidələrimi, fikirlərimi bölüşəcəyəm.

DevOps işə götürmək üçün mütəxəssis deyil, kommunal xidmətlər dəsti deyil və mühəndislərlə inkişaf şöbəsi deyil.

DevOps bir fəlsəfə və metodologiyadır.

Başqa sözlə, bu, tərtibatçılara sistem administratorları ilə aktiv şəkildə qarşılıqlı əlaqədə kömək edən təcrübələr toplusudur. Yəni iş proseslərini bir-birinə bağlamaq və inteqrasiya etmək.

DevOps-un meydana çıxması ilə mütəxəssislərin strukturu və rolları dəyişməz qaldı (işləyənlər var, mühəndislər var), lakin qarşılıqlı əlaqə qaydaları dəyişdi. Şöbələr arasında sərhədlər bulanıqlaşıb.

DevOps məqsədləri üç nöqtədə ümumiləşdirilə bilər:

  • Proqram təminatı mütəmadi olaraq yenilənməlidir.
  • Proqram təminatı tez hazırlanmalıdır.
  • Proqram təminatı rahat və qısa müddətdə yerləşdirilməlidir.

DevOps-un tək bir aləti yoxdur. Çox məhsulun qurulması, çatdırılması və öyrənilməsi DevOps-un şirkətdə olması demək deyil. Bir çox alət var və hamısı müxtəlif mərhələlərdə iştirak edir, lakin bir ümumi məqsədə xidmət edir.

DevOps kimdir və nə vaxt lazım deyil
Və bu, DevOps alətlərinin sadəcə bir hissəsidir

2 ildən artıqdır ki, DevOps mühəndisi vəzifəsi üçün insanlarla müsahibə aparıram və bu terminin mahiyyətini aydın başa düşməyin nə qədər vacib olduğunu başa düşdüm. Mən bölüşmək istədiyim konkret təcrübə, müşahidələr və düşüncələr topladım.

Müsahibə təcrübəsindən bu mənzərəni görürəm: DevOps-u bir mövqe hesab edən mütəxəssislər adətən həmkarları ilə anlaşılmazlıqlar yaşayırlar.

Ən yaxşı nümunə var idi. Bir gənc müsahibəyə tərcümeyi-halında çoxlu sözlərlə gəldi. Son üç iş yerində 5-6 ay iş təcrübəsi olub. O, iki startapı tərk etdi, çünki onlar "çıxmadılar". Ancaq üçüncü şirkət haqqında dedi ki, onu orada heç kim başa düşmür: tərtibatçılar Windows üçün kodu yazır və direktor bu kodu adi Docker-ə "sarır" və CI / CD boru kəmərinə daxil edir. Oğlan indiki iş yeri və həmkarları haqqında çoxlu mənfi fikirlər söylədi - mən sadəcə cavab vermək istədim: "Deməli, fil satmayacaqsan."

Sonra ona hər bir namizəd üçün siyahımda birincilərdən biri olan bir sual verdim.

Şəxsən sizin üçün DevOps nə deməkdir?
- Ümumiyyətlə, yoxsa mən bunu necə qəbul edirəm?

Mən onun şəxsi fikri ilə maraqlandım. O, nəzəriyyəni və terminin mənşəyini bilirdi, lakin onlarla qəti şəkildə razılaşmadı. O, DevOps-un bir mövqe olduğuna inanırdı. Onun problemlərinin kökü də buradadır. Eyni fikirdə olan digər ekspertlər də.

“DevOps-un sehri” haqqında çox eşitmiş işəgötürənlər gəlib bu “sehrini” yaradacaq adam tapmaq istəyirlər. "DevOps bir işdir" iş axtaranların başa düşmədikləri şey, bu yanaşma ilə gözləntiləri qarşılaya bilməyəcəkləridir. Və ümumiyyətlə, CV-lərində DevOps yazdılar, çünki bu bir tendensiyadır və bunun üçün çox pul ödəyirlər.

DevOps Metodologiyası və Fəlsəfəsi

Metodologiya nəzəri və praktikdir. Bizim vəziyyətimizdə ikincisi. Yuxarıda qeyd etdiyim kimi, DevOps müəyyən edilmiş məqsədlərə çatmaq üçün istifadə olunan təcrübələr və strategiyalar toplusudur. Və hər bir halda, şirkətin iş proseslərindən asılı olaraq, əhəmiyyətli dərəcədə fərqlənə bilər. Bu onu daha yaxşı və ya pis etmir.

DevOps metodologiyası yalnız məqsədlərinizə çatmaq üçün bir vasitədir.

İndi DevOps fəlsəfəsinin nə olduğu haqqında. Və bu, yəqin ki, ən çətin sualdır.

Qısa və əhatəli cavab vermək olduqca çətindir, çünki o, hələ rəsmiləşdirilməmişdir. Və DevOps fəlsəfəsinin tərəfdarları praktikada daha çox məşğul olduqları üçün fəlsəfə etməyə sadəcə vaxt yoxdur. Bununla belə, bu çox vacib bir prosesdir. Üstəlik, mühəndislik fəaliyyəti ilə birbaşa əlaqəlidir. Hətta xüsusi bir bilik sahəsi var - texnologiya fəlsəfəsi.

Mənim universitetimdə belə bir fənn yox idi, 90-cı illərdə tapdığım materiallardan istifadə edərək hər şeyi özüm öyrənməli idim. Mövzu mühəndislik təhsili üçün isteğe bağlıdır, buna görə də cavabın rəsmiləşdirilməsi yoxdur. Ancaq DevOps-a ciddi şəkildə batırılan insanlar bütün şirkət proseslərinin müəyyən bir "ruhunu" və ya "şüursuz əhatəliliyini" hiss etməyə başlayırlar.

Mən öz təcrübəmə əsaslanaraq bu fəlsəfənin bəzi “postulatlarını” rəsmiləşdirməyə çalışdım. Aşağıdakılar ortaya çıxdı:

  • DevOps ayrı bir bilik və ya fəaliyyət sahəsinə ayrıla bilən müstəqil bir şey deyil.
  • DevOps metodologiyası bütün şirkət işçilərinə öz fəaliyyətlərini planlaşdırarkən rəhbərlik etməlidir.
  • DevOps şirkət daxilindəki bütün proseslərə təsir edir.
  • DevOps, xidmətlərinin inkişafını və müştərinin maksimum rahatlığını təmin etmək üçün şirkət daxilində istənilən proseslərə sərf olunan vaxtı azaltmaq üçün mövcuddur.
  • DevOps, müasir dillə desək, şirkətin hər bir əməkdaşının vaxt xərclərini azaltmağa və ətrafımızdakı İT məhsullarının keyfiyyətini yaxşılaşdırmağa yönəlmiş fəal mövqeyidir.

Düşünürəm ki, mənim “postulatlarım” ayrıca müzakirə mövzusudur. Ancaq indi qurmaq üçün bir şey var.

DevOps nə edir?

Burada əsas söz ünsiyyətdir. Təşəbbüskarı eyni DevOps mühəndisi olmalı olan bir çox rabitə var. Niyə belədir? Çünki bu, fəlsəfə və metodologiyadır və yalnız bundan sonra mühəndislik bilikləridir.

Qərbin əmək bazarı haqqında 100% əminliklə danışa bilmərəm. Ancaq Rusiyadakı DevOps bazarı haqqında çox şey bilirəm. Yüzlərlə müsahibəyə əlavə olaraq, son il yarım ərzində mən Rusiyanın iri şirkətləri və bankları üçün DevOps Implementation xidmətinin yüzlərlə texniki ön satışında iştirak etmişəm.

Rusiyada DevOps hələ çox gəncdir, lakin artıq trend mövzusudur. Bildiyimə görə, təkcə Moskvada 2019-cu ildə belə mütəxəssislərin çatışmazlığı 1000 nəfərdən çox olub. Və işəgötürənlər üçün Kubernetes sözü demək olar ki, öküz üçün qırmızı bez kimidir. Bu alətin tərəfdarları hətta ehtiyac olmadığı və iqtisadi cəhətdən sərfəli olmayan yerlərdə də istifadə etməyə hazırdırlar. İşəgötürən həmişə hansı hallarda istifadə etməyin daha məqsədəuyğun olduğunu başa düşmür və düzgün yerləşdirmə ilə Kubernetes klasterini saxlamaq adi klaster sxemindən istifadə edərək tətbiqi yerləşdirməkdən 2-3 dəfə baha başa gəlir. Həqiqətən ehtiyac duyduğunuz yerdə istifadə edin.

DevOps kimdir və nə vaxt lazım deyil

DevOps-un tətbiqi pul baxımından baha başa gəlir. Və o, özlüyündə deyil, yalnız başqa sahələrdə iqtisadi fayda gətirdiyi yerdə özünü doğruldur.

DevOps mühəndisləri, əslində, qabaqcıllardır - onlar şirkətdə bu metodologiyanı tətbiq edən və prosesləri quran ilk şəxslərdir. Bunun uğurlu olması üçün mütəxəssis bütün səviyyələrdə işçilər və həmkarları ilə daim qarşılıqlı əlaqədə olmalıdır. Adətən dediyim kimi, şirkətin bütün işçiləri DevOps tətbiqi prosesində iştirak etməlidirlər: təmizləyicidən tutmuş baş direktora qədər. Və bu ilkin şərtdir. Komandanın ən gənc üzvü DevOps-un nə olduğunu və müəyyən təşkilati hərəkətlərin nə üçün yerinə yetirildiyini bilmirsə və başa düşmürsə, o zaman uğurlu tətbiq işləməyəcək.

Həmçinin, DevOps mühəndisi vaxtaşırı inzibati resursdan istifadə etməlidir. Məsələn, "ekoloji müqaviməti" aradan qaldırmaq üçün - komanda DevOps alətləri və metodologiyasını qəbul etməyə hazır olmadıqda.

Tərtibatçı yalnız kod və testlər yazmalıdır. Bunun üçün ona layihənin bütün infrastrukturunu yerli olaraq yerləşdirəcəyi və saxlayacağı super güclü noutbuka ehtiyac yoxdur. Məsələn, front-ender proqramın bütün elementlərini noutbukda saxlayır, o cümlədən verilənlər bazası, S3 (minio) emulyatoru və s. Yəni o, bu yerli infrastrukturun saxlanmasına çox vaxt sərf edir və belə bir həllin bütün problemləri ilə təkbaşına mübarizə aparır. Cəbhə üçün kod hazırlamaq əvəzinə. Belə insanlar istənilən dəyişikliyə güclü müqavimət göstərə bilirlər.

Amma elə komandalar var ki, əksinə, yeni alət və metodların tətbiqindən məmnundurlar və bu prosesdə fəal iştirak edirlər. Baxmayaraq ki, bu halda belə, heç kim DevOps mühəndisi ilə komanda arasındakı əlaqəni ləğv etməyib.

DevOps lazım olmadıqda

DevOps-a ehtiyac olmadığı vəziyyətlər var. Bu bir faktdır - bunu başa düşmək və qəbul etmək lazımdır.

Əvvəla, bu, hər hansı şirkətlərə (xüsusilə də kiçik biznesə) aiddir ki, onların mənfəəti müştərilərə informasiya xidmətləri göstərən İT məhsullarının olub-olmamasından birbaşa asılı deyil. Və burada söhbət şirkətin saytından getmir, istər statik “vizit kartı” olsun, istərsə də dinamik xəbər blokları və s.

Müştəri ilə qarşılıqlı əlaqə üçün bu məlumat xidmətlərinin mövcudluğu, onların keyfiyyəti və hədəflənməsi müştərinizin məmnunluğundan və onun yenidən sizə qayıtmaq istəyindən asılı olduqda DevOps tələb olunur.

Tanınmış bank buna misaldır. Şirkətdə adi müştəri ofisləri yoxdur, sənəd dövriyyəsi poçt və ya kuryer vasitəsilə həyata keçirilir və bir çox işçi evdən işləyir. Şirkət sadəcə bank olmaqdan çıxdı və mənim fikrimcə inkişaf etmiş DevOps texnologiyaları ilə İT şirkətinə çevrildi.

Bir çox başqa nümunə və mühazirələrə tematik görüşlərin və konfransların qeydlərində rast gəlmək olar. Bəzilərini şəxsən ziyarət etdim - bu, bu istiqamətdə inkişaf etmək istəyənlər üçün çox faydalı təcrübədir. DevOps-da yaxşı mühazirələr və materiallarla YouTube kanallarına keçidlər:

İndi biznesinizə baxın və bu barədə düşünün: Müştəri təcrübəsini çatdırmaq üçün şirkətiniz və onun mənfəəti İT məhsullarından nə qədər asılıdır?

Əgər şirkətiniz kiçik bir mağazada balıq satırsa və yeganə İT məhsulu iki 1C konfiqurasiyasıdırsa: Müəssisə (Mühasibat uçotu və UNF), onda DevOps haqqında danışmağın mənası yoxdur.

Böyük bir ticarət və istehsal müəssisəsində işləyirsinizsə (məsələn, ov tüfəngləri istehsal edirsiniz), onda bu barədə düşünməlisiniz. Siz təşəbbüs göstərə və DevOps-u rəhbərliyinizə gətirə bilərsiniz. Yaxşı, eyni zamanda, bu prosesə rəhbərlik etmək. Proaktiv mövqe DevOps fəlsəfəsinin mühüm postulatlarından biridir.

İllik maliyyə dövriyyəsinin ölçüsü və həcmi şirkətinizin DevOps-a ehtiyacı olub olmadığını müəyyən etmək üçün əsas meyar deyil.

Müştərilərlə birbaşa əlaqə saxlamayan böyük bir sənaye müəssisəsini təsəvvür edin. Məsələn, bəzi avtomobil istehsalçıları və avtomobil şirkətləri. İndi əmin deyiləm, amma keçmiş təcrübəmə görə, uzun illər ərzində müştərilərlə bütün qarşılıqlı əlaqə e-poçt və telefon vasitəsilə həyata keçirilirdi.

Onların müştəriləri avtomobil satıcılarının məhdud siyahısıdır. Və hər birinə istehsalçıdan bir mütəxəssis əlavə olunur. Bütün daxili sənəd axını SAP ERP vasitəsilə baş verir. Daxili işçilər, əslində, informasiya sisteminin müştəriləridir. Lakin bu İS-nin idarə edilməsi klassik klaster sistemlərinin idarə olunması vasitələri ilə həyata keçirilir. Bu, DevOps təcrübələrindən istifadə imkanını istisna edir.

Beləliklə, nəticə: məqalənin əvvəlindən metodologiyanın məqsədlərini xatırlasaq, bu cür müəssisələr üçün DevOps-un tətbiqi kritik bir şey deyil. Ancaq istisna etmirəm ki, bəzi DevOps alətləri bu gün onlar tərəfindən istifadə olunur.

Digər tərəfdən, DevOps metodologiyası, fəlsəfəsi, təcrübələri və alətlərindən istifadə edərək proqram təminatı hazırlayan bir çox kiçik şirkətlər var. Və onlar hesab edirlər ki, DevOps-un tətbiqi xərcləri onlara proqram təminatı bazarında effektiv rəqabət aparmağa imkan verən xərcdir. Belə şirkətlərə misal göstərmək olar burada.

DevOps-a ehtiyac olub-olmadığını başa düşmək üçün əsas meyar: İT məhsullarınızın şirkət və müştərilər üçün hansı dəyəri var.

Şirkətin əsas gəlirli məhsulu proqram təminatıdırsa, sizə DevOps lazımdır. Digər malların köməyi ilə real pul qazanmağınız o qədər də vacib deyil. Buraya onlayn mağazalar və ya oyunları olan mobil proqramlar da daxil ola bilər.

İstənilən oyunlar maliyyə hesabına mövcuddur: oyunçulardan birbaşa və ya dolayı. Playgendary-də biz yaradılmasında birbaşa iştirak edən 200-dən çox insanla pulsuz mobil oyunlar hazırlayırıq. DevOps-dan necə istifadə edirik?

Bəli, yuxarıda göstərildiyi kimi. Mən daim tərtibatçılar və testçilər ilə ünsiyyət qururam, işçilər üçün DevOps metodologiyası və alətləri üzrə daxili təlimlər keçirirəm.

İndi biz Jenkins-dən Unity ilə bütün montaj boru kəmərlərini yerinə yetirmək və sonradan App Store və Play Marketə yerləşdirmək üçün CI / CD boru kəmərləri aləti kimi fəal şəkildə istifadə edirik. Klassik alətlər dəstindən daha çox:

  • Asana - layihənin idarə edilməsi üçün. Jenkins ilə inteqrasiya qurun.
  • Google Meet - video görüşlər üçün.
  • Slack - kommunikasiyalar və müxtəlif bildirişlər, o cümlədən Jenkins-dən bildirişlər üçün.
  • Atlassian Confluence - sənədləşmə və qrup işi üçün.

Yaxın gələcəkdə SonarQube istifadə edərək statik kod analizini həyata keçirməyi və Davamlı İnteqrasiya mərhələsində Selenium istifadə edərək avtomatlaşdırılmış UI testini keçirməyi planlaşdırırıq.

Bunun əvəzinə bir nəticəyə

Mən bu fikirlə bitirmək istəyirəm: yüksək ixtisaslı DevOps mühəndisi olmaq üçün insanlarla canlı ünsiyyət qurmağı öyrənmək çox vacibdir.

DevOps mühəndisi komanda oyunçusudur. Və başqa heç nə. Həmkarları ilə ünsiyyətdə təşəbbüs heç bir şəraitin təsiri altında deyil, ondan gəlməlidir. DevOps mütəxəssisi komanda üçün ən yaxşı həlli görməli və təklif etməlidir.

Bəli, hər hansı bir həllin həyata keçirilməsi çox müzakirə tələb edəcək və sonda hətta dəyişə bilər. Özünü inkişaf etdirmək, ideyalarını təklif etmək və həyata keçirmək - belə bir insan həm komanda, həm də işəgötürən üçün artan dəyərə malikdir. Hansı ki, son nəticədə onun aylıq mükafatının məbləğində və ya əlavə bonuslar şəklində əks olunur.

Mənbə: www.habr.com

Добавить комментарий