webinar how to achieve true scalability in saas applications
TRANSCRIPT
Achieving True Scalability in SaaS Applications
Part 3
08-April-2015
Webinar Series on
Recipe For a Successful SaaS Companywww.techcello.com
© Techcello www.techcello.com
Speaker Profiles
Building SaaS. Made Easy
Consults organizations with the service offerings of the AWS
platform
Helps them with architecture best practices to build highly
scalable and resilient applications on the AWS Cloud.
He is actively involved in evangelizing Cloud Computing at
various industry conferences and forums.
Shailesh Albuquerque
Solutions Architect
AWS
An ardent cloud enthusiast and a prolific speaker at NASSCOM &
Cloud Connect Events
15+ years of software development experience, he is instrumental
in defining CelloSaaS framework
Enables Enterprises and ISVs to define their cloud strategyJothi Rengarajan
Chief Architect
Techcello2 / 33
© Techcello www.techcello.com
About Techcello
Building SaaS. Made Easy
Cloud Ready, SaaS/Multi-Tenant SaaS Application Development Framework
Provides end-end SaaS Lifecycle Management Solution
Redefines the way SaaS products are built and managed
Saves anywhere between 30%-50% of time and cost
3 / 33
© Techcello www.techcello.com
Housekeeping Instructions
All phones are set to mute. If you have any questions, please type them in the Chat window
located beside the presentation panel.
We have already received several questions from the registrants, which will be answered by the
speakers during the Q & A session.
We will continue to collect more questions during the session as we receive and will try to answer
them during today’s session.
In case if you do not receive answers to your question today, you will certainly receive answers via
email shortly.
Thanks for your participation and enjoy the session!
© Techcello www.techcello.com
Agenda
Scalability
Key Factors Demanding ScalabilityBest Practices to achieve scalabilitySQL vs. No SQLConsiderations for Database ShardingLeveraging cloud for scalability
Scalability
© Techcello www.techcello.com
What is Scalability?
Ability of a system, network, or process, to handle a growing amount of work in a capable manner.
For example, capability of a system to increase total throughput under an increased load when resources (typically hardware) are added.
Key factors that demand scalability,
• Increased user concurrency
• Increased volume of transaction
• Increased work processing
• Increased volume of storage
• Increased data to and fro from the system
© Techcello www.techcello.com
Approaches For Scalability
Scale-up
Scale-out
© Techcello www.techcello.com
Elasticity
Scale-up and down gracefully
Scenarios
– Applications with periodic bursts
• Applications with periodic spikes. Example, Travel sites where spikes
are huge when promotional activities run, Assessment applications
where spikes are high when major exams are conducted.
– Nightly Jobs
• Scale out till the job runs
© Techcello www.techcello.com
Typical Layers in an application/ product
Presentation – Web, Thick client
Business Logic Layer/ Application Layer
Data Storage/ Database Layer
© Techcello www.techcello.com
Web and Business layer scalability
Scale up by increasing hardware capacity
Scale out by adding more webserver and applications servers in a
farm behind firewall
© Techcello www.techcello.com
Practices for web/ application layer scalability
Centralized out of process session Usage
Centralized out of process cache usage
Centralized file storage
Asynchronous request processing
Queue based request processing
In-proc parallelism
Stateless design – per call services
Auto Scaling
© Techcello www.techcello.com
Database Scalability
Choices – SQL vs No SQL
No SQL – Non relational – Key value, graph, object store
© Techcello www.techcello.com
Advanatges/Disadvantages of NoSQL
Advantage
– Can scale out horizontally pretty easily
– Many support inherent caching and is fast
– Support huge volume of data
Disadvanatages
– Lacs atomic transaction scaling multiple tables
– Complex queries are not possible and needs to be handled at
application front
– Many cannot support normalization and relationships and hence
the application needs to take care of data sanity
© Techcello www.techcello.com
Scenarios for Usage of No SQL DB
No SQL – Membase, Cassandra, MongoDB, Redis
– Flexible schema
– Similar kind of data and lesser tables
– Fits well for volatile data
– Very high volume of similar data expected
Specific Use Cases
– Log Analytics
– Package Tracking
– Games
– Forums, Threaded discussions
– Document/Content Management Systems
– Social networking Content
© Techcello www.techcello.com
Advanatges/Disadvantages of RDBMS
Advantage
– Support for atomic transactions
– Complex queried and Indexes
– Intact relationship and constraints
Disadvanatages
– Difficult to scale out
– Performance impact when used with very high volume
© Techcello www.techcello.com
Scenarios for Usage of RDBMS
SQL – Example, Oracle, SQL Server, MySQL
– Multiple Relational Table With Different Kinds of Data
– Reads required through multiple search condition
– Heavy reporting required
– Volume not expected to grow very high in the range of 500GB
per server
– Needs transactional support
Specific Use Cases
– LOB Applications
© Techcello www.techcello.com
SQL Scaleout Choices
Load balancer eg: Oracle RAC
– Workload balanced between multiple database instances
– Supported by only few RDBMS providers
– No effort required from development
– Not easy to implement
– Expensive
© Techcello www.techcello.com
SQL Scaleout Choices
Sharding
• Database design principle whereby rows of a database table are held
separately, rather than being split into columns (which is
what normalization and vertical partitioning). Each partition forms
part of a shard, which may in turn be located on a separate database
server or physical location.
• Achievable in many RDBMS databases including cloud based
databases such as Azure and RDS
• Needs development effort
• Difficult to maintain
• Cost effective
© Techcello www.techcello.com
Considerations for Database Sharding
Sharding
– Sharding Key need to be determined carefully
– Consider Sharding for scaling transactional data and use readonly databases for reports
– Query cannot reference 2 shards
– Use techniques like partitioned distributed views for fetching from multiple shards or Combine the data from the shards in the application layer
– Shards only when necessary as it has performance overhead
– Rebalancing shards needs to be thought through prior and needs to follow few design principles such as type of primary key.
© Techcello www.techcello.com
Go Hybrid
Portion of application using RDMS and Portion using NOSQL
© Techcello www.techcello.com
Batch Backend Job Process Scaleout
Have a mechanism to submit the jobs to be processed
asynchronously
Scaleout by adding more processing nodes
Have a queue for job process log
Processing nodes pick and start processing the jobs automatically
based on status
Have job priorities for processing jobs
Use parallelism with the same process for taking maximum benefit
of the resources
© Techcello www.techcello.com
Batch Backend Job Process Scaleout
© Techcello www.techcello.com
Typical Deployment Diagram
© Techcello www.techcello.com
Leveraging cloud for Scalability
Auto Scale out and Scale down for compute
Auto Scale out and Scale down for storage
Utilize Data services
Utilize caching services
Sample Case On Cloud
– High compute need for operation
A categorization engine which needs to run huge algorithms to categorize the line items.
Solution: The line items are batched and for processing each batch the servers are automatically provisioned in cloud. The provisioned server completes the job and provides the feedback of job completion and once the batch is completed the server is automatically deprovisioned
– High volume requirement on specific period of a year
– A marketing system needing to send campaign every month beginning
Solution: Tools are used to monitor the performance data of the cloud instances and notify when thresholds are crossed. Jobs written to automatically spin new instances when the threshold limits are crossed
Scaling your SaaS withAmazon Web ServicesShailesh AlbuquerqueSolutionsArchitect | [email protected]
AWS Service Breadth & Depth
EnterpriseApplications
Platform Services
management
Administration &Security
Core Services(Relational, NoSQL, Caching) (VPC, DX, DNS)
and Load Balancing) and Archival)
Infrastructure Regions Availability Zones Points of Presence
Compute Storage(VMs, Auto-scaling (Object, Block CDN Databases Networking
Identity Access Control Usage Monitoring andManagement Auditing Key Storage Logs
Analytics
Hadoop
Real-timeStreaming Data
DataWarehouse
Data Pipelines
App Services Queuing & Notifications
Workflow
App streaming
Transcoding
Search
Deployment & Management
One-click web app deployment
Dev/ops resource
Resource Templates
Mobile Services
Identity
Sync
Mobile Analytics
Push Notifications
Virtual Desktops Collaboration and
Sharing
“AWS is the overwhelming market share
leader, with more than five times
the compute capacity in use than
the aggregateproviders.”
total of the other fourteen
Gartner “Magic Quadrant for Cloud Infrastructure as a Service,” Lydia Leong, Douglas Toombs, Bob Gill, Gregor Petri, Tiny Haynes, August 19, 2013. This Magic Quadrant graphic was published by Gartner, Inc. as part
of a larger research note and should be evaluated in the context of the entire report.. The Gartner report is available upon request from Steven Armstrong ([email protected]). Gartner does not endorse any vendor,
product or service depicted in its research publications, and does not advise technology users to select only those vendors with the highest ratings. Gartner research publications consist of the opinions of Gartner's
research organization and should not be construed as statements of fact. Gartner disclaims all warranties, expressed or implied, with respect to this research, including any warranties of merchantability or fitness for a
particular purpose.
Powering Global SaaS companies
AWS Globaldeployment
Footprint – supports Global
of your SaaS
11 Regions*
28 Availability Zones*
52 Edge Locations
+516AWS Rapid Pace of Innovation
Since inception AWS has:
••
•
Released 1173 new services and featuresIntroduced more than 40 major new services
Announced 48 price reductions
+280Amazon ElasticTranscoder
Amazon EC2Container Service
AWS Lambda
+159 AWS OpsWorks
AWS StorageGateway
AmazonCloudHSM AWS Config
AWS CodeDeployAmazonDynamo DB+82 Amazon
AppStreamAWS Key ManagementServiceAmazon
CloudSearchAmazon SES
AWS ElasticBeanstalk
AWS
CloudFormation
AmazonElastiCache
AWS DirectConnect
GovCloud
+61 Amazon RDS for AuroraAmazonCloudTrail
+48 Amazon SWFAmazon Cognito
Amazon SNS
Amazon Glacier Amazon MobileAnalytics+24 Elastic Load
Balancing
Auto Scaling
Amazon VPC
Amazon RDS
AmazonWorkSpaces
AWS Identity& AccessManagement
Amazon Redshift
+2 +1 Amazon ZocaloAmazon EBS
AmazonCloudFront
AWS DataPipelineAmazon S3
Amazon SQS
2006
AWS DirectoryService
Amazon KinesisAmazon Route 53
Amazon FPS
2007 201320122008 2009 2010 20112014
*as of Jan 28, 2014
Common Patterns for Cost-EffectiveScaling
Scaling the Web Application
Scalable Services for the Data Tier
rich search
complex queries
and transactions
hot reads
logginganalytics
key/value
simple query
CloudSearch ElastiCache S3
DynamoDB RDS Redshift
Data Tier
Amazon Amazon Amazon
Amazon Amazon Amazon
Scalable Analytics
Real Time Streaming Data Analytics
Aggregate
andarchive to S3
Real-timedashboards andalarms
FrontEnd
Ordered streamof eventssupports multiple readers
AZ AZ AZAuthenticatio
nAuthorization
Millions ofsources
producing100s of
terabytes perhour
Durable, highly consistent storage replicates
datacross three data centers (availability
zones)
Machine
learningalgorithms or
slidingwindow
analytics
Amazon Web
Services
Inexpensive: $0.028 per million
puts
Aggregate
analysisin Hadoop or a
datawarehouseRun code in response to an event and
automatically manage compute.
a
SaaS on AWS lets you focus on your customers
1. AWS flexibility Quickly respond tochanges in application needs in a cost
effective way
2. AWS innovation Keep up with latestindustry trends without building it all
yourself
3. AWS ecosystem Stand on theshoulders of giants on the AWS platform
Further Reading
AWS Website : http://aws.amazon.com
AWS Architecture: http://aws.amazon.com/architecture/
AWS SaaS Partner Program : http://aws.amazon.com/partners/saas/
© Techcello www.techcello.com
Contact Us
Building SaaS. Made Easy
Web : http://www.techcello.com
General Enquiry : [email protected]
Support Enquiry : [email protected]
Sales Queries: [email protected]