Penembakan Cloud IDE: AWS Cloud9 vs. Eclipse Che vs. Eclipse Theia

Membawa developer baru ke proyek pemrograman dengan banyak dependensi terkadang bisa menjadi mimpi buruk. Saya telah melihat kasus ekstrem di mana perusahaan akhirnya menyerah dan membeli pengembang komputer baru setelah sebulan masalah mencoba mengonfigurasi yang lama. Lebih umum, menyiapkan lingkungan pengembangan baru untuk pengembang baru mungkin membutuhkan waktu antara tiga hari dan dua minggu.

Masalah itu adalah salah satu motivasi untuk ruang kerja pengembang berbasis web. Motivasi lain adalah bahwa mesin untuk pengembangan lokal membutuhkan sumber daya CPU dan RAM yang signifikan, yang meningkatkan biaya perangkat keras; sumber daya tersebut memungkinkan pengembang untuk membangun proyek dengan cepat. Komputer untuk mengakses ruang kerja berbasis web dapat menggunakan perangkat keras kelas bawah daripada komputer untuk pengembangan lokal.

Sebagai manfaat tambahan, ruang kerja pengembang berbasis web dapat memusatkan dan menstandarisasi konfigurasi. Berapa kali Anda mendengar "It works on my machine" sebagai tanggapan atas laporan bug? Lingkungan standar dapat menghilangkan masalah itu.

Pada artikel ini saya akan membahas tiga IDE cloud yang menyediakan ruang kerja pengembang berbasis web. Dua di antaranya — Eclipse Theia dan Eclipse Che — adalah proyek sumber terbuka bebas terbaru yang saat ini berada di bawah naungan Eclipse Foundation. Yang ketiga —AWS Cloud9 — adalah produk lama yang sekarang dimiliki dan terintegrasi dengan Amazon Web Services.

Eclipse Theia

Eclipse Theia adalah proyek open-source untuk memberikan pengalaman pengembangan Visual Studio Code di browser; itu juga dapat berjalan di desktop di shell Electron. Theia mengandalkan Protokol Server Bahasa Visual Studio Code untuk menyediakan penyelesaian kode khusus bahasa dan fitur lain yang kami harapkan dalam editor kode modern.

Karena dapat memanfaatkan server bahasa yang ditulis untuk Visual Studio Code, Theia memiliki akses ke lebih dari 60 server bahasa yang tersedia termasuk JavaScript, Java, Python, dan TypeScript. Theia juga mendukung protokol adaptor debug.

Theia sendiri ditulis dalam TypeScript dan menggunakan PhosphorJS sebagai fondasi untuk cangkangnya dan tata letak doknya yang dapat diseret. Ini mengintegrasikan terminal yang menghubungkan kembali saat browser memuat ulang untuk mempertahankan riwayat baris perintah. Anda dapat membuat ekstensi Anda sendiri ke Theia jika Anda mau.

Ada tiga cara utama untuk mencoba Theia. Salah satunya adalah menjalankannya di Docker:

docker run -it -p 3000: 3000 -v “$ (pwd): / home / project: cached” theiaide / theia: next

Yang kedua adalah menjalankannya di Gitpod (lihat sidebar dan gambar di bawah). Yang ketiga adalah menjalankan Eclipse Che versi 7 atau yang lebih baru (lihat bagian selanjutnya), yang menggunakan Theia sebagai UI-nya, bukan Java UI yang digunakan dalam Che versi lama.

Proyek Eclipse Theia mencakup kontribusi dari TypeFox, Ericsson, Red Hat, IBM, Google, dan ARM. Roadmap proyek mencakup sistem plug-in untuk mendukung ekstensi VS Code (di luar server bahasa), integrasi dengan kerangka pengujian, dan peningkatan lainnya.

TypeFox Gitpod

Gitpod adalah lingkungan yang dihosting secara komersial (lihat gambar di atas) yang dirancang untuk membuka repositori GitHub di ruang kerja. Gitpod IDE adalah open-source dan berdasarkan Eclipse Theia. Saat ini dalam fase uji beta gratis, Gitpod akan selalu gratis untuk proyek sumber terbuka, tetapi pada akhirnya akan memerlukan langganan untuk membuka repositori pribadi dan digunakan selama lebih dari 100 jam per bulan.

Cloud Gitpod.io saat ini berjalan di beberapa cluster Kubernetes yang dihosting di infrastruktur Google Cloud di tiga region berbeda di seluruh dunia. Produk Gitpod juga tersedia untuk hosting pribadi.

Eclipse Che

