InfoQ

The Software Architects' Newsletter
February 2018

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

AWS Lambda Adds Support for Golang and .NET Core

In another busy month for updates to existing serverless platforms, AWS Lambda added language support for both Golang and .NET Core 2.0. To make it easier for developers to create AWS Lambda functions using the popular Go language, Amazon has published a GitHub repository containing libraries, samples, and tools.

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.

Oracle's Fn Serverless Platform Adds Helm Chart Installation for Kubernetes

At the recent KubeCon NA conference that was held in Austin, USA, InfoQ sat down and discussed Oracle's Function-as-a-Service (FaaS) "serverless" Fn Project with Bob Quillin, vice president of Oracle Container Group. Fn has evolved rapidly since its launch in October 2017, and new additions to the project have included: support for Prometheus monitoring; the implementation of Fn Flow high-availability clustering; a new Hybrid Architecture; and an open source Helm Chart Fn installer for Kubernetes.

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.

Microsoft Announces General Availability of Azure Event Grid

Microsoft has released the Azure Event Grid service as generally available, which enables developers to build cloud-based reactive applications that handle events. The concept of Event Grid revolves around events emitted from a source "publisher", which can be an Azure service or a third party source that adheres to the event schema. The event publishers in Azure include IoT Hub, Storage, and the recently added Event Hubs. Emitted events are sent to a topic in Event Grid, and each topic can have one or multiple subscribers or "event handlers". The event handlers react to the events and process them. Handlers in Azure include Functions, WebHooks, and Event Hubs.

This edition of The Software Architects' Newsletter is brought to you by:

Red Hat

Managing Microservices Performance in a Hybrid Cloud Environment

From a deployment perspective, the best strategy to manage a hybrid cloud is to adopt a single containerization technology, such as Docker, so that a microservice can just as easily be deployed to the private or public cloud, using tools that abstract the underlying environment.

From a monitoring and performance management perspective, it is important to do the following:

  • 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

Operational Skills Are Still Required in a Serverless World

In a recent InfoQ podcast Wes Reisz sat down with Chris Swan, CTO for the global delivery organisation at DXC Technology, and discussed that "serverless" still requires operational skills, even if the ops team is not focused on the underlying technology. Swan began by stating "Just because we no longer have servers in a serverless environment, it doesn’t mean that the operations have gone away".

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.

Unsubscribe

Forwarded email? Subscribe and get your own copy.

Subscribe