SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Test-Driven Infrastructure w/ CloudFormation and Cucumber




                                     Paul Duvall, Stelligent CTO
                                     Author of Continuous Integration and
                                     DevOps in the Cloud
                                     Tuesday, July 24, 2012




           Stelligent Monthly Cloud Delivery Webinar Series




                           COPYRIGHT © 2012 Stelligent Systems LLC
                            Unauthorized duplication is not permitted.
Introduction

   Next       August 28th: Scripted Deployment with Capistrano
  Webinar     http://stelligent.com/cap with Brian Jakovich


              Powerpoint and other resources will be emailed to
 Materials    attendees and available in Linkedin group


  Linkedin    Continuous Delivery in the Cloud: http://linkd.in/Pfbf1h



 Stelligent   Cloud Delivery: Migration, Training and Operations


   June       Recording of last month’s webinar:
  Webinar     http://www.stelligent.com/aws-webinar/




                           COPYRIGHT © 2012 Stelligent Systems LLC
                            Unauthorized duplication is not permitted.
About Me




           COPYRIGHT © 2012 Stelligent Systems LLC
            Unauthorized duplication is not permitted.
Continuous Delivery




http://bit.ly/cdwebinar1
                           COPYRIGHT © 2012 Stelligent Systems LLC
                            Unauthorized duplication is not permitted.
Continuous Delivery




               COPYRIGHT © 2012 Stelligent Systems LLC
                Unauthorized duplication is not permitted.
COPYRIGHT © 2012 Stelligent Systems LLC
 Unauthorized duplication is not permitted.
5 Steps to Continuous Delivery

      Document     Document to automate



         Test      Write an automated test to verify behavior



        Script     Automate to a single command




       Version     Version all scripts




      Continuous   Run headless with every change



                      COPYRIGHT © 2012 Stelligent Systems LLC
                       Unauthorized duplication is not permitted.
Business Value of Test-Driven Infrastructure

•  Learn of problems earlier by integrating CI with
   infrastructure - Infrastructure changes integrated
   with rest of software system
•  Scripted Infrastructure becomes Documentation
•  Remove Gatekeepers
•  Isolate Destructive Changes
•  Canonical System
•  Quickly get back to earlier version of Infrastructure
•  Infrastructure as Code: Apply rigorous practices
   similar to writing application code




                       COPYRIGHT © 2012 Stelligent Systems LLC
                        Unauthorized duplication is not permitted.
Test-Driven Infrastructure within Delivery Pipeline


                                    •  Manually Configure and
                                       Document Environment
                                    •  Write Acceptance Test
                                    •  Script the Environment
                                       provisioning
                                    •  Version the infrastructure
                                       automation (Checkin the
                                       Script(s))
                                    •  Run as part of a Continuous
                                       Process
                                    •  Make “pre-baked”
                                       environments available to
                                       team members and CD
                                       system


                     COPYRIGHT © 2012 Stelligent Systems LLC
                      Unauthorized duplication is not permitted.
Sidebar: Continuous Integration Process



              DBA


                                   Polling
 Develo                                                                               Create         Target
  per                                                                              Environments   Environment
                                                                                                   Instances
                       Version-                            CI Server                  Tests
                       Control
                      Repository                              Build                  Deploy
Operations


             Tester




                                     COPYRIGHT © 2012 Stelligent Systems LLC
                                      Unauthorized duplication is not permitted.
Test-Driven Infrastructure: Success




            Jenkins                                                       Environment Job




        Environment Email
                                                                               SSH




        Deployment Email
                                                                           Working App


                            COPYRIGHT © 2012 Stelligent Systems LLC
                             Unauthorized duplication is not permitted.
Test-Driven Infrastructure: Failure
                                •  Notified soon after
                                   infrastructure script is
                                   committed to version-control
                                   repository
                                •  Since all infrastructure scripts
                                   and config are versioned, can
                                   simply revert to previous
                                   known-good version
                                •  Failure is identified, scripts are
                                   changed and committed back to
                                   version-control system
                                •  Infrastructure changes are
                                   integrated with rest of software
                                   system




                 COPYRIGHT © 2012 Stelligent Systems LLC
                  Unauthorized duplication is not permitted.
