DevOpların qəbulunda 8 əsas problem: 2-ci hissə - Həllər

Bu iki hissəli blog seriyasının bir hissəsində (burada), DevOps qəbul edərkən gördüyüm 8 əsas problemə baxdım. İndi bəzi həllərə baxaq.

Dəyişiklik əvvəlində ən çətindir, ortada ən pis və ən yaxşısı. - Robin S. Şarma

1. Devops prinsiplərinə uyğun olaraq mədəniyyət funksiyası

DevOps liderləri və dəyişiklik agentləri, DevOps mədəniyyətinin nəyə bənzədiyi və niyə dəyər axını sürətləndirməsi barədə davamlı olaraq qrupdakı insanları və təşkilatdakı insanları maarifləndirmə yollarını tapmalıdırlar. İşlədiyim bəzi şeylər bunlardır:

Təcrübənin öyrənilməsi və icmaları

DevOps işçiləri DevOps qəbulu üçün daxili təlimlər və ya təqdimatlar təşkil edə və DevOps mədəniyyətinə dair məlumatlar verə bilərlər. Bu yolla təşviq edə və təşkilatdakı hər kəslə üz-üzə gələ bilərlər. İnsanlar güvəni bu şəkildə daha sürətli qurduğu üçün e-poçt və ya video konfransdan istifadə etməklə üz-üzə əməkdaşlıq üstünlük verilir, buna görə də münasibətlər qurmaq üçün hər kəslə ən azı görüşməyi hədəfləyən komandalar dağılsa bir yol şousu etmək tövsiyə olunur.

DevOps məlumat bazası və suallar

DevOps komandaları bir məlumat bazası və ya Tez-tez verilən suallar (FAQ) yarada və təşkilatdakı bütün insanlarla paylaşa bilər, buna görə də hər kəs ehtiyac duyduğu yerlərdə DevOps ilə əlaqəli məlumatların haradan alınacağını bilir. Görmə qabiliyyəti və məlumatları özləri tərəfindən axtarmağa, oxumağa və hətta töhfə verməyə sövq edən məlumat. Bu cür məlumat Atlassian Confluence və ya Microsoft Teams kimi əməkdaşlıq platformalarında saxlanıla bilər.

Westrum Təşkilatı Mədəniyyət Tətbiqləri

Westrum Təşkilatı mədəniyyət praktikasından istifadə edərək məlumat generasiya mədəniyyətini tapan təcrübələri cəmləşdirərək Westrumun iyerarxik mədəniyyət modelinin altı hissəsinə baxaraq məlumat axını və etibarını inkişaf etdirən bir generativ bir mədəniyyət yaratmaq üçün istifadə edə bilərik;

Burada necə bir Generativ Mədəniyyət qura bilərsiniz;

2. Dəyişməyə qarşı Müqavimət

Liderlər insanların dəyişikliyə qarşı çıxacağını gözləməlidirlər. DevOpsoloq, Philippa Hale, maraqlı tərəflərin xəritəçəkmə vasitələri haqqında məqaləsində və bəzi qrup insanların dəyişikliklərə münasibətdə əhval-ruhiyyələrini və duyğularını necə həll edə biləcəyimizi müzakirə etdi, sonra DevOps təşəbbüslərinə yaxınlaşmaq üçün müxtəlif nişan strategiyalarını tətbiq edə bilərik. 6 “davranış profili” mövcuddur və aşağıda göstərildiyi kimi onlarla necə münasibət qura bilərik;

İşlənməmişdir

Tamaşaçılar

Dindarlar

Tənqidçilər

Həvəskarlar

Vəkillər (Çempionlar / Ekspertlər)

Yuxarıda göstərilənlərə əsasən ümumiləşdirmək üçün rabitə ilə əlaqəli bütün nişan yanaşmalarını görə bilərik və DevOpsların qəbulu barədə məlumatlıyıq. Bütün qruplarla yaxından işləməli və onlara görünən olmalı və ehtiyac olduqda kömək etməliyik.

3. DevOps Vizyonuna aydınlıq gətirmək

DevOps CALMS çərçivəsinin tətbiqi DevOps yol xəritəsini və məqsədlərini müəyyənləşdirməyə kömək edə bilər. CALMS bir təşkilat daxilində inkişaf və əməliyyatlar (DevOps) qruplarının, funksiyaları və sistemlərinin inteqrasiyası üçün konseptual bir çərçivədir.

DevOps liderləri DevOps təkamülü üçün aydın inkişaf mərhələləri ilə dəqiq bir yol xəritəsi hazırlamalıdırlar. Onu bölüşdürməlidirlər və təşkilat daxilindəki hər kəsə görünməlidir;

