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 • • 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 ? 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