Comments (2)
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.
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)
- Enabling nfs-volumes on PCF-DEV and / or PWS HOT 3
- Unable to register service broker with self-signed certificate HOT 2
- PCF-DEV and DELL ECS HOT 3
- Timed out waiting for the VM: rpc error HOT 13
- DELL ECS with PCFDEV HOT 2
- cf dev start fails HOT 7
- cf dev start: Failed to deploy the BOSH Director: Process exited with status 1 HOT 5
- pcfdev installation failed on Mac OS X version 10.13.6 HOT 5
- cf dev start stuck at 55, pcfdev ova ssl error on Windows with virtualbox environment. HOT 2
- PCDev Stale version of Bosh/PAS?? HOT 2
- vb ù ù HOT 1
- vb ù ù HOT 1
- vb ù ù ù HOT 1
- vb ù ù ù HOT 1
- vb ù ù ù HOT 1
- unable run the pcf dev -f filepath giving new object error in power shell HOT 2
- pcfdev scs fails to deploy. HOT 13
- pcfdev fails to deploy PAS HOT 2
- Download of PCF Dev v1.3.0 for PAS 2.5.7 not possible HOT 3
- [PCF-Dev v1.3.1]: Deployment of Spring Cloud Services (SCS) fails again - Service broker error: Could not find an available leader HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pcfdev.