Îmi plac proiectele de o săptămână și mă sperie cele de un an. În metodologiile Agile, mi-a plăcut foarte mult conceptul de MVP și de incrementare, este exact pe stilul meu: să creez o parte funcțională, să o implementez și să mă duc mai departe.
În schimb, transformarea DevOps, așa cum este discutată în cărți și la conferințe, este exact un proiect de un an. Sau de ani.
Am construit cursul nostru de DevOps în baza paradigmei „MVP DevOps într-un sprint” și „pregătirea pentru incrementare”. Așadar, pe scurt, „astfel încât participantul să poată implementa imediat ceva la întoarcerea sa și să obțină beneficii”.
MVP DevOps: cursul include instrumente pentru procesele de bază DevOps. Nu ne-am propus să analizăm și să comparăm toate sistemele CI/CD sau să aprofundăm abordarea Infrastructure as Code. Oferim un singur stivă clară: Gitlab CI/CD, Ansible, Terraform, Packer, Molecule, Prometheus, EFK. Se poate veni după cursuri, se poate construi infrastructura pentru un proiect pilot din materialele didactice și se poate lucra în ea.

Pregătirea pentru incrementare: fiecare element îl oferim cu multă practică și exemple. Se poate lua un instrument și, folosind planuri de studiu, se poate ocupa de implementarea acestuia. De exemplu, să scrieți un playbook Ansible pentru desfășurarea mediilor de dezvoltare sau să conectați un bot și să administrați serverul de pe telefon. Asta înseamnă că, în decurs de o săptămână, se poate obține un rezultat practic concret. Chiar dacă este infinit departe de transformarea DevOps a întregii companii, este acolo, este aici, funcționează și oferă beneficii.
Temele Scurm DevOps
Tema Nr. 1: Cele mai bune practici Git — vorbește de la sine.
Tema Nr. 2: Lucrul cu aplicația din perspectiva dezvoltării — inginerului îi trebuie competențe de administrator și dezvoltator, așa că le explicăm administratorilor despre dezvoltare.
Tema Nr. 3: Noțiunile de bază CI/CD
- Introducere în automatizarea CI/CD
- Bazele lucrului cu Gitlab CI
- Cele mai bune practici cu gitlab-runner
- Instrumentele bash, make, gradle ca parte a CI/CD și nu numai
- Docker ca mod de a rezolva probleme CI
Tema Nr. 4: Gitlab CI/CD în producție
- Concurența la lansarea job-ului
- Controlul și limitările execuției: only, when
- Lucrul cu artefactele
- Templaturile, includerile și microserviciile: simplificăm desfășurarea
Îi familiarizăm pe studenți cu conceptele și noțiunile de bază CI/CD și cu instrumentele pentru implementarea CI/CD. Ca rezultat, studentul va putea să aleagă singur un șablon de proiectare CI/CD și instrumentul adecvat pentru implementare.
Apoi, vom prezenta implementarea CI/CD în Gitlab și vom analiza configurarea, examinând modurile avansate de utilizare a Gitlab CI. Ca rezultat, studentul va putea să configureze singur Gitlab CI pentru propriile proiecte.
Comparativ cu prima versiune a Slurm-ului DevOps, am redus teoria la jumătate (o oră pe subiect), am renunțat la revizuirea tuturor sistemelor și ne-am concentrat doar pe Gitlab CI. Ne-am axat pe practică, adăugând multe best practices.
Tema nr. 5: Infrastructure as Code
- IaC: abordarea infrastructurii ca pe un cod
- Furnizorii de cloud ca furnizori de infrastructură
- Instrumente de inițializare a sistemelor, construirea imaginilor (packer)
- IaC folosind Terraform
- Stocarea configurațiilor, colaborarea, automatizarea aplicațiilor
- Practică în crearea playbook-urilor Ansible
- Idempotentă, declarație
- IaC folosind Ansible
Am redus partea teoretică referitoare la UI și openstack cli, concentrându-ne pe practică.
Vom analiza două abordări IaC, folosind aceeași aplicație, arătând avantaje și dezavantaje ale fiecărei abordări. Ca rezultat, studentul va înțelege unde să aplice fiecare abordare, și va putea lucra atât cu Terraform, cât și cu Ansible.
În tema referitoare la Terraform, vom analiza practic munca în echipă și stocarea stării într-o bază de date. În colaborarea cu module, studentul va scrie și configura un modul, învățând cum să lucreze cu acesta: reutilizare, versionare. Vom adăuga și lucrul cu Consul, demonstrând în ce situații este necesar și cum să-l utilizăm corect.
Tema nr. 6: Testarea infrastructurii
- Explorăm de ce nu se scriu teste?
- Ce tipuri de teste există în IaC?
- Analizatori statici, sunt ei chiar atât de inutili?
- Testare unitate IaC prin exemplul ansible + molecule
- Testarea, ca parte a ci
- Teste pe steroizi sau cum să nu așteptăm 5 ore până la finalizarea testelor pentru IaC
Am redus partea teoretică, mai puține povești despre Vagrant/Molecule, mai multă practică și testare directă, cu un accent pe linters și lucrul cu acestea. Privim din perspectiva CI
cum să facem testarea mai rapidă. În practică, va fi:
- un linter personalizat, care verifică prezența variabilelor obligatorii pentru gazdă în funcție de rol;
- adăugăm în CI testarea doar acelor roluri care s-au modificat, ceea ce permite reducerea semnificativă a timpului de execuție al testelor;
- adăugăm testarea scenariilor. Desfășurăm aplicația în întregime, ca test de integrare.
Tema nr. 7: Monitorizarea infrastructurii cu Prometheus
- Cum să construiești un sistem de monitorizare sănătos
- Monitorizarea, ca instrument pentru analiza, eficiența dezvoltării și stabilitatea codului, chiar înainte de producție
- Configurarea prometheus + alertmanager + grafana
- Trecem de la monitorizarea resurselor, la monitorizarea aplicațiilor
Vom vorbim mult despre monitorizarea microservicelor: ID-uri de requesturi, unelte pentru monitorizarea API-ului. Vor fi multe cele mai bune practici și multă muncă independentă.
Vom scrie propriul nostru exporter. Vom configura monitorizarea nu doar a infrastructurii de producție și a aplicațiilor, ci și a build-urilor din Gitlab. Vom analiza statisticile testelor ratate. Vom vedea practic cum va arăta monitorizarea fără healthCheck și cu el.
Tema №8. Înregistrarea aplicației cu ELK
- Prezentare generală Elastic și instrumentele sale
- ELK/Elastic Stack/x-pack — ce este ce și care este diferența?
- Ce probleme pot fi rezolvate cu ElasticSearch (căutare, stocare, caracteristici de scalare, flexibilitate în configurare)
- Monitorizarea infrastructurii (x-pack)
- Jurnalele containerelor și aplicațiilor (x-pack)
- Înregistrarea pe baza aplicației noastre
- Practicile de lucru cu Kibana
- Open Distro for Elasticsearch de la Amazon
Tema a fost complet reworked, este condusă de Eduard Medvedev, mulți l-au văzut la webinarul despre DevOps și SRE. El va povesti și va arăta cele mai bune practici de lucru cu EFK utilizând un exemplu de aplicație educațională. Vor fi practici cu Kibana.
Tema №9: Automatizarea infrastructurii cu ChatOps
- DevOps și ChatOps
- ChatOps: puncte forte
- Slack și alternativele
- Boti pentru ChatOps
- Hubot și alternativele
- Securitate
- Testare
- Cele mai bune și cele mai proaste practici
În ChatOps s-au adăugat practica autentificării cu separarea drepturilor, confirmarea acțiunilor de către un alt utilizator, teoria și practica alternativei Slack sub formă de Mattermost, teoria testelor unitare și de integrare pentru bot.
Slurm DevOps începe pe 30 ianuarie. Prețul — 30.000.
Pentru cei care au citit până la capăt, reducere de 15% la cursul de DevOps cu codul promoțional habrapost.
Înregistrare
Voi fi încântat să vă văd la Slurm-uri!
Sursa: habr.com
