Cloud Foundry Certified Developer

Course

Intro Video

Photo of Travis Thomsen

Travis Thomsen

Course Development Director in Content

I have over 17 years of experience in all phases of the software development life cycle, which includes software analysis, design, development, testing, implementation, debugging, maintenance and documentation. I am passionate about learning new technologies, methodologies, languages and automation.

Length

37:35:53

Difficulty

Advanced

Course Details

This course is designed for those who are seeking a career in DevOps. You will learn the ins and outs of Cloud Foundry. This will include the architecture and various components of Cloud Foundry, how to tailor your apps to ensure that they will run correctly when you execute a cf push, and how to write a manifest that will make your deploy process repeatable and predictable. You will also learn how to perform blue-green deployments of your apps already running in Cloud Foundry. Last but not least, this course will prepare you for taking the Cloud Foundry Certified Developer exam.

Syllabus

Introduction

Introduction

About the Author

00:00:35

Lesson Description:

Before we get started on the course, let's learn a little about who is teaching it!

About the Course

00:02:55

Lesson Description:

This lesson will talk about the topics that you will learn to pass the Cloud Foundry Certified Developer exam. We will also go over the prerequisites you will need to know in order to be successful at completing this course.

So What’s The Problem?

Getting code to production is too slow!

00:06:07

Lesson Description:

Why is it so slow to release code to production? Organizations face many challenges when it comes to releasing code to production. In this lesson, we will look at some of the common issues that organizations and development team face when releasing code to production.

Waterfall

00:03:36

Lesson Description:

Waterfall is a widely used software development model. Is it really the best tool for the job? In this lesson, we will discuss some of the issues software developers face when using Waterfall to manage projects.

Code Deployment

00:04:00

Lesson Description:

Deploying code smoothly to production is an essential function for any development team. However, it rarely goes smoothly. In this lesson, we will discuss some of the issues that are encounter when deploying code.

Operations vs Development vs QA

00:03:45

Lesson Description:

At times you can say the relationship between operations and development is shaky at best. Likewise, QA always gets blamed when bugs slip through the cracks. Why are these teams constantly at odds? In this lesson, we will discuss the issues with departments being siloed.

Monolithic Applications

00:03:01

Lesson Description:

Ever have a single bug stop a month's worth of changes going into production? It happens more often than you think. In this lesson, we will discuss the issues with monolithic applications and how releasing them to production can take a lot of effort.

QUIZ: Cloud Foundry, Understanding the Problems

00:15:00

So What’s The Solution?

Agile

00:04:40

Lesson Description:

Individuals and Interactions more than processes and tools; working Software more than comprehensive documentation; customer Collaboration more than contract negotiation; responding to Change more than following a plan. In this lesson, we will discuss the agile software development model and how it can be a good alternative to Waterfall.

CI/CD

00:04:15

Lesson Description:

Want to release software faster and with fewer bugs to production? Well CI/CD may be for you. In this lesson, we are going to learn how Continuous Integration and Continuous Delivery can help us release code faster.

DevOps

00:05:31

Lesson Description:

Does your organization have silos that need to be broken down? Want operations, development, and QA to work with one another rather than against each other? In this lesson, we will take a look at the way DevOps can transform the culture of an organization by breaking down silos. Which will help get the code to production faster?

Microservices

00:01:51

Lesson Description:

What is a microservice and how can they replace monolith applications? In this lesson, we will talk about using microservices to build applications.

QUIZ: Cloud Foundry, Understanding the Solution

00:15:00

What is Infrastructure?

Traditional Infrastructure

00:02:46

Lesson Description:

From datacenters full of racks of servers to hypervisors packed with virtual servers; traditional infrastructure is how IT gets the job done. In this lesson, we will discuss traditional infrastructure.

What is IaaS?

00:01:57

Lesson Description:

No data center, no problem! IaaS is a more cost-effective way for smaller businesses to maintain their infrastructure without trying to manage a full-blown data center. In this lesson, we will talk about Infrastructure as a Service.

What is PaaS?

00:02:13

Lesson Description:

Why worry about the operating system and middleware when you can focus on your applications instead? In this lesson, we will talk about Platform as a Service and the benefits it offers development teams.

QUIZ: Cloud Foundry, Understanding the Types of Infrastructure

00:15:00

Pivotal Cloud Foundry

Pivotal Cloud Foundry Overview

00:02:27

Lesson Description:

In this lesson, we will talk about the origins of Pivotal Cloud Foundry as well as what it is. You will learn about the supported languages, which platforms you can run Cloud Foundry on, as well as the various providers that have a Cloud Foundry service offering.

