Beləliklə, indi bir platforma komandası qurun! uğurlu mühəndisliyin sirləri

TLDR; Ölçekleme komandaları çətindir. Düzgün hazırlanmış bir platforma komandası çətinliklərin aradan qaldırılmasına kömək edə bilər.
Dənizin ortasındakı bir platforma (Platform komandalarının adi təcrid olunması üçün yaxşı bir məcaz)

Conde Nast International'da bir ildən az müddətdə 20 mühəndislik qrupundan 100-dən aza yüksəldik. Bir çox bazarda istifadə olunan bir sistem qurmağın çox hərəkətli hissələrə və təkrarlara sahib olduğunu gördük. Nümunə: infrastruktur və tətbiq konfiqurasiyasının yenidən qurulması. Üçüncü tərəf əlavə proqramının əlavə edilməsi. CDN yönləndirmələrindən istifadə edərək tətbiqetmə yaradın. DNS qeydiyyatı və konfiqurasiyası.

Bir çox komandanın istifadə etdiyi bir çox AWS hesabı var idi. İstifadə izlənməsini izləmək qarışıqlıq idi. Hər bir geliştirici sistemlərini harada və necə idarə edəcəyi barədə düşünməlidir. Bunu ümumiyyətlə müstəqil şəkildə edirlər. Monitorinq və giriş haqqında düşünmək lazımdır. Buraya növbə qeydinin təmin edilməsi və trafikin ötürülməsi kimi müxtəlif alt sistemlər də daxildir.

Prosesi çox asan və hamar etmək üçün edə biləcəyimiz çox şey var idi. İnfrastruktur komandası yaratmağa və daha sonra platforma qrupu yaratmağa qərar verməyimizin əsas səbəbi budur.

Platforma komandası

Platforma komandası

Platforma komandası məhsul komandasının bir hissəsi deyil, mühəndislik səmərəliliyi qrupu kimi çıxış edir. Bu o deməkdir ki, platforma komandasının əsas müştəriləri məhsul komandalarıdır. Məhsul komandasının da ümumiyyətlə platforma haqqında özlərini öyrətmələri lazımdır. Sonra problemləri həll edin və davamlı inkişaf üçün rəy verin (yeni CI). Bu, platforma komandasının təşkilatın qalan hissəsindən təcrid olunduğu anlamına gəlməməlidir. Təşkilatın uğurunda əsas rol oynayır.

İnfrastruktur idarəçiliyi platforma qrupunun məsuliyyətidir. Buludda və ya saytda yaxşı təcrübələrin və infrastrukturun hərtərəfli başa düşülməsini təmin edin. Məsələn, infrastrukturun audit oluna biləcəyinə əmin olun. Bu bir çox yolla həyata keçirilə bilər. Bununla birlikdə, ən geniş yayılmış tətbiq növü Kod kimi İnfrastrukturdur (IAC).

IAC, Xidmət olaraq İnfrastruktur tərəfindən aktivləşdirilir (IaaS). Platform komandası IAC-ı açıq mənbə alətlərindən istifadə edərək qurur. Bu o deməkdir ki, yaradılacaq platforma alətlərin abstraksiyasıdır. Bu alətlər sərbəst şəkildə bağlıdır və bu alətlərin inteqrasiyası platformadır. Bunu bir Xidmət kimi bir Platforma (PaaS) kimi düşünün, lakin iş istifadəsi hallarına daha yaxındır.

Platforma komandasını niyə qurduğumuzu bilirdik. İndi platforma komandasının qurulduğu təməli atmalı idik. Ümumiyyətlə görünən bir hədəf və mandata sahib olan məhsul komandalarından fərqli olaraq. Platforma qrupunun daha çox funksional olmayan tələbləri var, bunları təfərrüatlı müəyyənləşdirməliydik.

Uğurlu bir platforma komandası necə quracağım barədə şəxsi fikrim budur.

Komanda və onun səlahiyyətləri

Mandatlar

avtomatlaşdırma

İnsanlar səhvlərə meyllidirlər. Platformadakı avtomatlaşdırma ilə kod yerinə yetirərkən daha etibarlı ola bilərik. Bu, kod içindəki səhvləri və səhvləri təcrid etməyimizə imkan verir. və sonra davamlı çatdırılma.

