Serverless Tools and Best Practices
Learn by example in this tutorial creating a serverless slack command using Node.js and Up. Learn best practices for developing serverless applications.
Last updated
Was this helpful?
Learn by example in this tutorial creating a serverless slack command using Node.js and Up. Learn best practices for developing serverless applications.
Last updated
Was this helpful?
Throughout this series we have been exploring how to use serverless architectures to our advantage. In this article I will show you:
How to using Node.js & Up
when developing serverless applications
A of serverless resources
When I first started experimenting with serverless technology, I was amazed at the complexity of managing individual functions and environments. At first I scratched my head, and thought, βhow can the cloud providers actually believe people will really adopt thisβ? Now that was 2015, documentation was light and tools were in their infancy. Since then, things have changed dramatically. Today, I am excited to show you just how much easier the serverless development experience has become.
In the following tutorial we will be creating a serverless slack command that pings a url and checks how long the website takes to respond. We will be writing the code using and using a tool called to manage our serverless application deployment.
I love Up for many reasons:
Learning curve is ultra low
Common uses cases like static sites or REST APIs are its bread and butter
Supports common Languages like , , &
For existing projects, this is the most simple βLift & Shiftβ operation I have seen
Itβs Free & Open Source
The project is maintained by , heβs built a ton of other tools that you have most likely either directly/indirectly used. He offers a Pro version for $20/month ($10/month forever with this coupon code: am-376E79B073F3) that I think is well worth the money. I specifically like the active warming feature (combats ββ); it come with a slew of other features like encrypted environment variables, instant rollbacks, asset acceleration, and alerting that the free version just doesnβt have. You can find all the details .
For this tutorial you will need accounts on these two platforms:
And for brevity of this blog post Iβll just trust that you can get these setup items done:
Once your app is created, click the Slack Commands from the left hand navigation menu. Then click the Create New Command button. Fill in the details like so:
Once you have downloaded the code, make letβs make sure we install itβs dependencies:
npm install
Youβll now want to run the following commands:
Now that we have our API endpoint copied, go back to the Slack slash command page and paste the url in the Request URL field, and then click the Save button.
Next click the Install App from the left hand menu and click the Install App to Workspace button. Youβll be redirected to an authorization page. Click the Authorize button.
Now go to your slack workspace and give it a try. The first time it might fail because of a βcold startβ taking too long to respond to but the invocations after that should work just fine.
From my experience working with serverless code, here are some tips and best practices when writing your serverless code:
Write libraries, not functions - This will compartmentalize logic in a library that you can take to other projects. The serverless code, should really only be an adapter to the serverless platform
Donβt count on background processing - If your an async fan, make sure all your deferred executions have finished before your function finishes. (This is a common mistake during βLift & Shiftβ operations)
Below I have put together a curated list of resources for your serverless knowledge:
In this tutorial you should have successfully created a slack command using Node.js and Up, learned best practices when it comes to developing serverless applications, and now have resources to do further reading.
I really hope you have enjoyed reading this series and were able to learn something. If you liked this one, and didnβt get a chance to read the others in the series make sure you do.
The first thing weβll do is create our Slack app. For this youβll want to create a new app by going to and clicking the Create New App button. Give your app a name, and select the workspace it should live in. Then click Create App.
To keep this tutorial simple, I have posted all the code on . If you really enjoy reading the code, the two main files are:
- code that actually handles the http request from slack, and pings the url
- configuration for our project
Minimize cold starts - If your application is customer facing, minimize cold starts by investing in a . Itβs a terrible customer experience to have a request timeout or be slow.
- Deploy infinitely scalable serverless apps, apis, and sites in seconds.
- This was the first tool I used, it fairly quick to get setup, but IMHO you have to configure too many settings.
- Another tool by TJ, but this is a toolset more for functions, rather than an entire apps