Menggunakan instance EC2 sebagai platform pengembangan utama [ditutup]

28

Masalahku

Saya bekerja sebagai konsultan untuk berbagai perusahaan. Setiap perusahaan memberi saya laptop dengan perangkat lunak mereka dan saya juga memiliki laptop saya sendiri, di mana saya memiliki lingkungan pengembangan saya. Saya cenderung membeli laptop baru setiap tahun kedua dan mendapati diri saya menghabiskan banyak waktu untuk mengkonfigurasi dan menginstal perangkat lunak. Saya juga menghabiskan banyak waktu menunggu laptop saya untuk memproses sesuatu.

Untuk mengatasi semua masalah ini, saya sekarang mempertimbangkan untuk menggunakan EC2 (menjalankan instance windows) sebagai platform pengembangan utama saya dan hanya mengakses ini dari PC mana pun saya kebetulan berada. Saya menghitung bahwa menjalankan instance Besar (termurah 64-bit) selama 8 jam sehari selama setahun biayanya $ 960 per tahun, yang dapat diterima.

Saya membayangkan bahwa ketika saya mendekati tempat kerja setiap hari, saya akan membuat satu ketukan pada telepon saya untuk menyalakan instance, jadi sudah siap ketika saya mulai bekerja. Saya harus memiliki ikon berbeda di ponsel saya untuk menjalankan berbagai jenis instance. Perangkat lunak yang sama tentu saja harus secara otomatis dimuat pada berbagai perangkat keras (kadang-kadang saya bahkan perlu contoh mereka dengan memori 68,4 GB).

Keuntungan lain adalah bahwa jika saya mengalami masalah spesifik dengan instance saya, saya dapat menjalankan instance lain dan meminta seseorang melihat masalah dan memperbarui gambar.

Pertanyaan saya:

Adakah yang punya pengalaman dengan pengaturan seperti itu di EC2? Masalah apa yang Anda lihat sebelumnya?

David
sumber
2
Jika Anda memiliki koneksi rumah yang cukup baik, Anda dapat melakukan ini menggunakan Windows Remote Desktop pada mesin 'server' di rumah Anda. Atau jika Anda ingin beberapa instance, jalankan beberapa di bawah kotak virtual. Tidak ada biaya bulanan.
GrandmasterB
2
@GrandmasterB: Tidak ada biaya bulanan? Maksudmu listrik tidak membutuhkan uang di tempat tinggalmu? Dan pemeliharaan server rumah Anda membuat Anda nol waktu?
John Bartholomew
Apakah metode akses jarak jauh menjadi "cukup" untuk Anda?
Bagaimana dengan mesin virtual Azure sebagai alternatif untuk EC2 untuk menjalankan lingkungan desktop?
feklee
Apakah Anda mempertimbangkan menggunakan beberapa VPS Linux daripada EC2?
Basile Starynkevitch

Jawaban:

11

Saya tidak menggunakan EC2, tetapi saya menggunakan pertanian Xen yang sangat besar. Sejujurnya, saya menyukainya karena:

  • Saya bisa mulai bekerja dari mana saja
  • Sangat mudah untuk membuat snapshot dari seluruh sistem file (saya menggunakan VHD)
  • Sangat mudah untuk menghasilkan ISO untuk instalasi
  • Migrasi VM di sekitar adalah sepele jika saya membutuhkannya untuk tumbuh dan kehabisan ruang
  • Program seperti distcc benar-benar mempercepat pembangunan ketika Anda memiliki 8 - 10 mesin virtual yang dapat digunakan
  • Unduhan barang sangat cepat dengan koneksi 100MB :)

Peringatannya adalah, saya kacau jika saya tidak memiliki up to date dari repo HG saya jika saya tidak bisa mendapatkan Internet untuk alasan apa pun, dan itu telah terjadi beberapa kali.

Jika Anda memiliki pengaturan yang sangat, sangat rumit .. tidak mungkin Anda bisa memproduksinya lagi secara lokal (atau mungkin Anda bisa), tetapi intinya adalah, tidak ada koneksi, tidak ada pekerjaan.