Avtomatlaşdırılmış testlər vacibdir. Nə sınaqdan keçirilməyibsə, hələ tam tətbiq olunmur. Proqram növündən asılı olaraq bir çox test növü tələb olunur. Məsələn, inteqrasiya vahidinin ucdan uca fuzzing qələm testləri.

Təhlükəsizlik hər şeydən vacibdir və avtomatlaşdırılmış təhlükəsizlik testi prioritet olmalıdır. Bu, CORS-un SQL enjeksiyonunu və digər hücumları icra etməsinin qarşısını alır. Bu hücum səthini azaldır.

Giriş verərkən ən az imtiyaz prinsipindən istifadə edin. Eyni zamanda, bunun giriş asanlığı ilə kompensasiya olunduğundan əmin olun. Hər 5 saniyədə bir girişə ehtiyacı olan bir platformadan istifadə edən bir geliştirici insan münasibətləri üçün zərərlidir. Platforma komandası maneə deyil, imkan yaradan olmalıdır. Bu, əlaqələr qurmaq və komandanın səmərəliliyini təmin etmək üçün çox uzun işləmək deməkdir.

İki dəfə edilməli olan hər şey avtomatlaşdırılmalıdır. Mümkün qədər quru prinsipinə sadiq qalın. İdrak səylərini azaltmaq üçün platforma avtomatlaşdırılmalıdır. Bir platforma olaraq daha sabit olmağımıza kömək edin. Bu sənədləşmə və yarılma üçün alternativ deyil, bunun nəticəsidir.

Avtomatlaşdırmanın böyük bir hissəsi yerləşdirmə strategiyasında və metriklərdən istifadə edərək yerləşdirmələrin ölçülməsindədir. Nəhayət, metrikləri müştəri qəbuluna qarşı qurun.

Ağıllı yerləşdirmələrdən istifadə edin və nə zaman tətbiq edəcəyinizi anlayın. Nümunələr aşağıdakılardır. Çaydanın yerləşdirilməsi, A / B testi, avtomatik geri dönmə və sıfır bilik geri qaytarılması.

Səmərəlilik Yüksək səmərəli bir platformanın yaradılması vacibdir. Bu, daha sürətli hərəkət etməyə imkan verir. Effektivliyi artırmaq üçün səhvləri tez bir zamanda düzəldin. Və ehtiyac duyulduğu əsaslarla bina xüsusiyyətləri. Kodu yenidən istifadə etmək və istinad tətbiqetmələrini yaratmaq vacibdir. Bu, daha geniş şirkətin daha sürətli bazara çıxmasına və rəqabət üstünlüyü qazanmasına kömək edəcəkdir. Bütün bilinməyən bilinməyən və kənar halların sənədləşdirildiyindən əmin olun. Ümumi problemlər və eskalasiya yolları.

Platformadakı səmərəlilik həm də tez bir zamanda uğursuz olub düzəltmək deməkdir. Səhvlər göstərilərkən platforma mümkün qədər şəffaf olmalıdır. Ardından səhvlər daha sürətli ayıklama və yerləşdirməyə səbəb olur. Effektivlik, böyük bir tətbiqetmə yerinə kiçik xüsusiyyətləri təkrarlamaqdır.

Məlumat bazası üçün artan bir sistem maneə deyil. Bunun əvəzinə, itkin düşdüyün zaman başlamaq üçün bir yerdir. Yaxşı münasibətlərlə bu, məhsuldar nəticələrə və daha səmərəli əməkdaşlığa gətirib çıxarır. Bilikləri bölüşməyə kömək edin. Bir-birinizlə təcrübə qazanacaqsınız və bu çox səmərəli bir komanda qurmağın əla bir yoludur. Özünəxidmət

Kifayət qədər və davamlı sənədləşmə vacibdir. İnkişaf edənlərin təlimə ehtiyacı var. Yeni inkişaf etdiricilər üçün təlim səyləri nəzərə alınmalıdır. Tətbiq etdiyimiz hər yeni texnologiyanın yükü var. Bu səy ələ keçirmə dəyərinə dəyərsə, bu diqqətlə düşünülməlidir. Təlim laboratoriyaları və inkişaf etdiricilər üçün interaktiv portal faydalıdır. MVP və istinad tətbiqini kəşf edə biləcəyimiz bir yer. Bütün bunlar özümüzə qayğı göstərməyimizə kömək edəcəkdir.

