Continuous Delivery with Lokad.CQRS
Thursday, April 26, 2012 at 18:02 Tweet in
Azure,
CQRS,
Cloud Computing,
DDD,
Event Sourcing,
Lokad,
xLim Today I was presenting at the Roots about Lokad.CQRS architecture style. As part of the presentation I created a quick deployment of Lokad sample project, tweaked for a continuous delivery scenario.
In short, every time a change is pushed to master within this repository: Lokad.CQRS-AppHarbor, AppHarbor performs a new full deployment of this site: http://lokad-cqrs.apphb.com. It is the duty of Lokad.CQRS to rebuild any projections that might have changed in the code.

For the most fun: this deployment is actually about 2 clouds. AppHarbor (located within Amazon) deals with builds and hosting, while data is persisted on Azure. I just didn't have time to write adapters for the persistence available within the AppHarbor (the entire deployment thing was delivered within few litres of coffee and 6-8 man hours of work).
Naturally, while working with the system within local development environment, persistence is based on dead-simple file storage.
Currently this repository is an off-shot of latest Lokad.CQRS, created for the demo purposes.
However, this experience enables totally new development approach by massively slashing down development friction. I'm tempted to push it to the master of Load.CQRS and keep it hooked with this continuous deployment, while maybe even adding more domain "meat" around inventory management concept. I think, some fun could be had around the process, where every accepted pull request is immediately deployed to production.
Reader Comments (1)
Rinat, great to see the start of a working end-to-end sample that has all of the latest and greatest! Thank you!
For those of you trying to download the source code from GitHub and run it on your local machine, you may get stuck on the "Waiting for registration" step if you try to register an account using the Web client. To get the registration process to finish, you may need to do the following to get it working:
The Visual Studio 2010 solution is setup to run the Saas.Web project by default.
This is what you normally want BUT before you run it for the first time you should:
Create a local directory of C:\temp\lokad
Right-click on the SaaS.Engine project inside of Visual Studio.
Navigate to Debug-->Start new instance
This will launch the Engine project in a command prompt.
Let it do its thing and it will create the other required sub-directories under the C:\temp\lokad path that it needs.
Close the engine's console window and then run the solution from Visual Studio (F5).
You should then see the Login to SaaS Demo screen in your web browser.
Click Register and go through the registration process to see it in action.
@kcstreet