Amo i progetti che durano una settimana e i progetti che durano un anno mi spaventano. Nell'agile mi è piaciuta molto la concezione di MVP e incremento, è proprio ciò che mi interessa: creare un pezzo funzionante, implementarlo e andare avanti.
Tuttavia, la trasformazione DevOps così come viene discussa nei libri e nelle conferenze è proprio un progetto che dura un anno. O anni.
Abbiamo costruito il nostro corso su DevOps nella logica di «MVP DevOps in un solo sprint» e «prontezza per gli incrementi». In parole semplici, perché «il partecipante possa immediatamente implementare qualcosa al suo ritorno e trarne beneficio».
MVP DevOps: nel corso ci sono strumenti per i principali processi DevOps. Non ci siamo posti l'obiettivo di esaminare e confrontare tutti i sistemi CI/CD o di esplorare in profondità il concetto di Infrastructure as Code. Forniamo un'unica stack chiara: Gitlab CI/CD, Ansible, Terraform e Packer, Molecule, Prometheus, EFK. Si può tornare dai corsi, costruire un'infrastruttura per un progetto pilota con il materiale di apprendimento e lavorarci sopra.

Prontezza per gli incrementi: ogni elemento viene fornito con un alto numero di pratiche e esempi. Si può prendere uno strumento e occuparsi della sua implementazione secondo i progetti di apprendimento. Ad esempio, scrivere un playbook Ansible per il rollout degli ambienti di sviluppo o collegare un bot e gestirlo server dal telefono. Cioè, si può ottenere un risultato pratico concreto in una settimana. Anche se è infinitamente lontano dalla trasformazione DevOps dell'intera azienda, esiste, è qui, funziona e porta benefici.
Temi del corso DevOps
Tema n. 1: le migliori pratiche di Git — parla da sé.
Tema n. 2: lavoro con l'applicazione dal punto di vista dello sviluppo — all'ingegnere servono competenze da amministratore e sviluppatore, quindi parliamo agli amministratori di sviluppo.
Tema n. 3: fondamenti di CI/CD
- Introduzione all'automazione CI/CD
- Fondamenti dell'utilizzo di Gitlab CI
- Le migliori pratiche con gitlab-runner
- Strumenti bash, make, gradle come parte di CI/CD e non solo
- Docker come metodo per risolvere i problemi di CI
Tema n. 4: Gitlab CI/CD in produzione
- Concorrenza durante l'esecuzione dei job
- Controllo e limitazioni di esecuzione: only, when
- Lavorare con gli artefatti
- Template, inclusioni e microservizi: semplifichiamo il deployment
Introduciamo gli studenti ai concetti e alle nozioni fondamentali di CI/CD e agli strumenti per realizzare CI/CD. Di conseguenza, gli studenti saranno in grado di scegliere autonomamente un modello di progettazione CI/CD e lo strumento di implementazione adeguato.
Successivamente, mostriamo l'implementazione di CI/CD in GitLab e analizziamo la configurazione, esaminando i modi di utilizzo avanzato di GitLab CI. Di conseguenza, lo studente sarà in grado di configurare autonomamente GitLab CI per i propri progetti.
Rispetto al primo Slurm DevOps, abbiamo ridotto la teoria della metà (un'ora per argomento), eliminato la panoramica di tutti i sistemi e mantenuto solo GitLab CI. Ci siamo concentrati sulla pratica, aggiungendo molte best practices.
Tema n. 5: Infrastructure as Code
- IaC: un approccio all'infrastruttura come codice
- Fornitori cloud come fornitori di infrastruttura
- Strumenti di inizializzazione dei sistemi, creazione di immagini (packer)
- IaC tramite l'esempio di Terraform
- Archiviazione delle configurazioni, collaborazione, automazione delle applicazioni
- Pratica di creazione di playbook Ansible
- Idempotenza, dichiaratività
- IaC tramite l'esempio di Ansible
Abbiamo ridotto la parte teorica su UI e openstack cli e ci siamo concentrati sulla pratica.
Esamineremo due approcci IaC, utilizzando la stessa applicazione, mostrando i vantaggi e gli svantaggi di ciascun approccio. Di conseguenza, lo studente comprenderà quale approccio applicare e sarà in grado di lavorare sia con Terraform che con Ansible.
Nel tema su Terraform, esamineremo in pratica il lavoro di squadra e la gestione dello stato in un database. Nella lavorazione con i moduli, lo studente scriverà e configurerà autonomamente un modulo, imparando a lavorarci: riutilizzare e versionare. Aggiungeremo il lavoro con Consul, mostrando in quali casi è necessario e come utilizzarlo correttamente.
Tema n. 6: Testing dell'infrastruttura
- Scopriamo perché non si scrivono test?
- Quali esistono test in IaC?
- Analizzatori statici, sono così inutili?
- Unit test IaC con ansible + molecule come esempio
- Testing come parte di CI
- Test su steroidi o come non aspettare 5 ore per la conclusione dei test per IaC
Abbiamo ridotto la parte teorica, parlando di meno su Vagrant/Molecule, e abbiamo aumentato la pratica e il testing diretto, focalizzandoci sui linters e sul loro utilizzo. Valutiamo dal punto di vista di CI
come rendere il testing più veloce. In pratica ci sarà:
- un linter personalizzato che verifica la presenza di variabili obbligatorie per l'host a seconda del ruolo;
- aggiungiamo al CI il testing solo dei ruoli che sono cambiati, riducendo notevolmente il tempo di esecuzione dei test;
- aggiungiamo il testing degli scenari. Distribuiamo completamente l'applicazione come test integrativo.
Tema n. 7: Monitoraggio dell'infrastruttura con Prometheus
- Come costruire un sistema di monitoraggio sano
- Monitoraggio, come strumento per l'analisi, l'efficacia dello sviluppo e la stabilità del codice, anche prima del rilascio
- Configurazione di prometheus + alertmanager + grafana
- Passiamo dal monitoraggio delle risorse al monitoraggio delle applicazioni
Parleremo a lungo del monitoraggio dei microservizi: ID delle richieste, strumento di monitoraggio API. Ci saranno molte best practices e tanto lavoro autonomo.
Scriveremo il nostro esportatore. Configureremo il monitoraggio non solo dell'infrastruttura e dell'applicazione di produzione, ma anche delle build in GitLab. Vedremo le statistiche sui test falliti. Vedremo praticamente come apparirà il monitoraggio senza healthCheck e con esso.
Tema n° 8. Logging dell'applicazione con ELK
- Panoramica su Elastic e i suoi strumenti
- ELK/Elastic Stack/x-pack — cosa è cosa e qual è la differenza?
- Quali compiti possono essere risolti con ElasticSearch (ricerca, archiviazione, peculiarità della scalabilità, flessibilità nella configurazione)
- Monitoraggio dell'infrastruttura (x-pack)
- Log dei container e delle applicazioni (x-pack)
- Logging tramite il nostro esempio di applicazione
- Pratiche di lavoro con Kibana
- Open Distro for Elasticsearch di Amazon
Il tema è stato completamente rielaborato, è guidato da Eduard Medvedev, molti l'hanno visto nel webinar su DevOps e SRE. Presenterà e mostrerà le migliori pratiche di lavoro con EFK utilizzando un esempio di applicazione didattica. Ci sarà pratica con Kibana.
Tema n° 9: Automazione dell'infrastruttura con ChatOps
- DevOps e ChatOps
- ChatOps: punti di forza
- Slack e alternative
- Bot per ChatOps
- Hubot e alternative
- Sicurezza
- Test
- Le migliori e le peggiori pratiche
In ChatOps abbiamo introdotto la pratica dell'autenticazione con separazione dei diritti, conferma delle azioni da un altro utente, teoria e pratica dell'alternativa a Slack sotto forma di Mattermost, teoria dei test unitari e di integrazione per il bot.
Il Slurm DevOps inizia il 30 gennaio. Prezzo — 30.000.
Per coloro che sono arrivati fin qui, sconto del 15% sul corso di DevOps con il codice promozionale habrapost.
Registrazione
Sarei felice di vedervi ai Slurm!
Fonte: habr.com
