(ARC307) Infrastructure as Code

67
http://arc307.stelligent.com © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. David Winter, AWS Paul Duvall, CTO, Stelligent Soofi Safavi, CTO, Radian David Shurtliff, AWS October 2015 Infrastructure as Code Enabling Your Enterprise ARC307

Transcript of (ARC307) Infrastructure as Code

http://arc307.stelligent.com © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

David Winter, AWS

Paul Duvall, CTO, Stelligent

Soofi Safavi, CTO, Radian

David Shurtliff, AWS

October 2015

Infrastructure as Code

Enabling Your Enterprise

ARC307

http://arc307.stelligent.com

http://arc307.stelligent.com

Why is this important to you?

Structure Speed Health Security

http://arc307.stelligent.com

Key Takeaways

How to code

infrastructureYou can code

everything

You can start this at

your Enterprise

http://arc307.stelligent.com

Build and Operate Infrastructure as Software

Application

Source code

Interpreter

Desired application state

Infrastructure

JSON

AWS Service API

Desired infrastructure state

http://arc307.stelligent.com

Build and Operate Infrastructure as Software

Application

Source code

Interpreter

Desired application state

Infrastructure

JSON

AWS Service API

Desired infrastructure state

http://arc307.stelligent.com

Build and Operate Infrastructure as Software

Application

Source code

Interpreter

Desired application state

Infrastructure

JSON

AWS Service API

Desired infrastructure state

http://arc307.stelligent.com

Build and Operate Infrastructure as Software

Application

Source code

Interpreter

Desired application state

Infrastructure

JSON

AWS Service API

Desired infrastructure state

http://arc307.stelligent.com

Infrastructure as Code:

Techniques, practices, and tools from software

development applied to creating reusable, maintainable,

extensible, and testable infrastructure.

http://arc307.stelligent.com

http://arc307.stelligent.com

Reusable – Multiple Environments

Development

IaC Template

http://arc307.stelligent.com

Reusable – Multiple Environments

Development

Production

IaC Template

http://arc307.stelligent.com

Reusable – Multiple Environments

Development

Production

Forensics Analysis

IaC Template

http://arc307.stelligent.com

Maintainable– Integrate in CI/CD Pipelines

App Developers

IaC Template

Story

App Source

Code

http://arc307.stelligent.com

Maintainable– Integrate in CI/CD Pipelines

App Developers

IaC Template

Story

AWS CodeCommit

Source Control

App Source

Code

http://arc307.stelligent.com

Maintainable– Integrate in CI/CD Pipelines

AWS

CloudFormation

App Developers

AWS CodePipeline

IaC Template

Story

AWS CodeCommit

Source Control

AWS CodeDeploy

App Source

Code

http://arc307.stelligent.com

Maintainable– Integrate in CI/CD Pipelines

AWS

CloudFormation

App Developers

AWS CodePipeline

Dev

Staging

Prod

IaC Template

Story

AWS CodeCommit

Source Control

AWS CodeDeploy

App Source

Code

http://arc307.stelligent.com

Maintainable– Integrate in CI/CD Pipelines

AWS

CloudFormation

App Developers

AWS CodePipeline

Dev

Staging

Prod

IaC Template

Story

AWS CodeCommit

Source Control

AWS CodeDeploy

App Source

Code

http://arc307.stelligent.com

Extensible – AWS Lambda Custom Resources

IaC Template

http://arc307.stelligent.com

Extensible – AWS Lambda Custom Resources

IaC Template

AWS Lambda

http://arc307.stelligent.com

Extensible – AWS Lambda Custom Resources

Cross-stack reference: VPC

Cross-stack reference:

Security Group

Cross-stack reference:

Subnet

Look up AMI ID

Utility function – e.g., string

reversal

IaC Template

http://arc307.stelligent.com

Extensible – AWS Lambda Custom Resources

Cross-stack reference: VPC

Cross-stack reference:

Security Group

Cross-stack reference:

