March 19, 2020 By Sai Vennam 7 min read

Public cloud provides developers the ability to provision resources on-demand and only pay for what they use, but what makes up a public cloud?

In this lightboard video, I’m going to provide an overview of public cloud and break down the different compute solutions,  levels of control, and the many capabilities that are available in a public cloud.

Make sure to like and subscribe if you enjoy the video!

Learn more

Video Transcript

What is public cloud?

Public cloud is an incredible resource for developers today. It brings the ability to provision resources on-demand and only pay for what you use. This leads to greater developer efficiency while bringing down overall costs. But, what exactly makes up a public cloud?

Today, we’ll start with an analogy. Say you wanted to bake a pie from scratch—well, how committed are you? Are you going to make your own flour? Are you going to grow your own fruits? Well, in this society, we’ve generally accepted that for certain ingredients, you’ll go to a supermarket.

A public cloud is a supermarket of sorts, it has multiple vendors and multiple solutions, allowing you to pick and choose the right tools and solutions for your tastes.

Different compute solutions available in a public cloud

Now, to start my explanation of public cloud, I could start by talking about things like Infrastructure-as-a-Service or maybe Platform-as-a-Service, or Software-as-a-Service—more naturally known as PaaS, IaaS, and SaaS—but instead, I’m going to focus on the overall control and overhead for the different compute solutions that are available in a public cloud.

So, as a box gets bigger here, there’s more control but that comes with more overhead.

Bare metal

Now let’s start with the biggest box, where we’ve got things like bare metal. Now with this, you’re gonna have the most control, but that also comes with a lot of overhead to actually maintain those instances.

VPC and VMware

Let’s take it a step higher. Here, we’ve got things like VPC and VMware. So, with these solutions, you’re gonna have a little less overhead because there’s automation that allows you to spin up the actual machines.

Kubernetes and OpenShift Container Platform

Going a step higher we’ve got solutions like Kubernetes and OpenShift Container Platform. These will allow you to get kind of higher abstraction over the actual worker nodes—the machines that power your actual cluster are basically going to be managed by the platform, and you can focus on writing containers.

Cloud Foundry and Cloud Functions 

And, going up higher on the list, we get to things like Cloud Foundry as well as Functions, which are gonna allow you to focus, as a developer, entirely on the code and let the platform take care of things like networking and scaling and that kind of thing.

So, we’ve got our set of capabilities for compute, but that’s not the only thing in a public cloud. You’re going to have integrations and services that allow you to start spinning up capabilities that you need.

Sample application architecture in the public cloud

So, today let’s go over a sample application architecture for which we’re going to use the public cloud. Now, let’s say, to start, we have something like a legacy application that relies on VMs or bare metal capabilities.

Backend

So, we’ll say over here that we’ve got VPC and/or bare metal. Now, on top of this, we’re gonna spin up some containers—some machines, rather. Now in those machines let’s say we have our legacy backend application.

So, we’ll scale it out onto three different machines. So there we go, we’ve got our backend pieces. Now that covers our backend compute for our sample application.

Frontend

Now let’s say for our frontend application, we’re taking a model where we have a frontend and a backend for frontend which are based on containers.

So, here it’s a little bit of a different model—the worker nodes are going to be managed for us by the Kubernetes or OpenShift layer. So here, we’ll have the Kubernetes and our OpenShift layer.

Now on top of this, we can start deploying our containers. So, let’s say, like we mentioned, we have that frontend as well as a backend for that frontend application. And for each of those, we want to scale those out, which Kubernetes or OpenShift can handle for us.

There we go, so these are the basics of our application architecture—we’ve got some backend stuff we’ve got some frontend stuff and all of that is kind of running on some of our compute solutions.

Let’s actually start taking advantage of some of the cloud integrations that are possible to build out some of the other requirements we have here.

Storage

First things first, storage. So, our frontend application—let’s say we need something like, I don’t know, a SQL database to actually store things like customer login data. So our applications here are gonna use a SQL datastore… there we go.

Now, for our backend application, let’s say we need something different—not a standard SQL store, but something like cloud object storage.

So here, we’ll sketch out a cloud object store instance, which our backend application will be using. 

DevOps and toolchain capabilities

So, we’ve talked about storage, next let’s talk about DevOps and toolchain capabilities which we’ll also take advantage of our public cloud for.

