When you use an electrical appliance, you use switches to manually change between the ON and OFF usage states. You are billed only for the duration you use those appliances, not when they are in the OFF state.
By switching ON and OFF you’re triggering events. Similarly, applications running on the cloud, can also have an event driven software architecture with ON and OFF states. Such applications are programmed in a way that each feature can be accessed or turned ON or OFF, based on when a user needs to access that feature. Features are treated as services, and are only invoked in response to certain user events; you’re billed only for the time those functions or software components are alive.
If your app has N features, and each feature can independently offer itself as a service, turn ON when the user needs it and turn OFF when the user doesn’t need it, then your app is well aligned with the “Serverless Architecture”, actively practicing the idea of “Microservices”.
How does it simplify your developers’ roles? They no longer need to worry about physical hardware, virtual machine operating systems and web server software management. They just need to code functions.
“There’s no servers to manage or provision at all. This includes nothing that would be bare metal, nothing that’s virtual, nothing that’s a container — anything that involves you managing a host, patching a host, or dealing with anything on an operating system level, is not something you should have to do in the serverless world.”
– Chris Munns
Bottom line: Build more, manage less
Software developers can focus entirely on writing highly efficient and scalable object oriented code in smaller deployable units that perform core specific functions. Developers need to be concerned only about writing core business logic of the application and simply not worry about code integration and delivery.
Now, what’s becoming extinct?
Gone are the days when IT run businesses had large air conditioned server rooms, with tight security and restricted access. Businesses then had to invest in purchasing server infrastructure, own a server completely to run their applications on it, establish a dedicated server room and a DevOps team to monitor server availability and security.
This was also because Businesses assumed a pressure to be alive every moment, instead of being “demand-driven” or user-event driven.
Age of fractional ownership
Amazon and Google today are offering “virtual, fractional ownership” of cloud server infrastructure, in other words — ability to rent out server infrastructure, so you pay only for the time you’re running your business on cloud (instead of buying the server). Your server availability is proactively managed by your cloud provider along with proactively upgrading it’s configurations based on application usage.
This relieves businesses from spending time and money on DevOps and enables them to focus more on programming features.
What’s exciting about this?
Serverless computing pushes your business to become a more assertive, “demand-driven” business, than a “supply-driven” business.
You could run every feature of your product or service, as an independent service that’s available online for a select few hours, only when it’s needed.
Serverless Architecture allows coding a Function as a Service (FaaS), also called a Microservice which is making life a lot easier for businesses today, as all you need to do is now code each feature as a Microservice (which the server understands how best to run it), without having to worry about server availability, active server monitoring, management and maintenance.
Greater business agility
Lesser Deployment Time (Time to Market) — the time required for Packaging and deploying a new functionality or FaaS application is significantly less compared to regular self-managed server approach; as serverless obsoletes a lot of tasks (like managing and running core services such as databases and load balancers) in the deployment process by proactively taking care of it.
Faster Response to Market Demands — Businesses can be swift in responding to ever changing market conditions and demand as developers can just tweak the existing code a bit or write some new functionality (if required) and deploy it just with a few API calls without worrying about code integration and delivery i.e., in serverless architecture scalability is possible at function level, unlike other virtualization mechanisms where scalability is only possible at application level.
It’s now extremely simple for software engineers to develop, deploy and manage applications running on the cloud. What once costed thousands of dollars to run your app on a cloud server now has dropped down to more than 1/10th the original cost, due to this “virtual, fractional ownership” concept, with an all new “serverless” way of coding your app and simply renting out a server to run it.
Many more reasons to love
- AUTO-SCALING: What if someone else took care of automatically scaling up or scaling down your server configuration & availability, based on how many people are using your application in realtime? Amazon Lambda, Google Firebase and IBM OpenWhisk intelligently create more and more copies of your features / functions (Microservices) that can be available as services to more and more people as the demand rises. You can customize this auto-scaling behavior by writing your own custom cloud functions!
- AUTO-HOSTING: All aspects of hosting your application is taken care by your cloud vendor (like Firebase, Lambda or Azure). Developers need not write any server hosting functionalities as vendors already are providing commonly used server functionalities. Developers can simply invoke these standard functions by making API calls. Also, reg. Security — it is much simpler for developers to implement security practices and protocols, as directed by the serverless environment.
- EVENT-DRIVEN: Serverless architecture, fundamentally pushes your business to be demand-driven or event-driven, turning ON / OFF in response to a user event. This questions businesses that are blindly available 24/7 online, even when there’s no demand. Sometimes — Less is More. Reiterating the cost savings — with serverless, your business saves about 60% of your cloud infrastructure costs as you don’t have to pay for server downtime or idle time. In serverless, you are billed only when the memory space reserved for your functions that are in active use (running state) and some amount for the resources it requires to run.
Not another new tech, it’s here to stay
With new software technologies emerging everyday, how many of them do you think see a sustained adoption rate of over 25% and the demand for which is rising consistently? Fancy technologies lacking value, lacking a strong business case to exist or failing to deliver on promises, die a slow death and become extinct; unless these are:
- Technologies that open up a whole new way of looking at a ‘digital-obsessed’ world (like blockchain introducing the possibility of transparent transactions, like Augmented Reality creating a whole new experience of navigating the real world)
- Technologies that have been merely projected so, in-order to pique interest (like AI killing jobs, where AI is redefining job roles, not really killing them).
Serverless computing is not just about the hype created around it by cloud computing giants — like Amazon, Google & Microsoft. It indeed seems to be very promising when it comes to addressing several pain points of tech enterprises that often troubles CTOs or sometimes even deters the business growth.
The potential Serverless computing brings with it is tremendous. Based on a report by MarketsAndMarkets, the present market share of Serverless Architecture (as of 2018) stands at USD 4.25 Billion, which is further anticipated to grow at a whopping compound annual growth rate (CAGR) of above 28% to reach USD 23.79 Billion by the year 2025. Also, the adoption rate for serverless computing services is growing in triple digits. These numbers would definitely attract attention of entrepreneurs and investors, and the USP is compelling — reduced operational costs to run the business, lesser time to market as microservices can be launched faster than packaging all features as one, and lastly of-course the auto-scaling features of Serverless computing.
What challenges we should be prepared for?
Better Operational Tools — As developers are dependent on third party vendors for debugging and monitoring tools, in case some problem arises with the code, it may take time to detect and address it. As serverless matures with time we expect more enhanced debugging and monitoring tools.
Better Service Level Agreements — performance patterns for FaaS functions are indeterminate and thus serverless computing vendors are finding it hard to provide with any official SLAs.
Multi-Tenancy Problems — Security and performance aspects could get compromised sometimes due to multi-tenancy i.e., several applications utilizing the same server could expose your ecosystem to malicious attacks and sometimes can even appear sluggish while handling initial function call requests.
Vendor Lock-in — Enterprises must choose serverless computing service providers with utmost care as switching between these providers can be quite tedious and tricky. So before making a decision, make sure the vendor you chose is best suited for your product and organisational goals.
Also, serverless architectures are not suitable for long running processes as the core benefit of reduced cost becomes negligible when the frequency of function calls are very high. Architecture complexity could be another issue.
Reimagining businesses with Microservices
Serverless computing can be imagined for various real world business use-cases. Any use-case required to be run as an independent unit of work, with many replicas running in parallel, for serving a specific user need [or] any use-case requiring iterative, rapid development to keep pace with fast changing business requirements are good candidates for becoming a Microservice.
Enterprises with sporadic demand for their product / service and unpredictable scaling requirements must consider serverless architecture as their first preference. For example: Applications that require realtime data processing at unpredictable moments (like multimedia processing for Image Recognition coming from sensors (Internet of Things) and subsequent Cognitive Processing — is a good candidate to be a Microservice.
“Imagine an Insurance company using drones to identify property damages and speedup insurance payment process. “A drone flies over a certain area, continuously taking pictures, as soon as the images are stored in a database, they are analyzed. For example, you can train IBM Watson ML algorithms to detect if a roof has hail damage. You can let the drone fly over an entire area and get the immediate results” — Naurez
Let’s reimagine your business
The adoption rate for serverless computing services among businesses is growing in triple digits mostly because cloud native architecture is way more affordable than on-premise architecture. If you are considering going serverless and seek any sort of assistance feel free to approach Codewave. At codewave, we bring together a team of talented developers experienced in serverless computing who can help you in accelerating business automationby leveraging the benefits of serverless architecture i.e., advanced scalability, flexibility and affordability.
This insight is co-authored and presented by Nishant Choudhury and Codewave.