Bütün yeni mühəndislər ilk ayda platforma ilə bir şey qurmalıdırlar. Bu işə qəbulun ilkin istiqamətinin bir hissəsi ola bilər. Bu şəkildə platformanın özünəxidməti ilə bağlı problemləri də aşkar edə bilərik. Platformanın hər yeni hissəsi üçün yenidən hazırlıq. Platforma daxilində DIY kəşflər etməyiniz tövsiyə olunur. Təkərin yenidən icad edilməsi və kölgə IT-nin istifadəsi fəal şəkildə tövsiyə edilmir. Eyni şeyin bir çox tətbiqini davam etdirmək israfçı və lazımsızdır.

Monitorinq göstəriciləri və siqnal izləmə güclü vasitədir. SRE əvvəlcə platformanın əsas komandasına daxil edilmiş platform funksiyasının bir hissəsi ola bilər. Bu, SRE-yə platformanın əsas tətbiq olunmasını anlamağa kömək edəcəkdir.

Platformanın ən vacib hissəsi onun inkişaf etdiricilər üçün hazırlanmasıdır. Yaxşı təcrübə və şəxsiyyətlərarası ünsiyyətin təşviqi arasında bir tarazlığa can atırıq. Özünə xidmət platforması, nou-hauya sahib olmağınız deməkdir. Sonra bir platformanın dəyərini anlayın. Bu o deməkdir ki, inkişaf etdiricilər bəzən məyusluq yaşayırlar. Platformanın inkişafını təkrarlayarkən rəylər nəzərə alınmalıdır. Platformanın inkişaf etdiricilərinə və platformanın ümumiyyətlə necə işlədiyinə cavab vermək üçün bir yol olmalıdır. Bunsuz platforma şirkətin qalan hissəsindən təcrid olunmuş şəkildə yaşayır. Övladlığa götürmə ən yaxşı halda yorucu olacaq. İnsanlar bəyəndikləri bir şeyi istifadə etmək və qucaqlamaq istəyirlər. Nəticə etibarilə, proqram təminatı insanlar mərkəzli bir layihədir. Ünsiyyət, qarşılıqlı əlaqə Motivasiya inkişafın vacib bir hissəsidir. Bunu iş tələbləri və son tarixlərlə birlikdə mükəmməlləşdirməliyik. Mövcud olmayan mükəmməl bir platformanın kimsəyə faydası yoxdur. Yarı funksional və təminatsız bir platforma, hər hansı bir iş üçün ləyaqətdir.

Axı hər zaman platforma sahəsinin xaricində olan şeylər olacaqdır. Buna hər halda hər bir halda qərar verilməlidir. Günün sonunda insanların buna ehtiyac duyduğunu bilirsinizsə, sorğunu başqa bir komandaya göndərməlisiniz. Gərginləşə bilər.

Komanda planlaşdırıcısı komandaya yüksək səviyyədə baxır

Prinsiplər

Komanda qərarlarına qarşı durmaq istəyir

səlahiyyət

Bir platforma komandasının uğuru və ya uğursuzluğu bir çox cəhətdən verdikləri qərardadır. Platforma komandası digər komandaları təsir edəcək qərarlar verməlidir. Bu, platformanın təməllərini qurarkən olur. Məsələn istifadə etdiyimiz alət və çərçivələrin dili.

Platforma komandasının səlahiyyəti standartların icrasında deyil. Ancaq bir və ya digər qərardakı inkişaf qrupunun incə nəzarətində. Məsələn, qeyd etmək üçün bir tövsiyə edin. Günlüklər göndərilərkən bir qeyd ayrıştırıcısı ilə uyğun olmaq. Sərt və sürətli standartları inkişaf etdirmək platforma qrupunun məsuliyyəti deyil. İnkişaf qrupunun özü seçim etmək imtiyazına sahib olmalıdır. Alətlər, çərçivələr və dillər kimi, öz istifadəsi hallarına uyğundur. Ancaq əvvəlcədən qərar verilməsi lazım olan əsas qüvvələr var. Məsələn, buluddan və ya bir çox bulud təminatçılarından istifadə etmək.

