Topics Serverless

Qu'est-ce que le serverless ?


Le serverless est un schéma de conception d'architecture logicielle qui tire parti de l'exécution de code pilotée par les événements et alimentée par des services gérés dans le cloud pour construire des applications massivement évolutives et rentables. Celles-ci sont composées de petites fonctions distinctes sans que les développeurs aient besoin de concevoir ou de penser à l'infrastructure sous-jacente où leur code s'exécute.

En savoir plus sur GitLab

Qu'est-ce que la logique métier serverless ?

Alors, qu'est-ce que la logique métier serverless ? Chaque application utilise des serveurs à un moment donné. Le terme serverless met l'accent sur une architecture et un modèle de service où les développeurs n'ont pas besoin de se préoccuper de l'infrastructure et peuvent plutôt se concentrer sur la logique métier de leur application. Le serverless est la prochaine évolution de la conception architecturale du monolithe aux microservices et enfin aux fonctions comme l'explique Adrian Cockcroft dans cette vidéo.

Services serverless, FaaS (Fonctions en tant que service) et services gérés

Souvent, le serverless et le FaaS sont traités comme des termes interchangeables, mais ce n'est pas vraiment exact. Le serverless est un schéma architectural global qui utilise un FaaS avec d'autres services gérés dans le cloud. Le FaaS est un type de service spécifique tel que AWS Lambda, Google Cloud Functions et Azure Functions, qui permet aux développeurs de déployer des fonctions.

Attributs du serverless

  1. Petites unités de code séparées. Souvent, les services écrits à l'aide d'une architecture serverless sont composés d'une seule fonction.

  2. Exécution basée sur les événements. L'infrastructure nécessaire pour exécuter une fonction n'existe pas tant qu'une fonction n'est pas déclenchée. Une fois qu'un événement est reçu, un environnement de calcul temporaire est créé pour exécuter cette requête. L'environnement peut être détruit immédiatement. Cependant, il reste le plus souvent actif pendant une courte période de temps, généralement 5 minutes.

  3. Mise à l'échelle à zéro. Une fois qu'une fonction cesse de recevoir des requêtes, l'infrastructure est retirée et cesse complètement de fonctionner. Les coûts sont ainsi réduits, car l'infrastructure ne s'exécute que lorsqu'elle est utilisée. S'il n'y a pas d'utilisation, l'environnement redescend à zéro.

  4. Mise à l'échelle à l'infini. Le FaaS se charge de surveiller la charge et de créer des instances supplémentaires en cas de besoin, en théorie, jusqu'à l'infini. Les développeurs n'ont ainsi pratiquement pas besoin de penser à la mise à l'échelle lorsqu'ils conçoivent des applications. Une seule fonction déployée peut gérer un ou un milliard de requêtes sans aucune modification du code.

  5. Utilisation de services gérés. Souvent, les architectures serverless utilisent des services fournis par le cloud pour des éléments de leur application qui fournissent des tâches lourdes non différenciées telles que le stockage de fichiers, les bases de données, la mise en file d'attente, etc. Par exemple, Firebase de Google est populaire dans la communauté serverless en tant que service de gestion de base de données et d'état qui se connecte à d'autres services Google comme Cloud Functions.

Comparaison des services gérés dans le cloud

Voici un tableau avec des exemples de services gérés d'AWS, Google Cloud et Azure ainsi que de leurs homologues open source.

Service Open Source AWS Google Cloud Azure
FaaS Knative Lambda Cloud Functions Azure Functions
Storage Minio S3 Cloud storage Azure storage
SQL DB MySQL RDS Cloud SQL Azure SQL Database
NoSQL DB MongoDB, Cassandra, CouchDB DynamoDB Cloud Datastore Cosmos DB
Message queue Kafka, Redis, RabbitMQ SQS, Kinesis Google Pub/Sub Azure Queue Storage
Service mesh Istio App Mesh Istio on GKE Azure Service Fabric Mesh

Valeurs et avantages commerciaux de GitLab Serverless

GitLab Serverless permet aux entreprises de déployer leur propre FaaS sur Kubernetes.

Plus rapide

Un rythme d'innovation plus rapide. La productivité des développeurs augmente lorsqu'ils peuvent se concentrer uniquement sur la logique métier.

Stabilité

Une plus grande stabilité/résilience (moins de perte de revenus due aux temps d'arrêt).

Mise à l'échelle

À plus grande échelle, le logiciel est en mesure de répondre à la demande de l'entreprise.

Coût

Coûts réduits. Étant donné que le calcul n'est facturé que lorsqu'un service est actif, le serverless offre d'énormes économies par rapport à une infrastructure toujours active.

Aucun blocage fournisseur

Il n'y a pas de blocage fournisseur. Les entreprises peuvent choisir qui elles veulent pour exécuter leur calcul, dans n'importe quel cloud qui prend en charge Kubernetes, ou même des serveurs sur site.

Workflow

Votre FaaS fait partie du même workflow que le reste de votre cycle de vie logiciel avec une seule application, de la planification et des tests au déploiement et à la surveillance.

Déploiement

Les fonctions de déploiement sont grandement rationalisées et simplifiées par rapport à l'utilisation directe de Knative.

Lancez-vous dès maintenant

Découvrez comment la plateforme DevSecOps unifiée de GitLab peut aider votre équipe.