Programma del corso DO080 Deploying Containerized Applications Technical Overview

Cap.1 – Overview of Container Technology

  • Overview della differenza tra container e VM
  • Descrizione dei problemi attuali in fase ad esempio di sviluppo, librerie condivise, diverse versioni di application server, diversi runtime.
  • Descrizione dei problemi che si vanno a risolvere con un approccio a container (librerie condivise, footprint di risorse, segregazione)
  • portabilità semplice da un ambiente all’altro un’applicazione containerizzata, grazie al disaccoppiamento con l’host.
  • Differenze tra approccio tradizionale e approccio container

Cap.2 – Overview of Container Architecture

  • Descrizione dei container, con un piccolo accenno alla gestione in kernel space dei namespace, cgroups, SECCOMP, SELinux.
  • Legenda dei termini utilizzati, container, immagini, repository
  • Cenni su Red Hat Container Catalog, Quay, Docker Hub
  • Introduzione a Podman, OCI, differenza con docker
  • Podman e registry, immagini e containers

Cap.3 – Overview of Kubernetes and Openshift

  • Gestione manuale dei containers
  • Perché è necessario un orchestratore
  • Limiti delle risorse, autoscaling in base al traffico
  • Reagire tempestivamente in caso di errori (health checks)
  • Accenno a Blu/Green deployment e A/B testing
  • Kubernetes (Orchestration, Scheduling e Isolation)
  • Accenno agli Operators
  • Openshift

Cap.4 – Provisioning a Containerized Database Server

  • Dimostrazione con podman (search, pull)
  • Sintassi del nome delle immagini
  • Podman run, Entrypoint, -d, -it, -e
  • Dimostrazione mysql container (exec -it)

Cap.5 – Building Custom Container Images with Dockerfiles

  • Breve introduzione ai Dockerfile 
  • Differenza tra COPY e ADD
  • CMD e ENTRYPOINT
  • Layers
  • Podman build
  • Dimostrazione creazione Dockerfile
  • Portforward

Cap.6 – Creating Basic Kubernetes and Openshift Resources

  • Introduzione ai Pod
  • Nodi master, worker, infra
  • Services, PV, PVC,CM, Secrets, 
  • Openshift resources (DC, BC, Routes)
  • CoreOS
  • Operators
  • Oc utility
  • New-app, get, describe, delete, exec, export, create, edit
  • Dimostrazione con oc (creazione project e applicazione)

Cap.7 – Creating Applications with the Source-to-Image Facility

  • Processo S2I
  • Openshift per developer 
  • Benefit: patching, speed, efficient
  • Image Streams, breve accenno a come gestire aggiornamenti delle app a partire dall’aggiornamento di una immagine monitorata dall ’imagestream
  • BuildConfig VS DeploymentConfig – Rollout automatici e trigger sulla base di rebuild del codice
  • Dimostrazione S2I con:
    • Applicazione  da codice
    • Esposizione service + route
    • Modifica codice su git – push
    • oc start-build

Cap.8 – Creating Routes

  • Esposizione dei servizi
  • Visualizzazione configurazione delle routes
  • Limiti delle rotte, traffico L7 http/https/websocket
  • Cenno all’esistenza di servizi NodePort per l’esposizione di servizi non http/https
  • oc expose
  • Come il nome dell’url viene creata di default  come può essere personalizzata
  • BONUS: perché le rotte hanno un ‘pattern’ di default .apps.dominio e dove ‘si sceglie’
  • Dimostrazione creazione route 

Cap.9 – Creating Applications with the Openshift Web Console

  • Come accedere alla web console
  • Funzionalità della web console
  • task amministrativi e di gestione delle applicazioni da web console, senza necessariamente conoscere i comandi
  • Creare un’applicazione da web console