Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Abel Avram on Jul 19, 2011
Veracity is a DVCS that can be installed on Windows, Mac, and Linux, and uses a distributed database for its repository.
Veracity is a relatively new Distributed Version Control System (DVCS) that has been in tests for more than a year, and now version 0.9.1 made its debut as “ready to use.” Veracity is similar to Git or Mercurial in many ways, but there are some differences. We talked to Eric Sink, the founder of SourceGear, the company behind Veracity, and he said that their DVCS supports a decentralized database:
A unique feature of Veracity is its "decentralized database". Most version control tools are designed to manage data which is file system-oriented, directories and files. Veracity can do this as well, but it also has the ability to manage data which is database-oriented, records and fields.
Just as it does with file system data, Veracity's decentralized database keeps the full history of the database. Every version of every record is retained in history, with log information about who made the change and when. Veracity also supports push and pull of "database changesets", including the ability to automatically merge (at the level of a record or of a field) and resolve constraint violations.
This capability is what allows this database to be "decentralized".
Users can choose various databases for their Veracity repository, as Sink explains:
Veracity communicates with repository instances through an API which hides all the details of how things are stored. The intent here is that Veracity users can choose how their repository is stored. The current version of Veracity supports only one of these "repository storage plugins", called FS3. This implementation stores blob data in files (up to 1 GB of blobs in each data file) and uses a SQLite database to keep track of where everything is.
We have prototypes of storage layers which keep everything in an enterprise SQL database. These kinds of things will be available from SourceGear in the future. Some of them may be proprietary rather than open source.
Veracity supports clone/push/pull between repository instances even if those instances are running different implementations of the storage layer. So for example, it would be possible for a Veracity team to run a central server which keeps a repository instance in an Oracle database (if/when we have an Oracle implementation) while configuring all the developer desktops to use FS3.
Veracity was written in C and JavaScript, and it was built with CMake, and there are binaries for Windows, Mac, and Linux. The code was open sourced under the Apache 2 license. A public repository is available for those interested to see how its client interface looks like.
There is still work to do, such as integrating it with Visual Studio and Eclipse, adding fast import/export, sub-modules, wiki and others, but Sink says Veracity’s code is stable enough that future versions will be compatible with the current repository. Version 1.0 will be released during OSCON 2011 taking place in a week.
As a note, SourceGear created Vault, a Windows-centric version control system designed to replace Microsoft’s SourceSafe.
Want to know how software releases can be stress-free and happen with one click? Try Go free!
Improving Software Delivery Cycles: Pre-requisites and Inhibitors
Continuous Delivery: Anatomy of a Deployment Pipeline
Adopting Git for the Enterprise: Risks and Considerations
Branching & Merging Efficiently: A Guide to Using Process-Based Promotional Patterns
Go: Agile Release Management Solutions. Go enables predictable, defect-free and timely software releases.
both are popular enough and if the new comer does not come with good enough feature, how does it survive to 1.5?
..I think he's just invented Lotus Notes :-)
"Just as it does with file system data, Veracity's decentralized database keeps the full history of the database. Every version of every record is retained in history, with log information about who made the change and when. Veracity also supports push and pull of "database changesets", including the ability to automatically merge (at the level of a record or of a field) and resolve constraint violations."
Time will tell if this does well. From past observation Eric is extremely good at figuring out what users what from version control. The work that Source Gear does also strikes me as being well built. (Eric has been in the game a long time including work on some of the earliest browsers!)
This "late Beta" release seems squarely aimed at non-Windows / VS users. Take a look at what's needed to compile it on Visual Studio. Not terribly hard but some unexpected hoops to jump through, like loading Cygwin! I hope that version 1, just works with Visual Studio.
It would be great to also have a write up on another DVCS called Fossil (www.fossil-scm.org) that is super simple to install (single executable), built-in web server, wiki, ticketing system and storage in a Sqlite db.
I have moved all of my systems from Hg to fossil and it is great.
There are lots of innovative options out there.
Well, I can see right now at least 3 main advantages that they could benefit over both Hg and git:
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
5 comments
Watch Thread Reply