SlideShare a Scribd company logo
1 of 19
www.gslab.com
Engineering products for scale, speed and agility
Atul Narkhede, CTO @ GS Lab
http://in.linkedin.com/in/atulnarkhede
Welcome!
www.gslab.com 2
Introduction: Suhasini Kirloskar
Chief of Marketing, GS Lab
Presenter: Atul Narkhede
CTO, GS Lab
Nature of (most) software products today
• delivered as a service
• hosted on the cloud
• accessed via the browser, mobile
apps and custom devices
• users spread out globally
• integrate with established 3rd party
services and applications
www.gslab.com 3
Constraints and expectations from products
• decreasing ‘time to market’
 fast development
 no re-invention of the wheel
• market-driven development
frequent changes
continuous releases
incremental, experimental enhancements
“platform for testing out market hypotheses”
www.gslab.com 4
Key measurement parameters for such products
• ability to scale  be ready for viral adoption
• performance  fast and good UX
• usage analytics  understand user behaviour
• reliability  24x7 uptime, monitoring
• security  protect user data (storage,
access and transit)
www.gslab.com 5
Implications on product design…
• Lets work with a hypothetical video creation, search and
sharing service for the enterprise….
VideoFoo
www.gslab.com 6
Quick start, progressive refinement approach
www.gslab.com 7
Architecture
• system of loosely-coupled components
• communicating via REST APIs over/or HTTP
• multiple instances for scale-out and distributed operation
• interface: self-registration, heartbeat
www.gslab.com 8
video
recorder
video
recorder
doc
converter
user session
handler
user session
handler
user session
handler
doc
converter
registry
m1
m2
m3
OCR
indexer
Architecture - II
• simple common component interface
• HTTP/REST communication layer reused across components
– Jetty or Tomcat
– lightweight web servers (lighttpd, nginx)
www.gslab.com 9
doc
converter
• efficient multi-tenanting
– load balancing
– rules to isolate customer-specific traffic to designated instances
 selective features and upgrades for customers
 staggered feature rollout and experimentation
Architecture – III
www.gslab.com 10
analytics
engine
user session
handler
user session
handler
OCR-oldm1
m2 OCR-new
stable-customers
leading-edge customers
reverse
proxy
• internal API – for front-end
– fast, efficient, informative, backdoors
– all user interfaces (web, mobile*) should be based on this API
• external API – for 3rd party integration
– minimal, clean, secure, versioned, API-keys
API
www.gslab.com 11
product
core
internal API
external API
Performance
• replicate data for scale-out  requests served in parallel
– relational database replication (master – slave)
– use NoSQL databases for non-transactional data (master –
master replication)
– select “nearest” instance (LBR, geo-ip)
www.gslab.com 12
us-1
sg-1
eu-1
sg-2 sg-3
us-2
?
Performance - II
• cache at every level
– version for cache-busting
www.gslab.com
endpoint cache
(browser)
network cache
(CDN)
application cache
(memcached)
VideoFoo
app
Analytics
• understand how users interact with your product
– feature-level analytics (events)
– use 3rd party libraries for tracking high-level feature usage (loggr),
performance (new relic), user profiling (flurry)
www.gslab.com 14
Analytics - II
• all URLs in any external communication (ex. email and mobile
notifications, social posts, shares) should include tracking-
tokens to track fulfillment
www.gslab.com 15
VideoFoo
share
Reliability
• within-app
– monitor startup, shutdown, restart of individual components
• outside-app
– 24x7 external monitoring, alerts (nagios)
– log analysis (splunk, logstash, kibana,)
• graceful degradation in case of 3rd party API failures/delays
– asynchronous loading after page.onLoad()
www.gslab.com 16
Security
• strong access-control
– every session/cookie validated for ‘user@tenant’
• API throttling to prevent DOS attacks (mod_qos, mod_security
for apache)
• timed authentication tokens (HMAC signatures) to protect
URL resources (external API, CDN)
www.gslab.com 17
Devops
• smooth development  test  staging  production
deployment process
• internal private cloud setup (openstack, cloudstack)
• easy configuration management (chef, puppet)
• test application performance from multiple geographies
(websitetest, blitz)
www.gslab.com 18
www.gslab.com
Thank You
Watch the audio-visual recording at
http://bit.ly/UMaCEq

