DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

İsraildə ilk DevOps sertifikatının təşəbbüskarlarından və təlimatçılarından biri olan Otomato Software şirkətinin təsisçisi və direktoru Anton Weiss keçən ilki konfransda çıxış etdi. DevOpsDays Moskva xaos nəzəriyyəsi və xaos mühəndisliyinin əsas prinsipləri haqqında, həmçinin gələcəyin ideal DevOps təşkilatının necə işlədiyini izah etdi.

Hesabatın mətn variantını hazırlamışıq.



Səhər Yaxşı!

Moskvada ikinci ildir DevOpsDays, bu səhnədə ikinci dəfədir, çoxunuz ikinci dəfədir ki, bu otaqdasınız. Bunun mənası nədi? Bu o deməkdir ki, Rusiyada DevOps hərəkatı böyüyür, çoxalır və ən əsası o deməkdir ki, 2018-ci ildə DevOps-un nə olduğu barədə danışmağın vaxtı çatıb.

2018-ci ildə DevOps-un artıq bir peşə olduğunu düşünən əllərinizi qaldırın? Belələri var. Otaqda iş təsvirində “DevOps Mühəndisi” deyən DevOps mühəndisləri varmı? Otaqda DevOps menecerləri varmı? Beləsi yoxdur. DevOps memarları? Həmçinin yox. Kifayət deyil. Heç kimin DevOps mühəndisi olduğunu söyləmədiyi doğrudurmu?

Deməli, çoxunuz bunun anti-naxış olduğunu düşünür? Belə bir peşə olmamalı idi? İstədiyimizi düşünə bilərik, lakin biz düşünərkən sənaye DevOps trubasının səsinə doğru təntənəli şəkildə irəliləyir.

DevDevOps adlı yeni mövzu haqqında kim eşitdi? Bu, tərtibatçılar və devoplar arasında effektiv əməkdaşlığa imkan verən yeni texnikadır. Və o qədər də yeni deyil. Twitter-ə görə, onlar artıq 4 il əvvəl bu barədə danışmağa başlayıblar. İndiyə qədər də buna maraq artır və artır, yəni problem var. Problemi həll etmək lazımdır.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Biz yaradıcı insanlarıq, sadəcə rahatlaşmırıq. Biz deyirik: DevOps kifayət qədər əhatəli söz deyil; hələ də hər cür müxtəlif, maraqlı elementlərdən məhrumdur. Və biz gizli laboratoriyalarımıza gedirik və maraqlı mutasiyalar yaratmağa başlayırıq: DevTestOps, GitOps, DevSecOps, BizDevOps, ProdOps.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Məntiq dəmirdir, elə deyilmi? Çatdırılma sistemimiz işlək deyil, sistemlərimiz qeyri-sabitdir və istifadəçilərimiz narazıdır, proqram təminatını vaxtında yaymağa vaxtımız yoxdur, büdcəyə uyğun gəlmirik. Bütün bunları necə həll edəcəyik? Yeni bir söz tapacağıq! "Ops" ilə bitəcək və problem həll olundu.

Buna görə də mən bu yanaşmanı "Ops və problem həll olundu" adlandırıram.

Bütün bunları niyə özümüzə xatırlatsaq, bütün bunlar arxa plana keçir. Proqram təminatının çatdırılması və bu prosesdə öz işimizi maneəsiz, ağrısız, səmərəli və ən əsası, mümkün qədər zövqlü etmək üçün bütün bu DevOps işini tapdıq.

DevOps ağrıdan böyüdü. Biz isə əziyyət çəkməkdən yorulmuşuq. Və bütün bunların baş verməsi üçün biz həmişəyaşıl təcrübələrə arxalanırıq: effektiv əməkdaşlıq, axın təcrübələri və ən əsası sistem düşüncəsi, çünki onsuz heç bir DevOps işləmir.

Sistem nədir?