Non-Automated Test Scenario
            •  Environment is manually created by
               running through a series of steps to
               install/configure OS, networking, servers,
               etc.
            •  In some cases, these steps are
               documented. Often, the documentation is
               not regularly updated
            •  New environments – based on the “initial
               environment” – are created by going
               through similar manual steps
            •  No canonical state of environments –
               each environment is unique
            •  Software is deployed to environments
               (Dev, QA, Stage, etc.). Deployments fail.
               Root cause is unclear.
            •  Troubleshooting and patch work ensue.
               State remains dubious. Team members
               apply superstition to root cause.

                 COPYRIGHT © 2012 Stelligent Systems LLC
                  Unauthorized duplication is not permitted.
Sidebar: Test-Driven Development with JUnit




                    COPYRIGHT © 2012 Stelligent Systems LLC
                     Unauthorized duplication is not permitted.
Scripted Infrastructure (Code)
•  Walkthrough of production.template CloudFormation template




                          COPYRIGHT © 2012 Stelligent Systems LLC
                           Unauthorized duplication is not permitted.
Cucumber BDD Basics

•  Philosophy
    •  Executable Specifications
    •  Continuous Traceability
•  Cucumber Components (1)
    •  Business Facing
        •  Features
        •  Scenarios
        •  Steps
    •  Technology Facing
        •  Step Definitions
        •  Support Code
        •  Automation Library
        •  Syntax Rules: Gherkin




From “The Cucumber Book” (Wynne and Hellesoy; Pragmatic Bookshelf, 2012)


                                                                           COPYRIGHT © 2012 Stelligent Systems LLC
                                                                            Unauthorized duplication is not permitted.
TDI BDD Components


             CloudFormation




                       Cucumber




   Jenkins




               Step Definitions




                                  COPYRIGHT © 2012 Stelligent Systems LLC
                                   Unauthorized duplication is not permitted.
TDI Cucumber Examples

•  Walkthrough of production.feature Cucumber feature




                          COPYRIGHT © 2012 Stelligent Systems LLC
                           Unauthorized duplication is not permitted.
Other TDI Tools

•  Cucumber Nagios: http://auxesis.github.com/cucumber-nagios/
•  Cucumber Chef: http://www.cucumber-chef.org/




                          COPYRIGHT © 2012 Stelligent Systems LLC
                           Unauthorized duplication is not permitted.
Question and Answer

     Blog      http://www.stelligent.com/blog/



    Social     @stelligent @paulduvall facebook.com/Stelligent



   CD Video    http://bit.ly/cdwebinar1



   Solutions   http://www.stelligent.com/solutions/


    August
               http://www.stelligent.com/cap/
    Webinar


    Training   http://www.stelligent.com/cd-training/

                           COPYRIGHT © 2012 Stelligent Systems LLC
                            Unauthorized duplication is not permitted.
Infrastructure Components
             CloudFormation Template




                                                                                   Elastic IP




  Route 53            IAM                S3                         EC2                          SimpleDB       Linux OS
                                                                                                  Config
                                                                 Security Group




  Apache                Tomcat         Jenkins             Version-Control Repo                 Cucumber     Amazon Simple
  HTTPD                                                                                                     Notification Service
                                                                                                                   (SNS)




                                                 COPYRIGHT © 2012 Stelligent Systems LLC
                                                  Unauthorized duplication is not permitted.

Weitere ähnliche Inhalte

Was ist angesagt?

Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSAmazon Web Services
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...Amazon Web Services
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSDanilo Poccia
 
Microsoft Tech Summit Switzerland 2019 - DOCKER + AZURE DEVOPS + KUBERNETES = ♥
Microsoft Tech Summit Switzerland 2019 - DOCKER + AZURE DEVOPS + KUBERNETES = ♥Microsoft Tech Summit Switzerland 2019 - DOCKER + AZURE DEVOPS + KUBERNETES = ♥
Microsoft Tech Summit Switzerland 2019 - DOCKER + AZURE DEVOPS + KUBERNETES = ♥Marc Müller
 
DCEU 18: Making Legacy Legendary - A Windows 2003 Application Journey to the ...
DCEU 18: Making Legacy Legendary - A Windows 2003 Application Journey to the ...DCEU 18: Making Legacy Legendary - A Windows 2003 Application Journey to the ...
DCEU 18: Making Legacy Legendary - A Windows 2003 Application Journey to the ...Docker, Inc.
 
Webinar: Continuous Deployment with MongoDB at Kitchensurfing
Webinar: Continuous Deployment with MongoDB at KitchensurfingWebinar: Continuous Deployment with MongoDB at Kitchensurfing
Webinar: Continuous Deployment with MongoDB at KitchensurfingMongoDB
 
