> > > DACF Detailed outline

Developing Applications with Cloud Foundry (DACF)

Course Description Schedule Course Outline

Detailed Course Outline

1. Overview of CF

  • Understanding IaaS, PaaS, and SaaS
  • Understanding the Open nature of Cloud Foundry
  • The Cloud Foundry Foundation
  • App Centric platform
  • Pivotal CF and Pivotal Web Services
  • A guide to the documentation

2. Getting started using CLI

  • Using the CLI - login, target, push, apps, logs, scale, start, stop, restart, restage, un/map-route
  • Understanding the Cloud Foundry URLs
  • Understanding app names, hosts, domains, and routes
  • The Developer Console
  • The push process: first look

3. CF Concepts

  • Complete coverage of Cloud Foundry concepts: applications, buildpacks, manifests, organizations, spaces, users, roles, domains, routes, services

4. Getting started using ECLIPSE/STS

  • Usage of the Eclipse plugin to push, scale, obtain logs, map/unmap routes, start, stop, restart

5. Logging and Troubleshooting

  • Understanding practical CF usage such obtaining logs, recent logs, CF_TRACE, events, debugging options, troubleshooting techniques
  • Understanding Loggregator: sources and sinks, log types
  • Understanding direct file access and its limitations
  • Simplifying the push process using manifests
  • Understanding how staging works, how scaling works

6. Application Design and Deployment using manifests and environment variables

  • Simplifying the push process using manifests
  • Controlling application behavior via environment variables
  • Understanding how scaling works

7. Services Introduction

  • Embracing the services abstraction
  • Understanding Marketplace, User-defined, and Custom services
  • Tour of the Pivotal CF services
  • Understanding PWS services and App Direct

8. Using services

  • Understanding service instance provisioning
  • Behind the scenes: The Service Broker API
  • Listing marketplace services, finding existing instances, creating new instances, binding instances to apps
  • Accessing bound service information via VCAP_SERVICES, 3rd party libraries, and Spring Cloud

9. Buildpacks

  • Understanding how buildpacks create language / framework openness
  • The push process: a deeper look
  • Built-in vs custom buildpacks. Buildpack compatibility
  • Specifying buildpacks

10. Customizing Buildpacks

  • Understanding Buildpack structure
  • A close look at the Java buildpack: container detection, framework detection, logged output
  • Configuring the Java buildpack: runtime/container/framework version selection, resource configuration
  • Extending the Java buildpack: supporting other runtimes/containers/frameworks
  • Debugging the Java buildpack

11. Managing applications in CF

  • Understanding the importance of 3rd Party Log Management services and how to route application logs to them
  • Gain insight into running applications by binding to Application Performance Monitoring tools.
  • Learn how to automatically respond to changing load conditions using Pivotal Autoscaling
  • Deployment techniques: Blue/Green deployment, Canary deployment

12. CF Components

  • Understanding the Cloud Foundry components: Router, Cloud Controller, DEAs, Warden containers, Service Brokers, Health Manager, etc.
  • Understanding how the Health Manager ensures correct instance count.
  • Continuous Delivery with Cloud Applications
  • Learn how to establish a simple Continuous Delivery chain using a 3rd party tool

13. Application design and deployment considerations

  • Understanding the 12-Factor Application
  • Cloud Foundry design considerations: routing, load-balancing, avoiding session usage, avoiding local file access, inbound port restrictions

14. Spring and Cloud applications

  • Examining how to make use of Spring IO, Spring Boot, Spring Data, and Spring Cloud
  • Taking advantage of Profiles when running Spring applications

15. Java applications on CF

  • Understanding the impact of statefulness on a cloud-based application and how to mitigate it.
  • Embracing environment variables for configuration
  • Understanding the ephemeral nature of the local file system
  • Understanding Auto-configuration
  • Using Spring Cloud for service binding
  • Management options using JMX over HTTP
  • Local vs Cloud deployment