Understanding cloud computing
Sharing resources through hardwired connections is quickly being replaced with a delivery method that provides virtual infrastructure, services, platforms, and applications on-demand, across networks. This is cloud computing, and here’s what you need to know about it.
Cloud computing is a set of principles and approaches to deliver computing infrastructure, services, platforms, and applications—sourced from clouds—to users on-demand across a network. Clouds are pools of virtual resources (such as raw processing power, storage, or cloud-based applications) orchestrated by management and automation software so they can be accessed by users on-demand through self-service portals supported by automatic scaling and dynamic resource allocation.
Clouds and cloud computing aren't technologies unto themselves. The technologies needed include operating systems, virtualization software, and automation and management tools. Operating systems set up networks and host user interfaces; virtualization abstracts resources and pools them into clouds; automation software allocates these resources; and management tools provision new environments. Some projects, like OpenStack® (the foundation of Red Hat® OpenStack Platform), package most of these technologies into easily deployed systems—a one-stop shop for developing and orchestrating clouds.
How are clouds deployed?
Created from resources not owned by the end users.
Created from resources owned—either physically or contractually—by the end users.
Created from a variety of resources, both private and public.
What services are provided by clouds?
Cloud deployments are made possible through as-a-Service packages—which is a fancy way of referring to a bundle of services provided over a network so you don’t have to provide them locally or through hardwired connections.
IaaS (like Red Hat Cloud Infrastructure) is the foundation of every cloud deployment and incorporates the bare minimum hardware and software needed to deploy a cloud: network, storage, servers, and virtualization. Together, these constitute the infrastructure of cloud computing environments (hence “Infrastructure-as-a-Service”), which are then made available to users as needed. Each of these services can be scaled, provisioned, and metered automatically, while every other part of the IT stack—from the operating system up to applications—must be managed manually by the cloud consumers.
PaaS is a cloud-based platform on which software can be developed and deployed, which means providing all the hardware and software that IaaS takes care of, along with the operating system, middleware, and runtime environment. Containers (like Red Hat OpenShift) are PaaS, which give developers and operators an environment where the infrastructure and platforms supporting the databases and applications are automated and seamlessly integrated.
Deploying containers in clouds is basically deploying PaaS (which provides the language, runtimes, and applications) on IaaS (which provides networks, storage, servers, and virtualization). Individually, they have limitations. IaaS is flexible, but it requires extra configuration when an application is deployed. PaaS can lock down an environment, but that makes it difficult to customize application runtimes. Deploying them together reduces their individual limitations.
Containers provide a few important things: the application, all of it’s dependencies, and the automation necessary to deploy it. Containers can even be packaged by a developer or architect, offering just the right amount of flexibility and portability so a user can move a standard container format from 1 cloud provider to another.
Virtualization helps create clouds, but that doesn’t make it cloud computing. It's easy to confuse the 2, particularly because they both revolve around separating resources from hardware to create a useful environment. Think about it like this:
- Virtualization is a technology that separates functions from hardware
- Cloud computing is more of a solution that relies on that split
The easiest way to describe the difference is from a purely IaaS perspective. At the base of cloud computing is a stable operating system. This is the layer that gives users independence across public, private, and hybrid environments. Assuming intranet access, internet access, or both is already established, virtualization is what creates clouds. Software called a hypervisor sits on top of physical hardware and abstracts the machine's resources. These resources can be raw processing power, storage, or cloud-based applications containing all the runtime code and resources required to deploy it.
If the process stops here, it's not cloud computing—it's just virtualization. Virtual resources need to be allocated into centralized pools before they're called clouds, and those clouds need to be orchestrated by management and automation software before it's considered cloud computing. Clouds deliver the added benefits of self-service access, automated infrastructure scaling, and dynamic resource pools, which most clearly distinguish it from traditional virtualization. Here’s more on the differences between cloud computing and virtualization.
Management software creates the foundation for provisions, deployments, and decommissions, but automation software is what truly makes it cloud-computing. Without automation, provisioning capacity is a manual process, and managing all those pooled resources would be too cumbersome without automation software. That’s why it's seen as a necessary component.
Aside from basic resource allocation, the best automation software takes care of routing and networking, sets up virtual private networks, handles policies and permissions, balances loads, and autoscales. Some solutions (like those that incorporate Red Hat Ansible Automation) can take it 1 step further by automating the entire system—freeing IT departments from spinning up custom deployments and instead giving business units the power to request and deploy their own resources. That's the essence of cloud computing.
While clouds have become popular for their storage, compute, and memory services, they're becoming an integral component of application development. Clouds can react automatically to changes in workload demand, and new applications can be provisioned with less lag and effort than traditional protocols. Cloud computing augments operation teams by creating custom development environments instantly. Workstations, virtual machines, application servers, and database connections can be spun up without a single ticket, helping apps get developed across distributed environments with all the resources, services, and capabilities needed to support them.
Some industries, such as healthcare and financial services, operate under strict privacy, security, and compliance regulations. As a result, they tend to implement private clouds. The issue isn't that public clouds are insecure. Rather, specific requirements for data separation and auditing make it difficult or impossible to implement public clouds because the servers running healthcare apps or the disks storing financial data doesn't belong to the organizations that use them.
There's no universal security statement that can apply to clouds, users, or providers. Some public cloud providers maintain the right to access data hosted on their hardware, while others have more stringent access requirements. At the end of the day, the diversity of your cloud portfolio, the strength of your encryption protocols, and the depth of your disaster recovery policies have the strongest impacts on your cloud security risks.
By getting trained. Red Hat Training helps maximize IT investments by assessing, teaching, and validating the skills and knowledge required to manage and deploy systems in clouds. There are courses and exams for cloud management and developing cloud-native applications, as well as certificates for things like cloud storage.
The manual processes of provisioning VM capacity to users can take a long time, and some of the resources dedicated to that machine may never even be used. To free your IT department from spending all that time spinning up custom deployments, you need to give business units the power to request and deploy their own resources. That's the essence of cloud computing.
Done right, a cloud delivers strategic advantages to organizations by redirecting resources from maintenance to innovation.
- Make applications and data portable
- Help get the most out of existing IT investments and infrastructure through provisioning and automation
- Span physical servers, multiple virtualization platforms, and a variety of clouds running different technology stacks—allowing users to scale on-demand
- Put the customer in charge of their own technology strategy
Because no matter what type of cloud you deploy—public, private, or hybrid—we believe it should be open. Many cloud infrastructures are based on Linux® and other open source software, but it's hard to abstract the varied benefits of different cloud providers when proprietary code inhibits them from interacting with one another.
Effective cloud solutions should connect multicloud environments. Better solutions should also manage those environments. But the best solutions automate the entire system. And cloud automation is something we've prioritized, using the world's most popular open source IT automation technology.
We simply believe the cloud should be open. Period.
We chose Red Hat because we needed to focus on decisioning and advanced analytics. We needed a PaaS layer to do the automated provisioning and management and give us a security infrastructure that we needed. It was a marriage made in heaven for FICO.
Keep learning about the cloud
All the pieces you need to set up a cloud
The ideal platform for your business to build a private cloud or for service providers to construct a public cloud.
A complete, private cloud IaaS solution with seamless management across public and private cloud deployments.
This container app platform/private cloud infrastructure combination helps implement containers across the entire IT stack
Go full DevOps and deploy containers on top of your cloud environment.
An open source virtualization solution supporting apps that aren't quite ready for the cloud.
A management and operations platform that unifies hybrid cloud environments.