A Developer's Guide to Cloud Adoption and Paths
A Developer's Guide to Cloud Adoption and Paths
This may take some convincing. Arm yourself with the details of cloud in this article before your next cloud adoption meeting with your manager.
Join the DZone community and get the full member experience.Join For Free
See why enterprise app developers love Cloud Foundry. Download the 2018 User Survey for a snapshot of Cloud Foundry users’ deployments and productivity.
Limited disruption. That is the dream of every organization when adopting new technologies. It reduces the anxiety of developers and operational staff alike. It makes management ecstatic as they won't be subjected to news that another technology implementation went wrong. Minor glitches may still present themselves, but overall, they are not enough to derail the implementation of the new technology.
Cloud technology has the potential to limit disruptions. It can give your company the solutions it needs with limited downtime. It will be ready for you as your business expands or contracts, and it offers several choices that fit within your organization's computational goals. Are you looking to replace your technology infrastructure? The cloud can do that. Are you seeking a platform for software development that can grow with the business? The cloud is capable of that, as well. Cloud technologies help answer the question of how to deploy solutions quickly, while not adding to the administrative costs and constraints often found with in-house solutions.
Unfortunately, there is much hype surrounding the cloud. This hype is one of the chief components that hold organizations back from adopting it. Cloud vendors add to the hype because they are trying to sell solutions. When you learn what the cloud can offer, you have the tools to cut through the hype and make the right decisions.
How to Adopt Cloud Technologies
If you approached your manager and told her you could solve all your technology challenges by adopting the cloud, how receptive do you think she would be? Unless she was an expert in cloud technologies, she would be rather skeptical. Unfortunately, if you don't have the answers to those questions, you won't get very far.
When you learn what services vendors are offering, you can use that to determine what processes from your organization should be moved to the cloud.
Getting up to Speed with Your Cloud Discovery Process
It's helpful to grasp a few concepts relating to the cloud. The first step in adopting the cloud is to figure out which components your company should deploy to the cloud. This seems like a daunting task, and it can be. To make this easier, it's important to understand the layers available in most cloud computing services.
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
Some vendors will introduce other layers to try and differentiate themselves. However, most vendors will structure their services based on these three major layers. Here are some definitions to help you when approaching vendors.
Layers of Cloud Computing Services
File:Cloud computing.svg. (2016, December 5). Wikimedia Commons, the free media repository. Retrieved 16:26, March 12, 2018, from Wikimedia
Infrastructure as a Service (IaaS)
You can think of IaaS as the baseline layer. The other layers would still need IaaS to function. The question becomes do you want your provider to handle your infrastructure, i.e., networking, storage, virtual machines, etc., or would you like to keep control of it yourself? This is the layer that could replace your technology infrastructure (or at least part of it).
You would have control at this level, but only to the extent of the services the cloud provider makes available to you. This is defined via Service Level Agreements (SLA). In most cases, the implementation is done via virtualization, which is an important concept with cloud technologies.
Virtualization is the component of the cloud that gives users access to the services or software as part of the SLA. It is a layer of software that allows components of the cloud to function as if they were installed physically. It does this through a software layer called Hypervisor. You can think of Hypervisor as a dispatcher that is responsible for allocating the virtual processes to the hardware of the servers. Virtualization is not the cloud, but instead is the mechanism that helps make the cloud work.
Platform as a Service (PaaS)
If your organization wanted to keep control of its infrastructure, but wanted to deploy certain applications (software development, web services, etc.), you could use a cloud provider's Platform as a Service (PaaS). What is offered in this layer is dependent on the vendor. That is why it's critical to match your organization's requirements to vendor offerings. This layer sits on top of the IaaS layer.
Software as a Service (SaaS)
As the name suggests, this layer allows users to run software provided by the cloud vendor. The software is usually web-based, which in most cases, means clients do not have to install software to run these applications. If you have ever used a service such as Dropbox, you have been a user of the SaaS layer. Salesforce is another example of software that runs on this layer.
These layers are not mutually exclusive when vendors make services available. It's possible to ask for all the layers based on the needs of your company. These layers can be swapped in and out based on those needs.
At a higher level from the layers of cloud technology, resides the cloud access level. This doesn't refer to the physical location of the servers the cloud runs on, although that could be part of it. It refers to the type of access you require. There are three major access levels, with more are appearing on the scene as cloud technology progresses. These are private, public, and hybrid.
This portion of the cloud is exclusive to you. It will not be shared with anyone. Companies will choose this option when they have sensitive customer data and don't want the risk of having that data exposed. In some cases, where low-latency computing is required (trading systems, etc.), a company can choose to have the private cloud installation on your location. However, this is not a requirement for a cloud to have private access.
At the opposite end of the spectrum is the public cloud. This is the cloud that is shared with other companies or entities. The technology resides at the location of the vendor, and the vendor is responsible for the mechanism for sharing. Companies will choose this access level when the data and applications are not sensitive and do not require low-latency processing or your company needs a high degree of collaboration.
This access level is, as the name suggests, a mixture of public and private clouds. Many business processes are not sensitive and don't require a full private cloud. A hybrid solution can satisfy the need to protect some processes and data, while allowing others to be shared.
Public clouds are secure. However, many managers don't feel comfortable allowing their sensitive processes and data to be mixed in with other companies' processes and data. In fact, there are several scenarios where companies can get into legal trouble by using a public cloud. Financial and healthcare are examples of industries that need to maintain a private cloud.
Feel free to explore this article for a more in-depth look at the different cloud deployment models.
Choosing a Cloud Vendor (Or Switching from an Existing One)
It's difficult to recommend a specific cloud vendor. It requires matching your computing needs with what is being offered by the vendors. Most cloud vendors offer affordable solutions. That's part of the promise of the cloud. Therefore, price is likely to be the smallest constraint in the process.
Instead of recommending vendors, use the following as a guide to help you ask the right questions. This will help you determine which vendors may be right for your company.
How can cloud computing help your organization?
When approaching a prospective vendor, present your computing requirements and ask how cloud computing will help your organization. With this question, the tone of the vendor is just as important as the answer. Is the vendor trying too hard to sell you without providing much insight? You want to look for vendors who can tell you how each requirement you specified will solve your computing needs or not. You should be skeptical of any vendor who tells you they can solve all your requirements. Ask them for proof.
Are there any hidden costs or services that will need to be added?
Ask potential vendors for the Service Level Agreements (SLA) based on your requirements. Review the agreement carefully and make sure the costs quoted by the vendors will cover all your requirements. Be sure to ask what level of control your organization has as part of the SLA. Don't assume anything.
Can you try before you buy?
Ask for demonstrations and trial periods. For instance, Microsoft Azure offers a trial period. It gives users a 30-day run with a $200 allowance. Cloud computing is often charged on a pay-as-you-go basis. In the case of Azure, the trial will expire after 30 days has passed, or you have used the $200 allowance, whichever comes first.
What security is available as part of the solution? What is the customer responsible for?
Ask the vendor about security. Most vendor solutions are secure. However, customers are still responsible for some aspects of security. For instance, you have control of who you allow access to with many of the cloud services. You cannot simply wash your hands and claim the vendor is responsible solely for security.
Switching vendors? How will the new vendor help you transition?
If you are a current cloud customer and are considering switching vendors, what kind of migration support does the new vendor offer? How much downtime can you expect when making the switch?
Will you be charged for terminating your existing service?
What is the policy on terminating your service? Since most vendors adopt a pay-as-you-go model, terminating your service should not be an issue. However, ask before signing up to avoid any extra costs.
What are the major cloud vendors offering?
Examine a side-by-side comparison of the features offered by major cloud vendors. Try to see which ones make sense for your organization. These features can be the basis for further questions as they relate to your requirements.
Luckily, the environment for cloud computing is competitive. This is a boon for companies looking for cloud solutions. Cloud vendors will do whatever it takes to make clients happy. You will be able to find the right solutions assuming you take the right steps when searching for vendors. Hence, there is no reason to put off exploring the cloud as a possible solution for your business. In fact, it's not a matter of if you will adopt cloud technologies, but when.
Published at DZone with permission of Ben Putano , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.