The cloud is on everybody’s mind these days as a way to reduce costs, increase application delivery speed and flexibility. However, there is a perceived risk if not done correctly.
With pressure to adapt to cloud computing, it is common to jump to the "where" and "what", rather than first considering the "how" and "why." Building your business's case for the move and mapping your route to the cloud—including what deployment models you are going to leverage and how you are going to manage the environment long and short term—is where we really need to start.
Before moving to the implementation decisions, the following considerations need to be taken.
1. What Resources are Available to Help?
Understanding what knowledge and expertise you have available to plan for this move is vital. What experience does your IT staff have with virtualization, shared resource pooling, monitoring and optimization? Be sure the employees that you have are available to work on the project, and not caught up in day-to-day activities making this a part-time job. A cloud deployment can be a big piece of their up-front work.
You don't have to become fully reliant on a partner either. Simply balance your knowledge, do a realistic gap analysis to determine the areas that you cannot cover internally and subsidize your resources with people who can provide you with guidance, either short or long-term. This ensures that you are heading in the right direction and planning for your businesses future.
2. Security and Compliance
Security and compliance are thought of as an automatic installation and is therefore left until the end of the project—when it is too late to make meaningful changes. Security and compliance in your cloud infrastructure needs to be considered up front as it has deep impacts on architecture design decisions and models.
When defining your overall application requirements, be sure to determine what security and compliance your business and its clients may have. Consider security and compliance as a part of your knowledge gap. If forgotten, you open your business to the risk of starting over.
Some aspects include:
- Governmental and industry compliance
- Sarbanes Oxley (SOX)
- European General Data Protection Regulation
- The Health Insurance Portability and Accountability Act of 1996 (HIPAA)
- Payment Card Industry Data Security Standard (PCI)
- FDA 21CFR11
- The type of data will you be storing or transferring
- Protected Health Information (PHI)
- Personally Identifiable Information (PII)
- Credit cards
- Intellectual property (often at risk for theft)
- Any other data that could put your systems at risk
Once you have identified your security and compliance requirements and what expertise you have or need and put that in place, you are ready to design your architecture for moving to the cloud.
3. Infrastructure Design
Designing the right infrastructure is critical to ensuring your application performs as required, is running at all times and meets your security and compliance needs. If you choose the wrong architecture, not only can it impact these areas, it can also cost you significantly more than you had planned.
In the same THINKstrategies survey, 49% of respondents were at least 10% over budget at deployment time, and only 33% didn’t have to make changes to the infrastructure architecture post-deployment.
To beat these odds, it is important to design the application in its initial state, while simultaneously thinking of growth of the application and its user base. Without adapting your plan for growth, or at least for the ability to grow, you may end up with a design that cannot meet your needs in the future.
Of those 67% that made changes post-deployment, 72% of them did so just 6-12 months later, meaning they didn’t plan for their future. There may not have been initial mistakes, but lack of experience or planning led them to architect themselves into an infrastructure corner.
4. What is the Right Model?
There are two basic models for cloud: public and private. Today, companies are able to create many different combinations, creating a cloud environment for a single application, system or an entire organization.
Cloud Models Include:
- Public: infrastructure resources are shared across multiple organizations to gain an economy of scale on cost of resources and enable growth when you need it
- Private: infrastructure resources are restricted to a single organization, but you can run one or more applications leveraging the single host server
- Hybrid: a combination of models which can also include dedicated hardware that may not be virtualized for cloud purposes
- Multi-cloud: leveraging multiple vendors and cloud technologies
- On-premise: having the cloud infrastructure run in your data center
- Co-location: you own the resources, but they reside in a 3rd party data center where you may share things like power, HVAC, physical security and more
- Hosted: a 3rd party owns the resources and you are leasing them
When considering which model is right for you, it will come down to a few main factors that all tie to the earlier considerations:
- Do you have the right people available to build, manage, secure and monitor the systems to meet your business objectives?
- Do you have data center space available to house the cloud infrastructure?
- How does your organization manage and measure capital expense vs. operational expenses?
- Are you already working with a vendor or provider on another application that can help and prefers a specific model?
- Has your application been developed to work within a specific model?
- Is high availability required and is it designed into the application and infrastructure architecture?
What to do Next?
While I believe these considerations are the most vital, there are many other considerations when moving your applications to the cloud. When moving through the process of adapting to the cloud, these steps form a foundation that lead you in the right direction. However, don’t be afraid to go back and revisit areas or move forward before one is complete—this is an iterative process.
As you work through various facets, you will learn things that will help in areas that have already been completed. As you move forward, some roadblocks will occur causing new thinking, and that knowledge will only make your application better and your users happier.