Let’s face it. Cloud computing isn’t on everyone’s wishlist for 2019 and beyond yet. Organizations are slowly charting the path to Cloud but nobody is really there except of course the Cloud providers themselves
Cloud computing worked well for batch operations or high-performance computing. But for someone looking to port their on-prem applications to Cloud, the strategy didn’t quite hit the right notes. In other words, for Stateful frameworks there is still some ground to cover.
Another important observation is that Cloud computing advocated the exclusion of physical infrastructure but those who moved were left to fend the management of the virtual allocations to themselves. This didn’t go down very well.
Amazon saw early success with its EC2 webservice. The simple web service interface found many takers and developers found it easy. The key was to have the same look-and-feel in the cloud as their local PCs. EC2 made this possible.
However developers had to manage the virtual machines themselves. They had to learn the system administration or work with the Admins to manage the environments. This took a toll on the developer’s time. For example, writing a simple login-password page and getting it on the Cloud took more time than writing the code itself.
EC2 was a great start. But organizations started feeling the need to simplify the path to Cloud.
Welcome AWS Lambda or Welcome to the world of Serverless computing.
“Run code without thinking about servers. Pay only for the compute time you consume”
Hold on. Serverless computing does not mean any servers! I know the term is confusing. All it means is that the developer writes the code, and the administration is handled by the Cloud provider. In other words, serverless allows developers to code applications without being worried about the infrastructure and implementation needs
Eh? Isn’t this what Cloud computing is all about?
Yes. This is how it has evolved over a period of time.
Serverless computing gave rise to the concept to Functions-as-a-service (FaaS).
AWS Lambda was the first public FaaS offering by a large vendor. Soon Google Cloud Functions, Microsoft Azure Functions, IBM/Apache‘s OpenWhisk (open source) and Oracle Cloud Fn (open source) followed
FaaS is every developer’s dream. The founding principle is to allow developers to execute code in response to events without maintaining a complex infrastructure. In simple terms, one can upload modular chunks of functionality into the cloud that are executed independently.
Instead of managing a server for load management, the server can now split into a bunch of functions which can be scaled automatically and independently. Microservices, anyone?
Imagine this scenario.
- Your existing system is running well. Status quo.
- Suddenly, you are asked to spruce it up but the ask is not easy. Fitting the requirement into the existing system is tough
- What do you do?
- Spend endless hours and “dirty-code” the requirement. System reliability goes down south
- Take the requirement. Build something wonderful from scratch and then worry about future updates
- Use AWS Lambda and fit it in. Okay, I am making it sound simple. There is effort involved here as well. But the upsides outweigh it
Why is option 3 attractive? AWS Lambda takes care of future needs of scalability and performance.
Serverless computing / FaaS is gaining acceptance. If recent surveys are to be believed, 24% of serverless users were new to cloud computing.
So, what’s in it for anyone to go serverless?
- Increased fault tolerance. Highly available
- Scalability is better managed. Your functions can scale independently instead of your entire application
- Modular blocks of code. Ready to ship
- More developer focus. Write the code
- Infrastructure is handled by the cloud provider
Anything to worry yet?
Not really. Serverless / FaaS has to mature and the acceptance increased. Common myths around security, performance, cost, vendor lock-ins, etc have to be addressed objectively
Also, Serverless / FaaS is not the answer to all your problems. Frameworks and Architecture will continue to evolve. The objective of any software programmer is to complete the code efficiently. Leverage the available trends and best practices
It is promising to see the evolution of simplified programming frameworks combined with making the cloud more approachable. The key is to increase Cloud adoption while at the same time ensure the accountability model is well laid out.
Serverless / FaaS adaption will increase. The opportunity exists. The advantages too. Hybrid approaches are always do-able for regulatory requirements concerning public or finance data.
“Houston, we have a problem” is not the order of the day anymore
“Work the problem” is.
- Cloud Programming Simplified: A Berkeley View on Serverless Computing
- An Introduction to Serverless and FaaS (Functions as a Service)
- Monolith Vs Microservices Vs Serverless — The Real Winner? The Developer
Devarajan Mukkai is the Chief Development & Delivery officer at Forsys Inc, a global technology firm, specializing in Cloud and Analytics, SCM, ERP Financials, Customer Experience and Relationship Management, Quote-to-cash and Data Migration. Forsys’s clients range from mid-sized companies to Fortune 500 brands.
Devarajan is passionate about Technology, IT Delivery strategies & frameworks and People Advocacy. He has been in the trenches and led from the front for over 20 years. Devarajan works with teams, to lead the clients they partner with, to new heights. Devarajan likes getting people excited about the things he is excited about. And right now, that is everything in tech!
Outside of work, Devarajan is an endurance cyclist, ukulelist and percussionist. His passion for tech is only rivaled by his passion for cycling & music.
Blog post by: Devarajan Mukkai Chief Development and Delivery Officer at Forsys Inc.