Hədəf auditoriyası
Siz karyeranızı daha mükəmməl DevOps modelinə yönəltmək istəyən bir inkişaf etdiricisizmi? Siz klassik Ops mühəndisisiniz və DevOps-un nə demək olduğunu öyrənmək istəyirsiniz? Yoxsa siz nə birisiniz, nə də o biri, İT sahəsində çalışdıqdan sonra işi dəyişmək istəyirsiniz, ancaq haradan başlayacağınızı bilmirəm?
Əgər belədirsə, altı ay ərzində orta səviyyəli DevOps mühəndisi olmağın yollarını öyrənmək üçün oxuyun! Nəhayət, əgər siz artıq bir neçə ildir ki, DevOps ilə məşğulsunuzsa, bu məqalələr silsiləsindən bir çox faydalı məlumat əldə edəcək və inteqrasiya və avtomatlaşdırma sahəsinin indiki vəziyyətini və hara yönəldiyini öyrənəcəksiniz.

Bu nədir?
Birincisi, DevOps nədir? Siz müəyyən tərifləri axtarış edərək bütün bu söz mətni içindən keçə bilərsiniz, lakin bilmək lazımdır ki, təriflərin əksəriyyəti sadəcə şəkildə ifadə edilmiş söz qarışığıdır. Ona görə də sizin üçün bu təriflərin xülasəsini təqdim edirəm: DevOps, proqram təminatının çatdırılması metodu olub, burada narahatlıq və məsuliyyət bütün iştirak edənlər arasında bölüşdürülür. Və bu qədər.
Yaxşı, bəs bu qısaltma nə deməkdir? Bu, adətən, proqram təminatı yaradan İnkişaf etdiricilərin (Developers) işlərinin reallaşmasında stimullarının Əməliyyat (Operations) adamlardan əhəmiyyətli dərəcədə fərqli olduğunu nəzərdə tutur. Məsələn, inkişaf etdirici kimi, mən mümkün qədər tez və mümkün qədər yeni funksiyalar yaratmaq istəyirəm. Nəticədə, müştərilər bunu tələb edirlər! Lakin əgər mən Ops adamı isem, onda mən yeni funksiyaların sayını minimumda saxlamaq istəyirəm, çünki hər yeni funksiyadır dəyişiklikdir və hər hansı bir dəyişiklik arızalarla nəticələnə bilər. Beləliklə, bu stimullar arasındakı ziddiyyət nəticəsində DevOps yaranır.
DevOps, inkişaf etmə və əməliyyatları (inteqrasiya və avtomatlaşdırma) bir qrupa birləşdirir. Fikir ondan ibarətdir ki, indi bir qrup proqram təminatının müştəriyə yönəlmiş yaradılması, yayılması və gəlir əldə etməsinə dair narahatlığı və məsuliyyəti (və ehtimal ki, mükafatı) paylaşacaq.
Püritlər sizə DevOps mühəndisi deyə bir şeyin olmadığını söyləyəcəklər. "DevOps mədəniyyəti, rol deyil" - deyəcəklər. Əlbəttə ki, texniki cəhətdən haqlıdırlar, amma tez-tez olduğu kimi, bu termin öz ilkin mənasından çıxmışdır. DevOps mühəndisi, əslində, "sistem mühəndisi 2.0" kimidir. Başqa sözlə, proqram təminatının inkişaf dövrünü başa düşən və klassik əməliyyat məsələlərini həll etmək üçün proqram təminatının inkişafına dair alətlər və proseslər yaradan şəxsdir.

