In 2017 it is a safe prediction that more and more projects will use big data. The availability and need for data from different sources, whether for real-time analytics in the retail sector, or sensors and internet of things (IOT) devices in industrial manufacturing, means applications will increasingly rely on greater quantities of data in real-time. For technology teams using a traditional on-premise IT environment, this represents a complex and costly proposition. This is why we are seeing more organizations looking to cloud-based serverless architectures.
The concept of being “serverless” has been around for a few years, but it’s really in the past year that it has garnered significant attention. Companies such as The Coca-Cola Company are using this framework to reduce costs and deploy services quicker than they could otherwise. The research company Gartner highlighted serverless computing (and what it calls an “intelligent digital mesh”) as one of its strategic technology trends for 2017.
In a serverless architecture world, an application can use backend-as-a-service and function-as-a-service functionalities (like authentication logics) provided by third parties, e.g. through different RP gateways. This is different from the traditional world where the application accesses the server and the database. For example, now you can deploy the code to a function-as-a-service provider, and it will do the rest.
Particularly with mobile applications or IOT devices, or anything that relies on big data, serverless architectures have advantages. This is because using a serverless architecture can help simplify the complexity of big data thanks to elastic scaling. In addition it offers cost benefits because you only pay for the computing power and storage that you use, rather than having to worry about installing additional processing nodes. This approach also offers low maintenance costs as the solutions can scale with minimum configurations and it is relatively simple to replicate them.
Another key advantage is that developers have to spend less time thinking about the server, and more time thinking about what they want to build.
However moving to a serverless architecture is not that simple. You can’t simply flip a switch. Rather it’s necessary to re-write your applications and make them suitable for this new environment. As a result, we need to talk about what “cloud-native” applications really are. As this article in InfoWorld succinctly points out, to take full advantage of a cloud platform (IaaS or PaaS) an application has to be designed so that it is “decoupled from any specific physical resource”. Only then can you reap the benefits of a serverless architecture.
Meanwhile, with respect to automating deployment in the cloud, there is still no clear winner as to which company will provide you with the best option. But I recommend looking to companies such as Puppet, Serverless, Chef, Ansible, and Salt to help you.
What have been your experiences so far? Please leave a comment below!