Pos Tim
sumber
Terima kasih atas jawabannya. Saya sedikit memperbarui pertanyaan dengan harganya. Seharusnya $ 960 per tahun.
David
@ David, diperbarui :)
Tim Post
6

Anda menemukan apa yang telah dilakukan orang Unix / Linux selama bertahun-tahun: berkembang di server. Anda kemudian dapat menggunakan mesin apa saja dan ssh / dempul ke server Anda dan dev di sana.

Server linux murah jauh lebih murah daripada EC2. Anda dapat menggunakan rackspacecloud dengan harga $ 11 / bulan (mereka memiliki gambar windows juga), tetapi Anda juga dapat menggunakan hosting mesin dasar 15.00 / tahun di http://buyvm.net/ (pelanggan yang senang, tidak ada hubungan lain)

Untuk amazon, Anda dapat melihat contoh prabayar 3 tahun. Itu bisa menghemat banyak.

Christopher Mahan
sumber
4
Sejauh ini menjalankan GUI IDE pada server Linux bukanlah apa yang dilakukan orang Unix / Linux.
vartec
2
Saya tidak menyebutkan GUI IDE. Orang Unix umumnya tidak menggunakan GUI IDE. Ini EMACS vs VIM dan beberapa Nano dan Ed dilemparkan.
Christopher Mahan
1
Jadi pertama, AFAIK, tidak ada mode teks Visual Studio, jadi tidak, mengembangkan jarak jauh pada Windows tidak sama dengan mengedit file jarak jauh dengan vi. Kedua, saya tidak setuju dengan generalisasi Anda. Dalam 15 tahun pengalaman saya mengembangkan untuk Linux, saya telah melihat sangat sedikit orang yang hanya menggunakan editor mode teks. Dan kebanyakan dari mereka sebenarnya SysOps, bukan pengembang. Di sisi lain pengembang sebagian besar akan menggunakan IDE sepenuhnya (Komodo, Eclipse dan turunannya, KDevelop, Quanta +, InteliJ dan turunannya).
vartec
Mmm, menarik. Mungkin pengalaman kami berbeda-beda. Saya akan mengingatnya ketika saya membuat pernyataan umum yang luas.
Christopher Mahan
6

Saya menggunakan EC2 lebih tradisional, sebagai server. Masalah yang saya ramalkan dengan apa yang Anda coba:

  • penyimpanan: Anda memiliki dua pilihan, EBS persisten dan penyimpanan sementara. EBS sangat lambat, tidak bisa membayangkan bekerja dengan IDE menggunakan disk yang lambat. Penyimpanan Ephemeral hilang segera setelah Anda menghentikan instance Anda, jadi opsi yang tidak cukup baik juga. Dan tentu saja tidak secepat SSD.

  • memori: tidak cukup, terutama mengingat betapa murahnya RAM saat ini.

  • CPU: benar-benar di bawah daya, hanya 2 core virtual lambat. Entry level i3 akan memberi Anda kinerja yang lebih baik, belum lagi i5 atau i7.

  • konektivitas: latensi ke AWS cukup tinggi, jauh di atas untuk apa yang Anda harapkan. Mengingat bahwa saya menggunakan instance EC2 di Eropa saat menghubungkan dari Eropa, saya akan memperkirakan latensi di bawah 30 ms, sementara itu lebih seperti 300-500 ms. Untuk perbandingan latensi transatlantik adalah sekitar 50 ms. Latency akan membuat lingkungan GUI interaktif tidak dapat digunakan.

Secara keseluruhan, cloud untuk server, keunggulannya adalah penskalaan (terutama penskalaan otomatis). Yang tidak akan Anda gunakan sama sekali. Namun Anda harus tahan dengan semua gangguan awan.

