Issue 7 - Serverless. Case Study - Operational Skills Are Still Required in A Serverless World
Issue 7 - Serverless. Case Study - Operational Skills Are Still Required in A Serverless World
html
We are delighted to be able to share our seventh monthly architects' newsletter with you, which we will send on the last Friday of every month. InfoQ
strives to facilitate the spread of knowledge and innovation within this space, and in this newsletter we aim to curate and summarise key learnings
from news items, articles and presentations created by industry peers, both on InfoQ and across the web. We aim to keep readers informed and
educated about emerging trends, peer-validated early adoption of technologies, and architectural best practices, and are always keen to receive
feedback from our readers.
News
In regard to the addition of .NET support, InfoQ editor Steef-Jan Wiggers commented that "the addition of .NET Core 2.0 support by Amazon shows
the commitment it is making in promoting .NET for AWS." Much inline with the addition of Golang support, Amazon has also published a GitHub
repository that contains AWS NuGet packages and Blueprints to support writing Lambda functions in .NET Core.
Serverless Spring
With all the excitement surrounding the upcoming GA release of the one of the most popular Java microservice frameworks, Spring Boot 2.0, it is
possible to have not realised that the Spring ecosystem is also investing heavily into the serverless paradigm. At the recent SpringOne Platform
conference, Mark Fisher and Dave Syer presented "Serverless Spring".
The talk began with reference to the Pivotal Cloud Foundry strategy of using the BOSH release engineering tool to deliver "developer ready
abstractions on any cloud", and this included applications, data, containers and functions. After presenting a series of benefits, challenges and use
cases for serverless, Fisher and Syer demonstrated how the Spring Cloud Function framework can be harnessed using existing Java development
skills.
One of the key observations made by Quillian was that "DevOps is finally being realised" with serverless frameworks like Fn, and suggested that by
abstracting some of the operational aspects such as packaging code within Docker images and deploying into Kubernetes, in combination with
exposing core "observability" tooling, developers can now become more effective at delivering business value.
Building a serverless digital archive with machine learning APIs and Google Cloud Functions
A recent post on the Google Cloud Platform discusses how Incentro, a provider of digital asset management platforms, built a serverless solution
named Segona Media that aims to eliminate manual processes required for tagging assets such as images and videos. Each action that Segona
Media performs is a separate Google Cloud Function, usually triggered by a Cloud Pub/Sub queue. This approach offers an easy and scalable way to
publish new actions.
Information is extracted from digital assets using the suite of Google ML tooling such as Cloud Vision API, Cloud Speech API and Cloud Video
Intelligence, and a custom tag prediction application has been built using Cloud ML Engine to train Tensorflow models.
• Monitor performance at the business transaction level so that you have a holistic view of your application behavior
• Trace business transactions as calls traverse across data centers (private as well as public clouds)
• Monitor the performance of the containers hosting your microservices
• Capture information about the node upon which your microservices are running so that you are able to account for differences in the underlying
hardware
Case Study
What appears to be crystallising is that purely from a lines of code (LoC) perspective you have code that is functionally running on your serverless
platform (i.e. your business logic), and configuration code that is setting up the underlying platform environment, API gateways, databases, IAM and
security policies. Swan stated that Gareth Rushgrove, product manager at Docker, has done some digging around, and estimates that there is an
approximate 3:1 ratio of configuration to code. Someone obviously needs to create, understand, and maintain this code.
Looking at this issue from a slightly different angle, Swan discussed how Charity Majors defines operations as the constellation of your organisational
technical skills, practices, and cultural values around designing, building and maintaining systems, shipping software and solving problems with
technology. (Majors also recently took part in an InfoQ podcast on the "social side of debugging and testing in production.") Swan continued by
exploring how operations is really the set of "cultural artifacts that do all of the things besides writing software that makes your application or services a
real thing." Embracing serverless applications doesn’t remove the need for this aspect of operations.
Echoing Chris Swan's arguments, Kelsey Hightower recently stated that "You need [Site Reliability Engineering] SRE skills to thrive in a serverless
world" in an A Cloud Guru Q&A blog post. Echoing several recent discussions on Twitter, Hightower, a developer advocate for Google Cloud Platform,
stated that "the first time I saw the FaaS idea was back in the CGI days. You write some PHP code, put it behind Apache and then Apache calls it
when you get an HTTP request". However, the limitation with this approach was that there was no scaling, no concept of a "cloud", and there was no
clean interoperable API to enable this style of development for multiple programming languages.
Hightower discussed the benefits and challenges of running serverless applications on top of the Kubernetes container orchestrator, for example,
using kubeless:
"Now that you have a system like Kubernetes, or even Lambda for that matter - who watches the watcher? Even if the cloud provider is
doing everything, I need to double check - is my latency where my customers need it to be? [...] Maybe I'm using the wrong library, or
making database calls inefficiently. This is where your SRE team adds a lot of value."
The Q&A concludes with Hightower reminding readers that the focus of everything we do in IT is ultimately about providing business value. Serverless
technology may allow developers to "get really close to the value line" of infrastructure, and ultimately remove the requirements to manage long-
running hardware, but someone still needs to care about the operational aspects of delivering software.
To get notifications when InfoQ publishes content on this topic follow Serverless on InfoQ.
This is the seventh issue of a monthly newsletter, focusing exclusively on software architecture. We thought it would be valuable for you to get a quick
overview of things you might like to keep an eye on. If this is not the case, you can unsubscribe using the link below.