L'architecture sans serveur a-t-elle besoin d'un serveur?

1.13 image de tête.jpg

Auteur |
source aoho | Compte officiel sans serveur

Qu'est-ce que Serverless?

L'architecture sans serveur élimine-t-elle le besoin de serveurs? Pour répondre à cette question, nous devons comprendre ce qu'est Serverless.

L'architecture sans serveur est fréquemment apparue dans les titres de certaines conférences d'architecture technique ces dernières années. Beaucoup de gens ne comprennent Serverless que dans une architecture sans serveur au sens littéral, mais sa véritable signification est que les développeurs n'ont plus à trop penser aux serveurs. Le problème, bien sûr, cela ne signifie pas que les serveurs sont complètement supprimés, mais nous comptons sur le backend de serveurs de ressources tiers.Depuis 2014, après tant d'années de développement, tous les principaux fournisseurs de services cloud ont essentiellement fourni des services sans serveur. Par exemple, utiliser le service de calcul Lambda Amazon Web Services (AWS) pour exécuter du code.

1.png

Le développement des services sans serveur nationaux est un peu plus tardif qu'AWS, et il existe actuellement un support pour le sans serveur. Les fournisseurs de services cloud bien connus incluent Alibaba Cloud et Tencent Cloud. Les services qu'ils fournissent sont également similaires: calcul de fonctions, stockage d'objets, passerelle API, etc., qui sont très faciles à utiliser.

Comment l'architecture a-t-elle évolué vers Serverless?

Regardez l'évolution du domaine du cloud computing au cours des dernières décennies. De manière générale, le développement du cloud computing se décompose en trois étapes: l'émergence de la virtualisation, l'application de la virtualisation au cloud computing et l'émergence de la conteneurisation. Le développement rapide du cloud computing s'est concentré au cours des dix dernières années.

2.png

En résumé, il y a les jalons suivants:

  • Virtualisez une grande machine physique en une seule ressource VM grâce à la technologie de virtualisation.
  • Déplacez le cluster virtualisé vers la plate-forme de cloud computing et n'effectuez qu'une opération et une maintenance simples.
  • Divisez chaque machine virtuelle dans des conteneurs Docker plus fins selon le principe de minimisation de l'espace d'exécution.
  • Créez une architecture sans serveur basée sur des conteneurs Docker qui n'a pas besoin de gérer un environnement d'exploitation et n'a besoin que d'écrire du code de base.

Du déploiement et de l'application de machines bare metal, à la division de l'architecture Openstack et des machines virtuelles, en passant par le déploiement en conteneur, les exemples typiques en sont la popularité de Docker et Kubernetes ces dernières années, qui se sont encore développées dans l'utilisation d'un microservice ou d'une microfonction pour répondre à un. Demande du client, de cette façon est le processus naturel du développement du cloud computing.

Ce processus de développement est également une évolution de l'architecture informatique qui a connu au cours de cette période une série de changements technologiques intergénérationnels, qui ont divisé les ressources de manière plus détaillée, ont rendu l'exploitation plus efficace et ont facilité la maintenance matérielle et logicielle. L'évolution de l'architecture informatique présente principalement les caractéristiques suivantes:

  • Utilisation moins granulaire des ressources matérielles
  • L'utilisation des ressources augmente de plus en plus
  • Les travaux d'exploitation et de maintenance sont progressivement réduits
  • Les affaires se concentrent davantage sur le niveau du code

1. Composition de l'architecture sans serveur

L'architecture sans serveur est divisée en deux technologies Backend as a Service (BaaS) et Functions as a Service (FaaS). Serverless est une logique côté serveur implémentée par des développeurs s'exécutant dans un conteneur informatique sans état. Elle est déclenchée par des événements et est complètement Géré par un tiers.

2. Qu'est-ce que BaaS?

Baas traduit de l'anglais au chinois, ce qui signifie: le back-end est un service, et son architecture d'application se compose d'un grand nombre de serveurs cloud tiers et d'API, de sorte que la logique et l'état du serveur dans l'application sont gérés par le fournisseur de services. Par exemple, dans nos applications clientes riches SPA et application mobile typiques d'une seule page, les interactions front-end et back-end sont principalement basées sur des appels RestAPI. Il suffit d'appeler l'API du fournisseur de services pour compléter les fonctions correspondantes, telles que la vérification d'identité commune, le stockage de données / fichiers dans le cloud, l'envoi de messages, l'analyse des données d'application, etc.

3. Qu'est-ce que FaaS?

FaaS peut être appelé: fonction comme service. Les développeurs peuvent déployer directement le code de logique métier de service et l'exécuter dans un conteneur informatique sans état fourni par un tiers. Les développeurs n'ont qu'à écrire du code métier sans prêter attention au serveur, et l'exécution du code est déclenchée par des événements. Parmi eux, AWS Lambda est actuellement l'une des meilleures implémentations FaaS.

L'architecture d'application de Serverless est une application qui combine BaaS et FaaS. Les utilisateurs doivent uniquement prêter attention au code de logique métier de l'application, écrire des fonctions avec une granularité pour l'exécuter sur la plate-forme FaaS et intégrer les services tiers BaaS, et enfin construire Un système complet. Il n'est pas nécessaire de prêter attention au serveur pendant tout le processus système.

Caractéristiques de l'architecture sans serveur

En général, l'architecture sans serveur présente les caractéristiques suivantes:

  • Réalisez une allocation de ressources de calcul fine
  • Pas besoin d'allouer des ressources à l'avance
  • Avoir un degré d'expansion et de flexibilité vraiment élevé
  • Utilisation à la demande, facturation à la demande