Təchizatçı sədaqəti platforma komandaları üçün həm hədiyyədir, həm də ləzzətdir. Bu qərarlar digər komandalar tərəfindən verildiyi mənasında hədiyyə. Bu, komandaların alət ekosistemini bir qərar ətrafında qurduqları deməkdir. Lənətə gəlin, çünki bu qərarları bir tətbiqin həyat dövründə yaşamalıyıq. Və ya əlavə miqrasiya səyi əlavə edin. Bir platforma komandası, daha yaxşı bir müvəffəqiyyət şansı üçün təşkilat daxilində görünürlük və səlahiyyətə sahib olmalıdır.

Bu şəkildə çevirin. DevOps'un bir şəxsiyyət deyil, bir mədəniyyət olduğuna inanırıq

Vəkillik və müjdəçilik

DevOps bir mədəniyyətdir, fərqi yoxdur. Platforma qrupu bunu müjdələməyi bacarmalıdır.

Proqram inkişafındakı səhvlərin adi səbəbi, tətbiqetmənin istehsal mühiti şəraitində davranışını başa düşməməsidir.

Komandalararası ünsiyyəti asanlaşdıran ilk texniki heyət ümumiyyətlə platforma komandasıdır. Sonra kodun təkrar istifadəsi və ən yaxşı təcrübənin təkrar istifadəsinin təsdiqlənməsi varsayılan olaraq platforma komandasına aiddir. Performans və etibarlılıq platforma qrupu üçün əsas problemlərə çevrilir.

Mühəndislik səmərəliliyi platforma qrupunun daima qayğısıdır. Platforma qrupunu qurmağın məqsədi mühəndislərin daha az idrak səyləri ilə daha çox şey qurmalarına imkan verməkdir. Yenidən istifadə və avtomatlaşdırıla bilən detallar ümumiyyətlə platforma qrupuna aiddir.

Platformanızı bir dəfəyə sabitləşdiririk

hesabatlılıq

Fərdi sistemlərin əsas bina bloklarında dəyişiklik etmək səlahiyyəti ilə. Bu sahələrin hər hansı birindəki bir səhv və ya zəiflik kaskad probleminə səbəb ola bilər. Mühəndis qrupunun qalan hissəsi bundan sonra təsirlənir.

Komandanın hesabatlılığı, komanda dəyişiklik etdikdə komandanın qalan hissəsinin məlumatlandırılmasını təmin etmək üçün vacibdir.

Qüsursuz yarılma hər bir üzvün dəyişiklik edərkən özünü təhlükəsiz hiss etməsi üçün bir şərtdir. Sistem üçün məsuliyyət daşıyarkən daha yaxşı bir sistem qurun. Bir dəstək modeli və əməliyyata görə məsuliyyət daha sonra platforma və SRE qrupuna aiddir.

Hm .. Yəni bu təkəri fırlatmaq hər kəsin eyni işinə sahib olmayacaq

təcrübə

Platforma qrupunun tələb etdiyi təcrübə və təcrübə şirkətin strukturundan asılı olacaqdır.

Məsələn, bəzi şirkətlərdə hər tətbiqin istismarı və istismarına nəzarət edən fəaliyyət göstərən bir SRE komandası var. Bu o deməkdir ki, dəstək modelinin yaradılması tamamilə platforma qrupunun məsuliyyəti deyil.

Təchizatçı rəhbərliyi eyni zamanda tətbiq dəstəyi qruplarına həvalə edilə bilən bir vəzifədir.