Əgər biz artıq sistem təfəkküründən danışırıqsa, özümüzə sistemin nə olduğunu xatırladaq.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Əgər siz inqilabçı hakersinizsə, sistem sizin üçün açıq-aydın pisdir. Bu, üzərinizdə asılan və sizi istəmədiyiniz şeyləri etməyə məcbur edən bir buluddur.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Sistem təfəkkürü baxımından sistem hissələrdən ibarət bütövdür. Bu mənada hər birimiz bir sistemik. Çalışdığımız təşkilatlar sistemdir. Sizin və mənim qurduğumuz şey sistem adlanır.

Bütün bunlar bir böyük sosial-texnoloji sistemin tərkib hissəsidir. Və yalnız bu sosial-texnoloji sistemin birlikdə necə işlədiyini başa düşsək, yalnız o zaman bu məsələdə nəyisə həqiqətən optimallaşdıra bilərik.

Sistem təfəkkürü baxımından bir sistem müxtəlif maraqlı xüsusiyyətlərə malikdir. Birincisi, o, hissələrdən ibarətdir, yəni onun davranışı hissələrin davranışından asılıdır. Üstəlik, onun bütün hissələri də bir-birindən asılıdır. Belə çıxır ki, sistemin nə qədər çox hissəsi varsa, onun davranışını anlamaq və ya proqnozlaşdırmaq bir o qədər çətindir.

Davranış nöqteyi-nəzərindən başqa bir maraqlı fakt da var. Sistem fərdi hissələrinin heç birinin edə bilmədiyi bir şeyi edə bilər.

Doktor Russell Ackoffun (sistem təfəkkürünün yaradıcılarından biri) dediyi kimi, bunu düşüncə təcrübəsi ilə sübut etmək olduqca asandır. Məsələn, otaqda kim kod yazmağı bilir? Əllər çoxdur və bu normaldır, çünki bu bizim peşəmiz üçün əsas tələblərdən biridir. Yazmağı bilirsiniz, amma əlləriniz sizdən ayrı kod yaza bilirmi? Elə insanlar var ki, “şifrəni mənim əllərim deyil, kodu yazan beynimdir”. Beyniniz sizdən ayrı kod yaza bilərmi? Yaxşı, yəqin ki, yox.

Beyin heyrətamiz bir maşındır, biz onun orada necə işlədiyinin 10%-ni belə bilmirik, lakin o, bədənimiz olan sistemdən ayrı fəaliyyət göstərə bilməz. Bunu sübut etmək asandır: kəlləni aç, beynini çıxar, kompüterin qarşısına qoy, sadə bir şey yazmağa çalışsın. Məsələn, Python-da "Salam, dünya".

Əgər sistem heç bir hissəsinin ayrı-ayrılıqda edə bilmədiyi bir şeyi edə bilirsə, bu, onun davranışının hissələrinin davranışı ilə müəyyən edilməməsi deməkdir. O zaman nə ilə müəyyən edilir? Bu hissələrin qarşılıqlı təsiri ilə müəyyən edilir. Və buna uyğun olaraq, nə qədər çox hissə varsa, qarşılıqlı əlaqə nə qədər mürəkkəbdirsə, sistemin davranışını anlamaq və proqnozlaşdırmaq bir o qədər çətindir. Və bu, belə bir sistemi xaotik edir, çünki sistemin hər hansı bir hissəsində istənilən, hətta ən əhəmiyyətsiz, görünməz dəyişiklik tamamilə gözlənilməz nəticələrə səbəb ola bilər.

İlkin şərtlərə qarşı bu həssaslıq ilk dəfə amerikalı meteoroloq Ed Lorenz tərəfindən kəşf edilmiş və tədqiq edilmişdir. Sonradan bu, “kəpənək effekti” adlandırıldı və “xaos nəzəriyyəsi” adlı elmi düşüncə hərəkatının inkişafına səbəb oldu. Bu nəzəriyyə 20-ci əsr elmində əsas paradiqma dəyişikliklərindən birinə çevrildi.

Xaos nəzəriyyəsi

