Choosing A Low Cost Virtual Private Server (VPS)

For my open source ‘playground’ I need admin access to a server. I wanted the output of my efforts to be ‘available’ online and I wanted all this control at the lowest price possible. All things considered, it made sense to go for a Virtual Private Server (VPS) to support my learning experiences as I’d have complete admin control. As a user familiar with the rich UI of Microsoft tools (including IIS and SQL Server) one of my challenges would be to install and configure the required software for my new Linux server from the command line only – where possible.

The server will host my blog (so it needs to obtain a reasonable level of up-time) but it’s not going to process commercial transactions and no business will suffer if I achieve 99.9% up-time rather than 99.999% (i.e. five 9s). Incidentally, three 9s equates to eight hours of unplanned downtime during a year whereas five 9s is just over 5 minutes… Additionally, I’m really not going to ‘hammer’ this server’s resources so, although I wanted something respectable, CPU processing power, RAM, I/O didn’t need to be excessive (think lean principles… any more than necessary is a waste right?…) What I did want was a reliable support team behind the hosting solution!

I took a good look at some of the solutions on www.lowendbox.com had a reviewed the options relating to memory, processing power, storage etc and eventually came to the conclusion that when it comes to cost vs. capability I couldn’t improve on my favourite cost-effective host (which I could not recommend more) www.contabo.com – A German company operating two data centres in Munich who have won various awards.

Their VPS M offers a server equipped with two high performance Intel CPU cores as well as with 6 GB of guaranteed RAM. It has unlimited traffic and 500 GB of storage. There are choices of several Linux distributions (as well as Windows Server 2012 and 2008 available). As they say:

…this is the power of a root server at the price of a webspace package at only 6 .99 EUR per month!

BTW. I am NOT on commission here… I just use these guys a lot, their support is fast and they’ve never let me down.

I opted to install Ubuntu Server 16.10 and there’s an option where they install Webmin + LAMP for free which does give you a basic GUI to interact with your server (this is reassuring for me – until I become a die-hard Linux administrator). They also prompt for the reverse DNS PTR record so I could add this domain ‘agileleanopen.com’

After signing up, I received the confirmation email and waited for notification the server was up and running – I received this within 1 hour – those Contabo boys are fast! I did take a peep at Webmin to see what was running on the box. The answer was ‘a lot’… I guess the default configuration is ‘all things to all men/women’ and I doubt too much effort has gone into server hardening… Perhaps a review of required services and basic server hardening awareness is a topic for a later date…

Later, I’ll also be considering (and configuring) a cloud-hosting environment with AWS but I wanted both options to compare and contrast – and blog about!

Agile, Lean, Open… What?

Regardless of background or religious belief most would agree that, in our current physical existence, our capacity for knowledge is limited. So much to learn, so little time… If, like me, you have a desire for knowledge and love learning you soon realise that it’s impossible to absorb anywhere near the information you crave.

I have a coping strategy,

  1. Know where I’m heading… long, mid and short-term. Knowing this will help me refine the scope of my learning to what’s important at the current time.
  2. Ignore the ‘noise’ – that’s anything that’s useless to my progression as a human being (e.g. what Justin Bieber is up to) or in conflict to the above.
  3. Ignore the above rule if something screams “I’m important, look me up!”. If my brain tells me it’s important to learn, it probably is and it’ll be absorbed quickly with minimal impact.
  4. Continually reprioritize my learning objectives – life changes, so must we.
  5. Learn just enough to achieve what it is you are trying to achieve – considering the constraints on time, anything more is wasteful.
  6. Return to a subject and learn more about it only when absolutely necessary – i.e. work or life requires that specialism.

In doing so, I have a chance of being able to productively contribute and add value to that small portion of reality that I am currently interacting with.’

As you can see, I basically take an agile approach to my learning, well, actually my life! With a busy job, a demanding family of 5 and an MSc to study for it’s the only way I can stay on top of things! In fact, I could happily add another item to the list above…

7. Deliver ‘Just In Time’ (JIT) which is equally applicable to my life as it is the manufacturing industry!

This blog focuses its scope on the knowledge I require to deliver value in my work. As a CTO / Project Manager / Software Delivery Manager and Solutions Architect (wow, we have so many roles to cover these days…) I face a continual struggle to stay abreast of modern technologies and useful insights within the software solutions ‘world’. However, it’s vitally important to do so and I want to ‘share’ my lean learning experiences with anyone else in a similar position. In doing so I’m anticipating that some of you may wish to reciprocate and we’ll all benefit.

We’re going to keep the articles purposefully ‘lean’ with the goal to obtain just enough value to provide benefit. You’ll not find any lengthy tutorials or step-by-step guides but you may find the odd technical overview supported by links to useful resources enabling you to explore further should you feel it necessary.

So that’s the ‘Agile’ and the ‘Lean’ covered… What about the ‘Open’?

My first introduction to programming came in the form of PERL, I moved to PHP and MySQL and then found myself in corporate environments requiring Microsoft technologies ASP (VBScript and HTML) which evolved to .NET and C#. This resulted in some expertise around the Microsoft Solution Stack including IIS, SQL Server, MVC, WebAPI and so on… All of this time I kept a keen eye on Open Source, the increasing prevalence of JavaScript, the thriving community and the very ‘cool’ tools they created and shared.

In my current role, I’m lucky enough to be delivering a variety of software projects for web and mobile and some web service integrations with partners. As such I’m exposed to various different technologies and trends and occasionally get to ‘hang out’ with some clever coding teams.

The argument for and against Open Source rages on but over time, as open source becomes ever more pervasive, I believe the arguments against it are slowly becoming less valid – particularly in the hosted software solutions space – which is the area where I concentrate my efforts. Even Microsoft realises it has to open source certain tools and technologies to remain ‘in the game’. So, for a variety of reasons (we’ll probably go into some of these in another post), I believe it’s time to move more towards the Open Source arena.

Along the way I’ll share my experiences of re-engineering our solutions and re-architecting them for migration to the cloud. We’ll consider technologies, choice of database store, hosting, and a number of other things… I’m armed with a Linux VPS which will serve as a host to this blog and a ‘playground’ for a number of technologies. Again, I’ll be sharing any experiments, outputs and learning experiences with you.

So, Agile, Lean and Open… let’s go and explore and have fun doing so!