Friday, 21 September 2012

Open source IT as a service!

Modern version control systems (e.g. GIT) and emerging cloud and platform standards (e.g. Openstack) provide an opportunity to share common open source service definitions for commodity hardware.

What?

A solution for sharing IT "service definition templates" for entire business services and the process for its maintenance.



Everything for operating a business' IT would be defined in a version control repository so it would be shareable.

Why?

The hope would be to raise the transparency (and ultimately the quality) of IT processes for businesses by getting IT staff to work collectively across industry to provide shared IT services and processes.

  • Reduce IT support services repetition and increase productivity
  • through the commoditisation (i.e. templating) of sevices AND maintenance process.
  • Increased security through peer review (complete transparency).
  • Prevent vendor lock-in to cloud, or other software service companies.
  • Customers of IT services to "in-house" service hosting whilst "out sourcing" the support for which ever level of the stack they choose.

How

A trusted "deployment appliance" (itself created from the source repository) could allow pre-tested open-source solutions to be maintained and deployed on compatible cloud infrastructure.The appliance for a solution could be deployed in two typical "modes", dev or live.

Dev

A dev appliance can be created open (can run on any compatible hardware or VM image).The following activity would be enabled in dev:

  1. Developing changes
  2. "Check in" changes
  3. Deploying test changes, verifying (testing) and releasing proposed changes to the development instances of the service.
  4. Share (pull request for repo to beta / live / 3rd party).

    Full best practice CI Devops processes recommended here and would be backed in to the appliance!

Test / Live

A beta or prod appliance would subscribe to levels of acceptable change from an "up stream" version of the repository.

Detail

Initial ramblings - need to start to pull together open design here:

Basically everything in source except binaries, they get downloaded direct from authoritative publishers and CRC checked.

Need a clone "create a dev appliance" process with "bootstrap commands" from an authoritative repository source e.g. wget and run "boot" script where a software stack appliance to facilitate collaborative DevOps is downloaded and configured:

  1. Trusted base image downloaded, maybe patched and booted (PXE boot and / or cloud API).
  2. "Inside" booted base image, pull authoritative Version Control System repository and install and configure the following:
    • Config Management e.g. Puppet / Chef
    • Orchestration e.g. Rundeck, mcollective
    • Issue tracking
    • Other workflow dashboard(s)
  3. Other boot script actions could include:
    • Authorise current Repo(s)
    • Service release (deployment)
    • Generate site specific "config"
    • Start device instances via cloud API
    • Service test / verification