Archive for the ‘Technology’ Category

Book Review: Docker in Production

Thursday, October 29th, 2015

Docker in Production Book CoverI picked up a copy of Docker in Production – Lessons from the Trenches during a recent O’Reilly sale, hoping to pick up some tips to pass on to customers that I work with. I have to say that I was disappointed! It’s not that the book isn’t full of useful information. It is. After a good start, it just failed to deliver on the title for me.

After covering the basics and the likely areas of concern, it introduces an example with the wise words that not everyone is looking to deploy a platform for running tens of thousands of containers and that even small deployments can benefit from their use. The example describes a simple environment using systemd to stand up a static topology with the ability to provide environment specific configuration. Just the sort of concrete material I was hoping for.

The next couple of chapters provided further examples from a second company: one using a simple scripted approach and another using AWS Beanstalk. So far, so good. At this point the book changed tack though and switched to covering different subject areas such as security, building and storing images, configuration management, networking, scheduling, service discovery, and concluding with logging and monitoring. Although, as I say, there was lots of good information scattered throughout, these chapters somehow felt like they were just giving an overview of the current state of the Docker ecosystem without giving much in the way of guidance as to how to select from the myriad of options to create a production-ready solution.

Perhaps I’m being unfair and this is simply a reflection on the current state of play. Whilst the Docker feature set is still being fleshed out there are still many compromises to be made and over time we may see more repeatable deployment patterns emerging. The fact that much of the material in the book was not new to me is probably a reflection of the efforts I am taking to keep up with what is a rapidly transforming area.

One final thought: it will be interesting to contrast this book with the free eBooks series that The New Stack has just begun. The first book, entitled “The Docker and Container Ecosystem”, includes some interesting metrics to suggest who are the main players. The catalogue of services and projects that form the second half of the book is truly eye-watering and whilst it can be seen as an indicator of vibrancy, it does indicate a real need to be able to provide guidance to those who do not have the time or inclination to immerse themselves in this world.

Container Camp LDN 2015

Sunday, September 13th, 2015

On Friday I made my way up to the Barbican Centre for this year’s edition of Container Camp London. After a slow start (no-one seemed to know that we were supposed to descend five floors to the cinema in the bowls of the building) things finally got under way. Here’s a quick summary of the day’s sessions:

  • Bryan Cantrill, CTO at Joyent kicked off the day with a animated romp through the history of containers ending with the view that containers deserve better than to be run in virtual machines and, perhaps not surprisingly, Joyent’s Triton project gives you the ability to turn the bare metal in your datacenter in to one large virtualized container host.
  • Next up (after another hiatus to sort out projector woes) was Shannon Williams, co-founder of Rancher Labs. He talked about what you should be looking for in a private container service which again, not surprisingly, read much like a feature list for Rancher.
  • Lack of network connectivity was the next issue which saw Bryan Boreham from Weaveworks take to the stage. Byran gave a technical presentation describing why consensus (as used by Consul or etcd) may be overkill and why Weave uses conflict-free replicated data types (CRDT) for service discovery and IP address management.
  • Mandy Waite from Google gave an introduction to Kubernetes – nothing new there.
  • Stephane Graber, who is the project lead for LXD at Canonical, gave a nice demo of some of the capabilities of LXD. He stressed that LXD is aimed aimed at system (i.e. whole OS) containers rather than application containers, suggesting, for example, that you might run Kubernetes under LXD. He failed, however, to explain what features differentiated it in this respect.
  • There was selection of lightning talks over lunchtime, most of which now escape me. Ben Corrie from VMware spoke about Project Bonneville, demonstrating vSphere as a container host. Liz Rice would have demonstrated the real-time scaling of force12.io if she’d been able to connect to the screen.
  • After lunch, Arjan Schaaf from Luminis illustrated that, as always, you should performance test. In this case, to understand the inter-container networking characteristics of your IaaS and SDN.
  • Alissa Bonas from Redhat demonstrated the OpenShift/Kubernetes integration in ManageIQ that allows you to drill down from a container view of the world in to the underlying infrastructure (virtual or physical).
  • Miek Gieben spoke about the dynamic, container-based infrastructure that powers Improbable.io based on Core OS, fleet, etcd and DNS.
  • After yet another coffee break (queue trek back up five flights of stairs), Ben Hall gave an entertaining pitch on attempting to keep nefarious users at bay whilst giving them free reign over a Docker setup in his Scrapbook learning environment.
  • This was followed by Diogo Monica of Docker cover the Notary and the Trusted Update Framework as integrated with Docker 1.8. I was just glad that I had saved watching Docker Online Meetup #24 for the journey home as it was the same slidedeck.
  • Perhaps the most impressive session of the day was by Loris Degioanni, CEO at Sysdig. He started by talking about monitoring through tools such as Google’s cadvisor and Docker logs before giving a really powerful demonstration of the sort of information you could collate and navigate by inserting the sysdig kernel module on the Docker host.
  • Last up was Juan Batiz-Benet who, although his presentation was entitled ‘Containers at Hyperspeed’ was, I suspect, going a little too fast for most people to keep up! The net was though that we should all be using IPFS to shift images around so that deduplication doesn’t stop at container layers but goes down to the individual file level.

