SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Uncover the mysteries of
Infrastructure as code
(IAC)!
- Prashant Kalkar
Evolution of Infra Practices and Tools
Why understand evolution of practices?
◎ Understand the need for newer tools and practices.
◎ Right tool for the right job
◎ Previous good practices might not work in new
context.
Configuration Management
◎ OS configuration
◎ Installations of application runtimes (java, python, go)
◎ Supporting applications installations (RabbitMQ,
Mongodb, prometheus etc).
Before Clouds
Self owned Servers, manual configuration
◎ High risk manual changes.
◎ Repeat changes for every server / environment.
◎ Different servers look completely different (changed at
different time)
Scripting
Scripting cont...
Scripting Cont...
◎ Server state matters (Different start state require
different steps to reach desired state).
◎ Idempotent steps.
◎ Imperative and error prone.
◎ Difficult to understand state of the server.
Configuration Management Tools
◎ Chef, Puppet, Ansible.
◎ Declarative (Desired State).
◎ Tools takes care of what changes to apply (diff)
◎ Widely successful and works great.
Configuration Management Tools - Challenges
◎ Configuration Drifts
◎ Automation gaps due to manual changes.
◎ Afraid to run automation.
◎ Difficult to reproduce from scratch
Moving away from Physical Machines
◎ Virtualisation
◎ Software defined Networking (SDN)
Rise of clouds
Clouds changed the game.
◎ On Demand infrastructure
◎ Dynamic infrastructure
◎ Service discovery, Private DNS
◎ Self service & API based.
◎ Elastic infrastructure
◎ Disposable infrastructure
Configuration management in Cloud
Infrastructure Provisioning
◎ Dynamic infrastructure requires provisioning.
◎ Tools like Terraform, Cloud Formation created.
◎ Instance lifecycle management at Runtime
(Autoscaling).
Immutable infrastructure
◎ Configuration at build time (AMI)
◎ Configuration at runtime time (user-data)
◎ Changes by replacing servers instead of updating.
◎ Reduced configuration drift.
◎ Manual changes reverted next deployment.
“
Disappearing servers is a feature
not a bug.
◎ Highly dynamic.
◎ Completely immutable.
◎ Build time configuration management (dockerfiles).
◎ Standardized deployment (Public Helm Charts,
Operators etc).
◎ Open application model
Container Orchestration Platforms (K8s)
IAC - Software engineering practices
for Infra code
IAC
◎ Everything is code (Infrastructure, Configuration,
Pipelines etc).
◎ All infra code in version control.
Are we managing Infra code as application code?
12 Factor App
Codebase
One codebase tracked in revision control, many deploys
Same code, different versions for environments.
Config
Store config in the environment
Different configuration per environment.
Code And Config for Infra code
Code vs Configuration
Code same for all environments
Configuration different per environment.
Code version is deployed to environment
No versioning required for Configuration (always latest)
Overridable defaults
Environment config change should not require code
promotion.
Violations
Per environment branches / folders
Shared (Same) code for all environment
Non-Violations
Tool supported versioning (or Git Tags)
Branch for versioning
Versioning anything with Git Tags
Kops Cluster Template versioning with Git Tag
Code vs Configuration - Summary
Terraform modules with Registry or Git tags (versioned)
Helm chart with helm registry (versioned)
Versioned Ansible Roles with Git tag
Versioned Kops template with Git Tags
Versioned Deployment scripts with Git Tags
Some more practices
GitOps
◎ Git as source of truth.
◎ Git changes to trigger pipelines.
○ No build with parameters
○ No manual builds
◎ Continuously sync between Infra and Git state (not
only on commits).
◎ K8s operators (Pull based model)
Apply changes continuously not only on Change
◎ Keep the infrastructure in Sync with automation
◎ Keep things up today (versions, security patches etc).
◎ Auto update things only at entry level (First
environment).
Code - Configurability vs Standardization
Highly configuration modules - Be careful.
Some examples
◎ Different AMIs
◎ Different docker images
Practices to keep in mind
◎ Name collisions
◎ Create before destroy (or rolling deployments)
◎ Handle Graceful shutdown
◎ Naming strategy for dynamic environment (terraform
workspaces)
◎ Plan for output values as well
Modularity vs Orchestration
Independently deployable
Different modules for different infra component.
Orchestration Module dependencies.
Well defined input and outputs for composable modules.
Conclusion
Use right tools for the right job.
Follow the same CI/CD practices for Infra code.
Reduce drift between code and Infrastructure
Keep the IAC code modular while managing the
orchestration.
Thank you!
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Kubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with DemoKubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with Demo
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
ArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdfArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdf
 
Helm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesHelm - Application deployment management for Kubernetes
Helm - Application deployment management for Kubernetes
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Kubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating SystemKubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating System
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdf
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull Request
 
