Software Deployment Models
What Are Software Deployment Models?
Choosing the right software deployment model for your product is crucial to how an enterprise views your software offering. For them, cloud technology means it's no longer simply about selecting the right capabilities and software vendor; they also have to consider the delivery model to deploy the software across their enterprise. Different vendors offer different deployment models and some may support more than one deployment method (even for the same application).
Cloud computing has revolutionized the software market in a number of ways, but it has also transformed how software developers can enable on-demand resources, unlocking lower costs, lower risk of downtime, and increased scalability, efficiency, performance, and security. Within both traditional on-premises and cloud software deployment models, there are a number of options available.
Enterprise and cloud deployment models
Different software deployment models satisfy the needs of different types of enterprise, with differing costs and value propositions. To make the right decision for your software product and its target audience, it's worth taking a quick look at the most popular traditional and cloud computing deployment models.
Some software (ERP solutions, for instance) requires a server. It's often impractical to have a server in-house, so an enterprise may prefer a vendor or third party to run the software off their servers, usually hosted in secure remote data centers. The enterprise owns the software but then pays a monthly or annual fee to access the server, which also covers the cost of deployment, security, backups and server maintenance.
On-premises (or ‘on-prem’) software is directly installed and run on individual machines or local servers belonging to the customer, i.e. on physical hardware rather than remote hosting.
Typically, a license is required for each user or server, and license keys are either downloaded via the internet or activated with a license dongle.
Perpetual or subscription license models are common, and customers are responsible for installing updates to ensure they’re running the latest version, which helps reduce exposure to security issues. Updates are typically provided through paid maintenance plans.
Cloud deployment models
Cloud deployment is about creating a virtual environment that defines how servers are used and managed. The three most popular cloud deployment models are software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS).
Software that is deployed in the public cloud is remotely owned and hosted by the software vendor. Typically, the enterprise pays for a cloud subscription license rather than owning the software outright – known as software as a service (SaaS) – mimicking popular cloud subscription models for applications like Salesforce.com, Adobe Creative Cloud and Microsoft Office 365.
A private cloud deployment model involves using the same mix of tools as a public cloud offering, but hosted on-premise. An enterprise gains the flexibility to customize an app and tailor the software to meet their specific needs while having all the benefits of a packaged SaaS solution. In some cases, the vendor or service provider may manage the on-premise server remotely or provide ongoing maintenance and development.
Virtual Private Cloud
A virtual private cloud (or VPC) is a private cloud hosted in a public cloud. A VPC is typically used by an enterprise that needs flexible but secure access to cloud storage, to host websites, or to execute code. By isolating resources and ring-fencing them from a larger public cloud, VPCs get all the benefits of mainstream cloud infrastructure with the privacy and security of private cloud. VPCs often consist of subnets (a range of reserved IP addresses within a network for private use, hidden from public internet), VLAN (a virtual local area network where devices are connected without the internet, partitioning the public and private cloud), and VPNs (virtual private networks that use encryption to create a private network overlaid on top of a public network, scrambling traffic through routers and switches).
VPCs enable an enterprise to scale and add more resources on demand, as well as boosting the performance of cloud-hosted applications by taking the best of public cloud infrastructure.
A community cloud operates in much the same ways as a private cloud, with one key difference: it consists of a multi-tenant architecture. That means organizations can form a community to share computing resources on public cloud infrastructure but with tightly controlled security and access.
Community clouds are hosted on third-party servers or a tenant data center, allowing resources to be pooled. This is particularly useful for 'sister' organizations in the same sector to be able to access databases and software applications that are in common use, but without public access. Security settings and applications must be the same across the group.
Costs involved in establishing and maintaining a community cloud are typically vastly below a private cloud, and organizations can share resources for best efficiency.