Xaosu öyrənən insanlar özlərini xaosoloq adlandırırlar.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Əslində, bu hesabatın səbəbi o idi ki, mürəkkəb paylanmış sistemlər və böyük beynəlxalq təşkilatlarla işləyərkən nə vaxtsa başa düşdüm ki, özümü belə hiss edirəm. Mən xaosoloqam. Bu, əsasən deməyin ağıllı bir yoludur: "Mən burada nə baş verdiyini başa düşmürəm və bununla bağlı nə edəcəyimi bilmirəm."

Düşünürəm ki, bir çoxlarınız da tez-tez belə hiss edirsiniz, ona görə də siz həm də xaosoloqsunuz. Sizi xaosoloqlar gildiyasına dəvət edirəm. Sizin və mənim, əziz xaosoloq yoldaşlar, öyrənəcəyimiz sistemlər “mürəkkəb adaptiv sistemlər” adlanır.

Uyğunlaşma nədir? Uyğunlaşma o deməkdir ki, belə adaptiv sistemdə hissələrin fərdi və kollektiv davranışı sistemdəki hadisələrə və ya mikro-hadisələr zəncirlərinə cavab verərək dəyişir və öz-özünə təşkil olunur. Yəni sistem özünütəşkil etməklə dəyişikliklərə uyğunlaşır. Və bu özünü təşkil etmək bacarığı azad muxtar agentlərin könüllü, tamamilə mərkəzləşdirilməmiş əməkdaşlığına əsaslanır.

Bu cür sistemlərin başqa bir maraqlı xüsusiyyəti onların sərbəst şəkildə genişləndirilə bilməsidir. Şübhəsiz ki, xaosoloq-mühəndislər kimi bizi nə maraqlandırmalıdır. Beləliklə, mürəkkəb sistemin davranışının onun hissələrinin qarşılıqlı təsiri ilə müəyyən edildiyini söyləmişiksə, onda bizi nə maraqlandırmalıdır? Qarşılıqlı əlaqə.

Daha iki maraqlı tapıntı var.
DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Birincisi, başa düşürük ki, mürəkkəb sistemi onun hissələrini sadələşdirməklə sadələşdirmək olmaz. İkincisi, mürəkkəb sistemi sadələşdirməyin yeganə yolu onun hissələri arasında qarşılıqlı əlaqənin sadələşdirilməsidir.

Biz necə qarşılıqlı əlaqədə oluruq? Siz və mən hamımız insan cəmiyyəti adlanan böyük informasiya sisteminin hissələriyik. Əgər bizdə varsa, tapsaq, ümumi dil vasitəsilə qarşılıqlı əlaqə qururuq.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Lakin dil özü mürəkkəb adaptiv sistemdir. Müvafiq olaraq, daha səmərəli və sadə şəkildə qarşılıqlı əlaqə yaratmaq üçün bir növ protokollar yaratmalıyıq. Yəni, aramızda məlumat mübadiləsini daha sadə, daha proqnozlaşdırıla bilən, daha başa düşülən edəcək bəzi simvollar və hərəkətlər ardıcıllığı.

Demək istəyirəm ki, mürəkkəbliyə, uyğunlaşmaya, mərkəzsizləşdirməyə, xaosa doğru meyllər hər şeydə müşahidə oluna bilər. Və sizin və mənim qurduğumuz sistemlərdə və bizim bir hissəsi olduğumuz sistemlərdə.

Və əsassız olmasın, gəlin bizim yaratdığımız sistemlərin necə dəyişdiyinə baxaq.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Bu sözü gözləyirdin, başa düşdüm. Biz DevOps konfransındayıq, bu gün bu söz təxminən yüz min dəfə eşidiləcək və sonra gecələr bu barədə yuxu görəcəyik.