More Related Content

What's hot

Monitoring kubernetes wwith prometheus and grafana azure singapore - 19 aug...
Monitoring kubernetes wwith prometheus and grafana   azure singapore - 19 aug...Monitoring kubernetes wwith prometheus and grafana   azure singapore - 19 aug...
Monitoring kubernetes wwith prometheus and grafana azure singapore - 19 aug...Nilesh Gule
 
SplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.comSplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.comSplunk
 
Proactive monitoring tools or services - Open Source
Proactive monitoring tools or services - Open Source Proactive monitoring tools or services - Open Source
Proactive monitoring tools or services - Open Source B.A.
 
Lessons learned from embedding Cassandra in xPatterns
Lessons learned from embedding Cassandra in xPatternsLessons learned from embedding Cassandra in xPatterns
Lessons learned from embedding Cassandra in xPatternsClaudiu Barbura
 
One Azure Monitor to Rule Them All? - Marius Zaharia
One Azure Monitor to Rule Them All? - Marius ZahariaOne Azure Monitor to Rule Them All? - Marius Zaharia
One Azure Monitor to Rule Them All? - Marius ZahariaITCamp
 
Mastering Azure Monitor
Mastering Azure MonitorMastering Azure Monitor
Mastering Azure MonitorRichard Conway
 
Hybrid Cloud Management with ManageIQ
Hybrid Cloud Management with ManageIQHybrid Cloud Management with ManageIQ
Hybrid Cloud Management with ManageIQJohn Mark Walker
 
Logic Apps, the power of new integration
Logic Apps, the power of new integrationLogic Apps, the power of new integration
Logic Apps, the power of new integrationFélix Mondelo
 
Scaling .net containers with event driven workloads
Scaling .net containers with event driven workloadsScaling .net containers with event driven workloads
Scaling .net containers with event driven workloadsNilesh Gule
 

What's hot (10)

Monitoring kubernetes wwith prometheus and grafana azure singapore - 19 aug...
Monitoring kubernetes wwith prometheus and grafana   azure singapore - 19 aug...Monitoring kubernetes wwith prometheus and grafana   azure singapore - 19 aug...
Monitoring kubernetes wwith prometheus and grafana azure singapore - 19 aug...
 
SplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.comSplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.com
 
Proactive monitoring tools or services - Open Source
Proactive monitoring tools or services - Open Source Proactive monitoring tools or services - Open Source
Proactive monitoring tools or services - Open Source
 
Lessons learned from embedding Cassandra in xPatterns
Lessons learned from embedding Cassandra in xPatternsLessons learned from embedding Cassandra in xPatterns
Lessons learned from embedding Cassandra in xPatterns
 
One Azure Monitor to Rule Them All? - Marius Zaharia
One Azure Monitor to Rule Them All? - Marius ZahariaOne Azure Monitor to Rule Them All? - Marius Zaharia
One Azure Monitor to Rule Them All? - Marius Zaharia
 
Mastering Azure Monitor
Mastering Azure MonitorMastering Azure Monitor
Mastering Azure Monitor
 
Hybrid Cloud Management with ManageIQ
Hybrid Cloud Management with ManageIQHybrid Cloud Management with ManageIQ
Hybrid Cloud Management with ManageIQ
 
Logic Apps, the power of new integration
Logic Apps, the power of new integrationLogic Apps, the power of new integration
Logic Apps, the power of new integration
 
Scaling .net containers with event driven workloads
Scaling .net containers with event driven workloadsScaling .net containers with event driven workloads
Scaling .net containers with event driven workloads
 
Azure によるスピードレイヤの分析アーキテクチャ
Azure によるスピードレイヤの分析アーキテクチャAzure によるスピードレイヤの分析アーキテクチャ
Azure によるスピードレイヤの分析アーキテクチャ
 

Similar to Engineering products for scale, speed and agility

IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...OpenWhisk
 
Webinar september 2013
Webinar september 2013Webinar september 2013
Webinar september 2013Marc Gille
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and FutureKeiichiro Ono
 
OSMC 2022 | Current State of icinga by Bernd Erk
OSMC 2022 | Current State of icinga by Bernd ErkOSMC 2022 | Current State of icinga by Bernd Erk
OSMC 2022 | Current State of icinga by Bernd ErkNETWAYS
 
Log aggregation and analysis
Log aggregation and analysisLog aggregation and analysis
Log aggregation and analysisDhaval Mehta
 
Flink powered stream processing platform at Pinterest
Flink powered stream processing platform at PinterestFlink powered stream processing platform at Pinterest
Flink powered stream processing platform at PinterestFlink Forward
 
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16AppDynamics
 
Browserscope oscon 2011
Browserscope oscon 2011Browserscope oscon 2011
Browserscope oscon 2011lsimon
 
The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...
 The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a... The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...
The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...Big Data Spain
 
Uxdevsummit - Best practices for instrumentation
Uxdevsummit - Best practices for instrumentationUxdevsummit - Best practices for instrumentation
Uxdevsummit - Best practices for instrumentationJonah Kowall
 
Agentless System Crawler - InterConnect 2016
Agentless System Crawler - InterConnect 2016Agentless System Crawler - InterConnect 2016
Agentless System Crawler - InterConnect 2016Canturk Isci
 
Working Software Over Comprehensive Documentation
Working Software Over Comprehensive DocumentationWorking Software Over Comprehensive Documentation
Working Software Over Comprehensive DocumentationAndrii Dzynia
 
JIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesJIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesAtlassian
 
apidays LIVE Paris - GraphQL meshes by Jens Neuse
apidays LIVE Paris - GraphQL meshes by Jens Neuseapidays LIVE Paris - GraphQL meshes by Jens Neuse
apidays LIVE Paris - GraphQL meshes by Jens Neuseapidays
 
Google BigQuery for Everyday Developer
Google BigQuery for Everyday DeveloperGoogle BigQuery for Everyday Developer
Google BigQuery for Everyday DeveloperMárton Kodok
 
Challenges In Modern Application
Challenges In Modern ApplicationChallenges In Modern Application
Challenges In Modern ApplicationRahul Kumar Gupta
 
Splunk for Developers
Splunk for DevelopersSplunk for Developers
Splunk for DevelopersSplunk
 
Digital Forensics and Incident Response in The Cloud
Digital Forensics and Incident Response in The CloudDigital Forensics and Incident Response in The Cloud
Digital Forensics and Incident Response in The CloudVelocidex Enterprises
 

Similar to Engineering products for scale, speed and agility (20)

OGCE SC10
OGCE SC10OGCE SC10
OGCE SC10
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
 
Geode Meetup Apachecon
Geode Meetup ApacheconGeode Meetup Apachecon
Geode Meetup Apachecon
 
Webinar september 2013
Webinar september 2013Webinar september 2013
Webinar september 2013
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and Future
 
OSMC 2022 | Current State of icinga by Bernd Erk
OSMC 2022 | Current State of icinga by Bernd ErkOSMC 2022 | Current State of icinga by Bernd Erk
OSMC 2022 | Current State of icinga by Bernd Erk
 
Log aggregation and analysis
Log aggregation and analysisLog aggregation and analysis
Log aggregation and analysis
 
Flink powered stream processing platform at Pinterest
Flink powered stream processing platform at PinterestFlink powered stream processing platform at Pinterest
Flink powered stream processing platform at Pinterest
 
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
 
Browserscope oscon 2011
Browserscope oscon 2011Browserscope oscon 2011
Browserscope oscon 2011
 
The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...
 The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a... The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...
The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...
 
Uxdevsummit - Best practices for instrumentation
Uxdevsummit - Best practices for instrumentationUxdevsummit - Best practices for instrumentation
Uxdevsummit - Best practices for instrumentation
 
