Rohit Naraparaju Sajeed Mayabba Kunhi OCT 18 th 2016 SOFTWARE QUALITY CONFERENCE PACIFIC NW Bio Sajeed Kunhi is a senior engineering manager with Intel with nearly twenty years of software engineering experience He is highly passionate about process automation product quality a ID: 667007
Download Presentation The PPT/PDF document "Infrastructure Orchestration to Optimize..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Infrastructure Orchestration to Optimize Testing
Rohit NaraparajuSajeed Mayabba KunhiOCT 18th 2016
SOFTWAREQUALITYCONFERENCE
PACIFIC NWSlide2
Bio
Sajeed Kunhi is a senior engineering manager with Intel with nearly twenty years of software engineering experience. He is highly passionate about process automation, product quality and DevOps principles. His expertise in software development, technology domain and managerial experience has helped in building optimized software development lifecycle.Rohit Naraparaju is software builds/tools engineer with Intel with over eight years of software development experience. He is an ardent believer in DevOps and has dedicated a good amount of his career working on Infrastructure Orchestration, Continuous Integration, Configuration Management, Test Automation, and Release Management. Rohit is currently working on advancing the usage of Configuration Management in various other products within his group.
SOFTWAREQUALITYCONFERENCE
PACIFIC NWSlide3
Agenda
IntroductionThe ProblemThe ApproachToolsThe SolutionConclusion
SOFTWAREQUALITYCONFERENCE
PACIFIC NWSlide4
Introduction
SOFTWAREQUALITY
CONFERENCEPACIFIC NWWhat is Testing?When should testing be performed?
About Release Cycles
Infrastructure Provisioning
Configuration ManagementSlide5
The Problem
SOFTWAREQUALITY
CONFERENCEPACIFIC NWManual configuration of environmentsMaintenance of environments over time
Connectivity issues
Storage limitations
Dedicated resources
Upgrade environments with patches, software, newer versionsSlide6
The Approach
SOFTWAREQUALITY
CONFERENCEPACIFIC NWDetermine if the team will adapt to the new technologies and tools set used to set up the environment. Evaluate a cloud services platform (such as: AWS, VMware, Azure,
Openstack
, Private cloud) by understanding its capabilities, advantages, costs, documentation, pricing, and
support.
Choose the right Configuration Management tool, Infrastructure Provisioning tool, and Continuous Integration tool by evaluating the tool, team’s adoption to new tool, documentation, training, licensing and support
.
When we understand
the
importance of Infrastructure Provisioning, Configuration Management, and Continuous Integration the next challenge is to select the appropriate scripting language that supports making calls to the API’s exposed by the cloud services platform in order to set up the testing environment.Slide7
Infrastructure Orchestration
SOFTWAREQUALITY
CONFERENCEPACIFIC NWWhat is Infrastructure OrchestrationAdvantages:
Cost savings
Manageability
Spin up
multiple environments on an as-needed basis
Reduces manual effort
Testing environments will be consistentSlide8
Configuration Management
SOFTWAREQUALITY
CONFERENCEPACIFIC NWWhat is Configuration ManagementAdvantages:
Faster restoration of the application
Increased efficiency of configuring the system
Cost reduction
Strong securitySlide9
Automated Infrastructure Orchestration Workflow
SOFTWAREQUALITY
CONFERENCEPACIFIC NWDev Work Station
Source Control
Product Code
Infrastructure Code
Configuration Management scripts
Build
Build Repository
Product Package
Infrastructure Package
Configuration Management
server
Deployment Build
Cloud Services Platform
Test Environments
Continuous Integration Tool
Configuration PackageSlide10
Tools
SOFTWAREQUALITY
CONFERENCEPACIFIC NWCloud Services Platforms
Infrastructure Provisioning Tools
Configuration Management Tools
Continuous Integration ToolsSlide11
Cloud Services Platforms
SOFTWAREQUALITY
CONFERENCEPACIFIC NWExamples:
Amazon Elastic Compute Cloud (EC2)
Microsoft Azure
VMware
VCloud
Air Virtual Private Cloud
Advantages:
Elastic compute
Flexible
Easy to start
Secure
Reliable
Identity and Access Management
High Availability
NetworkSlide12
Infrastructure Provisioning Tools
SOFTWAREQUALITY
CONFERENCEPACIFIC NWExamples:
Terraform
AWS Cloud Formation
VMware
vRealize
Automation
Features:
Infrastructure as code
Easy to use
Customizable
Flexible
Good documentationSlide13
Configuration Management Tools
SOFTWAREQUALITY
CONFERENCEPACIFIC NWExamples:
Chef
Puppet
Ansible
Features:
Efficiency
Automate the machine configuration
Ease of useSlide14
Continuous Integration Tools
SOFTWAREQUALITY
CONFERENCEPACIFIC NWExamples:
Jenkins
TeamCity
Features:
Easy setup
Well documented
Ease of use
Configurability
Extensibility
Variety of PluginsSlide15
The Solution
SOFTWAREQUALITY
CONFERENCEPACIFIC NWTechnologies and Tools used:In-house VMware VCloud
Virtual Private Cloud as Cloud Services
Platform
Chef for Configuration
Management
Jenkins for Continuous
Integration
VMware
vRealize
Automation (
vRA
) for Infrastructure
Provisioning
Python scripting to bundle the
vRA
API calls, Chef knife bootstrap commands, and running automated testsSlide16
The Solution
SOFTWAREQUALITY
CONFERENCEPACIFIC NWSteps for setting up and configuring infrastructure automaticallyCreate a job in Jenkins for provisioning the
infrastructure
Write Chef cookbooks and check-in to source
control
Write a python script for provisioning the VMs using
vRA
API’s and bootstrapping the Chef
commands
Check-in the python script to the source
control
Configure the Jenkins job to call this python script that provisions, configures the infrastructure, and run automated
tests
Configure a post build deployment step in Jenkins to publish the test results and send out an email notification to the interested subscribers.Slide17
Python Script layout
SOFTWAREQUALITY
CONFERENCEPACIFIC NWRead the VM configurations specified in the config fileCall the vRA
API’s exposed by the Private Cloud for requesting the
VMs
Check the provisioning status for the
VMs
Store the result of the provisioned VM in a JSON
file
Call the Chef knife bootstrap command to configure the respective application by passing the Chef’s recipe list for the VMSlide18
Benefits
SOFTWAREQUALITY
CONFERENCEPACIFIC NWSpin up environments on an as-needed basis by developers/testersIntegrate Infrastructure Provisioning, Configuration Management, and Automated Tests into the Continuous Integration process
Spin up environments with different configurations in less
time
Enable immediate developer testing, rather than waiting for a specific stable
build
Run multiple builds performing various tests on various
environments
Save time that would have been spent on manual
intervention
Create environment configurations consistent across all environmentsSlide19
Questions???Slide20
Contact Info
SOFTWAREQUALITY
CONFERENCEPACIFIC NWRohit Naraparaju rohit.naraparaju@intel.comSajeed Mayabba Kunhi sajeed.mayabba.kunhi@intel.comSlide21
Thank You!!!