Challenges in Cutting Edge CI. #jenkinsconf. Real-life story. Jenkins User Conference Israel #jenkinsconf. Gil

Similar documents
Jenkins User Conference Israel. #jenkinsconf. CI / Liveperson. Gidi Samuels. July 16, #jenkinsconf

#jenkinsconf. Managing jenkins with multiple components project. Jenkins User Conference Israel. Presenter Name Ohad Basan

Continuous Delivery for Cloud Native Applications

Implemented Test Automation Framework for the World s Largest Learning Company ATTENTION. ALWAYS.

Jenkins State of Union

Avoiding regressions in an agile development environment. At Yottaa

SECURE PRIVATE VAGRANT BOXES AND MORE WITH A BINARY REPOSITORY MANAGER. White Paper

Turbo boost your digital app test automation with Jenkins

DevOps Course Content

Test-driven development

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

Continuous Integration and Delivery with Spinnaker

TM DevOps Use Case TechMinfy All Rights Reserved

9 Reasons To Use a Binary Repository for Front-End Development with Bower

ThinkPalm s BreakThrough DevOps Capabilities ThinkPalm

Orchestrating the Continuous Delivery Process

Class 1 Introduction to Selenium, Software Test Life Cycle.

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

#jenkinsconf. Jenkins user plugin. This time it's. Jenkins User Conference Israel. Shiran JFrog

How Can Testing Teams Play a Key Role in DevOps Adoption?

Test-driven development

Best Practices for a Mission- Critical Jenkins

Dr. Jenkins, M.D., at Your Service: An overview of Jenkins at. #jenkinsconf. Cerner Corporation. Jenkins User Conference San Francisco

The Software Delivery Experts. Agile, DevOps & QA Conference

A U.S. based so,ware development and technical consul9ng company. Technical Capabilities Overview

End-to-End Agile Testing using Incremental Approach for a Leading EIM Solution Provider ATTENTION. ALWAYS.

Best Practices for Alert Tuning. This white paper will provide best practices for alert tuning to ensure two related outcomes:

REASONS TO USE A BINARY REPOSITORY MANAGER WHEN DEVELOPING WITH. White Paper

Inverting the Pyramid

The SD-WAN security guide

AEM Code Promotion and Content Synchronization Best Practices

Empowering Developers to Take Flight Continuous Integration at Gogo

FROM VSTS TO AZURE DEVOPS

Shift Left Testing: are you ready? Live Webinar, Sept 19

Deploying a Private OpenStack Cloud at Scale. Matt Fischer & Clayton O Neill

DevNet Workshop-Hands-on with CloudCenter and Jenkins

