Question

Quelles sont les alternatives à GAE, étant donné que je dispose déjà d’un bon code que je voudrais conserver. En d'autres termes, je creuse de python. Cependant, mon cas d'utilisation correspond davantage à un faible nombre de demandes, à un cas d'utilisation de type d'utilisation du processeur plus élevé, et je crains de ne pas pouvoir rester indéfiniment avec App Engine. J'ai entendu beaucoup de gens parler d'Amazon Web Services et d'autres types de fournisseurs de cloud, mais j'ai du mal à voir où la plupart de ces offres offrent la gamme de services (interrogation de données, authentification d'utilisateur, mise à l'échelle automatique) de cette application. Le moteur fournit. Quelles sont mes options ici?

Était-ce utile?

La solution

Je ne pense pas qu'il existe une autre alternative (en ce qui concerne la portabilité du code) à GAE pour le moment, car GAE est une classe à part. GAE est certes du cloud computing, mais je le vois comme un sous-ensemble du cloud computing. EC2 d’Amazon est également un système d’informatique en nuage (ainsi que des accélérateurs Joyent, Slicehost Slices), mais il s’agit bien entendu de deux bêtes différentes. Vous êtes donc dans une situation qui nécessite de repenser votre architecture en fonction de vos besoins.

L’avantage immédiat de GAE réside dans le fait qu’il ne nécessite essentiellement aucune maintenance en ce qui concerne l’infrastructure (serveur Web évolutif et administration de bases de données). GAE est plus adapté aux développeurs qui souhaitent uniquement se concentrer sur leurs applications et non sur le système sous-jacent. Vous pouvez donc considérer cela comme une solution conviviale pour les développeurs. A présent, il convient également de noter que ces autres solutions de cloud computing essaient également de vous permettre de vous soucier de votre application autant que vous le souhaitez en fournissant des images / modèles de machines virtuelles. En fin de compte, vos besoins dicteront l’approche à adopter.

Maintenant, avec tout cela en tête, nous pouvons également construire des solutions hybrides et des solutions de contournement qui pourraient également répondre à nos besoins. Par exemple, GAE ne semble pas directement répondre aux besoins spécifiques de cette application que vous décrivez. En d’autres termes, GAE offre un nombre de requêtes relativement élevé et un nombre de cycles de processeurs relativement faible (on ne sait pas si la version payante sera différente).

Cependant, une solution à ce problème consiste à créer une solution personnalisée associant GAE en tant que serveur principal et Amazon AWS (EC2, S3 et SQS) en tant que système d’alignement. Certains diront que vous pourriez aussi bien construire votre pile entière sur AWS, mais cela peut aussi impliquer de réécrire beaucoup de code existant. En outre, comme solution de contournement, un post stackoverflow précédent décrit une méthode de simulation de tâches en arrière-plan dans GAE. En outre, vous pouvez consulter Mappage / Réduire HTTP pour également répartir la charge de travail.

Autres conseils

AppScale

AppScale est une plate-forme qui permet aux utilisateurs de déployer et d'héberger leurs propres applications Google App Engine. Il s'exécute automatiquement sur Amazon EC2 et Eucalyptus, ainsi que Xen et KVM. Il a été développé et mis à jour par Systèmes AppScale . Il supporte les plateformes Python, Go, PHP et Java Google App Engine.

http://github.com/AppScale/appscale

En attendant ...

... nous sommes en 2015 et il semble que les conteneurs soient la voie à suivre. Des alternatives au GAE sont en train d'émerger:

Google a publié Kubernetes , un logiciel de planification de conteneurs développé par eux pour gérer les conteneurs GCE , mais peut également être utilisé sur d'autres clusters.

Certains PaaS à venir sur Docker comme

Choses intéressantes à surveiller.

Un peu tard, mais je donnerais un coup d'oeil à Heroku:

  

Heroku est une plate-forme d’application cloud polyglotte. Avec Heroku, vous   Vous n'avez pas besoin de penser aux serveurs. Vous pouvez écrire des applications en utilisant   pratiques de développement modernes dans le langage de programmation de votre   choix, sauvegardez-le avec des ressources complémentaires telles que des bases de données SQL et NoSQL,   Memcached et beaucoup d'autres. Vous gérez votre application à l'aide du Heroku   outil de ligne de commande et vous déployez le code à l'aide du contrôle de révision Git   système, tous fonctionnant sur l'infrastructure Heroku.

https://www.heroku.com/about

À partir de 2016, si vous êtes prêt à regrouper PaaS (plateforme en tant que service ) et FaaS (fonction en tant que service) dans le même informatique sans serveur , vous disposez alors de quelques options FaaS.

Propriétaire

AWS Lambda

  

AWS Lambda vous permet d'exécuter du code sans provisionner ni gérer les serveurs. Vous ne payez que pour le temps de calcul que vous consommez - il n'y a pas de frais lorsque votre code n'est pas en cours d'exécution. Avec Lambda, vous pouvez exécuter du code pour pratiquement tout type d’application ou de service principal, le tout sans aucune administration. Il suffit de télécharger votre code et Lambda s’occupe de tout ce qui est nécessaire pour exécuter et redimensionner votre code avec une haute disponibilité. Vous pouvez configurer votre code pour qu'il se déclenche automatiquement à partir d'autres services AWS ou l'appeler directement à partir de n'importe quelle application Web ou mobile.