DevOps, nəticədə, kodu inkişaf etdiricinin noutbukundan götürərək son məhsulun istifadəsindən gəlir əldə edən rəqəmsal boru kəmərləri yaratmağı ifadə edir, söhbət ondadır. Diqqət yetirin ki, DevOps karyerasının seçimi kifayət qədər yüksək maliyyə mükafatları ilə əvəz olunur və demək olar ki, hər bir şirkət "DevOps edir" və ya buna iddia edir. Bu şirkətlər harada yerləşirsə, DevOps vəzifələri üçün ümumi iş imkanları bir qədər yüksəkdir və bu, uzun illər ərzində əyləncəli və mənalı məşğulluq deməkdir.
Lakin "DevOps komandası" və ya "DevOps şöbəsi" işə götürən şirkətlərlə ehtiyatlı olun. Düzü, belə şeylər olmamalıdır, çünki nəticə etibarilə, DevOps, hələ də mədəniyyət və proqram təminatını çatdırma üsuludur, yeni bir komanda yığmaq və ya şık bir adla yeni bir şöbə yaratmaq deyil.
İstisna haqqında xəbərdarlıq
İndi bir dəqiqəlik "Cool-Aid" stəkanını bir kənara qoyun və düşünün. Siz "DevOps-un kiçik mühəndisləri olmaz" deyiminin köhnə bir atalar sözünü eşitmisinizmi? Yoxdursa, bilin ki, bu, Reddit və StackOverflow-da populyar bir tropdur. Amma bunun mənası nədir?
Sadə dillə desək, bu ifadə, həqiqətən təsirli bir Senior DevOps praktiki olmaq üçün bir çox illik təcrübə ilə yanaşı alətləri düzgün başa düşməyin tələb olunduğunu bildirir. Təəssüf ki, burada məqsədə çatmağın daha qısa yolu yoxdur. Bu, sistemi aldatmağı cəhd etməyə bənzəmir - düşünmürəm ki, bir neçə aylıq təcrübə ilə həqiqətən senior DevOps mühəndisi kimi davranmaq mümkündür. Sürətlə dəyişən alətlər və metodologiyalar üzərində aydın bir anlayışa sahib olmaq, illərlə təcrübə tələb edir və bundan qaçınmaq mümkün deyil. Lakin əksər şirkətlərin istifadə etdiyi hər hansı bir şəkildə razılaşmaq (modern, əgər istəyirsinizsə) üçün alətlərin və anlayışların demək olar ki, uyğun bir menyusu mövcuddur və məhz bu barədə danışılacaq.
Yenə də, alətlər bacarıqlardan fərqlidir, buna görə də alətləri öyrənərkən bacarıqlarınızı (sorğular, şəbəkə qurma, yazılı ünsiyyət, problem aradan qaldırma və s.) gözardı etmədiyinizə əmin olun. Əsas odur ki, diqqətdən qaçırmadığınız şey, tamamilə avtomatlaşdırılmış bir rəqəmsal konveyer yaratmağın bir yolu - fikirləri alaraq, gəlir gətirən kod parçalarına çevirməkdir. Bu, bu məqalədən çıxardığım yeganə və ən vacib nəticədir!
Nəhayət, nə vaxt başlayıram?
Aşağıda "DevOps əsas bilikləri" haqqında bir yol xəritəsi var. Orada göstərilən hər şeyi mənimsədikdən sonra DevOps mühəndisi olaraq özünüzü sağlam şəkildə adlandıra bilərsiniz! Və ya “DevOps” adı sizin üçün uyğun deyilsə, bulud mühəndisi adlandırın.

Bu xəritə, mənim (və yəqin ki, bu sahədə çalışan bir çox insanın) bilmək lazım olanları göstərir. Ancaq bu, sadəcə bir fikirdir və əlbəttə ki, buna etiraz edənlər olacaq. Bu, tamamdır! Müxtəlifliyi arzulamırıq, bir binanın gerçək şəkildə qurulması üçün dayanıqlı bir təməl axtarırıq.
Bu yolda tədricən, mərhələ-mərhələ irəliləməlisiniz. Başlamaq (və davam etməli!) üçün əhəmiyyətli olan əsası öyrənməliyik, əvvəlcə mavi rənglə işarələnmiş elementləri - Linux, Python və AWS-i öyrənməlisiniz. Sonra, əgər vaxtınız və ya bazar tələbi imkan verəcəksə, bənövşəyi şeylərlə - Golang və Google Cloud ilə məşğul olun.
Düzü, əsas üst təbəqə, sonsuza qədər öyrənməli olacağınız bir şeydir. Linux əməliyyat sistemi olduqca mürəkkəbdir və onun öyrənilməsi illər çəkir. Python, yeniliklərdən xəbərdar olmaq üçün davamlı praktikaya ehtiyac duyur. AWS o qədər sürətlə inkişaf edir ki, bu gün bildiyiniz məlumatların bir il sonra yalnız bilik portfelinin bir hissəsi olacağına inanmalısınız. Əsasları öyrəndikdən sonra real bacarıq dəstinə keçməyin. Qeyd edim ki, yalnız 6 mavi sütun var (Konfiqurasiya, Versiya, Paketləmə, Yayım, Başlama, İzləmə), hər biri bir aylıq öyrənmə üçün.