Subnet

Look up AMI ID

Utility function – e.g., string

reversal

IaC Template

http://arc307.stelligent.com

http://arc307.stelligent.com

Testable – Blue/Green Deployments

ExampleApp V1

IaC Template

http://arc307.stelligent.com

Testable – Blue/Green Deployments

AWS CodeDeployExampleApp V1

ExampleApp V2

IaC Template

http://arc307.stelligent.com

Testable – Blue/Green Deployments

AWS CodeDeployExampleApp V1

ExampleApp V2

IaC Template

http://arc307.stelligent.com

How Do I Get Started?

http://arc307.stelligent.com

http://arc307.stelligent.com

One-Click

Deployments

AWS as a sole

focus

Focusing on

Enterprises

http://arc307.stelligent.com

Paul Duvall, Co-Founder, [email protected]

@paulduvall

http://arc307.stelligent.com

Live Demo

http://arc307.stelligent.com

https://github.com/stelligent/dromedary/

http://arc307.stelligent.com

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Dromedary Architecture

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Dromedary Architecture

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Dromedary Architecture

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Dromedary Architecture

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Dromedary Architecture

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Dromedary Architecture

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Dromedary Architecture

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Dromedary Architecture and Code

pipeline.json

dromedary_spec.rb

nginx_spec.rb

nodejs_spec.rb

install_dromedary.rb

code_deploy.rbapp-instance.json

jenkins-

instance.json

jobdsl.groovy

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Other Infrastructure as Code Approaches

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Other Infrastructure as Code Approaches

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Other Infrastructure as Code Approaches

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Other Infrastructure as Code Approaches

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

From Concept to Production: A 6-part Heuristic

Document Test Code

Version Continuous Monitor

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Dromedary – Deployment Results

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Blue/Green Deployments with Dromedary

v 1.1 v 1.2

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Customer Success Story - Intro

Customer Success Story

• Radian

• Loan Data Repository

• Partnering with Stelligent

• Moving Radian to IaC in less than 1 year

http://arc307.stelligent.com

Radian LDR Architecture

http://arc307.stelligent.com

Dromedary – SSL change

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

Who Is Radian?● Promote and preserve the tradition of homeownership while

protecting lenders from default-related losses on residential first

mortgages

● Facilitate the sale of low-downpayment mortgages in the

secondary market

● Help clients and investors expertly and prudently manage risk in

any market condition

http://arc307.stelligent.com

Why We Adopted Infrastructure as Code

Quality Agility Efficiency

http://arc307.stelligent.com

Benefits We Have Observed

http://arc307.stelligent.com

3 Dimensions of IaC Adoption

Enterprises Need to Consider

http://arc307.stelligent.com

Scope and Timing

http://arc307.stelligent.com

Cultural Shift

http://arc307.stelligent.com

Limitation of Enterprise Applications

http://arc307.stelligent.com

Executive Advice

http://arc307.stelligent.com

Consider your first launch

http://arc307.stelligent.com

Don’t underestimate the impact of people

http://arc307.stelligent.com

IaC-able?

http://arc307.stelligent.com

Dromedary – SSL Deployment

https://github.com/stelligent/dromedary

http://arc307.stelligent.com

ARC307 Summary

http://arc307.stelligent.com

What Can You Do Now?

• Go attend more sessions about infrastructure as code

• Talk to AWS partners and your AWS team about IaC

• Look at the tools and services AWS tech partners offer

http://arc307.stelligent.com

What Can You Do Later?

• Build an AWS CloudFormation template

• Write shell script using the AWS CLI

• Start committing automated tests and code

• Start small and build up your complexity of code and

workflow

http://arc307.stelligent.com

Coleman Rule #17

“The only people that are not making mistakes, are those

that are not doing anything.”

https://www.kcoleman.me/coleman-laws/

http://arc307.stelligent.com

Thank you!

ARC307

http://arc307.stelligent.com

Remember to complete

your evaluations!