4. Qruplararası iş birliyinin yaradılması

İnkişaf və İT əməliyyat qrupları əməkdaşlıq etməyi öyrənməlidirlər. Bu, həm dev, həm də opları daxil olmaqla çarpaz funksional qruplar yaratmaq mənasını verə bilər, lakin bu bir çox təşkilatda işləmir. Çox vaxt təşkilati bir dəyişiklik çox dramatikdir və ya ətrafına getmək üçün kifayət qədər adam yoxdur. Ənənəvi texnologiya şöbəsi dəstləri, məsələn təhlükəsizlik və şəbəkə ətrafında İT əməliyyatları mövzusunda dərin mövzular üzrə təcrübə təcrübələrini də daxil edirlər, buna görə də bu tip insanları inkişaf və ya məhsul komandaları arasında necə bölüşmək lazım olduğunu görmək çətindir.

Həm inkişaf, həm də İT əməliyyat qruplarının müntəzəm görüşməsinə nə kömək edir? İnkişaf qrupları çevik təcrübələrinin bir hissəsi olaraq gündəlik skriptlər aparırsa, İT əməliyyatlarını iştiraka dəvət etmək maneələrin aradan qaldırılmasına kömək edə bilər. Onları sprint planlamasına dəvət etmək, qeyri-işlək tələblərin sprintdə nəzərə alınmasını təmin edə bilər və bununla da dəyəri çatdırma prosesini tənzimləyir.

Slack və ya Microsoft Teams kimi komandalararası ünsiyyət vasitələri, əməkdaşlığın davamlı olmasına imkan yaradaraq həqiqətən kömək edir. "Xəbərdarlıq / Bildiriş" söhbət qrupu və ya kanalı da düzgün idarə edilməlidir ki, məsələlər düzgün komandaya yönəldilsin və məsələni / səhvini həll etmək üçün düzgün hərəkətdən istifadə edərək sürətli şəkildə artırılsın.

Budur istifadə edə biləcəyiniz və təşkilat daxilində əməkdaşlığa başlaya biləcəyiniz bəzi əməkdaşlıq vasitələri;

5. Standartlaşdırma mühitləri

Bir mühit, boru kəməri ilə koddan real məhsula çevirmək istədiyiniz mənbələr və ya hədəf yerlər toplusudur. Ətraf mühitə Virtual Maşınlar (VM), Verilənlər bazası serverləri, 3-cü tərəf xidmətləri və s. Daxil ola bilər. Aşağıda ətraf mühitin istifadəsi, istifadəçi / şəxs və ətraf mühitin qorunması üzrə məsul şəxslərin nümunələri;

Müəyyən edilmiş bir mühitə sahib olmağın üstünlükləri aşağıdakıları əhatə edir;

  1. Yerləşdirmə rekordu / tarixi - Boru kəmərinin bütün təfərrüatları öz mənbələri üçün CI / CD alətlərində qeyd olunur.
  2. İzləmə qabiliyyəti - Bir kod dəyişikliyinin (törətmənin) və ya xüsusiyyət / səhv düzəltməsinin (iş əşyaları) bir mühitə çatdığını izləməyə imkan verir.
  3. İcazə / Nəzarət - hansı istifadəçiyə icazə verildiyini və hansı hədəf mühitin yerləşdiriləcəyini göstərərək etibarlı bir mühit.

Avtomatlaşdırma mühitinin təminatı davamlı çatdırılma prosesində uğurun əsas amilidir. Dev qrupu yeni bir ətraf mühitin ad-hoc tələb edə bilərmi və tətbiq tətbiq edildikdə mühitiniz tələb-şərtlə təmin olunurmu? Tətbiq mühiti 3 əsas sahəyə bölünə bilər:

1. İnfrastruktur

2. Konfiqurasiya

3. Bağlılıqlar

İnfrastruktur, tətbiq və ya xidmətin tətbiq olunduğu və tətbiqetmənin konfiqurasiya ehtiyaclarını işlədəcəyi yerdir. Bağlılıqların tətbiq ilə necə birləşməli olduğu da daxildir. Bu gündən etibarən infrastruktur skriptlə təmin edilə bilər və ya onu "Kod kimi İnfrastruktur" və ya qısa IaC adlandırırlar. IaC, bu gün bütün ətraf mühitin təmin edilməsi prosesinin avtomatlaşdırılması üçün mövcud olan hərtərəfli alətlər vasitəsi ilə daha əlçatan olur.

