-
Notifications
You must be signed in to change notification settings - Fork 23
/
overview.html.md.erb
113 lines (77 loc) · 5.72 KB
/
overview.html.md.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
---
title: Service Integration Overview
owner: Services
---
<strong><%= modified_date %></strong>
As a new tile developer, your process typically starts with learning about Pivotal Cloud Foundry (PCF) buildpacks, service brokers, tiles, and other components. Then you scope your development effort, set up your development tools and validation suite, and iterate development through increasing [levels of integration](#levels).
The staged approach enables early feedback on the value and the design of the integration. This feedback helps you decide what level of integration to target in the future.
This chart shows a typical PCF tile development workflow. The **Develop Your Tile** phase iterates through increasing levels of integration. At each iteration, the effort starts with creating and testing individual tile components in a development environment and ends with testing the entire tile in a full PCF environment. Each major stage is described below.
![Tile Development Workflow](img/tile-dev-workflow.png)
## <a id="basics"></a> 1. Understand Tile Basics
There are many ways to integrate products with Cloud Foundry.
The right one for each product depends on what the product does, and how
customer applications consume it. To determine the best way to integrate your
product, you'll need a good understanding of
[Cloud Foundry concepts](cf-concepts.html)
like applications, containers, services, brokers, and buildpacks.
## <a id="scope"></a> 2. Set Scope of Integration
Services can integrate with PCF at multiple levels, as described in [Levels of Integration](./stages.html). The main levels, in increasing order, are: User-Provided Service, Brokered Service, Managed Service, and On-Demand (or Dynamic) Service.
Pivotal is a strong believer in lean and agile development and the notion
of delivering a Minimal Viable Product (MVP) to our customers as quickly
as possible. So we always look for [staged approaches](stages.html) to
the development of the integration, and only plan the upcoming stage in
great detail.
In most cases, there is a very rapid way to do a proof-of-concept of the
proposed integration. For instance, if you are building a service, you
can often emulate the availability of a brokered, managed, or dynamic
service by setting up a [user-provided service](stages.html#ups)
for an existing instance of your service. That will let you validate
the integration design before you make a large development investment,
and it will let real consumers weigh in on development priorities.
With sufficient understanding of both your product, and the basics of PCF tiles,
you are in a position to decide what the integration looks like, and what level of integration you want to target. Integration points at different levels include:
- [Buildpacks](./buildpacks.html) - All levels
- [Embedded Agents](./cf-concepts.html#agents) - All levels
- [Logs, Metrics, and Nozzles](./nozzle.html) - All levels
- [Service Brokers](./service-brokers.html) - Brokered and above
- [Managed Services](./managed.html) - Managed and above
- Or any combination of the above
If you are not already intimately familiar with PCF, this is one of the
areas where we can help. We like to do scoping meetings with you, where
we pair your understanding of your products, with our understanding of
PCF, to map out the best possible integration path.
## <a id="learn-to-build"></a> 3. Learn How to Build
Depending on the selected type of integration, you will need to learn
how to build one or more of the integration points listed above.
Self-learning is definitely possible. If you are interested in more
organized learning, Pivotal provides many different classes and labs for
partners and customers. [Contact us](./contacts.html)
if your are interested in learning more about this.
## <a id="validations"></a> 4. Develop Validations for Your Tile
A critical component is to develop consuming applications to validate that your tile works under diverse demands. Those can be real customer applications, or test applications that are deployed to PCF.
- [Developing Applications](./cf-concepts.html#applications)
- [Binding Services](./cf-concepts.html#services)
## <a id="develop"></a> 5. Develop Your Tile
Once the design is established and validated, and the first [stage](./stages.html) has been defined, you start actual development of your tile. This proceeds as follows, and the [Development Steps at Each Level](./development.html) topic describes each in more detail:
- [Develop and test the individual components](development.html#components)
- [Generate your tile](development.html#tile-generator)
- [Test the deploy and delete errands](development.html#test-errands)
- [Deploy and test your tile](development.html#deploy)
### <a id="environment"></a> Test Environments
At each step you need access to a PCF environment that supports the current step.
Partners who participate in our program have access to a number of shared
environments that are operated and managed by Pivotal. If you are not (yet)
in our program, need a dedicated environment, or want to be able to work
offline, you can set up a PCF environment on:
- [Developer desktop/laptop](./environments.html#pcfdev)
- [Supported public or private infrastructure (IaaS)](./environments.html#pws)
You will then also need to learn to operate and upgrade PCF by yourself:
- [Setting Up PCF](./environments.html#pcf)
## <a id="workflow"></a> 6. Publish and Document Your Tile
- [Work with Pivotal to publish your tile](contacts.html)
- [Complete the documentation](tile-documentation.html)
## <a id="workflow"></a> 7. Maintain Your Tile
- [Set up a Concourse Server](concourse.html#server)
- [Set up a Concourse Pipeline](concourse.html#pipeline)
- [Create a target PCF pool](concourse.html#pool)
- [Upgrading tiles](tile-generator.html#upgrades)