Pivotal Cloud Foundry Web Interface

00:04:47

Lesson Description:

If you are unfamiliar with Pivotal Cloud Foundry, then this is a good place to start. In this lesson, we will take a tour of Pivotal Cloud Foundry's web interface. You will learn how to find your applications and where to find services as well as billing information.

Pivotal Cloud Foundry Marketplace

00:01:28

Lesson Description:

Navigate the various backing services Cloud Foundry has to offer. In this lesson, we will explore the Pivotal Cloud Foundry Marketplace.

QUIZ: Using Pivotal Cloud Foundry

00:15:00

Cloud Foundry Basics

What is Cloud Foundry

What is Cloud Foundry?

00:01:58

Lesson Description:

In this lesson, you will learn what Cloud Foundry is, its origins, some of the supported languages, what IaaS platform you can run it on, as well as some of the certified providers that have Cloud Foundry offerings.

Cloud Foundry Components and Architecture

00:01:46

Lesson Description:

In this lesson, we will go over the component and architecture diagrams. You will see a visual representation of the various components of Cloud Foundry such as Diego, Loggregator, and the CCAPI.

Diego

00:04:41

Lesson Description:

In this lesson, you will learn about Diego and components: Diego Cell, Garden, Cell Rep, Diego Brain, and Metron. You will also be introduced to the concepts of Long-Running Processes which are how your apps will run in the Cloud Foundry.

Loggregator

00:02:25

Lesson Description:

In this lesson, we will cover Loggregator and its components: Doppler, Traffic Controller, Firehose, and Nozzles. You will also learn how logs are handled in Cloud Foundry and how they can be accessed.

Cloud Controller

00:04:03

Lesson Description:

This lesson goes over the various components of the Cloud Controller and the role it plays in Cloud Foundry. You will learn how CF handles and stores binary files such as buildpack and cached resources.

Routing

00:01:32

Lesson Description:

In this lesson, we will cover the routing tier of Cloud Foundry. You will learn how incoming traffic flows through Gorouter to Diego and ultimately to your application.

Buildpacks, Droplets and Container Images

00:03:07

Lesson Description:

In this lesson, you will be introduced to buildpacks, droplets, and container images. You will learn the basics of what buildpacks do and how it plays a role in the construction of droplets. You will also learn how container images can be used in Cloud Foundry.

How Applications Are Staged

00:04:16

Lesson Description:

In this lesson, we will go through the staging process for both buildpack apps and Docker image-based applications. This process will show you the flow of how you get your code deployed to Cloud Foundry.

QUIZ: Cloud Foundry Basics

00:15:00

Getting Started

Setting up your Pivotal Account

00:02:00

Lesson Description:

In order to follow along with the instructor, you will need to have access to a Cloud Foundry account. In this lesson, you will set up an account with Pivotal Cloud Foundry. This account will be used throughout the rest of the course.

Installing Cloud Foundry CLI

00:03:04

Lesson Description:

In order to execute the Cloud Foundry commands you will need to have access to the cf-cli. In this lesson, we will install the Cloud Foundry CLI and login into Pivotal.

Pushing Your First App

00:07:05

Lesson Description:

Now that you have access to the cf-cli and have a Pivotal account setup you can start executing commands. In this lesson, we will learn the basics of using the cf push command and push our first application to Pivotal Cloud Foundry.

Pivotal Cloud Foundry Credit

00:01:40

Lesson Description:

In this video, we will look at how your credits will be used in Pivotal Web Services.

QUIZ: Getting Started with Cloud Foundry

00:15:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Cloud Foundry CLI

Using the CLI For Help

00:05:29

Lesson Description:

Taking an exam can be daunting and sometimes you can use a little help. In this lesson, you will learn how to use the CLI for help if you get stuck during the hands-on portion of the exam. This could mean the difference between passing and failing.

CF CLI Basics

00:07:58

Lesson Description:

The cf-cli is your portal into the world of Cloud Foundry. In this lesson, we will go over some of the basic commands. The more comfortable you are with the cli, the easier it will be to grasp the concepts of Cloud Foundry.

QUIZ: Cloud Foundry Command Line Basics

00:15:00

Orgs, Roles, Spaces and Permissions

Orgs and Spaces

00:04:30

Lesson Description:

Orgs and Spaces are the basic building blocks of Cloud Foundry management. In this lesson, you will learn all about Orgs and Spaces, and the commands that are used to manage them. You will learn how to create and target them.

Roles and Permissions

00:03:52

Lesson Description:

The Space Developer is the most important role in Cloud Foundry. In this lesson, you will find out why. We will also look at the other roles and permissions that are used in Cloud Foundry.

