Coder Social home page Coder Social logo

Comments (2)

sclevine avatar sclevine commented on July 19, 2024

Hi @SamuelMarks, thanks for the feedback!

The goal of MicroPCF is to mimic the functionality of a full PCF installation locally with some assurance that apps developed using MicroPCF will run the same way when pushed to production (PCF). We've put a lot of thought into the current implementation of MicroPCF, and we believe that it best serves this goal. Most importantly, the current implementation allows us to directly consume the BOSH releases for the various CF components and service brokers that we depend on.

Here are what I would consider to be disadvantages of splitting MicroPCF into Docker images:

  • Slight increase in overhead (for most users)

    Most of our users run OS X or Windows on their workstations. Docker containers must be run in an extra VM running the docker daemon on these platforms.

  • More complex installation

    We currently depend on Virtualbox and Vagrant to run MicroPCF. We believe that this is simple and familiar for many of our users.

  • More complex build process / more work to bump BOSH release versions

    We currently use bosh-provisioner with a single BOSH deployment manifest to do a pseudo-bosh-deploy of the BOSH releases we depend on. Breaking the individual components into containers would either require a different deployment manifest for each component, or a move to real BOSH with extra tooling to create images. In short, it's more complicated and likely more work for us when we want to bump versions.

  • Questionable benefit for testing

    Each component we integrate is already unit tested and acceptance tested by the teams that develop those components. We run the acceptance test suites from each component against MicroPCF to validate that MicroPCF deploys and configures them appropriately.

    Many of these acceptance tests require a full CF deployment to run. Breaking MicroPCF down into smaller components might allow us leave off a few components in each test (at the expense of risking components breaking each other) but I suspect the benefit would be marginal.

To address your other suggestions: using the Vagrant Docker provider would require the user to install Virtualbox, Docker, and Vagrant. Using multiple VMs for MicroPCF (with Otto, or just using Vagrant) would increase the footprint very significantly.

While I agree that a more modular, lower footprint method of developing apps for CF would be neat, the current implementation is more in line with our goals.

from pcfdev.

SamuelMarks avatar SamuelMarks commented on July 19, 2024

Thanks @sclevine for your detailed reply,

You bring up some good points, I'm thinking the best way to approach this is to make production CF deployable in containers, then revisit the concept.

from pcfdev.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.