Amo progetti che durano una settimana, mentre i progetti che durano un anno mi spaventano. Nell'approccio agile mi è piaciuta molto la concezione di MVP e incremento; è proprio ciò che mi rappresenta: creare un pezzo funzionante, implementarlo e andare avanti.
Tuttavia, la trasformazione DevOps come viene discussa nei libri e nelle conferenze è esattamente un progetto di un anno. O di anni.
Abbiamo costruito il nostro corso di DevOps seguendo la logica di 'MVP DevOps in un sprint' e 'prontezza agli incrementi'. In termini più pratici, significa 'che il partecipante possa immediatamente implementare qualcosa al suo ritorno e beneficiarne'.
MVP DevOps: il corso fornisce strumenti per i principali processi DevOps. Non ci siamo posti l'obiettivo di esaminare e confrontare tutti i sistemi CI/CD o di approfondire l'approccio Infrastructure as Code. Offriamo un unico stack chiaro: Gitlab CI/CD, Ansible, Terraform, Packer, Molecule, Prometheus, EFK. Si può uscire dai corsi, costruire l'infrastruttura per un progetto pilota e lavorare su di essa.

Prontezza agli incrementi: ogni elemento viene fornito con molta pratica ed esempi. Si può prendere uno strumento e, seguendo i materiali didattici, implementarlo. Ad esempio, scrivere un playbook Ansible per il deployment degli ambienti di sviluppo o collegare un bot e gestire un server dal telefono. In altre parole, ottenere un risultato pratico concreto in una settimana. Anche se è infinitamente lontano dalla trasformazione DevOps dell'intera azienda, è presente, è qui, funziona e porta beneficio.
Temi di Slurm DevOps
Tema n. 1: Best practices di Git — parla da sé.
Tema n. 2: Lavorare con l'applicazione dal punto di vista dello sviluppo — l'ingegnere ha bisogno delle competenze sia dell'amministratore sia dello sviluppatore, quindi parleremo dello sviluppo agli amministratori.
Tema n. 3: Fondamenti di CI/CD
- Introduzione all'automazione CI/CD
- Fondamenti di lavoro con Gitlab CI
- Best practices con gitlab-runner
- Strumenti bash, make, gradle come parte di CI/CD e non solo
- Docker come soluzione ai problemi di CI
Tema n. 4: Gitlab CI/CD in produzione
- Concorrenza nell'esecuzione dei job
- Controllo e limitazioni dell'esecuzione: only, when
- Gestione degli artefatti
- Templati, inclusioni e microservizi: semplifichiamo il deployment
Introduciamo gli studenti ai concetti e alle idee principali di CI/CD e agli strumenti per implementarli. Alla fine, lo studente sarà in grado di scegliere autonomamente un template di design CI/CD e lo strumento di implementazione adatto.
Poi mostriamo l'implementazione di CI/CD in Gitlab, analizzando la configurazione e considerando modi avanzati di utilizzo di Gitlab CI. Alla fine, lo studente sarà in grado di configurare Gitlab CI per i propri progetti.
Rispetto al primo Slurm DevOps, abbiamo ridotto la teoria della metà (un'ora per tema), abbandonato la revisione di tutti i sistemi e mantenuto solo Gitlab CI. Ci siamo concentrati sulla pratica e abbiamo aggiunto molte best practices.
Tema n. 5: Infrastructure as Code
- IaC: approccio all'infrastruttura come codice
- Fornitori cloud come fornitori di infrastruttura
- Strumenti di inizializzazione dei sistemi, creazione di immagini (packer)
- IaC con Terraform come esempio
- Archiviazione delle configurazioni, collaborazione, automazione delle applicazioni
- Pratica nella creazione di playbook Ansible
- Idempotenza, dichiaratività
- IaC con Ansible come esempio
Abbiamo ridotto la parte teorica su UI e openstack cli e ci siamo concentrati sulla pratica.
Esamineremo due approcci IaC, utilizzando la stessa applicazione, evidenziando i vantaggi e gli svantaggi di ciascun approccio. Alla fine, lo studente comprenderà quale approccio utilizzare e sarà in grado di lavorare sia con Terraform che con Ansible.
Nel tema dedicato a Terraform esamineremo concretamente il lavoro di squadra e la gestione dello stato in un database. Durante il lavoro con i moduli, lo studente scriverà e configurerà un modulo, imparando a usarlo: riutilizzarlo, versionarlo. Aggiungeremo il lavoro con Consul, mostrando in quali casi è necessario e come utilizzarlo correttamente.
Tema n. 6: Test dell'infrastruttura
- Esploriamo perché non vengono scritti test.
- Quali tipi di test esistono in IaC?
- Analizzatori statici, sono davvero inutili?
- Unit testing IaC tramite ansible + molecule
- Test come parte di ci
- Test su steroidi, o come non aspettare 5 ore per il termine dei test di IaC
Abbiamo ridotto la parte teorica, meno racconti su Vagrant/Molecule, più pratica e test effettivi, focalizzandoci sui linters e sul loro utilizzo. Consideriamo come rendere i test più rapidi dal punto di vista di CI
Pratica includerà:
- un linter personalizzato che verifica la presenza di variabili obbligatorie per l'host a seconda del ruolo;
- aggiungeremo al CI il test solo dei ruoli che sono stati modificati, il che consente di ridurre significativamente il tempo di esecuzione dei test;
- includeremo test sugli scenari. Deployiamo l'applicazione interamente come un test di integrazione.
Tema n. 7: Monitoraggio dell'infrastruttura con Prometheus
- Come costruire un sistema di monitoraggio sano
- Il monitoraggio, come strumento per analisi, efficacia dello sviluppo e stabilità del codice, anche prima della produzione.
- Configurazione di prometheus + alertmanager + grafana
- Passiamo dal monitoraggio delle risorse al monitoraggio delle applicazioni.
Discuteremo molto sul 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 delle infrastrutture di produzione e delle applicazioni, ma anche delle build in Gitlab. Esamineremo le statistiche sui test falliti. Vedremo in pratica come apparirà il monitoraggio senza healthCheck e con esso.
Argomento n. 8. Registrazione delle applicazioni con ELK
- Panoramica su Elastic e i suoi strumenti
- ELK/Elastic Stack/x-pack — cosa sono e qual è la differenza?
- Quali problemi può risolvere ElasticSearch (ricerca, archiviazione, caratteristiche di scalabilità, flessibilità di configurazione)
- Monitoraggio dell'infrastruttura (x-pack)
- Log dei contenitori e delle applicazioni (x-pack)
- Registrazione con l'esempio della nostra applicazione
- Pratiche di lavoro con Kibana
- Open Distro for Elasticsearch di Amazon
L'argomento è stato completamente rivisitato, ed è condotto da Eduard Medvedev, molti di voi lo hanno visto nel webinar su DevOps e SRE. Spiegherà e mostrerà le migliori pratiche di lavoro con EFK usando un'applicazione didattica. Ci sarà pratica con Kibana.
Argomento 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
- Migliori e peggiori pratiche
In ChatOps è stata aggiunta la pratica di autenticazione con separazione dei diritti, conferma delle azioni da parte di un altro utente, teoria e pratica di un'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 chi è arrivato fino a qui, sconto del 15% sul corso di DevOps con il codice promozionale habrapost.
Registrazione
Sarei felice di vedervi ai Slurm!
Fonte: habr.com
