-
Notifications
You must be signed in to change notification settings - Fork 23
/
bosh-release.html.md.erb
78 lines (50 loc) · 3.62 KB
/
bosh-release.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
---
title: BOSH Releases
owner: Services
---
<strong><%= modified_date %></strong>
This topic provides resources for creating a BOSH release that integrates a software service with Pivotal Cloud Foundry (PCF) at the managed service level.
## <a id="overview"></a> Overview
A BOSH release is a directory that contains the source code for your service along with everything else that BOSH needs to deploy it reproducibly to cloud VMs running a specified operating system (stemcell). These contents include but are not limited to buildpacks, start up scripts, binary artifacts, and a BOSH manifest containing configuration and deployment properties.
The BOSH manifest specifies the following major components:
- **Packages** that can be installed on PCF stemcells to create virtual machine images
- **Jobs** that describe how to install, run, and remove your software
- A **Monitor** script, that describes how to monitor the health of your
service components and stop or restart them
## <a id="resources"></a> BOSH Resources
These topics give more details on BOSH and BOSH releases:
- [BOSH Documentation](http://bosh.io/docs) is the top-level contents page for BOSH documentation.
- [BOSH Problem Statement](http://bosh.io/docs/problems.html) explains what BOSH does.
- [BOSH Basic Workflow](http://bosh.io/docs/basic-workflow.html) lists the high-level steps for creating a BOSH deployment.
## <a id="create"></a>Creating a BOSH Release
These topics explain how to create a BOSH release:
- [Creating a Release](http://bosh.io/docs/create-release.html)
- [Defining your Jobs](http://bosh.io/docs/jobs.html)
- [Defining your VMs](http://bosh.io/docs/vm-struct.html)
- [Defining your Runtime Configs](https://bosh.io/docs/runtime-config.html)
- [Monitoring the Health of your Service](http://bosh.io/docs/monitoring.html)
## <a id="docker"></a>Shortcut: Start with Docker Images
If you have already packaged your service as Docker images, you can emulate
a managed service deployment using the [Tile Generator](tile-generator.html)'s
support for `docker-bosh` packages. This feature lets you deploy pre-existing
Docker images into bash managed virtual machines on the PCF infrastructure.
While this is a great, easy way to deploy your service on PCF, we don't
recommend this as a long-term, production-ready solution. There is really no
benefit of running your service in containers on the VMs, and it does have
a number of operational ("day 2") drawbacks:
- You introduce more software (Docker) which needs to be kept up-to-date, and
has the potential for bugs, downtime, and security vulnerabilities.
- You can no longer take advantage of the patching capabilities of PCF for
stemcells and application dependencies, like frameworks and libraries. Instead,
you become directly responsible for managing all software that is in the Docker
images you deploy.
## <a id="enhancing"></a>Enhancing the BOSH Release
After the basic BOSH release is in place, additional features for logging
help operators run the service. For logging information, see
[syslog-release](https://github.com/cloudfoundry/syslog-release).
You should expose the property `syslog.migration.disabled` using the tile's forms
because not all customers configure syslog draining.
Logs written under the expected BOSH location `/var/vcap/sys/log` are forwarded to the configured syslog server by the release.
Integrating syslog forwarding into a tile should not require code changes;
it only requires including the release and configuration forms in the `tile.yml`.
For an example, see [pcf-examples/tile-for-bosh-with-syslog](https://github.com/cf-platform-eng/pcf-examples/tree/master/tile-for-bosh-with-syslog).