In our previous blog (click here), we discussed on the various options and considerations an organization must undertake while choosing to procure Enterprise Applications. Having decided on the same, we would now understand the different options for deploying the software and the considerations that one would need to undertake.
Software Deployment, as the name suggests is a process to deploy the software following a set of pre-defined or vendor suggested steps and make the software available to use. The processes and steps to deploy will vary with each software based on its specific requirements and characteristics along with the deployment option chosen. Also, for deployment of every application, there is also a need for installation and/or alignment of the peripheral dependencies like other existing/new applications, networking, etc.
For this article, we would not be going into the technical details of deployment architecture and processes but would focus on the various deployment options available to an organization once they have zeroed in on the Enterprise Application(s) to be deployed.
First and foremost consideration for any organization on this front would be on choosing the correct infrastructure to deploy the Application. IT Infrastructure has evolved over time to provide customers with various options to choose from depending on their needs and appetite. Let us first begin to understand these options at a high level.
On Premise Deployment
This is the most traditional approach of deployment of software where the entire process is managed in-house with or without the help of external consultants. In an on premise environment, the software would run on servers that are owned by you and placed within the organization's boundary.
The organization in conjunction with the specifications from the Software Vendor would preparer the needs of the server, sizing and other details, procure and install the same. This will be followed by the software installation on the server, enabling the required services and configurations to ensure that the software is up & running and can be accessed by the users from their machines:
- As the servers are within the own premises, the applications are connected across the users in the organization using the hardware and networking infrastructure present in the organization.
- The organizations IT resources can manage the day to day maintenance of the application as well as manage the enhancements and upgrades.
- This approach is typically adopted by companies who have their own IT resources to manage the IT Application landscape. This is also adopted if the companies have mandate from regulatory authorities or customers for maintaining the application data locally.
- Key steps involved in On-Premise Deployment of Enterprise Application:
- Capacity Planning and Sizing of Hardware, Software and Networks
- Procurement of the above
- Installation of Hardware along with configurations
- System Development and Testing
- System Deployment
- Application and Hardware Maintenance
- Managing Enhancements and Upgrade
Pros and Cons of 'On Premise' Application Deployment are as under:
Pros |
Cons |
Strong Integration capabilities with other existing applications of the organization. |
High upfront costs due to costs of procurement, installation of software as well as hardware |
Can meet regulatory and customer requirements of data security |
Internal IT teams need to be trained and made capable of handling all technical activities related to the application and server |
Provides flexibility of software customizations without dependencies from third parties |
Scalability of software and sizing are limited due to infrastructure capabilities |
Complete control over IT infrastructure |
No Service Uptime Guarantee |
Doesn't depend on internet as infrastructure is residing and accessed within the organization through corporate internal network |
Capacity enhancement is time consuming. Can take months. |
|
Need to procure and maintain hardware to cater for the surge requirements. This needs to be carried all the time |
Cloud Deployment
Cloud is one of the hot terminologies that have been in use over the last many years. Cloud is basically provisioning of a virtual IT environment by a host organization to its customers that can be accessed, transacted and maintained remotely. Cloud Computing are primarily segregated into 2 parts - Cloud Services and Cloud Deployment.
The key business drivers that led to an emergence and wider acceptance of Cloud Based IT systems are Cost Reduction and Capacity Planning constraints. In a competitive world, organizations are inclined to keep costs, especially IT Costs lower than ever before. Contrary to that, business uncertainties restrict effective Capacity Planning that has resulted in under / over capacity translating into further costs to the organization. Cloud deployment provides a perfect answer to these challenges by providing an organization the required flexibility as well as cost effectiveness in deploying and maintaining their Enterprise Applications. Many organizations tend to deploy their applications on cloud because of the lower capital expenditure upfront and also for the predictability in the operating costs.
Cloud Providers typically enter into agreement with organizations which are characterized by service level agreements, service up-time guarantees, and performance metrics to be adhered along with technical support.
Pros and Cons of Cloud based Deployment are as under:
Pros |
Cons |
Allows users to access systems and information anywhere and anytime |
Lacks total control over the organization's IT infrastructure. |
Lower deployment and operational costs. Operational costs over the years are predictable. |
Certain aspects of cloud environment is determined by the cloud provider and may not be customizable to businesses' needs |
Provides guarantee of service up-time and performance metrics |
Security still a big concern when the data travels through internet |
Requires a lean team in internal IT. Does away with the need of resources with complex technical skills |
Multiple points of failures in series making it vulnerable. (Orgà ISPà Providers Network) |
Cloud provides for scalability of infrastructure in lesser time and cost |
|
Possible to have capacity enhancement for surge period only |
|
Various models for Pricing available |
|
There are primarily 3 cloud deployment models which are explained as under:
Public Cloud: As the name suggests, in this model, the third party cloud provider owns an infrastructure that is made available to organizations and users over the internet either free of cost or for a fee. The owner of the cloud is responsible for maintaining the cloud environment and its peripheral resources.
Public cloud, being a shared-tenant arrangement, the hardware hosted on the cloud is shared between many organizations and users. When an organization subscribes to public cloud, they can't have control over the hardware performance and specifications as these are in the prerogative of the cloud provider to use whatever works best to the entire server. However, since the costs of the infrastructure as well as the operating costs are shared between the subscribers of public cloud, it provides a very cost effective model for organizations to subscribe, especially for hosting applications which do not contain business or client sensitive data.
Private Cloud: Private cloud is also known as internal cloud as the cloud deployment in this case is specific to an organization and its requirements. Private cloud ensures compliance to an organization's security requirements and is hence characterized by the necessary safeguards like firewall, access control restrictions, etc. Though the private cloud may be hosted by an external service provider, the organization subscribing to it would be the owner of the same. The organization can maintain the requirements in terms of server sizing, performance metrics, and scheduling processes as per its own business requirements. The administration of the Private Cloud can either be done by the organization's IT resources or can be outsourced to a third party.
Hybrid Cloud: Hybrid cloud is a cloud deployment model comprising both public cloud and private cloud. An organization may decide to deploy critical business applications like ERP and Financial systems on a private cloud to ensure compliance and tighter security, whereas applications having less critical information may be hosted on public cloud. Though hybrid cloud model provides an organization with cost rationalization opportunities, it will have to factor in challenges of integrations and disparities between different cloud environments.
Hybrid Deployment
Hybrid Deployment is a model where some of the Enterprise Applications are hosted on Cloud while some are hosted on internal servers. The reasons for an organization to choose for hybrid model may vary, though few typical reasons are listed below:
- The organization may want to try out cloud based model for few of the applications before making a move entirely into cloud in future.
- There may be legal or business requirement to maintain certain critical applications On-Premise for greater control and security
- An organization may want to derive benefits of investments in existing physical infrastructure for existing applications while newer applications may be deployed on cloud.
Key Considerations for Choosing the Correct Deployment Option:
Now that we know the deployment options available to an organization, let us understand the key influencers in decision making to make the correct choice from the above:
- Integration - Requirement of integrating various applications and the technical challenges in building and maintaining those integrations across deployments
- Control - Does the model provide for the organization to define the critical control mechanisms and to what extent
- Data Security and Privacy - capability to build and maintain security of access as well as data
- Peak Loads - Ability of the infrastructure to handle peak loads and consistent average loads without impact to performance
- Vendor Confidence - Credibility and reliability of the cloud / infrastructure provider
- Customer's Skills and Experience - Types and number of IT resources that are required to maintain the infrastructure
- Costs - Upfront investment required as well as Operational Costs. TCO including hardware/ Resources / Subscription as applicable over a period of 3-5 years
- Impact on Working Capital - Percentage of working capital that would get blocked and/or consumed for maintaining the infrastructure
- Cash Flow - Payback period of the investment (Return on Investment)
- Flexibility and Scalability - whether the deployment model is capable to be scalable as per the business needs
Authors:
Ravindra Kumar Deshmukh Shrikant Shrinivas Shenoy
Principal Consultant - Oracle Practice Principal Consultant - Oracle Practice
Infosys Limited, Pune. India Infosys Limited, Pune. India