Functions - FaaS
The next frontier is close

It was a sunny morning last Friday in Toronto. Instead of enjoying the sun doing some outdoor activities I choose to join a group of people to talk about functions as a service at the Functions17 event:

Functions17 event

Back in 2014, I noticed a new offering from AWS: AWS Lambda At the time, I was playing with Docker. The idea of not having a VM but just the important parts I need to run my application was very appealing to me, but what if I didn’t need to have even a container. In the end, what I need is something to run my code in response to an event that could be an HTTP request or something else like a message on a queue. This code will have some side effects for sure; so, we are not talking about “pure” functions here. We are talking about on how to organize your application with enough flexibility to scale at a function level. The time went by, and this serverless/function-as-a-service[FaaS] space start growing. I had the pleasure to learn more about how things are moving in the direction of having less infrastructure. This is a fundamental concept and a bit of misunderstanding regarding Function-as-a-Service. It is not serverless. The servers will continue to be there, but we are going to use another level of abstraction on top of them.

In the beginning, we had a physical server, and we need to deal with everything there. Even when developers sometimes didn’t need to work directly with those servers, there were/are teams dedicated just to maintain the server. Things don’t run by them self (or they do until they break). The second step was virtualization. We continue to have a physical server on-premise or on a cloud provider, but we don’t work directly with the hardware. There is an abstraction layer, the hypervisor, but we continue to handle them more or less as a physical server. The third step was/is containers. We can optimize the hardware by using just the amount of OS we need to run our app. There is more density to gain with this approach and less old headaches (and new problems as usual). People realize a single container is not your system and the interaction between all these containers could be tricky. You still need to manage them. Orchestration needs to happen, and platforms like Kubernetes and Docker Swarm emerge. Nevertheless, it is an improvement over a barebone server. The fourth step could be Function-as-a-Service. With this approach, developers can focus even more on the task at hand. It could be broken down into smaller tasks that will be deployed independently and scale on their own needs. If it sounds interesting to you here is the link to the conference play list #Functions17.

We had seven live presentations. Here are few comments on each of them:

I enjoyed this conference. It was very well organized and I appreciate the time and effort dedicated to it by its organizers:

I hope they continue to put together conferences like this one. This is just the beginning of FaaS. It is a new approach to what we do every day. Hopefully, the challenges of today will be part of the past soon.

Happy Journey!

*****
Written by Darien Martinez Torres on 28 August 2017