Agentless System Crawler - InterConnect 2016
Agentless System Crawler - InterConnect 2016Agentless System Crawler - InterConnect 2016
Agentless System Crawler - InterConnect 2016
 
Working Software Over Comprehensive Documentation
Working Software Over Comprehensive DocumentationWorking Software Over Comprehensive Documentation
Working Software Over Comprehensive Documentation
 
JIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesJIRA Performance After 300,000 Issues
JIRA Performance After 300,000 Issues
 
apidays LIVE Paris - GraphQL meshes by Jens Neuse
apidays LIVE Paris - GraphQL meshes by Jens Neuseapidays LIVE Paris - GraphQL meshes by Jens Neuse
apidays LIVE Paris - GraphQL meshes by Jens Neuse
 
Google BigQuery for Everyday Developer
Google BigQuery for Everyday DeveloperGoogle BigQuery for Everyday Developer
Google BigQuery for Everyday Developer
 
Challenges In Modern Application
Challenges In Modern ApplicationChallenges In Modern Application
Challenges In Modern Application
 
Splunk for Developers
Splunk for DevelopersSplunk for Developers
Splunk for Developers
 
Digital Forensics and Incident Response in The Cloud
Digital Forensics and Incident Response in The CloudDigital Forensics and Incident Response in The Cloud
Digital Forensics and Incident Response in The Cloud
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 

Recently uploaded (20)

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 

Engineering products for scale, speed and agility

  • 1. www.gslab.com Engineering products for scale, speed and agility Atul Narkhede, CTO @ GS Lab http://in.linkedin.com/in/atulnarkhede
  • 2. Welcome! www.gslab.com 2 Introduction: Suhasini Kirloskar Chief of Marketing, GS Lab Presenter: Atul Narkhede CTO, GS Lab
  • 3. Nature of (most) software products today • delivered as a service • hosted on the cloud • accessed via the browser, mobile apps and custom devices • users spread out globally • integrate with established 3rd party services and applications www.gslab.com 3
  • 4. Constraints and expectations from products • decreasing ‘time to market’  fast development  no re-invention of the wheel • market-driven development frequent changes continuous releases incremental, experimental enhancements “platform for testing out market hypotheses” www.gslab.com 4
  • 5. Key measurement parameters for such products • ability to scale  be ready for viral adoption • performance  fast and good UX • usage analytics  understand user behaviour • reliability  24x7 uptime, monitoring • security  protect user data (storage, access and transit) www.gslab.com 5
  • 6. Implications on product design… • Lets work with a hypothetical video creation, search and sharing service for the enterprise…. VideoFoo www.gslab.com 6
  • 7. Quick start, progressive refinement approach www.gslab.com 7
  • 8. Architecture • system of loosely-coupled components • communicating via REST APIs over/or HTTP • multiple instances for scale-out and distributed operation • interface: self-registration, heartbeat www.gslab.com 8 video recorder video recorder doc converter user session handler user session handler user session handler doc converter registry m1 m2 m3 OCR indexer
  • 9. Architecture - II • simple common component interface • HTTP/REST communication layer reused across components – Jetty or Tomcat – lightweight web servers (lighttpd, nginx) www.gslab.com 9 doc converter
  • 10. • efficient multi-tenanting – load balancing – rules to isolate customer-specific traffic to designated instances  selective features and upgrades for customers  staggered feature rollout and experimentation Architecture – III www.gslab.com 10 analytics engine user session handler user session handler OCR-oldm1 m2 OCR-new stable-customers leading-edge customers reverse proxy
  • 11. • internal API – for front-end – fast, efficient, informative, backdoors – all user interfaces (web, mobile*) should be based on this API • external API – for 3rd party integration – minimal, clean, secure, versioned, API-keys API www.gslab.com 11 product core internal API external API
  • 12. Performance • replicate data for scale-out  requests served in parallel – relational database replication (master – slave) – use NoSQL databases for non-transactional data (master – master replication) – select “nearest” instance (LBR, geo-ip) www.gslab.com 12 us-1 sg-1 eu-1 sg-2 sg-3 us-2 ?
  • 13. Performance - II • cache at every level – version for cache-busting www.gslab.com endpoint cache (browser) network cache (CDN) application cache (memcached) VideoFoo app
  • 14. Analytics • understand how users interact with your product – feature-level analytics (events) – use 3rd party libraries for tracking high-level feature usage (loggr), performance (new relic), user profiling (flurry) www.gslab.com 14
  • 15. Analytics - II • all URLs in any external communication (ex. email and mobile notifications, social posts, shares) should include tracking- tokens to track fulfillment www.gslab.com 15 VideoFoo share
  • 16. Reliability • within-app – monitor startup, shutdown, restart of individual components • outside-app – 24x7 external monitoring, alerts (nagios) – log analysis (splunk, logstash, kibana,) • graceful degradation in case of 3rd party API failures/delays – asynchronous loading after page.onLoad() www.gslab.com 16
  • 17. Security • strong access-control – every session/cookie validated for ‘user@tenant’ • API throttling to prevent DOS attacks (mod_qos, mod_security for apache) • timed authentication tokens (HMAC signatures) to protect URL resources (external API, CDN) www.gslab.com 17
  • 18. Devops • smooth development  test  staging  production deployment process • internal private cloud setup (openstack, cloudstack) • easy configuration management (chef, puppet) • test application performance from multiple geographies (websitetest, blitz) www.gslab.com 18
  • 19. www.gslab.com Thank You Watch the audio-visual recording at http://bit.ly/UMaCEq

