Test Driven Infrastructure

Slides:



Advertisements
Similar presentations
Devops – The Last Mile. Jay Flowers
Advertisements

@stack72 POWERSHELL – THE NEWEST CONFIGURATION ROCKSTAR.
Testing by Duncan Butler Sara Stephens. Too much to cover.
HIGH PERFORMANCE CONTINUOUS DELIVERY VERSIONING AND RELEASE MANAGEMENT ALIGNED.
 Definitions  Background/History  Continuous Delivery › How to practice Continuous Delivery  Continuous Integration  Continuous Integration Tools.
Background The Encyclopedio of Life (EOL) is an ROR open source project to create a free, online reference source and database for every one of the 1.8.
Model a Container Runtime environment on Your Mac with VMware AppCatalyst VMworld Fabio Rapposelli
The Art and Zen of Managing Nagios with Puppet Michael Merideth - VictorOps
Development Environment Matthew Sell, CSSE Student MASS Research Participant, October 2014.
Vagrant workflow Jul. 15, 2014.
1 Applied CyberInfrastructure Concepts ISTA 420/520 Fall
Quiz question Session : Visual Studio Team System 2008 Make the Most of VSTS in Real - World Development.
South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC
Infrastructure as code. “Enable the reconstruction of the business from nothing but a source code repository, an application data backup, and bare metal.
Navigation software platform: Automating the server configuration Igor Jovic, Whitecity Soft Case Study.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
The Next Level Of Agile: DevOps and CD אוקטובר 2015.
Automating Legacy Network Devices
Ansible and Ansible Tower 1 A simple IT automation platform November 2015 Leandro Fernandez and Blaž Zupanc.
Automation Testing Trainer: Eran Ruso. Training Agenda Automation Testing Introduction Microsoft Automation Testing Tool Box Coded UI Test and Unit Test.
Continuous Delivery and Quality Monitoring 1 iCSC2016, Kamil Henryk Król, CERN Continuous Delivery and Quality Monitoring Kamil Henryk Król CERN Inverted.
Revision Control for Sysadmins
Pulling the Galaxy’s Strings
Introduction to Ansible
ONAP CLI (Command-Line Interface ) Architecture
Open-O CLI (Command-Line Interface ) Architecture
Lean With MEAN.
Don’t Forget Security When Delivering Software
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Unit Testing.
Modernize Your Operations
Efficient development and deployment of Hydra projects using Vagrant
Constructing Deploying and Maintaining Enterprise Systems
Continuous Integration (CI)
System Testing Antares Rocket Test Launch ( HQ) System Testing.
Deploy, Manage, and Scale Your Apps with OpsWorks, Elastic Beanstalk, and CodeDeploy Part 1 – Elastic Beanstalk © 2017 Amazon Web Services, Inc. and.
Infrastructure Orchestration to Optimize Testing
Version Control.
Delphi or C++ Builder, with Subversion and Jenkins
Microservices, Docker, .NET, Windows, Linux, Azure. Oh, My!
Version Control System using Git
Azure CLI Deep Dive Neil Peterson Content Developer Microsoft.
Revision Control, Automated Testing and Docker RSE Conference 2017
IT Atoumation / Conf. Mgmt...
App deployment in Cloud
June 2011 David Front Weizmann Institute
NA4 Test Team Status Test meeting, 07/09/04
Drupal VM and Docker4Drupal For Drupal Development Platform
Drupal VM and Docker4Drupal as Consistent Drupal Development Platform
Intro to Config Management Using Salt Open Source
Network Configuration Automation at LINX
Continuous deployment best practices, methods and tools.
Presented By - Avinash Pawar
GBIF CESP Workshop, Madrid 2018 Dave Martin
In this session… Introduce what we’re talking about
Real World Scrum with TFS & VSTS / Azure DevOps
Continuous Integration
Agile testing for web API with Postman
Stateless Provisioning: Modern Practice in HPC
Presented by : Chirag Dani & Dhaval Shah
SSDT and Database Project Basics
EEC-492/693/793 iPhone Application Development
CONTINUOUS INTEGRATION –WHY WE DO IT?
Presented by Bogdan Stanca-Kaposta (Spirent)
CI/CD Workflow and Event Pages
Configuration management suite
Systems Analysis and Design I
DEVOPS & THE FUTURE OF TESTING
A lightweight editor for SSAS Tabular Models built in .NET / WinForms
Securing IaaS in the cloud
Presentation transcript:

Test Driven Infrastructure Bringing Software Development Techniques to Operations Alejandro González Pérez Ebury - alejandro.gonzalez@ebury.com

Infrastructure as Code: Why? - Reproducible Results - Avoid Snowflake Servers - Testable - Automate deploy & Recovery process - Easier autoscaling - Versioning 2

Infrastructure as Code: What we want to avoid 3

Infrastructure as Code: Principles - Write definition files to define your infrastructure - Keep it in VCS: Git, SVN, Mercurial, etc. - Self documented process “Treat your servers as cattle, not pets” It’s need testing. 4

Test Driven Infrastructure Why TDI? - The earlier we found the bug the cheaper - Focus on the code you need - Code Quality We need to bring techniques from Software Developers Teams and TDD it’s a great example. 5

TDI 6

Testing your Infrastructure - Why we need to add tests to infrastructure? Because It’s code. - What to test? I’m not asking you to test everything, just complex situations that can escape to your control. 7

TDD / TDI Diagram 8

Test Pyramid 9

Avoiding an Unbalanced Test suite 10

Test Pyramid: Low-level tests 11

Low level tests – Static analysis– Ansible - Ansible Lint - https://github.com/willthames/ansible-lint - Ansible-playbook -- check and -- diff options 12

Low level tests – Other Options 13

Test Pyramid: Medium-level tests 14

Medium Level Tests: Inspec - Testing framework - Written in ruby - Human Readable Syntax - You can run your tests via: local, ssh ,winrm or docker 15

Medium Level Tests: Inspec basic usage How to install? - inspec init profile [Profile Name] - inspec exec [folder] [-t target] 16

Medium Level Tests: Inspec Syntax 17

Medium Level Tests: Inspec syntax 18

Medium Level Tests: Inspec resources - Around 100 different resources - System: service, crontab, port, etc. - Specific software config file checking: nginx_conf, mysql_conf, etc. - File parsing, XML, Yaml, json, etc. If none of those suits you, you can use “bash” or “command” 19

Test Pyramid: High-level tests 20

High-level tests: Inspec 21

High-level tests: Testing your cloud Awspec: https://github.com/k1LoW/awspec 22

Test Pyramid: Summary 23

Integrate it with your workflow 24

Integrate it with your workflow: Ebury Example 25

Testing Frameworks 26

Summary Test your code. 27

Testing your Infrastructure Resources: - Infrastructure as Code http://shop.oreilly.com/product/0636920039297.do - Inspec io Official Documentation https://www.inspec.io/ - Ansible Official documentation http://docs.ansible.com/ansible/latest/playbooks_checkmode.html - Puppet: http://puppet-lint.com/ - FoodCritic: http://www.foodcritic.io/ - Test Driven Development http://www.agilenutshell.com/test_driven_development - Molecule: https://molecule.readthedocs.io/en/latest/ - KitchenCI: http://kitchen.ci/ 28

Demo

Questions?

THANK YOU!