In computing, a workload, typically, is any program or application that runs on any computer. A workload can be a simple alarm clock or contact app running on a smartphone, or a complex enterprise application hosted on one or more servers with thousands of client (user) systems connected and interacting with the application servers across a vast network. Today, the terms workload, application, software and program are used interchangeably.
Workload can also refer to the amount of work (or load) that software imposes on the underlying computing resources. Broadly stated, an application's workload is related to the amount of time and computing resources required to perform a specific task or produce an output from inputs provided. A light workload accomplishes its intended tasks or performance goals using relatively little computing resources, such as processors, CPU (central processing unit) clock cycles, storage I/O (input/output) and so on. A heavy workload demands significant amounts of computing resources.
A workload's tasks vary widely depending on the complexity and intended purpose of the application. For example, a web server application might gauge load by the number of webpages the server delivers per second, while other applications might gauge load by the number of transactions accomplished per second with a specific number of concurrent network users. Standardized metrics used to measure and report on an application's performance or load are collectively referred to as benchmarks.
Types of workloads
Workloads are created to perform myriad different tasks in a countless variety of ways, so it is difficult to classify all workloads into a single set of uniform criteria. As one example, workloads may be classified as static or dynamic. A static workload is always on and running, such as an operating system (OS), email system, enterprise resource planning (ERP), customer relationship management (CRM) and many other applications central to a business's operations. A dynamic workload is ephemeral and loads and runs only when needed. Examples include temporary instances spun up to test software or applications that perform end-of-month billing.
As another example, classical (mainframe era) workloads were often categorized as transactional or batch workloads. Transactional workloads exchange and process data on an ongoing basis such as order entry systems or banking/accounting systems and, often, exemplify static workloads. Batch workloads exchange and process data on demand or as needed, such as monthly billing systems, and, typically, represent dynamic workloads. A third traditional workload type, real-time software, emphasizes high-throughput and low-latency performance to operate in sensitive real-world environments such as medical, military and industrial systems.
The dramatic diversification of software development has introduced countless other workload classifications. For example, analytical workloads analyze enormous amounts of data, sometimes from varied and disassociated sources, to find trends, make predictions and drive adjustments to business operations and relationships. This is the underlying notion behind more advanced programming such as big data and machine learning software technologies.
High-performance computing (HPC) workloads, frequently related to analytical workloads, perform significant computational work and, typically, demand a large amount of processor (CPU) and storage resources to accomplish demanding computational tasks within a limited timeframe, even in real time.
Database workloads have evolved as a unique workload type, because almost every enterprise application relies on an underlying database as a dependency or a service within the enterprise infrastructure. Database workloads are extensively tuned and optimized to maximize the search performance for other applications that depend on the database -- if the database performs poorly, that causes a bottleneck that reduces the performance of applications using the database.
The emergence of cloud computing over the last decade has also driven the development of more workload types including software as a service (SaaS), microservices-based applications and serverless computing.
Choosing where to run workloads: Cloud vs. on premises
Workload deployment -- determining where and how the workload runs -- is an essential part of workload management. Today, an enterprise can choose to deploy a workload on premises, as well as to a cloud.
Traditionally, workloads are deployed in the enterprise data center, which contains all of the server, storage, network, services and other infrastructure required to operate the workload. The business owns the data center facility and computing resources and fully controls the provisioning, optimization, and maintenance of those resources. The enterprise establishes policies and practices for the data center and workload deployment in order to meet prevailing business goals and regulatory obligations.
With the rise of the internet, cloud computing is now a viable alternative for many on-premises workload deployments. Public cloud computing is essentially computing as a utility (on-demand), allowing organizations to utilize a provider's computing resources and services to deploy workloads to remote data center facilities in locations around the world, yet pay for only those resources and services that are actually consumed over a given timeframe -- typically, per month. The cloud provider employs complex software-defined technologies to allow users to provision and use its resources and services to architect suitable infrastructures for each workload in the cloud.
The challenge for any business is deciding just where to deploy a given workload. Today, most general-purpose workloads can operate successfully in the public cloud, and, increasingly, applications are designed and developed to run natively and solely in a public cloud.
Technologically, the most demanding workloads may struggle in the public cloud. Some workloads require high-performance network storage or depend on internet throughput. For example, database clusters that need high throughput and low latency may be unsuited to the cloud -- and the cloud provider may offer high-performance database services as an alternative. Applications that rely on low latency or are not designed for distributed computing infrastructures are usually kept on premises.
Technical issues aside, a business may decide to keep workloads on premises for business continuance or regulatory reasons. Cloud clients have little actual insight into the underlying hardware and other infrastructure that hosts the workloads and data. That can be problematic for businesses obligated to meet data security and other regulatory requirements such as clear auditing and proof of data residency. Keeping those sensitive workloads in the local data center allows the business to control its own infrastructure and implement the necessary auditing and controls.
Cloud providers are also independent businesses that serve their own business interests and may not be able to meet an enterprise's specific uptime or resilience expectations for a workload. Outages happen and may last for hours -- even days -- adversely affecting client businesses and their customer base. Consequently, organizations often opt to keep critical workloads in the local data center where dedicated IT staff can maintain them.
Some organizations implement a hybrid cloud strategy that mixes on-premises, private cloud and public cloud services. This provides flexibility to run workloads and manage data where it makes the most sense, for reasons ranging from costs to security to governance and compliance. This presents tradeoffs -- for example, an organization may keep sensitive data and workloads in its own data center to preserve more direct control over them, but it also takes on more security responsibilities for them.
Benefits and drawbacks of running cloud workloads
Businesses deploy workloads to the public cloud to utilize an array of potential benefits that include:
- Cost management. Businesses pay for public cloud resources and services on demand or as consumed and are billed on a monthly basis. This cost model allows businesses to shed many capital expenses involved in building and maintaining a local data center.
- Scalability. Public cloud providers support a massive number of resources. Users can easily scale up and scale down workloads as needed to handle almost any demand.
- Performance. Businesses can deploy workloads to one or more public cloud global regions to optimize workload performance (lower latency) for important customer areas that might be too remote for an on-premises workload.
- Data residency. Businesses may be subject to varied data protection and data residency regulations in different countries around the world. Using a public cloud with a global data center footprint can allow a business to maintain a workload and its data within the geopolitical area subject to such regulations.
There are also serious risks involved with public cloud computing that every cloud user should consider:
- Visibility. Users can see the resources and services that are used, but they generally lack visibility into, much less control of, the cloud provider's underlying multi-tenant infrastructure. This makes it impossible for a business to validate or audit regulatory demands for workloads in the public cloud.
- Outages. Outages sometimes occur in the public cloud, and users are completely dependent upon the cloud provider to troubleshoot and remediate outages within the provider's service-level agreement (SLA). Prolonged outages adversely impact businesses that use the cloud, as well as business customers that depend on workloads deployed in the cloud.
- Partnerships. Ultimately, a public cloud is a business partner, and partnerships change over time. New services appear, while other services are deprecated. The provider may merge or be acquired, causing disruption to the cloud and support. Cloud users always need a workload failover plan to handle cloud disruptions.
Benefits and drawbacks of running on-premises workloads
Many businesses continue to build and maintain more traditional (albeit, scaled back) on-premises data centers, which can provide business benefits including:
- Visibility and compliance. A business has complete control and visibility into the data center infrastructure including all server, storage, network and other hardware, as well as OSes and other elements of the software stack. On-premises data centers are the preferred deployment target for business-critical or demanding workloads that may be unsuitable for deployment in the public cloud, especially if they involve regulatory compliance or high-security issues.
- Infrastructure control. The business has access to all log files and can troubleshoot, correct and audit all activity within the on-premises data center. Businesses can take proactive steps to protect the on-premises environment, provide adequate staffing to address issues in a timely manner and maintain the established SLAs to the organization's users.
However, on-premises data centers are also subject to important drawbacks that can affect business operations:
- Costs. Building a traditional data center can be a significant undertaking, especially to provide high levels of resilience to meet the needs of workloads that are critical to the business. There are high capital expenses for construction and outfitting, as well as ongoing operational expenses that include maintenance and utilities that continue regardless of workload utilization.
- Protection. The business is also completely responsible for all protection such as backups, snapshots, the implementation of high-availability (HA) infrastructures and so on. Protection is vital for business continuance and is often tied to regulatory demands. Securing data and keeping critical workloads running in-house requires clear policies, suitable tools and staff expertise.
Workload management tools
Software tools are vital elements of workload management. Tools can report on the availability, health and performance of important workloads within local or cloud environments. Tools can, typically, track the resources and services available within the infrastructure and report on the behaviors of desired applications. Administrators can use tools to quickly determine whether an application is online, the resources that it consumes and metrics related to its activity (such as transactions or concurrent users). Some tools can support both on-premises workloads and workloads in major public clouds in the same pane of glass.
There are many workload management tools available. Often, these fall under the categories of application performance monitoring or application performance management. Some examples include:
- CA Application Performance Management
- Datadog APM
- Dynatrace Application Performance Management
- ManageEngine Applications Manager
- New Relic APM
- SolarWinds Server and Application Monitor
- Splunk IT Service Intelligence
- WhatsUp Gold with Application Monitoring Add-on
Cloud providers generally offer dedicated tools designed to report on the resources and services consumed by a business, as well as the health and performance of applications running in the cloud environment. Examples include the AWS Management Console and Microsoft Azure portal.