This post was written by Rich Bosomworth.
After the success of New York and Tokyo events the 2016 Serverless Conference in London was hugely anticipated and offered an exciting selection of 40+ international speakers. Our SkeltonThatcher representative (me) was in attendance for days two and three to soak up the vibe and check out some of the Serverless pioneers.
The the first day provided a choice of three workshops on building and testing serverless applications using either AWS technology, IBM OpenWhisk or the new Serverless Framework.
Days two and three contained the schedule of talks and were split into two tracks named “Jeff” and “F.a.a.S”, with Jeff focusing on AWS, and the F.a.a.S track directed more at alternative options.
In this post we shall take a look a mixed selection of presentations from the second day.
The day opened with a wonderful but surprising introductory keynote from Patrick Debois. I say surprising as contrary to any expected hype it presented a calming and amusing opinion on the pros and cons of serverless. The tone was more of a devil’s advocates perspective and I thoroughly enjoyed it.
Patrick discussed what the top level ‘evangelised’ advantages of implementing serverless were and expanded on each :
i.e Serverless is better because…
- It’s faster..!
- It’s cheaper..!
- It’s more secure..!
- It’s more reliable..!
- It uses the latest tech..!
Faster – Patrick argued that to the end user ‘in most cases’ this actually isn’t so, whilst at the back end there are degrees of latency to consider when designing/developing (see my previous post on AWS Lambda).
Cheaper – Here the argument was ‘definitely, but not always’, with related observations that there is no ability to budget or firmly forecast (within AWS anyway) due to current shortfalls around options for metering.
More secure – Prompted a discussion predominantly around use of the AWS API Gateway, in that it (the API Gateway) is an exposed service (i.e outside of the VPC). WAF integration was also discussed.
More reliable – Although focus is on function, functions themselves have to run within a controlled environment and there is potential for problems resulting from shared resources. For example, /tmp could be shared across one container running multiple functions and lead to problems should it fill up or contain data that gets reused (both of which can definitely occur).
Latest tech – True indeed, however this also means that developers (and those supporting the developers) have to learn new skills.
The overall essence of Patrick’s talk was positive and supportive, and the questions posed (i.e Is serverless making a difference?) were prompts for valid considerations with vendor lock in coming out as a prominent concern.
The full talk is available here.
Ian Massingham | Building Serverless IoT/Connected Device Applications
Ian Massingham is the Chief Technical Evangelist for AWS (EMEA). His talk began with a discussion around the main drivers for the expansion of IoT:
- The cost of micro controllers is falling
- The resulting rise of SOC (system on chip)
- The availability of 2G networks for IoT use
- Cloud “Makes it easier”
Ian expanded on “What’s Hard?” with regard to development and implementation (of IoT), covering the following considerations which serverless helps to address (specifically AWS Lambda)
- Intermittent connectivity
- Authentication and authorisation
- Device registration
- Security/crypto handling
- Deploying, scaling and updating business app logic
Aside from an interesting use case involving easy identification of sick livestock, a more mainstream takeaway for how IoT could slot into our daily lives was the product ordering service provided by Amazon Dash Buttons.
“Amazon Dash Button is a Wi-Fi connected device that reorders your favourite product with the press of a button”
Introduced first in the US and now available in the UK, there is a huge a range of dash buttons available providing one-click re-order of products from chewing gum to pet food and beyond.
Ian finished the talk by discussing use cases for Network Function Virtualisation (NFV) in support of IoT environments to support the growing number of smart devices.
The full talk is available here.
Rafal Gancarz | Serverless for the Enterprise
The talk from Rafal Gancarz of OpenCredo covered experiences around Serverless for the Enterprise, or as Rafal described it – AKA “Serverless in the Real World”.
Design patterns and implementations methodologies along with support were core, with key points covering:
- Design scoped around domain bounded contexts (the essence of Microservices)
- Identification of integration points
- Aspects of security (for example, awareness of the public facing nature of AWS API Gateway)
Rafal finished off with a solid list of lessons learned, detailing core points which seemed to reinforce across the conference:
- Serverless is still in its infancy – Lots of problems to solve (sometimes not the problems you’d like to be solving)
- Serverless evolves rapidly – New tools/solutions are emerging, new features becoming available, new ideas & patterns and being shared
- Strong dependancy on the cloud provider (SDKs, tools, support, limits)
- Plan/adapt your capacity (DynamoDB, Kinesis)
- Serverless frameworks are great for some use cases but quite opinionated and limiting for others (particularly around stack provisioning/management)
- Tooling is sparse, a lot of ‘build your own’
The full talk is available here.
Ken Payne | Real-time Data Processing Using AWS Lambda
Ken Payne is a Solutions Architect at AWS. He is an engaging speaker and his in depth talk covered implementation of AWS Kinesis with AWS Lambda to facilitate real time data processing of analytics streams.
The talk introduced the serverless compute manifesto:
- Functions are the unit of deployment and scaling
- No machines, VMs, or containers visible in the programming model.
- Permanent storage lives elsewhere
- Scales per request. Users cannot – over or under – provision capacity
- Never pay for idle (no cold servers/containers or their costs)
- Implicitly fault-tolerant because functions can run anywhere
- BYOC – Bring your own code
- Metrics and logging are a universal right
Ken then described how AWS assists with the undifferentiated heavy lifting involved for tasks of magnitude. He detailed projected workflows for asynchronous vs synchronous architectures and showed examples of how AWS Kinesis and AWS Lambda integrate.
Finally, Ken detailed top level advisories around best practices:
- Create enough shards for parallel processing
- Distribute load evenly across shards
- Monitor and address Lambda errors and throttles
- Monitor Kinesis limits and throttles
The full talk is available here.
Tomasz Janczuk | Webhook Is Dead. Long Live Webtask
Thomasz Janczuk is the Webtask Chief Architect at Auth0. His talk on their Webtask product was dynamic and enlightening.
The essence of Webtasks is that although Webhooks are amazingly useful they are invariably exposed, and as per the slide are described as ‘so’ 2015 (for the reasons listed):
Webhooks are so 2015…
- Mostly async
- Servers
- Maintenance
- Scaling
- Monitoring
- Seperate billing
- SSL
- Toil, grief, and tears
Webtasks work differently in that all code is written on and hosted on the Auth0 platform and turned into endpoints. This offers increased levels of security for quick and secure implementations.
The demonstration of ‘Slash Webtasks‘ for Slack was extremely impressive. For many Slack is replacing email as the favoured method of communication. Slash Webtasks offer substantial potential for extending Slack functionality with enhanced automation.
The full talk is available here.
Gojko Adzic | Migrating to Serverless: MindMup 2.0 case study
One of the most characterful presentations came at the end of the day with a 20 minute ‘Lightening’ talk by Gojko Adzic from http://gojko.net. I would highly recommend watching this talk as my brief description will go nowhere near the experience of seeing Gojko speak live (the error code references are very amusing).
An analogy of complications from migrating from (say) Heroku to Lambda was used as an introduction, with discussion points continuing around the following:
- Lambda multi-versioning
- Embedding version configuration into events
- Over simplicity (inadequacy?) of AWS documentation
- One Lambda with multiple endpoints
- Design for ‘share nothing’ NOT stateless
- Use a deployment automation tool (i.e https://claudiajs.com)
The full talk is available here.
Come the evening there was a social/networking (beer) event in the conference space. It was a highly enjoyable finale to a wonderful day and a great opportunity to discuss insights and knowledge with both presenters and attendees.
In the next post we’ll take a look at day three along with the current state of serverless and where it’s going to take us.