QUIZ: Managing Orgs, Roles, Spaces and Permission in Cloud Foundry

00:15:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Manifests

Manifest Basics

00:03:43

Lesson Description:

Sometimes when executing a cf push, you can use a lot of flags, and this is where manifests come in. Manifests are a repeatable and predictable way of deploying apps to Cloud Foundry. In this lesson, we will go over the basic syntax and attributes used to construct a manifest.

Generating A Manifest

00:07:00

Lesson Description:

If your app is already deployed to Cloud Foundry, you can use that app as a template. In this lesson, we will generate a manifest from a running application.

Creating Your First Manifest

00:12:18

Lesson Description:

In this lesson, we will create several manifests to get a better understanding of how to use them with your application. You will learn how to route, set the number of instances, and configure memory and disk quota.

Using Environment Variables In A Manifest

00:05:42

Lesson Description:

In this lesson, we will deploy an app that uses environment variables, and we will add these variables to our manifest. You will also learn how to set and access environment variables from the command line. Using environment variables is the 3rd principle of the 12-Factor App which we will cover later in this course.

Pushing Multiple Apps

00:08:57

Lesson Description:

In this lesson, we will learn how to use a manifest to push multiple applications. When building an application that is composed of multiple microservices you can use a single manifest to deploy them out.

Using Docker

00:02:37

Lesson Description:

In this lesson, we will look at how to use Docker images in a manifest file. There are advantages to using Docker images with Cloud Foundry. For starters, the image can be used for your production environment as well as your development environment.

QUIZ: Working with Cloud Foundry Manifests

00:15:00

Application Management on Cloud Foundry

Managing Applications

Application Container Lifecycle

00:02:27

Lesson Description:

Did you know the application deployment process involves uploading, staging, and starting the app in a container? In this lesson, we will discuss the application container lifecycle in Cloud Foundry.

Starting, Restarting and Restaging

00:02:11

Lesson Description:

Do you know what the difference is between restarting and restaging your app? What are the impacts and will it take your app offline? In this lesson, we will cover the command on how to start, restart, and restage your app. We will also go over what each of the commands actually does.

Running Tasks

00:02:18

Lesson Description:

The 12th Factor tells us to run admin/management tasks as one-off processes. What's the 12 Factor? We'll cover this in the 12-Factors section. In contrast to long-running processes, tasks are short term, and they meet the definition of the 12th Factor. In this lesson, we will discuss how to run tasks on your apps.

Accessing Apps

00:02:17

Lesson Description:

In this lesson, we will talk about the commands used to enable ssh access to your Cloud Foundry application. There will be times when we may need to retrieve a file or access the application instance.

QUIZ: Managing Applications in Cloud Foundry

00:15:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:30:00

Buildpack

What Are Buildpacks?

00:04:59

Lesson Description:

Buildpacks are one of the most important components of getting your app running in Cloud Foundry. In this lesson, we will go over what they are and the role they play. We will also look at the built-in buildpacks and the commands we use to manage them.

How Buildpacks Work

00:03:10

Lesson Description:

In this lesson, we will unravel the mystery of buildpacks by looking at what makes them tick. We will look at the internals of how buildpacks work, the scripts that are in a buildpack, and how they detect which buildpack to use with your application.

Community Buildpacks

00:02:03

Lesson Description:

The built-in buildpacks are not the only buildpacks available out there; there is a whole community that creates custom build packs. In this lesson, we will go over community buildpacks. Please note that you may not have permissions to use buildpacks that are not supported on Pivotal Cloud Foundry.

QUIZ: Using Buildpacks in Cloud Foundry

00:15:00

Routes and Domains

Managing Routes

00:08:48

Lesson Description:

In this lesson, we will dig a little deeper into how routing works in Cloud Foundry as well as learn how to create new routes and map them to applications.

Private Domains

00:10:38

Lesson Description:

Do you know what a domain is in Cloud Foundry? If you are thinking of domain names, you are half right. In this lesson, we will learn about domains and how to add them to Cloud Foundry and then use them with an application.

Using SSL With Your App

00:08:08

Lesson Description:

There will be times when you want to protect the traffic of your website with SSL. In this lesson, we will go through the steps of generating an SSL certificate. We will then add the certificate to our manifest and deploy it out with our application. Once deployed we will visit the sight to ensure it is secure.

HTTP Routing

00:02:31

Lesson Description:

In this lesson, we will look at some of the headers Cloud Foundry adds to HTTP requests. We will then look at how, as developers, we can use these headers to our advantage.

