Download - Lets saasify that desktop application
![Page 1: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/1.jpg)
1
Lets SAAS-ify that Desktop Application
Chirag Jog
Clogeny
![Page 2: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/2.jpg)
2
About me
o Chirag Jog
o Computer Science Passout, PICT
o Currently CTO at Clogeny Technologies.
oWorking on some cutting-edge Products in Cloud
Computing.
![Page 3: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/3.jpg)
3
Agenda
o Traditional Web Setup
o Difference between IaaS, PaaS and SaaS
o Different ways to SaaS’ify
o Advantages of PaaS
o Real life Scenario
o Advantages of IaaS
o Using IaaS to SaaS’ify
o Using Amazon Web Services as an example for deployment
o Improving Business Logic
o Conclusion
![Page 4: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/4.jpg)
4
Traditional Web 1.0 setup
Source : http://onsaas.net/wp-content/uploads/2008/06/iaas-paas-saas.png
![Page 5: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/5.jpg)
5
Infrastructure as a Service (IaaS)
![Page 6: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/6.jpg)
6
Platform as a Service (PaaS)
![Page 7: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/7.jpg)
7
Software as a Service (SaaS)
![Page 8: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/8.jpg)
8
Different ways to ‘SaaS’ify
SaaS
Platform As A Service
Shared Infrastructure
Infrastructure As A Service
SaaS SaaS
Amazon’s EC2, Rackspace, Gogrid
Azure, AppEngine, Force.com
Hosting companies and solutions.
![Page 9: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/9.jpg)
9
Different ways to ‘SaaS’ify
SaaS
Platform As A Service
Shared Infrastructure
Infrastructure As A Service
SaaS SaaS
Amazon’s AWS, Rackspace
AppEngine, Force.com
Hosting companies and solutions.
![Page 10: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/10.jpg)
10
Advantages of PaaS
o Developers can focus on development and innovation
without worrying about the infrastructure.
o The PaaS provider manages upgrades, patches, and
other routine system maintenance.
o PaaS upgrades will not break the applications running
on it.
o Inherent Automatic scalability based on workloads.
o Obvious Advantages of Cloud i.e scalability, reliability
etc
![Page 11: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/11.jpg)
11
Real Life!!
o Application already developed in pre-Cloud days.
o Developed for Desktop Environments .
o Depend on specific languages/libraries that PaaS
solutions do not provide.
o Optimized stack/component missing.
o Using PaaS would require re-writing major chunks of
code.
![Page 12: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/12.jpg)
12
Real Life!!
o Problems with re-write:
o Existing Code has been stabilized and optimized
over months and years.
o Specific library support might been missing.
o Investigate replacements
o Extensive testing needs to be done.
o Time to Market takes a drastic hit.
![Page 13: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/13.jpg)
13
Real Example of Application
o Code written entirely in C/C++ Language.
o Using math libraries for doing complex calculations.
o Results generated in terms of Graphs and Charts.
o Business need:
oDesire to have wider customer reach.
oWant to hook up this application to a portal.
oWant their application to be deployed ASAP with minimal
changes.
oMinimal time to market.
![Page 14: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/14.jpg)
14
Different ways to ‘SaaS’ify
SaaS
Platform As A Service
Shared Infrastructure
Infrastructure As A Service
SaaS SaaS
Amazon’s AWS, Rackspace
AppEngine, Force.com
Hosting companies and solutions.
![Page 15: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/15.jpg)
15
Advantages of IaaS
o Well-tested environment available.
o Directly deploy the existing application onto the
Cloud Server with no modifications.
o All required dependencies can be resolved easily by
installing required libraries.
o Minimal modifications to convert the existing solution
to Client-Server model.
o Easily provide a front-end from web portal or such.
![Page 16: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/16.jpg)
16
Using IaaS to SaaS’ify the App
o Scenario : Stand-alone Desktop Application
o Steps involved are:
![Page 17: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/17.jpg)
17
Using IaaS to SaaS’ify the App
o Scenario : Stand-alone Desktop Application
o Steps involved are:
o Convert stand-alone application to client - server
model.
![Page 18: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/18.jpg)
18
Using IaaS to SaaS’ify the App
o Scenario : Stand-alone Desktop Application
o Steps involved are:
o Convert stand-alone application to client - server
model.
o Introduce Cloud Element.
![Page 19: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/19.jpg)
19
Using IaaS to SaaS’ify the App
o Scenario : Stand-alone Desktop Application
o Steps involved are:
o Convert stand-alone application to client - server
model.
o Introduce Cloud Element.
o Add business logic via Cloud
![Page 20: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/20.jpg)
20
Using IaaS to SaaS’ify the App
o Scenario : Stand-alone Desktop Application
o Steps involved are:
o Convert stand-alone application to client – server
model.
o Introduce Cloud Element.
o Add business logic via Cloud
o Link Portal /outside world interface to this system.
![Page 21: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/21.jpg)
21
Using IaaS to SaaS’ify the App
o Scenario : Stand-alone Desktop Application
o Steps involved are:
o Convert stand-alone application to client – server
model.
o Introduce Cloud Element.
o Add business logic via Cloud
o Link Portal /outside world interface to this system.
o Test!! Test!! Test!!
![Page 22: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/22.jpg)
22
Client-Server Architecture
LAMP Stack
![Page 23: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/23.jpg)
23
Cloud Component
Amazon EC2Cloud
Amazon Web Services:
1. Elastic Computing (EC2)2. Simple Queue Service (SQS)3. Simple Storage Service. (S3)4. Automatic Scaling. (AS)
Web Server
![Page 24: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/24.jpg)
24
Using Amazon Web Services
o Elastic Compute (EC2)
o Simple Queue Service (SQS)
o Simple Storage Service (S3)
o Automatic Scaling (AS)
![Page 25: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/25.jpg)
25
Amazon Simple Queue Service(SQS)
o Distributed Queue System enabling web services
applications to communicate.
o Queue acts as an unlimited buffer – No Producer-
Consumer Problem.
o Multiple writers and readers
o Variable message size
o Unlimited queues and messages
o Access control
o Redundant infrastructure
![Page 26: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/26.jpg)
26
Amazon Simple Queue Service(SQS)
APIo CreateQueue – Creates a queue with specific
QueueName.
o SendMessage – send message (PUSH)
o ReceiveMessage – receive message from queue (POP)
o DeleteQueue – Delete a queue (All messages in the
queue lost)
![Page 27: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/27.jpg)
27
Amazon Simple Storage Service(S3)
o Useful for file serving (multimedia, documents)
reducing load on compute servers.
o Storage for the internet.
o Makes web-scale computing easier.
o Data is stored in buckets.
o Data is stored or retrieved using a key, value pair.
o Simple REST/SOAP Apis to retrieve and store data.
o Access Control.
![Page 28: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/28.jpg)
28
Amazon Simple Storage Service(S3)
basic APIso PUT Bucket – Creates a new bucket
o Creates sampleBucket.s3.amazonaws.com
o GET Bucket – Lists information about bucket.
o PUT object – put object into the bucket
o GET object – retrieve object
o DELETE object – Deletes the object
o DELETE bucket – delete associated attributes or the
buckets themselves
![Page 29: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/29.jpg)
29
Simple Cloud Design
Queue request to Server using SQS
EC2 Server instance runs the software/application
Store result Blob in S3
Queue response back to client using SQS
Web Server
![Page 30: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/30.jpg)
30
Amazon Automatic Scaling(AS)
o Automatically add compute capacity when application
usage rises and remove it when usage drops.
o Predefined triggers and thresholds.
o Triggers are based on parameters like bandwidth
usage or CPU Utilization.
o Triggers are based on data collected from Amazon’s
CloudWatch Monitoring Tool.
o Works across multiple Availability zones.
![Page 31: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/31.jpg)
31
Amazon Automatic Scaling(AS) API
o as-create-launch-config– Create a group of EC2
instances of which the application will run.
o as-create-auto-scaling-group - This call sets the
parameters that governs when and how to scale up
and down an Auto Scaling group.
o as-create-or-update-trigger – Create the triggers to
indicate when to scale up or down.
![Page 32: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/32.jpg)
32
Using Automatic Scaling (AS)
Use Amazon’s Automatic Scaling (AS)
![Page 33: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/33.jpg)
33
Improving Business Logic
o Auto – scalability to load balance .
o Multiple classes of users.
o Top Class user does not have to wait.
o Lower class users’ request is queued.
o Extension : Multiple queues to service multiple classes
o Premium user – No queuing, direct service
o Medium user – Queued, timely
o Standard user – Queued, untimely
![Page 34: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/34.jpg)
34
Improving Business Logic
Use Amazon’s
Support Multiple Classes of Users.
Standard Users
Mid-range Users
High-End Users
![Page 35: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/35.jpg)
35
Costs!o Cheapest EC2 Linux Instance - $0.085/hour
o Amazon’s Auto scaling is free. Charges only for using
Amazon’s CloudWatch.
o Amazon‘s SQS –
o No charges for the first 100,000 Amazon SQS Requests.
o $0.01 per 10,000 Amazon SQS Requests
o Amazon’s S3 –
o Storage Used: $0.15 per GB-Month of storage.
o Network Data Transferred: $0.20 per GB of data transferred.
![Page 36: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/36.jpg)
36
Reducing Vendor Tie-in
o Reduce dependency on vendor specific
services.
o Replace SQS with OpenMQ, Apache ActiveMQ
o Replace CloudWatch with Hyperic
o Implement your own Auto Scaling Logic.
![Page 37: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/37.jpg)
37
Conclusion
Effectively deploy your application without major
modifications.
Run the application is original environment itself.
Add some more useful business logic to service different
class of users.
Obvious Advantages of Cloud Computing applicable
Pay only for what you use.
Scale up/down based on load
Design to make system more robust
![Page 38: Lets saasify that desktop application](https://reader030.vdocuments.mx/reader030/viewer/2022020306/5562f7f6d8b42a275f8b479e/html5/thumbnails/38.jpg)
38
Questions and Comments