Bio Gareth Rushgrove is now a technical architect at the Government Digital Service, part of the UK Government. He is mainly interested in configuration management, infrastructure and PaaS, deployment and monitoring tooling and the whole devops community. He worked as a developer and/or systems administrator for large companies and startups, in radio, financial services, and e-commerce.
Software is changing the world; QCon aims to empower software development by facilitating the spread of knowledge and innovation in the enterprise software development community; to achieve this, QCon is organized as a practitioner-driven conference designed for people influencing innovation in their teams: team leads, architects, project managers, engineering directors.
1. I’m Manuel Pais, I’m here at QCon London with Gareth Rushgrove, he’s the technical architect at the Government Digital Service in the UK and he’s also the guardian of DevOps weekly newsletter. Gareth, what do you think of the idea that we’ve seen here at the conference of cloud computing being a tradable commodity?
I think in some aspect that already is. I think that Amazon have just reduced their prices again, so you’re seeing a lot more smaller plays in the market, you’re seeing people tagging specific industries. So there’s quite a lot of interest in like community clouds that allow specifically to meet Government requirements. I think it’s definitely happening.
I think at the moment there’s actually a surprising amount of effort if you’re doing something non-trivial. If what you’re looking for are virtual machines that are going to just execute some code and then they’re going to give you the results and then you’re going to shut them down, if it’s all about just compute power, and if rather than running a big datacenter you’re just going to fire a lot of machines and throw them away, anything that matches that sort of model, [then] getting locked in is actually not a problem. Anything where you’re doing sort of actually quite simple web applications again is not a problem. Moving between suppliers that offer basically similar services is fine. I think if you’re doing something that’s a bit less trivial, is a bit more complicated, maybe involves network tasks or compliance or legislation or regulation, then it’s much harder, mainly down to the capabilities and characteristics of different providers more than anything else. I’ve just come from a talk by a chap who works in financial services and I sat there nodding along a lot of the things that we’re experiencing in Government as well.
3. The problems you mention with more complex environments, aren’t we able to overcome them just by using infrastructure configuration management tools and for example cloud abstraction libraries? Why aren’t those sufficient to overcome these obstacles?
I think they’re one approach to solving some of the problems, so I would say lots of people , all of a sudden were like “Oh, it’s all about the image and you can move the images between” and ultimately they might be on different hypervisors and you need to be converting images. You’re into treating machines specially and you’re interested just in the machines and not in the networks. Configuration management can help there and in theory the abstraction libraries can help sort of move things between. But none of them often deal with the sort of the network layer, although people are starting to get interested in what’s often referred to as software defined networking. But the killer is nearly always that providers themselves offer completely different things. At a basic level they probably offer some level of compute and some level of storage. But what they then offer past that varies wildly from actually nothing else to something else that might not have an API to something that’s just a different take on private networking or virtual private networks or sort of different types of storage or different services they offer and I think that’s the real problem with the possibility at a large scale.
4. You’re also critical of cloud providers each using their own slightly different terminology for their primitives and the concepts they are providing and you are more critical of that than the actual lack of standardization in their APIs, but isn’t the concepts easier to understand and to tell the difference between one provider and the other?
I’m not sure critical is the best word. I think it’s a problem that’s understandable because people are in isolation building the future and when they’re talking they’re not allowed to use the same words but not all of them are talking because they are busy building these things. I think it’s a bigger problem because it’s like this sort of analogy from a software development perspective: you spend a lot more time reading code than you do writing it and we spend a lot of time unfortunately optimizing tools or programming languages for writing not reading and I’ll spend some time writing some code against an API but I’ll probably spend a lot more time discussing the concepts of that with other people who might be within the team, who might be external to that, they might be different suppliers, it doesn’t really matter. I’ll spend a lot of more time talking about the concepts and not having a shared language when talking about concepts makes those conversations incredibly slow, so it moves a lot of the sort of mental model stuff into “Oh, you had to be there” and the code becomes less clear and less plausible and therefore more expensive. At the end of the day, developers have got good at providing abstractions and code. Where we don’t have the shared words that’s much harder to do.
I think we’ve been actually really lucky in that we’ve had so much backing to do what we thought was right. Actually a lot of the challenges haven’t been anywhere near as large as we thought they were going to be. But what now is really sort of the reason of our existence was Government lacked specialist skills, so the Government Digital Service is composed actually from a lot of people who have come from the private sector, who have come from everywhere, like large software companies to startups to financial services. And what we’re trying to do is really bring a whole new skill set to Government and just the sheer scale of the civil service makes it that definitely the biggest challenge that we’ve got is bringing people, hopefully who are watching this video, into Government.
Probably in a couple of ways. One is obviously the potential of the cost savings. Moving from a world where everything is very physical, everything is actually in some cases very old, to a world which is a lot more modern and a lot more meterable, a lot more sort of on demand. Rather than having to provision for 10 years in the future, we can provision for 10 minutes in the future, so there’s definitely a large potential of cost savings. But I think even more interesting is sort of trying to say that Government isn’t special or certainly isn’t always special. There has, I think, been a sort of culture where everything the Government has to do is different, and again, some of the talks from the financial services people were saying “In the bank, everyone thinks they’re special”. In practice, actually, a lot of the same technologies, a lot of the same patterns, a lot of the same tools are useful in all of these areas and the sort of move towards cloud computing across different industries, I think is a big leap forward for a lot of Government technologies.
I’m always working on lots of bits and pieces. But one project recently was around taking sort of configuration management tools and trying to, rather than manage things like packages and users and resources all on an individual virtual machine, using those [tools] to manage actually a fleet of machines in the cloud. So having that is actually just using the puppet domain specific language, where you can run it and it will create or maintain a set of machines and in theory then just swap the provider of that from Rackspace to AWS or AWS to Brightbox or Brightbox to a VMware provider and just see that happen. That’s sort of some of where my frustrations have come from with regards to the sort of leaky abstraction libraries or just naming things differently across different providers.
That and everything else on GitHub.com/GarethR, I’m GarethR on nearly everything.
Manuel: OK, thank you very much Gareth!