As you can probably tell from my comments, the conference could have been slicker but it was still well worth the trip up to London. I’d say I learnt less than last year but that’s more because my own level of understanding has moved on. I’d also suggest that this year there was more of a focus on ‘doing with Docker’ than simply on the technology itself which indicates an increase in the maturity of the ecosystem.

Docker is not Enough

Friday, June 19th, 2015

I headed up to the London PaaS User Group Meetup yesterday evening. There were two speakers on the agenda. First up was Jeff Hobbs, CTO & VP Engineering at ActiveState with a pitch entitled Docker is not Enough (pretty much this deck). The main tenet being that Docker is not enough in itself as it just addresses packaging and execution. You need a PaaS to provide all of those other niceties like load balancing, auto-scaling, monitoring, centralised logging, audit, … My main issue with this pitch was simply that I don’t think anyone has ever claimed that Docker is enough. That’s why there’s a wealth of ecosystem projects surrounding Docker. And why does stackato (ActiveState’s Cloud Foundry based PaaS) use Docker for containerisation? Jeff stated that this was because the ops team would feel more comfortable dealing with this technology on the back end.

Second up was a late breaking change, my colleague Julz Friedman had stepped in to give a re-run of his Building a Docker backend for Garden presentation from the Cloud Foundry Summit. It was perhaps no great surprise to discover that, when you swap in Docker behind the Garden API, you don’t really see any benefits over the existing implementation (and, indeed, there are significant disadvantages for a multi-tenant PaaS such as the current lack of user namespace support in Docker). The one potential benefit that Julz did highlight was an increase in security, given that there are more eyes on the Docker codebase than Garden.

So why do I make the five hour round-trip in to London for a couple of sessions that I could have got off the internet? Was it the free beer and pizza? Well, no, although welcome, I think the train fare would have more than covered those. It is, of course, to meet people and to hear the Q&A where perhaps much of the interesting information is exchanged (and I caught up on some reading on the train!). There was a lively debate on the relative merits of Docker. One point that Jeff and Julz agreed upon was that the use of Docker images was a retrograde step versus the application centric view of PaaS, letting things that should be the responsibility of ops (e.g. patching OS images) become a part of the developer’s domain (Jeff quoted a stat that some 70% of images on Docker Hub were subject to vulnerabilities).

Docker London

Thursday, January 8th, 2015

Anyone following the WASdev site may have noticed that I’ve been doing some work with WebSphere Liberty and Docker recently. I was therefore pleased to have successfully made it off the wait list in time to travel up to Docker London for my first meetup of the year on Tuesday evening.

The meeting was compèred by Ben Firshman from Docker and, after a mad scramble for the limited amount of pizza on offer for 200 people, the evening began with a short intro to SoftLayer who were sponsoring the venue. Andrew Martin from British Gas was the first of the main sessions, talking about Building and Testing Docker Containers as practised on their ‘connected boilers’ project. I’d seen Andrew speak at Container Camp at the same venue last year so I was glad that he’d included some new material, even if he did then have to race through it a bit. He’d probably have been fine just to cover building or testing rather than both.