Eclipse Che adalah server ruang kerja pengembang sumber terbuka dan IDE cloud yang dirancang untuk tim dan organisasi. Che versi 7, saat ini dalam versi beta, menggunakan Eclipse Theia sebagai dasar IDE-nya. Versi lama Che menggunakan IDE berbasis GWT. Ruang kerja Che berjalan di kontainer di Docker, OpenShift, atau Kubernetes.

Anda dapat menjalankan Che di cloud publik, cloud pribadi, atau menginstalnya di sistem operasi apa pun. Che telah diuji di Ubuntu, Linux, MacOS, dan Windows. Anda juga dapat menjalankan Che di ruang kerja swalayan yang dihosting di //che.openshift.io/, di mana Anda harus memiliki atau membuat login OpenShift atau Red Hat gratis.

Selain itu, Eclipse Che terdiri dari inti Red Hat CodeReady Workspaces, lingkungan pengembangan baru untuk OpenShift. Selain didukung oleh Red Hat, CodeReady Workspaces memiliki tumpukan yang sudah dibuat sebelumnya dengan teknologi Red Hat yang didukung dan menyertakan Red Hat SSO untuk menangani otentikasi dan keamanan antara tim pengembang.

Proyek Eclipse Che mencakup kontribusi dari lebih dari 20 perusahaan termasuk CodeEnvy (pengembang asli Che), Docker, IBM, Red Hat, dan TypeFox. Roadmap Che mencakup penyelesaian integrasi Theia dan sistem plug-in untuk Theia dan Che.

AWS Cloud9

Cloud9 IDE, yang saya sebutkan sebagai Go IDE pada tahun 2017, sekarang menjadi milik Amazon Web Services. Selain memiliki editor kode multi-bahasa berbasis browser, debugger untuk beberapa bahasa, dan terminal yang telah diotorisasi sebelumnya untuk layanan AWS, Cloud9 sekarang memungkinkan pengkodean kolaboratif.

Anda dapat menjalankan lingkungan pengembangan Cloud9 pada instans Amazon EC2 terkelola atau server Linux apa pun yang mendukung SSH. Cloud9 menyertakan perkakas untuk lebih dari 40 bahasa pemrograman, meskipun hanya lima yang memiliki debugger, tujuh memiliki linting, dan 12 memiliki penyelesaian kode.

Jika Anda menjalankan Cloud9 di EC2, instans EC2 akan berhenti secara otomatis setelah Anda menutup Cloud9, secara default setelah 30 menit, dan kode Anda akan tetap ada di penyimpanan Amazon EBS. Jika Anda menjalankan Cloud9 di server Linux Anda sendiri, kode tersebut akan tetap ada di penyimpanan lokal. Jika Anda memulai ulang Cloud9 setelah instans yang mendasarinya berhenti, Cloud9 akan secara otomatis memulai ulang instans dan memulihkan sesi pengeditan di tempat Anda tinggalkan.

Anda dapat dengan mudah mengisi instance Cloud9 dari repositori atau dari file lokal. Pada gambar di bawah, saya menggunakan Git dari baris perintah Cloud9 untuk memeriksa repositori GitHub untuk Keras. Jika Anda mengedit proyek berdasarkan repositori yang Anda miliki izin komitnya, Anda dapat memperbarui repo dan menarik perubahan sesuai kebutuhan dari baris perintah. Cloud9 tidak memiliki dukungan grafis untuk kontrol versi.

Perhatikan tampilan garis besar di sebelah kanan tangkapan layar di bawah, yang berfungsi dengan baik untuk navigasi kasar di dalam file. Menu Go yang ditampilkan di kiri atas berfungsi dengan baik untuk navigasi yang lebih umum. Tidak ada fungsi refactoring di Cloud9, meskipun ada pemformatan kode sederhana.

AWS Cloud9 terintegrasi dengan Amazon Lightsail, AWS CodeStar, fungsi AWS Lambda, dan AWS CodePipeline. Integrasi Lambda tampaknya sangat baik.

IDE cloud yang mana?

Eclipse Theia, Eclipse Che, dan AWS Cloud9 memungkinkan Anda mengedit dan men-debug kode dalam berbagai bahasa pemrograman dari browser. Ada perbedaan dalam tata letak dan fungsionalitas, tetapi tidak cukup penting kecuali Anda ingin mencapai sesuatu yang cukup maju, seperti pemfaktoran ulang.

Cloud9 adalah pilihan yang sangat baik jika Anda mengerjakan proyek AWS, dan Che adalah pilihan yang sangat baik (sebagai CodeReady) jika Anda mengerjakan kode untuk sistem Red Hat. Theia menyediakan lingkungan pengeditan terbaik dari ketiganya, tetapi setelah Che 7 keluar dari beta, Theia juga akan memiliki IDE.