QUIZ: Managing Routes and Domains in Cloud Foundry

00:15:00

Blue Green Deployment

What is Blue-Green Deployment?

00:01:43

Lesson Description:

In this lesson, we will learn about Blue-Green Deployments and how you can use these techniques to achieve minimal disruption to your application when rolling out a newer version. If your organization requires as close to zero downtime as possible, then Blue-Green Deployments are for you.

Using Blue-Green Deployment in Cloud Foundry

00:06:21

Lesson Description:

In this lesson, we will take what we learned about Blue-Green deployments and put it into practice. We will deploy out an application that then switches to the newer version using the Blue-Green deployments process.

QUIZ: Blue Green Deployments in Cloud Foundry

00:15:00

Cloud-Native Architectural Principles

Cloud Native and 12-Factor Apps

Application Design for the Cloud

00:06:59

Lesson Description:

Do you know what it means to be Cloud Native or if your app is? How about best practices? In this lesson, we learn what it means to be cloud-native.

The 12-Factors

00:15:51

Lesson Description:

These are the 12-Factors you should live by: Codebase, Dependencies, Backing services, Build, release, run, Processes, Port binding, Concurrency, Disposability, Dev/prod parity, Logs, and Admin processes. In this lesson, we will learn the 12-Factors to making a Cloud Native application.

QUIZ: Cloud Native and 12-Factor Apps with Cloud Foundry

00:15:00

Building Apps for Cloud Foundry

Building Node.JS Apps

00:03:49

Lesson Description:

If you are a Node.JS developer, then there are things you should know about creating a Node.JS app for Cloud Foundry. In this lesson, we will go over some of the best practices and how to make your Node.JS apps work out of the box with Cloud Foundry.

Building Ruby Apps

00:04:51

Lesson Description:

If you are a Ruby developer, then there are things you should know about creating a Ruby app for Cloud Foundry. In this lesson, we will go over some of the best practices and how to building Ruby apps and make them work out of the box with Cloud Foundry.

Building Java Apps

00:01:51

Lesson Description:

If you are a Java developer, then there are things you should know about creating a Java app for Cloud Foundry. In this lesson, we will go over some of the best practices and how to building Java apps and make them work out of the box with Cloud Foundry.

Deploying Out a Node.JS Microservice

00:04:55

Lesson Description:

In this lesson, we will deploy out a Node.JS application built using two microservices to Cloud Foundry. The first microservice is a user API that will return a list of users. The second microservice is a web interface that will display the results of the API. We will hookup the apps using environment variables.

QUIZ: Building Apps for Cloud Foundry

00:15:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:30:00

Container Management within Cloud Foundry

Scaling

Scaling Your Apps

00:02:54

Lesson Description:

From code changes to an increase in traffic, there are many reasons why you may need to scale your app. In this lesson, we will talk about why you will need to scale and the commands we will use to do so. We will also talk about Horizontal and Vertical scaling.

Scaling Vertically

00:03:44

Lesson Description:

It is important to be able to right-size your application as your needs change. In this lesson, we will use the Articulate app to scale up vertically by increasing the amount of disk quota and memory the app has access to. Then we will scale back down to the original amount of resources.

Scaling Horizontally

00:06:34

Lesson Description:

There will be times when your apps may not be able to handle the amount of incoming traffic. In this lesson, we will scale our application out horizontally to meet demand. Then we will use the Articulate app to kill off instances to demonstrate the usefulness of scaling out.

QUIZ: Scaling Apps in Cloud Foundry

00:15:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

00:45:00

Working with Services in Cloud Foundry

Services

Services Overview

00:02:20

Lesson Description:

In this lesson, we will learn about services in Cloud Foundry. You will learn the difference between a marketplace service and service instances, how to take one of your apps in Cloud Foundry and turn it into a user-provided service, and know how to manage service instances: binding, unbinding, creation and deletion.

The Market Place And Service Commands

00:04:04

Lesson Description:

In this lesson, we will go over some of the available services in Pivotal Cloud Foundry's marketplace as well as the basic commands to create and manage services.

Services

00:06:50

Lesson Description:

This lesson provides a more hands-on approach to services. We will push the Spring Music app to Cloud Foundry and then create a MySQL backing service from the marketplace. Once created, we will bind the MySQL service instance to the Spring Music application.

Setting up a Mongo Service

00:12:39

Lesson Description:

In this lesson, we will create a web application that uses an API microservice. We will create a MongoDB service instance for the marketplace. We will then deploy out the microservice and have the manifest bind the service instance to the API for us. We will then test the service out by seeding it with test data.

User-Provided Service

00:06:54

