devops: l'it al servizio del business
TRANSCRIPT
@DevOps@Work 2016
#DOAW16@DevOps@Work 2016#DOAW16
getlatestversion
DevOps: l'IT al servizio del Business
Felice Pescatore
felicepecatore.it
@felicepescatore
@DevOps@Work 2016
#DOAW16
DevOps Elephant!Lean, Agile and DevOpsThe Three Ways of DevOpsLa Cultura al centro di
tuttoDevOps: Goal, Principi e
PraticheToolsRisorse e Riferimenti
Agenda
@DevOps@Work 2016
#DOAW16
DevOps Elephant!
…a movement, a philosophy, a way of thinking;…is a person who can perform both Dev/Ops roles;…means cross skilling people;…is continuous delivery;…is a job title;…is automation;…is a team of developers and operation staff;…is a culture movement;…is monitoring.
DevOps is…
It’s DevOps!
It’s DevOps!
It’s DevOps!
It’s DevOps!
@DevOps@Work 2016
#DOAW16
DevOps
DevOps è un approccio Culturale in cui l’intera Line of
Business si assume la responsabilità della creazione di
Valore per il cliente.
In tale scenario, Developers e Operations sperimentano
continuamente nuovi modi di lavorare insieme, andando a
standardizzare e padroneggiare i processi attraverso
la ripetitività e la pratica.DevOps: Delivery Enhanced Values Over Processes
Smells [f.p.]
@DevOps@Work 2016
#DOAW16
DevOps….
…non sostituisce un approccio Agile
Viene esteso il concetto di “Done”: quanto realizzato è considerato completato solo quando i test di accettazione sono
superati ed è in erogazione.
…non significa NoOps…non è applicabile solo al mondo dell’Open Source
Entrambi spingono ad automatizzare quanto più possibile processi, configurazioni, deployment, e contemplano una governance di
Change Management.I sistemisti non diventano “inutili” ma innalzano l’asticella delle proprie competenze e delle proprie attività.
…non rimpiazza la metodologia ITIL
…non è solo “infrastructure as a code” o automazione
…non è solo per le Startup e le Unicorn
Soluzioni applicative per DevOps esistono sia in ambito commerciale che OpenSource, quest’ultimo spesso laboratorio
di nuove idee.Il cuore di questo approccio è la condivisione degli obiettivi lungo l’intero Stream di Valore che sottende la realizzazione di
soluzioni IT.DevOps è un approccio applicabile a qualsiasi realtà aziendale, soprattutto quelle che riconoscono nell’IT la propria dorsale di
supporto.
@DevOps@Work 2016
#DOAW16
Lean, Agile and DevOps
LEANValue Stream – End-to-End Flow
Solution Vision & Customer Delivery[Lean Startup, Running Lean]
Agile Solution Development[Scrum, Kanban] [XP, TDD]
Solution Delivery[Continuous Delivery e Deployment]
Values and
Principles
Practices
DevOps
Portfolio managementBusiness process managementBig Data/Analytics
Idea
Value
AGILE @Scale Framework(SAFe, DAD, LeSS, Nexus)
Consistent Environme
nt
Individualmente, nessuno di questi approcci è in grado di ottimizzare la creazione del Valore nel complesso.
Bisogna adottarli all’unisono per migliorare il proprio business.
@DevOps@Work 2016
#DOAW16
L’Agile non è sufficiente
Le varie build di iterazione si accumulano se non si è in grado di effettuarne il delivery e il deploy in modo rapido. Sulla Visione complessiva di Deployment si rischia spesso di lavorare con un approccio waterfall.
Functional Testing
Acceptance Testing
Ready to Production
DeployDelivery
UAT & QA
OPS
Agile Team
Agile Funnel
@DevOps@Work 2016
#DOAW16
The Three Ways of DevOps
DEVOPS
BUSINESS
The First Way: System ThinkingThe Second Way: Amplify Feedback Loop The Third Way: Culture of Continual Experimentation and Learning
CULTURA
CUSTOMER
Con DevOps si vuole creare un approccio Culturale focalizzato sul Delivery di Valore per il cliente, invece di prendersi cura solo dei problemi tecnici .
@DevOps@Work 2016
#DOAW16
DevOps è prima di tutto Cultura!
tra DEV e OPS… e il resto dell’azienda.
MIGLIORARE
“DevOps isn’t something you can buy -- it’s something you have to do, and you have to do it
yourself.” John Michelsen, CTO, CA Technologies
Comunicazione Integrazione AutomazioneCollaborazione
@DevOps@Work 2016
#DOAW16
Comunicazione e Integrazione
Comunicazione
Integrazione
Unico value-path per Sviluppo, Operation… e il resto dall’azienda
Migliorare e automatizzare i processiRimuovere gli Ostacoli e i Colli di Bottiglia
Favorire il flusso informativo dall’Idea alla Consegna al cliente
Creare Loop di Feedback ad ogni fase
Abbattere le barriere tra le aree funzionali aziendaliCondividere le responsabilità individuando nuovi ruoli
Distillare la conoscenzaFocalizzarsi sui servizi a supporto del business, non sulla
tecnologiaCreare un senso di fiducia reciproco
@DevOps@Work 2016
#DOAW16
Collaborazione e Automazione
Collaborazione
Relazioni Face-to-face, real timeRidurre al minimo, idealmente abolire, le
comunicazioni formaliTeam di piccole dimensioni focalizzati sul BusinessCondividere i problemi con i pari e gli altri colleghi
Uso di strumenti di Visual Management / Information Radiator
Automazione
Automatizzare l’esecuzione dei Task ripetitiviAutomatizzare i Processi, connettendo task e
decisioniAutomatizzare Delivery e Deployment
Trigger Decisionali sfruttando Analytics e Monitoraggio
@DevOps@Work 2016
#DOAW16
Shorten Cycle Time
Optimize Resources
Improve Quality and Availability
DevOps: Goal, Principi e Pratiche
Evidenziare sempre i problemi e risolverli velocemente;Build Quality in, software di qualità;«Done» significa «Rilasciato»;Tutti sono responsabili per il Delivery e il Deployment;Continuous Improvement: miglioramento continuo.
Principi
Creare processi affidabili, ripetibili, versionabili e verificabili;Automatizzare il più possibile i diversi step del processo;Gli Script sono la vera documentazione up-to-date;Tutti gli elementi del progetto vanno nel sistema di source control;Le build avvengono sempre e solo dal codice sorgente;Configurazione automatica degli ambienti
Pratiche
@DevOps@Work 2016
#DOAW16
DevOps Goal
Shorten Cycle Time
Passare in modo efficace da lunghi cicli di rilascio a rilasci settimanali o giornalieri indispensabili per supportare adeguatamente i clienti e le trasformazione del business.
@DevOps@Work 2016
#DOAW16
Full Application Lifecycle Management
Continuous Delivery
Continuous Deployment
Agile Project Manag.
IDEVersion Control System
Continuous Integration
Agile Project Management and Development
Agile Team
Analysis + DesignDevelopment
Testing1 2 3 4 n
IntegrationQuality + Acceptance Test
ReleaseOperation
Ops
Agile Deployment Pipeline: the «last mile»
Customer& Business
Agile Team & QA Team
@DevOps@Work 2016
#DOAW16
Agile Project Management and Development
I tool di Agile Project Management consento di gestire le varie fasi di sviluppo legando direttamente i vari artefatti alle
attività annesse al processo.
Un Integrated Development Environment è un ambiente omnicomprensivo che permette di sviluppare nel linguaggio di
riferimento, sfruttando le funzionalità dei framework interconnettendosi con i vari sistemi a supporto.
Agile Project Management
IDE
Version Control System
Un Version Control System (VCS) consente una gestione efficace della propria code-base, persistendo i file, tracciando le
modifiche e gestendo l’history di sviluppo.
@DevOps@Work 2016
#DOAW16
L’Agile Deployment Pipeline (ADP) descrive il processo che porta il software dal version control system nelle «mani» dell’utente finale.
Si tratta di un concetto ispirato dal “Value Stream Maps” di Lean Software
Development: ogni step produce un output che è prelevato (pull) dallo step successivo quando è pronto ad elaborarlo.
L’ADP è anche nota come Continuous
Integration Pipeline, build pipeline, ecc
Agile Deployment Pipeline: the «last mile»
.
Agile Project Management
IDE
Version Control System Continuous Integration
Continuous Delivery
Continuous Deployment
@DevOps@Work 2016
#DOAW16
The «last mile»
La Continuous Integration è una pratica di sviluppo software dove i membri di un team integrano il lavoro frequentemente,
almeno una volta al giorno.
La Continuous Delivery è un set di principi e di pratiche volte a rilasciare il software in ambiente di pre-produzione, velocemente e frequentamene, sfruttando strumenti
automatizzati di building e testing.La Continuous Deployment è la fase successiva alla
Continuous Delivery, incentrata sul rilascio automatizzato in ambiente di produzione della soluzione precedentemente
convalidata in pre-prod. Solo le build che superano gli UAT e i QA Test vengono messe in erogazione automaticamente.
Continuous Integration
Continuous Delivery
Continuous Deployment
@DevOps@Work 2016
#DOAW16
Agile Deployment Pipeline: automation levels
build unittests
integrationtests
validationtests
deploy toproduction
build unittests
integrationtests
build unittests
integrationtests
validationtests
Continuos Integration Code Unit Test + Integration Build + Integration Test
Continuous Delivery Continuous Integration + QA Test & ATDDContinuos Deployment Continuos Delivery +automatic deploy in prod
Manual Actions
Manual Actions
@DevOps@Work 2016
#DOAW16
Agile Deployment Pipeline Trigger
Continuos Integration Continuous Delivery Cont. Deployment
@DevOps@Work 2016
#DOAW16
L’«ultimo miglio» nella realtà
La Continuous Integration è relativamente semplice da implementare:
è tutta una questione di comunicazione, vista la maturità dei tool.
La Continuous Delivery è difficile, ma un po' tutte le software house trovano una soluzione contestuale per adottarla:
• alcune cose sono difficili da testare in modo automatico;• è necessario avere dei tecnici dedicati alla scrittura di parte
dei test.La Continuous Deployment è adottata molto raramente
• i Clienti non la vogliono;• inadatta alle soluzioni Mission Critical.
Continuous Integration
Continuous Delivery
Continuous Deployment
@DevOps@Work 2016
#DOAW16
Optimize Resurces
DevOps Goal
Condividere la comprensione della pipeline di rilascio in modo che ognuno possa svolgere al meglio il proprio lavoro.
@DevOps@Work 2016
#DOAW16
Ogni membro del team deve disporre di una workstation con IDE e strumenti appropriati al proprio ruolo per essere sempre produttivo.
I team progettano, sviluppano e dispiegano le applicazioni utilizzando una suite integrata per la gestione del ciclo di vita della soluzione.
E’ fondamentale disporre di ambienti di pre-produzione per lo sviluppo, l’integrazione e l’esecuzione dei test di Quality Assurance e di Accettazione.
Developer Workstation
Team Collaboration Environment
Dev and Test Environments
Cloud Services for DevelopmentSfruttare servizi cloud-oriented, public o on-premise.
Software Development Infrastructure
@DevOps@Work 2016
#DOAW16
High Cost
Inability to Delivery Value
Deploying Software Manually
Software Development Infrastructure Issue
Mantenere un’efficace infrastruttura di sviluppo e test può diventare costoso.
Processi lunghi e burocratizzati minano la capacita del team di consegnare Valore.
Il Deploy Manuale è un anti-pattern, che incide negativamente sulla creazione di Valore.
@DevOps@Work 2016
#DOAW16
Improve Quality and Availability
DevOps Goal
Essere confidenti che si sta propriamente tracciando, gestendo e monitorando il ciclo di rilascio.
@DevOps@Work 2016
#DOAW16
Improve quality & availability
Plan
Develop & test Release
Monitor & learn
ProductionDevelopment
Collaboration
BacklogRequirements
All stakeholdersAcceptance test planning
Continuous acceptance testing
Continuous learning and improvement
Integrated incident management
Performance and availability diagnostics
Release management
Developers& testers
Operations
@DevOps@Work 2016
#DOAW16
Hypothesis-Driven Development
La Hypothesis-Driven Development è un approccio allo sviluppo che si basa su una serie di continui esperimenti al fine di determinare se un’idea è valida o fino all’ottenimento del risultato desiderato.Le ipotesi vengono testate nel giro di ore grazie alle pratiche di Continuous Delivery (Deployment) e gli strumenti di MonitoringWe believe <that if we write a blog post on our new product>
Will result in <people that will want to buy it>
We will have confidence to proceed when <30 people sign up
within 24 hours>
@DevOps@Work 2016
#DOAW16
ProblemiMancanza di informazioni per scegliere su quali iniziative investire.
SoluzioniOttenere rapidamente informazioni dai [potenziali] clienti per aiutare le scelte.
AzioniAllineare il proprio ciclo ALM ai risultati ottenuti per massimizare il Valore prodotto.
Continuous Learning
@DevOps@Work 2016
#DOAW16
Parlarsi!Misurare
Gestire la complessità senza abituarsi ad essa
Creare micro-processi che accompagnano l’intero ciclo
rilascioProcedere con piccoli esperimenti
Automatizzare il processo di rilascio
Iniziare con un processo di rilascio condiviso
Creare molti punti di feedbackCambiare il sistema di
incentivazione in funzione dei risultati generali
Adattare l’organizzazione
Eliminating Waste: do and repeat it!Investire su Formazione, Comunicazioni e capacità
Cross- Skilling
Valutare nuovi Processi e Tool avanzati per
supportare DevOps
Rivalutare, modificare e migliorare il ciclo di
Delivery e Deployment
Valutare nuove Pratiche e Tecniche a supporto di
DevOps
Sperimentare i cambiamenti in modo
localizzato: Singola Area Aziendale, Progetto Pilota
@DevOps@Work 2016
#DOAW16
DevOps Tools
Platform and Stand-alone
Per raggiungere un alto livello di automazione, andando a ridurre gli errori, è imprescindibile l’utilizzo di adeguati strumenti a supporto.
@DevOps@Work 2016
#DOAW16
DevOps Tools Families
Configuration Manager Software
Provisioning Software
Packaging Software
Consentono di definire da codice lo stato di una specifica macchina, andando ad esplicitare la configurazione, il software
installato, ecc..Consentono di istanziare una macchina virtuale da codice e configurarla a livello di sistema operativo. Si interfacciano con
i Configuration Manager Software per completarne la configurazione applicativa.
Consentono di impacchettare il software in un’unità atomica auto contenuta.
Monitoring Software
Consentono di monitorare il corretto funzionamento del software e segnalare le relative anomalie
@DevOps@Work 2016
#DOAW16
DevOps Tools FamiliesConfiguration Management
Server Image ProvisioningPackage Management
(Container Management)
PowerShell DSC
Drawbridge
LXD
VORTEX
Monitoring
@DevOps@Work 2016
#DOAW16
Microsoft DevOps Platform
People
BusinessIT OperationsDevelopers/Testers
ProcessPlan
Develop& test Release
Monitor& learn
Azure services Visual Studio Team Services
Microsoft products
Websites
Cloud service
sSQL
database
API manageme
ntBuild &
continuousintegration
Azure deploy & continuousdeployment
Virtualmachines
StorSimple
Release management
Lab management
Teamfoundationserver
PowerShell DSC
Build &continuousintegration
LoadtestingActive
directory
Virtualnetwork
CLOUD
HYBRID
ON-PREMISE
S
Collaborate
Multifactorauthorizatio
n
Release managementPowerShe
llDSC
Testprofessional
@DevOps@Work 2016
#DOAW16
Risorse e Riferimenti
DevOps Jump Start - L'approccio DevOpsAgile Application Lifecycle Management con VSO/TFSPubblicare un package nuget grazie alla buildGestire la Semantic Versioning con GitFlow e GitVersion in una vNext BuildLean Startup, Jump Start!
Agile@Scale: visione olistica del valoreLean Philosophy Introduzione a KanbanApplication Lifecycle Management (ALM) con VSO
getlatestversion
@DevOps@Work 2016
#DOAW16
Grazie agli sponsor
@DevOps@Work 2016
#DOAW16
http://bit.ly/DOAW16FEED1
Dedicateci 2 minuti del vostro tempo, e ci aiuterete a crescere e migliorare!
Track Introhttp://bit.ly/DOAW16FEED2
Track Avanzata