Pros of Serverless technology
- Costs efficiency and reduced operational expenses: since Serverless computing involves the invocation of the code when there is a request, the cloud provider charges only the compute time of this execution. Serverless cloud providers even offer charging based on number and duration of requests, i.e. charging per request and per second. You pay only for what you use, not a monthly fee.
- Elasticity. The Serverless provider automatically supplies you with computing resources, depending on how much load your application has. There is an option to scale up from zero to thousands of parallel functions. Since scaling is executed automatically, no extra configuration on your part is needed.
- Independence from OS or any software used to run the application. It doesn’t matter whether your Serverless app runs on Windows, Mac OS or Linux. The ability of a particular programming language to execute code and the corresponding libraries at any platform could be critical.
- Faster time to market. Serverless requires less effort on the part of developers who deploy only code. In other words, you gain the advantage to attract new consumers with your services or products earlier than your rivals (those who don’t choose serverless technologies) do.
Cons of Serverless
Any technology has its pros and cons. Serverless is not an exception. The technology also comes with quite a list of difficulties developers might be faced with.
- Reduced control and security concerns. In serverless environments, it is more difficult to detect malicious packages and complete performing security testing. And the fact that serverless functions consume data from a wide range of event sources dramatically increases the attack surface.
- Vendor lock-in. Migration to another service provider might be complicated. Serverless features are implemented differently by various vendors.
- Although your functions are isolated, the wrong architecture can lead to cascade failures – when an error in one function leads to the inoperability of a large number of others.
- The excellent scalability means that your function is not invoked until it is not running. The execution, therefore, may take up to several seconds, this may be critical for some users.
Use cases of Serverless
Use cases of Serverless architecture involve spheres with asynchronous unpredictable workloads:
- Multimedia processing;
- Database changes or change data capture;
- IoT sensor input messages;
- Stream processing at scale;
- Batch jobs scheduled tasks;
- HTTP REST APIs and web apps;
- Mobile back ends;
- Business logic;
- Continuous integration pipeline.
Serverless for chatbot development
Above, we’ve mentioned some top domains for Serverless, and below, we’d like to shed the light on a use case that might be very exciting for many businesses.
The serverless tool seems to be a mature instrument for developing chatbots: the scalability of serverless computing automatically adds or removes power, and you pay for messages processed from the messages where your chatbot lives. The number of requests that the code can process is not limited and there is no need to pay for downtime. In addition, serverless architecture provides seamless integration with other cloud offerings from the same vendor.
Let’s look at one of the largest Japanese real estate portals as an example of how a real estate business uses serverless computing and AWS Chatbot.
Japanese Real Estate Information Service LIFULL Co., Ltd. provides a variety of services, including business support services for property developers, customer relationship management assistance for rental operators, local real estate information, and search engine retrieval website management for retirement homes. It is extremely important for LIFULL developers to be flexible in collaboration and data processing.
LIFULL has integrated AWS Chatbot into its Slack channels to aggregate various notifications such as application deployments and infrastructure preparation. Since notification destinations can be easily specified, LIFULL was able to ensure that application notifications are distributed across each Slack channel appropriately so that developers get only the information that matters to them.
“Not only does this speed up our development time, but also it improves the overall development experience for the team”, says Kentaro Suzuki, Solution Architect of LIFULL Co., Ltd.
Along with AWS, you can use Microsoft Azure, Google Cloud, or any other service provider and after developing the logic of your chatbot, you should only upload it to the selected platform. All that remains to configure the API to the selected webhooks of the chosen messaging channels.
Serverless architecture runs, scales, and pays on demand. This feature makes serverless architecture very suitable for developing chatbots. However, you will never know how it works until you try. The ability to experiment and not pay too much for this is what makes serverless computing possible.
In 2018, the RightScale cloud report was published with respondents among specialists from a wide range of organizations on their implementation of cloud infrastructure (997 respondents range from technical executives to managers and practitioners). Serverless is indicated to show the highest growth among public cloud services: