Bobcares

DevOps for Testing – How we accelerated projects using automation and virtualization

by | Dec 12, 2015

“This code works fine on my computer, but not on the live server!”, programmers often complain to IT system administrators. This happens when the environments in these servers do not match. As a result, projects often get delayed.

To avoid compatibility issues, development and production server software has to be identical. DevOps aims to achieve this using configuration management and automated deployment.

With our DevOps service plan, Bobcares helps businesses deliver projects on time. We automate the DevOps cycle for fast deployment of application code on the servers. We help to create and maintain a uniform configuration for different server environments.

Recently a business owner came to us for assistance to reduce project delays. His company provided testing and bug fixing services for WordPress websites. The projects were hosted on shared servers. This led to a lot of time being wasted in setting up the environments for each project. “I find it hard to meet deadlines”, he said. “And I have no time to focus on my business”.

Implementation of DevOps solution

To being with, we tried to figure out how to resolve the bottle-necks. Every time a project came, they had to manually setup the environment. This was because each project required a unique WordPress install with different configuration and plugins. For example, an online promotion website required SEO tools, while a photography site needed image hosting tools. Setting up and maintaining these custom environments was time-consuming.

To reduce project turn-around time, we decided to implement a solution to automate these tasks. We built a custom DevOps plan for the customer’s testing services using server virtualization technology. Here is how we did it.

 

1. Virtualization framework to enable fast provisioning

As part of our plan, server virtualization was chosen in place of current shared server setup. Virtualization enabled fast creation of server instances called Virtual Machines (aka VMs). Development and testing environments could be setup on these VMs.

We chose Proxmox VE to setup virtualization as it has a web interface to easily create and manage VMs. And its open-source too. Yay! In Proxmox, we used KVMs (Kernel-based Virtual Machines) to create VMs, as it supported both Linux and Windows images.

 

2. Automating deployment of testing environments

WordPress installs varied in each project. This required custom environment to be created for each case. We configured a custom VM template with CentOS 7 and server software such as Apache/Nginx, PHP, SQL server etc. Additional feature-sets for each project, such as SEO plugins, image libraries, Ad tools etc., were installed. The VM was optimized for security and performance. We then setup testing tools such as Selenium, JMeter and an IDE such as Eclipse in the VMs for speeding up automated testing.

Once the VMs were fully configured, templates were created to build similar server instances in future. We designed VM templates with different feature sets for each testing project. We then used these templates to quickly create virtual instances in a few clicks. When each project got over, these VMs were destroyed to free up the resources.

 

3. Automation of testing services

We automated common time-consuming tasks such as:

  1. Creation of testing environment in VM for each WordPress website.
  2. Deployment of customer’s website in the VM.
  3. Automated testing with tools – JMeter for performance testing, XSS-Me and SQL Inject-Me tools for security testing, SEO tools for responsiveness testing, etc.
  4. Notification to developers when bugs are detected.
  5. Creation of development environment for the developers to help in bug-fixing.
  6. Delivery of bug-free code to end user after retest.

 

Here is a glimpse of our DevOps design:

 

DevOps-testing

DevOps in testing

 

This scalable solution helped customer reduce turn-around time for testing services. Automated provisioning with our script spared customer from the overhead of setting up environments. This enabled him to provide seamless testing services and deliver projects on time.

 

Bobcares helps software businesses manage their DevOps and save time through configuration management and code release automation services, as a part of our DevOps services.

SEE HOW WE CAN HELP YOU

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF