• Save
Architecting SaaS: Doing It Right the First Time
Upcoming SlideShare
Loading in...5
×
 

Architecting SaaS: Doing It Right the First Time

on

  • 469 views

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

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.

Statistics

Views

Total Views
469
Views on SlideShare
460
Embed Views
9

Actions

Likes
1
Downloads
2
Comments
0

2 Embeds 9

http://www.linkedin.com 8
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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

Architecting SaaS: Doing It Right the First Time Architecting SaaS: Doing It Right the First Time Presentation Transcript

  • Architecting SaaS Doing It Right the First Time By Serhiy Haziyev
  • Agenda Top 10 Industry Patterns Meet Technical Challenges Proven Way to Success
  • Challenges may have ugly and unpleasant face until you know how to cope with them…
  • SaaS Tech Challenges  Uptime (24/7)  Multitenancy  Scalability  Security  User Experience
  • SaaS Architecture Drivers Business Constraints: System Requirements:  Time to market  Hosted Online Solution  Multitenancy Business Requirements:  Scalability (#users?)  Project/Domain dependent  Availability (99.5% .. ? .. 99.99%)  Fault Tolerance  Security (regulations?)  Performance (5 sec)  Extensibility and Upgradability (Multiple releases)  Maint. Window/Disaster recovery (#hours?)  SLA and Usage monitoring
  • Reference Architecture Step 1 System Requirements use Reference Architecture use Patterns derived Business Requirements use Solution Architecture use Technology
  • Agenda Top 10 Industry Patterns Meet Technical Challenges Proven Way to Success
  • Reference Architecture Step 2 System Requirements use Reference Architecture use Patterns derived Business Requirements use Solution Architecture use Technology
  • Definition Pattern (computer science) - a general reusable solution to a commonly occurring problem
  • SaaS Patterns Catalog
  • Hosting Patterns
  • 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
  • Multi-Tenancy Patterns
  • Multi-Tenancy Patterns Level 1: Ad Hoc/Custom Level 2: Configurable Tenant 1 Tenant 2 Tenant 3 Tenant 1 Tenant 2 Tenant 3 Instance 1 Instance 2 Instance 3 Instance Instance Instance Level 3: Configurable, Multi-Tenant-Efficient Level 4: Scalable, Configurable, Multi-Tenant-Efficient Tenant 1 Tenant 1 Tenant 2 Tenant 2 Tenant 3 Tenant 3 Load Balancer Instance Instance Instance Instance Source: Microsoft MSDN, “Architecture Strategies for Catching the Long Tail”
  • Application Patterns
  • Load Balancing External Load Balancer Client-Side Load Balancing Client Client Proxy code HTTP Load Balancer HTTP Node 1 HTTP HTTP Node 2 Node 1 HTTP Node 2
  • Load Balancing External Load Balancer Client-Side Load Balancing Lei Zhu
  • Stateless vs. Stateful Stateless Principle State Replication Client Client Load Balancer Load Balancer Instance 1 Instance 2 Instance 1 Instance 2 State Replication DB
  • Data Storage Patterns
  • Data Storage Patterns Separate DB Tenant 1 Tenant 2 Tenant N Shared DB, Shared Schema TenantID CustName CustType TenantID OrderTitle Price 1 Bla-bla 24.5 1 1 Bla-bla 32.99 2 1 Bla-bla 13.49 2 2 N 2 Bla-bla 55.5 N N Bla-bla 45.45 N Bla-bla 39.99
  • Pattern Selection
  • Reference Architecture Step 3 System Requirements use Reference Architecture use Patterns derived Business Requirements use Solution Architecture use Technology
  • Building Blocks RIA Client PC Browser RIA components RIA utilities Business Logic Workflow (Processes) Event Processing BPM Engine Collaboration Infrastructure Services Web Server HTTP Server Serlvet Container Messaging Application Server Storage 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 Data Access Monitoring Rule Engine WebServices Build & Deploy Business Components REST Common Framework Template engine Operation Management Web Application framework Programmatic Access Identity and Access Web Frameworks Security Application Services Integration RIA framework HTML Rendering Utilities PC Browser Cross-Cutting Single Sign-On Traditional Web Client
  • Agenda Top 10 Industry Patterns Meet Technical Challenges Proven Way to Success
  • Reference Architecture System Requirements use Reference Architecture use derived Business Requirements use Solution Architecture Patterns Step 4 use Technology
  • 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
  • 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
  • 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
  • Reference Architecture Step 1 Step 2 Step 3 derived Business Requirements use Solution Architecture Step 4 use
  • 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
  • SaaS SDK Inside Multi-Tenancy Scalability High Availability Security Configuration Customization Provisioning User & Tenant Management SaaS Application Skeleton
  • SaaS SDK: Sample
  • Questions?
  • SoftServe SaaS Offerings Packages: Tools: CloudExplorer Java SDK CloudEnhancer .NET SDK CloudEnabler Cloud Operations Framework
  • More Information  http://www.softserveinc.com/en-us/services/saas-cloud/csdk/  http://www.softserveinc.com/en-us/services/saas-cloud/  http://www.softserveinc.com/en-us/services/softwarearchitecture/
  • Contacts US Headquarters Europe Headquarters 12800 University Drive, Suite 250 Fort Myers, FL 33907, USA 52 V. Velykoho Str. Lviv 79053, Ukraine Main Tel: 239-690-3111 Main Fax: 239-690-3116 Tel: +380-32-240-9090 Fax: +380-32-240-9080 E-mail: info@softserveinc.com Thank You! www.softserveinc.com Copyright © 2010 SoftServe, Inc.