Lesson Description:

In this lesson, we will take things a step further. We will take our API microservice and turn it into a user-provided service. We will then bind the API service instances to the user GUI. You will also learn about how to use the cfenv module to connect to VCAP_SERVICES.

QUIZ: Working with Backing Services in Cloud Foundry

00:15:00

Route Service

Route Service Overview

00:02:41

Lesson Description:

Cloud Foundry application developers may wish to apply transformation or processing to requests before they reach an application. This is where Route Services come in. In this lesson, we will learn about Route Services and how they can be used to transform or process a request.

Setting Up A Logging Route Service

00:06:19

Lesson Description:

In this lesson, we will take what we've learned about Route Services and implement in the dev space. We will download the code for a logging service from GitHub, create a user provided service out of it, and then bind the logger to the route of an application.

QUIZ: Working with Route Services in Cloud Foundry

00:15:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

02:00:00

Service Broker

What Are Service Brokers?

00:03:29

Lesson Description:

In this lesson, we will go over what a service broker is and how we can use them to create services that are not offered in the Cloud Foundry Marketplace. You will learn the basics of the API, and how it communicates with Cloud Foundry to provide services.

Github Service Broker

00:04:26

Lesson Description:

To understand Service Brokers it is best to look at a real-world example of how the API is constructed. In this lesson, we will take a look at the code for the Github Service Broker.

Setting Up a GitHub Service Broker

00:08:08

Lesson Description:

It's important to get hands-on experience when working with Server Brokers to fully understand them. In this lesson, we will take what we've learned about Serves Brokers by implementing a GitHub Service Broker. We will then create a service instance from it, and bind it to an application.

QUIZ: Working with Service Brokers in Cloud Foundry

00:15:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

02:00:00

Cloud-Native Application Security

Cloud Foundry Security

Container Security

00:05:05

Lesson Description:

Each instance of an app deployed to Cloud Foundry runs within its own self-contained environment, a Garden container. In this lesson, we will discuss how Cloud Foundry secures these containers.

Application Security Groups

00:06:01

Lesson Description:

This lesson will show you the basics of creating and managing Application Security Groups. ASGs are egress rules that specify the protocols, ports, and IP address ranges where app or task instances send traffic. They are a good way for you to limit what your apps can access.

QUIZ: Cloud Foundry Security

00:15:00

Troubleshooting Applications on Cloud Foundry

Logging and Monitoring

Logging Overview

00:01:39

Lesson Description:

In this lesson, we will go over logging in preparation for setting up a syslog drain for our Node.JS User application. This will cover how logs are handled and the Cloud Foundry components that manage them.

Log Draining

00:03:03

Lesson Description:

Because logs are treated as streams in Cloud Foundry, it is a good idea to have them aggregated somewhere like a syslog server. In this lesson, we are going to set up a log draining service with Papertrail.

Monitor with New Relic

00:07:58

Lesson Description:

Monitoring is vital to having a DevOps culture. New Relic is a great way to monitor your applications in Cloud Foundry. In this lesson, we add New Relic to our Node.JS application to monitor performance.

QUIZ: Logging and Monitoring in Cloud Foundry

00:15:00

Troubleshooting

Application Deploys

00:06:07

Lesson Description:

Knowing where to look when you are troubleshooting an issue is vital to resolving it quickly. In this lesson, we go over some of the common issues you may run into when trying to deploy an app to Cloud Foundry. We will use the cf logs command to help troubleshoot and resolve the issue.

Troubleshooting Routes

00:05:08

Lesson Description:

Knowing where to look when you are troubleshooting an issue is vital to resolving it quickly. In this lesson, we will look at some of the common issues that you may have with routes in Cloud Foundry. We will then go through and troubleshoot each issue. Also, we will look at some preventive measures for routes.

QUIZ: How to Troubleshooting Issues in Cloud Foundry

00:15:00

Conclusion

Conclusion

Documentation

00:01:11

Lesson Description:

In this lesson, we will talk about the Cloud Foundry documentation and where you can find it. When preparing for the exam, you should always go through the docs.

Preparing For The Exam

00:03:49

Lesson Description:

Now that the course is complete, this lesson will cover what you need to know about preparing and taking the exam. Once complete, you will be ready to get certified!

Next Steps

00:02:20

Lesson Description:

In this lesson, we will cover some of the courses you may wish to take to further your career; from CI/CD, configuration management to cloud technologies. You will figure out where to go next.

Final Words

00:00:26

Lesson Description:

Congratulations, you are done! Here are some final words from the course author.

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

02:00:00

Cloud Foundry Practice Exam

01:30:00