Təbii ki, altı aylıq konveyerimizdə test mərhələsinin olmamasını qeyd etmisiniz. Onu yol xəritəsinə daxil etməməyi məqsədli şəkildə seçdim, çünki modul yazmaq, inteqrasiya və qəbul testlərini keçmək çətindir və adətən bunu developer-lərin öhdəsinə qoyurlar. "Test" mərhələsinin atlanmasının səbəbi, bu yol xəritəsinin məqsədinin əsas bacarıqları və alətləri mümkün qədər tez bir zamanda öyrənmək olmasıdır. Müəllifin fikrincə, test təcrübəsinin olmaması DevOps-dan düzgün istifadə üçün yalnız kiçik bir maneədir.
Bundan əlavə, unutmayın ki, burada çox sayda əlaqəsiz texniki lüzumsuzluqları öyrənmirik, bizim məqsədimiz bu alətlərin bir araya gəldiyi və aydın bir hekayə yaratdığı anlayışdır. Bu hekayə prosesin ardıcıl avtomatlaşmasıdır — bitlərin montaj xəttində hərəkət etdiyi rəqəmsal konveyer. Alətləri öyrənmək və davamlı dayanmamaq istəyirsiniz, düzdür? DevOps alətləri sürətlə dəyişir, lakin anlayışlar daha az tez-tez dəyişir. Buna görə də alətləri daha yüksək səviyyəli anlayışlara öyrədici proxy kimi istifadə etməyə çalışmalısınız.
Yaxşı, gəlin bir az dərinliyə enək!
Fundamental biliklər
Foundation yazısı ilə üst pilləkəndə, hər DevOps mühəndisinin uyması gərəkən bacarıqlar var. Bu bacarıqlar sektordakı üç "stolu" - əməliyyat sistemi, proqramlaşdırma dili və ictimai buludla yaxşı tanışlığı əhatə edir. Bu məsələlər qısa bir zamanda tanış oluna biləcək şeylər deyil. Bu bacarıqları daima inkişaf etdirmək və onların üzərində ustalığı artırmaq gərəkdir ki, siz sektorda ön sıralarda olasınız və ətrafınızdakı peşə mühitini aktual saxlayasınız. Gəlin bunları tədricən araşdıraq.
Linux, hər şeyin işlədiyi yerdir. Tamamilə Microsoft ekosistemində qalıb, mükəmməl DevOps praktikçisi ola bilərsizmi? Əlbəttə ki, ola bilərsiniz! Sadəcə Linux istifadə etməyi tələb edən bir qanun yoxdur. Lakin unutmayın ki, Linux-u Windows-da yenidən etmək mümkün olsa da, bu, daha çətin olur və daha az funksionallıq təqdim edir. Hazırda, Linux bilikləri olmadan, həqiqi bir DevOps mütəxəssisi olmağın mümkün olmadığını düşünmək olar, beləliklə Linux-u öyrənməlisiniz.
Düzü, bunu etməyin ən yaxşı yolu, sadəcə evdə Linux (Fedora ya da Ubuntu) quraşdırmaqdır və ondan mümkün qədər çox istifadə etməkdir. Təbii ki, bir çox şeyi pozacaqsınız, iş proseslərində ilişib qalacaqsınız, hər şeyi düzəltmək məcburiyyətində qalacaqsınız, amma Linux-u öyrənəcəksiniz!

