È meglio una gazza funzionante in DevOps per 3 giorni piuttosto che una bellissima gru in un lontano futuro

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.

È meglio una gazza funzionante in DevOps per 3 giorni piuttosto che una bellissima gru in un lontano futuro

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 qui

Sarei felice di vedervi ai Slurm!

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster