SlideShare a Scribd company logo
1 of 25
DevOps
The dark side of the force
26 June 2019
About Me~$ whois fabio.todaro
Italian Tech Week ovalmoney.com
Italian Tech Week ovalmoney.com
● 3 years R&D interactive technologies
B2B
○ Embedded systems (Arduino, OpenCV)
○ 3D Interactive systems (Kinect, Unity3D)
○ Web interactive systems (E-Learning)
● 6 years Web Developer
○ Backend (PHP, NodeJS, Python)
○ Frontend (JS)
● 4 years in IT Operations e DevOps
○ No spoiler :)
● Love cars and working on car engines
Why and What is
DevOps?~$ which DevOps
ovalmoney.comItalian Tech Week
Let’s take a step back
~$ cd ..
Italian Tech Week ovalmoney.com
Italian Tech Week ovalmoney.com
● Waterfall approach
● Bare metal servers or VPS
● Code stored on NAS
● Deploy once in a while
IT Operations And
Development
ovalmoney.comovalmoney.com
Then AGILE
and Cloud were born
Italian Tech Week ovalmoney.com
AGILE Requirements
● Continuous Releases
● Easily Test and Debug Code
changes
Italian Tech Week ovalmoney.com
● Distributed systems
○ High Availability
○ Microservices
○ Scaling
Replicable systems
Cloud Requirements
and Consequences
DevOps to the
rescue~$ systemctl start DevOps
Italian Tech Week ovalmoney.com
Italian Tech Week ovalmoney.com
● Improved deployment
frequency
● Faster time to market
● Lower failure rate of new
releases
● Shortened lead time between
fixes
● Faster MTTR
DevOps Goals
CI/CD
Italian Tech Week ovalmoney.com
GIT
Italian Tech Week ovalmoney.com
Italian Tech Week ovalmoney.com
CI/CD
ovalmoney.comItalian Tech Week
Real
examples
IaC
Italian Tech Week ovalmoney.com
ovalmoney.comItalian Tech Week
Containers
Italian Tech Week ovalmoney.com
Containers
Orchestration
Monitoring and
Logging~$ tail -f /var/log/system.log
Italian Tech Week ovalmoney.com
Italian Tech Week ovalmoney.com
Logging
ovalmoney.comItalian Tech Week
Metrics
visualization
To be continued...
~$ more ./DevOps.txt
Italian Tech Week ovalmoney.com
Questions?~$ yes(y) | no(n)
>
Italian Tech Week ovalmoney.com
Italian Tech Week ovalmoney.com
Thank you~$ sudo shutdown -h now
Italian Tech Week ovalmoney.com

More Related Content

Similar to DevOps Italian Tech Week 26/06/2019

CHIPS Alliance_Object Automation Inc_workshop
CHIPS Alliance_Object Automation Inc_workshopCHIPS Alliance_Object Automation Inc_workshop
CHIPS Alliance_Object Automation Inc_workshopObject Automation
 
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...Nir Yungster
 
A Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New TechnologiesA Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New TechnologiesSrinath Perera
 
Using protocol analyzer on mikrotik
Using protocol analyzer on mikrotikUsing protocol analyzer on mikrotik
Using protocol analyzer on mikrotikAchmad Mardiansyah
 
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
BKK16-100K1 George Grey, Linaro CEO Opening KeynoteBKK16-100K1 George Grey, Linaro CEO Opening Keynote
BKK16-100K1 George Grey, Linaro CEO Opening KeynoteLinaro
 
Iot development from prototype to production
Iot development from prototype to productionIot development from prototype to production
Iot development from prototype to productionMender.io
 
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...OpenNebula Project
 
Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp}
Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp} Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp}
Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp} Lviv Startup Club
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Mender.io
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Giovanni Toraldo
 
Socket Programming with Python
Socket Programming with PythonSocket Programming with Python
Socket Programming with PythonGLC Networks
 
IoT simple with the ESP8266 - presented at the July 2015 Austin IoT Hardware ...
IoT simple with the ESP8266 - presented at the July 2015 Austin IoT Hardware ...IoT simple with the ESP8266 - presented at the July 2015 Austin IoT Hardware ...
IoT simple with the ESP8266 - presented at the July 2015 Austin IoT Hardware ...David Fowler
 
In Need For A Linux Kernel Maintained For A Very Long Time? CIP Linux Kernel ...
In Need For A Linux Kernel Maintained For A Very Long Time? CIP Linux Kernel ...In Need For A Linux Kernel Maintained For A Very Long Time? CIP Linux Kernel ...
In Need For A Linux Kernel Maintained For A Very Long Time? CIP Linux Kernel ...Agustin Benito Bethencourt
 
LAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George GreyLAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George Grey96Boards
 
LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLinaro
 
IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to ProductionMender.io
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEO
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEOSFO15-100K1: Welcome Keynote: George Grey, Linaro CEO
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEOLinaro
 
Cloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps ApproachCloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps ApproachNicola Ferraro
 

Similar to DevOps Italian Tech Week 26/06/2019 (20)

Davide Ricci - Continuos compliance @ Linaro.pdf
Davide Ricci - Continuos compliance @ Linaro.pdfDavide Ricci - Continuos compliance @ Linaro.pdf
Davide Ricci - Continuos compliance @ Linaro.pdf
 
CHIPS Alliance_Object Automation Inc_workshop
CHIPS Alliance_Object Automation Inc_workshopCHIPS Alliance_Object Automation Inc_workshop
CHIPS Alliance_Object Automation Inc_workshop
 
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...
 
A Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New TechnologiesA Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New Technologies
 
Using protocol analyzer on mikrotik
Using protocol analyzer on mikrotikUsing protocol analyzer on mikrotik
Using protocol analyzer on mikrotik
 
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
BKK16-100K1 George Grey, Linaro CEO Opening KeynoteBKK16-100K1 George Grey, Linaro CEO Opening Keynote
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
 
Iot development from prototype to production
Iot development from prototype to productionIot development from prototype to production
Iot development from prototype to production
 
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
 
Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp}
Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp} Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp}
Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp}
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
 
Socket Programming with Python
Socket Programming with PythonSocket Programming with Python
Socket Programming with Python
 
IoT simple with the ESP8266 - presented at the July 2015 Austin IoT Hardware ...
IoT simple with the ESP8266 - presented at the July 2015 Austin IoT Hardware ...IoT simple with the ESP8266 - presented at the July 2015 Austin IoT Hardware ...
IoT simple with the ESP8266 - presented at the July 2015 Austin IoT Hardware ...
 
In Need For A Linux Kernel Maintained For A Very Long Time? CIP Linux Kernel ...
In Need For A Linux Kernel Maintained For A Very Long Time? CIP Linux Kernel ...In Need For A Linux Kernel Maintained For A Very Long Time? CIP Linux Kernel ...
In Need For A Linux Kernel Maintained For A Very Long Time? CIP Linux Kernel ...
 
LAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George GreyLAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George Grey
 
LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome Keynote
 
IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to Production
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEO
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEOSFO15-100K1: Welcome Keynote: George Grey, Linaro CEO
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEO
 
Cloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps ApproachCloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps Approach
 

Recently uploaded

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 

Recently uploaded (20)

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 

DevOps Italian Tech Week 26/06/2019

Editor's Notes

  1. Chi sono
  2. Ho passato professionale abbastanza eterogeneo, ho lavorato come R&D di sistemi interattivi B2B per poi passare al mondo web e avvicinarmi sempre di più alla gestione delle operations IT. Questa esperienza mi ha permesso di capire che c’era molto margine per ottimizzare i processi di sviluppo di un software.
  3. Penso che uno dei modi migliori per apprendere un concetto o una soluzione sia comprenderne le motivazioni alla base, quindi prima di tutto le domande che dobbiamo porci sono: Perchè è nata la figura del DevOps? E poi Cosa si intende quando si parla di DevOps?
  4. Per spiegare il perchè sia nata questa figura dobbiamo fare un passo indietro e analizzare come lo sviluppo software sia evoluto nel tempo.
  5. Semplificando ai fini narrativi possiamo dire che: Un tempo lo sviluppo di un software era principalmente strutturato in waterfall, (sapete cosè waterfall?) un ciclo di sviluppo testing e deploy unico e molto lungo. I server su cui ospitare il software erano Bare metal o VPS spesso configurati a mano. Il codice molte volte salvato su NAS o comunque su supporti senza alcun tipo di versionamento. Il deploy, essendo un evento unico proprio per come funziona l’approccio waterall, veniva spesso gestito manualmente da team congiunti di Dev e Operations.
  6. Fino alla nascita e l’adozione sempre maggiore di un nuovo approccio allo sviluppo: l’AGILE e di un nuovo paradigma nella gestione dei server: il Cloud. E gli equilibri fino ad allora mantenuti vengono stati stravolti.
  7. Vengono stravolti perchè: L’introduzione di AGILE essendo basato su rapide iterazioni del ciclo di sviluppo porta i team a dover fare deploy continui del prodotto con tutto ciò che ne consegue. Si crea la necessità di fare test, build e deploy molto più spesso e quindi di poter debuggare in modo rapido il software in sviluppo.
  8. La nascita del Cloud Computing invece offre grosse opportunità, poichè nonostante sia semplicemente il server di qualcun’altro, segna la svolta grazie ad una serie di piccole ma fondamentali differenze: la possibilità di gestire la fatturazione a livello orario, l’automazione dell’avvio di istanze o il loro scaling orizzontale e verticale con un semplice cambio di configurazione. Questa semplicità nell’avvio di istanze (che altro non sono che server virtuali situati in un cluster) da vita allo sviluppo di sistemi distribuiti che permettono l’implementazione di HA, Microservices, Scaling ma tutto questo richiede a chi gestisce questi sistemi di poter replicare in modo automatizzato l’infrastruttura.
  9. Tutte queste necessità hanno reso evidente da un lato il gap presente tra i developers e le operations e dall’altro la nascita di un’area che richiede competenze che non spettano ne agli uni ne agli altri. Per sopperire a questa mancanza serviva una figura che fosse l’anello di giunzione tra lo sviluppo e il deploy del software. Una figura che sapesse scrivere codice al fine di automatizzare l’intero workflow e non solo...
  10. Un DevOps punta a massimizzare la predicibilità, l’efficienza, la sicurezza e la manutenibilità dei processi operativi. Un DevOps è guidato dalla ricerca continua della massima efficienza nel processo produttivo sia essa legata ad esempio ai tempi di rilascio, ai tempi necessari a ripristinare un sistema completamente down o alla sicurezza. Quando un DevOps osserva un qualsiasi processo il suo primo pensiero è come poterlo automatizzare e se già lo fosse allora diventa come poterlo ottimizzare. Esempio della macchinetta del caffè. Quindi fondamentalmente i DevOps non sono altro che degli individui molto pigri con le capacità necessarie a sviluppare sistemi che gli permettano di non lavorare. Passiamo a vedere nel concreto le tecnologie che usiamo in Oval per affrontare queste sfide, mi limiterò a dare una breve descrizione e delle buzzwords affinchè possiate poi approfondire.
  11. Per iniziare vediamo come si può applicare automazione al processo di test, build e deploy per velocizzare le release e ridurre quindi il time to market. Andiamo vedere in cosa consiste strutturare delle pipeline di CI/CD.
  12. Git per chi non lo sapesse è un sistema di SCM, permette di versionare il codice, tenere traccia di ogni sua modifica e collaborare in modo efficiente alla stessa code base. Nell’immagine in particolare vediamo un processo definito Git-Flow Possiamo considerarlo alla base di quasi tutti i processi di Continuous Integration
  13. La Continuous integration consiste nell’eseguire una serie di operazioni automatizzate che permettono di compilare e testare il codice ad ogni modifica della code base. La Continuous Delivery consiste nel evolvere ulteriormente il concetto di CI automatizzando anche la parte di deploy del codice nei vari ambienti.
  14. Qui abbiamo degli esempi reali di alcune delle nostre pipeline su Gitlab. In basso la nuova pipeline legata al core del backend di oval dove compiliamo l’immagine Docker dell’applicativo, eseguiamo il testing, in caso di esito positivo generiamo la documentazione e facciamo l’upload di queste immagini su uno storage remoto per poi effettuare il deploy sulle macchine nei vari ambienti. In alto invece una delle pipeline legate alla repository dell’applicazione mobile, dove eseguiamo prima unit testing, in seguito compiliamo le due applicazioni (iOS e Android) oltre che ai test end2end per poi successivamente eseguirli.
  15. Ora vediamo invece come evolve l’infrastruttura e diventa Infrastructure as code.
  16. Uno degli approcci è la gestione dell’applicativo in modo containerizzato. I container permettono di eseguire la nostra applicazione in un contesto isolato ma a differenza di una virtual machine riutilizzano buona parte delle risorse del sistema operativo sottostante senza generare l’overhead di un intero sistema operativo guest. Questo garantisce riproducibilità e risolve il problema del “it works on my machine” in quanto all’interno del container vengono definite tutte le dipendenze necessarie all’applicativo per funzionare. Questo è un esempio di Dockerfile, il sistema tramite il quale con docker si definiscono le immagini che poi verrano usate per lanciare i nostri container. In questo caso come potete vedere viene copiata l’applicazione e installata in modo che sia pronta da utilizzare all’avvio del container.
  17. L’introduzione dei container ha sicuramente risolto molti problemi ma ha creato la necessità di gestire l’orchestrazione degli stessi sui server. Esistono diverse tecnologie create a tal scopo, in Oval utilizziamo kubernetes, un orchestratore di container creato da Google e donato alla CNCF (cloud native computing foundation) Anche kubernetes funziona tramite la definizione di configurazioni che in questo caso rappresentano lo stato desiderato del cluster.
  18. Passiamo ora alla gestione del Logging e del Monitoring su un’architettura distribuita
  19. In Oval usiamo uno stack chiamato ELK per la gestione del logging. Si basa sull’uso di un daemon sui singoli nodi kubernetes chiamato filebeat che permette di fare la collection di tutti i log dei container docker in esecuzione su quel nodo. I log vengono poi inviati a logstash che si occupa di processarli uniformarli e archiviarli su elastcsearch. Kibana invece è una webapp utile a fare analisi e visualizzazione dei record presenti su elasticsearch.
  20. Il monitoring invece viene gestito tramite Prometheus un sistema di collection e query delle metriche oltre che di alerting in grado di funzionare con sistemi estremamente eterogenei. La visualizzazione di queste metriche avviene tramite Grafana che permette di visualizzare qualsiasi metrica tramite specifici linguaggi di query.
  21. Questi sono solo alcuni aspetti del ruolo di un DevOps e dell’evoluzione dell’industria del software quindi vi invito ad essere sempre curiosi e a fare ricerche.