Lego Bricks of Cloud Apps
Ahmed Soliman!
R&D Director, Founder
@AhmedSoliman
What do you mean by Cloud
Applications?
Why should you care?
Scalability is not a feature
Design for failure and it will not
happen
Designing for failure is hard*
*Why not externalising as much components as possible then?
Typical Application Components
• Mailing Service for sending individual or mass e-mail
• Notification service for sending push notifications (mobile backends)
• Message Queuing Service for dispatching tasks to asynchronous
workers
• Search and data indexing
• Data Store (Database), for storing relational or non-relational data
• File Store, for storing images and other static assets
Infrastructure Services Data Services
Your Application
Application
Services
Externalise Components as
Services
Application Services
Outbound E-Mailing Service
• Marketing
• Transactional
• Notifications
• Social Networking



SES (Simple Email Service)
Queuing Service / Message Bus
• Essential for component decoupling
• Dispatch tasks to asynchronous
workers
• Breakdown big tasks into smaller
tasks to be consumed in parallel by
other services



SQS (Simple Queue Service)
Message Bus Service
Service 1 Service 2 S 3 S 4
Database Service
• Scalable, Fast, Reliable!
• RDS (Relational Database)!
• MySQL, Oracle, MS SQL Server, and
PostgreSQL!
• DynamoDB (NoSQL Database
Service)
Search and Indexing Service
• Multiple Languages Support
• Multiple Data-types Support
• Scalable, Highly Available
• Geospatial Search



Amazon CloudSearch Service
Mobile Push Notification Service
• Integrates with the message bus
(queuing service)
• Support for Google, Apple, and
Amazon devices
• Proper formatting for every device
• SNS (Simple Notification Service)
Infrastructure Services
Caching Service
• In-memory data grid
• Memcached and Redis storage
engine support
• Elastic, easy to add or remove
storage



Amazon ElastiCache
Load Balancer
ELB - API-based HTTP Load Balancer
Content Distribution
Network
Serve Static Content Incredibly Fast
— Amazon CloudFront
Storage Service
Amazon S3 / EBS
Data Services
Elastic Map Reduce
Hadoop as a service
Real-time Data Processing
Amazon Kinesis
Data Warehouse Service
Amazon Redshift
Conclusion
–Unknown Wisdom
“Building scalable applications by externalising core services to
Amazon AWS and focus on your business logic without re-
inventing the wheel”
Thank You!
info@cloud9ers.com

Lego bricks of cloud applications