Week 31, 2016 - DeepMind; Chalice; Docker 1.12

By (4 minutes read)

AWS has released a serverless framework, Docker released version 1.12, and Google shows of its machine learning capabilities with energy efficiency.

Also, my apologies for not posting updates in the past couple of weeks. It turns that I vastly underestimated the time I needed to run around everywhere while moving to a new house, so I didn’t get a bit of quiet time for writing this.

DeepMind for energy efficiency

Once again Google has shown off something impressive with machine learning. This time it’s in the area of energy efficiency, as applied to their data centers. DeepMind (which is also the underlying technology behind AlphaGo), was “released” on Google’s data centers and doing so improved their overall energy usage by 15% (a 40% reduction on the cooling requirements). For now they’ve only released the before linked post1, but they’re planning on releasing the full details later so that others can make use of it as well.

This is really nice of course, but more interesting is how this fits in with my initial ideas after AlphaGo was announced. In particular my belief that the work on AlphaGo and self-driving cars are really only the beginning and how other systems using a similar toolset will start popping up. First there was the new/updated Google Assistant and now this. I’m looking forward to what comes next.

AWS and serverless frameworks

While I went out of my way to write my own tiny micro framework for deploying serverless applications, there have been far superior frameworks around for a while. Apparently AWS noticed this and has started building several of their own. Chalice is the first one they offer. It’s a Python CLI tool for easily creating and deploying your Lambda applications. It’s designed in a very similar way to Flask, a Python web framework, with some additional tools added to it.

Alongside Chalice however, they are also developing Flourish, another serverless framework. Why they build 2 different frameworks I don’t know, especially as not much is known about Flourish yet.

I have some mixed feelings about these frameworks as well. On the one hand it’s great that AWS is working on providing solutions to work around the pretty bad interface of Lambda and especially the API Gateway. However, these frameworks are very similar to existing solutions except locked in to AWS. For example, if Chalice had been designed as an extension of Flask it would have been a more developer friendly solution as you don’t need to learn a specific framework to work with it and can easily move to a different way of hosting your code. The reason why AWS does it like that is obvious, it’s just not something I’m happy about.

Docker 1.12 released

Docker 1.12 as well as the Mac and Windows clients have now been officially released, so if you don’t have it yet this is the time to upgrade. I’ve discussed this [before][ignoredocker], and have been using it throughout the beta. I’m not going to repeat what I’ve said before, but despite my general happiness with it there are a couple of issues I’ll highlight as they might impact you:

  • As I no longer do web development I didn’t run into this myself but, when using the Mac client, mounted file systems is still slow (and slower than with the previous way of doing things). As explained in a forum post this is because of the latency and not the read speed from the disk. That means it will mostly impact projects with a lot of small files, a common thing in web development where especially NodeJS and JavaScript frameworks (but also Ruby and PHP) tend to have many small files. Apparently Docker is working on a solution, but they can use more test cases so if you have one supply it.
  • Personally I ran into an issue with Jenkins as well. The Jenkins Docker plugin, a very useful plugin that allows you to spin up Docker slaves for running your CI/CD tasks, uses some deprecated functionality that was removed in 1.12. This causes errors to be thrown instead of a container to be spun up. There is a ticket for it, but until that is solved you shouldn’t upgrade your Jenkins server to 1.12.

  1. For some reason the DeepMind blog doesn’t allow you to link to individual articles, so if it’s not the top article anymore you might have to scroll a bit to find it. Seriously Google, why? You started out as a search engine, you should know how this works. ↩︎

comments powered by Disqus