Les fonctions d'étape AWS complètent AWS Lambda.

  

AWS Step Functions facilite la coordination des composants d'applications et de microservices distribués à l'aide de workflows visuels. La création d'applications à partir de composants individuels exécutant chacune une fonction discrète vous permet de faire évoluer et de modifier rapidement des applications. Step Functions est un moyen fiable de coordonner les composants et de parcourir les fonctions de votre application. Step Functions fournit une console graphique pour organiser et visualiser les composants de votre application sous forme d'une série d'étapes. Cela simplifie la création et l’exécution d’applications à étapes multiples. Step Functions déclenche et suit automatiquement chaque étape et tente à nouveau en cas d'erreur. Votre application s'exécute donc dans l'ordre et comme prévu. Step Functions enregistre l'état de chaque étape. Ainsi, en cas de problème, vous pouvez diagnostiquer et résoudre les problèmes rapidement. Vous pouvez modifier et ajouter des étapes sans même écrire de code

Fonctions de Google Cloud

À partir de 2016, il est en alpha.

  

Google Cloud Functions est une solution de calcul légère, asynchrone et basée sur les événements, qui vous permet de créer de petites fonctions à usage unique qui répondent aux événements dans le cloud sans avoir à gérer un serveur ou un environnement d'exécution. Les événements de Google Cloud Storage et de Google Cloud Pub / Sub peuvent déclencher des fonctions de cloud de manière asynchrone, ou vous pouvez utiliser l'appel HTTP pour une exécution synchrone.

Fonctions Azure

  

Une expérience de calcul sans serveur basée sur des événements pour accélérer votre développement. Il peut évoluer en fonction de la demande et vous ne payez que pour les ressources que vous consommez.

Ouvrir

sans serveur

  

Serverless Framework vous permet de déployer des fonctions pilotées par événement, à redimensionnement automatique et payées par exécution, dans n'importe quel cloud. Nous prenons actuellement en charge Lambda d’Amazon Web Service et nous étendons notre offre pour prendre en charge d’autres fournisseurs de cloud.

IronFunctions

  

IronFunctions est une plate-forme informatique open source sans serveur pour tout nuage - privé, public ou hybride.

Il reste à voir dans quelle mesure FaaS rivalise avec CaaS (conteneur en tant que service). Le premier semble plus léger. Les deux semblent adaptés aux architectures de microservices.

Je prévois que les fonctions (comme dans FaaS) ne sont pas la fin de la ligne, et que dans plusieurs années, nous verrons de nouvelles abstractions de service, par exemple. développement de test uniquement, suivi de scénarios en langage clair.

Elastic Compute Cloud ou EC2 d’Amazon est une bonne option. Vous exécutez essentiellement des machines virtuelles Linux sur leurs serveurs que vous pouvez contrôler via une interface Web (pour allumer et éteindre) et bien sûr, un accès via SSH ou ce que vous configurez normalement ... Et comme il s’agit d’une installation linux que vous contrôlez, vous pouvez bien sûr exécuter python si vous le souhaitez.

Microsoft Windows Azure mérite peut-être une attention particulière. J'ai bien peur de ne pas l'avoir utilisé, donc je ne peux pas dire si c'est bon et vous devriez garder à l'esprit que c'est un CTP pour le moment.

Vérifiez-le ici.

Si vous êtes intéressé par le cloud et que vous souhaitez peut-être créer le vôtre pour la production et / ou les tests, vous devez consulter Eucalyptus . C'est prétendument compatible avec le code EC2 mais open source.

Vous pouvez également consulter AWS Elastic Beanstock . La fonctionnalité GAE, en ce sens qu’elle est conçue pour être PaaS, plutôt que IaaS (ie EC2)

Je serais plus intéressé de voir comment App Engine peut être facilement couplé à un autre serveur utilisé pour les requêtes gourmandes en ressources CPU.

TyphoonAE tente de le faire. Je ne l’ai pas testé, mais bien qu’il soit encore en version bêta, il semble au moins en développement actif.

Le passage à l'informatique en nuage s'effectue si rapidement que vous n'avez pas de temps à perdre pour tester différentes plates-formes. Je vous suggère d'essayer Jelastic si vous êtes également intéressé par Java.

L'un des principaux avantages de Jelastic est qu'il n'est pas nécessaire de modifier le code de votre application, à l'exception des modifications apportées aux fonctionnalités de votre application, mais pas pour la raison pour laquelle la plate-forme choisie l'exige. En ce qui concerne cela, vous ne perdez pas réellement votre temps. Le processus de déploiement est juste sans faille, et vous pouvez déployer votre fichier .war plus loin. L'utilisation de GAE nécessite que vous modifiiez l'application en fonction de leurs besoins système. Si vous travaillez avec Java et recherchez une plate-forme plus flexible, Jelastic est une alternative compatible.

Vous pouvez également utiliser le projet Cape Dwarf de Red Hat pour exécuter des applications GAE sur le serveur d'applications Wildfly (anciennement JBoss) sans modification.

Vous pouvez le vérifier ici:

http://capedwarf.org/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top