Mikroservislər DevOps təcrübələrinə reaksiya olaraq ortaya çıxan ilk proqram arxitekturasıdır ki, bu da sistemlərimizi daha çevik, daha genişlənə bilən və davamlı çatdırılmanı təmin etmək üçün nəzərdə tutulmuşdur. O bunu necə edir? Xidmətlərin həcmini azaltmaqla, bu xidmətlərin emal etdiyi problemlərin əhatə dairəsini azaltmaqla, çatdırılma müddətini azaltmaqla. Yəni biz sistemin hissələrini azaldıb sadələşdiririk, onların sayını artırırıq və müvafiq olaraq bu hissələr arasında qarşılıqlı əlaqənin mürəkkəbliyi daim artır, yəni həll etməli olduğumuz yeni problemlər yaranır.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Mikroservislər son deyil, mikroservislər, ümumiyyətlə, artıq dünəndir, çünki Serverless gəlir. Bütün serverlər yandı, serverlər yox, əməliyyat sistemləri yox, sadəcə təmiz icra edilə bilən kod. Konfiqurasiyalar ayrıdır, dövlətlər ayrıdır, hər şey hadisələrlə idarə olunur. Gözəllik, təmizlik, səssizlik, heç bir hadisə, heç bir şey olmur, tam nizam.

Mürəkkəblik haradadır? Çətinlik, əlbəttə ki, qarşılıqlı əlaqədədir. Bir funksiya tək başına nə qədər edə bilər? Digər funksiyalarla necə qarşılıqlı əlaqədə olur? Mesaj növbələri, verilənlər bazası, balanslaşdırıcılar. Uğursuzluq baş verdikdə bəzi hadisəni necə yenidən yaratmaq olar? Çox sual və az cavab.

Mikroservislər və Serversiz, biz hipsterlərin Cloud Native adlandırdıqlarıdır. Hər şey buludla bağlıdır. Lakin bulud həm də genişlənmə qabiliyyətinə görə məhduddur. Biz bunu paylanmış sistem kimi düşünməyə öyrəşmişik. Əslində, bulud provayderlərinin serverləri harada yaşayır? Məlumat mərkəzlərində. Yəni burada bir növ mərkəzləşdirilmiş, çox məhdud, paylanmış modelimiz var.

Bu gün biz başa düşürük ki, Əşyaların İnterneti artıq sadəcə böyük sözlər deyil ki, hətta təvazökar proqnozlara görə, yaxın beş-on il ərzində internetə qoşulmuş milyardlarla cihaz bizi gözləyir. Buludda birləşdiriləcək və buluddan yüklənəcək çoxlu sayda faydalı və yararsız məlumat.

Bulud dayanmayacaq, ona görə də biz getdikcə kənar hesablama adlanan bir şey haqqında danışırıq. Yaxud da “duman hesablama”nın gözəl tərifini bəyənirəm. Romantizm və sirr mistisizmi ilə örtülmüşdür.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Duman hesablama. Məsələ ondadır ki, buludlar mərkəzləşdirilmiş su, buxar, buz və daş yığınlarıdır. Duman isə atmosferdə ətrafımıza səpələnmiş su damlalarıdır.

Duman paradiqmasında işin çoxu bu damcılar tərəfindən tamamilə avtonom şəkildə və ya digər damcılarla əməkdaşlıqda həyata keçirilir. Və onlar yalnız həqiqətən sıxıldıqda buluda müraciət edirlər.

Yəni, yenə mərkəzsizləşdirmə, muxtariyyət və təbii ki, bir çoxunuz bütün bunların hara getdiyini artıq başa düşürsünüz, çünki blokçeyni qeyd etmədən mərkəzsizləşdirmə haqqında danışa bilməzsiniz.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

İnananlar var, bunlar kriptovalyutaya sərmayə qoyanlardır. Məsələn, mənim kimi inananlar, amma qorxanlar var. Və inanmayanlar da var. Burada fərqli davrana bilərsiniz. Texnologiya var, yeni bilinməyən məsələ, problemlər var. Hər hansı yeni texnologiya kimi, o, cavab verməkdən daha çox sual yaradır.

Blockchain ətrafında şırınga başa düşüləndir. Qızıl tələsik bir yana, texnologiyanın özü daha parlaq gələcək üçün əlamətdar vədlər verir: daha çox azadlıq, daha çox muxtariyyət, paylanmış qlobal inam. Nə istəməməli?