En raison du découplage des applications et des serveurs sans serveur, les ressources achetées proviennent de fournisseurs de services cloud, ce qui permet à l'architecture sans serveur de réduire la pression d'exploitation et de maintenance, et il n'est pas nécessaire d'estimer et d'acheter du matériel serveur.

L'architecture sans serveur permet aux développeurs de se concentrer davantage sur la réalisation de services métier, et les ressources du middleware et du serveur matériel sont hébergées par des fournisseurs de services cloud. Cela réduit également les coûts de développement, les extensions et les factures à la demande, sans tenir compte des infrastructures.

L'architecture sans serveur apporte également de la commodité au front-end. Le coût du grand front-end est réduit au plus profond de l'entreprise. Les développeurs doivent uniquement prêter attention à la logique métier et les ingénieurs front-end peuvent facilement se transformer en ingénieurs full-stack.

Quels sont les scénarios d'application de Serverless?

Les scénarios d'application sont étroitement liés aux caractéristiques de l'architecture sans serveur. Sur la base de ces caractéristiques générales du sans serveur, nous résumons les scénarios d'utilisation typiques suivants: mise à l'échelle élastique, analyse de Big Data, déclenchement d'événements, etc.

1. Mise à l'échelle élastique

En raison des caractéristiques de traitement des fonctions cloud basées sur les événements et sur un seul événement, les fonctions cloud prennent en charge une concurrence commerciale élevée grâce à une mise à l'échelle automatique. En réponse au nombre réel d'événements ou de demandes métier, le cloud fonctionne automatiquement et de manière flexible sur les instances de traitement appropriées pour supporter le volume d'activité réel. Lorsqu'il n'y a pas d'événement ou de demande, il n'y a aucune instance en cours d'exécution et aucune ressource n'est occupée. Comme le service vidéo en direct, l'audience en direct n'est pas fixe, et une concurrence et une flexibilité appropriées doivent être prises en compte. La diffusion en direct ne peut pas être en ligne 24 heures sur 24, et il y a des périodes de pointe et de faible fréquentation évidentes. La diffusion en direct est une scène d'événements ou d'explosions publiques.La vitesse de mise à jour est plus rapide et l'itération de version est plus rapide.Il est nécessaire de terminer rapidement la mise à niveau technique des nouveaux points chauds.

3.png

2. Analyse des mégadonnées

Les statistiques de données elles-mêmes ne nécessitent qu'une petite quantité de calcul, un calcul hors ligne pour générer des graphiques. Les données sont traitées lorsqu'elles sont inactives ou lorsqu'il n'est pas nécessaire de prendre en compte un délai.

4.png

  • Les développeurs écrivent du code, des langages actuellement pris en charge tels que Java, NodeJS, Python, etc.

  • Téléchargez le code dans le calcul de la fonction en le téléchargeant via API ou SDK, en téléchargeant via la page de la console ou en téléchargeant via l'outil de ligne de commande Fcli;

  • L'exécution du calcul de la fonction peut être déclenchée via l'API et le SDK, et l'exécution du calcul de la fonction peut également être déclenchée par la source d'événement du produit cloud;

  • Lors de l'exécution du calcul de la fonction, le calcul de la fonction d'expansion dynamique sera basé sur le nombre de requêtes demandées par l'utilisateur pour assurer l'exécution du pic de requêtes Ce processus est transparent pour l'utilisateur;

  • L'exécution de la fonction se termine.

3. Déclencheur d'événement

Le déclenchement d'événement signifie que les fonctions cloud sont pilotées par des événements. La définition d'un événement peut être une requête http spécifiée, ou le binlog de la base de données, l'envoi de messages, etc. Grâce à l'architecture sans serveur, configurez les notifications de source d'événements sur la console et écrivez le code métier. La logique métier est ajoutée au calcul de la fonction, et le calcul de la fonction sera mis à l'échelle de manière dynamique pendant la période de pointe de l'entreprise. Ce processus n'a pas besoin de gérer l'environnement logiciel et matériel. Scènes courantes telles que des vidéos et des images OSS. Après le téléchargement, via le filtrage, la conversion et l'analyse ultérieurs, une série de traitements ultérieurs est déclenchée, tels que des alarmes de contenu et de capacité illégales.

sommaire

Pour revenir au début de notre article, l'architecture sans serveur ne nécessite pas de serveurs, mais repose sur des plates-formes de service cloud tierces. La logique côté serveur s'exécute dans un conteneur informatique sans état et son état au niveau de l'entreprise est la base de données et les ressources de stockage utilisées par les développeurs. Enregistré.

L'architecture sans serveur sans serveur a ses propres scénarios d'application, mais elle présente également des limites. En général, l'architecture sans serveur n'est pas assez mature et, dans de nombreux endroits, elle n'est pas encore terminée. Le sans serveur repose sur l'infrastructure fournie par les fournisseurs de services cloud. À l'heure actuelle, les fournisseurs de services cloud ne peuvent pas atteindre une réelle haute disponibilité de la plateforme. Bien que les ressources sans serveur soient bon marché, la création d'un système d'application pour un environnement de production est plus compliquée.

Le cloud computing est toujours en développement, les services d'infrastructure sont de plus en plus parfaits et les développeurs se concentreront davantage sur la réalisation de la logique métier. Le cloud computing déplace les responsabilités de la plate-forme, du middleware, du déploiement de l'exploitation et de la maintenance, et réduit également le coût des PME qui passent au cloud. Attendons avec impatience l'avenir de l'architecture sans serveur.

référence:

  1. Document Alibaba Cloud
  2. https://blog.csdn.net/cc18868876837/article/details/90672971

Je suppose que tu aimes

Origine blog.51cto.com/14902238/2590596
conseillé
Classement