Utilisation de l'instance EC2 comme plate-forme de développement principale [fermé]

28

Mon problème

Je travaille en tant que consultant pour différentes entreprises. Chaque entreprise me fournit un ordinateur portable avec son logiciel sous tension et j'ai aussi le mien, où j'ai mon environnement de développement. J'ai tendance à acheter un nouvel ordinateur portable tous les deux ans et je passe beaucoup de temps à configurer et à installer des logiciels. Je passe également beaucoup de temps à attendre que mon ordinateur portable traite les choses.

Pour résoudre tous ces problèmes, j'envisage maintenant d'utiliser EC2 (exécutant des instances Windows) comme ma principale plate-forme de développement et d'y accéder à partir de n'importe quel PC sur lequel je me trouve. J'ai calculé que l'exécution de l'instance Large (64 bits la moins chère) pendant 8 heures par jour pendant un an me coûte 960 $ par an, ce qui est acceptable.

J'imagine que lorsque j'approche du lieu de travail chaque jour, je vais appuyer une seule fois sur mon téléphone pour déclencher l'instance, il est donc prêt lorsque je me mets au travail. Je devrais avoir différentes icônes sur mon téléphone pour lancer les différents types d'instances. Le même logiciel devrait bien sûr être automatiquement chargé sur les différents matériels (parfois j'aurais même besoin de leur instance avec 68,4 Go de mémoire).

Un autre avantage est que si je rencontre un problème spécifique avec mon instance, je peux lancer une autre instance et demander à quelqu'un d'examiner le problème et de mettre à jour l'image.

Ma question:

Quelqu'un a-t-il de l'expérience avec une telle configuration sur EC2? Quel genre de problèmes prévoyez-vous?

David
la source
2
Si vous disposez d'une connexion domestique suffisamment décente, vous pouvez le faire en utilisant Windows Remote Desktop sur une machine «serveur» à votre domicile. Ou si vous voulez plusieurs instances, exécutez-en plusieurs sous virtual box. Pas de frais mensuels.
GrandmasterB
2
@GrandmasterB: Pas de frais mensuels? Vous voulez dire que l'électricité ne coûte pas d'argent là où vous vivez? Et la maintenance de votre serveur domestique ne vous prend aucun temps?
John Bartholomew
La méthode d'accès à distance sera-t-elle "assez" rapide pour vous?
Que diriez-vous des machines virtuelles Azure comme alternative à EC2 pour exécuter l'environnement de bureau?
feklee
Avez-vous envisagé d'utiliser des VPS Linux au lieu d'EC2?
Basile Starynkevitch

Réponses:

11

Je n'utilise pas EC2, mais j'utilise une très grande ferme Xen. Franchement, je l'adore parce que:

  • Je peux aller travailler n'importe où
  • Il est simple de faire des instantanés de systèmes de fichiers entiers (j'utilise VHD)
  • Il est simple de produire des ISO pour l'installation
  • La migration des machines virtuelles est triviale si j'en ai besoin pour grandir et manquer de place
  • Des programmes comme distcc accélèrent vraiment les builds lorsque vous avez 8 à 10 machines virtuelles qu'il peut utiliser
  • Téléchargements de trucs très rapidement avec une connexion de 100 Mo :)

La mise en garde est, je suis foutu si je n'ai pas un tirage à jour de mes repos HG dans le cas où je ne peux pas obtenir Internet pour une raison quelconque, et cela s'est produit plusieurs fois.

Si vous avez une configuration vraiment très élaborée ... il n'y a aucun moyen que vous puissiez vraiment la reproduire localement (ou peut-être vous pourriez), mais le fait est, pas de connexion, pas de travail.

Tim Post
la source
Merci pour l'excellente réponse. J'ai un peu mis à jour la question avec le prix. Cela aurait dû être de 960 $ par année.
David
@David, mis à jour :)
Tim Post
6

Vous découvrez ce que les gens d'Unix / Linux font depuis des années: développer sur des serveurs. Vous pouvez ensuite utiliser n'importe quelle machine et ssh / putty dans vos serveurs et y développer.

Les serveurs Linux bon marché sont beaucoup moins chers que ec2. Vous pouvez aller avec rackspacecloud à 11 $ / mois (ils ont aussi des images Windows), mais vous pouvez également aller avec un hébergement de machine de base à 15,00 / an sur http://buyvm.net/ (client heureux, pas d'autre relation)

Pour amazon, vous pouvez consulter les instances prépayées de 3 ans. Cela pourrait vous faire économiser beaucoup.

Christopher Mahan
la source
4
Exécuter à distance GUI IDE sur un serveur Linux n'est de loin pas ce que font les gens Unix / Linux.
vartec
2
Je n'ai pas mentionné GUI IDE. Les personnes Unix n'utilisent généralement pas les IDE GUI. C'est EMACS vs VIM et certains Nano et Ed sont intégrés.
Christopher Mahan
1
Donc, tout d'abord, AFAIK, il n'y a pas de mode texte Visual Studio, donc non, le développement à distance sur Windows n'est pas la même chose que l'édition de fichier à distance avec vi. Deuxièmement, je ne suis pas tout à fait d'accord avec votre généralisation. Au cours de mes 15 années d'expérience dans le développement pour Linux, j'ai vu très peu de personnes utilisant uniquement l' éditeur de mode texte. Et la plupart d'entre eux étaient en fait des SysOps, pas des développeurs. D'un autre côté, les développeurs utiliseraient principalement des IDE à part entière (Komodo, Eclipse et dérivés, KDevelop, Quanta +, InteliJ et dérivés).
vartec
Mmm, intéressant. Peut-être que notre expérience varie. Je garderai cela à l'esprit lorsque je ferai de larges déclarations générales.
Christopher Mahan
6