csc444h: so(ware engineering I matt medland

OpenStack Enabling DevOps Shannon McFarland CCIE #5245 Distinguished DEVNET-1104

Achieving Continuous Delivery - Micro Services. - Vikram Gadang

DevOps Made Easy. Shireesh Thanneru, Platform Architect. Intel. Linoy Alexander, Director, DevOps

Final Paper. Automation in Agile Testing. Vijay Kumar - Senior Software Engineer - Testing CenturyLink Technologies

Seven Habits of Highly Effective Jenkins Users

Selenium Testing Training

HP APPs v.12 Solutions for Dev-Ops

Continuous Testing at Scale

CASE STUDY Application Migration and optimization on AWS

Take Your Oracle WebLogic Applications to The Next Level with Oracle Enterprise Manager 12c

ONAP Developer Typical Setup 2017 July ONAP Virtual Developers Event

Implementing an SQA Automation Strategy Using the Automature Framework, a Case Study

Up and Running Software The Development Process

Using Digital Rebar to Create Composable Infrastructure Operations for Site Reliability Engineers

Microservices Architekturen aufbauen, aber wie?

Java in der Cloud Aktuelle Möglichkeiten und Entwicklungen

QMS ISO 9001:2015 CERTIFIED COMPANY Software Testing TRAINING.

How to Build an Appium Continuous Testing Pipeline

AN ISO 9001:2008 CERTIFIED COMPANY. Software Testing TRAINING.

WE THOUGHT WE WERE DOING CONTINUOUS DELIVERY AND THEN. Aravind and Suzie ThoughtWorks

7 steps for digital app test automation success. October 2018

SAME SAME, BUT BETTER Comparing Artifactory to Other Binary Repository Managers

Disruptive Technology

DevOps CICD for VNF a NetOps Approach

Android meets Docker. Jing Li

Docker at Lyft Speeding up development Matthew #dockercon

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

ebook ADVANCED LOAD BALANCING IN THE CLOUD 5 WAYS TO SIMPLIFY THE CHAOS

Microservices on AWS. Matthias Jung, Solutions Architect AWS

Project Direction Proven ability to lead and manage a wide variety of design and development projects in team and independent situations.

WEBSCALE CONVERGED APPLICATION DELIVERY PLATFORM

Amazon s Database Migration Service, a magical wand for moving from closed source solutions? Dimitri Vanoverbeke Solution Percona

SeeTest Quality Assurance Platform On-premise Digital Assurance Lab

In This Webinar. ConEnuous Load TesEng & ConEnuous Delivery with Jenkins

I'm Andy Glover and this is the Java Technical Series of. the developerworks podcasts. My guest is Brian Jakovich. He is the

DevOps on AWS Deep Dive on Continuous Delivery and the AWS Developer Tools

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

We re redefining Software Quality

Selecting a Selenium Grid Infrastructure in an enterprise

Overhauling Dev Arch with Ansible Tower and Docker

Azure Certification BootCamp for Exam (Developer)

Cloud & DevOps April Big Group. April 24, 2015 Friday 1:30-2:30 p.m. Science Center Hall E

Siegfried Goeschl. Gatling Tales From A Journey

Cloud computing and Citrix C3 Last update 28 July 2009 Feedback welcome -- Michael. IT in the Clouds. Dr Michael Harries Citrix Labs

Continuous Delivery of your infrastructure. Christophe

TrueSight 10 Architecture & Scalability Q&A Best Practice Webinar 8/18/2015

SBB. Java User Group 27.9 & Tobias Denzler, Philipp Oser

Automated Testing of Tableau Dashboards

PostgreSQL migration from AWS RDS to EC2

Building a Data-Friendly Platform for a Data- Driven Future

Aspirin as a Service: Using the Cloud to Cure Security Headaches

Instructor-led Training Course Catalog

A Guide to Finding the Best WordPress Backup Plugin: 10 Must-Have Features

CloudOpen Europe 2013 SYNNEFO: A COMPLETE CLOUD STACK OVER TECHNICAL LEAD, SYNNEFO

Microservice Deployment. Software Engineering II Sharif University of Technology MohammadAmin Fazli

FusionBanking Loan IQ Release Policy & Testing

Rapid Large-Scale SOA - Connected Products at Leapfrog Enterprises

What I ll be talking about. About me & bol.com The CI/CD bol.com Current setup. The future in the cloud

Oracle Corporation 1

Delivers cost savings, high definition display, and supercharged sharing

Agile Load Testing using StormRunner Load September 15, Copyright 2016 Vivit Worldwide

Roles. Ecosystem Flow of Information between Roles Accountability

SeeTest Quality Assurance Platform SeeTestAutomation

Transcription:

Challenges in Cutting Edge CI Real-life story Gil Hoffer @gilhoffer Ravello Systems http://www.ravellosystems.com @ravellosystems July 16, 2014 #jenkinsconf

Gil

What are we going to talk about??

The CI 3-way tradeoff The Only Sure Thing in Computer Science Everything is a tradeoff Van Roy and Haridi. Concepts, Techniques, and Models of Computer Programming CI Optimization Costs

How it usually starts? (if you re lucky) Unit tests, sometimes integration/system tests, automatic build all are assumed for granted Someone setups a CI server On-premise / cloud or service (cloudbees, TravisCI, ) We did have test automation infrastructure in mind from day one Test automation team?

The team grows Managing a process with 10 engineers is >> 2x harder than managing a process with 5 engineers We grew from 5 to 22 in a year

Jenkins User Conference Israel Complexity grows original slide by Adrian Cockcroft #jenkinsconf

And. Here come s GA From wikimedia commons (LGPL)

Complexity grows further Some more new components Data migrations Performance issues Zero Downtime upgrades Releasing our API

And we bump into real life issues Customers have issues Production incidents Security incidents Marketing / Product / Sales need that killer feature *yesterday*

CI? C for continuous Yes, on every commit/push/check-in/ I for integration Yes, you need to actually run Integration tests and not just unit tests If done properly (and that s a BIG if) can speed things up immensely If done poorly can slow you down to a halt!

Context: Ravello s core architecture components The HVX hypervisor (C, Python) Scale out management system (Java, JS, Cassandra, Postgres, Hazelcast, ) Cross platform upload utility (Python) Public internet traffic routing service Main external integration points: Cloud providers (AWS, Google, Rackspace, ) SaaSs (payment, CRM, marketing, emails, support, )

Web UI (HTML5) API Users REST API Ravello Service Mgmt (SaaS) V M HVX V M Hypervisor Public Clouds (AWS, Google ) Image service RTB S3, Swift, NFS Public Internet traffic 14

Image courtesy of alltheragefaces.com

Capacity Resources Project Demand Resources Sprint1 Sprint 2 Release Candidate Data center/private cloud capacity Product late to market and poor quality Sprint1 Sprint 2 Release Candidate

Capacity (2) à An on-demand consumption model for the bursty test/dev resources is A MUST à The cloud to the rescue!

Test Fidelity Test envs are as similar as possible to production We ve crafted a solution which uses a combination of our own product (through a maven plugin), Jenkins and Chef to do so

Effective automatic UI testing Automatic UI testing is a controversial topic We do believe that it is an important part of our CI pipeline Test on Windows, Linux and Mac Using Selenium Grid with nodes both in the cloud and on-premises (mostly for Mac (on Mac Mini)) Considered and disqualified Sauce-Labs due to cost

Full system testing We find full system testing to be extremely valuable All components on LATEST Single component on LATEST, all others on current PRODUCTION (stable) version In many cases, we do run partial / mocked / simulated components

Upgrade tests Upgrades of the system were one of the most painful items to test Data migrations Downtime implications Resiliency BW/FW compatibility issues

Upgrade tests A three-phase approach Production + Non Functional Make sure data migrations pass on real production data A Synthetic + Functional Synthetic functional upgrade tests Downtime implications B Production + Functional Keep and maintain long term test data on production Verify upgrade and functionality using it C

Upgrade tests deep dive (phase B) synthetic tests, each one with BEFORE and AFTER steps: Install current PRODUCTION version Do all BEFORE steps Upgrade to version under test Do all AFTER steps Assertions (also assert that operations that started BEFORE and were interrupted by the upgrade finished successfully)

Feature Toggles Feature toggles are a must for any fast paced developed service We ve implemented toggles in every system component (UI, Backend, HVX, Uploader, ) BUT how/when do you test them? Our tests can turn on/off toggles Only after some mileage in tests with a toggle on, we turn it on in production (gradually!)

Configuration Management and deployment mechanism tests It is CRUCIAL that your CI is using the same CM and deployment mechanisms as your production environments We run targeted CM unit tests, as we treat the CM as just yet another versioned component We use Chef, Berkshelf and minitest/spec

Test Parameterizations The #1 requirement from your system test suites to be able to be parameterized easily We heavily use TestNG s DataProviders to do so Considering moving data to a test database from CSVs

Performance and scale tests We scaled up the service in some parameters much faster then expected And we bumped into issues Performance tests should be a part of every automatic test process

False negatives are DEADLY False negatives are as worse as false positives if not worse Very quickly (a few days) deteriorate to a complete ignorance for the test results If you take one thing from this session: Exterminate false negative tests

What to run when? Smoke (on each commit) Build UT System smoke (all components!) Sanity (nightly) System sanity Upgrade A+B+C Regression (weekend) System regression Performance, stress, long runs CI Optimization Costs

Something is broken Fast analysis If you re responsible you re on it Stability on duty for all others Need to have the ability to debug *fast* Centralized logging (also for CI envs!) Monitoring Access to environments What about weekends?

Current State

Tools we re using Jenkins Multi Job plugin TestNG Selenium Grid Artifactory Ravello Chef, Berkshelf, minitest/spec Vagrant Phornix test suites

Company wide impacts Responsibility Responsibility Responsibility Who writes and maintains system tests? The position of a test automation team? The role of manual QA

Conclusions The entire company must be bought into the process, it is *not* the business of just the test automation team or RnD Continuous integration!= Test automation Continuous integration!= Continuous delivery Always prefer evolution over revolution, but don t be afraid to make revolutionary changes if needed Visibility is crucial, false negatives are deadly

Questions??

Thank You To Our Sponsors Platinum Gold Silver