Programování

Cloud IDE shoot-out: AWS Cloud9 vs. Eclipse Che vs. Eclipse Theia

Přinést nového vývojáře do programovacího projektu s mnoha závislostmi může být někdy noční můra. Viděl jsem extrémní případ, kdy se společnost nakonec vzdala a koupila vývojáři nový počítač po měsíci problémů se snahou nakonfigurovat jeho starý. Obvykle může nastavení nového vývojového prostředí pro nového vývojáře trvat tři dny až dva týdny.

Tento problém je jednou z motivací pro webové vývojářské pracovní prostory. Další motivací je, že stroje pro místní vývoj vyžadují značné zdroje CPU a RAM, což zvyšuje náklady na hardware; tyto zdroje umožňují vývojářům rychle postavit projekt. Počítače pro přístup k webovým pracovním prostorům mohou pro místní vývoj uniknout s hardwarem nižší třídy než počítače.

Jako další výhodu mohou webové vývojářské pracovní prostory centralizovat a standardizovat konfiguraci. Kolikrát jste slyšeli „Funguje to na mém počítači“ v reakci na hlášení o chybě? Standardizovaná prostředí mohou tento problém eliminovat.

V tomto článku se budu zabývat třemi cloudovými IDE, které poskytují webové vývojářské pracovní prostory. Dva z nich - Eclipse Theia a Eclipse Che - jsou poměrně nedávné projekty s otevřeným zdrojovým kódem, které v současné době zastřešuje Nadace Eclipse. Třetí - AWS Cloud9 - je starší produkt, který nyní vlastní a integruje s webovými službami Amazon.

Zatmění Theia

Eclipse Theia je projekt s otevřeným zdrojovým kódem, který poskytuje vývojové prostředí Visual Studio Code v prohlížeči; může také běžet na ploše v prostředí Electron. Theia se spoléhá na jazykový serverový protokol Visual Studio Code, který poskytuje jazykově specifické doplnění kódu a další funkce, které očekáváme v moderním editoru kódu.

Protože může využívat výhod jazykových serverů napsaných pro Visual Studio Code, má Theia přístup k více než 60 dostupným jazykovým serverům včetně JavaScriptu, Javy, Pythonu a TypeScriptu. Theia také podporuje protokol adaptéru ladění.

Samotná Theia je napsána v TypeScript a používá PhosphorJS jako základ pro svůj shell a jeho roztažitelná dokovací rozložení. Integruje terminál, který se znovu připojí při opětovném načtení prohlížeče, aby udržoval historii příkazového řádku. Pokud chcete, můžete si vytvořit vlastní rozšíření do Theia.

Existují tři hlavní způsoby, jak vyzkoušet Theii. Jedním z nich je spuštění v Dockeru:

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

Druhým je spuštění v Gitpodu (viz postranní panel a snímek obrazovky níže). Třetí je spuštění Eclipse Che verze 7 nebo novější (viz další část), který používá Theia jako své uživatelské rozhraní namísto Java UI používaného ve starších verzích Che.

Projekt Eclipse Theia zahrnuje příspěvky od TypeFox, Ericsson, Red Hat, IBM, Google a ARM. Plán projektu zahrnuje zásuvný systém pro podporu rozšíření VS Code (mimo jazykové servery), integraci s testovacími rámci a další vylepšení.

TypeFox Gitpod

Gitpod je komerční hostované prostředí (viz výše uvedený snímek obrazovky) určené k otevírání úložišť GitHub v pracovních prostorech. Gitpod IDE je open-source a založený na Eclipse Theia. V současné době ve fázi bezplatného beta testu bude Gitpod vždy zdarma pro open source projekty, ale nakonec bude vyžadovat předplatné k otevření soukromých úložišť a používání více než 100 hodin měsíčně.

Cloud Gitpod.io aktuálně běží ve více klastrech Kubernetes hostovaných na infrastruktuře Google Cloud ve třech různých oblastech po celém světě. Produkt Gitpod je k dispozici také pro soukromý hosting.

Eclipse Che

Eclipse Che je otevřený zdrojový server pro vývojáře a cloud IDE určený pro týmy a organizace. Che verze 7, aktuálně v beta verzi, používá Eclipse Theia jako základ svého IDE. Starší verze Che používají IDE založené na GWT. Pracovní prostory Che běží v kontejnerech na Docker, OpenShift nebo Kubernetes.

Che můžete spustit ve veřejném cloudu, soukromém cloudu nebo jej nainstalovat do libovolného operačního systému. Che byl testován na Ubuntu, Linux, MacOS a Windows. Můžete také spustit Che v samoobslužném pracovním prostoru hostovaném na //che.openshift.io/, pro který budete muset mít nebo vytvořit bezplatné přihlášení OpenShift nebo Red Hat.

Eclipse Che navíc zahrnuje jádro Red Hat CodeReady Workspaces, nového vývojového prostředí pro OpenShift. Kromě podpory Red Hat mají CodeReady Workspaces předem připravené balíčky s podporovanými technologiemi Red Hat a zahrnují Red Hat SSO pro zpracování autentizace a zabezpečení mezi týmy vývojářů.

Projekt Eclipse Che zahrnuje příspěvky od více než 20 společností, včetně CodeEnvy (původní vývojář společnosti Che), Docker, IBM, Red Hat a TypeFox. Cestovní plán Che zahrnuje dokončení integrace Theia a zásuvných systémů pro Theia a Che.

Cloud AWS9

Cloud9 IDE, který jsem v roce 2017 zmínil jako Go IDE, nyní patří do Amazon Web Services. Kromě toho, že má vícejazyčný editor kódu založený na prohlížeči, debuggery pro několik jazyků a terminál, který je předautorizován pro služby AWS, Cloud9 nyní umožňuje společné kódování.

Vývojová prostředí Cloud9 můžete spustit na spravovaných instancích Amazon EC2 nebo na libovolných serverech Linux, které podporují SSH. Cloud9 obsahuje nástroje pro více než 40 programovacích jazyků, ačkoli pouze pět má debuggery, sedm má linting a 12 má dokončení kódu.

Pokud spustíte Cloud9 na EC2, instance EC2 se automaticky zastaví po zavření Cloud9, ve výchozím nastavení po 30 minutách, a váš kód přetrvává v úložišti Amazon EBS. Pokud spustíte Cloud9 na svém vlastním serveru Linux, kód přetrvává v místním úložišti. Pokud restartujete Cloud9 poté, co se zastavila jeho základní instance, Cloud9 automaticky restartuje instanci a obnoví vaši relaci úprav tam, kde jste přestali.

Instanci Cloud9 můžete snadno naplnit z úložiště nebo z místních souborů. Na níže uvedeném snímku obrazovky jsem použil Git z příkazového řádku Cloud9, abych zkontroloval úložiště GitHub pro Keras. Pokud upravujete projekt na základě úložiště, ke kterému máte oprávnění k potvrzení, můžete aktualizovat repo a podle potřeby načíst změny z příkazového řádku. Cloud9 nemá grafickou podporu pro správu verzí.

Všimněte si obrysového zobrazení vpravo na snímku obrazovky níže, které funguje dobře pro hrubou navigaci v souboru. Nabídka Go zobrazená vlevo nahoře funguje dobře pro obecnější navigaci. V Cloud9 není žádná funkce refaktoringu, i když existuje jednoduché přeformátování kódu.

AWS Cloud9 je integrován s Amazon Lightsail, AWS CodeStar, AWS Lambda funkcemi a AWS CodePipeline. Integrace lambda se zdá být obzvláště dobrá.

Které cloudové IDE?

Eclipse Theia, Eclipse Che a AWS Cloud9 vám umožňují upravovat a ladit kód v několika programovacích jazycích z prohlížeče. Existují rozdíly v rozvržení a funkčnosti, ale to není dost důležité, pokud nechcete dosáhnout něčeho docela pokročilého, jako je refaktoring.

Cloud9 je obzvláště dobrá volba, pokud pracujete na projektech AWS, a Che je obzvláště dobrá volba (jako CodeReady), pokud pracujete na kódu pro systémy Red Hat. Theia poskytuje nejhezčí editační prostředí ze všech tří, ale jakmile Che 7 vyjde z beta verze, bude mít také Theia IDE.