Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

In cluster open source testing framework - Microservices Meetup

481 views

Published on

Just like a tugboat bring container ships safely to port, Tugbot, the open source framework brings containers safely into production.

Published in: Software

In cluster open source testing framework - Microservices Meetup

  1. 1. In-cluster Open Source Testing Framework For Docker containers Neil Gehani – Sr. Product Manager, HPE-SW @GehaniNeil
  2. 2. 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
  3. 3. Applications are changing – accelerate to a digital enterprise 3 Courtesy of
  4. 4. 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
  5. 5. Business process Teams should be built around business value 5 Microservices Business activity
  6. 6. 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
  7. 7. Feel the need for speed
  8. 8. Balancing Time Value of Money – Time value of delivery – Time value of shipping 8 Source: Brandon Chu - Time Value of Shipping
  9. 9. 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
  10. 10. Principles of Microservices
  11. 11. 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
  12. 12. The challenge New matrix from hell 12Courtesy of
  13. 13. Introducing TUGBOT.IO An HPE Open Source Project 13
  14. 14. 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 Containers Developers IT Operations
  15. 15. 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)
  16. 16. “Tugbot” workflow Kibana Test 
 containers 1. Discover test containers 4. Publish 
 results to ES ALM OctaneFrom github.com 3. Collect 
 rresults 2. Run
 tests (Tugbot) 5. Visualize Micro services
  17. 17. Open Sourced Tugbot components
  18. 18. “Test Container” Dockerfile Docker Tugbot Example - “test container” Dockerfile.xxx LABEL tugbot.event.docker=[list of Docker events]
  19. 19. 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
  20. 20. Demo
  21. 21. 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
  22. 22. 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
  23. 23. Orchestration and Scheduling - Swarm, Kubernetes, Marathon Application Lifecycle Management on modern platforms Future Web console Agile ALM Predictive ALM Cloud-native ALM Application Lifecycle Management (ALM Octane) HPESW Services Container Platform (PaaS, DC/OS, DiDC) vSphereAWSOpenStack Docker Engine Docker Trusted Registry H/W
  24. 24. 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!

×