Konfiqurasiya tətbiqetmə mühitinin növbəti ən vacib tərəfidir. Konfiqurasiya tətbiqin müəyyən bir infrastrukturda necə qurulduğunu və infrastrukturun əsas tətbiqetmə ilə necə birləşdiyini diktə edir.

Bağlılıqlar kitabxanalardan tutmuş xidmətlərə və ya digər tətbiqlərə qədər tətbiqin asılı olduğu bütün fərqli modul və ya sistemlərdir.

Avtomatik mühit təminatını aşağıdakı kimi istifadə etməyin faydası;

  • DevOps komandalarına daha yüksək abstraksiya səviyyəsində işləməyə imkan verməklə mürəkkəblik azaldı.
  • Tətbiqlərin yerləşdirilməsinə dinamik reaksiya verməsi ilə artan sabitlik.
  • Tətbiqin xüsusi hosting mühitindən konfiqurasiya idarəetməsini ayırmaqla artan rahatlıq.

Bazarda yuxarıda göstərilən hər 3 sahə üçün avtomatlaşdırma təmin etmək üçün istifadə edə biləcəyimiz açıq mənbəli və ya müəssisə olaraq bir çox vasitə var;

6. DevOps Toolchain-in idarə edilməsi və özünə xidmət kimi verilməsi

DevOps qəbul məqsədləri və prosesləri müəyyən edildikdən sonra, prosesləri qarşılamaq üçün tələb olunan alət dəstini təyin edə bilərik. İnkişaf və İT əməliyyat qruplarının təşkilat üçün uyğun vasitələr barədə qərar verməsi üçün birlikdə işlədiyinə əmin olun. Təqdim olunan hər hansı bir yeni vasitə ilə mövcud işçilər təlim keçməlidir. Alətlərin təhlükəsizlik tələblərinə cavab verməsini və mövcud mənbələr və xidmətlər ilə yaxşı birləşdirilməsini təmin etmək də vacibdir.

** Yuxarıda göstərilən bölmələr üçün bazarda mövcud olan bir neçə alət çubuğunun adını çəkin.

7. Sürətləndirici Buraxılış İdarəetmə

Ətrafımızı düzgün müəyyənləşdirdikdən sonra, DevOps liderləri, yerləşdirmə üçün avtomatik tetikleyiciyə ehtiyac duyduğumuzda, yerləşdirilmədən əvvəl təsdiqləmə qapısına ehtiyac olduqda və QA / sınaq mərhələsinin yerləşdirilməsini istədikdə düzgün bir boru kəməri yaratmalıdır. Aşağıdakı şəkil, kombinə edilmiş avtomatik və əl ilə yerləşdirilən əsas buraxılış borusunu göstərdi;

Müvafiq bir buraxılış boru kəməri, bina, inteqrasiya, sınaq, çatdırılma və digər proseslərin avtomatlaşdırılmasına sahib olduqdan sonra hər buraxılışdakı insan fəaliyyətini, tələb olunan idarəetmə və koordinasiya miqdarını azaldır.

İnkişafın sürətlənməsi rəqabət üstünlüyünə çevrildiyi üçün DevOps komandası Davamlı İnteqrasiya və Davamlı paylanmanı (CI / CD) təmin etməyə çalışdı. CI / CD, inkişaf etdiricilərə və İT əməliyyatlarına proqramın inkişafı və sınaq prosesində böyük bir əngəlin öhdəsindən gəlməyə kömək edir. İllər keçdikcə proqram təminatı inkişafı milyardlarla smartfon və digər mobil istehlakçı cihazları və platformalarından yaranan tələblə ayaqlaşmaq üçün irəliləyən geniş inkişaf mənbələri olan müəssisə səviyyəsindən kiçik inkişaf qruplarına keçdi. Aşağıda mövcud çubuq birləşməsi ilə CI / CD boru kəmərinin bir nümunəsidir;

