Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mobile Ops: Measuring Performance and Automatin...

Mobile Ops: Measuring Performance and Automating Workflow

Clay Smith

April 27, 2016
Tweet

More Decks by Clay Smith

Other Decks in Programming

Transcript

  1. "OH MOBILE OPS? THE THING PEOPLE DON'T DO?" - Anonymous

    Software Engineer Good background from @patrickdubois: http://www.jedi.be/blog/2016/01/28/Mobile %20Delivery%20with%20a%20devops%20mindset/
  2. "Very few [businesses] are well prepared to successfully deploy and

    maintain apps." -Accenture Mobile Survey https://adtmag.com/articles/2015/09/30/accenture-mobile-survey.aspx
  3. SOME CI ADVICE Automatically build and test on push Explore

    distributing beta builds Integrate with Slack/HipChat/etc Automatic Play Store release... maybe* http://simpleprogrammer.com/2009/12/30/continuous-integration-best-practices/ * https://wiki.jenkins-ci.org/display/JENKINS/Google+Play+Android+Publisher+Plugin https://github.com/Triple-T/gradle-play-publisher
  4. BUILDING IT YOURSELF? ‣ Consider http://square.github.io/spoon/ ‣ Run tests on

    multiple devices in parallel + HTML Summary ‣ Pros: Device Labs look super cool ‣ Cons: Device labs are hard to maintain
  5. BECOME A FARMER? ‣ Many choices (search "mobile device testing")

    ‣ Ex: https://aws.amazon.com/device-farm/ ‣ Can run tests or fuzz ‣ Most have build system integration + APIs (./gradlew devicefarmUpload)
  6. WHAT THEY DID ‣ Desire to avoid performance regressions ‣

    Belief in the ability to detect performance issues before release by using advanced techniques and automation ("the lab") ‣ Advanced distributed system using zookeeper and custom racks of devices https://code.facebook.com/posts/924676474230092/mobile-performance-tooling-infrastructure-at-facebook/
  7. CASE STUDY #2 Doing it with New Relic + TravisCI

    + GitHub + AWS Device Farm https://github.com/smithclay/AndroidPerfTestExample
  8. TRAVISCI GITHUB AWS DEVICE FARM NEW RELIC INSIGHTS ♥ SASS

    TravisCI runs on commits and uploads the latest build to AWS Device Farm, where performance analytics are collected from the app with New Relic. Build Test Collect
  9. SOME MOBILE KPIS ‣ Network requests (including failed) ‣ Startup

    time ‣ Blocked UI time ‣ Crashes, other errors ‣ Critical user interactions ‣ 3rd party services—what are they doing? https://medium.com/@mandrigin/ios-app-performance-instruments-beyond-48fe7b7cdf2