in cluster open source testing framework - microservices meetup

24
In-cluster Open Source Testing Framework For Docker containers Neil Gehani – Sr. Product Manager, HPE-SW @GehaniNeil

Upload: neil-gehani

Post on 08-Apr-2017

290 views

Category:

Software


0 download

TRANSCRIPT

In-cluster Open Source Testing Framework For Docker containers

Neil Gehani – Sr. Product Manager, HPE-SW @GehaniNeil

About me

– Former Software Engineer

– 10+ Years as a Product Manager

– Previously at: LinkedIn, Founder of eCommerce startup, Check Point Software

– Twitter: @GehaniNeil, Website: gehani.me

– Current Role (HPESW-ADM): Solving problems for modern development teams building apps as services in containers

– Published on Slideshare.net – Product Portfolio Planning – In-cluster testing framework – Cloud-native ALM

– Medium Article on DevOps and In-Cluster Open Source Testing Framework

– Dabble in writing code, geeking out new technologies, conquering the hills of the bay area on my bike

Applications are changing – accelerate to a digital enterprise

3Courtesy of

Our mission

In a recent NGINX survey [Finding #7], the “biggest challenge holding back developers”

• Having to constantly trade-off between quality of code and expected speed of delivery

• Multiple and increasingly complex environments • Lack of automation tools and processes

4

To solve problems for Developers building cloud-native applications as “services” in containers.

Target users: Modern “2 pizza” development teams

Business process

Teams should be built around business value

5

Microservices

Business activity

Taxonomy – Modern Application Development & Delivery

– Applications or Systems are set of “services”

– “Service” = business value

– Cloud-native is a design pattern

– Microservices is an architecture – Containers are portable. “If it works on my machine, it will run in production” is real

– Platform to deploy “services” (PaaS)

– Infrastructure to run “services (IaaS) – Developers don’t care how

– Serverless is compute on-demand

– DevOps is a practice – App Transformation and DevOps are two sides of the same coin

6

DevOps goal: Maximize business value by reducing cycle time Time value of money principle applied to software delivery

Feel the need for speed

Balancing Time Value of Money

– Time value of delivery

– Time value of shipping

8Source: Brandon Chu - Time Value of Shipping

Reducing cycle time minimizes risk, improves quality, speed

9

VS.

Faster release cycle Less code to validate Easier to schedule

Longer test cycles

Less predictability

Unable to adapt to change

Principles of Microservices

API Gateway

Start Decoupling From Your Monolith

11

Monolith

API Gateway

New Feature 1

New Feature 2

Re-factor Feature 3

UI

New UI Features

The challengeNew matrix from hell

12Courtesy of

Introducing TUGBOT.IOAn HPE Open Source Project

13

MONITORPLAN TESTTESTTESTTEST

ALM Octane - AnalyticsVisualization (Kibana)ElasticSearch

Run Collect Env: Dev

Run Collect Env: Test

Run Collect Env: Stage

Run Collect Env: Prod

Test results

Tugbot—in-cluster testing framework for Docker ContainersDevelopers IT Operations

Use cases—make continuous testing real (24x7x365)

– Simplify & standardize testing in any environment – Any test, Any tool (integration, functional, performance, security, chaos, etc.)

– E.G test backing services or based on operational activities

– Event driven testing - trigger tests on events – Docker events:image update, new container, etc. – Timer events: CRON – once in time interval – Host events: kernel update, host restart, package update, config

update, etc. – External event: someone asked to run tests, etc.

– Standardize collection of test results from all machines – Aggregate and analyze test results over time to track quality improvements – Test context: Events, Docker containers, Host configuration, user defined context

– Share “Test Containers” – ”Social-testing” (e.g. Docker security bench test)

“Tugbot” workflow

KibanaTest

containers

1. Discover test containers

4. Publish results to ES

ALM OctaneFrom github.com

3. Collect rresults

2. Runtests (Tugbot)

5. Visualize

Micro services

Open Sourced

Tugbot components

“Test Container” Dockerfile

Docker

Tugbot

Example - “test container” Dockerfile.xxx

LABEL tugbot.event.docker=[list of Docker events]

Demo flow

– Deploy app

– Deploy Tugbot services – Run, collect, result – Elasticsearch + Kibana

– Launch app – Vote

– Deploy 1st run of Tugbot

– Inject failures – Functional and integration

– View results

– Inject chaos (Pumba)

– View results

Source: DockerCon 2016

Demo

How to get an “Oculus VR Gear” headset?

– Open to anyone that wants to develop or contribute to the open source community

– Make sure we can reach you if you are contributing

– Deadline: December 9th, 2016 - Winner is chosen – Our S/W Engineering Team will select

– Contribute to and/or open issues for one of these repos: (contributions w/+reactions are weighted higher)

– Tugbot / Leader / Kubernetes - Standalone, Swarm, Kubernetes

– Tugbot Collect = Tugbot-result-service

– Tugbot Results Service-es

– Join and contribute to the Slack channel: https://tugbot.slack.com

– Example Voting App

21

HPESW-ADM Open Source contributions– In-cluster testing framework for microservices in containers

– Tugbot – open sourced (github) - slides – Published in docker’s weekly newsletter – DEMO App (same one used at DockerCon16) – github

– Chaos injection tool – “Pumba” – open sourced (github) – Resiliency testing for microservices in containers

– Chaos injection with network emulation – Pumba with netem – open sourced – github – Used in the DEMO App

– Containerized Docker Bench security testing

– References

– 12factor.net

– Testing Strategies for Microservices - Martin Fowler

22

Orchestration and Scheduling - Swarm, Kubernetes, Marathon

Application Lifecycle Management on modern platforms

Future

Web console

Agile ALM Predictive ALM Cloud-native ALMApplication Lifecycle Management (ALM Octane)

HPESW Services

Container Platform (PaaS, DC/OS, DiDC)

vSphereAWSOpenStack Docker Engine

Docker Trusted Registry

H/W

We gladly accept pull requests https://github.com/gaia-docker/tugbot

@GehaniNeil

Join us on Slack: tugbot-public.slack.com (public) For Developers/Contributors: tugbot.slack.com

TUGBOT.IO is live!