5. Cover w/ Image
Agenda
■ What does scheduling mean?
■ Ways to Schedule
■ Cloud support scheduling
■ Spring Cloud Task
■ Scheduling Simplified
6. Vocabulary… Woot! Woot!
Task - Is a short-lived microservice. Also known as a
ephemeral microservice.
It is also a 12 factor app: https://12factor.net/
7. ● Launching the task
● Tracking the task execution
● Obtaining its final state
● Managing failure conditions
What Does
Scheduling
Mean?
8. App that executes tasks based on
calendar events
Launching Tasks based on Event
Ways to Schedule
11. Cloud Foundry - PCF Scheduler
Kubernetes - Cron Jobs
Cloud Scheduling ● Both CF and Kubernetes have a
concept of ephemeral apps.
○ Jobs
○ Tasks
12. Cloud Foundry - PCF Scheduler
Kubernetes - Cron Jobs
Cloud Scheduling
● A schedule name was applied to an
application name
● An application was specified (one
pushed the other pulled from a
repository)
● An ability to pass in command line
args and environment
variables(properties)
● and...
13. Cloud Foundry - PCF Scheduler
Kubernetes - Cron Jobs
Cloud Scheduling
My Gosh! It’s full of CRON!
14. Cloud Foundry - PCF Scheduler
Kubernetes - Cron Jobs
Cloud Scheduling
● Tasks can be scheduled via :
○ RESTFul API
○ Command Line Interface
15. Cloud Foundry - PCF Scheduler
Cloud Scheduling
● PCF Scheduler Does offer a UI
Suspicious Cat knew
there would be a
difference!
16. PCF - Scheduler (basic steps)
● Push app to Cloud Foundry
● Bind the services you need to the application
● Create your Job
● Create your schedule
18. Kubernetes - CronJobs (basic steps)
● Push your docker image up to repository
● Create your specification
○ Create your .spec file to include
■ Schedule spec
■ Job Template Spec
○ -or-
○ Used kubectl run to create a schedule
24. A toolkit for building
data integration,
real-time streaming,
and batch data
processing pipelines.
WHAT IS SPRING CLOUD DATA FLOW?
24
25. Data pipelines consist of Spring Boot apps, using
Spring Cloud Stream for event-streaming or
Spring Cloud Task for batch processes.
Ready for Data Integration with >60
out-of-the-box streaming and batch Apps.
DSL, GUI, and REST-APIs to build and
orchestrate data pipelines onto platforms like
Kubernetes and Cloud Foundry.
Continuous delivery for streaming data pipelines
using Spring Cloud Skipper.
Cron-job scheduler for batch data pipelines using
Spring Cloud Scheduler.
A toolkit for building
data integration,
real-time streaming,
and batch data
processing pipelines.
WHAT IS SPRING CLOUD DATA FLOW?
25
26. Data pipelines consist of Spring Boot apps, using
Spring Cloud Stream for event-streaming or
Spring Cloud Task for batch processes.
Ready for Data Integration with >60
out-of-the-box streaming and batch Apps.
DSL, GUI, and REST-APIs to build and
orchestrate data pipelines onto platforms like
Kubernetes and Cloud Foundry.
Continuous delivery for streaming data pipelines
using Spring Cloud Skipper.
Cron-job scheduler for batch data pipelines using
Spring Cloud Scheduler.
A toolkit for building
data integration,
real-time streaming,
and batch data
processing pipelines.
WHAT IS SPRING CLOUD DATA FLOW?
26
27. Data pipelines consist of Spring Boot apps, using
Spring Cloud Stream for event-streaming or
Spring Cloud Task for batch processes.
Ready for Data Integration with >60
out-of-the-box streaming and batch Apps.
DSL, GUI, and REST-APIs to build and
orchestrate data pipelines onto platforms like
Kubernetes and Cloud Foundry.
Continuous delivery for streaming data pipelines
using Spring Cloud Skipper.
Cron-job scheduler for batch data pipelines using
Spring Cloud Scheduler.
A toolkit for building
data integration,
real-time streaming,
and batch data
processing pipelines.
WHAT IS SPRING CLOUD DATA FLOW?
27
28. Data pipelines consist of Spring Boot apps, using
Spring Cloud Stream for event-streaming or
Spring Cloud Task for batch processes.
Ready for Data Integration with >60
out-of-the-box streaming and batch Apps.
DSL, GUI, and REST-APIs to build and
orchestrate data pipelines onto platforms like
Kubernetes and Cloud Foundry.
Cron-job scheduler for batch data pipelines using
Spring Cloud Scheduler.
A toolkit for building
data integration,
real-time streaming,
and batch data
processing pipelines.
WHAT IS SPRING CLOUD DATA FLOW?
28
29. Demo
How to schedule a task in Spring Cloud Data Flow on
Kubernetes (PKS - Pivotal Container Service)
30. Local Version runs on your
machine.
Cloud Foundry Version can be
installed by hand or by the PCF
SCDF TIle
Kubernetes Version can be install
by hand or by our Helm Chart
Data Flow
Installation
32. SCDF for PCF
Addition of the Spring Cloud Data Flow server to the
Marketplace as a managed service
Automatic integration with dependent PCF services:
- MySQL for PCF (or a user-provided relational
database service) for apps, pipelines, and task
history
- RabbitMQ for PCF (or a user-provided RabbitMQ
or Kafka service) for event messaging
- Redis for PCF (or a user-provided Redis service)
for capturing analytics data
Integration of Data Flow server with PCF’s UAA
security model
37. Demo
How to schedule a task in Spring Cloud Data Flow for
Pivotal Cloud Foundry (PCF)
1. Provision new SCDF SI via GUI
2. Switch to previously installed SCDF service
3. Open management dashboard
4. Create a new task (timestamp)
5. Create a new schedule (0/5 0 ? * * *)
6. Create a second schedule (0/2 0 ? * * *)