Rob Fullerton has been with CBC/Radio-Canada for ten years within the online/digital group. His roles have included Database Administrator, System Administrator, Development Team Lead, Syndication Manager, Project Manager, and his current role of Platform Product Manager. His team manages the platform of tools used to publish and distribute content to the audience via CBC.ca.
The concept of "Clouds" with respect to both corporate and personal computing is currently one of the hottest topics of discussion in technological circles. Like most hot topics, its label is often used but rarely understood. The purpose of this article is to bring some clarity to what the “Cloud” can mean (i.e., Cloud computing, Cloud services, etc.), as well as why it is important to understand the subject. It is not the intention of this article to represent Cloud services as being good or bad in general or for CBC/Radio-Canada, or to make any specific recommendations.
What Does “Cloud” Mean?
Like most general information, a basic definition of Cloud (computing) can be found on Wikipedia :
"Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a utility (like the electricity grid) over a network (typically the Internet)."
This definition is necessarily vague, as there are many divergent definitions of what Cloud computing specifically means, and what are its benefits and drawbacks.
This article will use the term "Cloud computing" to refer specifically to technical implementations, and "Cloud services" to be both the technical implementations and their related support activities.
As a first step in making sense of this, we will take a quick look at how computing has evolved over time. The mainframe systems of decades past were essentially large, central computing systems accessed by remote terminals over a network of some kind. Decades ago, this was a necessary configuration for a simple reason: computing was horrendously expensive and the physical requirements of computers were massive. Moreover, the type of data being managed through terminals was generally text-based, which was feasible with the networking capabilities of the time. Thus, it made sense to centralise the expensive bits of the system (CPUs, RAM, storage, HVAC, maintenance personnel) in one location and keep terminals very lightweight. The other huge advantage of this is that the computing resources were shared among many users, meaning that they were less likely to be idle at any given time.
Over time, computing power became continuously and exponentially cheaper, as well as more accessible. At the same time, end-user requirements also became exponentially more complex and demanding. Furthermore, the type of data being worked with moved from text-based to binary (application data, audio, video, etc.), which exceeded the feasible capacity of networks. These trends conspired to make it more economical to place more computing resources on the end-user’s desk, replacing the "thin-client" terminal with a "thick-client" capable of functions that were previously only within the domain of more powerful central computing systems.
Over the past ten years or so, the aforementioned trend has been reversing for a few reasons. Firstly, the rise of the Internet as a ubiquitous platform together with browser-based information access (a thin-client system by definition) have brought the idea of remotely accessing data and functions to the mainstream. We will discuss several examples later on, but Web-based email is a good one for now. The other primary driver, of course, is cost. Whereas in the heyday of mainframe systems (still used in niche markets today) computing technology was expensive, computing management is expensive now.
Having thick clients scattered all over a user group (be it internal to a business or a public audience) significantly complicates support. Compared to centralised systems, configurations tend to diverge, which makes troubleshooting very difficult, and the ability to physically interact with systems in need of support is more difficult and, in some cases, impossible. The rise of new kinds of mobile clients (smart phones, tablets, etc.) is massively increasing support cost and complexity.
Simultaneously, technology has evolved to the point where computing resources (processing, networking, storage, applications, etc.) can be allocated over a network to a user or company as needed, virtually in real-time. This has given rise to the model of computing services being available as a commodity . Common analogies are drawn between this model and those of utility services, which manage the fractional demands of customers for a pool of physical resources such as electricity or gas, as the "load balancing" philosophy is similar. The concept of commodity computing services will be examined in detail later in this article.
Categories of Cloud Services
As also described on the main Wikipedia page, there are a few different paradigms within which Cloud computing can be categorised. The usefulness of each one depends on the context in which it is employed.
In this model, types of Cloud services are categorised based on which tiers of technology are managed by "someone else". The service provider may be another company, a group within the same company, or both (see the Deployment Paradigm section below). To more easily understand what this means, take a look at Figure 1 .
The following is a brief explanation of what each element in the stack is:
- Applications: built on the platforms described below, they use and/or produce data for some useful purpose. This can be anything from the GroupWise email client to database server software, Microsoft Word, or air traffic control software.
- Data: the pieces of information that applications use (i.e., documents, audio, video, database tables, emails, log files, etc.).
- Runtime (environment): another level of software platform that enables the creation and execution of standards-based applications (e.g., Sun Java and Microsoft .NET.).
- Middleware: software used to broker communication between other forms of software. A common example is a database connector that allows applications to transparently connect to any database[i].
- Operating System (O/S): a software platform used to support middleware, runtime, and applications (e.g., MS-Windows, Unix, iOS).
- Virtualisation: hardware and software that allows dynamic allocation of servers, storage, and networking.
- Servers: the actual computing hardware
- Storage: where data is actually stored (e.g., arrays of hard drives).
- Networking: transmission devices (cables or transmitters/receivers) and related routing equipment that enable data transfer between computers.
It is important to note that the divisions between elements of the software stack depicted above are, in some cases, open to interpretation. Various technologies bridge several levels. The division between Cloud service offerings can be similarly blurred, as many providers offer ranges of services that do not align with the tiers defined above. However, it is a sufficient model for the purposes of our explanation.
Infrastructure as a Service (IaaS) is a service offering geared towards those who have knowledge of how to configure the software portion of the technology stack, but do not want to manage the hardware. If purchased from an external supplier, this type of service is usually billed based on usage (e.g., based on processing cycles, hard drive space consumed, network capacity used, etc.).
This model is attractive for those concerned with the capital expense of hardware procurement, or the operational expense (including staff) required to maintain a physical installation. Depending on the service and pricing, it can also mean a significantly more sophisticated architecture than an individual or company could achieve on their own in terms of security, redundancy, and the like. Lastly, there are claims that this is an environmentally friendly option, as it represents the ability to decommission under-used data centres. This claim has not yet been proven, as it depends on tangential information such as how the electricity was generated to power the IaaS provider's installation, the extent to which it is efficiently implemented, etc.
Cons with IaaS mostly pertain to integration and comfort level. IaaS suppliers generally retain the right to allocate resources based on what makes sense for their own load balancing. This means that a client will not necessarily know where their data and applications are physically located (in some cases, even the country they exist in might remain unknown). IaaS arrangements can also require more complex processes for accessing software and data than doing so in a local environment under the client's full control.
Platform as a Service (PaaS) is the next level of Cloud services offering. As is implied by the image above, it is incremental to IaaS, having all the features of IaaS and some additional ones. In some cases, PaaS is billed exactly as IaaS plus additional fees for the PaaS-specific services. In other cases, the fees are bundled so the IaaS fees are "hidden".
The benefits of PaaS arrangements encompass all of those listed above for IaaS, together with the fact that operating system and software platform maintenance are reduced or eliminated. This includes such things as O/S patching, security (hardening), some performance tuning, etc. Some of these tasks require specialised knowledge, some are very mechanical, and some are both. For many companies, it makes sense to procure these services rather than maintain staff to supply them.
A downside of PaaS is that clients may need to evolve at the PaaS supplier's pace in case the platform changes (i.e., the client may not be able to wholly dictate the configuration/patching of the O/S and software platform tiers). At least as significantly, there are still no defined standards between PaaS suppliers, meaning that applications and data configured for one PaaS provider may not be easily transferred to another PaaS supplier.
By far the most diverse tier of cloud service categories is Software as a Service (SaaS). In this case, the supplier maintains the entire technology stack, including applications as well as data storage and retrieval. Access is frequently accomplished via a Web browser, but it may also be done via a "thin" proprietary application. Billing for SaaS may involve the items mentioned above for the other categories, and it also usually requires software licensing fees. In some cases, however, SaaS services are offered for free (usually ad-supported).
While there may be some client-specific configuration required, the obvious benefit of SaaS is that the client can focus on using applications, instead of maintaining them (or their underlying technologies). For those clients who lack software engineering and development resources, SaaS providers can furnish access to previously inaccessible markets. Because SaaS providers are generally more focussed on product development, they can generally react to market changes faster. Moreover, given that access is through a thin client, those using SaaS applications will always be accessing the most up-to-date version.
In addition to the cons noted above for IaaS and PaaS, the cons of SaaS primarily relate to loss of control. This loss of control occurs primarily over the product management of applications since, to a large extent, SaaS clients are at the mercy of SaaS providers in terms of feature releases and product strategy in general. Furthermore, parts of the SaaS vendor space are relatively volatile, with providers starting up (and winding down) frequently and, in other cases, being purchased by larger companies with their own strategic goals.
There are many thousands of SaaS providers in the online market today, but some well-known ones include:
In addition, companies like Amazon Web Services (AWS) offer SaaS instances of corporate applications by Oracle, Microsoft, SAP, and others.
The other common way of describing Cloud computing is according to its deployment architecture. This makes sense, as the architecture contributes to many aspects of the system including service agreements, cost and, potentially, economy of scale, security requirements, and the like.
A public Cloud is one that exists entirely remotely and is accessed over the Internet. The resources of a public Cloud are available and shared publically, although fees may apply for services. Google’s SaaS offerings are a good example of public Cloud services. The Service Level Agreement (SLA) for public Cloud services is also shared, although standard tiers may be offered.
Private Clouds are implemented and maintained for a single client organisation. They may physically exist anywhere (within a company’s private network or on the public Internet), but access to resources is restricted. Because this is the case, security can be significantly tighter than with a public Cloud, and the service can be tailored to the needs of the specific client. In some cases, providers of public Cloud services offer private tiers, which means that a portion of their Cloud is separated out and reserved for the sole use of an individual consumer.
Some other models exist that share aspects of both private and public Clouds. For example, groups of consumers with similar technical needs may procure or construct a shared or “community” Cloud, thus realising the benefits of pooled resources, all while taking advantage of a more secure and configurable configuration than what is allowed by public Cloud providers. For more information on these variations, see the NIST definition of Cloud Computing.
CBC/Radio-Canada & Cloud Services
CBC/Radio-Canada has implemented several systems that could be considered Cloud-based. Some are internal, with the goal of centralising support, and some are more formal external Cloud arrangements with online service providers.
CBC/Radio-Canada’s recently rolled-out Next Generation Converged Network is a major investment in private Cloud computing. It is an extremely robust network connecting CBC/Radio-Canada’s various centres with the purpose of quickly and reliably transmitting all types of digital data, including uncompressed audio and video when necessary. Furthermore, data transmission can be prioritised based on business strategy (e.g., whether the data is broadcast-critical or not). This technology is the foundation for some of those mentioned below, and will serve CBC/Radio-Canada in this capacity well into the future.
Citrix is a system now widely used for accessing various broadcast applications remotely via a thin client. These include ScheduAll (Schedulink), On Air, and iNews. The CBC/Radio-Canada user base for Citrix is over two thousand-strong and growing.
Social Media & Digital Distribution
Cloud services are relied on heavily in the online space. This is largely to allow rapid adaptation to changes in the market. An example of this can be seen in the various social media vendors with which CBC/Radio-Canada engages. These include Demand Media , FileMobile, Transcontinental , and several other SaaS providers that enable CBC/Radio-Canada’s social media platform. Other providers such as Triton Digital and Akamai are used in more of an IaaS capacity for scaled delivery of digital web, audio, and video content to the audience.
The business pressures described at the beginning of this article do not show any sign of waning. Computing technology continues to remain relatively inexpensive, while computing management continues to become more complex and, consequently, expensive. In response to these trends, development of technology (and related workflows and standards) to support Cloud services can be expected to continue and accelerate.
There is every reason to believe that Cloud services will be an increasingly attractive business and technology strategy. The choice of the model to use (IaaS, PaaS, SaaS, public/private) will continue to be a decision made on a case-by-case basis depending on the tolerance for risk and cost of a given initiative.
With the implementation of the NGCN, the current private Cloud initiatives being undertaken in the broadcast space, and the heavy dependence on SaaS relationships for presenting online and mobile experiences, CBC/Radio-Canada is well positioned to continue making good decisions when it comes to Cloud services.