Serverless computing

Guido Mazza

by Guido Mazza

Serverless execution mode within complex IT architectures is finding more and more space among organizations of all sizes. With a more significant interest base, our IDEA Cloud infrastructure also evolves to meet the challenges and needs of the emerging business: companies, incubators, and large Corporates that, more than ever, are paying particular attention to the sustainability of their digital services.

This post combines our experience in adapting our architecture with the studies conducted by Datadog. The latter underlines the increase in the adoption of these methods of execution among organizations all over the world.

Today millions of serverless functions power the business of thousands of companies that have made it the core of the development stack and source of competitive advantage.

On average, the serverless workload increased by more than 300% compared to the previous two years.

The analysis reveals how Amazon Web Services leads the industry: AWS Lambda is the most mature and widely used product today. At the same time, other big players are catching up with services like Azure Functions and Google Cloud Functions.

Mastering state-of-the-art technologies is not a secondary aspect since, like in any other market, competition favours those who know these tools.

Among the success factors of the general adoption by businesses worldwide, the study highlights the ability to have drastically reduced the duration of execution of the functions by designing them to be highly specific to their workloads, not general purpose.

Designing a specific execution for the purpose is one of the determining factors for the sustainability objectives.

Question time

Can Lambda functions only solve simple problems?

No. Serverless developers teams use Lambda even in computationally intensive workloads through the orchestration of multiple services. An example would be the Step Functions service in the AWS world: this enables coordination of functions execution in distributed environments. In this way, teams can build event-driven platforms that may involve hundreds of parts and other external services.

ITER IDEA has structured its platform orchestrating services that enable serverless (cloud-native) architectures rather than cloud-hosted designs or services based on dedicated instances. After many improvements cycles, our current skeleton is built upon a few key elements:

  • We design asynchronous event-driven solutions that are not subject to the typical limits of sequential or concurrent executions.
  • We create specific frameworks, software, and procedures to control modular and independent cloud resources within complex systems.
  • We use automatic code scanning tools for optimizing dependencies between packages (proprietary and third-party) and identifying security risks.
  • We choose modular and end-to-end monitoring of cloud architectures involving multiple services of various kinds; this leads to consequent optimizations in terms of configurations and provisioning.
  • We adopt different forms of Infrastructure as Code to maintain complete control over cloud resources, avoid waste or ghost entities, and reproduce entire "copy" environments as needed for testing or scalability objectives.
  • We implement CD / CI pipelines for the efficiency of the development and integration process, which guarantees faster, more accurate and more aware releases.
  • We take advantages of different types of communication and messaging protocols (HTTPS, socket, MQTT, stream, etc.) that adapt to the context of specific applications, ensuring effective communication – not oversized or redundant.
  • More importantly, we continuously improve internal dev-ops processes in line with the latest and most innovative standards.

In closing, we would like to incentivize the new generation of developers to boost and refine their cloud specialization journey.

How do we embrace this change, and how will the developers of tomorrow be ready for the following technological challenges?

First, it's essential to know the terminology of cloud computing, starting from one of the words that are particularly close to our hearts: Cloud Native.

Cloud-Native solutions are those applications specifically designed and deployed to get the maximum competitive advantage out of cloud service providers; they are resilient, sustainable, scalable, and flexible to future updates.

Serverless execution allows obtaining the full scalability of decentralized solutions and is the most efficient way to develop cloud-native applications fast. Indeed, it enables developers and IT teams to focus more on the solution's value. Similarly, by resuming Datadog's analysis, mastering these technologies will allow teams a sensational speed-up and a general reduction of stress due to the management of the underlying architectures.

These practices will be perceived as commodities with low added value in the future.

In cloud computing, the serverless landscape represents the trend of the near future; IDEA Cloud proposes itself to be a strategic tool to start a solid specialization path for young developers.