Michele Ferracin Software Engineering

Michele Ferracin Software Engineering

By Michele FerracinTechnology
Download on the App Store

Michele Ferracin Software Engineering episodes

  • Cosa sono i Pod e come usarli in un cluster Kubernetes

    I Pod sono un oggetto fondamentale in un cluster Kubernetes perché creano l'ambiente di esecuzione per i container i quali avranno a loro diposizione RAM, CPU, storage, networking.

    Comprendere i concetti principali dei Pod permette quindi un uso più consapevole delle risorse di un cluster.
    In questo episodio ascolterai:
    - Concetti base di un Pod
    - Come eseguire in pod in modalità imperativa con kubectl
    - Come descrivere un pod in formato YAML ed eseguirlo col comando apply
    - Come distruggere un Pod
    - Come e perché dichiarare le risorse di cui un container a bisogno in un Pod.

    19 min
  • Come sfruttare al massimo il version control

    Il version control (tipo git) è presente in ogni progetto software per gestire i sorgenti applicativi. I sorgenti, tuttavia, non sono l'unico asset che possiamo salvare in un repository di un progetto software.
    Per ottenere la massima tracciabilità e riproducibilità dei nostri processi di deployment dobbiamo inserire anche:
    - schema database e script di migrazione
    - infrastructure as code (Azure ARM template / Bicep, AWS template, Terraform file...)
    - scripting di automazione
    - scripting o strumenti di test in generale
    - file di configurazione (senza i segreti!)
    E tu, come lo usi il tuo repository?

    10 min
  • Come gestire e progettare i test automatici per rendere sostenibile un progetto software

    Se i test non scriverai, Agile non sarai.
    Non mi interessa se fai kanban, SCRUM, SAFe, abcdefg.
    I test automatici sono il vero abilitatore dell'agilità.
    Se hai paura di modificare la tua cobebase diventi lento e nel lungo termine il tuo progetto è destinato a procedere lentissimo con un calo di servizio per i clienti finali.
    Un progetto software deve essere sostenibile nel lungo periodo e i test automatici ci evitano di lavorare in modo ingessato e governato dalla paura del cambiamento.
    In questo episodio vediamo che mindset utilizzare e come approcciarci in modo strutturato al testing.

    15 min
  • Come gestire l'evoluzione di un database e automatizzare il deployment

    Gestire l'evoluzione di un database è un punto cruciale per un approccio completo e maturo alle pratiche di automazione e sicurezza dei deployment.
    Un approccio incompleto con lato applicazione automatizzato e database manuale crea inefficienze e riduce l'efficienza dei processi ed è un modo di operare rischioso (basti pensare alle conseguenze di uno script eseguito erronamente).
    Vediamo insieme come migliorare e trattare il database come un first class citizen nelle nostre pratiche.
    Alcune delle pratiche chiave sono:
    - migiorare il coinvolgimento dei DBA coi developer
    - tenere tutti i cambiamenti del database sotto controllo di versione
    - usare uno schema di migrazione basato su script.
    Alcune strategie per fare cambiamenti dello schema del database senza tempi di inattività:
    - usare un framework di migrazione
    - il pattern di cambiamento parallelo
    - una soluzione NoSQL.

    15 min
  • Continuous Integration fatta bene - sai davvero tutto?

    Considerata una pratica di base e spesso trascurata CONTINUOUS INTEGRATION invece ha molto da insegnare ai team.
    È la pratica di integrare i sorgenti il più frequentemente possibile popolarizzata da Martin Fowler nell'ormai lontano settembre 2000 nel suo blog. Viene data per scontata e basilare ma pochi sanno che ha persino influenza sul modo di intendere le feature e sulla cultura del team.
    Una continuous integration fatta bene prevede:
    - Integrazione almeno una volta al giorno
    - Automazione di build
    - Automazione di test
    - Rapidità
    - Intervento immediato in caso di problemi in build o test che non passano.
    - Un modo di intendere lo sviluppo delle feature più piccole possibili.

    13 min
  • Come mantenere i sorgenti di un progetto - le migliori pratiche

    Mantenere i sorgenti di un progetto software sul lungo termine è una sfida comune per tutti i team di sviluppo.
    La capacità di gestire la codebase nel tempo in buona salute è una capacità tecnica che può fare la differenza in termini di velocità di sviluppo, sicurezza e velocità di evoluzione.
    La "code maintainability" è una delle abilità tecniche individuate dall'istituto di ricerca DORA Research che fanno parte del bagaglio culturale di un team: https://dora.dev/devops-capabilities/....
    Per gestire una codebase in modo sano vanno gestiti:
    - i sorgenti
    - le dipendenze dalle terze parti (pacchetti, librerie, altri sorgenti...)
    In questo video vediamo quali sono le pratiche e i processi che potresti implementare nella tua realtà o team.

    10 min
  • 8 passi per avviare un'iniziativa DevOps

    Quella che può partire da una semplice attività tecnica in ambito DevOps (adozione di una board, adozione di automazione, telemetria, repository, metodologia kanban/scrum) può sfociare in un progetto più ampio di adozione principi e pratiche DevOps a tutto tondo che vogliono essere esplorate e diffuse in un contesto aziendale.

    Ecco gli 8 passi per organizzare e gestire un'iniziativa di adozione principi e pratiche DevOps senza perdere un colpo!
    1. Stabilire un senso di urgenza
    2. Gruppo guida
    3. Creare una visione
    4. Comunicare la visione
    5. Abilitare le persone
    6. Pianificare le attività / obiettivi a breve termine
    7. Consolidare i miglioramenti
    8. Istituzionalizzare il cambiamento

    13 min

About Michele Ferracin Software Engineering

From the publisher's feed

Episodi tratti dai miei video su YouTube in formato solo audio.