Bizim vəziyyətimizdə, mürəkkəb ehtiyaclarımız üçün ən yaxşı həll yolu göründüyü üçün alətlərin birləşməsindən istifadəyə üstünlük veririk. Müəssisə məhsullarını inkişaf etdirən komandaların əksəriyyəti belə bir təməl yanaşmadan faydalanacaqlar. Bizim alət çantası yığımımız,

  1. Atlassian JIRA - Məhsul geriliyi, Sprint Planlaşdırması və Buraxılış Hesabatı və Çevik qrupun hər bir sprintdə nə qədər yaxşı işləməsi üçün bir qrupdur.
  2. Github - Geliştiricinin bir-biri ilə ünsiyyət qurduğu və məhsul xüsusiyyət kodunu dəyişikliklər və kod versiyalarında daha yaxşı görünməsi üçün əməkdaşlıq etdiyi bir paylanmış versiyaya nəzarət sistemi (DVCS). Hər hansı bir dəyişiklik digər tərtibatçılar və ya kodu daha təmiz və daha az səhv / səhv yaratmış Kod Rəyçisi tərəfindən nəzərdən keçirilməlidir.
  3. Azure DevOps - bu CI / CD boru kəmərimizi düzəltmək üçün istifadə etdiyimiz bir vasitədir və eyni zamanda DevOps Mühəndis, İnkişaf etdirici, Buraxılış Meneceri və QA komandası arasında daha çox iş birliyi var. Həm də məhsulu keyfiyyətli bir məhsulla təmin etmək üçün inteqrasiyanın baş verdiyi yerdir, buna görə istehsal mühitinə yerləşdirmədən əvvəl təhlükəsizlik təhlili və QA testi keçiririk.
  4. Datadog - Bu Datadog ilə serverlərinizi, buludlarınızı, ölçümlərinizi, tətbiqlərinizi, komandanızı birlikdə izləyə biləcəyiniz bir izləmə vasitəsidir. Ətrafınıza və məhsullarınıza görə hər cür monitorlar üçün bir pəncərə kimidir.

Səmərəli CI / CD boru kəməri bazar üçün vaxtı əhəmiyyətli dərəcədə yaxşılaşdıra bilər və proqram təminatının sabitliyini və keyfiyyətini qoruyub saxlaya bilməz.

8. Avtomatik test

DevOps avtomatlaşdırmanı təşviq edir və insan müdaxilələrini tələb etməyən bütün gündəlik əsas vəzifələrin mümkün qədər çox avtomatlaşdırılmasını hədəfləyir. QO mütəxəssislərini DevOps komanda tərkibinə əlavə etmək, komandaya ən yaxşı yanaşma və ya sınaq vasitələrinin avtomatlaşdırılmasına qərar verməyə kömək edəcəkdir. Avtomatlaşdırma vasitələri tətbiqetmə və ya sistem səhvləri üçün testə gəldikdə ümumiyyətlə işləyir, lakin QA testi istifadəsi və sərbəst buraxılması üçün sınaqdan daha yaxşı bir iş görür.

Avtomatik fasiləsiz sınaqlarınızı CI / CD boru kəmərinizə inteqrasiya etmək, test avtomatlaşdırması və CI / CD tətbiqetmələri ilə inteqrasiya etmək asan olan bir tətbiq sınağı tətbiqini tələb edir və geniş veb API dəstəyinə malikdir. Avtomatik fasiləsiz sınaqdan istifadənin faydası aşağıdakılardır:

Sabitlik. Keyfiyyətli və təhlükəsizlik rekvizitlərini daha ardıcıl tətbiq etməyə kömək edir. Bir əl təhlükəsizliyi testini yazsanız və sonra onu avtomatlaşdırarsanız, hər quruluşda tətbiq edə biləcəyiniz bir təhlükəsizlik tələbi olur.

Sürət. Ölçülən alətlər ilə təchiz edilmiş avtomatlaşdırılmış davamlı sınaq ilə, inkişaf etdiricilər SDLC boyunca həqiqi vaxtda problemləri tapa və dəqiq tənzimləyə bilərlər. Bunu etmək tətbiqetmənin inkişafını sürətləndirir və əl sınaqları ilə əlaqəli səhvlərdən qaçınır.

Ölçək. Əl testini miqyaslandırmaq üçün daha çox əl testləri tələb olunur. Avtomatik testi miqyaslandırmaq üçün yalnız daha çox tətbiqə ehtiyacınız var və sınamaq üçün qurulur.

Nəticə

DevOps Qəbulu təşkilatın memarlığı və məqsədlərinin təhlili ilə başlamalı olan bir səyahətdir. DevOps Qəbulunda bu ümumi problemləri həll etmək, çevrilməni daha hamar edəcəkdir. Bir müddət ərzində təşkilatdakı hər bir komanda və ya şəxs DevOps dəyişikliklərinə alışacaq və davamlı təlim proseslərinə uyğunlaşacaq. İnkişaf, Əməliyyat və İdarəetmə qrupları necə əməkdaşlıq etməyi öyrəndikdən sonra avtomatik olaraq bir-birlərinə kömək edəcək və DevOps Qəbul məqsədlərini arxivləşdirmək üçün yaxından əməkdaşlıq edəcəklər.