how infrastructure as code can help test organizations
play

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


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

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

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

  4. 8/18/19 What is Infrastructure as Code? What is code? What do we usually think of when we say code? 4 2

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

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

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

  9. 8/18/19 This slide intentionally left blank. What is needed for Infrastructure as Code? 14 7

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

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

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

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

  14. 8/18/19 Puppet • Provision cloud, virtual or bare metal system • Declarative/Configuration management • Client/server architecture 23 Tools overview 24 12

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

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

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

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

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

  20. 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. Awareness of security risks v Resist Ad Hoc changes to infrastructure v Propagation of errors to multiple systems v 36 18

  21. 8/18/19 Thank you. What questions do you have? Kat Rocha Senior QA Engineer E: Kathryn.rocha@nrccua.org T: @16thfloortester ENCOURA.ORG 19

Recommend


More recommend