Serverless & new developments
Other interesting developments of note from Kubecon + CloudNativeCon were the announcement of a cloud native programming language called Ballerina backed by WSO2, which is designed to make it really easy to write integration services and a growing interest in serverless, which now has a working group that’s been involved in the OpenEvents (now called CloudEvents), the project standardising event specifications, we’ve previously mentioned.
Serverless continues the disaggregation of applications in the enterprise world and there are a number of companies attempting to make serverless more approachable and in particular Austen Collins, founder and CEO of Serverless, Inc, who ran a few talks on the subject.
He describes serverless as two things: Functions and events. The rationale is that events happen all the time. Everything emits an event, for example, when you upload a file to an S3 bucket in the cloud. These events will often be things that you want to react to because they are important to your business, but you don’t want to have something that’s always ready, idling away in the background costing you money. This is where serverless functions become relevant and can replace certain aspects of microservices, which are typical ones that receive an event from somewhere in the cloud.
Omri Harel, senior software developer at Iguazio, the company behind an open source serverless framework called Nuclio, told us that functions can also be used in a traditional CI/CD pipeline: “Let’s say a pull request gets opened on GitHub and GitHub fires off a web hook and that can arrive at some service located in the cloud or alternatively it could arrive at a serverless function.
The way that Harel, and many serverless companies explain the technology, is focused on a common theme in cloud native: making life easier for developers. However, the name itself is a misnomer: “It’s not that there isn’t a server,” Harel explains. “it’s that you don’t feel one. You just don’t think about it.” One key aspect of serverless is that you don’t have to think about provisioning servers, how they communicate, dependency issues and so on, says Harel: “What serverless frameworks aim to allow you to do as a developer is to not worry about that, simply write code, write a function, tell the framework about that function and deploy it. Where, you don’t care, how many? You don’t care either. Most serverless frameworks offer some sort of auto-scaling so if your function is invoked many times then its number of instances will scale up appropriately. If it’s not invoked at all, then it has no instances running and then that also means you don’t pay. You never pay for idle when you use serverless.” All the major cloud providers, have their own cloud functions systems, for example, Amazon has Lambda and Google has Google Functions. If you are looking for an open source framework that you can deploy on frame on a Kubernetes cluster that you own and operate then you benefit from the autoscaling that Kubernetes has itself.”
While many were trying to promote a definition of serverless in Kubecon to interested parties, Kelsey Hightower, software advocate at Google and high profile figure in the community, used his keynote to suggest that it might be a little too early to limit this event-driven architecture. “Typically, Hightower says, “if you listen to people they will tell you something happens in the cloud and it calls their function.” He felt this was constraining it to a platform or two, when serverless events could be democratised by standardising the wrapping and transport of events using CloudEvents so they could flow through any system you want to use.
He demonstrated this by running a Hello World demo, where he translated text from English to Danish in Amazon S3, which is a common serverless example. This would normally all occur in the cloud, but he devised a way to do it from on-premises and have S3 call his function. Without diving too deeply into the details, which you can watch here [https://youtu.be/_1-5YFfJCqM https://www.youtube.com/watch?v=_1-5YFfJCqM], whenever the Amazon S3 received anything in a specific bucket, it was told to send the event to the IP address of a special open source broker called the event gateway (by Serverless). Next, the gateway wrapped the event in the CloudEvents structure and passed it along to Hightower’s application. Finally, he used the normal libraries that are available in Lambda or any cloud provider to process the event.
There were some issues with notification and authentication issues to overcome, but he was able to demonstrate that once the event hit the gateway he could, at that point, decide who got the event next, which could on-premises, his laptop, it could be a function or even a container. The point was that serverless has huge potential and the industry shouldn’t be too hasty to scope down what it was for.
There’s a lot of excitement around Kubernetes, containerisation and the growth of cloud native, but as Ranchers Sheng Liang commented in our interview with him: “Container orchestration hasn’t quite become mainstream yet. It’s probably mainstream within web companies, but it’s getting to more traditional banks and insurance companies, I mean, they are all talking about it, but if you objectively measure the workload that they have working on Kubernetes, it’s probably still quite low.”
As we stopped in at the Rancher stand to say goodbye to Liang before heading for the airport, he reminded us that cloud native is still only a market in the tens of millions, which in the enterprise world is pocket change.
But in the future that figure is going to grow significantly.
To quote Satya Nadella, CEO of Microsoft recently, who, in turn, was quoting Mark Weiser, chief scientist at Xerox PARC and father of ubiquitous computing: “The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it.” Cloud native has a breathtaking ambition of wanting to hide the complex infrastructures and systems to empower the daily lives of of developers. If it succeeds, which seems likely, it will enable them to release ubiquitous services on a global scale that will, in turn, change everyone’s daily lives and that explosion of creativity will powered by open source software.