webinar how to achieve true scalability in saas applications

39
Achieving True Scalability in SaaS Applications Part 3 08-April-2015 Webinar Series on Recipe For a Successful SaaS Company www.techcello.com

Upload: techcello

Post on 15-Jul-2015

124 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Webinar How to Achieve True Scalability in SaaS Applications

Achieving True Scalability in SaaS Applications

Part 3

08-April-2015

Webinar Series on

Recipe For a Successful SaaS Companywww.techcello.com

Page 2: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 3: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 4: Webinar How to Achieve True Scalability in SaaS Applications

© 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!

Page 5: Webinar How to Achieve True Scalability in SaaS Applications

© Techcello www.techcello.com

Agenda

Scalability

Key Factors Demanding ScalabilityBest Practices to achieve scalabilitySQL vs. No SQLConsiderations for Database ShardingLeveraging cloud for scalability

Page 6: Webinar How to Achieve True Scalability in SaaS Applications

Scalability

Page 7: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 8: Webinar How to Achieve True Scalability in SaaS Applications

© Techcello www.techcello.com

Approaches For Scalability

Scale-up

Scale-out

Page 9: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 10: Webinar How to Achieve True Scalability in SaaS Applications

© Techcello www.techcello.com

Typical Layers in an application/ product

Presentation – Web, Thick client

Business Logic Layer/ Application Layer

Data Storage/ Database Layer

Page 11: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 12: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 13: Webinar How to Achieve True Scalability in SaaS Applications

© Techcello www.techcello.com

Database Scalability

Choices – SQL vs No SQL

No SQL – Non relational – Key value, graph, object store

Page 14: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 15: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 16: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 17: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 18: Webinar How to Achieve True Scalability in SaaS 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

Page 19: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 20: Webinar How to Achieve True Scalability in SaaS Applications

© 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.

Page 21: Webinar How to Achieve True Scalability in SaaS Applications

© Techcello www.techcello.com

Go Hybrid

Portion of application using RDMS and Portion using NOSQL

Page 22: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 23: Webinar How to Achieve True Scalability in SaaS Applications

© Techcello www.techcello.com

Batch Backend Job Process Scaleout

Page 24: Webinar How to Achieve True Scalability in SaaS Applications

© Techcello www.techcello.com

Typical Deployment Diagram

Page 25: Webinar How to Achieve True Scalability in SaaS Applications

© 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

Page 26: Webinar How to Achieve True Scalability in SaaS Applications

Scaling your SaaS withAmazon Web ServicesShailesh AlbuquerqueSolutionsArchitect | [email protected]

Page 27: Webinar How to Achieve True Scalability in SaaS Applications

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

Email

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

Page 28: Webinar How to Achieve True Scalability in SaaS Applications

“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.

Page 29: Webinar How to Achieve True Scalability in SaaS Applications

Powering Global SaaS companies

Page 30: Webinar How to Achieve True Scalability in SaaS Applications

AWS Globaldeployment

Footprint – supports Global

of your SaaS

11 Regions*

28 Availability Zones*

52 Edge Locations

Page 31: Webinar How to Achieve True Scalability in SaaS Applications

+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

Page 32: Webinar How to Achieve True Scalability in SaaS Applications

Common Patterns for Cost-EffectiveScaling

Page 33: Webinar How to Achieve True Scalability in SaaS Applications

Scaling the Web Application

Page 34: Webinar How to Achieve True Scalability in SaaS Applications

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

Page 35: Webinar How to Achieve True Scalability in SaaS Applications

Scalable Analytics

Page 36: Webinar How to Achieve True Scalability in SaaS Applications

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

Page 37: Webinar How to Achieve True Scalability in SaaS Applications

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

Page 38: Webinar How to Achieve True Scalability in SaaS Applications

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/

Page 39: Webinar How to Achieve True Scalability in SaaS Applications

© 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]

[email protected] [email protected]