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. Cloud computing can free IT departments from spending time spinning up custom deployments by giving business units the power to request and deploy their own resources.
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 its 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
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 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.
There's no universal security statement that can apply to clouds, users, or providers, but cloud security—for the most part—is IT security. You're responsible for securing your own space within whatever cloud deployment you use (public, private, or hybrid), and 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. Beyond that, there are a few extra security challenges compared to on-premise IT architectures—like dissolving perimeters, software-defined everything, and a more sophisticated threat landscape—but clouds feel a lot more secure once you understand those differences.
Cloud management is a concept that means a user has control over everything that operates in a cloud: the data, applications, and services. The management tools themselves, which generally run as platforms, are the software used to manage those data, applications, and services. These tools are used to ensure that the cloud-computing resources are running efficiently and securely, while accessible to everyone (or everything) that needs them. Basically, cloud management platforms exist so that anything running in a cloud—public, private, or hybrid—actually works, and works well.
Multicloud is a cloud approach made up of more than 1 cloud service, from more than 1 cloud vendor—public or private. Multiclouds differ from hybrid clouds, but they're not mutually exclusive: You can have both, simultaneously.
Multiclouds are becoming more common across enterprises that need to improve security and performance through an expanded portfolio of environments. You might have multiple clouds because there's not a single cloud that provides everything you need, to maintain high availability to users thousands of miles away, adhere to data sovereignty laws, handle shadow IT, or protect your environments from outages.
Because no matter what type of cloud you deploy—public, private, or hybrid—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, along with hands-on training from expert instructors.
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
Some of the ways you can 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