1
SOFTWARE DEVELOPMENT
MODELS
Ths. Trương Thị Ngọc Phượng
2
LEARNING OBJECTIVES
Understand how SaaS applications are different from traditional software/application.
Understand how SaaS benefits the service providers and the end users.
Understand the pros and cons of different SaaS delivery models
Understand the challenges that are introduced by SaaS applications.
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Aliquam nec congue convallis.
Understand how to develop a cloud – aware SaaS applications using PaaS technology.
Understand how cloud computing leverages the virtualization for its different service models.
page 3
LEARING CONTENTS
All the concepts you will learn today!
Different Perspectives
Introduction on SaaS Development
Cloud – aware
New Challenges Software Development
using PaaS Technology
page 4
LEARING CONTENTS
All the concepts you will learn today!
Different Perspectives
Introduction on SaaS Development
Cloud – aware
New Challenges Software Development
using PaaS Technology
page 5
SaaS is different from traditional software.
SaaS provides web access to commercial software on pay
– as – you – use basis.
SaaS applications are developed, deployed and managed
from a central location by the service provider.
It allows the same instance of the SaaS application to be
shared by multiple customers or tenants
Updates are performed by the service providers, not by
the user.
SaaS applications allow service integration with other
third – party services through application programming
interface (APIs) provided by them.
SaaS Benefits
• Pay per use
• Zero infrastructure
• Ease of access
• Automated updates
• Composite services
• Dynamic scaling
• Green IT solutions
Suitability of SaaS
• End user is looking for on – demand software
rather than full – term/licensing – based software.
• For start – up company that cannot invest more
money on buying licensed software.
• For applications that need the accessibility from
handheld devices or thin clients
• For applications with unpredictable and dynamic
load.
Unsuitability of SaaS
• Some real – time applications where fast
processing of data is needed.
• Applications where the organization’s data are
more confidential and the organization does not
want to host their data externally.
• Applications where existing on – premise
applications fulfill the organization’s needs.
LEARING CONTENTS
All the concepts you will learn today!
Different Perspectives
Introduction on SaaS Development
Cloud – aware
New Challenges Software Development
using PaaS Technology
page 10
Different Perspectives on SaaS Development
• SaaS from Managed Infrastructure and Platform.
• SaaS from IaaS and Managed Platform.
• SaaS from Managed Infrastructure and PaaS.
• SaaS from IaaS and PaaS.
SaaS from Managed Infrastructure and Platform.
• This model uses the traditional infrastructure
and the platform for developing and deploying
the SaaS application.
SaaS from Managed Infrastructure and
Platform.
• Pros
• ensures more security to the user data
• gets full control over the infrastructure and development platform.
• no problem of vendor lock-in.
• The application can be easily migrated to any other infrastructure
without any major modification.
• Cons
• More overhead in maintaining the underlying infrastructure and
platform.
• The service providers have to invest more on the infrastructure.
• Resource utilization will be very low.
SaaS from IaaS and Managed Platform.
• The SaaS providers can use the infrastructure provided
by any IaaS provider.
• The infrastructure provider may be a public or private
IaaS provider.
SaaS from IaaS and Managed Platform.
• Pros
• Ensures high resource utilization at the infrastructure level.
• Reduces the capital investment on the infrastructure.
• Capital investment can be reduced.
• Cons
• Still there is additional overhead in maintaining the development
platform.
• Has to enable highly scalable and available features manually.
• There is a possibility of vendor lock-in at the infrastructure layer.
SaaS from Managed Infrastructure and
PaaS.
• SaaS can be developed and delivered from self-
managed infrastructure and shared PaaS.
SaaS from Managed Infrastructure and
PaaS
• Pros
• The scalability and availability of the application will be provided by
PaaS by default. So, the SaaS provider can concentrate more on
application development.
• Security will be moderated, and there is full governance over user data.
• Cons
• The overhead in maintaining the infrastructure still remains unsolved.
• This type of model will be suitable only for private/public SaaS
applications.
SaaS from IaaS and PaaS.
SaaS from IaaS and PaaS
• Pros
• The best delivery model that suits public SaaS applications.
• Ensures high resource utilization as it enables multitenancy at all layers of the
application. It also supports Green IT applications.
• Dynamic scaling of IaaS and PaaS provider ensures the high scalability of the
application. SaaS development companies need not worry about the scalability of the
application.
• The high availability of the applications is ensured by the replica and the backup and
recovery mechanism provided by the service provider.
• No overhead in maintaining the infrastructure and development platform. This enables
SaaS development companies to develop more applications in a short span of time.
• Cons
• the application will be hosted as off-premise applications. So, there is no governance
over customer data.
• There is a possibility of cross tenant attacks as multitenancy is enabled at all levels of
the application.
LEARING CONTENTS
All the concepts you will learn today!
Different Perspectives
Introduction on SaaS Development
Cloud – aware
New Challenges Software Development
using PaaS Technology
page 20
New Challenges
• Multitenancy:
• Security
• Scalability
• Availability
• Usability
• Self – Service Sign up
• Automated Billing
• Nondisruptive Updates
• Service Integration.
• Vendor Lock – in
LEARING CONTENTS
All the concepts you will learn today!
Different Perspectives
Introduction on SaaS Development
Cloud – aware
New Challenges Software Development
using PaaS Technology
page 22
Cloud – aware Software Development using
PaaS Technology.
• PaaS provides the services to develop, test, deploy,
host, and maintain applications in one place.
• Most of the service providers offer polyglot PaaS where
the developers can use a variety of application
development environments in one integrated
development environment (IDE).
• The variety of client tools such as web UI, web CLI,
REST APIs, and IDE integration increases the ease of
application development and deployment.
Cloud – aware Software Development using
PaaS Technology.
• PaaS offers a built-in multitenant architecture for the
applications developed using PaaS.
• PaaS provides a software load balancer that ensures
the dynamic scaling of the application.
• The replicas maintained by PaaS providers ensure the
high availability of the application.
Cloud – aware Software Development using
PaaS Technology.
• PaaS providers also allow integrating with other web or
cloud services to develop composite cloud services.
• PaaS increases the collaboration between the
development team as the application will be deployed at
a central place.
• The other important SaaS-specific features like
monitoring tools and automated billing will be offered by
PaaS itself.
Cloud – aware Software Development using
PaaS Technology.
Cloud – aware Software Development using
PaaS Technology.
• Multitenant Architecture
• Multitenancy can be achieved at the infrastructure, development
platform, database, and application levels
Cloud – aware Software Development using
PaaS Technology.
• Highly Scalable and Available Architecture
• achieving dynamic scaling also depends on the software architecture.
• The scalability of the SaaS application can be achieved using
horizontal scaling, vertical scaling, software load balancer, and
hardware load balancer.
• In horizontal scaling, identical resources (application server, database
server, and infrastructure) will be added to the application to handle the
additional load.
• In vertical scaling, the capacity of the server (application, database,
and infrastructure) will be increased as the load increases.
• The software load balancers also can be used to ensure the dynamic
scalability of the SaaS application.
Cloud – aware Software Development using
PaaS Technology.
• Highly Scalable and Available Architecture
Cloud – aware Software Development using
PaaS Technology.
• Database Design
• Multitenancy at database level can be achieved by sharing the
database instance, sharing the database table, and sharing the
database schema.
• Depending on the security of the application, the database should be
designed to secure multitenancy.
Cloud – aware Software Development using
PaaS Technology.
• While developing the application, the developers should
incorporate the following things for successful SaaS:
• Responsive UI design to support multiple devices
• Role Based Access Control (RBAC), Access Control List (ACL)
mechanism to uniquely identify users and tenants
• Monitoring tools that will monitor the performance and notify the service
provider frequently
• Control panel for the tenant and admin to manage the users
Cloud – aware Software Development using
PaaS Technology.
• While developing the application, the developers should
incorporate the following things for successful SaaS:
• User-centric customization panel that does not affect the settings of
other tenants or users
• Self-service sign-up for the users
• Usage statistics and bill calculation
• Help documentation to use the service
• Service integration
Cloud – aware Software Development using
PaaS Technology.
• While developing the application, the developers should
incorporate the following things for successful SaaS:
Cloud – aware Software Development using
PaaS Technology.
• Monitoring and SLA Maintenance
• After delivering the application, any misbehavior, failure, security
attacks, and disasters of SaaS applications should be monitored and
prevented.
• Another important job in SaaS monitoring is to monitor the SLA
violation by both the service provider and customer.
• The SaaS providers should define the SLA clearly to the end users
before delivering any services.
• The SLA should include the availability, response time, and degree of
support. The service providers also should provide 24 × 7 support to
the end users.
THANKS
Số 1, Võ Văn Ngân, Thủ Đức, TPHCM
[email protected]
+84942920912