The web has penetrated virtually every corner of our lives, becoming the ubiquitous platform for content, commerce and community. With cheap bandwidth at our disposal and smart mobile devices as our newest appendage, we're more connected and engaged than ever before.
For users, this means on-demand, anywhere access to content and services, both serious and frivolous. For providers of these services, it means substantial changes in the nature of user demand, which has implications for how we design and deliver applications and services.
The new shape of user demand
There was a time when you could generally predict and plan for user demand based on historical patterns, detailed forecasts and a reliable understanding of your user base.
But that's no longer the case as user engagement patterns change in step with the social and mobile web, which dramatically increases both the volume and variability of demand.
Today, a web-facing application or service has the potential to catch fire based on the network effects of connected communities. Games, streaming media, commerce apps and freemium product features are all subject to this new dynamic. It means that, at any given moment, forces you cannot control or predict determine the resource demands placed upon your services.
An irresistible force meets an immovable object
Many companies are now realizing that their IT architectures—both applications and infrastructure—are designed for a more static and predictable time. It reflects a paradox similar to what we see in nature when the punishing forces of the sea meet the blunt surface of the coastline: An irresistible force meets an immovable object—and the force always wins.
Similarly, we're seeing unpredictable demand bearing down on applications that weren't designed to handle the volume and variability of the load. This drives us to make one of two bad choices: We overprovision to meet a hypothetical high-water mark that may or may not materialize or we under-provision and face the consequences of run-time performance and availability issues.
Very rarely do we get it right, which is at the expense of service levels and cost. When we underestimate demand, end-user performance and availability suffers. When we overestimate demand, we find ourselves saddled with underutilized infrastructure and unnecessary costs.
New applications, new demand
When interactive applications meet the social web, demand patterns become organic and unpredictable, driven by collaboration and sharing across networked communities. The social communities that enable this type of viral demand are well known today—Facebook, Twitter and YouTube are perhaps the most notable examples. But what about the applications? What types of applications reflect these demand patterns and are thus subject to new "elastic" architectures?
Social gaming is perhaps the most notable example of interactive entertainment on the web today, representing over a quarter billion users on Facebook alone. Often referred to as MMOG—massive mutual online gaming—these applications are the classic definition of viral, combining the motivation of game-based incentive system with the power of network effects. The result is often exponential—and unpredictable—growth in user demand.
But beyond gaming, virtually every major online and offline marketing campaign has web, social and mobile components as an integrated mix of promotions and value-added content to reinforce brand and message.
NASCAR, for example, allows fans to follow races online with dashboards for real-time instrument feeds, watching the vital statistics from your favorite driver's racecar. On race day, demand is extraordinarily high, falling to zero as the race ends, and spiking again with the next race in the series. This dictates a need for dynamic provisioning and de-provisioning of resources to adapt to changing demand patterns.
Video is the killer app on the web today. From blockbuster movies, television broadcasts and marketing content to homemade music videos and silly pet tricks, video accounts for up to 50% of the Internet bandwidth consumed in the United States on a given day. As a bandwidth-intensive service subject to social sharing, video applications experience heavy loads and variable demand patterns that make dynamic resource provisioning a critical part of their architecture.
Communication and collaboration
VoIP and other communication and collaboration services are both bandwidth-intensive and driven by powerful network effects that ignite exponential growth in user demand. But it's more than voice communications. The social web has enabled dozens of new services for creating, curating and sharing content across communities of interest and communities of practice. Such content-intensive, connected applications dictate new requirements for dynamic scalability.
Freemium product features
We're all familiar with the basic principles of economics, which contend that demand falls as price rises. It turns out that, on the web, the mere existence of a price is often cold water to the fire of viral demand. This is why many companies turn to "freemium" strategies that seed the market with no-cost entry-level offerings, which have the potential to drive viral adoption. Because of the virality of these offerings, they must be architected to adapt to dynamic demand patterns.
For many companies, online commerce is now the dominant revenue contributor. And when the website rings the cash register, it's crucial that it's designed to scale. This is particularly true during promotional campaigns and holiday rushes, when demand tends to peak. It's also true for next-generation social and mobile commerce applications where companies deliver targeted offers to networked communities. In any of these circumstances, revenue is on the line, which makes scalable, performant and resilient services far more than just an IT requirement.
Why dynamic scalability means business
In the age of the social and mobile web, scalability is no longer just a technical requirement—it's a business model enabler. Today's clicks- and hits-driven services fundamentally depend on the ability to scale and descale in step with changing user demand. That's why architectures that enable this dynamic scalability have become core to business strategy.
Why? Because, while the context for customer engagement may have shifted to the web, the basic requirements for this engagement haven't changed at all. Customers expect zero-latency performance and responsiveness and seamless brand experiences across applications, devices and channels. This means that spikes in demand are no excuse for services that fail to perform.
It's also worth mentioning that services that enable online transactions depend upon dynamic scalability to ensure the continued functioning of commercial operations when demand spikes. As an IT organization, there's perhaps nothing more painful then facing the reality that a technical scalability issue stood in the way of revenue. Now, that's a tough conversation to have!
Key enablers of dynamic scalability
Clearly, cloud is now the prevailing architecture for enabling the sort of dynamic scalability many applications and services require. While a comprehensive discussion about cloud alternatives is beyond the scope of this paper, it's important to understand the general options available today.
In general, cloud services are delivered across three layers of the IT stack:
- Infrastructure as a service (IaaS), which includes compute, network and storage;
- Platform as a service (PaaS), which includes operating systems and middleware; and,
- Software as a service (SaaS), which includes functional end-user applications.
Each of these services can be delivered in one of three modalities:
- Public cloud—are hosted by a third-party provider who delivers services against an SLA;
- Private clouds—are deployed behind the firewall utilizing your own corporate resources; and,
- Hybrid clouds—are a blended combination of private and public clouds that enable organizations to move between these environments as circumstances dictate.
For many organizations, the ultimate goal is to achieve a hybrid cloud that enables workloads to move seamlessly between these environments based on optimizations for price, policy and performance. But cloud is a journey and an evolution and few organizations dive headlong into a hybrid cloud deployment, opting instead for private or public clouds as the starting point.
For the largest companies, this starting point is often behind the firewall, beginning with IaaS.
Building your own scalable private/hybrid cloud infrastructure
The journey to cloud is slightly different for every organization, but it follows a consistent series of investments that include:
Infrastructure as a service (IaaS)—which provides the automation to transform static hardware into dynamic, adaptive infrastructure for dynamically provisioning and de-provisioning compute, network, security and storage resources on demand. This ensures that, when user demand for an application or service ebbs and flows, the appropriate resources are made available. As the foundation for your cloud, the IaaS layer must be well aligned to your longer-term hybrid vision. Achieving hybrid cloud requires compatibility between public and private environments, making this a critical early design decision.
Governance—allows IT to set and enforce policies and workflows for fast, consistent and compliant provision processes. These policies often include approval steps, usage quotas, service level agreements, pricing and internal accounting procedures to ensure the chargeback or showback that helps to throttle demand. Importantly, these policies should be tied into automation to ensure that key decision points result in automated actions that allow infrastructure to automatically scale with changes in application demand.
Environment management—applications run on operating system and middleware platforms, not raw infrastructure. Therefore, it's important to have automation for rapidly provisioning these environments on top of your cloud infrastructure. This includes templates that describe the content of these environments, version control for maintaining the lifecycle of these templates and the ability to generate images from these templates for rapidly provisioning and configuring environments and making necessary adjustments at run time.
Integration with canonical repositories—which provides the automation back into the development and test lifecycle for continuous deployment and change of application and middleware. Think of this as your automated supply chain where integration to source control management systems (SCCM), build automation or continuous integration tools is your connection back to the sources of record. When changes are made, they can be seamlessly propagated through the cycle, enabling the speed and agility of continuous delivery.
A "pre-flight" checklist for dynamic scalability
No important mission begins without a pre-flight inspection that ensures a thorough thought process before resources are put at risk. As you set out on your cloud journey, be sure you've considered these critical points to maximize the scalability of your applications and services:
- Hybrid cloud infrastructure—have you selected an IaaS platform that aligns to your hybrid future? Is it compatible across APIs and features to enable application portability?
- Stateless services—are your services loosely coupled without long-lasting connections between tiers that bind and constrain your architecture, making it hard to scale and change?
- Multi-tier caching—have you designed in multiple levels of data and content caching to improve the load-time and performance of data-centric applications?
- Scale-out licensing—have you designed in liberal use of open source software and commercial software with flexible, consumption-based licensing provisions?
- Automated instances—have you automated the creation, configuration, deployment and change of infrastructure, platform and service topologies for speed and consistency?
Conclusion: Is your business built for scale?
Too often, cloud architecture and strategy are considered the exclusive province of IT. The reality is that, despite the occasional wonkiness of these topics, they are critical enablers of business strategy and have relevance to the formation of new business and customer engagement models.
Dynamic infrastructure is important because it is the underpinning for new business models that drive customer engagement and revenue across web, social and mobile channels. It's important because this type of engagement yields unpredictable demand patterns, which require applications and services built for scale.
As companies begin to experiment with these next-generation applications, they need to recognize that winning on the web isn't only about developing a killer application; it's also about designing a killer infrastructure, which adapts to the new shape of end-user demand.