Presentation is loading. Please wait.

Presentation is loading. Please wait.

November 2014 Managing Service Integration for High Uptime In a Lean Startup Shobana Radhakrishnan Vice President of Engineering, Mindflash.

Similar presentations


Presentation on theme: "November 2014 Managing Service Integration for High Uptime In a Lean Startup Shobana Radhakrishnan Vice President of Engineering, Mindflash."— Presentation transcript:

1 November 2014 Managing Service Integration for High Uptime In a Lean Startup Shobana Radhakrishnan Vice President of Engineering, Mindflash

2 Agenda Services at Scale Mindflash Customer API Mindflash Integration with External Services Approach and Lessons Learned 2

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? 3

4 Mindflash At a Glance 4 Mindflash App Mindflash Customer API Services Course Videos Player Developer Manager Trainer/P rospect

5 Lean Startup** 5 **Eric Weis:

6 Lean Startup Principles at Mindflash Minimum Viable Product (MVP) Ship Frequently Monitor Outcome Iterate 6

7 Typical Constraints Budget Resources High Release Frequency 7

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 8

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 9

10 Our Goals Uptime and Response Time High website performance Low error rates 10

11 Key Metrics for Mindflash Course Creation Rate Course Completion Rate Uptime and Response Time 11

12 Mindflash API 12

13 Why Bulk Operations with UX flexibility Varied needs for same functionality Users more self-sufficient 13

14 API Functionality REST Services User and User Group Management User Enrollment Reporting 14

15 API Call Flow 15 API Customer 1 API Customer 2 API Customer 3 API Customer 4 API Customer 5 Services Layer API Gateway

16 API Considerations Heterogeneous Needs User release cycles vary Backwards compatibility Objects evolve continuously 16

17 Mindflash External Service Integration 17

18 Trends Growth of PaaS Services Evolution of Hub and Data Analysis Solutions Public API and Open Source 18

19 Services we Integrate With 19

20 Integration Building and Maintaining Component API Migration and Upgrades Security and Bug Patches 20

21 Approach and Lessons Learned 21

22 Mindflash Development Philosophy Reuse, don’t reinvent Action and Iteration Upgrade continuously 22

23 System Design Best Practices Loose Coupling Chain-of-responsibility pattern Single Responsibility Principle 23

24 Programming Best Practices Defensive Programming Critical vs. non-critical operations Real-time vs. Asynchronous Feature Flags 24

25 Real-time Vs. Asynchronous 25 MF Trainers and Prospects Trainees Hydra Billing RDS Analytics File Conversion Feature Integration Developers MF API Gateway

26 Critical vs. Non-Critical 26 MF Trainers and Prospects Trainees Hydra Billing RDS Analytics File Conversion Feature Integration Developers MF API Gateway

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 27

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’); 28

29 Enabling and Disabling /* Enable */ flipper.enable(‘newPlayer’); /*Disable */ Flipper.disable(‘newPlayer’); /* Finding out all current features */ flipper.allFeatures(); 29

30 Continuous Deployment 30 Build Deploy to QA Check in Run Tests Deploy to PROD Rule-based subset that needs to be rebuilt/deplo yed

31 Process Best Practices Agile, Continuous Deployment Early customer beta Automate, automate more Monitor, monitor more 31

32 Results Releases without fallout Shorter deployment cycles Much lower error rates Consistently high uptime 32

33 Lessons Learned Chain-of-responsibility pattern effective Design for easy migration Comprehensive monitoring Failure Detection and Recovery Environment Convergence 33

34 Future Improvements Staging Environment Blue Green Deployment Nightly Performance Testing 34

35 References example/app/index.html#/sandbox example/app/index.html#/sandbox Developer Blog – 35

36 Thank you! https://www.linkedin.com/in/shob anaradhakrishnan https://www.linkedin.com/in/shob 36

37 Questions?


Download ppt "November 2014 Managing Service Integration for High Uptime In a Lean Startup Shobana Radhakrishnan Vice President of Engineering, Mindflash."

Similar presentations


Ads by Google