2017-10-17 9 views
0

Je développe une application Flask avec une architecture de microservices dans l'environnement standard de Google App Engine. Cette application aura besoin de soutenir les rafales de trafic intense, il semble donc parfait pour le Standard Environment. Ma question est la suivante:serveur gunicorn dans l'environnement standard de Google App Engine

Dans d'autres environnements que j'ai utilisés (Heroku, App Engine Flexible), vous devez configurer votre application Flask pour utiliser un serveur Web WSGI de qualité production comme gunicorn, car le serveur Flask intégré est uniquement adapté au développement. Il existe une documentation sur ce sujet pour l'environnement flexible, mais pas pour la norme. Ai-je raison de supposer que cela est dû au fait que l'environnement standard (tel que configuré dans app.yaml) gère la gestion des requêtes et tout ce que le gunicorn ferait d'une manière prête pour la production? Serait-ce vraiment si simple?

Répondre

1

Oui, c'est vraiment facile. En tant que PaaS, GAE prend soin de tout cela pour vous. Comme ce fut le cas pour SnapChat quand il a atteint 150 millions d'utilisateurs (oui, hébergé sur GAE).

Regardez "App Engine Architecture and Services" et "You Can Run That On App Engine?". Ceux-ci décrivent une partie de ceci. Les demandes entrantes sont d'abord capturées dans une file d'attente sur un serveur frontal GAE. De là, il décide quoi faire avec. Si une instance de votre application n'est pas en cours d'exécution, elle en démarre une et lui transmet la demande. Si une instance est en cours d'exécution et pas trop occupée, elle lui passe la requête immédiatement. Si toutes les instances en cours d'exécution sont occupées, elles retiendront la requête jusqu'à ce qu'une instance puisse prendre en charge une autre requête. Si la requête reste trop longtemps dans la file d'attente frontale (en fonction des paramètres que vous pouvez définir), GAE démarrera plus d'instances pour gérer le backlog. Avec GAE, votre application fonctionne désormais dans un environnement avec des équilibreurs de charge, des serveurs de files d'attente de requêtes frontales, des serveurs de périphérie, des serveurs d'application de mise à l'échelle automatique, des réseaux fibre optique privés, etc., etc. "Les soucis qui vous mèneraient au gunicorn, etc sur un serveur conçu par vous-même sont plus que manipulés par les ingénieurs intelligents de Google dans GAE.

Étant donné que vous recherchez un microservice, vous pouvez également lire Microservices Architecture on Google App Engine dans les documents GAE.