Wykorzystanie instancji EC2 jako głównej platformy programistycznej [zamknięte]

28

Mój problem

Pracuję jako konsultant dla różnych firm. Każda firma zapewnia mi laptopa z włączonym oprogramowaniem, a także mam własne, w którym mam swoje środowisko programistyczne. Zwykle kupuję nowy laptop co drugi rok i spędzam dużo czasu na konfigurowaniu i instalowaniu oprogramowania. Spędzam też dużo czasu, czekając, aż mój laptop przetworzy różne rzeczy.

Aby rozwiązać wszystkie te problemy, rozważam teraz użycie EC2 (uruchomionych instancji systemu Windows) jako mojej głównej platformy programistycznej i po prostu uzyskać do nich dostęp z dowolnego komputera, na którym się znajduję. Obliczyłem, że uruchomienie dużej instancji (najtańsza wersja 64-bitowa) przez 8 godzin dziennie przez rok kosztuje mnie 960 $ rocznie, co jest dopuszczalne.

Wyobrażam sobie, że kiedy codziennie podchodzę do miejsca pracy, wykonam jedno dotknięcie telefonu, aby odpalić instancję, aby była gotowa, kiedy zabiorę się do pracy. Powinienem mieć różne ikony na swoim telefonie, aby odpalić różne typy instancji. To samo oprogramowanie powinno oczywiście zostać automatycznie załadowane na różne urządzenia (czasami potrzebowałbym nawet ich wystąpienia z 68,4 GB pamięci).

Kolejną zaletą jest to, że jeśli mam konkretny problem z moją instancją, mogę uruchomić inną instancję i poprosić kogoś o sprawdzenie problemu i zaktualizowanie obrazu.

Moje pytanie:

Czy ktoś ma doświadczenie z taką konfiguracją na EC2? Jakie problemy przewidujesz?

David
źródło
2
Jeśli masz wystarczająco przyzwoite połączenie domowe, możesz to zrobić za pomocą Pulpitu zdalnego systemu Windows na komputerze „serwerowym” w domu. Lub jeśli chcesz wielu wystąpień, uruchom kilka w polu wirtualnym. Brak opłaty miesięcznej.
GrandmasterB
2
@GrandmasterB: Brak opłat miesięcznych? Masz na myśli, że elektryczność nie kosztuje pieniędzy w miejscu zamieszkania? A utrzymanie twojego domowego serwera zabiera ci zero czasu?
John Bartłomiej
Czy metoda dostępu zdalnego będzie dla Ciebie „wystarczająco” wystarczająca?
Co powiesz na maszyny wirtualne Azure jako alternatywę dla EC2 do uruchamiania środowiska pulpitu?
feklee
Czy rozważałeś użycie Linux VPS zamiast EC2?
Basile Starynkevitch

Odpowiedzi:

11

Nie używam EC2, ale korzystam z bardzo dużej farmy Xen. Szczerze mówiąc, uwielbiam to, ponieważ:

  • Mogę dostać się do pracy z dowolnego miejsca
  • Tworzenie migawek całych systemów plików jest proste (używam VHD)
  • Wyprodukowanie ISO do instalacji jest proste
  • Migracja maszyn wirtualnych jest trywialna, jeśli potrzebuję jednego, aby się rozwinąć i zabrakło miejsca
  • Programy takie jak distcc naprawdę przyspieszają kompilacje, gdy masz 8–10 maszyn wirtualnych, z których można korzystać
  • Rzeczy są pobierane naprawdę szybko przy 100 MB połączeniu :)

Zastrzeżenie polega na tym, że jestem popieprzony, jeśli nie otrzymuję aktualnego repozytorium z moich repozytoriów HG w przypadku, gdy nie mogę uzyskać dostępu do Internetu z jakiegokolwiek powodu, a zdarzyło się to kilka razy.

Jeśli masz naprawdę bardzo rozbudowaną konfigurację ... nie ma możliwości, abyś mógł ją ponownie wyprodukować lokalnie (a może mógłbyś), ale chodzi o to, że nie ma połączenia, nie ma pracy.

