Serverless Operations is Not a Solved Problem
The emergent theme from day one of the Serverlessconf London 2016 was that far from being ‘NoOps’, Serverless platforms bring with them substantial operational challenges. The physical servers and virtual machines may have been abstracted away, but that doesn’t mean an end to infrastructure configuration; and developers ignore the implications of underlying persistence mechanisms at their peril.
Patrick Debois set the scene in his opening keynote, in which questions were asked along the lines of whether Servlerless could be better, faster, cheaper (and more secure)? Debois identified that Serverless platforms such as AWS Lambda, Azure Functions and Google Cloud Functions still present significant challenges - particularly in operational areas such as logging and monitoring.
One of the best received presentations of the day ‘Serverlessness, NoOps and the Tooth Fairy’ came from Honeycomb founder Charity Majors. Leaning on her experiences from Parse, the mobile application platform that was acquired by Facebook (and which will be shut down at the end of Jan 2017), Majors laid claim to doing ‘serverless before it was cool’. The defining statement of her talk was that, ‘services are not magical pixie dust’, stressing that it’s important for developers to understand the shared responsibility model they play a part in. Her top tips were to ‘own the critical path (and keep it short)’, and to ‘understand the tech and its dependencies’. Majors paid particular attention to the state management aspects of serverless platforms, highlighting that issues with query scope don’t go away just because somebody else is managing the database. The most important consequence of this was noted as, ‘the service will protect itself (at your expense)’, meaning that queries would be throttled and user experience would suffer in applications that didn’t understand and respect the underlying infrastructure. Her very broad definition of operations encompassed many of the issues brought up throughout the day:
Operations is the constellation of your org's technical skills, practices, and cultural values around designing, building and maintaining systems, shipping software, and solving problems with technology.
The use of configuration management tools with Serverless platforms was a recurrent topic for the day. Red Hat’s Ryan Scott Brown did a lightning talk on using Ansible to configure AWS Lambda, and the topic was covered in more depth during Rafal Gancarz’s talk on ‘Serverless for the Enterprise’ (video). Gancarz illustrated the use of HashiCorp’s Terraform to provide configuration of aspects such as least privilege security policy, and how infrastructure configuration within Terraform could share the same continuous integration (CI) pipeline as the function code. Gancarz also returned to Debois’s point about logging and monitoring, saying that he’d had to use a server to run Kibana as part of an Elasticsearch, Logstash and Kibana (ELK) stack, meaning that the entire architecture wasn’t purely Serverless.
The overall message was that whilst Serverless platforms might ease initial deployment and scaling concerns, they don’t eliminate the need for infrastructure operations. It’s still necessary to think about, plan for, and provide tooling around security, backup and restore, logging and monitoring. Each of those things may be hand configured in a one off manner using the service provider’s web user interface (or even left to defaults), but production apps probably need a more sophisticated approach to configuration management that integrates into other aspects of managing the application code base.