Looking for Senior AWS Serverless Architects & Engineers?
Let's TalkIn this article we will be diving into some industry predictions for 2019. We will be covering the usage of fully managed services as a first choice when deciding what solutions to leverage in our applications. We will also take a look at a new Serverless microeconomics term called, FinDev. Then we’ll finish off with how companies are approaching cloud optimization.
Sections:
- Fully Managed Services, first
- FinDev, Serverless Microeconomics
- Cloud Optimization, moving straight to Serverless
Fully managed services, first
We need to move fast. The paradigm has shifted. We are beginning to care less about running a good server and more about the product. The product should be the focus. Yet most companies are spending upwards of 70% of their time in maintenance, infrastructure creation/deployment, configuration management, patching, clustering, replication, and so on.
Those are all things that your product may require but need not be, managed and maintained by your team. Many companies are moving further and further away from rolling their own infrastructure. Instead, they are leveraging the array of fully managed services which multiple cloud providers offer.
What’s the benefit?
Flexibility, pure and simple. For example, a company needs a database to store application data. In the pre-cloud era and even up until a few years ago, the answer was to spin up a server on premises. That was a lot of work just to put data in and out of a box.
When companies started creating servers on a virtual machine, using a cloud provider, they gained some flexibility. Although, that virtual machine solution enabled easier scaling, it didn’t get us away from a lot of the hardest problems which often bubble up a few months or years after the virtual machine was created.
Fully managed services, on the other hand, can turn a cluster of services needing weeks or months to fully configure, maintain, and upgrade into a simple, maintenance-free box. Now the developer can focus on putting the data in and out of that box.
FinDev, Serverless Microeconomics
The impact of Serverless has yet to be fully understood and new breakthroughs are continuously popping up. A new insight into the future of Serverless is “FinDev”, the idea of making micro-adjustments on a per-function basis to maximize revenue and lower the Total Cost of Ownership (TCO). The FinDev approach takes a fine-toothed comb through the smallest units of systems to discover small gains which can dramatically add up over millions of requests.
According to FinDev and Serverless Microeconomics, FinDev combines financial and software development practices “around serverless and capital flow management, including the consequences of this serverless pay-per-use model and [introduces] potentially new software financial models.”
If we take a common scenario such as user registration and apply the lens of Serverless development and FinDev analysis, we can find out how much that single user-registration function costs and earns. With that fine-grain level of data, we can break down traditional silos, allowing even a CFO to have insight and input into their company’s software systems.
At Serverless Guru, we believe that FinDev is going to be a common theme as we move into the future of Serverless development. Companies will start hiring full-time FinDevs to help them understand their systems and encourage micro-adjustments amounting to millions of dollars in annual savings.
Cloud Optimization, moving straight to Serverless
When companies debate about how to move to the cloud, they typically focus on a few common options:
- Lift and Shift
- Containerization
- FAAS, Stateless Event Driven Architecture
Lift and Shift
This is when companies want to pick up their on-premises servers and put them on a cloud provider. This strategy can sometimes be the easiest first step. However, it can cost a lot of money and time post-shift due to not understanding the cloud environment in enough detail.
Containerization
Usually, this would be a company that is a bit further along in their cloud adoption journey but wants to reuse some knowledge from running full-fledged servers. To get to a point where containers are possible, it usually first requires breaking apart the application, which is often described as “breaking apart a monolith into microservices.” However, the knowledge required to run an efficient system using containers may end up costing far more than first expected and actually increase the complexity as you try to scale and monitor effectively.
There are tools being created by companies like Google and Amazon to help orchestrate these containers and make the whole implementation more manageable, yet it still requires specialized knowledge.
FaaS, Stateless Event Driven Architecture
The cloud optimization option enabling the FinDev approach is centered around the idea of FaaS or Functions as a Service. FaaS are small units of code, usually single functions, which can scale horizontally and are fully managed by the cloud provider. The motto here is, “bring your code and we (the cloud provider) will take it from there.”
Yet FaaS is not all rainbows, as you need to have specialized knowledge in cloud-native development. And more importantly, you need to have a culture which encourages discovery of new patterns, exploration, and learning.
In the private sector, I’ve seen banks with up to a thousand risk management systems all doing the same thing. Multiply that out across the world and you have millions, tens of millions, of duplicated systems.
A lot of what we do in IT, I’m sorry to say, is waste. But radically changing your architecture to focus on the functions that actually provide value is a big shift, and it’s not as comfortable as saying: “Hey, I’ve got a container! I can move it around between providers, and it’s more similar to the environments I’m used to.” — Source: Containers won the battle, but will lose the war to serverless, by Simon Wardley
At Serverless Guru, we have seen companies opting to leapfrog containers and move straight from an on-prem or virtual servers solution to FaaS when the internal training or external consulting cost required to leverage containers is equal to or greater than the cost of jumping directly to FaaS. Such companies break apart their monolithic applications into microservices at the function level, allowing them to jump straight into a Serverless paradigm.
Companies have been accelerating this transition by hiring Serverless experts, who help them to create high levels of infrastructure automation, to leverage cloud-native best practices, and to opt for solutions which follow a fully managed paradigm.
These benefits can dramatically lower the overall cloud total cost of ownership (TCO). Scaling an application and adding multiple environments no longer requires large engineering efforts. If done properly, Serverless development should ensure that your companies application can scale to meet any demand while keeping overhead low and accelerating application development.