Sunday, 5 March 2017
Cloud Workloads Are Here To Stay
The sheer number of benefits that cloud applications can provide for business and IT users is fast disrupting the installed base of legacy applications.
What is different about cloud applications from software applications that existed just a few years ago?
A bank executive recently remarked that on payday, customers now check their bank balances several times every few minutes. Legacy banking applications were never built to meet such workloads whereas cloud native applications are.
In the e-book – ‘Migrating to Cloud-Native Application Architectures’, Mark Andreessen opens by saying, the rise of cloud-native software is eating the world.
Traditional industries that have used decade old, established business models, are being leapfrogged by businesses built on fundamentally simpler to use and easier to manage cloud applications. These include now familiar names like Square, Uber, Netflix, Airbnb and Tesla.
What do these new businesses have in common? Their businesses are built to deliver speed of change. Their applications are always available, 24×7. They are built to scale across the internet. And mobile users are at the centre of their customer experience.
Cloud is a natural evolution of software. Cloud native applications actively use computing, networking, storage resources, on demand, elastically and in a self-service manner. The most fundamental aspect of cloud applications is the number of innovations, iterations, improvements, that they can be taken through in a short span of time. They can deploy multiple versions, faster, cheaper, than traditional applications. All this is meant to take customer experiences to the next level. Cloud based businesses measure the time taken to change a line of code in minutes or seconds.
While cloud native applications can inherently rebuild themselves, multiple times over, they are also more stable, durable, available, scalable and meant to recover from failures. At times of software failure, they can recover without affecting the rest of the application. In legacy terms, this attribute would be called fault tolerant, often in-built into older applications at a significant cost.
There is another significant difference in how capacity of cloud computing workloads are being managed versus legacy workloads. When demand for legacy application workloads went up traditionally, IT managers increased the performance of servers. This led to huge costly gaps between peak and non-peak utilisation.
Today cloud computing workloads are managed by distributing loads horizontally across commodity servers and through virtualised servers in datacentres. IT users no longer need to spend large sums of money to build capacity in performance servers, but can utilise economies of scale from datacentres. And in order to utilise, economies of scale being built in datacentres, software builders have had to change their architecture from vertical into horizontal.
Another drawback of legacy applications that increases workload demands is when they are meant to adapt to multiple mobile device operating systems. This increases latency and the number of hops during responses. On the other hand, cloud native applications use a mobile first development and better manage user requests and responses.
Fundamental parameters that are used to track cloud computing performance include memory workload, CPU workload, I/O workload and database workload.
The adoption of cloud computing technologies and cloud native applications has brought into focus various service consumption models. While cloud architecture advocates can speak of Everything-as-a-Service, hosting service providers primarily focus on Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS). Typically, these services represent layers in a stack but can function independently.
In IaaS, an IT user has control over usage of operating systems, storage, applications and limited control of networking components. In PaaS, an IT user can deploy his application on the cloud platform using the provided programming languages, libraries, services, and tools. In SaaS, an IT user accesses the provided applications through a web browser and has only limited capability to modify configuration settings. A recent arrival is Mobile backend as a Service, where application developers can link to cloud resources through APIs.
From a technology standpoint, the arena is ready to explode and it is up to business owners to take the challenge of transforming their businesses to the next level.