Are you looking at serverless?
As much as I am sometimes annoyed by the overused term “digital transformation”, there is an important reality behind the words. In the most simple terms, businesses need to deliver convenient, useful, and enjoyable digital experiences to their customers, so that these customers continue to do business with them. To achieve this, companies need to get really, really good at building, testing and delivering great software to their customers quickly, and at iterating on that software continually to keep pace with the market demand and experiment with new product and service ideas.
On the technology side, this goal of business agility is made possible by things like like microservices architectures and containerization. They allow development teams to iterate on relatively small parts of their software assets, and to deploy them to customers quickly and seamlessly. Serverless computing is another way to accelerate the delivery of useful software to customers by helping developers focus on writing business-relevant code without having to worry about managing the underlying infrastructure.
Serverless is a clever term, but it does actually use servers underneath; however these are completely completely hidden by additional abstractions. This leaves developers free of concerns around virtual machines, operating systems, etc. The code they write is only instantiated as needed, and the company is billed based on execution time and utilized resources (as opposed to pre-purchased amount of compute capacity).
With things like monitoring and scalability provided natively, developers are spared the majority of system and operational management concerns. Instead, they get to spend more of their time building useful functionality that solves specific business problems. Additionally, since a single function is a very small unit of deployment, this too contributes to greater speed of delivery and improved time-to-value, making the business more competitive.
More and more of DataArt's customers are actively exploring and adopting serverless as a new abstraction for making business applications. For example, in a recent project, an innovative financial services company has decided on AWS Lambda as the primary technology to power its new platform for investors and financial advisors. The particular nature of the future application (relatively low transaction volume, high transaction value) made Lambda the natural choice for the project, as it massively decreases future infrastructure spend.
So, should everyone everywhere just go full serverless? Of course not. First of all, unlocking the benefits of serverless requires developers to change their mindset from the more traditional approaches. In particular, teams need to maintain strong focus on unit testing, since that is what will help debug their functions. Other best practices include caching parameters, objects and connections between calls as much as possible in order to lower response times and ensure smooth user experience. On the business side, it’s still important to keep track of costs: a million free requests are nice, but those Lambda invocations add up quickly, especially if you have developers actively iterating and testing daily.
To sum up, serverless computing is attractive from multiple perspectives including agility, simplicity, and cost. It works great for event-based applications (with relatively granular functions of code executed in response to events), or as "connective tissue” that can tie together a wide variety of cloud services used to build cloud native applications.
Reach out to DataArt if you are considering building your next application in the cloud, and we'll be glad to help you figure out if serverless is the way to go.