Müvafiq olaraq, dünyada getdikcə daha çox mühəndis mərkəzləşdirilməmiş proqramlar hazırlamağa başlayır. Və bu, sadəcə olaraq “Ahh, blokçeyn sadəcə zəif tətbiq edilmiş paylanmış verilənlər bazasıdır” deməklə rədd edilə bilməyən bir gücdür. Və ya skeptiklərin deməyi xoşladığı kimi: "Blockchain üçün real proqramlar yoxdur." Fikir verirsinizsə, 150 il əvvəl elektrik haqqında da eyni şeyi deyirdilər. Və hətta bəzi mənalarda haqlı idilər, çünki bu gün elektrikin mümkün etdiyi şey 19-cu əsrdə heç bir şəkildə mümkün deyildi.

Yeri gəlmişkən, ekranda hansı loqo olduğunu kim bilir? Bu Hyperledger. Bu, Linux Fondunun himayəsi altında hazırlanan və blokçeyn texnologiyaları dəstini özündə birləşdirən layihədir. Bu, həqiqətən açıq mənbə icmamızın gücüdür.

Xaos Mühəndisliyi

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Beləliklə, bizim inkişaf etdirdiyimiz sistem getdikcə mürəkkəbləşir, getdikcə daha xaotik və daha uyğunlaşır. Netflix mikroservis sistemlərinin qabaqcıllarıdır. Bunu ilk başa düşənlər arasında onlar Simian Ordusu adlandırdıqları bir sıra alətlər hazırladılar, ən məşhuru Xaos meymunu. kimi tanınanı müəyyənləşdirdi "xaos mühəndisliyi prinsipləri".

Yeri gəlmişkən, hesabat üzərində işləmək prosesində hətta bu mətni rus dilinə də tərcümə etdik, ona görə də gedin keçid, oxuyun, şərh verin, danlayın.

Qısaca, xaos mühəndisliyinin prinsipləri aşağıdakıları deyir. Mürəkkəb paylanmış sistemlər mahiyyətcə gözlənilməzdir və mahiyyət etibarilə səhvdir. Səhvlər qaçılmazdır, yəni bu səhvləri qəbul etməli və bu sistemlərlə tamamilə fərqli şəkildə işləməliyik.

Sistemlərimizin eyni uyğunlaşma qabiliyyətini, özünü təşkil etmə qabiliyyətini, sağ qalma qabiliyyətini sınamaq üçün özümüz istehsal sistemlərimizə bu səhvləri daxil etməyə çalışmalıyıq.

Və bu hər şeyi dəyişir. Təkcə sistemləri istehsala necə işə saldığımızı deyil, həm də onları necə inkişaf etdirdiyimizi, necə sınaqdan keçirdiyimizi. Kodun sabitləşməsi və ya dondurulması prosesi yoxdur, əksinə, sabitliyin pozulması prosesi davam edir. Biz sistemi öldürməyə və onun sağ qalmağa davam etdiyini görməyə çalışırıq.