WinOps Conf 2015 - Deploying apps to the Cloud with Octopus Deploy
WinOps Conf 2015 - Deploying apps to the Cloud with Octopus DeployWinOps Conf 2015 - Deploying apps to the Cloud with Octopus Deploy
WinOps Conf 2015 - Deploying apps to the Cloud with Octopus DeployWinOps Conf
 
AWS Webcast - Amazon Web Services for Development and Test
AWS Webcast - Amazon Web Services for Development and TestAWS Webcast - Amazon Web Services for Development and Test
AWS Webcast - Amazon Web Services for Development and TestAmazon Web Services
 
414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integrationTrevor Dolby
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Amazon Web Services
 
Development and Test on AWS - Pizette
Development and Test on AWS - PizetteDevelopment and Test on AWS - Pizette
Development and Test on AWS - PizetteAmazon Web Services
 
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...Amazon Web Services
 
Deploying systems using AWS DevOps tools
Deploying systems using AWS DevOps toolsDeploying systems using AWS DevOps tools
Deploying systems using AWS DevOps toolsMassTLC
 
Deploying Azure DevOps using Terraform
Deploying Azure DevOps using TerraformDeploying Azure DevOps using Terraform
Deploying Azure DevOps using TerraformAdin Ermie
 
Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017
Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017
Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017Amazon Web Services
 
Building a CI/CD Pipeline For Container Deployment to Amazon ECS
Building a CI/CD Pipeline For Container Deployment to Amazon ECSBuilding a CI/CD Pipeline For Container Deployment to Amazon ECS
Building a CI/CD Pipeline For Container Deployment to Amazon ECSAmazon Web Services
 

Was ist angesagt? (20)

Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
Microsoft Tech Summit Switzerland 2019 - DOCKER + AZURE DEVOPS + KUBERNETES = ♥
Microsoft Tech Summit Switzerland 2019 - DOCKER + AZURE DEVOPS + KUBERNETES = ♥Microsoft Tech Summit Switzerland 2019 - DOCKER + AZURE DEVOPS + KUBERNETES = ♥
Microsoft Tech Summit Switzerland 2019 - DOCKER + AZURE DEVOPS + KUBERNETES = ♥
 
DCEU 18: Making Legacy Legendary - A Windows 2003 Application Journey to the ...
DCEU 18: Making Legacy Legendary - A Windows 2003 Application Journey to the ...DCEU 18: Making Legacy Legendary - A Windows 2003 Application Journey to the ...
DCEU 18: Making Legacy Legendary - A Windows 2003 Application Journey to the ...
 
Webinar: Continuous Deployment with MongoDB at Kitchensurfing
Webinar: Continuous Deployment with MongoDB at KitchensurfingWebinar: Continuous Deployment with MongoDB at Kitchensurfing
Webinar: Continuous Deployment with MongoDB at Kitchensurfing
 
Test & Dev on the AWS Cloud
Test & Dev on the AWS CloudTest & Dev on the AWS Cloud
Test & Dev on the AWS Cloud
 
WinOps Conf 2015 - Deploying apps to the Cloud with Octopus Deploy
WinOps Conf 2015 - Deploying apps to the Cloud with Octopus DeployWinOps Conf 2015 - Deploying apps to the Cloud with Octopus Deploy
WinOps Conf 2015 - Deploying apps to the Cloud with Octopus Deploy
 
AWS Webcast - Amazon Web Services for Development and Test
AWS Webcast - Amazon Web Services for Development and TestAWS Webcast - Amazon Web Services for Development and Test
AWS Webcast - Amazon Web Services for Development and Test
 
414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Development and Test on AWS - Pizette
Development and Test on AWS - PizetteDevelopment and Test on AWS - Pizette
Development and Test on AWS - Pizette
 
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...
 
Power of Azure Devops
Power of Azure DevopsPower of Azure Devops
Power of Azure Devops
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
Deploying systems using AWS DevOps tools
Deploying systems using AWS DevOps toolsDeploying systems using AWS DevOps tools
Deploying systems using AWS DevOps tools
 
Deploying Azure DevOps using Terraform
Deploying Azure DevOps using TerraformDeploying Azure DevOps using Terraform
Deploying Azure DevOps using Terraform
 
DevOps for Azure
DevOps for AzureDevOps for Azure
DevOps for Azure
 
Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017
Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017
Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017
 
Building a CI/CD Pipeline For Container Deployment to Amazon ECS
Building a CI/CD Pipeline For Container Deployment to Amazon ECSBuilding a CI/CD Pipeline For Container Deployment to Amazon ECS
Building a CI/CD Pipeline For Container Deployment to Amazon ECS
 

