Over a million developers have joined DZone.

UK Government Implements Open Source Stack with MongoDB, Puppet, and More

DZone 's Guide to

UK Government Implements Open Source Stack with MongoDB, Puppet, and More

· Database Zone ·
Free Resource
It looks like governments are hovering towards using open source source technologies nowadays. This trend is probably due to an influx of hiring tech savvy developers who like to keep up with the latest trends. The uk.gov site is taking an especially interesting approach by implenting essentially a completely open source stack (except for Amazon Web Services and hosting). Below is a list of the technologies being used:

  • Ubuntu 10.04 LTS instances on Amazon EC2
  • Amazon SES
  • Amazon S3
  • Jetty
  • Nginx, Apache and mod_passenger
  • Jenkins
  • Varnish
  • Puppet

Most of the application code will be in Ruby, which will run on a mixture of Rails and Sinatra. They believed that using these two would give them a great balance of clean code and ample productivity. The router is written in Scala and sprinkled in will be a range of Gems that they've made available at their Github here.

They started off building everything using MySQL, but eventually converted to a NoSQL solution, MongoDB, because it was better for documents. They still had some relational data that required the use of MySQL, so they've also adapted Amazon's RDS platform, which they believe will take away many scaling and resilience concerns.

On the frontend, they're using jQuery, Chosen, and other plugins. Content management is being handled by Google Apps integration as well as MediaWiki.

You can find more details about the architecture by checking out the source link below.  Hopefully this will lead to more governments saving money with open source (as long as they use it smartly) and saving us tax dollars.

Source: http://digital.cabinetoffice.gov.uk/colophon-beta/ 


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}