2016-03-22 2 views
10

Pour le moment, nous utilisons notre application sur un AWS Beanstalk, mais nous essayons de déterminer la pertinence d'Azure.Quel est l'équivalent Azure d'AWS Lambda?

Notre plus gros problème est la quantité de temps processeur gaspillé pour lequel nous payons mais que nous n'utilisons pas. Nous fonctionnons sur des instances t2.small car elles ont la quantité minimale de RAM dont nous avons besoin, mais nous n'utilisons jamais la quantité de base de temps CPU allouée. (20% pour un t2.small) Nous avons besoin de beaucoup de puissance CPU pendant les courtes rafales de la journée et en mettant plus d'instances en ligne avant que ce soit la seule façon de le gérer. AWS Lambda est une bonne solution pour nous, mais nous avons des dépendances sur des composants Windows comme SAPI, donc nous devons utiliser des machines virtuelles Windows. En ce qui concerne les services cloud Azure, nous pensions que l'utilisation d'un rôle Web conviendrait parfaitement à notre application, mais il semble qu'un rôle Web ne soit rien de plus qu'une machine virtuelle Win 2012 avec IIS activé. Ainsi, au fur et à mesure que l'application évolue, elle apporte simplement plus de ces machines virtuelles, ce qui correspond exactement à ce que nous avons actuellement. Est-ce que Azure a un service similaire à Lambda où vous payez juste le temps de traitement du CPU que vous utilisez? La raison de notre utilisation inefficace des ressources processeur est que notre application de génération de discours utilise des voix tierces mais ne peut exécuter que des threads uniques lors de l'appel dans SAPI car le moteur vocal est susceptible de se bloquer lors du multithreading. Nous n'avons aucun contrôle sur ce moteur vocal. Il doit avoir accès à un registre système et à Windows SAPI. La solution idéale consiste à envelopper d'une manière ou d'une autre toutes les dépendances dans un paquet et à le déployer sur Azure, puis à en lancer plusieurs instances. Qu'est-ce que "ceci" est je n'ai aucune idée

Répondre

4

Basé sur la documentation sur le site Web Azure ici: https://azure.microsoft.com/en-in/campaigns/azure-vs-aws/mapping/, les services équivalents à AWS Lambda sont Web Jobs et Logic Apps.

+1

Je trouve très étrange qu'ils n'incluent pas Azure Automation en tant qu'équivalent direct de Lambda! –

+0

Je suis surpris aussi. L'équipe Azure doit avoir fait preuve de diligence avant de mettre en place cette cartographie. –

+0

Ou, il offre la preuve qu'ils n'ont pas! Comme il s'agit clairement d'un produit très similaire (je viens d'ouvrir [Lambda] (http://docs.aws.amazon.com/lambda/latest/dg/welcome.html) et [Automation] (https://azure.microsoft .com/fr-in/documentation/services/automation /) les premières pages, et ils sont presque identiques dans ce qu'ils disent qu'ils offrent) –

-1

Il existe quelque chose appelé "Cloud Service" dans azure qui vous permet d'exécuter du code sur une machine virtuelle pure. Les options de mise à l'échelle incluent le CPU%, la taille de la file d'attente, etc. Si vous pouvez planifier vos besoins, Azure vous permet de configurer facilement un scaler programmé, soit 4 machines virtuelles de 8h à 8h10 et bien sûr, dans Azure , vous payez à la minute, donc ça pourrait être une solution faisable. Je dirais plus, mais la documentation dans Azure est vraiment si géniale que je les offenserais en offrant ma "traduction" ici. Commander azure.com pour plus d'informations :)

+0

L'OP a déjà déclaré qu'il ne cherche pas à lancer un Vm, Un service de cloud est simplement un conteneur pour une application Vm/Web, ce n'est pas un remplacement à part entière. –

+0

Je sais qu'il a déclaré cela, mais Azure n'est pas AWS, il y a deux distinctions très importantes: 1) vous payez à la minute, ce qui dans ce cas semble important, et 2) Bien qu'un service cloud fonctionne dans une VM, vous ne gère pas cette VM du tout, seulement l'application. Tout ce qui est lié au temps de disponibilité, au basculement, aux domaines de pannes, etc. est géré par le service cloud, c'est donc une solution très viable au problème. –

+0

Hey Pedro, merci pour la réponse mais en utilisant le service cloud Azure serait presque identique à ce que nous avons actuellement avec AWS, sauf le coût serait de 2x. La VM la plus basique utilisée par un rôle web/worker coûte 2.5x ce que coûte un EC2 t2.small. – MayoMan

2

L'équivalent le plus direct de Lambda sur Azure est Azure Automation ce qui fait beaucoup de choses que fait Lambda sauf qu'il fonctionne Powershell au lieu de Node etc. Il n'est pas aussi étroitement intégré dans d'autres services comme Lambda est, mais il a le même modèle. c'est-à-dire que vous écrivez un script, et il est exécuté à la demande.

Je présume que SAPI fait référence à l'API de la parole? Si c'est le cas, vous pouvez créer des modules Powershell pour Azure, et ils peuvent inclure des fichiers dll. Dans ce cas, vous pouvez créer un module pour enrouler la DLL SAPI et devrait faire faire ce que vous cherchez.

Si vous voulez un environnement de calcul complet, sans la complexité de plusieurs machines lorsque vous exécutez. Vous pouvez utiliser Azure Batch qui serait la manière recommandée par Azure de gérer ce que vous recherchez. Le coût-avantage que vous devez évaluer est la rapidité d'exécution de votre solution par rapport à une pile .net native (par lots) et si les performances sont considérablement dégradées lors de l'exécution de Powershell.

Personnellement, j'essaierais Automation, il est étonnamment puissant.

23

Microsoft vient d'annoncer un nouveau service de calcul serverless comme une alternative à AWS Lambda, appelé Azure Functions: https://azure.microsoft.com/en-us/services/functions/

http://www.zdnet.com/article/microsoft-releases-preview-of-new-azure-serverless-compute-service-to-take-on-aws-lambda/

Avec fonctions Azure vous ne payez que ce que vous utilisez avec Compute mesurée aux 100ms les plus proches à prix Per/Go basé sur le temps que votre fonction s'exécute et la taille de la mémoire de l'espace de fonction que vous choisissez. La taille de l'espace de fonction peut aller de 128mb à 1536mb. Avec le premier 400k Go/Sec gratuit.

Les demandes Azure Function sont facturées par million de demandes, le premier million de demandes étant gratuit.

+0

Il convient d'ajouter que, si les fonctions AWS Lambda et Azure sont équivalentes, Lambda est utilisé pour implémenter des services déjà disponibles dans Azure. Par exemple, Amazon n'offre pas d'outils de flux de données ETL, ce qui fait que les gens utilisent Lambda pour implémenter les pipelines. Azure propose à la fois Data Factory et U-SQL. Idem pour Azure Stream Analytics - Kinesis Analytics est toujours dans la phase "Remplir ce formulaire de courrier électronique" afin que les utilisateurs utilisent Lambdas pour implémenter l'analyse des événements. –