The presentation will lead you through a step-by-step process of creating SaaS solution. The architecture design method is influenced by ADD (Attribute-Driven Design) and SaaS Reference Architecture that developed by SoftServe Architecture Group.
Ready-to-use Reference Architectures that addresses typical challenges with proven approaches to solve them (i.e., patterns) significantly speeds up the design and implementation process, making it more predictable and economical.
13. Hosting Patterns
On-premise
Datacenter
Managed
Hosting
Public Cloud
Buy my own
hardware, and
manage my own
data center
Co-location
or
Managed servers
“Cloud fabric”
(elastic,
infini-scale)
Private Cloud
High
Low
Ability to scale up or down
depending upon demand
Control
Low
Economy of Scale High
29. Spring
Hibernate/JPA
jBoss AS/Tomcat
Silverlight/ASP.NET
RIA Services/WCF
Entity Framework
Windows AppFabric
jBoss Drools
MS BizTalk/ESB
jBoss BPM
NServiceBus/MSMQ
OpenJMS/jBoss
Messaging
MS SQL Server
Mule ESB/Open ESB
SSIS
MySQL/PostgreSQL
SSAS
InfoBright/JasperSoft
SSRS
MS Azure
JSF/ExtJS
MS .NET
Open Source
SaaS Technology Presets
Azure Platform
SQL Azure
Azure Storage
Azure AppFabric
Service Bus
30. Building Blocks: Java Stack
RIA Client
PC Browser
ExtJS
RIA
components
Business Logic
Workflow (Processes)
Event
Processing
BPM Engine
Infrastructure Services
Web Server
HTTP Server
JBoss AS
Serlvet
Container
Messaging
Application
Server
Storage
MySQL
RDBMS
NoSQL DB
In-memory
DB
Message Queue
ESB
Distributed Computing
File
storage
Distributed Computing
Framework
DW
Report Engine
Content
Management
AdHoc
Reporting
Search Engine
Reporting/BI
Mem Caching
O/RM
BAM
Hibernate
Collaboration
Monitoring
Data Access
Zabbix
Rule Engine
WebServices
RPM
Business
Components
REST
Build & Deploy
POJO
RESTEasy
Spring
Template engine
Operation Management
Web Application
framework
Programmatic Access
Identity and
Access
Web Frameworks
Security
Application Services
Integration
RIA utilities
Common
Framework
RIA
framework
HTML Rendering
Utilities
PC Browser
Cross-Cutting
Single Sign-On
Traditional Web Client
31. Building Blocks: .NET Stack
RIA Client
PC Browser
RIA utilities
Template engine
Business Logic
Workflow (Processes)
Event
Processing
BPM Engine
Infrastructure Services
Web Server
HTTP Server
MS
SQL
RDBMS
IIS
Serlvet
Container
Messaging
Application
Server
Storage
NoSQL DB
In-memory
DB
Message Queue
ESB
Distributed Computing
File
storage
Distributed Computing
Framework
DW
Report Engine
Content
Management
AdHoc
Reporting
Search Engine
Reporting/BI
Mem Caching
O/RM
BAM
EF4
Collaboration
Monitoring
Data Access
Zabbix
Rule Engine
WebServices
MSI
Business
Components
REST
Build & Deploy
POCO
WCF
Operation Management
Web Application
framework
Programmatic Access
Identity and
Access
Web Frameworks
Security
Application Services
Integration
RIA
components
EntLib
Silverlight
Common
Framework
RIA
framework
HTML Rendering
Utilities
PC Browser
Cross-Cutting
Single Sign-On
Traditional Web Client
33. What Next? - Implementation
Criteria/Solution
Custom
PaaS
SaaS SDK
Faster Time to Market
No
Yes
Yes
High Control/Flexibility
Yes
No
Yes
CAPEX
High
Low
Medium
OPEX
Low
High
Low
Risks
High
Low
Low
The current presentation will lead you through a process of creating SaaS solution, step by step with clear explanations.
For clarity we divided the material to 3 items:The first one explains what are the most typical technical challenges in SaaSThe second one introduces top industry patterns that overcome the challengesAnd the last one discovers some secret ingredients of successful SaaS solution
Watch out! Challenges may have ugly and unpleasant face until you know how to deal with them…
Doing migration or writing SaaS from scratch the most typical challenges are:Uptime or availability - the application should be up & running and accessible to users anywhere, anytimeMultitenancy – single application may host thousands of customers, allowing them to customize the look & feel, business logic or data modelScalability - it is important to scale the application on demand when bringing new customers on boardSecurity – according to multiple researches this is concern of almost every SaaS customerUser Experience – last but not least, complex application in browser may become unusable for end users without proper UX design
The provided aspects are drivers that help to shape properly Solution Architecture.We distinguish the three types of Architecture drivers:Business Constraints – such as time to marketBusiness Requirements (or Functional requirements) – which varies from project to project-And System Requirements (or Non-functional requirements) – which are almost the same for different SaaS projectsThe red highlightedwords are the variables that depend on a project.Allowed downtime facts:99.5% - 1.83 days99.9% ("three nines") - 8.76 hours99.99% ("four nines") - 52.56 minutes
Step 1 to successful SaaS application is to have answers on how to address the system requirements before starting an actual project.
And this is the right moment where industry patterns come to the scene
Our Step 2 towards successful SaaS will be to identify target patterns to solve the system requirements
Let’s agree what pattern is.There are multiple levels of patterns, such as:BusinessArchitecturalDesignWe will learn a few SaaS Architectural patterns in this presentation.
The pic is “The Temptation of Saint Anthony”There could be different tenants – different size: big/small, different requirements: simple and complex.And single application should serve them altogether with appropriate quality of service.Metaphor: Tenants are approaching to Saint Anthony but he knows how to deal with them using the “multitenancy cross” :)
The cross of “Saint Anthony” to classify tenants and find appropriate model.
You can see that most patterns in this group address particular system requirement – e.g. Scalability or Availability
Let’s assume that we did exercise with selecting patterns for our system requirements and the result is the following – …click….
The next step is to identify what are the components or building blocks for the target SaaS solution
The map of possible components in sophisticated SaaS solution.Let’s assume that this is RIA without sophisticated background processing and analytics.In this case the candidate blocks would be … click …
And now… What is the secret ingredient to do SaaS right the first time?
Technology…
This is collection best of the breed technologies - called presets.Proven stacks in three major technology domains that we use at SoftServe – Java based, .NET based and MS Cloud based
Here is the mapping to Open Source stack
the mapping to .NETstack
Now, all steps together…Business requirements will add probably some components, but 70-80% of Architecture is done!But is this enough to have successful SaaS application at the end of the day?
Notreally, because all these technologies and patterns you have to apply together and this is usually bumpy road when doing this first time.And we did it several times until created a set of reusable components called SaaS SDK.
The secret weapon is to have already implemented the most used patterns such as multi-tenancy, scalability and so on, actually you can see them as names of components of SaaS SDK.
And the benefit will cover all expectations – this fully scalable working dashboard was implemented by a single developerwithin 2 days.And hosted on cloud environment within 1 hour.It was implemented on SaaS SDK.
Once you know the sense of things, the challenges turn to be the beauty