Bununla birlikdə, ümumiyyətlə, platforma komandanızda lazım olan təcrübə:

  • Konteynerlərin təşkili və konteynerləşdirilməsi
  • Bulud idarəetməsi
  • Təchizatçı rəhbərliyi
  • Boru kəməri idarəetməsi
  • DNS və CDN konfiqurasiyası
  • Server konfiqurasiyası
  • git və scm
  • İstehsal
  • Müşahidə oluna bilər (giriş qeydinin izlənməsi)
  • Əməliyyatlaşdırma (Runbooks və Destal Escalation Post Mortems Alerting)
  • Yumşaq bacarıq və insan resurslarının idarə edilməsi
  • Proqram Tərifli İnfrastruktur (kod kimi infrastruktur)
  • Digər komandalarla işləmək və rəhbərliklə danışıqlar aparmaq
  • ümumi iş axını və memarlıq idarəetməsi
  • təhlükəsizlik
  • Geliştirici təhsili və təlimatı
  • Sənədlərin hazırlanması

İdeal olaraq mühəndisləriniz domenlərlə bağlı təcrübəyə sahib olacaqlar və sonra digər sahələr haqqında yaxşı məlumat sahibi olacaqlar.

Bina təcrübəsindəki təklifim, üzvlər arasında keçid etməkdir ki, domen səviyyəsində mütəxəssislər olsun. Sonra həddindən artıq masa cütlərini köçürün və ya proqramlaşdırın. Bu ixtisar komanda quruluşuna inteqrasiya olunur.

Platforma komandasının böyük vəzifələrini nəzərə alaraq. Bu fəaliyyətlərin hamısını paralel olaraq həyata keçirmək üçün böyük bir heyət olması lazım olduğunu güman edə bilərik. Tapşırığın bir hissəsi tətbiq qrupuna həvalə edilə bilər. Bu inkişaf üçün əlavə iş deməkdir. Bu komandanı bölə bilərdik, amma düzgün işlənməsə bu daha da uyğunsuzluğa səbəb ola bilər.

Çevik qərar verə bilən çoxsaylı böyük və böyük mühəndislərlə yarı düz bir quruluşa sahib olmağınız tövsiyə olunur. Çox hərəkətli hissələri olan belə böyük bir komandaya sahib olmaq texniki rəhbərliyin yersiz olduğunu göstərir. Bununla yanaşı, platforma və həll memarları üçün bir mühəndis meneceri vacibdir.

Çözüm memarı platforma qrupunun yol xəritəsini dizayn edə bildi. Sonra mühəndis qruplarının qalan hissəsi ilə əlaqələndirin. Bu müddətdə təşkilatın ehtiyaclarını da anlaya bilərik. Və sonra hansı bacarıqlara ehtiyacımız olduğunu planlaşdırın. Nəhayət, həll memarı platformaya hansı texnologiyaların əlavə ediləcəyini seçməyə kömək edə bilər.

Texniki menecer rabitə və əlaqələrin qurulmasında kömək edə bilər. Bu, bir neçə səbəbdən vacibdir. Həqiqi bir cross-function komanda olaraq istəklərin sayı çox olacaq. İkincisi, vəzifələrin prioritetləşdirilməsi bacarıqların artırılması üçün vacib olacaqdır.

Həqiqətən də bir çox hərəkətli hissə. Ancaq düzgün yerinə yetirildiyi təqdirdə yaxşı yağlanmış bir maşın ola bilər

epiloq

Platforma komandası, yeni texnologiyaların işə salınması ilə mümkün olan yeni bir konsepsiyadır. Bunun yaxşı bir nümunəsi Kubernetlər və onların hər yerdə olmasıdır. Bu yeni komanda şirkətə imkanları asanlıqla inkişaf etdirməyə kömək edə bilər. Miqyas qrupları yeni bir aktivator komandasına sahib olmaqda çətinlik çəkirlər, belə ki komanda daha sürətli və hamar miqyas ala bilər. Bu, bu komandanın özəyinin nəyə ehtiyacı olduğu və bunun üçün hansı nou-haunun tələb olunduğu təcrübəsinə əsaslanaraq mənim şəxsi baxışımdır.

Bizimlə işləyin Condé Nast International-da bu işi yoxlayın: https://www.linkedin.com/jobs/view/839478085

Slack icmamıza qoşulun və həftəlik əsas mövzumuzu oxuyun ⬇

Bu yazı faydalı olsaydı, müəllif üçün dəstəyinizi göstərmək üçün bir neçə dəfə ap düyməsini vurun! ⬇