Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1Csfk7Z.
Shobana Radhakrishnan shares details about best practices adopted in implementing API integration with third party services, how to manage change and deal with failures. Filmed at qconsf.com.
Shobana Radhakrishnan is responsible for technology and engineering execution at Mindflash Technologies Inc, a cloud-hosted Learning Management System, where she is Vice President of Engineering.
Managing Internal and External Services for a High Uptime Goal
1. November 2014
Managing Service Integration for High
Uptime In a Lean Startup
Shobana Radhakrishnan
Vice President of Engineering, Mindflash
2. InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/api-integration-services
3. Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon San Francisco
www.qconsf.com
4. Agenda
• Services at Scale
• Mindflash Customer API
• Mindflash Integration with External Services
• Approach and Lessons Learned
2
5. 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
6. Mindflash At a Glance
4
Mindflash App
Mindflash
Customer API
Services
Course Videos
Player
Developer
ManagerTrainer/P
rospect
10. 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
11. 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
12. Our Goals
• Uptime and Response Time
• High website performance
• Low error rates
10
13. Key Metrics for Mindflash
• Course Creation Rate
• Course Completion Rate
• Uptime and Response Time
11
29. 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
30. 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
31. Enabling and Disabling
/* Enable */
flipper.enable(‘newPlayer’);
/*Disable */
Flipper.disable(‘newPlayer’);
/* Finding out all current features */
flipper.allFeatures();
29