1.1.4 Compare the implementation of systems using a client’s hardware with hosting systems remotely.
When implementing a new system, one of the first decisions to make is whether the system should be installed on-site within an organization, or if it should be hosted remotely. This is especially an important consideration for software systems, where increasingly services are being based in the “cloud”
Cloud computing is providing developers and IT departments with the ability to focus on what matters most and avoid undifferentiated work like procurement, maintenance, and capacity planning. As cloud computing has grown in popularity, several different models and deployment strategies have emerged to help meet specific needs of different users. Each type of cloud service, and deployment method, provides you with different levels of control, flexibility, and management. Understanding the differences between Infrastructure as a Service, Platform as a Service, and Software as a Service, as well as what deployment strategies you can use, can help you decide what set of services is right for your needs.
image source: www.cmswire.com
(SaaS; pronounced /sæs/) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. It is sometimes referred to as "on-demand software".
A software delivery service method that provides access to software remotely as a web-based service.
Software as a Service provides clients with a completed product that is run and managed by the service provider. In most cases, people referring to Software as a Service are referring to end-user applications.
A common example of a SaaS application is web-based email where you can send and receive email without having to manage feature additions to the email product or maintaining the servers and operating systems that the email program is running on.
Allows organizations to access business functionality at a cost that is usually less than paying for licensed (hosted) applications).
Pricing is usually based on a monthly fee instead of software licensing.
Users do not need to invest in additional hardware because the software is hosted remotely.
Removes the needs for organizations to handle the installation, set-up and daily upkeep and maintenance.
Entire businesses with thousands of employees can run their computer tools as online rented products.
Scalability: As an organization grows more users need to be added to a system. Rather than purchasing additional in-house server hardware and buying more software licences, an organization can simply adjust their monthly SaaS service subscription.
Accessibility: A browser and an internet connection is all that’s usually required to access many SaaS applications. This allows them to be made available on a wide range of desktop and mobile devices.
Upgradeability: A service provider deals with hardware and software updates, removing a significant workload from in-house IT departments.
Resilience: Infrastructure and data reside in the cloud service provider’s datacenter. If some form of disaster should occur on an organization’s premises, the system can be used remotely with Internet-enabled devices with no loss of data.
Collaborative tools: Many SaaS solutions offer online tools for collaborations. This can be a big benefit for working teams whose members are at several different locations.
Cost savings: (Possible) Moving from the capital-heavy expense of installing, maintaining and upgrading on-premise IT infrastructure to the operational cost of a SaaS subscription is a tempting proposition, particularly in the short-to-medium term.
Data mobility: The SaaS market has many start-up companies. Some will inevitably fail. What happens to the data and systems of an organization when a service provider fails or if a company needs to change SaaS vendors for another reason (e.g. cost)? Organizations should ensure that they have an exit strategy to avoid being locked-in to a third party device.
Security: This is the primary concern for businesses considering SaaS. If sensitive data and business processes are to be entrusted to third-party providers, then issues such as identity and access management need to be addressed. If a company uses multiple cloud services, then de-provisioning employees (removing their access) can become a headache.
Integration: Businesses that adopt multiple SaaS applications or wish to connect hosted services with existing on-premise applications face the problem of software integration with other systems within a company.
Compliance: When data resides in a service provider’s data center, ensuring that an organization complies with the relevant governmental data-protection regulations can be a problem.
Downtime: Despite cloud provider’s plans, outages do happen, with causes being random to human error. Any downtime is irritating, but a lengthy outage of a critical system could prove disastrous. Companies should scrutinize their service provider’s SLA (Service Level Agreement) and historical performance carefully before outsourcing mission-critical applications to the cloud.
Loss of connectivity: A loss of connectivity due to internet connectivity issues is especially problematic in less developed countries, where the internet service is not as reliable due to poor infrastructure.
PaaS (Platform as a Service) (PaaS) is a category of cloud computing services that provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app.
PaaS can be delivered in two ways:
as a public cloud service from a provider, where the consumer controls software deployment with minimal configuration options, and the provider provides the networks;
or as a private service (software or appliance) inside the firewall, or as software deployed on a public infrastructure as a service.
Platforms as a service remove the need for organizations to manage the underlying infrastructure (usually hardware and operating systems) and allow you to focus on the deployment and management of your applications.
Offers the hardware, operating system and the infrastructure for running applications over the internet.
The service provider has already built the infrastructure and the platform, so all the developer has to do is write their program and deploy it.
Maintenance is the responsibility of the PaaS provider: they can scale the application based on their usage without the developer having to purchase more servers.
PaaS evolved from SaaS which uses the Internet to host software applications.
The PaaS delivery model allows a customer to rent virtualized servers and associated services used to run existing applications, or to design, develop, test, deploy and host applications.
it allows for higher-level programming with dramatically reduced complexity;
the overall development of the application can be more effective, as it has built-in infrastructure; and maintenance and enhancement of the application is easier.
It can also be useful in situations where multiple developers are working on a single project involving parties who are not located nearby.
developers may not be able to use a full range of conventional tools (e.g. relational databases, with unrestricted joins).
being locked in to a certain platform. However, most PaaSes are relatively lock-in free.
Infrastructure as a Service, sometimes abbreviated as IaaS, contains the basic building blocks for cloud IT and typically provide access to networking features, computers (virtual or on dedicated hardware), and data storage space.
Infrastructure as a Service provides you with the highest level of flexibility and management control over your IT resources and is most similar to existing IT resources that many IT departments and developers are familiar with today.
A cloud-based application is fully deployed in the cloud and all parts of the application run in the cloud. Applications in the cloud have either been created in the cloud or have been migrated from an existing infrastructure to take advantage of the benefits of cloud computing. Cloud-based applications can be built on low-level infrastructure pieces or can use higher level services that provide abstraction from the management, architecting, and scaling requirements of core infrastructure.
A hybrid deployment is a way to connect infrastructure and applications between cloud-based resources and existing resources that are not located in the cloud. The most common method of hybrid deployment is between the cloud and existing on-premises infrastructure to extend, and grow, an organization's infrastructure into the cloud while connecting cloud resources to internal system. For more information on how AWS can help you with your hybrid deployment, please visit our hybrid page.
Deploying resources on-premises, using virtualization and resource management tools, is sometimes called “private cloud”. On-premises deployment does not provide many of the benefits of cloud computing but is sometimes sought for its ability to provide dedicated resources. In most cases this deployment model is the same as legacy IT infrastructure while using application management and virtualization technologies to try and increase resource utilization.