qconsf 2014 managing services in a lean startup - shobana radhakrishnan
TRANSCRIPT
![Page 1: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/1.jpg)
November 2014
Managing Service Integration for High Uptime In a Lean Startup
Shobana RadhakrishnanVice President of Engineering, Mindflash
![Page 2: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/2.jpg)
2
Agenda
• Services at Scale• Mindflash Customer API• Mindflash Integration with External Services• Approach and Lessons Learned
![Page 3: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/3.jpg)
3
Questions
• How do you manage service deployment for high uptime and quality?
• How can you guarantee high uptime when relying on several external services?
• How can you do these in a lean startup?
![Page 4: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/4.jpg)
4
Mindflash At a Glance
Mindflash App
Mindflash Customer API Services
Course Videos
Player
DeveloperManagerTrainer/
Prospect
![Page 5: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/5.jpg)
5
Lean Startup**
**Eric Weis: http://theleanstartup.com/principles
![Page 6: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/6.jpg)
6
Lean Startup Principles at Mindflash
• Minimum Viable Product (MVP)
• Ship Frequently• Monitor Outcome• Iterate
![Page 7: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/7.jpg)
7
Typical Constraints
• Budget• Resources• High Release
Frequency
![Page 8: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/8.jpg)
8
Monolithic vs. Microservices
Monolithic• N-tier Application• Code dependencies• Shared database• Larger units of deployment
Microservices• Independent services• Easier to manage and
deploy• Loose Coupling
![Page 9: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/9.jpg)
9
Our Journey
• Started with a monolithic service – FLEX, .NET• Independent service and middle layers• Shared database with read rep• 20+ external services -> microservices
architecture
![Page 10: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/10.jpg)
10
Our Goals
• Uptime and Response Time• High website performance• Low error rates
![Page 11: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/11.jpg)
11
Key Metrics for Mindflash
• Course Creation Rate• Course Completion Rate• Uptime and Response Time
![Page 12: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/12.jpg)
12
Mindflash API
![Page 13: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/13.jpg)
13
Why
• Bulk Operations with UX flexibility• Varied needs for same functionality• Users more self-sufficient
![Page 14: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/14.jpg)
14
API Functionality
• REST Services• User and User Group
Management• User Enrollment • Reporting
![Page 15: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/15.jpg)
15
API Call FlowAPI
Customer 1API
Customer 2API
Customer 3API
Customer 4API
Customer 5
Services Layer
API Gateway
![Page 16: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/16.jpg)
16
API Considerations
• Heterogeneous Needs• User release cycles vary• Backwards compatibility• Objects evolve continuously
![Page 17: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/17.jpg)
17
Mindflash External Service Integration
![Page 18: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/18.jpg)
18
Trends
• Growth of PaaS Services• Evolution of Hub and Data
Analysis Solutions• Public API and Open Source
![Page 19: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/19.jpg)
19
Services we Integrate With
![Page 20: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/20.jpg)
20
Integration
• Building and Maintaining Component• API Migration and Upgrades• Security and Bug Patches
![Page 21: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/21.jpg)
21
Approach and Lessons Learned
![Page 22: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/22.jpg)
22
Mindflash Development Philosophy
• Reuse, don’t reinvent• Action and Iteration• Upgrade continuously
![Page 23: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/23.jpg)
23
System Design Best Practices
• Loose Coupling• Chain-of-responsibility pattern• Single Responsibility Principle
![Page 24: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/24.jpg)
24
Programming Best Practices
• Defensive Programming• Critical vs. non-critical
operations• Real-time vs. Asynchronous• Feature Flags
![Page 25: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/25.jpg)
25
Real-time Vs. Asynchronous
MF
Trainers and Prospects
Trainees
Hydra
Billing
RDS
Analytics
File Conversion
Feature Integration
Developers
MF API
Gateway
![Page 26: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/26.jpg)
26
Critical vs. Non-Critical
MF
Trainers and Prospects
Trainees
Hydra
Billing
RDS
Analytics
File Conversion
Feature Integration
Developers
MF API
Gateway
![Page 27: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/27.jpg)
27
Feature Flags – our implementation
• Feature Flags persisted in DB• Set per account and pricing tier• Common Uses
– Manage rollout for risky changes– Adjust feature offering based on pricing tier– Enable limited testing of a feature
![Page 28: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/28.jpg)
28
Feature Flipping in Node/* Defining a Feature */
var flipper = require(‘flipper’);flipper.add (‘newPlayer’);
/* Testing for a Feature */Var flipper = require(‘flipper’);If (flipper.newPlayer) {}Else {}
/* Another Way */Flipper.isEnabled(‘newPlayer’);
![Page 29: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/29.jpg)
29
Enabling and Disabling
/* Enable */flipper.enable(‘newPlayer’);
/*Disable */Flipper.disable(‘newPlayer’);
/* Finding out all current features */flipper.allFeatures();
![Page 30: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/30.jpg)
30
Continuous Deployment
Build
Deploy to QA
Check in
Run Tests
Deploy to PROD
Rule-based subset that needs to be rebuilt/deployed
![Page 31: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/31.jpg)
31
Process Best Practices
• Agile, Continuous Deployment
• Early customer beta• Automate, automate more• Monitor, monitor more
![Page 32: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/32.jpg)
32
Results
• Releases without fallout• Shorter deployment cycles• Much lower error rates• Consistently high uptime
![Page 33: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/33.jpg)
33
Lessons Learned
• Chain-of-responsibility pattern effective
• Design for easy migration• Comprehensive monitoring• Failure Detection and Recovery• Environment Convergence
![Page 34: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/34.jpg)
34
Future Improvements
• Staging Environment• Blue Green Deployment• Nightly Performance
Testing
![Page 35: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/35.jpg)
35
References
• http://mindflash.github.io/mf-api-example/app/index.html#/sandbox
• Developer Blog – http://www.mindflash.com/developers
![Page 36: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/36.jpg)
36
Thank you!
• https://www.linkedin.com/in/shobanaradhakrishnan
• @shobanarad
![Page 37: QConSF 2014 Managing Services in a Lean Startup - Shobana Radhakrishnan](https://reader035.vdocuments.mx/reader035/viewer/2022062515/55d02126bb61eb9a468b46c3/html5/thumbnails/37.jpg)
Questions?