Sometimes a small yet dedicated team needs a do-it-yourself solution rather than a massive implementation that involves multiple specialists and other budget draining resources.

We wanted to implement a solution that was open source, scalable at ease, and it could be built and not bought!

When we first set out to build our public cloud solution, we spoke to a number of specialists and peers who told us "You'll need a team of at least 5-10 people to build and maintain the size of platform you want". As a startup company sometimes that just isn't possible. We had a much smaller team of techies who wanted to achieve our goal of becoming "The #1 UK Developer Cloud" provider.

We decided to use OpenStack, an open-source cloud solution that can run on standardised hardware with a robust and active community around the world.

Automating the setup

We knew we had to use tools to automate the setup as much as we could. Being a small team, automation is vital to allow us to be as efficient as possible as well as us not wanting to continually walk back and forth to and from the data centre! We decided that we would use Canonicals Metal As a Service or MAAS for short, to automatically detect and deploy our hardware. For software we use openstack ansible or OSA for short. We did a lot of research into other tools such as puppet or chef but decided OSA was for us. There is a lot of support in the ever growing community and we wanted to be part of it.

Keep it simple

OpenStack is a fairly complex beast to say the least. There are multiple technologies that all need to work in perfect harmony to ensure a smooth and reliable experience for end users.

We wanted to keep the platform as simple as possible whilst maintaining a full rich feature set for our customers. Doing this was a relatively tough challenge, we were using technologies that we were familiar with but getting them to work the OpenStack way was a BIG learning curve ( Even for self proclaimed geeks ). However this was made easier by following the OSA documentation. We were able to to use the documentation as a great guidance whilst putting in our own configurations on what we thought would be best for ourselves and our customers.

Maintaining the platform

Whilst we all want to have the "new, cool and shiny things", we still need to remember that the platform requires some love and attention to make sure it doesn't crumble beneath us. This was very important for us in our design. Whilst we will be upgrading components of the platform we also had to remember that it will always need to be maintained to a high standard. There is no point adding more hardware and more features if the platform isn't stable, you end up digging yourself a bigger hole!

To achieve this, we have put in a robust monitoring system ( That we will continue to grow and improve ) and also decided to run OpenStack in an Active/Active state for High Availability, or HA for short . This makes the OpenStack implementation much easier to maintain as well as less prone to complete failure. The other option, Active/Passive, will need more automation to be built as well as manual intervention, possibly in the middle of the night.

This is how we, as a small, dedicated team have set off on our goal of becoming "The #1 UK developer cloud platform" and I think I speak for us all here when I say: "As an individual and team, you need to be proud of the systems you’re running."