O documento discute Infraestrutura como Código (IaC) e como ele pode ser usado para automatizar infraestrutura em nuvem de forma segura e consistente. Ele explica os benefícios do IaC, como aumentar a produtividade das equipes, permitir mudanças contínuas e melhorias incrementais. Também aborda desafios como deriva de configuração e ferramentas IaC populares como Terraform.
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
IaC Multi-Cloud CI/CD
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
• System can be easily reproduced
• System are disposable
• System 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
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.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Code Repository - Bitbucket
49. 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.
Azure DevOps
50. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
CVS
Demo – Steps
Pipeline ReleasePipeline Build
Agent Hosting
Build/Test/Publish
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.
AWS EC2
52. 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.
App Running
53. 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
54. 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)
55. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Demo – Terraform Files
56. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Concluding remarks
• IaC is essential for
infrastructure automation
• Fragile Infrastructure is a
biggest challenge for IaC
• Choosing IaC tool is not easy,
the tool can't just fit you infra
well.
• Preferer open source IaC with
support to Multi-Cloud
• Using IaC in pipeline makes
CI/CD full automated.
57. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Studies
Infrastructure as Code
Managing servers in the
Cloud, Morris, K. (2016)
Terraform Up & Running
Writing Infrastructure as
Code, Brikman, Y (2017)
58. 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
In a data center far, far away, an ancient group of powerful beings known as sysadmins used to deploy
infrastructure manually. Every server database, every load balancer, every bit of network configuration
was created and managed by hand.
In a data center far, far away, an ancient group of powerful beings known as syadmins used to deploy
infrastructure manually. Every server database, every load balancer, every bit of network configuration
was created nd managed by hand.
IaC is an emergent term. It doesn’t have a clear origin, but there rumors that John Willis used this term in 2009 during a Velocity Conference - San Jose California
Iron Age: systems were direclty bound to physical hardware. Provisitioning and maintaining infra was manual work, forcing humans to spend time pointings, clicking, and typing to keep gears turning. Change management processes emphasized careful up-front consideration, design, and review work. This made sense because getting it wrong was expensive.
Cloud Age: Systems have been decoupled from the physical hardware. Routine provisioning and maintenence can be delegated to software systems, freeing the humans from drudgery. Changes can be made in minutes, if not second. Change management, can exploit this speed, providing better realibility along with faster time to market.
Treat you infrastructure like a cattle not like a pet
Fragile Infrastructure - Most of cases
Configuration Drift: Variations in servers (IE: 10 servers .net core 2.1 and 10 servers .net core 2.2)
SnowFlake Servers: Don’t touche me server. The server or servers that are unmanaged variantions and when touch...problems appeared
Automation Fear: based on consequences of fragile infrastructure
Erosion: In a perfect world an automated server will never need to be touch, to fix something. But problems will creep into a running system...one day.
Choose IaC is painfull. I’ll explain it later
Fragile Infrastructure - Most of cases
Configuration Drift: Variations in servers (IE: 10 servers .net core 2.1 and 10 servers .net core 2.2)
SnowFlake Servers: Don’t touche me server. The server or servers that are unmanaged variantions and when touch...problems appeared
Automation Fear: based on consequences of fragile infrastructure
Erosion: In a perfect world an automated server will never need to be touch, to fix something. But problems will creep into a running system...one day.
Choose IaC is painfull. I’ll explain it later
Iac is wonderful, but the process to pickingf an IaC tool is not.
There not clear distiction, although both of division can do something (Ex: Terraform can run scripts inside each server, Ansible can deploy servers).
Server templating tools: Docker and Packer (HashiCorp) => server provisioning tool is the best choice
It’s commoun to use more than one tool.
There not clear distiction, although both of division can do something (Ex: Terraform can run scripts inside each server, Ansible can deploy servers).
Server templating tools: Docker and Packer (HashiCorp) => server provisioning tool is the best choice
It’s commoun to use more than one tool.