Tim Post
źródło
Dzięki za doskonałą odpowiedź. Trochę zaktualizowałem pytanie o cenę. Powinno to wynosić 960 $ rocznie.
David
@David, zaktualizowano :)
Tim Post
6

Odkrywasz, co ludzie od lat robią w systemach Unix / Linux: rozwijając się na serwerach. Następnie możesz użyć dowolnej maszyny i ssh / putty na swoim serwerze (serwerach) i tam.

Tanie serwery linux są znacznie tańsze niż ec2. Możesz przejść z rackspacecloud za 11 USD / miesiąc (mają również obrazy systemu Windows), ale możesz także przejść z hostem bazowym 15.00 / rok na stronie http://buyvm.net/ (zadowolony klient, brak innych relacji)

W przypadku amazonu możesz zobaczyć 3-letnie instancje opłacone z góry. To może cię bardzo uratować.

Christopher Mahan
źródło
4
Zdalne uruchamianie GUI IDE na serwerze Linux zdecydowanie nie jest tym, co robią ludzie Uniksa / Linuksa.
vartec
2
Nie wspominałem o GUI IDE. Ludzie uniksowi zazwyczaj nie używają IDE GUI. To EMACS kontra VIM i wrzuceni są niektórzy Nano i Ed.
Christopher Mahan
1
Po pierwsze, AFAIK, nie ma trybu Visual Studio w trybie tekstowym, więc nie, zdalne programowanie w systemie Windows to nie to samo, co zdalne edytowanie pliku za pomocą vi. Po drugie, nie do końca zgadzam się z twoim uogólnieniem. Przez 15 lat doświadczenia w programowaniu dla systemu Linux widziałem bardzo niewiele osób korzystających tylko z edytora trybu tekstowego. I większość z nich była w rzeczywistości SysOps, a nie programistami. Z drugiej strony programiści używają głównie pełnoprawnego IDE (Komodo, Eclipse i pochodne, KDevelop, Quanta +, InteliJ i pochodne).
vartec,
Mmm, ciekawe. Być może nasze doświadczenie jest różne. Będę o tym pamiętać, gdy będę przedstawiał ogólne stwierdzenia uogólniające.
Christopher Mahan
6

Używam EC2 bardziej tradycyjnie jako serwerów. Problemy, które przewiduję z tym, co próbujesz:

  • przechowywanie: Masz dwie możliwości: trwałe przechowywanie EBS i przechowywanie efemeryczne. EBS działa dość wolno, nie wyobrażam sobie pracy z IDE przy użyciu tak wolnego dysku. Przechowywanie efemeryczne zniknie, gdy tylko zatrzymasz instancję, więc nie jest to również dobra opcja. I oczywiście nigdzie nie tak szybko jak SSD.

  • pamięć: niewystarczająca, zwłaszcza biorąc pod uwagę, jak obecnie tania jest pamięć RAM.

  • Procesor: naprawdę bardzo słabo zasilany, tylko 2 wolne rdzenie wirtualne. Poziom podstawowy i3 zapewni lepszą wydajność, nie wspominając o i5 lub i7.

  • łączność: opóźnienie w stosunku do AWS jest dość wysokie, znacznie powyżej oczekiwań. Biorąc pod uwagę, że korzystam z instancji EC2 w Europie, łącząc się z Europą, oczekiwałbym opóźnienia znacznie poniżej 30 ms, tymczasem jest to więcej niż 300-500 ms. Dla porównania opóźnienie transatlantyckie wynosi około 50 ms. Opóźnienie sprawiłoby, że jakiekolwiek interaktywne środowisko GUI nie byłoby możliwe.

Ogólnie rzecz biorąc, chmura dla serwerów, ogromną zaletą jest skalowanie (szczególnie automatyczne skalowanie). Z których w ogóle nie będziesz korzystać. Ale będziesz musiał znosić wszelkie irytacje chmury.

