The best software developers are lazy. They're lazy because they exert little effort to reach the required results....
This approach is elegant, simple and efficient to solve the problem at hand. And this is what APIs are all about -- and it's what serverless architectures are doing, as well.
Serverless is a relatively new term and trend. With serverless, we're trying to create a service without deploying back-end servers for it. This does not mean there are no servers. It means someone else is responsible for the back-end servers.
Serverless is also known as functions as a service. The most widely known example is Amazon Web Services (AWS) Lambda, which enables developers to run any piece of code in case of a triggered event. This trigger can be anything from a timer popping up to a REST API call being invoked.
Developers can gain the following serverless architecture benefits:
- Lower ongoing maintenance. A serverless architecture means developers don't need to manage any servers. There are no operating system updates or upgrades, no patches and no worries about handling machine issues or monitoring performance. The vendor handles these tasks.
- Auto scaling. As your service and needs increase, the ability to scale the service is, theoretically, limitless and automated. You don't need to worry about how many machines to provision or how to load-balance them in order to deliver the service.
- Time to market. Because of the previous benefits, developers have more time to focus on the actual service they want to deliver and the user experience associated with it. They don't need to invest as much time and effort in the operational aspects of the service. This means increased focus and faster development times.
- Cost. Less to develop means less to pay for. And during normal operation, using a server only when it has events to deal with and not ongoing items means costs are cut.
Despite these serverless architecture benefits, they also cause concerns -- from increased surface area for potential security threats to the reduction in control and ownership over the whole service. In most cases, though, the serverless architecture benefits outweigh the drawbacks.
Communication APIs meld with serverless architectures
In the past year or two, we've seen a growing trend in the market. Serverless architectures have started to find their way into communication API platforms -- and for good reason. For the most part, communication API platforms require us to interact with them via our own server. We need to implement and deploy our server in order to deliver the business process we had in mind.
Developing, deploying and maintaining your own server could be a real challenge. In many cases, an enterprise is not focused on developing communications. In other cases, some enterprises might not be tech-savvy.
As a result, many communications projects fall into the hands of outsourcing vendors and system integrators who start the project and develop and deploy the service. But who monitors and maintains the newly developed server on a daily basis?
In a classic API architecture, the enterprise develops and deploys its own server to host the service and communicate with the vendor via REST APIs. If an enterprise uses a serverless architecture, no new servers need to be deployed and maintained.
With a serverless approach, an enterprise reaps the benefits of outsourcing the maintenance work necessary for business communications. Taking the next step of using serverless communications enhances these benefits further.
When using a generic serverless architecture for a communications service, you encounter two main challenges:
- Two vendors. You have to work with two vendors, which means two contracts, two support channels, two sets of dashboards, APIs, and API keys to manage and use. You'll have two places to troubleshoot, collect logs and other tasks, which is a hassle.
- Security. With two separate vendors, your attack surface grows, especially because the serverless infrastructure needs to have access to the communication API vendor's API keys that you'll be using.
This has led some communication API vendors to offer serverless communications -- a domain-specific serverless approach linked to their platforms' capabilities and service. This approach offers AWS Lambda-like capabilities, but it also provides three important additional benefits for the enterprise:
- Improved security. All authentication, keys and authorization aspects are in the same single platform. The communication API vendor does not need to expose this information, and there is no external communication taking place. The vendor offers the security and is probably better equipped to do so than most enterprise customers.
- Single vendor. You now source your communication needs from a single vendor, which should alleviate some problems. The learning and development processes are also easier, as you're dealing with a single system.
- Latency. Decisions and API calls now take place closer to the API platform itself, as they are processed from within the vendor's own domain of control. This is slightly less important for most use cases, but in some cases, this can be quite beneficial.
Communication APIs simplify the delivery of communications-enabled business processes. Serverless communications is the next step toward that same goal.