by Rachelle McLure –
Businesses are continuously improving and evolving our application portfolios to reduce costs, improve performance and increase user satisfaction. We’ve consolidated our applications to as few technology platforms as possible in order to reduce infrastructure costs. To meet increasingly aggressive performance targets, we’ve tuned our applications with caching, appropriate abstraction, and scaling (primarily vertical). We also focus on improving the experience and overall usability to guide our users through our applications in a way that efficiently and effectively satisfies both our objectives and those of the users.
It takes time to get an application release right, and just when we think we’ve satisfied all the stated and implied, functional and non-functional requirements, we find that it’s not enough. We must do more. There is a never-ending list of better, faster, and cheaper improvements.
The migration of our application portfolios to the cloud has become a mainstream approach to accelerating the continuous improvement of our application lifecycle. Deploying to a cloud is not the same as hosting an application on-premise or at a remote data center; it is a model in which the infrastructure is closely aligned with the demand. The cloud meets the varying workload by altering the use of computing resources.
Many years ago, we experienced a step change in application development. We moved to an object-oriented paradigm. At first, many developers simply re-compiled their C code with a C++ compiler and called it “object-oriented”. It wasn’t. Similarly, migrating the application portfolio to the cloud is more than a simple lift and shift operation.
The cloud model provides a platform for us to better manage cost, performance, and reliability of our application portfolios. In order to take advantage of these benefits, we need to strategically plan and re-structure the portfolios.
Build the Business Case
As part of planning our cloud migration roadmap, we need to define the business case. The business case should use the current state of the application portfolio to establish benchmarks for the desired improvement:
- Costs: floor space, infrastructure, software licenses, depreciation, support personnel, etc.
- Availability: system performance, response time, the number of concurrent users, transactions per hour (read and update), workload peaks, availability, etc.
- Reliability: known bugs, average number of technical errors (and their severity) introduced per release, data integrity confidence level, etc.
- Supportability: scarcity of skills, the complexity of business rules and integration, the logical structure of the code, availability of support team, etc.
The business case should include a definition of success that factors in each of these benchmarks. What is the expected total cost of ownership of the cloud solution (including restructuring and retraining) compared to the fully loaded current cost? Are the reliability, availability, and supportability of the application portfolio expected to improve as a result of the cloud migration?
Define the Migration Strategy
To manage the cost of cloud migration, companies need a strategy:
- Which cloud service will be used? What scenarios may dictate an on-premise or a hybrid solution?
- How will the cloud be governed? Release management, environment management, and configuration management are difficult and the availability of cloud, on-premise, and hybrid applications will add to the complexity of these functions.
- What criteria must an application in the portfolio meet to be a good cloud candidate? And, how will an organization determine when an application is no longer suitable for the cloud?
- Are there existing commercially available, cloud solutions that provide the required functionality of a target application in the portfolio that would better meet the defined cost and timing targets?
- What security protocols need to be changed and added for application and data protection, to prevent data breaches or theft and to meet compliance requirements?
- What are the expectations for reliability, availability, and supportability?
Define a Common Architecture
The structure of applications and application portfolios targeted for cloud migration need to:
- Be architected for elasticity with special attention on horizontal scaling, memory, storage and cycles
- Provide for interactivity by utilizing containers and their connectivity via APIs
- Be structured in a way that maximizes functionality and manages costs
- Support multiple public, private, and hybrid cloud environments and their security requirements
- Address cloud managed services needs
Begin the Journey to the Cloud
Migrating existing applications “as is” to the cloud will highlight inefficient and poorly designed applications and possibly introduce unanticipated overuse of compute resources and higher invoices than budgeted. A solid business case, strategy, and common architecture will mitigate the risk and provide a foundation and roadmap for successful cloud migration.