This course kicks off by showing you the steps involved in making your application cloud-ready. Moving on, it delves into the various aspects involved in deploying your application and running it on Cloud Foundry. It also shows you how Spring Boot and PCF tremendously increase developer productivity. Later, we address the core challenges that Java developers face while developing PCF applications, such as understanding what PCF is and why companies adopt it. Then you'll delve deeply into more advanced topics such as integrating apps with the circuit-breaker dashboard, the cloud discovery server, and the config server. We will also cover highly-available PCF deployment models, as well as common CI pipelines to PCF with Jenkins. Further, we will explore the theory behind Hystrix and the circuit breaker pattern, and go on to learn patterns for config repositories and the config server.
What am I going to get from this course?
- Set up the work space through core concepts
- Work with orgs, spaces, roles, and permissions
- Monitor an application and logs
- Develop a Spring Boot RESTful web service and event-driven app for PCF
- Leverage auto-configuration for PCF and Spring Boot
- Master advanced concepts and the PCF architecture.
- Manage services through route, volume, and user-provided services.
- Explore the PCF log aggregator.
- Scale apps and authenticate Cloud Controller and the CF API.
Prerequisites and Target Audience
What will students need to know or do before starting this course?
Basic knowledge of Cloud Foundry is required to get you started with application deployment.
Who should take this course? Who should not?
This course is for developers and administrators who are dealing with Cloud Foundry in the production phase. This course is for Java developers; Java architects; cloud, application, and platform architects; and technical architects who have some prior knowledge of Cloud Foundry
Module 1: Learning Pivotal Cloud Foundry for Web Developers
The Course Overview
This video provides an overview of the entire course.
Setting Up Your Work Space
In this video, we will download and install Eclipse STS, the Gradle Buildship plugin and the Cloud Foundry command line interface.
Install Eclipse STS
Install Gradle plugin for eclipse
Install the Cloud Foundry command line interface
Navigating the PCF Console
In this video, we will discover features of PCF by exploring the PCF web console.
Log in to PCF
Explore the marketplace
Explore the app management console
Using the CF Command Line Interface to Interact with PCF
This video aims to explain the use of key CF commands to manage PCF.
Explore the CF target command
Explore the CF push command
Usage of the CF create-service command
PCF Architecture, Orgs, and Spaces
In this video, we will understand how PCF provides a framework for managing application environments at scale.
Create an org
Create a space
View considerations for orgs and spaces
Roles, Permissions and Marketplace Services
This video aims to explain PCF roles and permissions which are needed for development.
Understand all the roles
Learn the permissions for each role
Understand what are developer roles
Application Monitoring, Logs, and Build Packs
In this video, we will understand the concept of buildpacks in PCF and know which metrics PCF displays in the console, and how to view aggregated logs.
Explore key metrics in PCF app dashboard
Explore the Loggregator
Explore the concept of buildpacks
Provisioning a SQL Database from the PCF Marketplace
In this video, we will learn to provision a fully managed service in PCF from the marketplace.
Explore the marketplace
Deploy a MySQL database
Manage and configure the deployed service
Using Eclipse to Create a New Spring Boot Application
This video aims to explain how to create new bootstrapped Spring boot applications within Eclipse.
Create a new spring boot starter project
Explore the new project wizard
Understand the project structure
Leveraging Auto Configuration to Bootstrap Your Application
In this video, we will understand the concept of spring boot integration feature of PCF.
Explore the Spring cloud profile
Explore Spring Beans
Creating Your Application’s Manifest YAML File
In this video, we will learn to create a deployment manifest to inform Cloud Foundry how to deploy applications.
Explore YAML structure of the manifest
Understand key manifest properties
Deploy with multiple manifests
Developing Our Web Service and Building it Using Gradle
This video aims to explain the dependency management tools and building deployable artifacts.
Understand the use of Gradle Eclipse plugin
Learn basic Gradle structure
Understand where to list dependencies in Gradle build file
Viewing the Final App and Testing with Postman
In this video, we will learn REST client for exploring REST API’s
Finding the Postman Chrome app
Build a GET and POST request
Understand REST response
Deploying Your Application to PCF Using the CF Command Line
In this video, we will learn how to push your application to Cloud Foundry using the CF push command
Usage of the CF push command
Understand the CF push process
Explore arguments to the CF push command
Provisioning a RabbitMQ Message Broker from the PCF Marketplace
This video explains how to facilitate an event-driven architecture.
Install RabbitMQ from marketplace
Login to the RabbitMQ dashboard
Create a queue
Developing the Producer and Consumer Applications with Spring Boot
In this video, we will create an application that can publish a message to RabbitMQ.
Use the Spring Boot starter Rabbit library
Create a Spring Boot app
Create a REST API to publish a message
How PCF Injects Properties into Your App for Auto Configuration
In this video, we will understand what PCF does to facilitate auto configuration.
Learn smart defaults in Spring Boot
Learn Spring Boot integration with PCF
Building Your Application Using Maven
This video aims to explain Maven POM.
Understand where to put dependencies in the POM
Learn what is local .m2 repository
Understand remote maven repository
Deploying Your Application Using the CF Command Line Without a Manifest YAML File
In this video, we will pass parameters to the CF push command rather than using a manifest YAML.
Specifying memory limit in CF push
Specifying app name in CF push
Specifying app instances in CF push
Confirming Your Application Works by Viewing Messages in the RabbitMQ Dashboard
In this video, we will learn how to view messages in the RabbitMQ dashboard to confirm messages are being processed.
Log into the RabbitMQ dashboard from PCF
View the queue activity in the dashboard
Putting a message on the queue
Module 2: Mastering Pivotal Cloud Foundry for Web Developers
The Course Overview
This video provides an overview of the entire course.
CI with Jenkins and Disaster Recovery Strategies
In this video, we will learn how to achieve high-availability with PCF and how to deploy to PCF using the CF plugin for Jenkins.
Learn how to use the CF plugin for Jenkins
Understand disaster recovery strategies
Learn load-balancing architecture in PCF
Security Groups and Container-to-Container Security
This video aims to explain how PCF handles security.
Learn what are application security groups (ASG's)
Learn what is container-to-container security
Learn what is the discovery marketplace service
Resource Limitations in PCF
In this video, we will learn how to configure resource limitations in PCF.
Learn to configure org quotas
Learn to configure space quotas
Learn what are resource limitations in PCF
Exploring the PCF Log Aggregator
This video aims to explain how we can view application logs in PCF.
Understand how to view the loggregator
Configure streaming logs to an external source
Explore other ways to manage logs
Auto-Scaling Apps and the Cloud Foundry SDK
In this video, we will learn how PCF manages to scale applications based on load.
Learn to bind an App Autoscaler to our app
Configure the App Autoscaler
Understand how the App Autoscaler works
Route, Volume, and User-Provided Services
In this video, we will understand the different types of services we can create in PCF.
Understand volume services
Understand route services
Learn user provided services
Achieve a Blue-Green Deployment
In this video, we will understand how PCF supports zero-downtime deployments.
Understand the 'cf map-route' command
Explore the 'cf unmap-route' command
Learn the 'cf delete-route' command
Cloud Controller and the CF API
In this video, we will explore the REST API exposed by the cloud controller.
Explore what operations are available
Learn the cloud controller component
Understand how to scale an app using the CF API
Route Traffic with CF Gorouter
In this video, we will explore how CF handles URLs to apps.
Learn what is a route
Understand how to map routes
Learn limitations in routing
The Garden Container
This video aims to explain what the Garden container is.
Learn containerization concepts
Understand virtual machine concepts
Explore Garden container
The Diego Brain and Allocation of Resources
In this video, we will understand how PCF automatically provisions resources.
Understand what is Diego brain
Learn what is Auctioneer
Understand how auctioning works
The Internal PCF OAuth 2.0 Auth Server (UAA)
In this video, we will understand how PCF protects its internal resources.
Learn the OAuth 2.0 protocol
Learn the four grant types of OAuth 2.0
Learn how to interact with the UAA
Understanding, Provisioning and Configuring the Config Server
In this video, we will understand how to externalize configuration from apps.
Learn what is a config server
Learn how to deploy a config server
Understand how to allow apps to use the config server
Creating and Manipulating the Discovery Server
This video aims to explain how we can route to services by virtual IP.
Understand what the discovery service is
Understand how to create a discovery client
Learn how to register a service with discovery
Constructing the Circuit-Breaker Dashboard
In this video, we will learn how to monitor our application health, success rate and latency in real time.
Learn what is Hystrix
Understand what is the circuit breaker pattern
Learn how to use the hystrix library
Understanding Hystrix and Circuit- Breaker Pattern
This video aims to explain in detail what Hystrix helps us with.
Understand how Hystrix prevents saturation
Understand how Hystrix helps resiliency
Understand how to trigger hystrix circuits to open
Bootstrapping the Microservices to Connect to the Supporting Services
In this video, we will understand how to configure our apps to use the supporting services.
Explore further the configuration for config server
Understand the configuration for discovery server
Explore the configuration for Hystrix
Deploying the Microservices to PCF Using a Manifest
In this video, we will revise deploying a Micro services architecture.
Deploy multiple apps
Explore the manifest yaml
Learn the cf push process
Config, Discovery and Circuit-Breaker Dashboards
In this video, we will view our supporting services dashboards in action.
Learn to view the circuit breaker dashboard
Understand how to view the discovery service dashboard
Learn to see the config server configuration
Spring Boot Actuator and Refreshing Properties
This video aims to explain more about Spring boot actuator.
Learn what are the available endpoints
Learn about refreshing application properties on the fly using spring actuator
Learn about externalizing config