Next up was Johan Euphrosine (aka proppy) from Google who demoed a few different ways to deploy Docker containers on Google Compute Engine. Hopefully there’ll be a recording of the event as, whether it was the strong French accent, or too much beer and not enough food, it was sometimes hard to keep up.

Last up was Dan Williams who provided an entertaining and enlightening presentation on what containers are really all about. It was just a shame that, in staying for his talk, we missed the last train before the Basingstoke-Winchester engineering works began and then a freight train broke down at Eastleigh. Suffice is to say that, despite a good evening, I would have preferred to get to bed slightly earlier than 1am!

Countdown Coding

Saturday, August 16th, 2014

I went along to the Southampton Code Dojo on Thursday evening. I think it’s safe to say I was amongst the older attendees (most appeared to be undergrads or postgrads at the Uni although there was one guy who was sufficiently young to need his Mum to accompany him!). A pre-event poll had settled on Java as the language (Python had been outlawed as too popular and I guess Java was the lowest common denominator after that). Following pizza and beer there was another poll to select the challenge: the Countdown numbers game, before being numbered off in to groups. There were only three people in mine with one claiming no coding experience (despite being in the Computer Science department!). We spent far too long looking for an intelligent solution before doing the sums and deciding that brute force would suffice. My brain wasn’t entirely in gear (perhaps due to a day spent with the children?) and we didn’t manage to complete our solution before being timed out. We were in good company though with only one out of the six groups completing the exercise. It has reminded me that coding can actually be challenging in its own right (the challenge at work typically coming from legacy code, integration with other products, or simply politics).

Meetup Happy

Saturday, July 19th, 2014

I’ve gone a bit meetup happy in the past two weeks. Last week I headed along to the Pivotal offices in London for the first London Cloud Foundry User Group meetup organised by one-time colleague Duncan Winn. First to speaker was another ex-Hursley employee, Glyn Normington. He gave a fascinating presentation in to the work that he and his colleagues are doing to replace the backend of Cloud Foundry’s Warden container with libcontainer (now split out from Docker). More on this over on Glyn’s blog.

Next up was London based Tammer Saleh, Director of Products at Pivotal Cloud Foundry Services. You can see the recording of this session from the Cloud Foundry Summit where they talk about the different models for stacking server instances. Finally, James Watters (Vice President of Product, Marketing and Ecosystem for Cloud Foundry at Pivotal) talked about the roadmap for Cloud Foundry in 2014 (including what’s out of scope). See James Bayer’s session from the summit for similar information.

The next meetup was my first at Agile South Coast. If nothing else, this gave me an excuse to have a nose at the new(ish) Ordnance Survey offices! I can’t claim to have been welcomed with open arms to the group (no-one even commented on the fact that they hadn’t seen me there before) but that’s fine by me. Most notable to me though was the fact that I was the only one there who wasn’t a scrum master by profession. Have developers lost interest in agile?

As one would expect with this audience, it wasn’t long before the post-it notes were out and we were collaborating on choosing subjects to discuss. My heart sunk when topics such as “should spikes be given points?” were selected but I was glad when the resounding response from the group seemed to be “it doesn’t really matter – whatever works for you”. Oh, and apparently PSM is more through than CSM but the latter gets more CV points! As I’m part way through reading Kanban in Action, the discussion on Scrum vs Agile in a BAU environment was interesting. I may yet make it to another of these meet ups.

The American style pizza and good selection of beer certainly helped make the trip into town worthwhile although I’ll not mistakenly pick up the 7.2% Sierra Nevada Torpedo Extra IPA in future!

Lastly, I returned to Developer South Coast for a session entitled “NoSQL vs SQL… Fight!”. Actually, there wasn’t much of a fight to be had as the speaker (Tony Rogerson) is an SQL Server DBA. He gave a thorough although halting coverage of the theory behind relational and NoSQL databases though which sadly meant he ran out of time before reaching the potentially more interesting topic of NewSQL databases.

