I read The Phoenix Project and I loved it! | SLIDES
Transcript
I read The Phoenix Project and I loved it! | SLIDES
Hai letto The Phoenix Project e lo hai adorato. E adesso? Matteo Emili @MattVSTS [email protected] 1 Sponsors & Organizers getlatestversion.it Chi sono? • Visual Studio and Development Technologies MVP (VSALM) • Professional Scrum Master 1 • Community enthusiast! • DomusDotNet, GetLatestVersion.it in Italia The Phoenix Project • Un regalo di Natale • Narrativa, ma non proprio narrativa… • Si legge in un weekend • Linguaggio a volte tecnico, ma concetti trasversali a diverse industrie e settori 4 Di che parla? • Bill Palmer e’ IT Manager di Parts Unlimited, un produttore di ricambi per automobile • E’ promosso a VP di IT Operations • Ci sono problemi enormi ai sistemi della sua azienda (roba seria – pagamento degli stipendi, POS e sistemi di incasso dei punti vendita) • C’e’ un progetto (in ritardo e oltre il budget da sempre) che deve essere rilasciato per salvare l’azienda • In caso di fallimento rischia l’outsourcing del dipartimento Ha un eccellente finale… • …di cui non faro’ spoiler • Dopo averlo finito Domenica sera, sentirete il bisogno di implementare le strategie di Bill • • • • So cosa ha fatto! Conosco le sfide e gli ostacoli che ha affrontato! Posso farcela! DevOps qualunque cosa! • Ma il Lunedi’ mattina tornate ai vostri deploy di Venerdi’ pomeriggio e ai porkaround per tenere tutto insieme… Cosa potete fare adesso? • Tutte le situazioni descritte nel libro sono realistiche • Non si puo’ cambiare un’organizzazione (2+ persone) in un giorno • Il libro ci introduce subito a tre problem critici nel 100% delle aziende • Colli di bottiglia • Mancanza di comunicazione • Barriere • Questi problemi si possono superare con un approccio lontano dai riflettori • Non pensate di mostrare qualcosa al team finche’ non ci sono certezze Sotto coi colli di bottiglia! I colli di bottiglia nel libro • Brent e’ il guru del dipartimento IT e tutte le richieste sono dirette a lui, da tutti, su tutto! • “…una roba semplice da massimo 30 minuti” • E’ una enterprise – tanti team, gruppi, approvazioni, politica • Non c’e’ virtualmente Change Management nonostante cio’ • Non c’e’ modo di implementare un piano di condivisione del know-how, nonostante ci siano delle persone assunte per questo scopo • Brent continua a rimbalzare da progetto a progetto e non riesce a spendere tempo su Phoenix • Brent e’ il collo di bottiglia! Automazione! • Dove possibile si deve automatizzare • PowerShell, Bash, … • L’automazione riduce gli errori umani, e’ prevedibile e libera tempo per altre attivita’ • Si rimane responsabili, ma se se il compito non cambia automatizzare e’ la scelta migliore Quindi, come posso iniziare a sbrogliare questa matassa? • “Non si puo’ cambiare cio’ che non si puo’ misurare” • In Build-Measure-Learn la fase di Measure e’ la piu’ importante • Avere delle metriche ben definite e misurare sono l’unico modo imparziale di ottenere evidenza di qualcosa da cambiare o migliorare • Solo le metriche vi diranno se la direzione e’ giusta, quindi e’ fondamentale che siano corrette • ‘Perche?’ • Estendere il prodotto per includere quello che davvero conta • Ridurre costi di manutenzione • Comprendere ed essere proattivi su potenziali problemi Belle chiacchiere…cosa posso materialmente utilizzare? • Log ovunque per avere una base di dati grezzi da studiare • Insight personalizzati sulle nostre metriche • Application Insights, Google Analytics, New Relic, Splunk, HockeyApp • Utilizzarli per imparare rende la prioritizzazione piu’ semplice • L’obiettivo e’ l’imparzialita’ • Solo questo puo’ portare ad un nuovo modo di approcciare il management (Evidencebased Management) La chiave dell’utilizzazione delle risorse • Non possiamo scaricare tutto su una sola persona • Bill ha messo una Kanban Board intorno a Brent come soluzione di ripiego • Funziona per un po’, ma poi arrivano altri problem • Se una risorsa e’ vicina al 100% di utilizzazione (firefighting) e’ molto probabile che la vostra richiesta aspettera’ un tempo indefinito • Come posso ridurre l’attesa da indefinita a qualcosa di accettabile? Comunicazione, cosa NON fare • Non tirate fuori un nuovo Sistema di Change Management dal nulla • Funziona nel libro? Si. Ma solo per questi motivi: • Non avevano alcun Sistema di Change Management, credevano di averlo ma nessuno lo utilizzava! • Avevano una persona (Patty) a tempo pieno solo per questo • Necessitavano di una infrastruttura per via della composizione aziendale Piuttosto, meglio fare questo… • Piccole vittorie e grossi ritorni, spesso fuori dal percorso principale • Automatizzare porta eccellenti miglioramenti di qualita’ – condividiteli col team • Se ogni membro del team lavora su cose differenti, regolari meeting di aggiornamento del gruppo • • • • Overhead minimale Un minuto a testa Ottimo modo di condividere esperienze e best practice Incoraggia alla condivisione e al miglioramento personale Suona troppo semplice? • Il mio capo ha iniziato a farlo un anno fa • Lavoriamo tutti in team differenti ed isolati, non ci sono interazioni regolari • Sviluppo per prodotto A, B e C • Supporto ed escalation per X, Y e Z • Agile, ALM e DevOps (me ) • Call di aggiornamento ogni Giovedi’ alle 11, un minuto per area funzionale (prodotto) • Dopo un periodo di assestamento sono iniziate le domande e i suggerimenti spontanei fra colleghi che altrimenti non avrebbero avuto motivo di collaborare Ancora troppo semplice? • Io ed altri abbiamo iniziato ad automatizzare attivita’ tipicamente manuali • Erano task che richedevano dati che nel 99% dei casi venivano solamente consultati e non avevano alcun seguito (dieci minuti al giorno?) • Ora ottengo un report via mail che posso condividere o su cui posso velocemente reagire • Dieci minuti al giorno e’ quasi un’ora a settimana – un’ora di qualita’! • Ho speso meno di un’ora per creare gli script DevOps e’ un cambiamento per l’intera organizzazione • Si inizia con piccoli cambiamenti out-of-band e si percepiscono dopo poco i miglioramenti, sia in qualita’ che in approccio • La collaborazione e la condivisione portano a migliori interazioni • Le barrier iniziano a sbanire • Si puo’ finalmente approcciare il lato di Delivery di DevOps • Ricordiamo: le aziende valutano i cambiamenti sulla base del valore del ritorno • Se non c’e’ aumento del ritorno ($$$, anche indirettamente) e’ la scelta sbagliata per l’azienda La strada verso la Continuous Delivery • Con l’abitudine ad automatizzare siamo gia’ a meta’ strada verso una mentalita’ di Continuous Delivery • Se state gestendo un qualche tipo di servizio un modo facile di proporla all’azienda e’ il seguente: • Le manutenzioni manuali sono altamente prone ad errori umani • I ripristini manuali sono molto costosi in termini di tempo • Downtime = costi elevati Pacchettizazione • Pacchettizzare le applicazioni per il deploy resolve il problema di unire tutti i componenti utilizzati • MSDeploy sta avendo un nuovo boom in questi giorni • File zip con binari e configurazione parametrizzata • E’ uno dei tre modi di pubblicare applicazioni in Azure • Funziona allo stesso modo on-premise Non e’ cosi difficile… Infrastructure as Code • Infrastructure as Code e’ il primo passaggio nella giusta direzione di fondamenta DevOps nella Delivery • I sistemisti spendono un mucchio di tempo installando server, creando VM, reti, … • Rendiamoci(…gli) la vita piu’ semplice ed adottiamo un approccio gia’ standard per il cloud • Azure ARM • Amazon CloudFormations • On-premise ci sono molte alternative • Chef, Puppet, PowerShell DSC • Una volta che il provisioning dell’infrastruttura e’ automatizzato siamo gia’ a meta’ del viaggio Database • I database sono spesso dimenticati introducendo DevOps • Tipico silo da rimuovere e unire sia a Development che Operations • Ci sono strumenti specifici per integrare il DLM nella pipeline di Release, ma tutti richiedono che sappiate quello che state facendo • Introdurre i DBA al Version Control, lavorare incrementalmente e in modo riproducibile, usare package (.dacpac?)…tutte cose che gia’ conosciamo! E il testing? • Se qualcosa deve fallire, deve fallire velocemente e comprensibilmente • Perche’ e come • Usare Test Suite (sia automatiche che manuali) come mezzo di validazione e veicolo di feedback • Siamo ancora responsabili di quello che testiamo, e i test sono parte critica del prodotto • L’automazione viene introdotta anche nella fase di rimediazione – “se si rompe cosa succede?” Recap • Prima le persone, poi i processi, e gli strumenti seguono • Automazione, automazione, automazione! • Non solo tecnologia Rimuovere Iniziamo con colli di bottiglia out-of-band • Mescoliamo lepoco, competenze in un senza barriere • mondo Facilitare L’automazione la comunicazione e’ sicura e ripetibile •• Pacchettizzazione delle Iniziamo con Usiamola come poco, base costruiamo per costruire applicazioni indipendentemente • incrementalmente Stiamo risparmiando tempo di dal’ambiente di destinazione • qualita’! Mostriamo evidenze e raccogliamo • Automatizzare grandi deploy di dati obiettivi ed utilizzabili • Tutto puo’ essere integrato in infrastruttura future pipeline • Sempre testare, sempre avere un’idea degli scenari che si possono aprire 32