Necessity Over Capacity: How to Get Cloud-Enabled Applications Right
Cloud-enabled applications are on-premise software adapted to work in the cloud. However, despite being cloud-enabled, moving a legacy application to the cloud isn’t enough to truly take advantage of the benefits of a cloud application. To enjoy these benefits, businesses need to avoid treating cloud-enabled applications in the way they did when these were hosted on-premise.
This article will review how on-premise and cloud systems work and learn the right approach for migrating applications to the cloud. To give us insight into the subject, we interviewed Richard Reukema, a software solutions architect at Optimus Information with decades of experience in the IT field.
The Difference Between Cloud and On-premise Applications
To begin with, on-premise applications work very differently once they are moved to the cloud. When running on-premise, the application’s performance is tied to the physical infrastructure of the organization. More importantly, legacy applications are not in the hands of their developers, but in the hands of IT operators.
Operators make sure that the hardware has enough resources to handle the many applications that run simultaneously on it. As such, during the process of implementing a new application, they measure its consumption requirements. After that, the IT department handles a list of the hardware they need to run this application properly. To run these applications, companies can choose between relying on the equipment they already have or buying additional hardware for the payload of the application. To this extent, applications depend on the hardware configuration, which can bottleneck the application when under high demand or delay the deployment of newer versions of the software. This process is known as capacity planning.
It is crucial here to acknowledge that on-premise capacity planning takes into account not hourly or daily usage but yearly. Richard Reukema asserts that companies buying hardware have to take into consideration possible dates that will increase applications’ payload. For example, for some companies, Christmas is when some companies increase their sales in comparison to the rest of the year and need the most of their systems. Hence, IT operators have to make sure their applications will be able to withstand the occasional increase in their payload. If they fail to do so, the system’s capacity will not be able to meet demand. Increasing capacity in minutes like cloud applications is off the table
Aside from the possibility of increasing capacity infrequently, the most IT operations can do is schedule to shut down some applications when others require more capacity. They’re limited by the equipment they have. In comparison, cloud applications don’t share resources, or, as Richard puts it, “we build cloud applications or clouded services for the capacity of the application that is required when it’s required.” For this very reason, he maintains that “legacy applications grow on capacity; cloud applications grow on necessity.”
Moving from Servers to Services
As we have seen, traditional IT is locked into capacity. As such, according to Richard, even after moving to the cloud and away from on-premise hardware, operators might still view cloud services as servers. He emphasizes that “they don’t understand software, they understand hardware; they see the cloud as a virtual datacenter”. Virtual datacenters allow companies to swiftly deploy additional infrastructure resources when needed without the time constraints of acquiring and installing new hardware. Scaling on-premise systems like that demand a whole process of picking hardware from vendors, waiting for it, and installing it. In comparison with cloud-enabled scaling, the whole thing takes months.
However, while cloud-enabled scaling eclipses the limitations of on-premise scaling, managing applications like this doesn’t take advantage of the cloud to its fullest. To Richard, virtualizing infrastructure makes no difference, since it keeps IT treating applications as servers instead of services.
Richard understands that to take advantage of cloud capabilities to their fullest, IT operators need to think of necessity instead of capacity. He uses the case of ride-sharing company Uber as an analogy: “Uber goes into a city. How many VMs do you think they have to configure to start up another city or even ten? They don’t. It’s a service. It will dynamically grow not on how much capacity there is but on the system’s load.”
For this reason, Richard points out that “you cannot move a legacy application to the cloud and have the benefits of a cloud-native application or cloud-powered applications.” Moreover, he also thinks that replicating the server mentality in the cloud can even be more expensive than on-premise hardware: “You will get charged more on AWS than you would on your servers in your room. Why? Because the servers in the physical room are all shared; The servers in the cloud are all independent of each other.”
The Solution: DevOps
For Richard, making this paradigm shift from server to services and necessity over capacity requires a reinterpretation of the IT and software development teams’ role. That’s why Richard is in favour of DevOps: “IT operations have no place in services, it only has a place in servers because DevOps, which stands for developer operations, is managed by developers and they can manage operations because it’s their application that’s running on services, not servers.” DevOps emphasizes developing and maintaining software through a chain of short feedback loops —starting from the customer and through production, testing—, automation, and collaboration. DevOps achieves this by integrating developers and IT operators to shape IT infrastructure and the application simultaneously.
When it comes to the cloud, DevOps can administer deployment automation tools to ensure continuous delivery and reliability to the production environment, in a model known as Infrastructure as a Service (IaaS). Likewise, the Platform as a Service (PaaS) model provides serverless services that allow developers to work without the constraints of dealing with a server. IaaS and PaaS minimize the workload of operation teams and fit a business model based on scaling and pricing fixed on computing usage.
The Bottom Line
We have learned how cloud-enabled applications differ from on-premise applications, and how to move forward in making the most of our cloud-enabled applications. Still not sure about what you can do with the cloud? Get in touch with us to learn more about the perfect cloud solution for your company.