Shaping tomorrow: moving forward to serverless computing

Start imagining a world where infrastructure management is a thing of the past, developers are able to focus solely on building applications without the hassle of infrastructure management: that’s exactly what serverless computing promises. Let’s go into the details of this computing model, understanding its optimal use cases as well as its advantages and disadvantages.


What is serverless computing?

Serverless computing is a cloud computing model where the cloud provider dynamically manages the allocation and provisioning of servers. The term „serverless“ does not mean that there are no servers involved; rather, it refers to the fact that developers do not have to manage or provision servers explicitly. Instead, developers can focus solely on writing code to implement business logic, while the cloud provider handles tasks such as server provisioning, auto-scaling and the underlying infrastructure maintenance.

Serverless architectures enable developers to focus on what they should be doing — writing code and optimizing application design — making way for business agility
The CIO’s Guide to Serverless Computing, Gartner

Gartner predicts that by 2025, more than 50% of major enterprises will have adopted serverless computing, up from 20% today.
As this technology becomes more popular, we are driven to discover the secrets behind its rising popularity and spotlight the benefits that serverless computing can bring to a business, as well as its drawbacks.

Advantages

  • Cost-effectiveness
    You only pay for the resources used during the execution of your functions. The pay-per-use pricing model can result in significant cost savings, especially for applications with varying workloads or sporadic usage patterns.
  • Scalability
    The platforms automatically scale up or down based on the incoming workload, ensuring optimal performance under varying workloads. The need for capacity planning or manual intervention to handle spikes is no longer needed, making this computing model ideal for applications with unpredictable or fluctuating traffic.
  • Reduced operational complexity
    Serverless computing abstracts away the infrastructure management, allowing developers to focus on writing code. There is no need to provision, manage or scale servers, reducing operational overhead and freeing up time for developers to focus on building and improving applications.
  • Built-in high availability
    The platforms typically offer built-in high availability and fault tolerance. Functions can be automatically deployed across multiple availability zones or regions, ensuring resilience against failures and minimizing downtime for applications.
  • Support for multiple languages and frameworks
    Serverless computing usually comes with native support for a number of programming languages: C#, Java, Go, Node.js, Python, …

Disadvantages

  • Vendor lock-in
    Adopting serverless computing often ties you to a specific cloud provider’s ecosystem, leading to vendor lock-in. Switching provider can be complex and pricey due to differences in offer and implementation.
  • Cold start latency
    Serverless platforms may experience cold start latency: additional time is required for the first invocation of a function as the platform initializes the execution environment. This latency can impact real-time or latency-sensitive applications.
  • Limited execution time and resources
    Serverless platforms may impose limits on the maximum execution time and resources allocated to each function. Long-running tasks or tasks requiring significant computational resources may not be suitable for serverless architectures.
  • Observability
    Debugging and monitoring distributed serverless applications can be challenging due to the nature of the service.

Conclusions

Serverless computing, while highly efficient for certain scenarios such as stateless web applications, event-driven functions, and short-lived tasks, does not embrace all use cases, particularly those requiring long-running processes, complex state management or fine-grained control over the execution environment.

Functions are instead suitable for solutions like:

  • Web application: respond to HTTP requests
  • Real-time data processing: PDF generation, image manipulation
  • Real-time stream processing: Kafka producing
  • Data transformation and ETL: analysis and reporting
  • Internet of Things (IoT) backends
  • Scheduled tasks and cron jobs

Serverless computing must be appropriately chosen based on the requirements and constraints of a project, to ensure it aligns with the application’s needs and maximizes its benefits.

Related links

Beitrag teilen

Igor Giovannini

Igor Giovannini arbeitet als Lead Software Engineer, ist Verantwortlich für die Infrastruktur und Betrieb vom postshop.ch bei der Schweizerische Post und bloggt aus dem Unterricht des CAS Cloud and Platform Manager.

Alle Beiträge ansehen von Igor Giovannini →

Schreibe einen Kommentar