DevOps per il funzionamento e lo sviluppo - corso RUB 124.000. da Yandex Workshop, formazione 6 mesi (8 ore settimanali), Data: 6 dicembre 2023.
Miscellanea / / November 30, 2023
Attualmente lavoro con ETL, finalizzando il monitoraggio del sistema BI, sviluppando in Python e tutto questo nel cloud di Azure. Costruito CI/CD per il sistema BI, scritto test automatici dell'interfaccia utente in Selenium. Presso LANIT (fino al 2018) ha creato...
Attualmente lavoro con ETL, finalizzando il monitoraggio del sistema BI, sviluppando in Python e tutto questo nel cloud di Azure. Costruito CI/CD per il sistema BI, scritto test automatici dell'interfaccia utente in Selenium. Presso LANIT (fino al 2018) ha creato il proprio “Frankenstein” da Jenkins, Ansible, VMware, Telegram bot, Jira, bash- e Script Python per ChatOps a tutti gli effetti, in cui tutti gli aggiornamenti sia ai server che ai ticket venivano eseguiti tramite un bot in telegramma per https://gis-tek.ru. Ha anche aiutato Kubernetes a orchestrare le pagine https://мдм.моидокументы.рф. Al NIIAS (fino al 2016) ha scritto script mega-bash per aggiornare i server di spedizione delle ferrovie russe in modo che il tuo treno potesse arrivare in orario.
1) Sistemi di controllo della versione e automazione della creazione di applicazioni 15 ore
Ti ritrovi a lavorare in una startup, incontri il team e ti chiedi come sia possibile lavorare in questo modo. Se desideri sistemare le cose rapidamente, inizi a capire come funziona lo sviluppo software al giorno d'oggi e muovi i primi passi verso l'accelerazione della produzione.
- Come funziona il ciclo di vita del software?
- Sistemi di controllo della versione. Perché tutti scelgono Git?
• Organizzare il lavoro di squadra utilizzando Feature Branch Workflow.
• Organizzazione dell'archiviazione dei repository Git in Gitea. - Pendere:
• Muda (Perdita).
• Valore e flusso di valore. - Pendere:
• Strumenti di automazione per attività ripetitive.
• Framework per automatizzare l'assemblaggio di progetti.
2) Metodologie flessibili e Integrazione Continua 15 ore
La tua startup viene acquistata dal colosso informatico Krupnaya Kompaniya (KK). Il team leader del tuo team diventa la tua guida nel percorso di apprendimento di DevOps. Ma i problemi con la tua applicazione non scompaiono. Scopri che l'applicazione funziona male in un ambiente di produzione e nuove richieste per correggere i difetti vengono costantemente in fase di sviluppo. Per questo motivo, il lavoro si accumula e non si può nemmeno sognare di rilasciare nuove funzionalità e stabilità.
- Problemi DevOps:
• Pozzi funzionali.
• Spirale discendente. - Metodologie agili e cultura DevOps:
• Interazione di squadra.
• Approcci moderni. Cosa ha causato la nascita di Agile?
• Tre modalità di DevOps: ciclo di distribuzione del valore, cicli di feedback, sperimentazione e apprendimento. - Integrazione continua:
• Organizzazione della memorizzazione dei codici.
• Organizzazione dell'assemblea.
• Organizzazione dei test.
• Ottieni feedback rapidamente. - Server di integrazione continua:
• Panoramica dell'interfaccia e delle funzionalità di GitLab CI. - Misurazione della qualità e test di sicurezza del codice statico:
• Strumenti di analisi statica della qualità del codice: SonarQube, GitLab Analyser.
• Strumenti di analisi della sicurezza del codice statico: SonarQube SAST, GitLab SAST.
3) Reti e nozioni di base per lavorare su server Linux 15 ore
Incontri l'amministratore di sistema KK, che ti racconta come è strutturata la rete e come funziona tutto per lui. Durante la dimostrazione, vedi che l'amministratore è controllato molto più velocemente dai comandi e dai movimenti del cursore nella console e gli chiedi di parlarti di queste tecniche. L'amministratore ti offre di comprendere l'esempio dell'attività di trasferimento di un servizio da un vecchio server a uno nuovo, risolvendo allo stesso tempo un problema scottante.
- Nozioni di base per lavorare su server Linux, lavorare con la riga di comando.
- Sottosistema di dischi Linux.
- Diritti utente Linux.
- Nozioni di base sulla rete: problemi di connessione a un server remoto.
- Virtualizzazione:
• Hypervisor popolari.
• Macchine virtuali.
• Reti virtuali.
4) Consegna continua e distribuzione continua 20 ore
Dopo aver ricevuto un altro aggiornamento dell'applicazione sul tuo smartphone in una settimana, ti sei interessato alla frequenza con cui gli utenti ricevono gli aggiornamenti. Si è scoperto che non accadeva affatto spesso. È necessario più spesso?
- Come funziona il processo di consegna dei prodotti IT:
• Qual è il processo di consegna.
• Gestione del flusso di valore. - Sistemi di stoccaggio degli artefatti: Nexus.
- Consegna continua:
• Visualizzazione delle fasi di consegna.
• Organizzazione del processo di consegna. Conduttura di consegna. Distribuzione continua. - Metodologia dell'app a dodici fattori.
5) Infrastruttura come codice e sistemi di gestione della configurazione 20 ore
Questa è la prima volta che riscontri un problema infrastrutturale. Qualcuno ha cambiato la configurazione dei server degli sviluppatori su cui stavano eseguendo gli esperimenti, e ora i server sono così malfunzionanti che non possono più essere utilizzati.
- Backup:
• Organizzazione del backup.
• Tipi di backup.
• Rotazione dei backup. - Infrastruttura come codice: descriviamo l'infrastruttura con codice, adottando l'esperienza di sviluppo.
- Sistemi di gestione della configurazione:
• Ansible (ruoli, attività, inventario, caveau, awx).
• Familiarità con altri sistemi: Chef, Salt, Puppet.
6) DBOps: database relazionali e non relazionali 15 ore
Stai incontrando il DBA. Ricevi commenti minacciosi da parte degli utenti che il sito è lento. Empiricamente, scopri che l'ultimo aggiornamento ha rallentato notevolmente il database.
- Nozioni di base sulla teoria dei database:
• Database relazionali: PostgreSQL.
• Query SQL di base.
• Come velocizzare l'esecuzione delle query in un database: ottimizzazione, caching, crescita della capacità, indicizzazione. - Organizzazione dell'alta disponibilità del database:
• Principi DBOps.
• Migrazione del database utilizzando Flyway. - Database non relazionali: MongoDB.
7) Containerizzazione Docker e archiviazione dei dati 20 ore
Ti ritroverai tra due fuochi: da un lato ci sono gli sviluppatori per i quali tutto funziona localmente, ma per alcuni forse no; dall’altro c’è il reparto operativo, per il quale non funziona proprio nulla. Scopriamo come assicurarci che tutto sia ugualmente buono per tutti e infine lanciamo l'applicazione in produzione.
- Containerizzazione:
• Panoramica dei contenitori Linux e Docker.
• Dispositivo Docker: layer, immagini, contenitori, file Docker, Registro.
• Alternative Docker (container, Podman, LXC, CRI-O). - Archiviazione dati: lavorare con S3, MinIO vs Ceph.
- Archiviazione e trasmissione di dati sensibili: un'ottima panoramica di Vault.
8) Microservizi, bilanciamento e caching 15 ore
Ti stai preparando per il rilascio di una nuova versione dell'applicazione e vuoi tenere conto degli errori del passato, quando il tuo servizio non era in grado di gestire il traffico e restava bloccato per tre giorni. Questa volta un'azienda è venuta da te e ha chiesto che ciò non accadesse! Diventerai così immerso nel processo che introdurrai nuove interessanti funzionalità e strategie di consegna.
- Bilanciamento e memorizzazione nella cache.
- Microservizi:
• Approcci all'organizzazione dell'architettura applicativa.
• Strumenti per la gestione delle applicazioni di microservizi: Docker Compose. - Strategie di consegna e scelta di quella giusta:
• Che tipologie di utenti ci sono?
• Distribuzione blu-verde.
• Distribuzione delle Canarie.
9) Kubernetes. Distribuzione e garanzia dell'affidabilità delle applicazioni 50 ore
Crei una piattaforma di servizi per garantire un funzionamento di alta qualità dell'intero ciclo di consegna.
- Orchestrazione del contenitore:
• Esecuzione dell'applicazione su un'infrastruttura moderna.
• Perché sono necessari i sistemi di orchestrazione e come sono.
• Kubernetes: ragioni e obiettivi dello sviluppo. - Avvio di un cluster Kubernetes per test e sviluppo:
• Come ottenere Kubernetes: descrizione dei 5 principali metodi di installazione.
• Analisi di semplici comandi kubectl.
• Lavorare con l'utilità kubectl. - Architettura Kubernetes:
• Componenti principali e loro interazione: scheduler, kubelet, kube-proxy, controller manager, etcd e api server. - Entità principali di Kubernetes:
• Nodi, pode, servizi, volumi persistenti, richiesta di volume persistente.
• Manifesti Kubernetes.
• Utilizzo di kubectl a livello di connessione del cluster.
• Visualizza la configurazione di nodi, pod, segreti, ecc. - Entità Kubernetes avanzate:
• ReplicaSet, Distribuzione, DaemonSet e StatefulSet.
• Liveness, sonda Readiness + contenitori Init.
• Aggiunta su kubectl: modifica, applica, cancella, crea.
• Comunicazione di rete in un cluster. - Lavoro avanzato con l'utilità kubectl:
• Comandi kubectl aggiuntivi, flag, rappresentazione di entità Kubernetes come file YAML o JSON/YAML.
• Distribuire l'applicazione in due modi: utilizzando un comando e tramite un file YAML. - Distribuzione di applicazioni su Kubernetes:
• Distribuzione del frontend dell'applicazione.
• Distribuzione e ridistribuzione tramite ArgoCD. - Strategie di distribuzione:
• Connessione tra Kubernetes e l'app Twelve-Factor.
• Strategie di distribuzione in Kubernetes.
• Come viene implementato il meccanismo di rollback in Kubernetes. - Pratiche GitOps per lavorare con l'infrastruttura.
- Scrittura di un grafico Helm per la distribuzione dell'applicazione.
- Configurazione di ArgoCD.
- Utilizzo dei motori di template.
10) Registrazione e monitoraggio degli errori 15 ore
La tua piattaforma di servizi smette improvvisamente di funzionare.
- Registrazione e monitoraggio degli errori:
• Registri di Linux.
•Loki.
• Sentinella - Monitoraggio:
• Tipi di metriche, anomalie tipiche.
• Avvisi.
• Stack GAP (Grafana, Prometeo, Alertmanager).
• Segnali d'oro.
• Metriche a livello di applicazione. - Sistemi AWS e tracciamento distribuito.
- CALMA.
- Registrazione e monitoraggio degli errori:
D
sognatore-fkn
23.03.2022 G.
Buon servizio e un buon corso DevOps per operazioni e sviluppo
Vantaggi: piattaforma comoda, buon team, buon materiale. Svantaggi: materiale grezzo Completata metà del corso DevOps per operazioni e sviluppo. Sono entrato nel secondo set. A questo proposito il materiale teorico è umido e non mancano le imprecisioni. Ma va riconosciuto merito agli organizzatori: i problemi vengono risolti rapidamente. Le carenze vengono eliminate. Un team molto amichevole di curatori e mentori. Per metà...