Serverless is considered a huge Lego construction. Add every piece you need, build fast, and hit the market as quickly as possible.
By Edmo Lima
For a tech startup, there has never been a better time to build a product. To start genuinely and without spending too much on the start, serverless is a great option. When the cloud first appeared, it allowed us to rent parts and run our operations locally; and serverless now allows us to execute code and not worry about how it happens. This is incredibly powerful for startups, but many still do not understand why.
The cloud has given us the ability to do without infrastructure. We were able to rent servers, storage and networks as easily as renting an office. This on-demand approach enabled a faster and cheaper way of testing ideas and then "scale up" if they succeeded. Smart startups were among the first companies to recognize the sheer scale of this idea. But the cloud is still complicated, and you really need to know what you are doing in order to orchestrate all moving parts successfully.
Serverless joined the fray a few years ago and changed this model. It analyzes the code and the services required for a platform to function and executes them for you. In the background, there are still servers running, but you no longer have to manage, fix, or maintain anything. It is the age of noOps, it is the next iteration of the cloud, allowing you to focus solely on what matters in your product development instead of on the hard work of the underlying stack.
In the first two years of serverless, most were used for specific small-scale tasks such as resizing images, running reports, or running small infrastructure processes. But serverless capabilities have come of age in the last 12 months and you can create a surprising amount of your applications — sometimes all of them — by using a serverless architecture approach.
The benefits of serverless for startups
There are some important things you need to care about as a startup. First, affordable serverless applications are really very cheap. While the cloud is definitely cheap, you still pay for virtual servers that do not run at full capacity, load balancers that may not do much, and storage blocks that aren’t fully used. You also have to pay for someone to manage it all.
With serverless, you pay for what you use. This means that you will only pay when the code is executed, paying for actually used storage bytes, and the hidden infrastructure support to scale it all is embedded in these figures. It is truly a measured service. For example, on AWS Lambda, you pay USD 0.20 per million requests when the code is executed. In practice, I’ve seen that this usually means that you can pay 70 to 90% less for your infrastructure compared to the cloud equivalent.
Sizing is also a gift for startups. Typically, the gap between the Minimum Viable Product and the Final Product can mean significant rewriting and redesigning of the application. That’s because you create the absolute minimum to test an idea, and that’s not enough for an end product. Most MVPs consist of largely disposable work because of this gap.
With serverless, the design is broken down into much smaller units connected by functions. This code usually does not need any rework as the application receives more traffic because these functions are very small and specific. They can search for a user profile, transcode a video, or send an SMS notification — the difference between MVP and production is purely scaled in these cases. The main benefit of serverless is that sizing is done for you — whether it's a function performed once a day or thousands of times a minute, the cloud provider ensures that happens.
Finally, there is flexibility. In all startup ideas, the concept changes substantially and functionality changes rapidly. With serverless, it is relatively simple to keep up with the pace of change because the application is made up of dozens of very small units. You can upgrade and change these units without affecting the overall app, and this responsive structure makes it a perfect choice for startups where you often change the engines of the plane mid-flight.
The history of technology has always been the constant commodification of storage, computing, and networking, as a byproduct of the three becoming exponentially faster or cheaper. Much of this is happening so quickly now that it may be easy to dismiss an obvious trend as a fad or fail to notice when you are working on technology issues that have no real value.
The Cloud made it clear that datacenter execution only made sense on a large scale, and even big companies that choose to manage their own resources were not allocating their resources well. As these providers have enhanced automation and provisioning of virtual machines, there is now a clear case that even managing them is a task better performed at scale.
For startups, this means you shouldn’t use any of your scarce resources on technology issues that you can solve. The serverless mindset lets you devote all your engineers to solving business problems and spend very little of their time on server management and infrastructure.
While Amazon and other companies will continue to increase their user numbers, if you focus on differentiation capabilities, this process will work in your favor. Simply put, this is a very bad time to work on infrastructure management, but it is a good time to create solutions that meet business needs.
Adopting the serverless mindset
Serverless is evolving rapidly; it has become a federation of different managed
services. This typically includes Functions-as-a-Service (the code you run), storage and delivery of objects, databases, networking, and security. In the AWS world, this is equivalent to Lambda, S3, CloudFront, DynamoDB, Route53, and IAM, but there are similar services in Microsoft Azure and Google Cloud.
These services are like Lego. If you break your technology product down into a
flowchart, you can find out which Lego pieces you need to perform each step. For example, a very simple service that retrieves user orders and receipts might look like this:
The mapping of these steps in AWS tools could be modeled as follows:
Identifying the events known as triggers for things to happen and where information is stored or managed are the first steps to breaking down tasks. In most early diagrams, the steps tend to be very rough (for example, quot;Find user recommendations"), but subsequent iterations can split exact functionality, simplifying serverless conversion.
There are now many pessimists who will discard limitations of this model before considering what it brings to the table. For latency-sensitive applications or compute-intensive activities, serverless is probably not the answer. But in every startup product I’ve ever seen, even these services have user interfaces, websites, and asynchronous elements throughout the project that can be handled perfectly that way.
It’s all about the business benefit
A large start-up case study is A Cloud Guru, a popular training site for engineers with 600,000 global clients. This platform was built using serverless tools from the start and has been scaled to deliver a large amount of media to a fast-growing user base.
This web application consists of 287 Lambda functions with almost 4 terabytes of data stored in S3. These functions are used more than 6 million times a day. In any other system project, this would require a large amount of infrastructure to build, monitor, and maintain. However, by August 2018, the Cloud Guru project cost for Lambda was only USD 580 per month.
In this case, the business focuses its efforts on where users receive the most value — that is, quality training — rather than on delivery infrastructure. In many ways, the transcoding and streaming mechanisms of these videos are mundane and commoditized, so the company has taken the smart step in delivering these processes to AWS.
I am really excited about what serverless means for startups. As Rupert Murdoch said, "The world is changing very fast. The big will no longer defeat the little. The fast will beat the slow." Serverless gives us the best chance to deliver quickly, use our limited resources to focus on our products, and use speed and agility to our advantage.
Do you want to bring innovation to the lending market through technology?
We are always looking for people to join our crew!
Check out all our vacancies here.