Hi everyone, my name is Sai Vennam
and I'm with the IBM Cloud team.
Today let's talk about Cloud Foundry,
an open source Platform-as-a-Service.
Now, Cloud Foundry is a platform in the truest sense of the word,
in that it enables you to focus
on cloud-native application development
and really puts a focus on developer experience.
That's every step of the way from developing the app,
testing it, and moving it all the way into production
and automating all of those flows
to make it really easy for a developer to get started.
Now, there are a lot of technologies out there
for doing cloud-native transformation and modernization,
but let's see where Cloud Foundry fits in with some of those other capabilities.
We've got a few things sketched out here
but we'll get started from the bottom
with bare-bones physical infrastructure.
Now, I'd say that most companies that are using physical right now
are really just kind of getting started
or maybe have legacy applications,
so they're they're looking to move into the cloud.
Next up, we've got VMs.
Now, VMs continue to be very popular.
They're a great way to package up applications,
but with the growth of container technology
companies are starting to see the advantage
and a more agile workflow
by taking advantage of containers
and something like Kubernetes
to manage and orchestrate them.
Now, building on top of that,
here's where Cloud Foundry comes in.
So, Cloud Foundry, as I mentioned,
has a very developer-focused approach.
So, from every step of the way, they focus on the developer experience
and I think one of the biggest detractors,
or most difficult things for a company
to get started with cloud-native,
is changing the culture within their company
from the inside out, from the developer level up
and with Cloud Foundry
your developers can truly focus on what matters -
development
- and they can just assume that the infrastructure works.
As important as it is, at the end of the day
developers don't want to focus on infrastructure,
they just want to expect that things are running smoothly.
And that same kind of ideology
applies to the top of the stack here
with serverless technology,
where developers focus on
writing just functions even less than just applications.
Now, as we go down in the stack
we have control.
So, you get more control when you're working with VMs or Kubernetes
on exactly how your app is deployed.
But what if your developers simply don't care?
What if they have applications that they want to run,
and don't care how the infrastructure looks
and they don't care how it's deployed they just want a running application.
Well, that's where you get the advantages of
taking advantage of something like Cloud Foundry and serverless.
You get ease-of-use as well as speed.
Now, let's actually take this,
now that we have the understanding of where Cloud Foundry fits in,
and say we have a legacy application
and let's build that out
and see how it fits in to broader cloud stack.
So, we'll say over here
that we have a front-end application
and that, in turn, works with a back-end.
Let's say there's a legacy application with
a lot of restrictions on security, networking,
and how it runs and that kind of thing
and that's responsible for communicating with an old-school database.
Now, we want to take this application -
and let's say we want to make it cloud-native,
take advantage of a cloud-based platform.
So, the first thing our developers will do,
without understanding anything about the infrastructure,
they'll start with, let's say, the front-end and modernizing it.
Let's say they want to use something like React,
take advantage of Node.js
to create an all-new application,
taking advantage of that front-end piece,
and we're going to move that into the cloud.
So, taking advantage of simply the development tools
that are available through Node.js and React and those capabilities,
they create a front-end application, say that's version 2.
Now, so far, along that path,
the developers had no reason to have to understand
the underlying infrastructure.
They created that application
and next, let's say, they've used a CLI tool.
So, this is where Cloud Foundry comes in.
They use the Cloud Foundry tool
to deploy that application into the cloud.
Now, this is where the the first core tenet of Cloud Foundry comes in
- and it's the fact that it's a polyglot environment.
This means that you can take applications written in a number of different languages,
running on any platform,
and Cloud Foundry has something called "buildpacks"
that will take them
and automate all of the building and deploying processes.
So, using Cloud Foundry and any language any application,
they can now deploy this into the cloud.
So, let's say that, over here, this is the cloud side.
They've taken Cloud Foundry,
and now they have an application running for that front-end app.
Let's take it a step back
and build out that infrastructure from the ground up
to see exactly what happened to take that application and to get it running.
So, at the bottom, here we have the cloud infrastructure.
Building on top of that, we have the Cloud Foundry technology
that actually is able to take this app and run it as a container
in one of these - say they are VMs.
So, here we have Diego, the Cloud Foundry tech,
as well as Garden,
which is remarkably similar to something like Docker or container runtimes.
It's the container technology that Cloud Foundry used,
long before Docker was popular, back in 2011.
So using these technologies, Cloud Foundry takes this app
and runs it and schedules it within a VM.
So, here we have our, let's call it the C.F.A.R. -
"Cloud Foundry Application Runtime" environment,
that Diego, and Garden, is responsible for scheduling and managing.
So, we've managed to figure out half of the puzzle here.
Let's take it a step further - that back-end app with those networking and security considerations.
Let's say that we care about how it's deployed,
we don't want it to be automatic,
we do care about the networking and storage considerations,
we want to run it in a containerized way,
we don't want to go in there and change any code.
So, we want to use something like Kubernetes.
So, let's say we take this back-end application
and containerize it.
So, now it's running as a container,
maybe in a container image.
So, we want to deploy this application to Kubernetes, right.
So, we'll use a Cloud Foundry (CF) tool,
or rather a CLI tool,
and this time it's going to be Kubectl,
and we want to deploy this into the same cloud.
Now, you might think we're out of luck
because we're taking advantage of CF and Diego and Garden,
but actually there's a new project
that Cloud Foundry released called "Project Eirini"
that enables you to swap out that underlying infrastructure,
the Diego and Garden portion,
and instead take advantage of Kubernetes.
That means that we can continue to use those tools,
like Kubectl and CF, together in the same environment.
Your operations teams would manage this side of the puzzle
to make sure everything works seamlessly,
but your development team has no impact for their CF apps
because they don't really need to care about what's powering it,
and for the apps that need to be run in Kubernetes,
they can continue to use that same architecture.
So, using Kubectl here,
we can take that back-end application
and run it as a container within the same environment.
And so, essentially what we end up with here is
the ability to do not only CF application runtime-based environment
but also Kubernetes together.
And that actually brings me to my second point here -
is the fact that Cloud Foundry is interoperable.
Now, this is very important because, essentially,
the fact that it's interoperable means
although the newest fad and technologies are changing over the years,
growth of things like Docker and Kubernetes,
Cloud Foundry keeps the same familiar developer experience for their users
but, at the same time, due to their open nature and open source,
and the fact that they're keeping up with the latest technologies,
they have support for Kubernetes underneath the covers.
And so, this is very core for enabling our users to
avoid vender lock-in,
to take of the latest and greatest technologies.
And that brings me to my last point, is that Cloud Foundry is open.
It's open source and it has an open governance model.
It's actually the Cloud Foundry (CF) Foundation.
IBM is a core part of it, and we do make contributions to CF
and it's a core part of our cloud strategy as well.
So, we have a lot of contributions that we make to help
make this run smoothly in our cloud as well.
I'd say that's a core part of the open philosophy that powers Cloud Foundry
it's the fact that anyone can make contributions and features
- it's completely open-source.
And the second thing I want to mention on that front
is the fact that there's an open service broker API,
meaning third party services from any kind of contributor
can be listed in in something called a marketplace,
allowing Cloud Foundry users
to very easily integrate with those third party services,
taking advantage of an open service broker API.
So, I'd say these three core tenants, and what we talked about today,
Cloud Foundry is truly one of those
really powerful platforms
enabling you to focus on cloud-native application development
and allows you to avoid things like vendor lock-in
and stay up-to-date with the latest technologies
with things like Project Eirini
allowing you to base all of these familiar applications
on Kubernetes technology.
Thanks for joining me for this quick overview of Cloud Foundry.
As always, you can get started with the free trial on IBM Cloud
and you can find a link for that below.
If you like this video or you want to see more videos like this in the future,
be sure to drop a "like" and subscribe and stay tuned.
Thank you.