Je suis sur le point de commencer le développement sur un projet avec des spécificités de charge / de circulation très incertaines. Lorsqu'il sera publié, il y aura certainement une charge très faible pouvant être facilement manipulée par une seule machine de code quadbot de bureau. P>
Le problème est qu'il y aura (après une certaine période d'invitation) une publicité forte pour le produit afin que je m'attends à des pics de trafic / charge considérables. p>
Je n'ai pas lu assez sur les fournisseurs de cloud et je m'appuyais surtout envers Amazon ou Azur pour la crédibilité de ces deux sociétés, sans les vérifier, car je devrais avoir avec d'autres personnes (c'est-à-dire. Rackspace que je suppose que ce soit un service nuageux. fournisseur). P>
J'aimerais créer une application Web ASP.NET normale ASP.NET MVC pouvant être exécutée sur un serveur à usage unique interne. Il exécuterait le serveur Web avec la base de données (relationnel et peut-être aussi de document) et de recherche FullText STRAND> (pas SQL FTS, mais plutôt un produit séparé à grande vitesse comme Lucene ou Sphinx). Mais après la période initiale de l'invitation, je souhaite déplacer cette application sur le cloud pour le rendre plus trafic / chargement de la demande de la demande. P>
Autant que je connaisse Amazon propose une sorte d'hébergement de machine virtuelle que je vous comprends que vous avez configuré comme serveur normal, mais dispose de ressources flexibles possibles en termes de puissance de charge. Je ne suis pas sûr que cela puisse être accompli sur Azure également. P>
Questions H2>
4 Réponses :
Beaucoup de cela dépend de votre application (par exemple, y a-t-il des composants séparables qui pourraient bénéficier de différentes instances, contre une simple application de crud avec une extrémité frontale). Une chose à considérer est que dans une application cloud, vous n'avez normalement pas de base de données relationnelle traditionnelle. En tant que tel, vous devez choisir d'hébergement nuageux ou traditionnel ou de planifier deux fois de coder votre couche d'accès. Azure a des bases de données relationnelles (SQL Azure), bien qu'elles ne soient pas identiques à SQL Server 2008R2. Vous allez devoir rechercher les avantages / inconvénients d'une configuration en nuage pour votre situation spécifique. P>
En ce qui concerne les préoccupations financières, il est généralement beaucoup moins cher de simplement obtenir un compte avec une entreprise d'hébergement au lieu d'un service en nuage, car vous payez au cours du mois, au lieu de l'heure (dernière fois que j'ai vérifié un compte avec Azure en cours d'exécution. 24/7 pendant un mois coûterait environ 40 $ et 50 $, alors que vous pouvez accueillir 15 $ par mois). Les économies avec le nuage entrent lorsque vous devez exécuter plusieurs serveurs et que le coût de la maintenance dépasse le coût de l'instance sur la plate-forme cloud. P>
Donc, désolé, il n'y a pas de réponse à la balle d'argent pour vous. Lisez sur les différents services disponibles. Considérez quelles sont vos besoins de votre application, quels prix seront et allez-y. P>
"Cloud" est un terme aussi vague. Néanmoins, je pense que c'est une très bonne question. P>
Fondamentalement, l'hébergement en nuage IAAS pas em> fait par magie par magie. C'est vraiment un serveur privé virtuel avec des périodes de contrat / d'annulation très courtes. P>
Pour évolutivité, la magie ne réside pas tellement dans l'hébergement, mais dans l'évolutivité horizontale du code de l'application lui-même. Ceci est lié à tous les défis informatiques distribués. Par exemple, l'ajout d'autres serveurs d'applications n'est pas toujours facile: vous devez être sûr de ne pas persister aucun état utilisateur dans l'application Server (mais plutôt dans une base de données, Vous n'avez pas vraiment quelque chose de différent juste pour accueillir EC2 ou Azure - essentiellement em>. Mais bien sûr, ce n'est pas si facile quand les choses grandissent. P>
Par exemple, le stockage d'instance EC2 est plutôt limité. Un stockage supplémentaire sur EBS ne fournit pas de caractéristiques de performances comparables et peut être un peu plus longeant qu'un disque. Le point ici est que EBS fait em> échelle magiquement, et c'est probablement plus de PAA que l'IAA; Mais ce n'est pas un simple disque dur et cela ne se comporte donc pas comme un disque dur. Je ne connais pas le stockage de bloc Azure. En général, attendez-vous à des couches d'abstraction supplémentaires pour introduire des problèmes de leur part, peu importe ce qu'ils font. P>
Les fournisseurs de cloud typiques sont plus chers que les fournisseurs de VPS rond-points habituels, mais ils sont, à mon expérience, également beaucoup plus fiables et professionnels. EC2 a un niveau libre (mais c'est assez petit), Azure vous donne une petite instance gratuitement pendant 3 mois. P>
Faire le droit de calcul est plutôt délicat; Par exemple, si vous devez fermer votre service pour une raison quelconque, il est agréable de pouvoir annuler maintenant em> plutôt que de payer une autre année - vous voudrez peut-être mettre ce risque dans votre calcul. D'autre part, EC2 et Azure seront considérablement moins chers si vous vous inscrivez pendant 6 ou 12 mois, plutôt que de payer à l'heure. P>
Vous voudrez peut-être consulter le plan d'azur libre, car il est agréable de commencer à tripoter sans frais. Un grand avantage des fournisseurs de cloud est que vous pouvez faire échec verticalement très facilement: l'achat de em> a 16 noyau, 64 Go RAM Server Machine est vraiment coûteux, mais s'il y a tellement de trafic sur votre site, mettez à niveau votre plan gagné ' T être un si gros problème. p> statique code> peut être diabolique), mise en cache Peut être problématique parce que les caches locales peuvent rendre la situation pire si vous utilisez une stratégie rond-robine, etc. p>
Premier B>: Lorsque vous dites que vous n'avez rien à faire différent, c'est de mon avis (même si je n'ai pas d'expérience) faux. Si je développerais une base de données habituelle ASP.NET MVC + SQL, je suppose que je devrais au moins réaménager la partie DAL de l'application pour le porter à IE. Bleu azur. Donc, les choses presque jamais b> que simples. Et oui, je suis également bien conscient des ressources partagées que chaque instance d'application doit partager les unes avec les autres. Cela ne devrait pas être un problème.
Deuxième B>: J'ai eu l'impression que le nuage d'Amazon est beaucoup plus similaire à le fournisseur VPS rond-the-corner i> autre chose. Au moins la partie EC2 de celui-ci.
Mais sinon merci pour toutes les informations. Avez-vous une expérience pratique dans le portage d'une application ASP.NET MVC à IE. Azure ou Amazon?
Oui, j'ai déployé une application sur Azure il y a quelques jours. Quand je dis que vous n'avez pas i> de changer quelque chose, c'est littéralement vrai. I.E., vous pouvez utiliser une instance locale SQL Server, comme sur tout autre serveur. Vous peut i> envie d'utiliser SQL Azure plutôt que d'un serveur SQL d'instance local pour exploiter la pleine puissance du produit, mais vous ne I> avez-vous. Sinon, comme vous l'avez dit, EC2 et Azure ressemblent beaucoup aux VPS typiques. Cependant, ils sont livrés avec beaucoup de fonctionnalités optionnelles (bus de messagerie, cache, email, EBS, etc.) qui ressemblent davantage à la PAA et ont besoin de soins spéciaux.
Je comprends que vous avez déployé une application à Azure (et je l'ai probablement développée pour Azure tout le temps), mais avez-vous Port et production existante en cours d'exécution B> ASP.NET MVC Application? Pour que cette application soit exécutée sur vos serveurs pendant quelques mois et que vous avez décidé de le déplacer dans le nuage? Parce que autant qu'un de mes amis m'a dit, vous devez utiliser un fournisseur de données différent, etc., ce qui signifie autre chose que la transition sans douleur.
Mon application fonctionne avec une instance locale de MongoDB; Il a été développé sur ma machine locale pour un serveur dédié et je l'ai simplement déployé à Azure. Aucun changement requis. Mais cela dépend de ce que vous voulez. Si vous souhaitez utiliser SQL Azure au lieu de SQL Server, vous devrez peut-être modifier les fournisseurs de données. Toutefois, si vous n'avez pas besoin de SQL Azure, vous pouvez utiliser un serveur SQL local sur l'instance Azure, comme tout autre.
Une chose que je viens de découvrir: Azure ne garantit pas d'adresses IP persistantes. Vous devez donc la DNS de votre application via un CNAME plutôt qu'un enregistrement A. Cela peut être problématique, en particulier si vous souhaitez utiliser des sous-domaines génériques ou des fonctionnalités sensibles IP telles que votre propre serveur de messagerie, ou si vous utilisez un service avec filtrage IP.
Comme quelqu'un ne l'a pas encore mentionné ... p>
Appharbor a été incroyable. Vous pouvez pousser des trucs en quelques minutes. Le déploiement est une brise. Et la mise en place de votre projet est également plus facile. Et cela n'exige même aucun changement majeur dans votre solution pour s'intégrer. P>
Pour la recherche en texte intégral, vous pouvez envisager quelque chose comme WebOlR . P>
Appharbor exécutera généralement une application ASP.NET standard sans modification. Vous pouvez en savoir plus sur Comment fonctionne la plate-forme .
Je viens de migrer une application MVC à partir d'un serveur dédié à Azure. Lors de la migration de la base de données MSSQL, j'ai d'abord essayé d'importer des fichiers .bacpak, mais certaines des tables ont échoué en raison de leur taille. J'ai ensuite utilisé le SQL Base de données SQL MIGRATIO WIZARD qui a fonctionné correctement pour les petites tables mais a échoué pour des tables avec des champs BLOB. Pour ces tables, je devais utiliser des tables intermédiaires temporaires. Ensuite, après un certain temps après que toutes les données ont été transférées la configuration, la WebApp était une brise et nous sommes allés en production. Au début, tout semblait fonctionner très bien, mais après quelques heures lorsque la charge a été plus lourde, toutes sortes d'erreurs se sont produites. Je suis allé dans le portail azur et il était vraiment facile de voir le p>
On dirait que vous avez vraiment besoin de collègues avec qui discuter de ces choses. :)
@bzlm: C'est vrai. Mais si aucun n'a d'expérience en nuage, il serait tout comme une conversation fructueuse que si j'étais toute l'enquête moi-même ... et le projet que je ne comprends que moi en tant que développeur. Tous les autres ne sont pas ...
Je ne peux pas croire que les gens ont voté pour fermer cette question. Totalement légitime, question de sujet spécifique.