Cloud Foundry Certified Developer
Course Development Director in Content
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.
About the Author
Before we get started on the course, let's learn a little about who is teaching it!
About the Course
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!
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 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.
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
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.
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
So What’s The Solution?
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.
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.
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?
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
What is Infrastructure?
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?
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?
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
Pivotal Cloud Foundry
Pivotal Cloud Foundry Overview
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
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
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
Cloud Foundry Basics
What is Cloud Foundry
What is Cloud Foundry?
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
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.
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.
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.
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.
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
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
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
Setting up your Pivotal Account
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
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
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
In this video, we will look at how your credits will be used in Pivotal Web Services.
QUIZ: Getting Started with Cloud Foundry
Cloud Foundry CLI
Using the CLI For Help
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
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
Orgs, Roles, Spaces and Permissions
Orgs and Spaces
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
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
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
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
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
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
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.
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
Application Management on Cloud Foundry
Application Container Lifecycle
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
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.
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.
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
What Are Buildpacks?
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
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.
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
Routes and Domains
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.
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
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.
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
Blue Green Deployment
What is Blue-Green Deployment?
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
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
Cloud-Native Architectural Principles
Cloud Native and 12-Factor Apps
Application Design for the Cloud
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.
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
Building Apps for Cloud Foundry
Building Node.JS Apps
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
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
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
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
Container Management within Cloud Foundry
Scaling Your Apps
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.
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.
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
Working with Services in Cloud Foundry
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
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.
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
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.
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
Route Service Overview
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
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
What Are Service Brokers?
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
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
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
Cloud-Native Application Security
Cloud Foundry Security
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
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
Troubleshooting Applications on Cloud Foundry
Logging and Monitoring
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.
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
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
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.
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
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
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!
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.
Congratulations, you are done! Here are some final words from the course author.
Cloud Foundry Practice Exam