J'utilise EC2 plus traditionnellement, comme serveurs. Les problèmes que je prévoyais avec ce que vous tentez:

  • stockage: vous avez deux choix, EBS persistant et stockage éphémère. EBS est assez lent, je ne peux pas vraiment imaginer travailler avec un IDE utilisant un disque aussi lent. Le stockage éphémère disparaît dès que vous arrêtez votre instance, donc ce n'est pas une très bonne option non plus. Et bien sûr, loin d'être aussi rapide que le SSD.

  • mémoire: pas assez, surtout compte tenu du faible coût actuel de la RAM.

  • CPU: vraiment, vraiment sous-alimenté, seulement 2 cœurs virtuels lents. Le niveau d'entrée i3 vous donnera de meilleures performances, sans parler de i5 ou i7.

  • connectivité: la latence à AWS est assez élevée, bien au-dessus de ce que vous attendez. Étant donné que j'utilise des instances EC2 en Europe tout en me connectant à partir de l'Europe, je m'attends à une latence bien inférieure à 30 ms, alors qu'elle ressemble plus à 300 à 500 ms. A titre de comparaison, la latence transatlantique est d'environ 50 ms. La latence rendrait tout environnement d'interface graphique interactif inutilisable.

Dans l'ensemble, le cloud pour les serveurs, son énorme avantage est la mise à l'échelle (en particulier la mise à l'échelle automatique). Que vous n'allez pas utiliser du tout. Pourtant, vous allez devoir supporter tous les ennuis du cloud.

MISE À JOUR mi-2015 : depuis que j'ai écrit cette réponse en 2012, AWS a ajouté un stockage SSD, une latence réduite. Quant au CPU et à la RAM, il tient toujours, l'EC2 est sérieusement sous-alimenté par rapport à un ordinateur portable moyen, sauf si vous êtes prêt à dépenser bien au-delà de 200 $ / mois.

vartec
la source
4

J'ai utilisé une instance EC2 de cette façon pour effectuer un développement 64 bits à l'aide de Visual Studio 2010 sur une grande instance Windows. Cela a fonctionné à merveille!

Même si je suis en Afrique du Sud, la latence n'était pas un gros problème. Copier et coller et éditer de gros blocs de texte était un peu lent, mais lors du débogage, je n'ai même pas remarqué le décalage. Faire les gros téléchargements pour être opérationnel - pour moi VS 2010 et Office 2010 - était extrêmement rapide - quelques Go en quelques minutes. J'étais littéralement opérationnel en une demi-heure.

Je vous recommande donc de l'essayer.

Govert
la source
Que faisiez-vous copier et coller dans votre IDE? Mauvaise forme!
lorddev
@lorddev copier entre des fichiers dans Visual Studio? Que recommandez-vous comme alternative?
Kirk Broadhurst
C'était une blague. J'ai rencontré une tonne de programmeurs copier-coller au fil des ans.
lorddev
3

Le plus gros problème que je vois - au moins avec une instance Windows et en supposant que vous utilisez un bureau à distance - est que les retards réseau sont ennuyeux. Selon votre proximité physique avec le centre de données Amazon, cela pourrait ne pas être un problème. Expérience personnelle: j'ai eu une semaine au cours de laquelle mon FAI a décidé d'acheminer des paquets à travers les États-Unis pour se rendre à mon bureau (à 12 miles de distance); l'interface utilisateur était inutilisable.

Anon
la source
Ce sera probablement un problème, du moins si je suis sur une connexion mobile. Je suppose que je dois le tester avant de décider quoi que ce soit.
David
1
J'utilise beaucoup RDP pour accéder à une machine de développement personnel. Pour la programmation non graphique, les performances sont si bonnes que vous pourriez facilement oublier que vous n'êtes pas assis devant la machine. Donc, cela va dépendre beaucoup de votre connexion et de la façon de la configurer (en supprimant tous les effets de gui fantaisie).
GrandmasterB
1
@GrandmasterB - cela dépend beaucoup de la latence de votre connexion. Par exemple, même sur mon réseau local, il y a une différence notable entre les connexions câblées et sans fil. Et le routage de vos paquets sur Internet peut provoquer de grandes latences: un aller-retour de 6 000 miles entre les côtes américaines, par exemple, ajoute 3 / 100e de seconde.
Anon
1

J'utilise des micro-instances EC2 via le niveau gratuit et c'est fantastique. C'est rapide, réactif et je n'ai pratiquement pas à payer un centime. Cela dure environ un an, mais si vous avez besoin d'un environnement de développement temporaire, EC2 est le chemin à parcourir. Je n'ai eu que de belles expériences là-bas. Les micro-instances pour moi ont même pris en charge un trafic pouvant atteindre 100 000 visites par jour (très bien géré également, avec seulement un pic d'environ 70% d'utilisation du processeur).

Jetez un œil à bitnami - c'est une image de pile LAMP à démarrage rapide (ou n'importe quelle pile) pour fonctionner en 5 minutes. Assurez-vous également de configurer correctement votre sécurité! Autorisez uniquement les connexions SSH, HTTP / HTTPS dans vos groupes de sécurité Web. Utilisez SFTP pour le transfert de fichiers.

Kevin Wang
la source