AWS Update

Monday, May 5th, 2014

At the end of April I went to the AWS Summit at ExCeL London, partly to keep up with the competition but largely because the attendees are a different crowd to those you get at your average IBM conference. I managed to miss most of the keynote, partly by design (no early start and an off-peak ticket) and partly due to someone driving in to a level-crossing in Southampton! Having watched the video subsequently, I don’t think I missed a great deal. The only announcements from Amazon that peaked my interest was the arrival of Amazon WorkSpaces in Ireland and the availability of the Twitter stream in Amazon Kinesis.

As in common with the rest of the day, it was the customer slots that were the most interesting. For example, SwiftKey talked about their use of Hadoop on AWS to crunch Wikipedia in other languages to build a starter set for their language models, through to CloudFront as the CDN for serving the final models up to their customers.

I had an interesting chat over lunch with someone who was actually an IBM customer and then wandered the expo watching demos by some of the likely suspects in the cloud deployment, management and monitoring space (Chef, Splunk, DataDog, …).

After lunch the breakout sessions began with six parallel tracks this year. I went to Deployment Done Right first, covering Elastic Beanstalk, OpsWorks and CloudFormation. The only new news for me was an aside that Beanstalk nows supports Docker. It seems like pretty lame support for containerisation though as you appear to get an EC2 instance per image. The accompanying presentation from Sportpursuit.com was most notable for the long list of open source software in use (Nginx, PHP, Magento, Varnish, Redis, Memcached, Elasticsearch, Jenkins, Capistrano, Capify EC2, Boto, …).

Next up was Dynamic Content Acceleration covering the CloudFront CDN and Route 53 DNS with the aim of knocking a second off your response times. The customer this time was import.io which is an interesting site in its own right, providing the capability to turn websites in to structured data (for free).

For the last session of the day I picked Scaling on AWS for the First 10 Million Users which did not, as you might expect, spend a lot of time on auto-scaling, but covered all aspect of application architecture that would contribute to scaling. The customer was the mobile taxi app firm Hailo who are pursuing a micro-services architecture. They are using containerisation (they didn’t specify which) and are apparently writing their own controller to manage the distribution of those containers across EC2 instances to balance workload.

Synchronised training

Friday, May 2nd, 2014

For the past couple of years, uploading my running training has been a bit of a faff. I like to use a desktop app (SportTracks) so that, whatever the changing fads online, I still have all of my data in one place. (It goes back to 2006 when I first got my Forerunner 305. Some day I may even important my old Polar Training Software data.) The desktop app also has some interesting plugins. One of these I used to push my training to dailymile for comparison with a few friends and colleagues and for the widget on this site. However, I’m also partial to a bit of segment stealing on Strava. Sadly no simple SportTracks plugin for Strava so that was a separate upload.

After a bit of search and experimentation, my new workflow is to upload to the SportTracks website which then syncs seamlessly (in both directions) to the desktop app. Then I’m using the excellent online tool Tapiriik to automatically synchronise the data from SportTracks to Strava.

On the plus side, this means I’m now only downloading once and it doesn’t have to be on the machine with SportTracks installed. Also, without really thinking about it, it means I know have 8 years worth of data synced back to Strava!

On the negative side, Tapiriik doesn’t support dailymile so that will have to go by the wayside, at least for now. That means you’ll see a slightly squished Strava widget in the sidebar of this site. The other major downside is cost. The SportTracks site has an annual subscription of $35. Whilst the site is nice and they are continually adding good features, if it weren’t for the sync with the desktop app I wouldn’t be forking out that money. We’ll see how things are going come renewal time. Automatic sync on Tapiriik also comes at a cost but a mere $2 pa for what is a very slick site and available as open source if you really wanted to host it yourself.

Now I just need to decide whether to add Garmin Uploader to my shopping list so that I don’t even need to turn on the Mac! (Works with my Nexus 7 but not my S2 unfortunately.)