AKTUALIZACJA od połowy 2015 r . : odkąd napisałem tę odpowiedź w 2012 r., AWS dodał pamięć masową SSD, zmniejszając opóźnienia. Jeśli chodzi o procesor i pamięć RAM, nadal się utrzymuje, EC2 jest poważnie niedostatecznie zasilany w porównaniu do przeciętnego laptopa, chyba że jesteś skłonny wydać znacznie ponad 200 USD / mc.

vartec
źródło
4

Użyłem instancji EC2 w ten sposób, aby wykonać programowanie 64-bitowe za pomocą Visual Studio 2010 na dużej instancji Windows. Działa pięknie!

Chociaż jestem w Południowej Afryce, opóźnienie nie było dużym problemem. Kopiowanie i wklejanie oraz edytowanie dużych bloków tekstu było trochę powolne, ale podczas debugowania nawet nie zauważyłem opóźnienia. Robienie dużych pobrań, aby rozpocząć pracę - dla mnie VS 2010 i Office 2010 - było niezwykle szybkie - niektóre GB w kilka minut. Byłem dosłownie gotowy do pracy w ciągu pół godziny.

Więc polecam spróbować.

Govert
źródło
Co robiłeś, kopiując i wklejając do swojego IDE? Zła forma!
lorddev
@lorddev kopiowanie między plikami w Visual Studio? Co polecasz jako alternatywę?
Kirk Broadhurst
To był żart. Przez lata spotkałem mnóstwo programistów kopiujących i wklejających.
lorddev
3

Największym problemem, jaki widzę - przynajmniej w przypadku instancji Windows i zakładając, że korzystasz ze zdalnego pulpitu - jest to, że opóźnienia sieciowe są denerwujące. W zależności od tego, jak fizycznie jesteś blisko centrum danych Amazon, może to nie stanowić problemu. Osobiste doświadczenie: Miałem tydzień, w którym mój dostawca usług internetowych zdecydował o przekierowaniu pakietów przez USA, aby dostać się do mojego biura (12 mil); interfejs użytkownika był bezużyteczny.

Zaraz
źródło
Prawdopodobnie będzie to problem, przynajmniej jeśli mam połączenie komórkowe. Chyba muszę to przetestować, zanim cokolwiek zdecyduję.
David
1
Często używam RDP, aby uzyskać dostęp do osobistej maszyny programistycznej. W przypadku programowania bez grafiki wydajność jest tak dobra, że ​​można łatwo zapomnieć, że nie siedzisz przy komputerze. Będzie to bardzo zależeć od twojego połączenia i tego, jak go skonfigurować (usuwając wszystkie fantazyjne efekty GUI).
GrandmasterB
1
@GrandmasterB - zależy to bardzo od opóźnienia połączenia. Na przykład nawet w mojej domowej sieci LAN zauważalna jest różnica między połączeniami przewodowymi a bezprzewodowymi. A routing twoich pakietów przez Internet może powodować duże opóźnienia: na przykład okrążenie o długości 6000 mil między wybrzeżami Stanów Zjednoczonych dodaje 3/100 sekundy.
Anon
1

Używam mikro instancji EC2 za pośrednictwem bezpłatnej warstwy i jest to fantastyczne. Jest szybki, responsywny i prawie nie muszę płacić ani grosza. Trwa to około roku, ale jeśli potrzebujesz tymczasowego środowiska programistycznego, EC2 jest najlepszym rozwiązaniem. Miałem tam tylko świetne doświadczenia. Dla mnie mikro instancje obsługiwały nawet ruch do 100 tys. Trafień dziennie (również bardzo dobrze obsługiwany, przy szczytowym zużyciu procesora około 70%).

Spójrz na bitnami - jest to obraz szybkiego startu stosu LAMP (lub dowolnego stosu), który można uruchomić w ciągu 5 minut. Upewnij się również, że poprawnie skonfigurowałeś swoje zabezpieczenia! Zezwalaj tylko na połączenia SSH, HTTP / HTTPS w twoich internetowych grupach bezpieczeństwa. Do przesyłania plików użyj SFTP.

Kevin Wang
źródło