Spring Cloud Data Flow Server for Cloud Foundry

Authors

Sabby Anandan, Eric Bottard, Mark Fisher, Ilayaperumal Gopinathan, Gunnar Hillert, Mark Pollack, Thomas Risberg, Marius Bogoevici, Josh Long, Michael Minella

1.0.0.RELEASE

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.


Table of Contents

I. Spring Cloud Data Flow for Cloud Foundry
1. Spring Cloud Data Flow
2. Spring Cloud Stream
3. Spring Cloud Task
II. Architecture
4. Introduction
5. Microservice Architectural Style
5.1. Comparison to other Platform architectures
6. Streaming Applications
6.1. Imperative Programming Model
6.2. Functional Programming Model
7. Streams
7.1. Topologies
7.2. Concurrency
7.3. Partitioning
7.4. Message Delivery Guarantees
8. Analytics
9. Task Applications
10. Data Flow Server
10.1. Endpoints
10.2. Customization
10.3. Security
11. Runtime
11.1. Fault Tolerance
11.2. Resource Management
11.3. Scaling at runtime
11.4. Application Versioning
III. Getting started
12. Deploying on Cloud Foundry
12.1. Provision a Redis service instance on Cloud Foundry.
12.2. Provision a Rabbit service instance on Cloud Foundry.
12.3. Provision a MySQL service instance on Cloud Foundry.
12.4. Download the Spring Cloud Data Flow Server and Shell apps:
12.5. Deploying the Server app on Cloud Foundry
12.6. Running the Server app locally
12.7. Running Tasks
12.8. Running Spring Cloud Data Flow Shell locally
13. Security
14. Application Names and Prefixes
15. Authentication and Cloud Foundry
16. Configuration Reference
16.1. Using Spring Cloud Config Server
17. Application Level Service Bindings
18. Application Rolling Upgrades
IV. Streams
19. Introduction
20. Stream DSL
21. Register a Stream App
21.1. Whitelisting application properties
22. Creating a Stream
22.1. Application properties
22.1.1. Passing application properties when creating a stream
22.1.2. Passing application properties when deploying a stream
22.1.3. Passing stream partition properties during stream deployment
22.1.4. Overriding application properties during stream deployment
22.2. Deployment properties
22.2.1. Passing instance count as deployment property
22.2.2. Inline vs file reference properties
23. Destroying a Stream
24. Deploying and Undeploying Streams
25. Other Source and Sink Application Types
26. Simple Stream Processing
27. Stateful Stream Processing
28. Tap a Stream
29. Using Labels in a Stream
30. Explicit Broker Destinations in a Stream
31. Directed Graphs in a Stream
31.1. Common application properties
V. Tasks
32. Introducing Spring Cloud Task
33. The Lifecycle of a task
33.1. Registering a Task Application
33.2. Creating a Task
33.3. Launching a Task
33.4. Reviewing Task Executions
33.5. Destroying a Task
34. Task Repository
34.1. Configuring the Task Execution Repository
34.1.1. Local
34.2. Datasource
35. Subscribing to Task/Batch Events
36. Launching Tasks from a Stream
36.1. TriggerTask
36.2. Translator
VI. Tasks on Cloud Foundry
37. Version Compatibility
38. Tooling
39. Running Task Applications
39.1. Create a Task
39.2. Launch a Task
39.3. View Task Logs
39.4. List Tasks
39.5. List Task Executions
39.6. Destroy a Task
VII. Dashboard
40. Introduction
41. Apps
42. Runtime
43. Streams
44. Create Stream
45. Tasks
45.1. Apps
45.1.1. Create a Task Definition from a selected Task App
45.1.2. View Task App Details
45.2. Definitions
45.2.1. Launching Tasks
45.3. Executions
46. Jobs
46.1. List job executions
46.1.1. Job execution details
46.1.2. Step execution details
46.1.3. Step Execution Progress
47. Analytics
VIII. ‘How-to’ guides
48. Configure Maven Properties
IX. Appendices
A. Migrating from Spring XD to Spring Cloud Data Flow
A.1. Terminology Changes
A.2. Modules to Applications
A.2.1. Custom Applications
A.2.2. Application Registration
A.2.3. Application Properties
A.3. Message Bus to Binders
A.3.1. Message Bus
A.3.2. Binders
A.3.3. Named Channels
A.3.4. Directed Graphs
A.4. Batch to Tasks
A.5. Shell/DSL Commands
A.6. REST-API
A.7. UI / Flo
A.8. Architecture Components
A.8.1. ZooKeeper
A.8.2. RDBMS
A.8.3. Redis
A.8.4. Cluster Topology
A.9. Central Configuration
A.10. Distribution
A.11. Hadoop Distribution Compatibility
A.12. YARN Deployment
A.13. Use Case Comparison
A.13.1. Use Case #1
A.13.2. Use Case #2
A.13.3. Use Case #3
B. Building
B.1. Basic Compile and Test
B.2. Documentation
B.3. Working with the code
B.3.1. Importing into eclipse with m2eclipse
B.3.2. Importing into eclipse without m2eclipse