W11 Test Techniques Wednesday, October 2nd, 2019 1:30 PM
How Infrastructure as Code Can Help Test Organizations Achieve Automation
Presented by:
Kat Rocha
ACT/NRCCUA
Brought to you by:
888---268---8770 ·· 904---278---0524 - [email protected] - http://www.starwest.techwell.com/
Kat Rocha
Kat Rocha has over twenty years of experience in Test Engineering and is currently a Senior QA Engineer at ACT/NRCCUA. She has managed and lead test teams at Imperva, The Advisory Board Co., Dell, HP and Compaq, working on computer hardware, software and firmware. Kat loves to break things and that makes her passionate about quality and customer experiences. She has a Master’s in Electrical and Computer Engineering from Georgia Tech and a BS in Computer Engineering from Texas A&M. She also likes to run half-marathons and is a 2019 Texas State Champion in taekwondo.
8/18/19
Infrastructure as Code How Infrastructure as Code can help Test Organizations Improve and Achieve Automation
Kat Rocha
Hello!
• QA Test Engineer/Lead for over 20 years • I like to break things to make them better!
• Worked at Compaq/HP, Dell, The Advisory Board, Imperva
• Now at ACT/NRCCUA helping connect students and universities!
2
1 8/18/19
What is Infrastructure as Code?
What is code?
What do we usually think of when we say code?
4
2 8/18/19
Traditional Code
Hello World!
• Instructions for a computer to execute • Compiled (or interpreted) as executable software
5
Infrastructure as Code
• Models the environment • Uses configuration files to define servers, updates or application deployments
6
3 8/18/19
That didn’t look like code!
• IaC is the method of managing an environment through a defined model • The model can define many things • Web server • Patch updates • Application deployment
7
Why Use Infrastructure as Code?
• Track changes in Revision Control System • Rapid Duplication of Environments • Elimination of Configuration Drift • Treat updates like a development cycle
4 8/18/19
Revision Control
• Changes to the Infrastructure can be known and tracked
• Environment can be rolled back to previous known-good state
• Configuration files are available to entire organization
9
Rapid Duplication
• Rapid duplication of servers/environments • Dev, QA, stage, production
• Rapidly deploy new environments as needed for automation
10
5 8/18/19
Eliminate Configuration Drift
• Configuration Drift is when environments get out of sync because one is updated and the other has now
• IaC helps keep all environments in the same stage because changes are made to the configuration model
11
Keep updates small!
• Treat provisioning and updating like a dev cycle • Make small changes that can be easily tested
• Testing and automation in small chunks
12
6 8/18/19
This slide intentionally left blank.
What is needed for Infrastructure as Code?
14
7 8/18/19
Dynamic Infrastructure
In order to support IaC, the infrastructure environment must have certain characteristics that are needed for IaC.
• Must be programmable
• Must have resources on demand
• Must be self-service
15
Mindset
• Reduce change to small sets • Treat infrastructure configuration/change as development project
16
8 8/18/19
Iac Tools
• Procedural • How an environment should change • Declarative • Define the resulting environment • Orchestration • Server/resource provisioning • Configuration management • Manage software
17
IaC Tools
9 8/18/19
AWS Cloudformation
• Works on the AWS Cloud • Free
• Declarative/Orchestration
• Additional tools needed
19
Terraform
• Works with public cloud vendors and Vmware
• Declarative/Orchestration
20
10 8/18/19
Chef
• Integrates with multiple cloud environments and VMware
• Procedural/Configuration Management
• Uses agent monitor
21
Ansible
Bonus points: What is an ansible? Double bonus points: Who coined the term ansible? • Supports many environments
• Procedural/Configuration management
• Connects via SSH
22
11 8/18/19
Puppet
• Provision cloud, virtual or bare metal system • Declarative/Configuration management
• Client/server architecture
23
Tools overview
24
12 8/18/19
Case Studies Or How IaC can help in Real Life
Crimson Medical Referrals
Crimson Medical Referrals (CMR) is a SaaS multi-tenant web-based application for assisting health care providers with making medical referrals. The infrastructure environment consists of two web application servers, a database server and a load balancer. This environment is replicated in production, staging and testing.
26
13 8/18/19
Environment Problems
What could possibly go wrong?
• Production and staging are managed separately from QA • Leads to configuration drift
• Developers have no environment (work locally) • Integration bugs
• Redeploying relies on outside IT • Delays in deployment
27
How does IaC help?
• Eliminate configuration drift • Replicate environments and add as needed
• Become self-service
28
14 8/18/19
EX Events Platform
The EX Events Platform (EX) is a CentOS-based virtual machine. Typically delivered as an on- premises product, it connects to another product called an MX Management Server. In a full ecosphere, the MX Management Server is connected to one or more Gateway Servers, which in turn connect to multiple database servers.
29
What’s wrong here?
• Every member of the team has own deployment process • Lots of different configurations
• Reliance on other virtual machines
30
15 8/18/19
How can IaC help with an On-Prem solution?
• Automate deployment of EX and other virtual machines • Use for both manual QA and Automation
• Standardize ecosphere • Use in dev and QA – create consistency
31
LocustIO Performance testing
LocustIO is a free performance tool that can be used as a distributed system
32
16 8/18/19
What are the needs that IaC fills?
• Need to deploy a system to run performance tests within AWS ecosphere • Potential need for future identical systems to support distributed load testing
33
What did we do with IaC?
• Defined the performance test system using IaC (Terraform) • Deployed all the pieces of the system
• If additional systems are needed, the Terraform files can be reused.
34
17 8/18/19
Nothing is perfect, especially in software Challenges for Infrastructure as Code
IaC Challenges
While the benefits of IaC are manifold, it is important to understand the challenges that arise from using IaC.
v Awareness of security risks v Resist Ad Hoc changes to infrastructure
v Propagation of errors to multiple systems
36
18 8/18/19
Thank you. What questions do you have?
Kat Rocha Senior QA Engineer
E: [email protected] T: @16thfloortester
ENCOURA.ORG
19