At Invillia, every Wednesday at noon, we stop for an hour to nourish ourselves with the tips, how-tos, good practices and trends selected by our specialists in Product, Agile, Back and Front, Mobile, Quality, Security and Data. A vital exchange of experiences for those who love the new. And essential for innovation to never stop. If technology is in the blood. We make sure to keep it circulating more and more_
IN THE VEIN_ Innovate faster and at less cost by harnessing the power of the cloud_
In today’s article, we summarize the main learnings from the introduction to Serverless Computing edition, presented by Oswaldo Neto, our Head of Technology and expert on the subject.
What is Serverless Computing and demystifying the “fallacy”_
Serverless Computing is a set of practices, strategies and services that allow to develop applications with agility so that organizations can innovate and respond to changes more quickly.
But is computing really serverless? Is it possible to run applications in the cloud without a server? Of course not 🙂 It’s a term coined by marketing to simplify what represents a new way of creating digital products and services and running them in the cloud, outsourcing the code execution to a cloud provider. It will be the one who dynamically allocates the machine’s resources on-demand, taking care of the server on behalf of the clients. Giving them the security and freedom they need to focus their efforts on strategy, innovation and delivery.
Serverless Computing Principles_
- Not having a server to manage — the name “serverless” comes a lot from here. We don’t have to worry about the server, OS, updates, configurations, maintenance, capacity planning. We build and run applications with our business logic, consuming cloud resources without having to take care of them.
- Paying only for the use of the service (computing) — with dedicated resources, the most common is to use only a small part and the rest is wasted. And that comes at a very high cost. With serverless, we only pay for what we actually use.
- Continuous scalability — the serverless environment where we run applications is highly scalable. It is a service provided by giant and credible corporations, such as Amazon, Microsoft and Google, offering great flexibility according to the needs at any given time.
- Fault tolerance is intrinsic to the service (computing) — for an application to be fault-tolerant and ensure high availability, it cannot run in a single data center, in a single region. Redundancy is needed. By adopting serverless, it is intrinsic, part of it. It is different from dedicated servers where we have to make architecture and infrastructure decisions considering their constraints and quality attributes.
The Serverless-first strategy
Serverless-first refers to an organization that adopts serverless on a day-to-day basis to deliver value and achieve business metrics and goals:
- Prioritizes serverless principles in the application development and operation cycle
- Understands that it does not apply to all types of workload
- Incorporates technologies using server when necessary
When we talk about serverless, we talk about a concept that is the function. This code unit is very powerful because it allows us to express everything we need regarding requirements. In the image is an example using node.js in AWS Lambda. It has the name of the function that is myHandler, some parameters that we receive, an object that will have all the event information, context data and a callback, that is, how the expected value is returned for this function.
FaaS is what translates to the function execution environment in the cloud, where we just have to write the code and connect it with events and resources:
- Cloud computing service to build, run and manage functions
- Event-driven execution model
- Runs in stateless containers
- Business logic benefits from other FaaS provider computing services
Serverless Application Model (SAM)_
SAM is an open-source framework developed by Amazon:
- Ensures an abbreviated, simple, and clean syntax for expressing functions, APIs, databases, and event source mapping
- Provides an environment to build, run, test, and provision applications on AWS
- Helps build applications faster
Why use serverless computing whenever possible?_
- We gain agility and minimize the type of work that adds the least value, such as managing servers and taking care of infrastructure. We can focus time on innovating, new features creation, user experience improvement, product development and evolution.
- We have an extremely low computational cost when compared to a dedicated server. We can optimize investments and allocate them where it matters most and brings more results to the business
At Invillia we have the know-how and experience in the most state-of-the-art technologies, approaches and methodologies, suggesting and applying the best to each specific case. We are always studying, enriching knowledge, anticipating what is coming, testing, going further. To create and continually improve, together with those who are revolutionizing their markets, the most innovative, resilient, robust, scalable digital products and services with the best user experience. It’s our Global Growth Framework in action_