Paylanmış Sistem İnteqrasiya Protokolları

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Müvafiq olaraq, bu, sistemlərimizin bir şəkildə dəyişməsini tələb edir. Onların daha sabit olması üçün hissələri arasında qarşılıqlı əlaqə üçün bəzi yeni protokollara ehtiyacları var. Bu hissələr razılaşa bilsinlər və bir növ özünütəşkilata gələ bilsinlər. Və hər cür yeni alətlər, yeni protokollar yaranır ki, mən onları “paylanmış sistemlərin qarşılıqlı əlaqəsi üçün protokollar” adlandırıram.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Mən nədən danışıram? Birincisi, layihə Açıq izləmə. Bəziləri mürəkkəb paylanmış sistemləri aradan qaldırmaq üçün tamamilə əvəzedilməz bir vasitə olan ümumi paylanmış izləmə protokolu yaratmağa çalışır.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Daha - Açıq Siyasət Agenti. Deyirik ki, sistemin başına nə gələcəyini proqnozlaşdıra bilmərik, yəni onun müşahidə qabiliyyətini, müşahidə qabiliyyətini artırmaq lazımdır. Opentracing sistemlərimizə müşahidə imkanı verən alətlər ailəsinə aiddir. Lakin sistemin gözlədiyimiz kimi davranıb-rəftar etmədiyini müəyyən etmək üçün bizə müşahidə qabiliyyəti lazımdır. Gözlənilən davranışı necə müəyyənləşdiririk? Bir növ siyasət, müəyyən qaydalar müəyyən etməklə. Açıq Siyasət Agent layihəsi bu qaydalar toplusunu girişdən tutmuş resurs bölgüsünə qədər bir spektrdə müəyyən etmək üçün işləyir.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Dediyimiz kimi, sistemlərimiz getdikcə daha çox hadisələrə əsaslanır. Serversiz hadisələrə əsaslanan sistemlərin əla nümunəsidir. Sistemlər arasında hadisələri ötürmək və onları izləmək üçün bizə bəzi ümumi dil, hadisələr haqqında danışmağımız, onları bir-birimizə necə ötürməyimiz üçün bəzi ümumi protokol lazımdır. Layihənin adı belədir Bulud hadisələri.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Sistemlərimizi yuyan, onları daim sabitsizləşdirən davamlı dəyişikliklər axını proqram artefaktlarının davamlı axınıdır. Bu daimi dəyişiklik axınını davam etdirmək üçün bizə proqram artefaktının nə olduğu, necə sınaqdan keçirildiyi, hansı yoxlamadan keçdiyi barədə danışa biləcəyimiz bir növ ümumi protokol lazımdır. Layihənin adı belədir Grafeas. Yəni proqram artefaktları üçün ümumi metadata protokolu.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Və nəhayət, əgər sistemlərimizin tamamilə müstəqil, uyğunlaşa bilən və öz-özünə təşkil olunmasını istəyiriksə, onlara özünü identifikasiya hüququ verməliyik. Layihə çağırıldı spiffe Onun etdiyi də məhz budur. Bu həm də Bulud Native Computing Fondunun himayəsi altında həyata keçirilən layihədir.

Bütün bu layihələr gəncdir, onların hamısı bizim sevgimizə, təsdiqimizə ehtiyac duyur. Bütün bunlar açıq mənbədir, sınaqlarımız, tətbiqimizdir. Bizə texnologiyanın hara getdiyini göstərirlər.

Lakin DevOps heç vaxt ilk növbədə texnologiya ilə bağlı olmayıb, həmişə insanlar arasında əməkdaşlıq haqqında olub. Və buna uyğun olaraq, inkişaf etdirdiyimiz sistemlərin dəyişməsini istəyiriksə, o zaman özümüz də dəyişməliyik. Əslində biz hər halda dəyişirik; seçim imkanımız çox deyil.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Möhtəşəm var книга İngilis yazıçısı Rachel Botsman, bəşər tarixi boyunca inamın təkamülü haqqında yazır. O deyir ki, ilkin olaraq ibtidai cəmiyyətlərdə inam yerli idi, yəni biz ancaq şəxsən tanıdıqlarımıza güvənirdik.

Sonra çox uzun bir dövr oldu - etimadın mərkəzləşdiyi qaranlıq dövr, eyni ictimai və ya dövlət qurumuna mənsub olduğumuzu əsas götürərək tanımadığımız insanlara etibar etməyə başladıq.

Müasir dünyamızda gördüyümüz budur: etimad getdikcə daha çox paylanır və mərkəzləşdirilməzləşir və o, informasiya axınının azadlığına, informasiyanın mövcudluğuna əsaslanır.

Fikir versəniz, bu etimadı mümkün edən bu əlçatanlıq sizin və mənim həyata keçirdiyimiz şeydir. Bu o deməkdir ki, həm bizim əməkdaşlıq üsulumuz, həm də bunu etmə tərzimiz dəyişməlidir, çünki köhnələrin mərkəzləşdirilmiş, iyerarxik İT təşkilatları artıq işləmir. Onlar ölməyə başlayırlar.

DevOps Təşkilatının Əsasları

