Na era do Devops, a operacionalização de serviços na nuvem, cada vez mais, vem sendo automatizada para atender demandas emergentes de negócios a qual exige resposta rápida à mudancas e capacidade em se escalar. Automatizações como CI/CD (Continuous Integration e Continuous Development) permitem em grande parte atender cenários diversos onde é necessário reduzir ou simplesmente liquidar operações manuais de Deployment por meio de passos automatizados intermediados por um agente robô. Em contrapartida, existe a necessidade em se ter o mínimo necessário de infraestrutura como pré-requisito, o que obriga equipes a investirem tempo e esforço na criação desses ambientes, nos quais, em alguns casos, a complexidade é multiplicada pelo uso de serviços distintos de computação na nuvem, a Multi-cloud. O tempo " Infrastructure as a Code" é um assunto emergente o qual trata infraestrutura como código versionado, um asset do projeto onde o seu objetivo não é apenas reduzir o esforço operacional mas também poder compatilhar conhecimento e engajar membros de equipes. Esta apresentação tem como objetivo introduzir "Infrastructure as a Code" assim como o seu potencial para cenários Multi-Cloud.
Agenda Versão Final - CMG 14a. conferencia nacional
Scaling Multi-cloud with Infrastructure as Code por André Rocha Agostinho (SindicoNet/Magnadev) - ATUALIZADA E AMPLIADA
1. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
May 14, 2019
André Rocha Agostinho
CTO SindicoNet / Magnadev
Scaling Multi-Cloud
with Infrastructure as Code
2. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
CMG 2018 Retrospective
Cloud Continuous Integration
A distributed approach using
distinct services
• CI/CDs in Multi-Cloud
• Organizational Framework
CMG Brasil Impact 2019
Webinar CMG.Org
3. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
CMG 2019
Scaling Multi-Cloud
with Infrastructure as Code
Infrastructure
• Automation setup
• Scaling Multi-Cloud
• Applying in CI/CDs
4. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
A long time ago...or not...
Handmade
• Each server database
• Every load balancer
• Every bit of network
configuration
5. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Dark Age
Fear of...
• Downtime
• Accidental misconfiguration
• Slow and fragile deployments
• Sysadmins fall to Dark side
• E.g took a vacation
6. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Good News
A Little Hope in..
• Cloud
• Containers
• CI/CD
• DevOps Culture
• Server Automation
...
• IaC
7. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
What’s IaC?
8. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Searching for a Definition
9. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
The Definition
Infrastructure as Code (IaC)
“An approach to
infrastructure automation
based on practices from
software development.”
Kief Morris
The author of Infrastructure As Code Book
10. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Explanation
• Consistent
• Repeatable routines
• Provisioning
• Changing
“An approach to infrastructure automation based
on practices from software development.”
11. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Explanation
“An approach to infrastructure automation based
on practices from software development.”
• VCS
• Tests
• Refactoring
• CI/CD
12. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Explanation
Infrastructure automation
Software Development Practices
Infrastructure
Software
and Data
13. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
How is it possible?
IT Iron Age IT Cloud Age
14. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Cloud Facilities
• Provisioning is easy
• Highly distributed
• Highly scalable
15. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Cloud Challenges
• Portfolio system growing fast.
• Keep everything running can
be tough.
• Teams are still wasting time
fixing problems.
• Multi Cloud
16. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
IaC Benefits
• Enable changes
• Changes are routine
(no drama)
• Continuous Improvements
• Offer solutions from:
• Implemeting (coding)
• Testing
• Measuring
17. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
IaC Benefits
• Increase Productivity
• Automation
• Team members get focus
on valuable things
• Share knowledge
• Team members can be
able to define, provision
and manage resources
18. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
IaC Principles
• Systems can be easily reproduced
• Systems are disposable
• Systems are consistent
• Processes are repeatable
• Design is always changing
19. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
IaC Practices
• Definition Files
(Ex. Recipes, Manifest..)
• Self-documented System
and Process
• Version Control System
• Continuously Test System and
Processes
20. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
IaC Practices
• Small Changes Rather Than
Batches
• Keep Services Available
Continuously
• Continuous Improvement
Rather Than Fixes
21. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
IaC Manifesto
The IaC Manifesto
Infrastructure
Supports Changes
Over
Obstacles
and Constraints
IT Teams focused
on Valuable Things
Over
Routine and
Repetitive Tasks
Team members are able to
define, provision and manage
resources
Over
Infra Teams to do
it for them
Improvements are
made Continuously
Over Big Bang Projects
Solutions for problems are
provided from implementing,
testing and measuring
Over
Discussing, meetings and
documents.
22. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
IaC Challenges
• Configuration Drift
• Snow Flake Server
• Automation Fear
• Erosion
• Choose IaC Tool
My servers
are inconsistent
I make changes
outside my auto tool
I’m afraid that running my
auto tool will break something
FEAR
23. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
IaC Challenges
• Fragile Infrastructure
24. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
IaC Tools
25. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Open Source / Multi Cloud
Multi-cloud
26. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Configuration Management X Provisioning
27. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Mutable Infrasctructure X Immutable Infrastructure
2.2
2.1
2.2 2.1
28. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Procedural X Declarative
29. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Procedural X Declarative
30. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Procedural X Declarative
31. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Declarative language
+2
32. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Procedural language
+5
33. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Master X Masterless
34. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Agent X Agentless
35. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Large community versus small community
2016 Sept
https://www.oreilly.com/library/view/terraform-up-and/9781491977071/ch01.html
36. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Choosing the Right Tool
• Mature versus cutting-edge
2016 Sept
https://www.oreilly.com/library/view/terraform-up-and/9781491977071/ch01.html
37. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Terraform
• Open source
• Multi-cloud
• Declarative language
• Masterless / Agentless
• Provisioning/Configuration Management
• First Release in 2014
38. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
TerraForm - Example
39. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
TerraForm - Example
40. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
TerraForm - Example
41. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Multi-Cloud
https://www.rightscale.com/blog/cloud-industry-insights/cloud-computing-trends-2018-state-cloud-survey
2018 Right Scale Report, August 20th
42. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Comparing Cloud (comparecloud.in)
43. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Multi-Cloud CI/CD
44. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
IaC in a Multi-Cloud CI/CD
45. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Demo
46. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Demo
• Web Application
• CI / CD
• No Infra
• App running on:
http://18.229.29.254
47. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Demo - http://18.229.29.254
48. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
VCS
Demo – Steps
Agent
49. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Demo – WebApp Files
• YML
• Source
• BeforeInstall
• AfterInstall
• PS1
• Before-Install.ps1
• After-Install.ps1
50. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Demo – WebApp Files
• Versioned
• Vars
• Configs
• Definitions
• Terraform IaC
51. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Code Repository - Bitbucket
52. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
VCS
Demo – Steps
Pipeline ReleasePipeline Build
Agent
Build/Test/Publish
53. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Buid Pipeline
54. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Release Pipeline
55. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Demo – Terraform Files
• Plugins (Init)
• E.g: AWS, Azure..
• .Tfstate
• Store Infra State
• .Tfstate backup
• Auto backup
56. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Demo – Terraform Files
• AWS Policies
• IAM Roles
• AWS Provider
• Provisioning
• Variables (Keys)
57. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Demo – Terraform Files
58. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
VCS
Demo – Steps
Pipeline ReleasePipeline Build
Agent Hosting
Build/Test/Publish
59. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
AWS EC2
60. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
AWS CodeDeploy
61. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Demo - http://18.229.29.254
62. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Demo - http://18.229.29.254
63. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
CVS
Demo – Steps
Pipeline ReleasePipeline Build
Agent Hosting
Build/Test/Publish
64. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Terraform destroy
• AWS Policies
• IAM Roles
• EC2
• EBS
• WebApp
65. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Concluding remarks
• IaC is essential for
infrastructure automation
• Fragile Infrastructure is the
biggest challenge for IaC
• Choosing a IaC tool is not
easy, the tool can't just fit
your infra well.
• Preferer open source IaC with
support to Multi-Cloud
• Using IaC in pipeline makes
CI/CD full automated.
66. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Learning IaC
Infrastructure as Code
Managing servers in the
Cloud, Morris, K. (2016)
Terraform Up & Running
Writing Infrastructure as
Code, Brikman, Y (2017)
67. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
That's all folks!
andre@magnadev.com.br
aragostinho.github.io
in/andre-rocha-agostinho/
Doubts? Reach me!
André Agostinho