Serverless 101 and Siili CraftCon
The second official Siili CraftCon was held before summer holidays 2017. It is an internal craftsmanship conference for all craftsmen and -women in Siili. This time it was half days and three tracks worth of pure skillz with topics such as "how to be a tech lead", "data-driven design", "RPA" and more.
I had the pleasure of speaking about serverless architecture to the whole crowd as a closing presentation. Since I am a keen agile/lean fan I am also totally in love in serverless architecture and everything it has to offer in terms of reacting to changes and feedback and the ease of implementing new features and trying out new things.
SaaS, FaaS, (m)BaaS and PaaS
Serverless means that you only need to think of your business logic. Everything else is taken care of by your chosen vendor. All big-name vendors have their own serverless platform and services. In this context, I am talking about PaaS (Platform as a Service) and FaaS (Function as a Service) side of serverless.
Some may include SaaS and (m)BaaS solutions into serverless context. SaaS stands for Software as a Service and like the name implies it includes software you configure for your needs. Some examples are Google Apps, Dropbox and Slack. (m)BaaS is (mobile) Backend as a Service and it provides some backend services, such as authentication, mainly for mobile applications.
FaaS is a subset of PaaS and means you write your function in your chosen language (or in a language that is supported by your chosen vendor) and deploy it. You also have to configure how the function is called. It can listen to events or can be triggered by an HTTP request via an API gateway among other ways. Your vendor takes care of scaling it to your needs and you pay only for execution time. Wikipedia explains FaaS as "A category of cloud computing services that provides a platform allowing customers to develop, run, and manage application functionalities without the complexity of building and maintaining the infrastructure".
PaaS includes a lot more than just FaaS. Widely available PaaS services include messaging, databases, big data, analytics, file storage etc. They all are services you launch and configure. You can insert your FaaS function in a PaaS workflow and use all other available services with it. Again your vendor takes care of your infrastructure needs like scaling and backups and you pay for what you use. Wikipedia explains PaaS as "A category of cloud computing services that provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure". See how it differs from FaaS?
In short, serverless means you are responsible only for your code and your data.
In Siili we have a lot of internal serverless development also on top of all the fancy stuff we create for customers. We also have cloud sandboxes freely available for all Siilis for learning and trying out serverless stuff.