Hi Amit, Can you elaborate on the "BOSH cruft"? Almost immediately after posting, it did dawn on me that BOSH '2.0' manifests do strip a lot of noise, so cf-deployment will go a long way towards this. A question for Dmitriy/Matt Reider I'm sure, but is the Config Server stuff on the horizon? I wonder if cf-deployment will eventually be enough to statically describe all dependencies in CF? All the dependencies between properties will be discoverable, so maybe that just leaves temporal concerns that are implicit (ie job X needs to start before job Y). If all dependencies are covered, then that makes it easy enough to engineer some automation to package CF however one wants. CF Release Integration isn't a Pivotal team, it's a Foundation team Ta, didn't realise that, and similarly thanks for the details on what the team's responsibilities are. Regards, Daniel Jones - CTO +44 (0)79 8000 9153 @DanielJonesEB < https://twitter.com/DanielJonesEB> *EngineerBetter* Ltd < http://www.engineerbetter.com> - UK Cloud Foundry Specialists On Sun, Oct 30, 2016 at 2:46 AM, Amit Gupta <agupta(a)pivotal.io> wrote: Hey Daniel,
Can you elaborate on the "BOSH cruft"? The plan is to have cf-deployment and the releases which constitute it leverage BOSH links [0 <https://github.com/cloudfoundry/bosh-notes/blob/master/links.md>], global networking [1 <https://github.com/cloudfoundry/bosh-notes/blob/master/finished/global-networking.md>], config-server credential generation [2 <https://github.com/cloudfoundry/bosh-notes/blob/master/config-server.md>], and cloud config [3 <https://github.com/cloudfoundry/bosh-notes/blob/master/finished/cloud-config.md>] such that a lot of the cruft goes away. Imagine all credentials, IPs, and things that should be defaults (e.g. nats.username: nats) gone from the manifest.
I definitely think that theoretically, cleaner separations between CF and BOSH would be beneficial indeed, and abstractly, the thing you're describing (a spec of some sort) would be nice to have. The reality is that (a) most operators of CF use BOSH, (b) *all *upstream teams need a consistent way to deploy and test that their bits are likely to not break things before promoting to the integration pipelines, and (c) the integration pipelines need to be able to quickly build, deploy, and test combinations of bits so that official releases can be cut when there's a CVE fix coming from an upstream component. In an "army of engineers" world it may be feasible to account for (a)-(c) while also developing an abstract spec -- for now I'm skeptical and wouldn't change the team's mandate in my personal opinion.
Also worth noting, an implicit requirement of the platform is minimal-downtime upgrades. Release Integration's mandate should eventually include building and running automated tests to certify such scenarios (and each contributing team's mandate should include building solutions that can work in such scenarios). This would be significantly more difficult without being able to assume anything about the means of deployment and orchestration.
By the way, CF Release Integration isn't a Pivotal team, it's a Foundation team that happens to be staffed entirely by Pivotal employees. This isn't unique to the Release Integration team. There have indeed been engineers from other Foundation members contributing to Release Integration in the past.
That said, I'm not necessarily arguing for (or against) the certification requirement of BOSH-only. I want the experience of operators using BOSH to deploy CF and anything else to improve significantly. Certification requirements shouldn't hinder those efforts, but beyond that, I haven't personally thought through the pros/cons of a BOSH-only requirement.
[0] https://github.com/cloudfoundry/bosh-notes/blob/master/links.md [1] https://github.com/cloudfoundry/bosh-notes/blob/ master/finished/global-networking.md [2] https://github.com/cloudfoundry/bosh-notes/blob/ master/config-server.md [3] https://github.com/cloudfoundry/bosh-notes/blob/ master/finished/cloud-config.md
Cheers, Amit
On Sat, Oct 29, 2016 at 2:37 AM, Daniel Jones < daniel.jones(a)engineerbetter.com> wrote:
A short email turned into a long one.
TL;DR:
- Make operator documentation part of certification - Make release integration a concern of all vendors, and have them contribute resources - Make release integration's output a spec and not BOSH releases
--- Long version
David: Cheers for that explanation, I had taken a look at the repo and had wondered what exactly the plan was.
Now, marketing and communications issues aside...
"instead start work on describing the BOSH <-> CF interface more cleanly, and work to improve that so that various deployment mechanisms can be used"
This is an awesome idea.
If one is to bundle/package all the CF components together, then one needs to understand:
- What versions of the components work together - Which components depend on properties of others
Now that sounds pretty trivial, and it would be for a slow-moving project, but for something as rapidly-changing as Cloud Foundry my impression is that working this out anew on each version of cf-release would be quite an overhead.
If there was a machine-readable definition of these, then it would go a long way to making it easier to deploy CF in different ways. However, the thing I keep coming back to when pondering this is that the above is a subset of a BOSH manifest. Then again, it's all the other BOSH cruft that gets in the way of that being easily understood and parseable.
I'm going to explicitly show my ignorance here (rather than implicitly as I usually do by way of blunder), and naively suggest a situation that may already be what happens in some form.
CF Release Integration transitions from being a Pivotal team, to being a cross-member team, with committed resource from each platinum partner pushing their own distro. Their output is not a BOSH release but instead a machine-readable spec of how compatible versions of components are plumbed together. Distribution creators are then free to use this to generate their own deployment methods. Members other than Pivotal are incentivised to contribute staff to break the BOSH coupling, and Pivotal get the benefit of being able to move resource elsewhere.
In an ideal universe where the Cloud Foundry Foundation has an army of engineers, release integration could be a responsibility of the Foundation as a neutral third party, as could acceptance tests. That'd then tie together components that make up the platform, and executable tests, with the organisation that determines what is certifiable.
Getting back to the BOSH/not-BOSH debate: how about if there was a documentation element of certification? All certified distributions need to meet certain criteria of easily-accessible documentation that explains how to perform common tasks (equivalents of `bosh ssh`, scaling a component out, and so on). That'd mean that operators need to know the types of actions available to maintain a CF, and can be guaranteed easy access to the implementation details thereof.
Regards, Daniel Jones - CTO +44 (0)79 8000 9153 @DanielJonesEB <https://twitter.com/DanielJonesEB> *EngineerBetter* Ltd <http://www.engineerbetter.com> - UK Cloud Foundry Specialists
On Sat, Oct 29, 2016 at 2:51 AM, David Sabeti <dsabeti(a)pivotal.io> wrote:
I realize a big part of this thread is about BOSH, but I thought I could provide a little more context about cf-deployment <https://github.com/cloudfoundry/cf-deployment>, in case anyone is curious.
cf-deployment will replace cf-release as the source of truth for how to deploy Cloud Foundry. Instead of a repo with submodules of the various components (cloud_controller_ng, gorouter, etc.), it's simply a BOSH deployment manifest that references final release versions of the component releases (capi-release, routing-release, etc.). Most importantly, it includes diego-release and, by default, deploys Diego as the backend, in the same deployment as CF.
The Release Integration team is already testing cf-deployment on a regular basis and it passes acceptance-tests. We're currently working on fleshing out the migration path from a spiff-template-generated manifest, which uses the "v1 schema" for BOSH manifests, to cf-deployment, which uses the "v2 schema". (Note that "v1" and "v2" are not official versioning schemes for BOSH, they're just a colloquial term that we sometimes use to describe a collection of features which you read more about here <https://github.com/cloudfoundry/bosh-notes>.) We're also planning to add various forms of polish and configuration to cf-deployment.
As far as timelines go, our goal is to have cf-deployment generally available for a few months before the EOL for the DEAs, to give everyone time to do the migration. We're hoping to have it GA sometime in February. We're already starting to dog-food it among the CF engineering teams to get initial feedback. I'd encourage anybody who's interested in giving it a shot to try and deploy with cf-deployment and to send feedback our way.
Feel free to reach out to me if you have any questions about cf-deployment.
Best, David Sabeti Product Manager, CF Release Integration
On Thu, Oct 27, 2016 at 7:12 AM Chip Childers < cchilders(a)cloudfoundry.org> wrote:
I think the evolution from cf-release to cf-deployment is naturally causing this to happen, although you make a very good point that perhaps that could be accelerated and / or more explicit.
The DEA EOL notice that Dieu shared back in mid September talked about the removal of the DEA's from cf-release after the 6 months of overlap between Diego "1.0" and the DEA's being fully retired.
Lots of moving parts here, including needing to support the transition of everyone from one to the other.
On Thu, Oct 27, 2016 at 4:47 AM Daniel Jones < daniel.jones(a)engineerbetter.com> wrote:
Thanks for that Dieu!
Is there work scheduled to get OS cf-release and associated documentation into a state where Diego is the default, rather than deploying the DEA architecture?
Regards, Daniel Jones - CTO +44 (0)79 8000 9153 <+44%207980%20009153> @DanielJonesEB <https://twitter.com/DanielJonesEB> *EngineerBetter* Ltd <http://www.engineerbetter.com> - UK Cloud Foundry Specialists
On Thu, Oct 27, 2016 at 9:10 AM, Dieu Cao <dcao(a)pivotal.io> wrote:
Hello all,
The 2017 PaaS Certification Requirements is available here [1] and we would appreciate questions/comments on the doc or in this thread.
I've also attached a PDF version for those of you that have difficulty accessing google docs.
2 major changes from the 2016 certification requirements include requiring Diego/Garden and also requiring the use of BOSH.
-Dieu Cao Runtime PMC Lead
[1] https://docs.google.com/document/d/1S9o4u65uG_YrVQAdg7nx w7BrXAiL64hFSWBNVKZCMNI/edit
-- Chip Childers VP Technology, Cloud Foundry Foundation 1.267.250.0815 <(267)%20250-0815>
|