New cloud development workflow using Github, Cloud9ide and CloudFoundry.
- by weng
So time is changing towards cloud development/computing.
I'm trying to get the new "cloud" workflow based on the services I'm going to use: Github, Cloud9ide and CloudFoundry.
Here is what is on my mind:
Github acts like a central (main repo) just like yesterday's local filesystem. Every service will base it service upon this main repo.
Workflow:
Github: I create a new Github repo served as main repo for the project.
Cloud9ide. I open my Github repo and write my tests and implementation (BDD/TDD). When I'm ready I save (commit) it to main repo on Github.
X: A running instance of Jenkins detects someone has committed and fetches the latest commit, builds, deploys, tests (yeti and/or selenium) and reports if the tests were passed or not. If not, I make another commit til all tests are passing.
X: I run the CloudFoundry commands to push the main Github repo to CloudFoundry's server and it will deploy my app automatically.
What I'm still confused about is where this X environment will be. On a local server where I have to install Jenkins? Or could I install it on Cloud9ide (when java is supported) or will it be on another cloud service? Also, that X environment has to be able to fetch (clone) the Github repo and run the build scripts.
And since the concept of Cloud9ide is very new and there haven't been any other predecessors I really wonder how the workflow will look like. We all know Github's workflow. We now know CloudFoundry's workflow (deploy/scale with a restful API/command line tool). But how Cloud9Ide will operate is still somewhat unclear to me. Someone on Cloud9ide mentioned that there will be buttons like deploy so I can deploy with one click. But that I guess will depend on what services that deploy process will hook up into etc.
Could someone enlighten this cloud workflow topic and fill in the gaps.
Thanks.