Now, our code is probably split into two different repositories for this particular application that we’ve got here—our Kubernetes app. We’ll say we’ve got a set of code for the actual containers and applications and a separate set of code for the actual infrastructure, because we want to manage our Infrastructure-as-Code as well.

Now, for this, we want to take advantage of some toolchain capabilities. So for our app, we’ll take advantage of a toolchain which will deploy our containers. Now for our infrastructure, I’m going to take advantage of a similar toolchain, but in this case, we want to use Terraform, which is an open source way of managing your Infrastructure-as-Code to actually manage the infrastructure.

So in this case, this will manage your spinning up the worker nodes as well as the Kubernetes layer. So there we go, we’ve got we’ve talked about so far storage, as well as DevOps from our cloud.

Logging and monitoring

Next, let’s talk about you know having a central logging or monitoring solution for our tools. So we’ve got our backend application here as well as our frontend application, and for both of those, we want to stream to a central logging store.

So, let’s say I’ve got a logging service that I’ve created here, and that’s gonna be our central source of logs for both our application running on Kubernetes as well as our backend application running within VMware or bare metal or VPC. So there we go, we’ve talked about central logging now.

Networking and security

Now the next service that I want to take advantage of is thinking about things like networking and security. So, in this sample architecture, for our backend piece, let’s say we’ve got really private data—we want to make sure that access to that backend piece only happens over private endpoints. And for our frontend piece, we don’t care quite as much we can access over the public endpoint.

So, making a bisection here, we’ll say that this is entirely private—private endpoints only—and on this side, we can access our data over public endpoints. 

Now, this doesn’t mean our data is insecure. We can still use something that allows us to bring our own keys to secure our data with our own kind of certs and keys.

So, both of these environments are going to be completely secured. But, by making this bisection how does our frontend app now start talking to some of those backend capabilities that we’ve got?

So again, we can tap into our cloud and take advantage of something like a VPN gateway. So, here we go, we’ll set up a gateway so that our frontend and backend can start talking to one another.

Now, this is just scratching the surface of the capabilities that are available in a public cloud. We haven’t even begun just talk about some of the artificial intelligence, machine learning, data analytics and insights, and so many other services that are available in a generic public cloud.

More from Cloud

Get ready for change with IBM Cloud Training

2 min read - As generative AI creates new opportunities and transforms cloud operations, it is crucial to learn how to maximize the value of these tools. A recent report from the IBM Institute for Business Value found that 68% of hybrid cloud users already have a formal, organization-wide policy or approach for the use of generative AI. That same report also noted that 58% of global decision makers say that cloud skills remain a considerable challenge. Being proactive in your learning can significantly…

Data center consolidation: Strategy and best practices

7 min read - The modern pace of data creation is staggering. The average organization produces data constantly—perhaps even continuously—and soon it’s investing in servers to provide ample storage for that information. In time, and probably sooner than expected, the organization accrues more data and outgrows that server, so it invests in multiple servers. Or that company could tie into a data center, which is built to accommodate even larger warehouses of information. But the creation of new data never slows for long. And…

Hybrid cloud examples, applications and use cases

7 min read - To keep pace with the dynamic environment of digitally-driven business, organizations continue to embrace hybrid cloud, which combines and unifies public cloud, private cloud and on-premises infrastructure, while providing orchestration, management and application portability across all three. According to the IBM Transformation Index: State of Cloud, a 2022 survey commissioned by IBM and conducted by an independent research firm, more than 77% of business and IT professionals say they have adopted a hybrid cloud approach. By creating an agile, flexible and…

Tokens and login sessions in IBM Cloud

9 min read - IBM Cloud authentication and authorization relies on the industry-standard protocol OAuth 2.0. You can read more about OAuth 2.0 in RFC 6749—The OAuth 2.0 Authorization Framework. Like most adopters of OAuth 2.0, IBM has also extended some of OAuth 2.0 functionality to meet the requirements of IBM Cloud and its customers. Access and refresh tokens As specified in RFC 6749, applications are getting an access token to represent the identity that has been authenticated and its permissions. Additionally, in IBM…

IBM Newsletters

Get our newsletters and topic updates that deliver the latest thought leadership and insights on emerging trends.
Subscribe now More newsletters