By now most organizations are familiar with the benefits of moving their computing to the cloud, such as scalability, reliability, security and elimination of hardware costs. What may be less clear is that for all this to work as advertised, a business process or application needs to be designed properly to work in the cloud.
Cloud computing presents information technology departments with a large number of competing services, architectures and deployment patterns. Many of these options can be successfully implemented for a given business problem, so one of the challenges is to choose.
Your first choice might be among the cloud providers such as Amazon Web Services (AWS), Microsoft Azure, the Google Cloud Platform and Oracle. Microsoft Azure offers hundreds of different services that provide overlapping features, not only including Microsoft operating systems but also open source leaders such as Linux.
Most custom cloud solutions require multiple services including authentication, database, networking, load balancing, traffic monitoring and more. This means that there are thousands of permutations from which to choose. For instance, you might select Web Apps, SQL Azure, Function Apps, Queues, and DevOps in Azure. Even when cloud providers offer nearly identical functions, they have different user interfaces which add to the learning curve.
Managing a solution with so many cloud components can make testing and troubleshooting more difficult. You may also choose a hybrid cloud model which includes components which are deployed on premises or services from multiple cloud providers.
In addition to purely technical choices, you must consider how your successful your internal or external developer staff will be with the particular cloud services you choose. Chasing the latest hot trend may mean that you are continuously forcing people to learn new tools with which they will be less successful in their first attempts. We have had clients switch from one vendor to another when a new chief information officer takes over who favors a particular vendor, creating a wave of redevelopment.
Cost is also a consideration for your cloud services. The price of storage varies widely among cloud services, and it can add up in surprising ways. If your solution generates activity logs or audit logs your storage needs may grown significantly over time. Cloud vendors often reduce prices, but sometimes they have increased prices or changed the metrics used for calculating costs.
All these complications mean that cloud benefits come with a cost, and with the imperative of continuous training for IT staff and developers to keep up with cloud service trends.