Diario di bordo GARR Academy

Giorno 1: shell, introduzione alle reti, python3

Argomenti

  • presentazioni
  • shell: principali comandi shell Linux e semplici esempi da provare.
  • introduzione alle reti: modello TCP/IP, principali protocolli sui vari livelli, indirizzi IP, subnetting, NAT e DNS.
  • introduzione a Python3: costrutti base (if, for, while…), variabili, esercizi semplici introduttivi ed esercizio con le classi lasciato come compito per il giorno seguente.

Cose interessanti

  • CTRL+D sostituisce exit
  • cp -p preserva i permessi
  • apt purge toglie tutto, apt remove solo i pacchetti
  • sudo -u: esegue un comando dall’utente specificato
  • tail -f: se un’altra applicazione sta scrivendo su quel file “rimane in ascolto” (stile live changing)
  • tail -n: numero di righe in un file
  • bmon: monitor di rete
  • nell’ethernet il CAT indica la categoria di cavo. Man mano che si avanza di numerazione, aumenta sia lo spessore del cavo che la quantita di dati trasmessi
  • routing: rip → dv, ogni router comunica la propria tabella di routing ogni 30 secondi agli altri router
  • ospf: tutti mandano a tutti
  • bgp: router di frontiera

Giorno 2: git, jinja, vagrant, json e yaml

Argomenti

  • Git: introduzione a Git, creazione chiave SSH, git push, commit, add, merge, branch, checkout

  • Jinja

  • Vagrant

  • reverse proxy: proxy non in maniera attiva

  • API: cosa sono, metodi HTTP

  • JSON e YAML: cosa sono, come funzionano

  • JSON: supporta i tipi: string, number, boolean

    • json.loads(obj, **) → trasforma una stringa in un dizionario python
    • json.dumps(obj, **) → viceversa
    • json.load(fp, **) → carica da file
    • json.dump(fp, **) → salva in file
  • esercizio con i JSON ed Harry Potter

Cose interessanti

  • nel layout italiano il backtick puo essere inserito, non devo cambiare layout di tastiera
    • git commit --amend sovrascrive il commit che era pronto per essere pushato
    • vagrant serve per parametrizzare le VM e Jinja serve per scrivere templating html

Giorno 3: Ansible

Argomenti

  • Ansible: principi base, comandi principali, playbook, esercizio con playbook (recipe)

  • Ansible advanced: cicli, loop, crittazione

  • yaml

  • File hosts

  • Vagrant: due host con Vagrantfile

    • ripassino sull’SSH

Cose interessanti

  • nel file hosts possiamo anche usare un alias, basta definirlo in una colonna separata - se pinghi l’host con alias o seconda colonna, e host connesso, pinga
  • in Ansible, quando fai gli inventory sugli ini, puoi usare una forma contratta tipo: [stage\[1:2\].garr.academy]

Giorno 4: Ansible Advanced

Argomenti

  • Ansible Continuazione su Ansible: roles, collections, e Galaxy

Giorno 5: Container e Docker

Argomenti

  • Devops, cosa sono?: Prima si aveva la concezione che sistemisti e developers fossero indipendenti tra loro, invece adesso si tende ad accorpare le due cose.

  • Monoliti vs Microservizi: I primi sono piu difficili da manutenere ma semplici da sviluppare.

  • Container

  • Docker

  • Esercizio con Docker: pullare e pushare, installare applicazioni in un container

Giorno 6: sicurezza sul lavoro

Argomenti

Corso di sicurezza sul lavoro.

Giorno 7: formatemp, TFR

Argomenti

È venuto un rappresentante della CGIL che ci ha spiegato diverse cose comode: TFR, dei corsi di formazione Formatemp, della riqualificazione degli impiegati in caso di disoccupazione.

Giorno 8: Kubernetes, Minikube, ChaosMonkey

Argomenti

Oggi abbiamo visto Kubernetes e un orchestratore.

Deploy: tutta quella serie di attività che ci permettono di rendere la nostra applicazione disponibile con il pubblico

Un orchestratore automatizza alcuni processi, come il deploy, la scalabilità, il networking ecc

Kubernetes è un orchestratore di container, uno dei più famosi in ambito cloud.

Giorno 9: Monitoring

Argomenti

Giorno 10: public speaking

Argomenti

Oggi abbiamo visto i principi della buona comunicazione e public speaking.

Giorno 12: log, Zabbix, measurement

Argomenti

Log: timestamp

  • severity (warn, danger, info)
  • unit: messaggio
  • chi fa cosa

Measurement: “Se non lo misuri, non esiste”

Durante i test si usa pytest.

Abbiamo parlato di https://refactoring.guru/ e dei design pattern e antipattern, e poi ci siamo divertiti un sacco a creare e commentare dei codici complicati da noi (gruppi).

È stata una delle cose più divertenti fatte fino ad adesso.

Giorno 13: CI/CD, certificati

Argomenti

  • CD
  • certificati

Cose interessanti

Ci siamo creati un certificato e ce lo siamo firmati da soli, e poi abbiamo fatto in modo che cognome.com usasse un certificato.

obama medals himself