Gələcəyin ideal DevOps təşkilatı, hər biri muxtar fərdlərdən ibarət muxtar komandalardan ibarət mərkəzləşdirilməmiş, adaptiv sistemdir. Bu komandalar bütün dünyaya səpələnib, asinxron rabitədən istifadə edərək, yüksək şəffaf rabitə protokollarından istifadə edərək bir-biri ilə səmərəli əməkdaşlıq edirlər. Çox gözəl, elə deyilmi? Çox gözəl gələcək.

Təbii ki, bunların heç biri mədəni dəyişiklik olmadan mümkün deyil. Bizdə transformasiya liderliyi, şəxsi məsuliyyət, daxili motivasiya olmalıdır.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Bu, DevOps təşkilatlarının əsasını təşkil edir: məlumat şəffaflığı, asinxron kommunikasiyalar, transformasiya liderliyi, mərkəzsizləşdirmə.

Yandırmaq

Bir hissəsi olduğumuz və qurduğumuz sistemlər getdikcə xaotikdir və biz insanlar üçün bu düşüncənin öhdəsindən gəlmək çətindir, nəzarət illüziyasından imtina etmək çətindir. Biz onları idarə etməyə davam etməyə çalışırıq və bu, çox vaxt tükənməyə səbəb olur. Bunu öz təcrübəmdən deyirəm, mən də yanmışam, istehsalatdakı gözlənilməz uğursuzluqlardan da əlil olmuşam.

DevOps və Xaos: Mərkəzləşdirilməmiş Dünyada Proqram Təminatı

Tükənmə təbii olaraq idarə olunmayan bir şeyi idarə etməyə çalışdığımız zaman baş verir. Söndükdə hər şey mənasını itirir, çünki yeni bir şey etmək istəyini itiririk, müdafiəyə qalxırıq və əlimizdə olanı müdafiə etməyə başlayırıq.

Mühəndislik peşəsi, tez-tez özümə xatırlatmaq istədiyim kimi, ilk növbədə yaradıcı bir peşədir. Nəyisə yaratmaq həvəsimizi itirsək, o zaman külə, külə çevrilirik. İnsanlar yanır, bütün təşkilatlar yanır.

Məncə, yalnız xaosun yaradıcı gücünü qəbul etmək, yalnız onun prinsiplərinə uyğun əməkdaşlıq qurmaq bizim peşəmizdə yaxşı olanı itirməməyə kömək edəcək.

Sizə arzuladığım budur: işinizi sevmək, gördüyümüz işi sevmək. Bu dünya informasiya ilə qidalanır, biz onu qidalandırmaq şərəfinə malikik. Beləliklə, xaosu öyrənək, xaosoloq olaq, dəyər gətirək, yeni bir şey yaradaq, yaxşı, problemlər, artıq aşkar etdiyimiz kimi, qaçınılmazdır və onlar ortaya çıxanda sadəcə “Ops!” deyəcəyik və problem həll olunur.

Chaos Monkey-dən başqa nə?

Əslində, bütün bu alətlər çox gəncdir. Eyni Netflix özləri üçün alətlər qurdu. Öz alətlərinizi yaradın. Xaos mühəndisliyi prinsiplərini oxuyun və başqasının artıq qurduğu digər alətləri tapmağa çalışmaqdansa, bu prinsiplərə əməl edin.

Sistemlərinizin necə dağıldığını anlamağa çalışın və onları pozmağa başlayın və necə dayandıqlarını görün. Bu birinci gəlir. Və alətlər axtara bilərsiniz. Hər cür layihələr var.

Sistemin komponentlərini sadələşdirməklə sadələşdirilə bilməyəcəyini söylədiyiniz anı tam başa düşmədim və dərhal komponentlərin özlərini sadələşdirərək və qarşılıqlı əlaqəni çətinləşdirərək sistemi sadələşdirən mikroservislərə keçin. Bunlar mahiyyətcə bir-birinə zidd olan iki hissədir.

