Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

In viaggio verso DevOps - DevOps@Work 2019

66 views

Published on

DevOps@Work 2019
Roma, 25 January 2019
https://www.domusdotnet.org/event_cards/2019-01-25-DevOps_at_Work/

In questa sessione, sentirai parlare del cammino DevOps nella nostra azienda, dal desolante stato iniziale pressoché tutto on-premise e manuale, alla situazione attuale in cui abbiamo migrato (quasi) tutto su Azure cloud con una buona fetta di processi automatizzati, nell'arco di poco più di un'anno.
In equilibrio tra una visione di alto livello e utili suggerimenti pratici, toccheremo ciò che ha informato le nostre decisioni, in termini di priorità e tecnologie, alcune lezioni apprese nella configurazione di Infrastructure-as-Code usando Terraform, Powershell, Ansible, Azure DevOps (TFS), Azure e come i vincoli precedenti hanno aiutato o ostacolato.

Published in: Technology
  • This whitepaper explains how we built a continuous testing framework for one of our high value enterprise clients and the challenges we faced along with the solutions we created to overcome those challenges. http://bit.ly/2FTSWT2
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

In viaggio verso DevOps - DevOps@Work 2019

  1. 1. IN VIAGGIO VERSO DEVOPS Giulio Vian – DevOps Lead – Glass, Lewis & Co.
  2. 2. Sessione Livello introduttivo Presentazione sarà su SlideShare Domande al termine ho avviato il timer?
  3. 3. “As the leading independent provider of global governance services, Glass Lewis helps institutional investors understand and connect with the companies in which they invest.” San Francisco, New York, Kansas City, Sydney, Limerick, London, Karlsruhe
  4. 4. Prima della cura…
  5. 5. Green-field 3 Active Directory domains + workgroup 3 test environments 2 production environments All manually built Mainly manual deployments TeraByte-size SQL instances VPN connections Centralized version control 4 source code branches
  6. 6. Initial State Hosting DB LanguagesOS Tools
  7. 7. Problemi Rilasci infrequenti e problematici Ambienti incongruenti Resistenza al cambiamento Mancanza di scalabilità Lentezza sviluppo
  8. 8. Technical debt
  9. 9. Il lento cammino nella palude © Lara Paulussen
  10. 10. Cambiamento Gente VP of Technology +1/-1 DevOps Lead +1 Scrum Master +1 SW Dev Manager -1 Developers +4/-3 Formazione Agile
  11. 11. IaaS Ricostruzione
  12. 12. Automazione Infrastruttura Requisiti applicazioni Pipelines
  13. 13. La mappa Network Virtual Machines OS Config, Libraries, Runtimes Apps Cloud Services DatabasesAzure Pipelines
  14. 14. e qui cominciano le cose tecniche…
  15. 15. Nomi univoci Storage Accounts Key Vaults Function Apps Data Lake Store Container Registries SQL Server Names
  16. 16. Come confinare Subscription Isolare Contabilità Resource Groups Sicurezza
  17. 17. Idiosincrasie delle Region Paired regions Famiglie e dimensioni VM Servizi e funzionalità
  18. 18. East US 2 West EU Piano degli ambienti Central US East US 2 West EU C E U Q I Sandbox Legacy
  19. 19. Gestire i costi Enterprise Agreement Enterprise Dev/Test Visual Studio Enterprise Reserved Instances Billing, EA portal Azure Cost Management
  20. 20. Suggerimenti vari Blob & File Storage bootstrapping Key Vault Terraform DSC Azure DevOps Pipelines
  21. 21. Riassunto Il cloud funziona Pianificare Disegnare Controllare
  22. 22. Provisioning
  23. 23. Terraform DSL resource "azurerm_virtual_machine" "vm_demo" { name = "demovm" location = “northeurope" resource_group_name = "tf-demo" network_interface_ids = ["${azurerm_network_interface.vm_demo.id}"] vm_size = "Standard_B2s" storage_image_reference { publisher = "MicrosoftWindowsServer" offer = "WindowsServerSemiAnnual" sku = "Datacenter-Core-1803-smalldisk" version = "latest" } storage_os_disk { name = "demovm-osdisk" caching = "ReadWrite" create_option = "FromImage" } storage_data_disk { name = "demovm-datadisk" create_option = "Empty" lun = 0 disk_size_gb = "10" } os_profile { computer_name = "DEMOVM" admin_username = "${var.vm_admin_username}" admin_password = "${var.vm_admin_password}" } os_profile_windows_config { provision_vm_agent = true enable_automatic_upgrades = false } }
  24. 24. Come si usa Riga di comando terraform init terraform plan -out temp.json terraform apply temp.json Resource providers State (metadata)
  25. 25. Limiti del linguaggio HCL (<0.12) No condizionali meglio, solo su valori Cicli solo su risorse e non annidati Idiosincrasie del parser Es.
  26. 26. Cose difficili o importanti Organizzare il codice Directory Nomi delle risorse Stato su Azure Storage Source control Key Vault Non tutto funziona
  27. 27. Riassunto Terraform è facile Purché non si esageri Gestire come codice
  28. 28. Configurazione
  29. 29. Desired State Configuration (DSC) Configuration MyBox { # Install the IIS role WindowsFeature IIS { Ensure = "Present" Name = "Web-Server" } # Install the ASP .NET 4.5 role WindowsFeature AspNet45 { Ensure = "Present" Name = "Web-Asp-Net45" } #... } Reboots Modes Local / Push Pull ConfigurationMode ApplyOnly ApplyAndMonitor  ApplyAndAutocorrect PowerShell Gallery
  30. 30. Ansible --- - hosts: webservers vars: http_port: 80 max_clients: 200 remote_user: root tasks: - name: get latest version yum: name: httpd state: latest - name: write the config file template: src: /srv/httpd.j2 dest: /etc/httpd.conf notify: - restart apache - name: ensure running service: name: httpd state: started handlers: - name: restart apache service: name: httpd state: restarted
  31. 31. Come integrare i pezzi Azure Extension Terraform attiva Pre-pubblicazione su Storage Pipeline Azure Automation
  32. 32. Riassunto Per noi ha funzionato Ci sono molte altre combinazioni Parte più impegnativa Ambiente pronto ospitare app Zona grigia pipeline deploy
  33. 33. Deployment CI/CD Pipeline Pillar già note come Azure Pipelines
  34. 34. Deployment groups Agente in locale Con vista su Azure DevOps/TFS Service account Adeguatamente potente Azure Pipelines
  35. 35. Valori di Configurazione Variable groups Sostituzione ricorsiva Variabili sicure Azure Key Vault Azure Pipelines
  36. 36. Riassunto Source control Source control Source control Deployment groups Key Vault
  37. 37. Mito #7 DevOps è solo per il Software Open Source
  38. 38. Software funzionante più che una documentazione esaustiva Infrastructure-as-code è proprio questo!
  39. 39. Migrazione sorgenti Da TFVC a Git Riorganizzazione Repo per componente Non chiedetevi se Azure Repos
  40. 40. Collaborazione Iniziativa aziendale Tutti a provare Partecipazione agli stand-up
  41. 41. e il viaggio continua…
  42. 42. Biografia per immagini 43 giulio.dev@casavian.eu @giulio_vian https://www.slideshare.net/giuliov https://tfsaggregator.github.io http://blog.casavian.eu/ Hardware spec: 1KB RAM (upg. 16KB) 4KB ROM First computer Companies Communities
  43. 43. Bibliografia (1) Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation — J.Humble, D.Farley (Addison-Wesley) https://www.amazon.com/Continuous- Delivery/dp/0321601912/ The DevOps Handbook — G.Kim, P.Debois, J.Willis, J.Humble (IT Revolution Press) https://www.amazon.com/DevOps-Handbook- World-Class-Reliability- Organizations/dp/1942788002/ 44
  44. 44. Bibliografia (2) Terraform - Up and Running: Writing Infrastructure as Code — Y.Brikman (O′Reilly) https://www.amazon.co.uk/gp/product/1491 977086/ The DSC Book — Don Jones and Melissa Januszko (O′Reilly) https://leanpub.com/the-dsc-book 1491977086/ 45
  45. 45. Bibliografia (3) Refactoring Databases — Scott J Ambler and Pramod J. Sadalage (Addison-Wesley) https://www.amazon.com/Refactoring-Databases- Evolutionary-paperback-Addison-Wesley/dp/0321774515/ DevOps on the Microsoft Stack — Wouter de Kort (Apress) https://www.amazon.com/DevOps-Microsoft-Stack-Wouter- Kort/dp/1484214471/ Beginning Build and Release Management with TFS 2017 and VSTS — Chandrasekara, Chaminda (Apress) http://www.apress.com/gp/book/9781484228104 46
  46. 46. Riferimenti https://continuousdelivery.com/ https://www.terraform.io/ https://github.com/giuliov/terraform-fun https://azure.microsoft.com/en-us/services/key-vault/ https://docs.microsoft.com/en-us/azure/best-practices-availability-paired- regions https://martinfowler.com/articles/evodb.html http://www.powershellgallery.com/ https://docs.microsoft.com/en-us/powershell/dsc/overview https://itrevolution.com/devops-handbook-debunking-devops-myths/ https://docs.ansible.com/ 47

×