Maintaining Sanity In A Hypermedia World Amit Easow, Comcast
Maintaining Sanity In A Hypermedia World Amit Easow amit_easow@comcast.com GTAC, Kirkland October 29, 2014
The X1 Entertainment Operating System In 2013, the product team presented the vision of the X1 Entertainment Operating System Amit Easow- Maintaining Sanity In A Hypermedia World
What I saw… Each node is a page, each line is a link to another page This represents only a fraction of the total API Amit Easow- Maintaining Sanity In A Hypermedia World
External Services Hypermedia API Middleware Hypermedia API The same API is presented to all clients The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License. Other images are public domain or used with permission. Amit Easow- Maintaining Sanity In A Hypermedia World
Discovery Client Home Page Link URL Link Resource Resource Resource This is a simplified version of the Hypermedia API Amit Easow- Maintaining Sanity In A Hypermedia World
Continuous testing… *CI To maintain sanity... Code repo… git Code review… gerrit Continuous testing… *CI As of last week... 918 functional tests & 8931 unit test Code coverage is over 90% Continuous deployment… *CI *CI = Continuous integration and deployment server Feedback Feedback Feedback! Sanity is maintained by extensive testing Virtually zero defects escape to production We deploy code everyday Amit Easow- Maintaining Sanity In A Hypermedia World
Continuous Testing Pipeline Code Review Merge Patch Set Code Verify Feedback Feedback Feedback! Gerrit triggers Verify by running test cases Amit Easow- Maintaining Sanity In A Hypermedia World
Daily Deployment Pipeline Dev QA QA Load Stage Prod Feedback Feedback Feedback! Failure at any stage encourages an investigation and loop back Amit Easow- Maintaining Sanity In A Hypermedia World
Web Application Resource Testing System PyFuncTest We test all the API endpoints before they are offered to clients
3rd Party API Mocking Framework Hydra We test against 3rd party APIs that are not ready for integration Hydra allows us to mock out scenarios that are difficult in test live Only a subset of test cases is run against the live 3rd party endpoints
On every build... Feedback Feedback Feedback! Anyone from the team can suggest ideas for more tests Amit Easow- Maintaining Sanity In A Hypermedia World
Continuous testing and deployment In Summary... Code repo and review Continuous testing and deployment PyFuncTest for API functionality testing Hydra for mocking of 3rd party APIs Continue exploring ways to improve testing Contact me: amit_easow@comcast.com Amit Easow- Maintaining Sanity In A Hypermedia World