Configuring CruiseControl the CruiseControl way. Continuous Integration Maturity Model. MF Bliki: BlueGreenDeployment. Delivery tags: One of the goals that my colleagues and I urge on our clients is that of a completely automated deployment process.
Automating your deployment helps reduce the frictions and delays that crop up in between getting the software "done" and getting it to realize its value. Dave Farley and Jez Humble are finishing up a book on this topic - Continuous Delivery. It builds upon many of the ideas that are commonly associated with Continuous Integration, driving more towards this ability to rapidly put software into production and get it doing something.
One of the challenges with automating deployment is the cut-over itself, taking software from the final stage of testing to live production. Blue-green deployment also gives you a rapid way to rollback - if anything goes wrong you switch the router back to your blue environment. Designing a document database. A while ago I started experimenting with building my own document DB, based on the concepts that Couch DB have.
As it turn out, there isn’t really much to it, at a conceptual level. A document DB requires the following features: Store a document Retrieve document by id Add attachment to document Replicate to a backup server Create views on top of documents The first two requirements are easily handled, and should generally take less than a day to develop. Indeed, after learning about the Esent database, it took me very little time to create this.
There are several topics here that are worth discussion, because they represent non trivial issues. Storage: How FriendFeed uses MySQL to store schema-less data. Background We use MySQL for storing all of the data in FriendFeed.
Our database has grown a lot as our user base has grown. We now store over 250 million entries and a bunch of other data, from comments and "likes" to friend lists. How I Learned to Stop Worrying and Love Using a Lot of Disk Space to ... Update 3: ReadWriteWeb says Google App Engine Announces New Pricing Plans, APIs, Open Access.
Pricing is specified but I'm not sure what to make of it yet. An image manipulation library is added (thus the need to pay for more CPU :-) and memcached support has been added. Memcached will help resolve the can't write for every read problem that pops up when keeping counters.Update 2: onGWT.com threw a GAE load party and a lot of people came. The results at Load test : Google App Engine = 1, Community = 0. GAE handled a peak of 35 requests/second and a sustained 10 requests/second. MF Bliki: DatabaseThaw. Database · noSQL tags: A few years ago I heard programming language people talk about the "Nuclear Winter" in languages caused by Java. The feeling was that everyone had so converged on Java's computational model (C# at that point seen as little more than a rip-off) that creativity in programming languages had disappeared.
That feeling is now abating, but perhaps a more important thaw that might be beginning - the longer and deeper freeze in thinking about databases. Tim Bray's thought-provoking keynote talked about storage; including highlighting several alternatives to the conventional database world When I started in the software development profession, I worked with several people who had evangelized relational databases. Versioning Databases – Branching and Merging. Previous entries: If you are not familiar with branching and merging, I'd suggest Eric Sink's excellent Source Control HOWTO.
My preferred branching practice is "branch for release". New development work takes place in the mainline, or the trunk of the repository. As a product nears release, schema changes become rare and code churn slows. At this point, the team creates a branch for the release. Versioning Databases – Views, Stored Procedures, and the Like. What started as a short brain dump is tuning in to a longer series of posts thanks to all the feedback and questions.
In this post, I want to explain some of my thoughts on controlling objects like database views, stored procedures, functions, and triggers. Versioning Databases – Change Scripts. After considering the three rules and creating a baseline, an entire team can work with a database whose definition lives safely in a source control repository.
The day will come, however, when the team needs to change the schema. Each change creates a new version of the database. In my plan, the baseline scripts created a schema change log to track these changes. By "change", I mean a change to a table, index, key, constraint, or any other object that requires DDL, with the exception of views, stored procedures, and functions. Versioning Databases – The Baseline. Three Rules for Database Work. Some developers love working with relational databases, and other developers can't stand to touch them.
Either way - if your application uses a database, you have to treat the database with some respect. The database is as much a part of an application as the code and the models inside the software. Here are three rules I've learned to live by over the years of working with relational databases. 1. Never use a shared database server for development work. The convenience of a shared database is tempting.