Andere mochten auch

Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013Amazon Web Services
 
Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...
Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...
Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...Amazon Web Services
 
AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings Adam Book
 
The Evolution of Testing Methodology at AWS: From Status Quo to Formal Method...
The Evolution of Testing Methodology at AWS: From Status Quo to Formal Method...The Evolution of Testing Methodology at AWS: From Status Quo to Formal Method...
The Evolution of Testing Methodology at AWS: From Status Quo to Formal Method...C4Media
 
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'rmcleay
 
Introduction to Cloud Computing with AWS
Introduction to Cloud Computing with AWSIntroduction to Cloud Computing with AWS
Introduction to Cloud Computing with AWSEdureka!
 
AWS RDS Presentation - DOAG Conference
AWS RDS Presentation - DOAG Conference AWS RDS Presentation - DOAG Conference
AWS RDS Presentation - DOAG Conference Amazon Web Services
 
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAmazon Web Services
 
AWS Monitoring & Logging
AWS Monitoring & LoggingAWS Monitoring & Logging
AWS Monitoring & LoggingJason Poley
 
Test automation with Cucumber-JVM
Test automation with Cucumber-JVMTest automation with Cucumber-JVM
Test automation with Cucumber-JVMAlan Parkinson
 
The Fundamentals of Networking in AWS: VPC and Connectivity Options - Business
The Fundamentals of Networking in AWS: VPC and Connectivity Options - BusinessThe Fundamentals of Networking in AWS: VPC and Connectivity Options - Business
The Fundamentals of Networking in AWS: VPC and Connectivity Options - BusinessAmazon Web Services
 
Automated Infrastructure Testing
Automated Infrastructure TestingAutomated Infrastructure Testing
Automated Infrastructure TestingRanjib Dey
 
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...Amazon Web Services
 
Introduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best PracticesIntroduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best PracticesGary Silverman
 
10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websitesoazabir
 

Andere mochten auch (20)

Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013
 
Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...
Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...
Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...
 
AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings
 
The Evolution of Testing Methodology at AWS: From Status Quo to Formal Method...
The Evolution of Testing Methodology at AWS: From Status Quo to Formal Method...The Evolution of Testing Methodology at AWS: From Status Quo to Formal Method...
The Evolution of Testing Methodology at AWS: From Status Quo to Formal Method...
 
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
 
Introduction to Cloud Computing with AWS
Introduction to Cloud Computing with AWSIntroduction to Cloud Computing with AWS
Introduction to Cloud Computing with AWS
 
AWS RDS Presentation - DOAG Conference
AWS RDS Presentation - DOAG Conference AWS RDS Presentation - DOAG Conference
AWS RDS Presentation - DOAG Conference
 
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
 
AWS Monitoring & Logging
AWS Monitoring & LoggingAWS Monitoring & Logging
AWS Monitoring & Logging
 
AWS Deployment Best Practices
AWS Deployment Best PracticesAWS Deployment Best Practices
AWS Deployment Best Practices
 
Test automation with Cucumber-JVM
Test automation with Cucumber-JVMTest automation with Cucumber-JVM
Test automation with Cucumber-JVM
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
 
Introduction to AWS Security
Introduction to AWS SecurityIntroduction to AWS Security
Introduction to AWS Security
 
The Fundamentals of Networking in AWS: VPC and Connectivity Options - Business
The Fundamentals of Networking in AWS: VPC and Connectivity Options - BusinessThe Fundamentals of Networking in AWS: VPC and Connectivity Options - Business
The Fundamentals of Networking in AWS: VPC and Connectivity Options - Business
 
Automated Infrastructure Testing
Automated Infrastructure TestingAutomated Infrastructure Testing
Automated Infrastructure Testing
 
AWS Deployment Best Practices
AWS Deployment Best PracticesAWS Deployment Best Practices
AWS Deployment Best Practices
 
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
 
Cost Optimisation on AWS
Cost Optimisation on AWSCost Optimisation on AWS
Cost Optimisation on AWS
 
Introduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best PracticesIntroduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best Practices
 
10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites
 

Ähnlich wie Test-Driven Infrastructure w/ CloudFormation and Cucumber

Relay health build system
Relay health build systemRelay health build system
Relay health build systemroncordell
 
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...XebiaLabs
 
Testability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testableTestability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testableAlexander Tarlinder
 
