CLOUD VS SERVERLESS: THE CHALLENGE OF INFRASTRUCTURE TECHNOLOGY
We caught up with Paul Ingle, head of engineering and cloud infrastructure at uSwitch, ahead of last year's Cloud & DevOps World Event to discuss the next big innovation in cloud, why uSwitch hasn't gone serverless and what Ingle is looking forward to most for the year ahead in technology.
Cloud is huge now: most businesses are implementing or have implemented some form of cloud service. So, what's next? Where is the next big innovation for cloud?
Paul Ingle: I'm not sure it's necessarily the biggest innovation but I think the thing that will potentially have the greatest impact in compute will be the convergence around higher-level abstractions: AWS announced Fargate, Azure has something similar, and the open source virtual kubelet project all hint towards a future where providers offer compute endpoints with matching types and semantics.
I think it's impactful for a number of reasons: it takes away some of the operations overhead maintaining servers; it provides more meaningful abstractions for most application development; and it potentially makes multicloud or migration between providers easier.
Can you give us an insight into what you’re going to be talking about during Cloud & DevOps world in June?
PI: I'll be talking a bit about uSwitch's technology story for the last seven or so years, how we've been through different stages of growth, the challenges we've encountered and the tactics we've used in response.
I joined after the company I worked for acquired uSwitch in 2010. At the time, we felt technology was a constraint to growth, it was a very traditional .NET system: monolithic, operated by a central IT team on physical hardware with a big-bang update every fortnight. Moving to cloud was key to strangling the monolith and rewriting with smaller, more replaceable parts: We wanted to take the technology and culture we'd enjoyed at Forward Internet Group and apply to uSwitch to drive the growth of the business.
It's hard to precisely measure how substantially things have changed -- some days there's over 100 deployments -- that kind of behavior wasn't possible within uSwitch in 2010.
Given the talk title I'll also be talking about our fast-growing use of Kubernetes: all teams now run some or all of their applications on our clusters and we're talking internally about how to apply the platform we've built to other teams and businesses within the ZPG group. I think it's a very interesting technology story. It'll be hard to squeeze it into 20 minutes.
Why not serverless? What are the benefits from not converting over?
PI: Serverless is a tricky term to pin down -- I think it's a relative thing and so it's a question of where you observe it from. There's always servers somewhere!
We've had teams experiment with Functions-as-a-Service (FaaS) via AWS Lambda but you're fundamentally exposed to all the complexity within AWS. It's difficult to place your own abstractions into AWS and things get complex very quickly when you can't start encapsulating and building your own higher-level abstractions. I also don't think this is something many of the infrastructure-as-code tools solve well: they often emphasize domain specific/declarative languages that make building your own abstractions really, really hard -- it's technically code but not sufficient for real encapsulation.
I've also seen teams drawn to FaaS for the purity of its model at the expense of it actually working -- the constraints and limits on startup/execution times, runtimes etc. led people to spend more time adapting their solution than solving the problem. It's a hard balance, I've always been a proponent of safely experimenting within your regular work (rather than wasting it during hackdays, 20% time etc.) but I've not seen it be anywhere near useful enough for us for most general-purpose development.
Beyond FaaS, however, I think we've seen much more significant benefits through Kubernetes -- its core abstractions provide a layering that still allows application teams to run and operate their own applications but upon a more secure, efficient and maintainable infrastructure run by our cloud team. It's mostly serverless to the application teams.
Importantly though the cloud team's work grows sub-linearly in relation to the use of the clusters. Most significantly, responding to things like GDPR has undoubtedly been faster because of this layering and division of labor between the teams. We're not serverless (our cloud team care about compute, networking, waste etc.) but it's close enough for most teams and it's a more productive model for most.
Which technologies/developments are you most looking forward to over the next year?
PI: Aside from all the cool infrastructure and security work the team have been doing within uSwitch we also have some teams that will be doing some interesting work with technologies like GraphQL and gRPC to standardize APIs and make it faster to build products. I think it'll be exciting to see how that changes the way we work again.
I think the last big thing I'd like to see integrated onto our Kubernetes clusters would be a service mesh like Istio: transparent TLS, policy-based failure handling, consistent metrics and tracing would all be truly powerful additions. I'm also keen to see us move towards formalized, automated monitoring and enforcement of SLOs between services which Istio could certainly help with.
More personally I've started trying to read more about systems thinking and organizational architectures, and network science: I was recommended a book that connects graph theory, game theory, economics, sociology etc. that's really interesting (and just about accessible enough to me) so I'd love to keep working my way through.
Who are you looking forward to seeing at this year’s Cloud & DevOps World?
PI: It's such a big event I'm not sure where to start -- I'm always interested to learn about other organizations on similar paths to ours, especially those that have taken different decisions, to learn more from. I'm sure there'll be plenty of thought-provoking material covered through the keynotes, presentations and panel discussions.