Editor's Notes

  1. SaaS
  2. make use of existing tools, libraries and solutions as much as possible build on top of these faster way to gauge feature viability/success as compared to planning and market research!
  3. engineered for scale no time fore re-design when the need is felt performance users everywhere, on all kinds of network connections important for all to experience good performance reliability system and feature stability in face of rapid changes security customers entrust their data in the cloud not going to talk about usability/UX here
  4. build a base platform/framework quickly basic, functional but with missing details shortcuts (ex. no user management, no analytics) functional but maybe not high-performance start with 3rd party components, and replace gradually incrementally add features (detail) to evolve the product
  5. each component can change without impacting rest of the design drastically program to interfaces as long as interface maintained, everything can change underneath procedure call  RPC  HTTP binary  text choice of HTTP important to help migrate components across machines, languages (bindings) and libraries CURL, shell-scripts, etc consistent API with and across apps (whole world is HTTP today) registry each instance can have different set of components mix of IO-intensive and compute-intensive basis for scale-out
  6. multiple instances of “doc converter” available conversion requests queued and delivered when a converter is free/available
  7. OCR old and new cannot co-exist (incompatible packages) cannot change .. third party have to live on different instances OCR-new is less compute-intensive, and hence the instance can accommodate more components
  8. API-key: standard way to identify consumers share as little as possible (basic principle of OOP: information hiding) overhead of changing external API is HIGH (dependencies on API consumers) desirable to keep it separate from internal API
  9. data replication examples analytics dashboard served from multiple instances streaming photos, videos and user-specific content NoSQL databases video attributes (do not change frequently, and not critical to reflect immediately) ex. comments, viewing data mongoDB, couchDB geography-based routing Latency-based routing (AWS) – ANYCAST issue! Geo-IP databases
  10. entire delivery infrastructure between user and the application is candidate for speed-up eliminate compute-delay, reduce network-latency, eliminate network latency application-cache (in-memory hashmap) aggregated information about objects listing of key pages (home, category, etc) listing of first N pages CDN: used for static, or large, or infrequently changing data For any user transaction, need to go to our server node cache-invalidation is expensive .. use versioning for cache-busting instead!
  11. simple ‘event based’ analytics framework to measure feature usage track where users drop out (ex. step 3-of-4 is the one most users do not complete)
  12. simple ‘event based’ analytics framework to measure feature usage track where users drop out (ex. step 3-of-4 is the one most users do not complete)
  13. 3rd party failures facebook like twitter feeds event notifications best effort asynchronous notifications (do not wait for HTTP response)
  14. to avoid URL replay attacks security without requiring centralized authority centralized token mechanisms don’t scale local verification hash(data, time, secret)