Book Review: DevOPS for Serverless Application

In this post, I’d like to share some impressions and perspective from the author of the book DevOps for Serverless Application, Shashikant Bangera.

He’s a DevOps, with 18 years of experience in IT, and presents the Serverless world taking principally AWS, Azure, Google, and OpenWhisk as cloud consumption reference for the examples.

The moment we hear the word Serverless it sounds like magic, a world without servers, a world without infrastructure management or the hassles of upgrading and configuring servers. A world without server failure alerts at midnights and early morning hours. We just deploy the code and it works, scales and descales by itself. Yes, that’s what serverless is, but servers do exist under the hood and they are managed by service providers like AWS, Google and Azure; all the heavy lifting is managed by these service providers. You must have heard about AWS Lambda, it is the most popular serverless architecture.

However, there are many other providers too, Google, Azure, Openwhiz and kubeless—some are proprietary and some are open source. As the popularity of the architecture grows, the adoption widens and then arises the chaos of testing, deployment, logging, and monitoring and that’s how DevOps saves the day.

When we talk about DevOps or Continuous integration the first thing that comes to our mind is Jenkins. That is because Jenkins is quite a popular tool in the DevOps world. There is an estimation that there are 1,000,000+ users of Jenkins, which is why it is considered a very popular tool. It has a huge support forum and a good number of plugins. There are various ways to deploy serverless functions like AWS Lambda, through aws cli, cloud formation and there is also a Jenkins plugin for lambda deployment.

Likewise, there is one more popular tool or framework to efficiently build and deploy lambda functions—the Serverless Framework. It is a cli tool that allows the user to build and deploy auto-scaling, pay-per-execution, event-driven function. It supports quite a lot of service providers like Google, Azure, open whiz, Oracle fn, and Kubeless. It supports canary deployment and many other features.  It is pretty easy to install configure and setup deployment.

More details about the Serverless can be found on https://serverless.com/

But then how do we use it along with Jenkins, there are multiple ways to do it and it also depends on how our Jenkins slaves are configured. If Jenkins slaves are on the VM, then we can install and configure Node.JS, and then install Serverless Framework and configure it to run as Jenkins. We can install and configure the serverless framework on the Jenkins slave VM through the following command as root user.

And if you are using immutable slaves as docker container, then you can create docker slave through the Dockerfile below with the serverless framework command line tool installed and configured on the slave.

We can use this slave to setup build, develop and test serverless functions. Likewise we can setup pipeline.

Shashikant Bangera

This is a little taste of what the book is made of, and the giving a read I found this book really useful for who are approaching the serverless world with clear concepts and practical examples.

You can find this and other useful concepts and example here: DevOps for Serverless Applications. Happy reading.