Re: Proposal for Incubation in the Extensions PMC: MultiApps


Guillaume Berche
 

Hi Nikolay,

Thanks for sharing the MultiApp proposal and contributing this work to the community.

It seems MTA shares many objectives with the terraform providers for cloudfoundry [1], credhub [2] and uaa [3]  previous shared in [4], such as
- declarative model
- support for service instance provisionning
- expression dependencies across elements
- integration with secure credentials systems such as credhub or vault

Some objectives seem to differ though:
- terraform isn't designed to orchestrate expressed sequences of operations (and rather relies on external orchestrators for this),
- terraform isn't desired to monitoring state of resources once provisioned (e.g. starting/started/stopped/failed) nor displaying them to end-users

The TF provider seems broader in scope since in addition of the developer persona, it also addresses the cf admin and cf operators personas (i.e. full parity with CF CLI, and plans for handling some bosh resource in the future [5])

Leveraging terraform core and its ecosystem has provided many built-in, features without extra effort, e.g.:
- dry run
- partial update
- concurrent deployments
- templating (through modules)
- UI tooling (e.g. in intellij, atom)
- local or remote state management
- ability to combine multiple providers (e.g CF AR and CF CR)
- CI/CD integration (e.g. in concourse [6])

The TF provider contributors are now focussing towards having the provider join the list of official hashicorp providers [8], and has recently received some great SAP contributions [9].

You may reach out to the team on the terraform slack channel [7], we'd be happy to proceed with further exchanges around common and diverging use-cases.

On Tue, Mar 20, 2018 at 9:38 PM, Zach Robinson <zrobinson@...> wrote:
Excited to see this proposed Nikolay!

Nikolay has been sharing this project with some of the core teams over the last couple of months.  We have even been giving some thought to adopting some of the behaviors and/or code from this extension into core CF.

Some aspects I think are especially interesting:
- declarative manifest behavior
- an opinionated packaging structure
- deployment orchestration

CAPI is especially excited to see whether the community takes to some of this tooling as potential guidance for future roadmap.

-Zach
CAPI Project Lead


On Tue, Mar 20, 2018 at 9:35 AM Nikolay Valchev <nikolay.valchev@...> wrote:

Hi All,

 

SAP is proposing MultiApps (aka CF MTA deploy service) for inclusion in the Extensions PMC as a new incubating project.

MultiApps is envisioned to provide the missing higher-level lifecycle management capabilities for distributed applications in Cloud Foundry. It proposes a new declarative application model and corresponding tools helping developers achieve the following goals:

  1. Describe explicitly the structure of my application, its constituent CF-apps, routes, services and other technical artifacts. Tools, interpreting this model, would automate deployments, achieving unified lifecycle of all application components and ensuring the consistency and completeness of the distributed application.   
  2. Declare the resources (e.g. service instances or APIs from other apps) my application depends on at runtime and/or deployment time. Tools would then check existence of required service instances, possibly allocating the missing ones and making the needed app bindings. Additionally tools would resolve dependent apps API information and inject it in requiring app env.
  3. Declare configuration variables (and their relations) which distinguish different deployments of my application. Tools would bind sub-components, automate deployment based on default settings, or request missing mandatory values interactively.

MultiApps is currently available on GitHub [1].

 

Details:

Project Name: MultiApps

Project Proposal: See [2].

Proposed Project Leads: Nikolay Valchev, SAP

Proposed Scope: See [2]

Development Operating Model: Dedicated committers (local)

Technical Approach: CF CLI plugin and server application automating lifecycle operations

Please let us know if you have any questions or feedback.

 

Best regards,

Nikolay Valchev

Development Architect and Product Owner, SAP

 

[1] https://github.com/SAP/cf-mta-deploy-service

[2] https://docs.google.com/document/d/1TCx_2gv2_n-StcV4lzbbaD4rma9HfaRG7O9wb6-egk4

 


Join cf-dev@lists.cloudfoundry.org to automatically receive all group messages.