UPDATE pada pertengahan 2015 : sejak saya menulis jawaban ini pada 2012, AWS telah menambahkan penyimpanan SSD, mengurangi latensi. Sedangkan untuk CPU dan RAM, masih berlaku, EC2 benar-benar kurang bertenaga dibandingkan dengan laptop rata-rata, kecuali Anda bersedia menghabiskan lebih dari $ 200 / bulan.

vartec
sumber
4

Saya telah menggunakan instance EC2 dengan cara ini untuk melakukan pengembangan 64-bit menggunakan Visual Studio 2010 pada instance Windows yang besar. Itu bekerja dengan indah!

Meskipun saya di Afrika Selatan, latensi itu bukan masalah besar. Menyalin dan menempel, dan mengedit blok teks besar agak lamban, tetapi ketika debugging saya bahkan tidak melihat lag. Melakukan unduhan besar untuk bangkit dan berjalan - bagi saya VS 2010 dan Office 2010 - sangat cepat - beberapa GB dalam beberapa menit. Saya benar-benar bangun dan berlari dalam waktu setengah jam.

Jadi saya sarankan Anda mencobanya.

Pemerintah
sumber
Apa yang Anda lakukan menyalin dan menempel ke IDE Anda? Bentuk buruk!
lorddev
@lorddev menyalin antara file di Visual Studio? Apa yang Anda rekomendasikan sebagai alternatif?
Kirk Broadhurst
Itu adalah lelucon. Saya telah menemukan banyak programmer copy-and-paste selama bertahun-tahun.
lorddev
3

Masalah terbesar yang saya lihat - setidaknya dengan contoh Windows dan dengan asumsi bahwa Anda menggunakan desktop jarak jauh - adalah bahwa kelambatan jaringan mengganggu. Tergantung pada seberapa dekat Anda secara fisik dengan pusat data Amazon, itu mungkin tidak menjadi masalah. Pengalaman pribadi: Saya punya satu minggu di mana ISP saya memutuskan untuk merutekan paket di seluruh AS untuk sampai ke kantor saya (12 mil jauhnya); UI tidak dapat digunakan.

Segera
sumber
Mungkin akan menjadi masalah, setidaknya jika saya menggunakan koneksi seluler. Saya kira saya harus mengujinya sebelum saya memutuskan apa pun.
David
1
Saya banyak menggunakan RDP untuk mengakses mesin pengembangan pribadi. Untuk pemrograman non-grafis, kinerjanya sangat bagus sehingga Anda bisa dengan mudah lupa bahwa Anda tidak duduk di depan mesin. Jadi itu akan sangat tergantung pada koneksi Anda & bagaimana mengkonfigurasinya (menghapus semua efek gui mewah).
GrandmasterB
1
@GrandmasterB - sangat tergantung pada latensi koneksi Anda. Misalnya, bahkan di LAN rumah saya, ada perbedaan mencolok antara koneksi kabel dan nirkabel. Dan perutean paket Anda melalui Internet dapat menyebabkan latensi besar: perjalanan ulang-alik 6.000 mil di antara pantai AS, misalnya, menambah 3/100 detik.
Anon
1

Saya menggunakan contoh mikro EC2 melalui tingkat gratis dan ini fantastis. Cepat, responsif, dan saya tidak perlu membayar sepeser pun. Itu berlangsung selama sekitar satu tahun, tetapi jika Anda membutuhkan lingkungan pengembangan sementara, EC2 adalah cara untuk pergi. Saya tidak punya apa-apa selain pengalaman hebat di sana. Mikro contoh bagi saya bahkan telah mendukung lalu lintas hingga 100 ribu hit sehari (sangat baik ditangani, hanya pada puncak penggunaan CPU sekitar 70%).

Lihatlah bitnami - ini adalah gambar LAMP stack (atau sembarang tumpukan) quickstart untuk dijalankan pada dasarnya 5 menit. Juga, pastikan Anda mengkonfigurasi keamanan Anda dengan benar! Hanya izinkan koneksi SSH, HTTP / HTTPS di grup keamanan web Anda. Gunakan SFTP untuk transfer file.

Kevin Wang
sumber