CloudBees Toronto Presentation
CloudBees Toronto PresentationCloudBees Toronto Presentation
CloudBees Toronto PresentationXebiaLabs
 
Run Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateRun Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateNovell
 
Run Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateRun Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateNovell
 
Run Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateRun Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateNovell
 
Run Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateRun Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateNovell
 
Run Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateRun Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateNovell
 
Rapid Deployment of Novell ZENworks Configuration Management
Rapid Deployment of Novell ZENworks Configuration ManagementRapid Deployment of Novell ZENworks Configuration Management
Rapid Deployment of Novell ZENworks Configuration ManagementNovell
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...CloudBees
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Simplified, Robust and Speedy Novell Identity Manager Implementation with Des...
Simplified, Robust and Speedy Novell Identity Manager Implementation with Des...Simplified, Robust and Speedy Novell Identity Manager Implementation with Des...
Simplified, Robust and Speedy Novell Identity Manager Implementation with Des...Novell
 
XebiaLabs deployment automation brochure
XebiaLabs deployment automation brochureXebiaLabs deployment automation brochure
XebiaLabs deployment automation brochureguestea92ba
 
XebiaLabs deployment automation brochure
XebiaLabs deployment automation brochureXebiaLabs deployment automation brochure
XebiaLabs deployment automation brochureXebiaLabs
 
Opscode-Eucalyptus Webinar 20110721
 Opscode-Eucalyptus Webinar 20110721 Opscode-Eucalyptus Webinar 20110721
Opscode-Eucalyptus Webinar 20110721Chef Software, Inc.
 
PHP Apps on the Move - Migrating from In-House to Cloud
PHP Apps on the Move - Migrating from In-House to Cloud  PHP Apps on the Move - Migrating from In-House to Cloud
PHP Apps on the Move - Migrating from In-House to Cloud RightScale
 

Ähnlich wie Test-Driven Infrastructure w/ CloudFormation and Cucumber (20)

Relay health build system
Relay health build systemRelay health build system
Relay health build system
 
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
 
Testability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testableTestability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testable
 
System Center 2012
System Center 2012System Center 2012
System Center 2012
 
Siebel server cloning
Siebel server cloningSiebel server cloning
Siebel server cloning
 
CloudBees Toronto Presentation
CloudBees Toronto PresentationCloudBees Toronto Presentation
CloudBees Toronto Presentation
 
Run Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateRun Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin Orchestrate
 
Run Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateRun Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin Orchestrate
 
Run Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateRun Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin Orchestrate
 
Run Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateRun Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin Orchestrate
 
Run Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin OrchestrateRun Book Automation with PlateSpin Orchestrate
Run Book Automation with PlateSpin Orchestrate
 
Rapid Deployment of Novell ZENworks Configuration Management
Rapid Deployment of Novell ZENworks Configuration ManagementRapid Deployment of Novell ZENworks Configuration Management
Rapid Deployment of Novell ZENworks Configuration Management
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Simplified, Robust and Speedy Novell Identity Manager Implementation with Des...
Simplified, Robust and Speedy Novell Identity Manager Implementation with Des...Simplified, Robust and Speedy Novell Identity Manager Implementation with Des...
Simplified, Robust and Speedy Novell Identity Manager Implementation with Des...
 
Discover what's new in Windows Server 2012 Active Directory
Discover what's new in Windows Server 2012 Active DirectoryDiscover what's new in Windows Server 2012 Active Directory
Discover what's new in Windows Server 2012 Active Directory
 
XebiaLabs deployment automation brochure
XebiaLabs deployment automation brochureXebiaLabs deployment automation brochure
XebiaLabs deployment automation brochure
 
XebiaLabs deployment automation brochure
XebiaLabs deployment automation brochureXebiaLabs deployment automation brochure
XebiaLabs deployment automation brochure
 
Opscode-Eucalyptus Webinar 20110721
 Opscode-Eucalyptus Webinar 20110721 Opscode-Eucalyptus Webinar 20110721
Opscode-Eucalyptus Webinar 20110721
 
PHP Apps on the Move - Migrating from In-House to Cloud
PHP Apps on the Move - Migrating from In-House to Cloud  PHP Apps on the Move - Migrating from In-House to Cloud
PHP Apps on the Move - Migrating from In-House to Cloud
 

