our road to continuous delivery @ tango amit...

18
Our Road to Continuous Delivery @ Tango Amit Mathur

Upload: others

Post on 10-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Our Road to Continuous Delivery @ Tango

Amit Mathur

Page 2: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Tango Overview

Founded in 2009 and headquartered in Mountain View Tango has over 300 employees

Tango is a messaging platform that combines communications, social and content

We combine chat, video calling, games, social discovery, and other entertaining content

300M+ people use Tango to keep in touch with friends and family

Tango has raised $370M to date with the most recent Series D funding D of $280M led by Alibaba

Page 3: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Continuous Delivery

Page 4: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Continuous Delivery Goals

• Monthly Release Cycle -- Enable 2 week production

client bake time for new releases by certifying server

components in 2 weeks

• Minimize regressions due to new servers deployed in

production

Page 5: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Certification Flow

Testing in Feature Branch

Landing Feature Branch to Trunk

Release Branch Creation and Stabilization

Certify Server Components

Server Components Deployed to Production

Internal Beta Testing of

Clients Pointing to Production

Staged Android Rollout

iOS Rollout

2 weeks 2 weeks

Page 6: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Continuous Delivery Automation

Page 7: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Environment Utilization

Page 8: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Deployment Automation (mosh)

Page 9: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Tango Test Automation System

9

Test Analytics

Web Service

Analytics DB

FeatureTest

Continuous

Delivery Test

Android/iOS

UIAutomation

Test

Deployed

Environment

Test Analytics

UI Dashboard

UI

Cross Platform

Client

Server

Tango

Cross Platform

Unit Tests

Server Unit Tests

Page 10: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Test Automation Investments

Page 11: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Mobile UI Automation

11

188 193

0 0

12 monitors

Page 12: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Continuous Delivery Test

RESTful test that adheres to the following requirements:

Environment Mobility -- Should be able to run in any environment including localhost

Non-intrusive -- Should clean up all garbage created by the test and should not interfere with other test instances (including itself)

Security -- Must not expose environment secrets (test could be run in production environment)

Confidential

Page 13: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Test Intelligence

Page 14: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Test Quality Problem

# of automated tests running continuously has dramatically increased

Flaky tests have become a serious problem

How do we deal with them?

Confidential

Page 15: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Gamification Experiment

Confidential

Page 16: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Limbo System

Test in Quarantine if:

Analysis Rate < 90% or False Positive Rate < 90%

in 24 hour period

Page 17: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Key Takeaways

Deployment automation is key as it helps reduce drift in test environments

Having continuous delivery tests (UI & server) are key but invest in the right amount of each

Quarantine those flaky tests!

Confidential

Page 18: Our Road to Continuous Delivery @ Tango Amit Mathuruploads.pnsqc.org/2015/slides/t-025_Mathur_slides.pdf · Gamification Experiment Confidential . Limbo System Test in Quarantine

Appendix