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
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
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
8. Balancing Time Value of Money
– Time value of delivery
– Time value of shipping
8
Source: Brandon Chu - Time Value of Shipping
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
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. 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. “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
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. 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
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!