Kürzlich hochgeladen

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Kürzlich hochgeladen (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Test-Driven Infrastructure w/ CloudFormation and Cucumber

  • 1. Test-Driven Infrastructure w/ CloudFormation and Cucumber Paul Duvall, Stelligent CTO Author of Continuous Integration and DevOps in the Cloud Tuesday, July 24, 2012 Stelligent Monthly Cloud Delivery Webinar Series COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 2. Introduction Next August 28th: Scripted Deployment with Capistrano Webinar http://stelligent.com/cap with Brian Jakovich Powerpoint and other resources will be emailed to Materials attendees and available in Linkedin group Linkedin Continuous Delivery in the Cloud: http://linkd.in/Pfbf1h Stelligent Cloud Delivery: Migration, Training and Operations June Recording of last month’s webinar: Webinar http://www.stelligent.com/aws-webinar/ COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 3. About Me COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 4. Continuous Delivery http://bit.ly/cdwebinar1 COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 5. Continuous Delivery COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 6. COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 7. 5 Steps to Continuous Delivery Document Document to automate Test Write an automated test to verify behavior Script Automate to a single command Version Version all scripts Continuous Run headless with every change COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 8. Business Value of Test-Driven Infrastructure •  Learn of problems earlier by integrating CI with infrastructure - Infrastructure changes integrated with rest of software system •  Scripted Infrastructure becomes Documentation •  Remove Gatekeepers •  Isolate Destructive Changes •  Canonical System •  Quickly get back to earlier version of Infrastructure •  Infrastructure as Code: Apply rigorous practices similar to writing application code COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 9. Test-Driven Infrastructure within Delivery Pipeline •  Manually Configure and Document Environment •  Write Acceptance Test •  Script the Environment provisioning •  Version the infrastructure automation (Checkin the Script(s)) •  Run as part of a Continuous Process •  Make “pre-baked” environments available to team members and CD system COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 10. Sidebar: Continuous Integration Process DBA Polling Develo Create Target per Environments Environment Instances Version- CI Server Tests Control Repository Build Deploy Operations Tester COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 11. Test-Driven Infrastructure: Success Jenkins Environment Job Environment Email SSH Deployment Email Working App COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 12. Test-Driven Infrastructure: Failure •  Notified soon after infrastructure script is committed to version-control repository •  Since all infrastructure scripts and config are versioned, can simply revert to previous known-good version •  Failure is identified, scripts are changed and committed back to version-control system •  Infrastructure changes are integrated with rest of software system COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 13. Non-Automated Test Scenario •  Environment is manually created by running through a series of steps to install/configure OS, networking, servers, etc. •  In some cases, these steps are documented. Often, the documentation is not regularly updated •  New environments – based on the “initial environment” – are created by going through similar manual steps •  No canonical state of environments – each environment is unique •  Software is deployed to environments (Dev, QA, Stage, etc.). Deployments fail. Root cause is unclear. •  Troubleshooting and patch work ensue. State remains dubious. Team members apply superstition to root cause. COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 14. Sidebar: Test-Driven Development with JUnit COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 15. Scripted Infrastructure (Code) •  Walkthrough of production.template CloudFormation template COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 16. Cucumber BDD Basics •  Philosophy •  Executable Specifications •  Continuous Traceability •  Cucumber Components (1) •  Business Facing •  Features •  Scenarios •  Steps •  Technology Facing •  Step Definitions •  Support Code •  Automation Library •  Syntax Rules: Gherkin From “The Cucumber Book” (Wynne and Hellesoy; Pragmatic Bookshelf, 2012) COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 17. TDI BDD Components CloudFormation Cucumber Jenkins Step Definitions COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 18. TDI Cucumber Examples •  Walkthrough of production.feature Cucumber feature COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 19. Other TDI Tools •  Cucumber Nagios: http://auxesis.github.com/cucumber-nagios/ •  Cucumber Chef: http://www.cucumber-chef.org/ COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 20. Question and Answer Blog http://www.stelligent.com/blog/ Social @stelligent @paulduvall facebook.com/Stelligent CD Video http://bit.ly/cdwebinar1 Solutions http://www.stelligent.com/solutions/ August http://www.stelligent.com/cap/ Webinar Training http://www.stelligent.com/cd-training/ COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.
  • 21. Infrastructure Components CloudFormation Template Elastic IP Route 53 IAM S3 EC2 SimpleDB Linux OS Config Security Group Apache Tomcat Jenkins Version-Control Repo Cucumber Amazon Simple HTTPD Notification Service (SNS) COPYRIGHT © 2012 Stelligent Systems LLC Unauthorized duplication is not permitted.