Yeri gəlmişkən, Şimali Amerikada RedHat variantları daha yaygındır, buna görə də Fedora ya da CentOS ilə başlamaq məsləhətdir. KDE ya da Gnome edition alıb-almamağı düşünürsünüzsə, KDE seçin. Bu, Linus Torvalds-ın öz istifadə etdiyi mühitdir.
Bu günlərdə Python dominat bir arxa tərəf dilidir. Onunla işə başlamaq asandır, geniş istifadə olunur. Python süni intellekt və maşın öyrənməsi sahəsində geniş yayılmışdır, buna görə də, gələcəkdə daha bir məşhur sahəyə keçmək istəsəniz, tam hazır olacaqsınız.

Amazon Web Services: yenə də, necə işlədiyini dərk etmədən bir DevOps peşəkarı olmaq mümkün deyil. Və əgər siz bu barədə daha çox öyrənmək istəyirsinizsə, Amazon Web Services-i araşdırın. Bu, xidmətlərin bu sahəsində aparıcı bir oyunçudur və geniş bir iş alətləri dəstini təqdim edir.
Bunun əvəzinə Google Cloud və ya Azure ilə başlamaq olarmı? Əlbəttə! Ancaq son maliyyə böhranını nəzərə alaraq, AWS ən təhlükəsiz seçimdir, ən azı 2018-ci ildə, çünki sərbəst hesab açmağa imkan verir və bulud xidmətlərinin imkanlarını öyrənməyə başlamaq üçün əlverişlidir. Üstəlik, AWS konsolu istifadəçiyə seçim etmək üçün sadə və anlaşılan bir menyu təqdim edir. Yaxşı xəbər isə odur ki, bunlar üçün siz Amazon-un bütün texnologiyalarını bilmək lazım deyil.

Aşağıdakıları öyrənməyə başlayın: VPC, EC2, IAM, S3, CloudWatch, ELB (EC2 altında Elastik Yük Balanslama) və Təhlükəsizlik Qrupu. Bu alətlər işə başlamaq üçün kifayətdir və hər bir müasir bulud müəssisəsi bu vasitələri fəal şəkildə istifadə edir. AWS-in öz tədris saytı işə başlamaq üçün yaxşı bir yerdir.
Mən sizə gündəlik 20-30 dəqiqə Python dilini, Linux əməliyyat sistemini və AWS bulud xidmətini öyrənməyə və tətbiq etməyə ayırmağı tövsiyə edirəm, eləcə də öyrənməli olduğunuz digər şeylər. Ümumilikdə, həftədə 5 dəfə gündə bir saat sərf etməyi kifayət qədər hesab edirəm ki, DevOps sahəsində baş verən prosesləri 6 ay və ya daha az müddətdə anlamaq üçün. Ümumilikdə 6 əsas komponent var, hər biri bir aylıq öyrənməyə qarşılıq gəlir. Bunlar sizin əsas biliklərinizi qazanmağınız üçün lazım olacaq.
Növbəti məqalələrdə mürəkkəbliyin növbəti səviyyəsini müzakirə edəcəyik: proqram təminatının tamamilə avtomatlaşdırılması, versiyalaşma, paketləşdirilməsi, yayılması, işə salınması və monitorinqi.
Davamı çox keçməyəcək…
Bir az reklam 🙂
Bizimlə qaldığınız üçün təşəkkür edirik. Bizim məqalələrimizi bəyənirsiniz? Daha maraqlı materiallar görmək istəyirsiniz? Bizi dəstəkləyin, sifariş verərək və ya tanışlarınıza tövsiyə edərək. , Sizin üçün icad etdiyimiz bənzərsiz entry-level serverlərin analoqu: (RAID1 və RAID10 ilə variantlar, 24 nüvəyə qədər və 40GB DDR4-a qədər mövcuddur).
Dell R730xd, Amsterdamdakı Equinix Tier IV data mərkəzində iki dəfə ucuz? Yalnız bizdə Niderlandda! Dell R420 — 2x E5-2430 2.2GHz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — 99 $-dan! Bunun haqqında oxuyun
Mənbə: habr.com
