2. Munish K Gupta
• Current Avatar
• Software Architect/Engineer –High
Performance Architecture (HiPA) group @
Wipro Technologies
• Author – Akka Essentials (Oct 2012)
• Work with lot of open source stuff – Play
Framework, Akka, Scala, mongodb, redis, LA
MP stack
• My Blogs
• http://www.techspot.co.in
• http://www.akkaessentails.in
2
4. Cloud Native Application
• All functionality is published and consumed via web
Services
services
• Every Integration point will eventually fail one time
Handling or another
Failures
• Be prepared to handle all kind of failures
Horizontal
• Design for Scale Out
Scalability
• Break down the task, process requests
Asynchronous asynchronously
Processing • Use queues to decouple functionality
• Eventual consistency model
• Build stateless services that can be scaled out and
Stateless Model
load balanced
Minimize
Human • Go DevOps/NoOps
Intervention
4
7. Functional & Nonfunctional Requirements
• Functional Requirements
• User registrations + Social Sites OAuth (FB, Twitter)
• Allows users to insert/import RSS feeds
• Feed data need to be categorized , auto tagged and searchable
• Feed data can be bookmarked and shared across social channels
• Feed recommendations based on social graph data
• Feeds displayed to the user via series of templates (list, mosaic, magazine style)
• Supports mobile view of data
• Site Analytics
• Nonfunctional Requirements
• Supports 10,000 concurrent users
• Supports initial user base of 500,000 users
• Feed volumes of about 500 feeds/sec
• Availability requirements (99.9% uptime)
• Hosted on cloud and resilient to availability zone failures
• CPU utilization should be minimum of 70% and application should be cost
optimized for cloud resources
7
8. Functional Decomposition
User Registration +
•User registrations + Social Sites OAuth (FB, Twitter)
Session Management
•Allows users to insert/import RSS feeds User Data
Feed Fetch, Search,
•Feed data need to be categorized , auto tagged and searchable
Content Tagging
•Feed data can be bookmarked and shared across social channels User Preferences
•Feed recommendations based on social graph data Recommendation
•Site Analytics Engine
•Feeds displayed to the user via series of templates (list, mosaic,
magazine style) Responsive Web
Design
•Supports mobile view of data
8
9. Functional Model
Responsive Web Design
User Session User
Search
Registration Management Preferences
Content Recommendati
Feed Fetch
Tagging on Engine
9
13. Polyglot Persistence
Redis
Neo4j
MySQL
MySQL
Apache
Mongodb Mongodb MapReduce
Lucene
13
14. Fault Tolerance + Service Load Balancing
Load Balancing
between multiple
Service provider
instances
Handling service
provider instance
failures
14
15. Fault Tolerance + Service Load Balancing
Netflix Eureka Open Source Project
Picture from
https://github.com/Netflix/eureka https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance
15
16. Decoupling
Communication across
Web Services
functional columns using
model can also
messages - SQS
be used here!
Recommendation
Content Data
User Data
Engine
Search
Mongo
MySQL Lucene Neo4j
db
16
17. Async Request processing
LESS -
Responsive Web
Design
Node.js for
stateless and
async request
processing
mode
17
18. Deployment Model
Distributed Scalable
Available Stateless
ASync Event
processing driven
Fault
Tolerant
18
19. Summary
• Design to decouple and partition application functionality
• Right tools to solve the right problem
• Build for horizontal scalability – scale out
• Design to handle all kinds of failures
• Process asynchronously – event driven
• Build stateless compute services
• Minimize human intervention - DevOps/NoOps
• Above all, do not forget continuous build and deployment
Learned we may be with another man's learning: we can only be
wise with wisdom of our own
Michel de Montaigne
19
The below and following notes on the template slides are to guide you only. In your final presentation, you may delete these notes and add relevant notes if any.Title slide:Title– should not exceed beyond 3 lines, font size 30-34, Arial Bold (Font size for the title of the PPT can vary between 30-34, Arial, Bold depending on the amount of text, however should not be smaller than 30 font size)Name should not exceed beyond 1 line, Designation; font size to remain at 16, Arial normalPlease keep the title slide simple, just the logo, title and name and designation to appear. No other graphic elements or any design, photograph, image can be added to this slide, alignment to remain the same