View
223
Download
0
Category
Preview:
Citation preview
8/3/2019 Andrs Vettori-From SaaS to PaaS
1/55
From SaaS to PaaS
Andrs G. Vettori, CTO
andres.vettori@vmbc.com
mailto:andres.vettori@vmbc.commailto:andres.vettori@vmbc.com8/3/2019 Andrs Vettori-From SaaS to PaaS
2/55
Agenda
About us
What is SaaS / PaaS? Differences?
Emerios 1.0: our SaaS solution.Our Pain Points
Emerios 2.0 : our PaaS solution.
Emerios 2.0 DemoLearned lessons
8/3/2019 Andrs Vettori-From SaaS to PaaS
3/55
8/3/2019 Andrs Vettori-From SaaS to PaaS
4/55
About vmbc
1997: Inbound and outbound call routing withPreferenceManager1998: 28 DS3s brought on line to scale to the needs of any client
1999: Automated call compliance withComplianceLock2000: Live reporting capabilities withInReport
2001: Virtual routing intelligence withActive Listening2002: Multiple message testing withRapid Recycle Resonance2004: SMS capabilities to 2.2 billion mobile users withVClient 2005: Web, Voice, and Mobile interoperability with VLink 3602006: Artificial intelligence and speech recognition withVoiceRec2007: Mobile internet and rich media delivered by VContent2008: Multi-channel enrollment and verification withERS
8/3/2019 Andrs Vettori-From SaaS to PaaS
5/55
About vmbc
Pioneer the of Message Broadcasting Industry Authoritative leader in compliance with State & FTC regulations
Best record in the industry for state-by-state and HIPPA compliance
Unmatched Experience and a Worldwide Presence:
Founded in 1997, over 4 Billion+ Contactsand counting
Worldwide Presence: Los Angeles, London, Buenos Aires, Irvine
Market Leading Intelligence Response Technologies
Emerios Response Services database and response platformensures superior customer experience
Storied history of innovation and development
8/3/2019 Andrs Vettori-From SaaS to PaaS
6/55
About me
Love technology in general, self-taught.With a Digital electronics background, I equally enjoy writingcode and building stuff (computers, networks, etc.)
30 years as a software developer Thats true. Im 42 and wrote my first program (a text version of Luna Lander) when I
was 12, using a Casio programmable calculator.
17 years as Project/Team Leader
15 years as Software Architect
10 years as CTO / Chief Architect
Microsoft Certifications: MCSE / MCSD / MCTSome projects leaded: Renault Argentina Extranet Licitaciones,ISP Ciudad Digital, Proyecto Middleware TERNIUM.
8/3/2019 Andrs Vettori-From SaaS to PaaS
7/55
SaaS == Software as a Service
http://en.wikipedia.org/wiki/SaaS
Software as a service, or "on-demand
software," is a software delivery model in
which software and its associated data are
hosted centrally (typically in a public or
private cloud) and are typically accessed by
users using a thin client, normally a webbrowser over the Internet.
http://en.wikipedia.org/wiki/SaaShttp://en.wikipedia.org/wiki/SaaShttp://en.wikipedia.org/wiki/SaaS8/3/2019 Andrs Vettori-From SaaS to PaaS
8/55
8/3/2019 Andrs Vettori-From SaaS to PaaS
9/55
SaaS vs PaaS?
SaaS: focus on providing
application services to solve
ONE vertical industry problem.
PaaS: focus on providing
platform services to build anyapplication for any industry.
8/3/2019 Andrs Vettori-From SaaS to PaaS
10/55
SaaS PaaS?
Building a PaaS solution might bemore complex and harder.
Becoming a PaaS provider is notthe natural evolution step for allSaaS providers.
Is just an strategic businessdecision based on what you wantto be.
8/3/2019 Andrs Vettori-From SaaS to PaaS
11/55
SaaS == PaaS?
Multi-tenancy
Scalability
Fault-tolerance
Configurability & extensibility:
optional for SaaS, mandatory
for PaaS
8/3/2019 Andrs Vettori-From SaaS to PaaS
12/55
Our SaaS Solution
8/3/2019 Andrs Vettori-From SaaS to PaaS
13/55
Emerios 1.0
Real-Time Customer Verification and Response
End-to-end multi-channel Enrollment processes.
Vmbc verifies name, address, social security number, phonenumber, tax information, email address and desired outcomes ofcustomer.
VMBC requests communication preferences from customer in orderto understand the method by which they prefer a response.
After verification, Vmbc responds with appropriate forms,instructions and requirements in order to service the customer
VMBC follows up to ensure the customer has responded with allnecessary documentation necessary to qualify for the service.
If the enrollment business process includes periodic verification,vmbc manages that as well.
8/3/2019 Andrs Vettori-From SaaS to PaaS
14/55
Lifeline Enrollment Timeline
A History of Success!
Q4-Y2008
-Multi
language
New StatesVirginia
Georgia
Massachusetts
#Reqs:281
Q3-Y2009
-LexisNexis
-BackOffice
-Update info
-De-Enroll
-FCC Audit
-Verification
New States
Illinois
#Reqs:1059
Q2-Y2009
-Process
Versioning
& deploy
New StatesAlabama
West Virginia
New Jersey
ConnecticutNew Hampshire
DC
Ohio
Wisconsin
#Reqs:794
Q1-Y2009
-Fraud rules
-BackOffice
-CSR Notes
-Rejection
reasonsNew States
New York
Pennsylvania
Michigan
North Carolina
Delaware
#Reqs:595
Q3-Y2008
Initial
Release
New States
Tennessee
Florida
#Reqs:608
8/3/2019 Andrs Vettori-From SaaS to PaaS
15/55
SafeLink Enrollment
Outstanding achievement
Less than 4 months from final PDD to production release after UAT in
August, 2008.
Definition, development and rollout of 7 states in less than 4 weeks(AL, CT, DC, NH, NJ, OH, WI, WV) on June 2009. An average of 1 State
every 4 days.
Less than 12 weeks to design, develop, test and release the
customizable Fraud Prevention Engine through LexisNexis Validationrules. Released in July, 2009.
8/3/2019 Andrs Vettori-From SaaS to PaaS
16/55
SafeLink Enrollment
Applications Received 8,646,325
Applications Active 4,334,443
Phones Shipped 6,364,266
In Process ~50KPublic site daily visits: ~260K
New Enrollments per day: ~10K
Phone calls processed per day: ~30K
Documents processed per day: ~5,000
8/3/2019 Andrs Vettori-From SaaS to PaaS
17/55
Development Platform & Tools
.NET based
Team Foundation Server / Team Build
Visual Studio 2010 - .NET 4
ASP.NET, MVC, Ajax, WCF, WPF, WFSilverlight 3.0
Enterprise Library 4.x
WS-Federation, Identity Framework
Retina.NET 2.0 OR/M
Others: ABCPdf, Moq, Selenium
8/3/2019 Andrs Vettori-From SaaS to PaaS
18/55
Emerios 1.0 Platform
Private Cloud with two redundant Data Centers
Operating System Windows Server 2008 R2 x64
Microsoft Hyper-V 2.0
IIS, MSMQ, NLB, Active Directory
Database: MS SQL Server 2008 x64
IVR Services: Speech Server 2007 x64
Supporting Services: TMG 2010, SUS, System Center 2007
Storage: 2x SAN Dell Storage: 45 Disks 450Gb 15K (20Tb Raw)
8/3/2019 Andrs Vettori-From SaaS to PaaS
19/55
0
2000
4000
6000
8000
10000
12000
14000
16000
Count
Poly. (Count)
New Enrollments by day
Daily Average: 9,599
Total: 2,401,483
Maximum: 13,910
SafeLink Enrollment
8/3/2019 Andrs Vettori-From SaaS to PaaS
20/55
0
50,000
100,000
150,000
200,000
250,000
300,000
350,000
400,000
450,000
Page Views
Poly. (Page Views)
Public site daily visits
Daily Average: 266,521
Maximum: 386,707
SafeLink Enrollment
8/3/2019 Andrs Vettori-From SaaS to PaaS
21/55
0
10000
20000
30000
40000
50000
60000
Calls
Poly. (Calls)
Phone calls processed by day
Daily Average: 30,579
Total: 6,988,123
Maximum: 42,050
SafeLink Enrollment
8/3/2019 Andrs Vettori-From SaaS to PaaS
22/55
Emerios 1.0 System Block Diagram
Public WebSite
CSR WebSite
Web public CSR User
STS
Enrollment Service
Web FaadeWorkflowServIce
SecurityTokenService(ST
S)
Enrollment System
DDBBPrincipal Mirror
CRMSTS
SSL
SSL
AddressValidation
Public Calls
IVR
Mail - Fax
FormRequest
Corporative Services
STS
3rd Parties
EnrollmentIntegration
Staging
WorkFlowManager
CRMManager
Admin WebSite
Admin User
SSL
STS
8/3/2019 Andrs Vettori-From SaaS to PaaS
23/55
Our Pain Points
Development life cycle for content changes
Implemented a CMS (Sitefinity 4.x)
New Release Deployments
Custom tool on top of MSDeploy
Storage IOPS vs. effective space
Monitor usage patterns to keep optimizing things
Database monitoring & tuning
Partitioning / Sharding
8/3/2019 Andrs Vettori-From SaaS to PaaS
24/55
Our Pain Points
Server Memory consumption
Server role consolidation (POD strategy)
Memory usage optimization
Shared caching strategies (Velocity)
Data replication
Settled down on SQL Mirroring
Production Monitoring & Diagnostics Mix of System Center and custom tools (performance
counters, Http Trace, self-diagnostics, etc)
8/3/2019 Andrs Vettori-From SaaS to PaaS
25/55
Our PaaS Solution
On top of all that, we then focused on the
business part of our requirements:
How hard is to add new functionality or change
something existing in a system?
How easy we could create a new solution for a
completely new industry?
How fast and easy we could deploy a newinstance of a system for a new customer?
8/3/2019 Andrs Vettori-From SaaS to PaaS
26/55
Motivation
Enrollment System (Emerios 1.0)limitations:
Designed for the implementation of clientsLifeline government programs
Customizations require extensive knowledgeof the code and the developmentenvironment -> long lead times for theexecution ofchanges requested by clients
No economy of scale to maintain and supportdevelopment of new features for newcustomers
8/3/2019 Andrs Vettori-From SaaS to PaaS
27/55
Motivation
Emerios 2.0 must entice the market through apowerful, graphic User Interface that providesend-to-end customization of processes andworkflows that are not limited to one
industry.
In order to improve the value of Emerios,create business opportunities and get more
clients on the platform, the solution must bedynamic and easily customizable by non-developer team members.
8/3/2019 Andrs Vettori-From SaaS to PaaS
28/55
Typical Requirements Lifecycle with
Emerios 1.0 :
Motivation
Deployment
to PROD
Deployment
to PRE
For User
Acceptance
Tests
Quality
Assurance
DevelopmentProduct
Backlog
Requirements
prioritization
Product
Development
Requirements
gathering and
definition
Customer
Sign Off
Customer
Sign Off
2 weeks
8/3/2019 Andrs Vettori-From SaaS to PaaS
29/55
Requirements lifecycle with Emerios 2.0:
Business Analysts are able to capture business
requirements and execute their design models
as working applications -> no more ultra-detailed documents to be interpreted by
developers and testers
Motivation
Deployment
to PROD
Change
Implemented
in PRE
For UserAcceptance
Tests
Product
Development
Requirementsgathering and
definition
Customer
Sign Off
Customer
Sign Off
8/3/2019 Andrs Vettori-From SaaS to PaaS
30/55
An example of module-based development onEmerios 2.0:
A new Financial Module is added to the existingQualification, Billing and Data Validationmodules.
Motivation
Emerios
2.0
Core
BillingModule
DataValidation
Module
Qualification
Module
Emerios
2.0
Core
Finance
Module
DataValidation
Module
QualificationModule
Billing
Module
8/3/2019 Andrs Vettori-From SaaS to PaaS
31/55
Research
With the aim at learning from existing
model-oriented platforms, the following
products were analyzed:
Salesforce
Mendix
Outsystems Agile
8/3/2019 Andrs Vettori-From SaaS to PaaS
32/55
Research - Salesforce
What we liked:
Rich business entity definitions
Formula-based fields and field validations supported
Automatic CRUD forms for business entities
Business model published as a web service (API)
Common business entitiy aspects (notes, attachments, etc.)
Modular Extensibility
Approval Templates (Mail, Web forms)
Business Model testing support
Integrated public UI and reporting Module Market (like the AppStore)
8/3/2019 Andrs Vettori-From SaaS to PaaS
33/55
Research - Salesforce
What we did not like:
Propietary extensibility language (Apex)
Form-based configuration tools (as opposed to point-and-click and drag-
and-drop UIs)
Configuration tools oriented to business developers (with some degree
of programming skills)
Web-based tools with poor user experience (i.e. no intellisense, HTML
source code editing, etc.)
Workflows do not enable the definition of operations, just rules
8/3/2019 Andrs Vettori-From SaaS to PaaS
34/55
Research - Mendix
What we liked:
A basic application can be developed in less than 5 minutes
Workflows can invoke other workflows
Document Templates (same as Emerios Enrollment System's generated
PDF forms)
Business Model Versioning
Business model published as a web service (API)
API with multiple entity formats (JSON, XML, Java native), and multiple
hosting protocols (HTTP, Web Services, Java native)
Both Cloud and On-premises hosting supported
Modular Extensibility
Module Market (like the AppStore)
Integration with SAP
8/3/2019 Andrs Vettori-From SaaS to PaaS
35/55
Research - Mendix
What we did not like:
Only Java extensibility supported (our know how is .NET-based)
On-premises hosting using Java technologies only (our know how is
based on Microsoft technologies)
Configuration tools are Desktop-only
Business Entity Modeling using complex UML notation
8/3/2019 Andrs Vettori-From SaaS to PaaS
36/55
Research - Outsystems Agile
What we liked: A basic application can be developed in less than 5 minutes
Configuration tools with outstanding user experience, oriented to non-technical users
Workflows for site navigation
Integrated public UI, reporting and performance KPI.
Business Model Versioning with 1-click deploy and 1-click rollback
Business data and Business Entity definitions can be imported from Excel
Application Templates (with predefined functionality for commonbusiness models)
Supports multiple platforms and languages (.NET / Java)
Automated deploy and rollback
Modular Extensibility
Both Cloud and On-premises hosting supported
8/3/2019 Andrs Vettori-From SaaS to PaaS
37/55
Research - Outsystems Agile
What we did not like:
Configuration tools are Desktop-only
Requires platform services side-by-side with business services (when
hosted on-premises)
8/3/2019 Andrs Vettori-From SaaS to PaaS
38/55
Research - ComparativeSalesforce Mendix Outsystems Agile
Modelling Interface
Web site with form-based UIDesktop App (Visual Studio alike) Desktop App Desktop App (excellent UX)
BUSINESS MODELEntities
Form-based UML class diagram / Entity-relationmodel
Entity list (can be imported form
Excel)Workflows Form-based Workflow Designer Workflow DesignerTriggers/Events Form-basedBusiness Rules
Expression editor (textual DSL) Special Workflow DSL WorkflowsUser Interface Raw custom-HTML editor / Visual
Force Desktop editor Form editor Form editor + Workflow fornavigationVersioning Supported Supported SupportedExtensibility Apex propietary programming
language Java .NET / Java1-Click Deploy Supported Supported Supported1-Click Rollback Supported (what about data
changes?)ARCHITECTURECloud Hosting Supported Supported SupportedOn-premise Hosting Not-supported Supported SupportedFault-Tolerance They claim they don't have single-
points-of-failure
(this means full redundancy on
every layer)Reporting Integrated reports (web UI)
Full audit of data changes Integrated reportsIntegrated reports
Automatic performance KPIs
8/3/2019 Andrs Vettori-From SaaS to PaaS
39/55
Research Conclusions
Building Emerios 2.0 as an application platform, with almostthe same functionality as the ones analyzed, would demand agreat effort, thus a project of several months.
However, Emerios 2.0 cannot wait so much time to enter the
market, which leads to evaluate the following possibilities: Buy approach: use an existing platform, taking full advantage of
every aspect that it has out-of-the box, and focus on building thosemodules whose business Emerios knows well and has experience on.
Incremental Build approach: build a minimal core that can executebusiness models coming from different sources (code, workflow,database, etc.), using coded processes in a first stage (fastest to buildand do not require a user interface), and then, in future stages,include other types of business model configuration tools (that abusiness analyst could use to replace every coded process).
8/3/2019 Andrs Vettori-From SaaS to PaaS
40/55
Research ConclusionsBuy Approach
Pros Cons Best time-to-market.
Proven technology and architecture.
The most cost-effective:
Analysis, Development, Test, IT costs demanded
when building a new product.
Maintenance costs.
Less flexible (it might be impossible to extend beyond
the current scope of the platform and we cannot assess
this until faced with the platform limitations vs.
business requirements).
Worse fit to the business (generic solutions might not
be able to fit the business model as tightly as a custom
solution could).
Startup cost (after buying the product, we might need
to write lots of business modules to fit our current
business model).
Learning curve.
Security requirements might restrict the tool selection.Build Approach
Pros Cons
Best flexibility (there are no platform limits; we could
always extend our kernel to accomplish anything, nomatter how complex).
Best business modeling accuracy (we could model only
which is necessary for the business, without the
overhead of writing generic modules we do not really
know we will need).
More time-to-market to come up with a polished
product (Salesforce has more than two years ofimprovement over a working platform).
Need to build and integrate the modeling tools
(business entities, business processes, etc.).
8/3/2019 Andrs Vettori-From SaaS to PaaS
41/55
Emerios 2.0 Product Vision
The Emerios 2.0 solution is a highly configurable
business modeling platform that can host
multiple business models at the same time,
providing an API to interact with externalsystems.
8/3/2019 Andrs Vettori-From SaaS to PaaS
42/55
Emerios 2.0 Business Models
Emerios 2.0 is centered on Business Models, typicallyconsisting of: Business Entity Definitions: a description of the data
involved in the business (e.g. products, purchase orders,enrollments, customers, etc.).
Business Processes: the operations involved in the business(e.g. purchase product, list products, create enrollment,etc.). These can be executed by direct execution, anevent/trigger firing or scheduling.
Business Events/Triggers: can be seen as part of thebusiness process definition, but important enough to benoteworthy. They provide support for asynchronousinteractions (system or human based) and provide a way toconnect and reuse business processes.
8/3/2019 Andrs Vettori-From SaaS to PaaS
43/55
Emerios 2.0 Business Models
At design time Business Analysts create or maintain
Business Models using the Emerios 2.0 Modeling Tools.
Those Business Models are stored in an internal database
known as the Business Model Database.
8/3/2019 Andrs Vettori-From SaaS to PaaS
44/55
Emerios 2.0 Business Models
At run time, the Emerios 2.0 Runtime Engine loads Business
Models, from the Business Model Database, and exposes
Business APIs that can be used by external sites and services
to interact with the Business Models.
As a result of interaction with the Business Models throughthe API, business data is created, updated or deleted within
the Business Data Database.
For example, a Customer might
browse a product catalog online
and purchase a product.
Afterwards, he might call an IVR
to check the status of his
purchase order.
For example, when a customer purchases some
products, the stock of those products is reduced and
a new purchase order is created. This business data
is stored in the Business Data Database.
8/3/2019 Andrs Vettori-From SaaS to PaaS
45/55
Emerios 2.0 Modeling Tools
Business Analysts are the main users ofEmerios 2.0 ModelingTools.
These tools enable them to model a specific business, whichincludes the definition of: The Client whose business is being modeled
The Application to be hosted on Emerios 2.0 platform
Billable Items that will be part of the client/application billing
Business Entities, to store the data involved in the business
Business Processes, to model the behavior of business operations
Web Portals that will act as points of entrance to the applicationhosted on Emerios 2.0 platform
Security for the application hosted on Emerios 2.0 platform
Reports on business data and operations
Data transfer between Emerios and the clients system
8/3/2019 Andrs Vettori-From SaaS to PaaS
46/55
Emerios 2.0 Modules
Emerios 2.0 supports extensibility and configurability through amodular architecture.
A Module is a logical grouping of components that provide aspecific functionality by integrating with external servicesand/or extending other Emerios 2.0 modules.
Emerios 2.0 Modules: Can be enabled and disabled on a per-tenant basis without the need
to deploy or restart services.
Extend both the design-time and the run-time aspects of Emerios2.0.
Could be developed in-house or by third-party development teams.
The Emerios 2.0 Core is the set of essential built-in Modulesthat are always available for any Business Model of any tenant. Our Emerios 2.0 Standard Module Library built on top of our Core
will provide additional functionality like: Security (authentication,authorization, data encryption), Auditing, Logging, etc.
8/3/2019 Andrs Vettori-From SaaS to PaaS
47/55
Emerios 2.0 Architecture
Emerios Core Modules
Workflow Metadata Data Access Audit
Multi-Tenant Database Storage
OLTP DWH Staging
Emerios Core Services
DynamicDataExchange
DynamicReportingEngine
Security
C
MS
Emerios Standard Modules
CRM Enrollment Admin
Business Modules
DES DEEP
8/3/2019 Andrs Vettori-From SaaS to PaaS
48/55
Emerios 2.0 Core
Metadata Module
Describe Business Entities
(e.g.: products have
price, sku, etc.)
Data Module
Create, Read, Update and
Delete Business Entities
(e.g.: products)
Process Module
Create, Read, Update and
Delete Business Processes
(e.g.: purchase products)
REST API Module
Expose business processes through
HTTP REST (e.g.: to be consumed
by light iPhone applications)
SOAP API Module
Expose business processes as SOAP
Web Services (e.g.: to be
consumed by ETCs workflows)
Other Modules Examples
Address Validation
Enrollment
Lifeline
Customer Identity Validation (LexisNexis)
http://en.wikipedia.org/wiki/Representational_State_Transferhttp://en.wikipedia.org/wiki/SOAPhttp://en.wikipedia.org/wiki/SOAPhttp://en.wikipedia.org/wiki/Representational_State_Transferhttp://en.wikipedia.org/wiki/Representational_State_Transfer8/3/2019 Andrs Vettori-From SaaS to PaaS
49/55
Case Study: E-CommerceEmerios 2.0 Modeling Tools
Business Entities Business Processes
(*) Provided bya Customers Module
8/3/2019 Andrs Vettori-From SaaS to PaaS
50/55
Case Study: E-Commerce
8/3/2019 Andrs Vettori-From SaaS to PaaS
51/55
Emerios 2.0 In a Nutshell
Emerios 2.0 is centered on Business Models.
A Business Model is a software representation of a real-world business.
The Emerios 2.0 Modeling Tools are a set of tools used by Business Analysts to create and
maintain Business Models at design-time.
Business Models define entities, processes, events and additional configuration (security
permissions & roles, for example) , which are stored in the Business Model Database.
The Emerios 2.0 Runtime Engine loads Business Models from the Business Model Databaseand exposes Business APIs for those models.
Customer-facing apps such as Web Sites, IVRs, etc. access the Business Model through its
Business API.
Business data (e.g. products, orders, etc.) is stored in the Business Data Database.
A Module is a logical grouping of components that provide a specific functionality by
integrating with external services and/or extending other Emerios 2.0 modules.Modules can be enabled and disabled on a per-tenant basis, without the need to deploy or
restart services, and extend both the design-time and the run-time aspects of Emerios 2.0.
The Emerios 2.0 Core is the set of essential built-in Modules that are always available for
any Business Model of any tenant.
8/3/2019 Andrs Vettori-From SaaS to PaaS
52/55
Emerios 2.0 Demo
Administration site
Process Workflow designer
8/3/2019 Andrs Vettori-From SaaS to PaaS
53/55
Learned Lessons
Before building anything, define your business objectivesBecoming a PaaS solution provider is not the natural (and
mandatory) evolution step after SaaS
It might be, if you are worried by the economies of scale
of your potential business and projectsThere are a lot of architectural and technical challenges in
any SaaS and PaaS solution. PaaS adds on top of SaaS the
ability to define and build completely new applications
We focused on business processes as the way toexpress and build applications by non-technical users
Put usability and accountability as top priorities
8/3/2019 Andrs Vettori-From SaaS to PaaS
54/55
Learned Lessons
Keep It Simple (KISS principle)Do performance Testing Early in the process
Unit test / micro testing
Stress test
Load test Long duration tests
Resource consumption
Think about production monitoring and debugging
Think about reporting and data integration
8/3/2019 Andrs Vettori-From SaaS to PaaS
55/55
Andrs G. Vettori, CTO
andres.vettori@vmbc.com
mailto:andres.vettori@vmbc.commailto:andres.vettori@vmbc.comRecommended