Gitops: a new paradigm for software defined operations
Gitops: a new paradigm for software defined operationsGitops: a new paradigm for software defined operations
Gitops: a new paradigm for software defined operations
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdf
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
 
Cloud Native In-Depth
Cloud Native In-DepthCloud Native In-Depth
Cloud Native In-Depth
 
GitOps and ArgoCD
GitOps and ArgoCDGitOps and ArgoCD
GitOps and ArgoCD
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 
GitOps w/argocd
GitOps w/argocdGitOps w/argocd
GitOps w/argocd
 

Ähnlich wie Uncover the mysteries of infrastructure as code (iac)!

EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!
melbats
 

Ähnlich wie Uncover the mysteries of infrastructure as code (iac)! (20)

Introduction to IAC and Terraform
Introduction to IAC and Terraform Introduction to IAC and Terraform
Introduction to IAC and Terraform
 
IBM Datapower Gateways - Devops with UrbanCode Deploy
IBM Datapower Gateways - Devops with UrbanCode DeployIBM Datapower Gateways - Devops with UrbanCode Deploy
IBM Datapower Gateways - Devops with UrbanCode Deploy
 
Mainframe migration
Mainframe migrationMainframe migration
Mainframe migration
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
JavaScript for Enterprise Applications
JavaScript for Enterprise ApplicationsJavaScript for Enterprise Applications
JavaScript for Enterprise Applications
 
Self-service PR-based Terraform
Self-service PR-based TerraformSelf-service PR-based Terraform
Self-service PR-based Terraform
 
Meetup 2020 - Back to the Basics part 101 : IaC
Meetup 2020 - Back to the Basics part 101 : IaCMeetup 2020 - Back to the Basics part 101 : IaC
Meetup 2020 - Back to the Basics part 101 : IaC
 
Migrate to Microservices Judiciously!
Migrate to Microservices Judiciously!Migrate to Microservices Judiciously!
Migrate to Microservices Judiciously!
 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps WayDevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
 
Meet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento CloudMeet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento Cloud
 
Git ops & Continuous Infrastructure with terra*
Git ops  & Continuous Infrastructure with terra*Git ops  & Continuous Infrastructure with terra*
Git ops & Continuous Infrastructure with terra*
 
Infrastructure as Code - Getting Started, Concepts & Tools
Infrastructure as Code - Getting Started, Concepts & ToolsInfrastructure as Code - Getting Started, Concepts & Tools
Infrastructure as Code - Getting Started, Concepts & Tools
 
Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...
Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...
Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...
 
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary SlidesRise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
 
Oh the compilers you'll build
Oh the compilers you'll buildOh the compilers you'll build
Oh the compilers you'll build
 
Immutable infrastructure - Plain Concepts DevOps day
Immutable infrastructure - Plain Concepts DevOps dayImmutable infrastructure - Plain Concepts DevOps day
Immutable infrastructure - Plain Concepts DevOps day
 
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
 
EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!
 
Evolving your api architecture with the strangler pattern
Evolving your api architecture with the strangler patternEvolving your api architecture with the strangler pattern
Evolving your api architecture with the strangler pattern
 
Truemotion Adventures in Containerization
Truemotion Adventures in ContainerizationTruemotion Adventures in Containerization
Truemotion Adventures in Containerization
 

Mehr von Prashant Kalkar

Mehr von Prashant Kalkar (9)

Design principles to modularise a monolith codebase.pptx
Design principles to modularise a monolith codebase.pptxDesign principles to modularise a monolith codebase.pptx
Design principles to modularise a monolith codebase.pptx
 
GDCR 2022.pptx.pdf
GDCR 2022.pptx.pdfGDCR 2022.pptx.pdf
GDCR 2022.pptx.pdf
 
Exploring the flow of network traffic through kubernetes cluster.pptx
Exploring the flow of network traffic through kubernetes cluster.pptxExploring the flow of network traffic through kubernetes cluster.pptx
Exploring the flow of network traffic through kubernetes cluster.pptx
 
AWS ECS workshop
AWS ECS workshopAWS ECS workshop
AWS ECS workshop
 
Microservices testing consumer driven contracts using pact
Microservices testing  consumer driven contracts using pact Microservices testing  consumer driven contracts using pact
Microservices testing consumer driven contracts using pact
 
Immutable infrastructure with Terraform
Immutable infrastructure with TerraformImmutable infrastructure with Terraform
Immutable infrastructure with Terraform
 
Hibernate
HibernateHibernate
Hibernate
 
Functional programming
Functional programmingFunctional programming
Functional programming
 
Functional programming ii
Functional programming iiFunctional programming ii
Functional programming ii
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 

