Cloud Computing: How to Effectively Use Someone Else’s Computer
Computing services are in the midst of a seismic shift with servers, storage, databases, software, networking and more being provided over the internet, rather than from local hardware systems. The idea of moving technology to “the cloud” was ahead of its time when the phrase was first coined in 1997. But post-pandemic, nearly six in 10 organizations had moved their workloads to the cloud with many more either planning to make the shift or considering their options.
There are significant advantages of paying to use another organization’s computer, especially if it is a cloud provider’s computer. But optimizing for the cloud environment is different from developing and implementing your own data center. To really take advantage of the cloud requires more than migrating there; it requires integrating with the cloud to reap benefits.
Migration vs. Integration in the Cloud
Let’s say your organization’s servers are getting outdated, are in jeopardy of breaking down, or perhaps the organization no longer wants to operate its own data center. One solution could be simply migrating to the cloud. This approach would ‘lift and shift’ everything as presently configured to the cloud. There would be no changes to software or applications, which might on the surface seem simple enough. Physical servers are replaced with virtual servers in the cloud that are readily available and configured for use.
“This approach will start pushing costs from large capital expenditures into operational costs. If something breaks or suddenly needs to be replaced, there doesn’t need to be a panic moment and an unplanned expense because cloud servers are available on nearly a moment’s notice,” said Mark Henman, TDK Technologies Chief Technology Officer.
Companies migrating to the cloud for the first time may not see an overall cost savings. Efficiency and operational improvements come when companies truly integrate their systems to the cloud environment. Integration enables software to take advantage of the environment where it’s running, in a way that's cost effective and highly available.
“To really take advantage of the cloud requires building software that utilizes the economies of scale and the managed services that cloud providers offer,” Henman said. “That means writing what is called ‘cloud-native software’ to take the most advantage of the cloud provider’s safety nets, security features, built-in redundancy, and auto scaling.”
Writing software that is optimized for the cloud is not difficult for software developers to learn, but requires them to take a different approach. Cloud providers often have pre-existing software applications that can be assembled to meet a company’s need, rather than requiring entirely new applications to be created. So, cloud developers need to know when to build something from scratch and when to use something that already exists. By following a set of rules for the cloud, the outcome will be applications that are built in a timely manner, are more flexible, and are higher quality.
“We look for software developers who are comfortable with the cloud and who know how to build microservices to work with the tool sets that the cloud has enabled,” said Ian Patterson, TDK Technologies Chief Operating Officer. “People coming out of companies with their own data centers may know virtualization, but they may not know the rest of the tool sets for the cloud. It's really a different mindset when running in the cloud.”
Benefits of Cloud-Native Software Development
Designing applications for the cloud mitigates risk because the cloud is built to be redundant. There can be multiple copies of applications running in the cloud, so that if one element fails, it doesn’t mean everything on the system will go down. Another benefit is that program upgrades and replacements can take place without users ever noticing.
Auto scaling is the ability for an application to draw upon the appropriate resources, depending on the size of utilization in the system at any given time. For example, a cloud application can be designed to automatically grow its footprint to meet the needs of an organization’s customers during peak periods and to reduce the footprint during slower periods. In other words, the system doesn’t need to be designed with more resources than needed. Auto scaling is a feature that has helped the cloud revolutionize cost effective computing.
“In a cloud environment that utilizes concurrency, a system could be running on a few servers for most of the day. Then, if developed in the right way, when the system sees volume going up it will automatically add virtual servers to handle the increased capacity,” Patterson said. “The concurrency application can be encapsulated on its own. It’s the only thing that needs to change in the process, not everything in the data set. Knowing how to develop in the cloud environment is critical.”
Cloud Security
In a cloud environment, security is a shared responsibility. Cloud providers secure the infrastructure and services they provide. Companies must secure the software they run in the cloud.
“The cloud doesn't mean companies need not care about security anymore. It means the cloud vendor secures the cloud. All the company has to do is focus on keeping its applications secure,” Henman said. “That narrower focus allows companies to build much more secure, much more stable, and much more available applications.”
“That's a massive cost reduction for a lot of companies, because they don't have to manage the firewall, the DMZ, and all of that infrastructure security. Now they can focus on application security,” Patterson said. "I tell people all the time, if you think you can secure the infrastructure as well as Google or Amazon, let me know.”
Companies of all sizes, even those that have made recent significant investments in purchasing their own servers, are advised to consider moving some or all of their operations to the cloud. For organizations that are just starting, utilizing cloud services for all technology functions is a viable option.
“Considering the amount of money it takes to start up a business and initiate the computing infrastructure to put a business online, it's much faster, cheaper and easier to do that in the cloud. And you can do it from day one,” Henman said. “The cost model itself, just having to pay for what you need when you need it, is huge for most people if they can take advantage of it correctly.”
To Recap
Cloud computing can result in cost-effective, efficient, secure, and flexible technology infrastructure for companies of all sizes. However, taking full advantage of the cloud requires more than shutting down a company’s own servers and moving the existing software to a cloud environment. Finding a technology consulting firm that knows how to optimize software for the cloud will unlock the full potential for a successful integration.