How Infrastructure as Code Can Help Test Organizations - - PDF document

how infrastructure as code can help test organizations
SMART_READER_LITE
LIVE PREVIEW

How Infrastructure as Code Can Help Test Organizations - - PDF document

W11 Test Techniques Wednesday, October 2nd, 2019 1:30 PM How Infrastructure as Code Can Help Test Organizations Achieve Automation


slide-1
SLIDE 1

¡ ¡ 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 ¡-­‑ ¡info@techwell.com ¡-­‑ ¡http://www.starwest.techwell.com/ ¡ ¡ ¡

¡

¡ ¡ ¡

slide-2
SLIDE 2

¡

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. ¡ ¡

slide-3
SLIDE 3

8/18/19 1

How Infrastructure as Code can help Test Organizations Improve and Achieve Automation

Infrastructure as Code

2

Kat Rocha

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

Hello!

slide-4
SLIDE 4

8/18/19 2

What is Infrastructure as Code?

4

What is code?

What do we usually think of when we say code?

slide-5
SLIDE 5

8/18/19 3

5

Traditional Code

Hello World!

  • Instructions for a computer to execute
  • Compiled (or interpreted) as executable software

6

Infrastructure as Code

  • Models the environment
  • Uses configuration files

to define servers, updates or application deployments

slide-6
SLIDE 6

8/18/19 4

7

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

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
slide-7
SLIDE 7

8/18/19 5

Revision Control

9

  • 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

10

Rapid Duplication

  • Rapid duplication of servers/environments
  • Dev, QA, stage, production
  • Rapidly deploy new environments as needed for automation
slide-8
SLIDE 8

8/18/19 6

11

Eliminate Configuration Drift

  • Configuration Drift is when environments get out of sync because
  • ne is updated and the other has now
  • IaC helps keep all environments in the same stage because

changes are made to the configuration model

12

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
slide-9
SLIDE 9

8/18/19 7

This slide intentionally left blank.

14

What is needed for Infrastructure as Code?

slide-10
SLIDE 10

8/18/19 8

15

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

16

Mindset

  • Reduce change to small sets
  • Treat infrastructure

configuration/change as development project

slide-11
SLIDE 11

8/18/19 9

17

Iac Tools

  • Procedural
  • How an environment should

change

  • Declarative
  • Define the resulting environment
  • Orchestration
  • Server/resource provisioning
  • Configuration management
  • Manage software

IaC Tools

slide-12
SLIDE 12

8/18/19 10

AWS Cloudformation

19

  • Works on the AWS Cloud
  • Free
  • Declarative/Orchestration
  • Additional tools needed

20

Terraform

  • Works with public cloud

vendors and Vmware

  • Declarative/Orchestration
slide-13
SLIDE 13

8/18/19 11

Chef

21

  • Integrates with multiple cloud

environments and VMware

  • Procedural/Configuration Management
  • Uses agent monitor

22

Ansible

  • Supports many environments
  • Procedural/Configuration management
  • Connects via SSH

Bonus points: What is an ansible? Double bonus points: Who coined the term ansible?

slide-14
SLIDE 14

8/18/19 12

Puppet

23

  • Provision cloud, virtual or bare metal system
  • Declarative/Configuration management
  • Client/server architecture

24

Tools overview

slide-15
SLIDE 15

8/18/19 13

Case Studies

Or How IaC can help in Real Life

Crimson Medical Referrals

26

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.

slide-16
SLIDE 16

8/18/19 14

27

Environment Problems

  • 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

What could possibly go wrong?

28

How does IaC help?

  • Eliminate configuration drift
  • Replicate environments and add as needed
  • Become self-service
slide-17
SLIDE 17

8/18/19 15

EX Events Platform

29

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.

30

What’s wrong here?

  • Every member of the team has own deployment process
  • Lots of different configurations
  • Reliance on other virtual machines
slide-18
SLIDE 18

8/18/19 16

31

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

32

LocustIO

LocustIO is a free performance tool that can be used as a distributed system

Performance testing

slide-19
SLIDE 19

8/18/19 17

33

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

34

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.

slide-20
SLIDE 20

8/18/19 18

Challenges for Infrastructure as Code

Nothing is perfect, especially in software

36

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

slide-21
SLIDE 21

8/18/19 19

Kat Rocha

Senior QA Engineer E: Kathryn.rocha@nrccua.org T: @16thfloortester

ENCOURA.ORG What questions do you have?

Thank you.