Uncover the mysteries of infrastructure as code (iac)!

  • 1. Uncover the mysteries of Infrastructure as code (IAC)! - Prashant Kalkar
  • 2. Evolution of Infra Practices and Tools
  • 3. Why understand evolution of practices? ◎ Understand the need for newer tools and practices. ◎ Right tool for the right job ◎ Previous good practices might not work in new context.
  • 4. Configuration Management ◎ OS configuration ◎ Installations of application runtimes (java, python, go) ◎ Supporting applications installations (RabbitMQ, Mongodb, prometheus etc).
  • 6. Self owned Servers, manual configuration
  • 7. ◎ High risk manual changes. ◎ Repeat changes for every server / environment. ◎ Different servers look completely different (changed at different time)
  • 10. Scripting Cont... ◎ Server state matters (Different start state require different steps to reach desired state). ◎ Idempotent steps. ◎ Imperative and error prone. ◎ Difficult to understand state of the server.
  • 11. Configuration Management Tools ◎ Chef, Puppet, Ansible. ◎ Declarative (Desired State). ◎ Tools takes care of what changes to apply (diff) ◎ Widely successful and works great.
  • 12. Configuration Management Tools - Challenges ◎ Configuration Drifts ◎ Automation gaps due to manual changes. ◎ Afraid to run automation. ◎ Difficult to reproduce from scratch
  • 13. Moving away from Physical Machines ◎ Virtualisation ◎ Software defined Networking (SDN)
  • 15. Clouds changed the game. ◎ On Demand infrastructure ◎ Dynamic infrastructure ◎ Service discovery, Private DNS ◎ Self service & API based. ◎ Elastic infrastructure ◎ Disposable infrastructure
  • 17. Infrastructure Provisioning ◎ Dynamic infrastructure requires provisioning. ◎ Tools like Terraform, Cloud Formation created. ◎ Instance lifecycle management at Runtime (Autoscaling).
  • 18. Immutable infrastructure ◎ Configuration at build time (AMI) ◎ Configuration at runtime time (user-data) ◎ Changes by replacing servers instead of updating. ◎ Reduced configuration drift. ◎ Manual changes reverted next deployment.
  • 19. “ Disappearing servers is a feature not a bug.
  • 20. ◎ Highly dynamic. ◎ Completely immutable. ◎ Build time configuration management (dockerfiles). ◎ Standardized deployment (Public Helm Charts, Operators etc). ◎ Open application model Container Orchestration Platforms (K8s)
  • 21. IAC - Software engineering practices for Infra code
  • 22. IAC ◎ Everything is code (Infrastructure, Configuration, Pipelines etc). ◎ All infra code in version control. Are we managing Infra code as application code?
  • 24. Codebase One codebase tracked in revision control, many deploys Same code, different versions for environments.
  • 25. Config Store config in the environment Different configuration per environment.
  • 26. Code And Config for Infra code
  • 27. Code vs Configuration Code same for all environments Configuration different per environment. Code version is deployed to environment No versioning required for Configuration (always latest) Overridable defaults Environment config change should not require code promotion.
  • 30. Shared (Same) code for all environment
  • 32. Tool supported versioning (or Git Tags)
  • 34. Versioning anything with Git Tags Kops Cluster Template versioning with Git Tag
  • 35. Code vs Configuration - Summary Terraform modules with Registry or Git tags (versioned) Helm chart with helm registry (versioned) Versioned Ansible Roles with Git tag Versioned Kops template with Git Tags Versioned Deployment scripts with Git Tags
  • 37. GitOps ◎ Git as source of truth. ◎ Git changes to trigger pipelines. ○ No build with parameters ○ No manual builds ◎ Continuously sync between Infra and Git state (not only on commits). ◎ K8s operators (Pull based model)
  • 38. Apply changes continuously not only on Change ◎ Keep the infrastructure in Sync with automation ◎ Keep things up today (versions, security patches etc). ◎ Auto update things only at entry level (First environment).
  • 39. Code - Configurability vs Standardization Highly configuration modules - Be careful. Some examples ◎ Different AMIs ◎ Different docker images
  • 40. Practices to keep in mind ◎ Name collisions ◎ Create before destroy (or rolling deployments) ◎ Handle Graceful shutdown ◎ Naming strategy for dynamic environment (terraform workspaces) ◎ Plan for output values as well
  • 41. Modularity vs Orchestration Independently deployable Different modules for different infra component. Orchestration Module dependencies. Well defined input and outputs for composable modules.
  • 42. Conclusion Use right tools for the right job. Follow the same CI/CD practices for Infra code. Reduce drift between code and Infrastructure Keep the IAC code modular while managing the orchestration.

Hinweis der Redaktion

  1. This include infra changes => Manual. Fixed Infra with configuration management. On Demand Dynamic Infrastructure (Service discovery, DNS for services, Dynamic SSH Config, Dynamic Application Configuration). Elastic nature of the cloud.
  2. 12 factor apps. Everything is code. Code vs Configuration. Code is always versioned.
  3. (Can be deleted)
  4. Will probably remove this.