Düzdür, mikroservislər ümumiyyətlə çox mübahisəli mövzudur. Əslində hissələrin sadələşdirilməsi elastikliyi artırır. Mikroservislər nə təmin edir? Onlar bizə çeviklik və sürət verir, lakin bizə sadəlik vermirlər. Çətinliyi artırırlar.

Beləliklə, DevOps fəlsəfəsində mikroservislər o qədər də yaxşı bir şey deyil?

İstənilən yaxşılığın əks tərəfi var. Fayda ondan ibarətdir ki, o, elastikliyi artırır, dəyişiklikləri daha sürətli etməyə imkan verir, lakin bütün sistemin mürəkkəbliyini və buna görə də kövrəkliyini artırır.

Yenə də nəyə daha çox diqqət yetirilir: qarşılıqlı əlaqənin sadələşdirilməsinə, yoxsa hissələrin sadələşdirilməsinə?

Vurğu, əlbəttə ki, qarşılıqlı əlaqələrin sadələşdirilməsinə yönəlib, çünki buna sizinlə necə işləməyimiz baxımından baxsaq, onda ilk növbədə, işin sadələşdirilməsinə deyil, qarşılıqlı əlaqənin sadələşdirilməsinə diqqət yetirməliyik. hər birimizdən ayrı. Çünki işi sadələşdirmək robotlara çevrilmək deməkdir. Burada McDonald's-da təlimat olanda normal işləyir: bura hamburgeri qoyursan, üzərinə sousu tökürsən. Bu, bizim yaradıcı işimizdə qətiyyən işləmir.

Doğrudanmı, sizin dediklərinizin hamısı rəqabətsiz bir dünyada yaşayır və oradakı xaos o qədər mehribandır və bu xaosda heç bir ziddiyyət yoxdur, heç kim kimisə yemək və ya öldürmək istəmir? Rəqabət və DevOps necə olmalıdır?

Yaxşı, bu, hansı rəqabətdən danışdığımızdan asılıdır. Söhbət iş yerində rəqabətdən gedir, yoxsa şirkətlər arasında rəqabət?

Xidmətlərin bir neçə şirkət olmadığı üçün mövcud olan xidmətlərin rəqabəti haqqında. Biz yeni tip informasiya mühiti yaradırıq və istənilən mühit rəqabətsiz yaşaya bilməz. Hər yerdə rəqabət var.

Eyni Netflix, biz onları nümunə götürürük. Niyə bu fikrə gəldilər? Çünki onların rəqabətədavamlı olması lazım idi. Bu çeviklik və hərəkət sürəti məhz çox rəqabət tələbidir; o, sistemlərimizə xaos gətirir. Yəni xaos bizim istədiyimiz üçün şüurlu şəkildə etdiyimiz bir şey deyil, dünya bunu tələb etdiyi üçün baş verən bir şeydir. Sadəcə uyğunlaşmalıyıq. Və xaos, məhz rəqabətin nəticəsidir.

Bu, xaosun hədəflərin olmaması deməkdirmi? Yoxsa görmək istəmədiyimiz hədəflər? Biz evdəyik və başqalarının məqsədlərini başa düşmürük. Rəqabət əslində ondan irəli gəlir ki, bizim dəqiq məqsədlərimiz var və hər növbəti anda hara çatacağımızı bilirik. Bu, mənim fikrimcə, DevOps-un mahiyyətidir.

Həm də suala baxın. Düşünürəm ki, hamımızın bir məqsədi var: sağ qalmaq və bunu etmək
ən böyük zövq. Və istənilən təşkilatın rəqabət məqsədi eynidir. Sağ qalmaq çox vaxt rəqabət vasitəsilə baş verir, bununla bağlı heç nə edə bilməzsiniz.

Builki konfrans DevOpsDays Moskva dekabrın 7-də Texnopolisdə keçiriləcək. Noyabrın 11-dək hesabatlar üçün müraciətləri qəbul edirik. Yaz danışmaq istəsəniz bizə.

İştirakçılar üçün qeydiyyat açıqdır, biletlərin qiyməti 7000 rubl təşkil edir. Bizə qoşul!

Mənbə: www.habr.com

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