Eclipse Che 7 уже здесь +14



У онлайн-платформы разработки Eclipse Che выдался отличный год. В начале 2018 года была выпущена Eclipse Che 6.0, которая получила ряд новых функций для команд разработчиков, заинтересованных в создании cloud-native applications, а на конференции CheConf 18.1 было анонсировано начало следующего этапа в развитии – Eclipse Che 7.



С каждым новым релизом платформа становится все интереснее благодаря усилиям сообщества и активному участию пользователей. Посмотрим, насколько изменились и расширились доступные возможности, и как их можно попробовать прямо сейчас.

Eclipse Che – проект с открытым кодом (open source), преследующий такие цели:

  • Ускорить подключение к проектам новых участников.
    Для работы с Eclipse Che нужен только браузер. Устанавливать другое ПО на машину разработчика не требуется, а значит новые люди могут незамедлительно включаться в работу.
  • Устранить проблему несовпадения рабочих окружений.
    «Ну, не знаю! На моей машине все работает!» – звучит знакомо? Такого больше не повторится: теперь код одинаково работает на всех рабочих станциях.
  • Обеспечить встроенную безопасность корпоративного уровня.
    Поскольку Eclipse Che позиционируется как замена VDI-решениям, она должна соответствовать корпоративным требованиям безопасности, в частности, иметь ролевую модель доступа и исключать саму возможность хранения исходных текстов на машинах разработчиков.

В дорожной карте проекта обозначены четыре основных направления:

  • IDE.next – обновленный редактор кода — для большего удовольствия
  • Плагины – залог дальнейшего развития экосистемы Che.
  • Workspace.next – IDE-инструменты, работающие в виде контейнеризованных микросервисов и повышающие согласованность девелоперской и продакшн-сред.
  • Enterprise-функционал — для полномасштабного применения Che.

А подробнее?

IDE.Next


Вместо IDE на основе GWT в новой версии Che теперь используется Eclipse Theia, расширяющая возможности дальнейшего развития проекта Eclipse Che.

Смотрите, как работает новая IDE:



А еще уже сейчас доступны:

  • Редактор на основе Monaco – супербыстрый и суперотзывчивый интерфейс, функционал codelens и многое другое.
  • Палитра команд (Command Palette), которая позволяет делать с клавиатуры практически что угодно.
  • Поддержка задач, включая задачи из VS Code и команды Che.
  • Встроенный предпросмотр приложений непосредственно из IDE, включая режим Markdown.
  • Настраиваемый интерфейс, работает по принципу drag-and-drop.
  • И многое другое, включая Outline View, Поиск, Git.


Eclipse Theia


Как известно, Eclipse Theia – это платформа для создания онлайновых IDE. Проект построен на основе TypeScript и предлагает разработчикам более удобную и гибкую модель программирования, что ускоряет создание плагинов.

Однако между Eclipse Theia и той IDE-средой, которая сейчас используется в проекте Che, есть серьезный функциональный разрыв. Поэтому большую часть прошедшего года в Theia добавлялись недостающие функции, чтобы она смогла полностью заменить текущую IDE. Контрибьюторы проекта Eclipse Che потратили более пяти лет на создание облачной IDE, и важно сохранить эти наработки и опыт чтобы сделать новый IDE по-настоящему полезной.

Вот примеры полезных возможностей:

  • Debug Adapter Protocol.
  • Language Server Protocol.
  • Команды (commands).
  • Настройки.
  • Клавиатурные сокращения.
  • Поддержку Textmate.
  • Функции безопасности.

Разные IDE для разных сценариев использования


Еще одна важная деталь. Как и раньше по умолчанию Che будет предоставлять свою дефолтную web IDE для рабочих областей. Однако теперь можно подключать к ним другие IDE, потому что бывают случаи, когда IDE-среда Che не покрывает необходимые use cases, либо кто-то по своим причинам должен использовать какие-то особые инструменты. В старой IDE для этого использовались приложения RCP.

В Eclipse Che 7 к рабочим областям (Che workspace) можно подключать любые инструменты, включая:

  • Инструменты на основе Eclipse Theia (поскольку это лишь платформа для построения онлайновых IDE), например, популярный инструмент Sirius.
  • Абсолютно другие решения, вроде Jupyter или Eclipse Dirigible.

Посмотрите на пример использования Jupyter с рабочей областью Che:



Кстати, команда Eclipse Dirigible также работает над интеграцией своей онлайновой IDE с рабочими областями Che.

Eclipse Dirigible, интегрированный в рабочую область Eclipse Che. Больше по этой ссылке.

Новая модель Che-плагинов


Eclipse Che – платформа для построения облачно-ориентированных инструментов, и для этого ей нужна продуманная и удобная модель расширяемости.

Раньше расширяемость Eclipse Che сводилась к брендированию (white-labelling): независимые разработчики помогли создавать собственные кастомизированные версии Eclipse Che и распространять их среди своей аудитории. И хотя многих партнеров это устраивало, метод всегда считался сложным и приводил к появлению технологических стеков (особенно GWT в IDE), не особенно удобных для разработчиков. Из-за отсутствия динамической расширяемости компоненты Che Plugin приходилось паковать в так называемые «Che-сборки» (assembly), чтобы сделать их доступными конечным пользователям. Кроме того, без пересборки всей среды Che было в принципе невозможно быстро создать плагин, упаковать его для установки в уже имеющуюся среду Che и сделать этот плагин доступным. Именно поэтому мы ушли от от GWT в пользу IDE-проекта Eclipse Theia.

Все эти манипуляции были нужны, чтобы создать динамическую модель плагинов. Одним словом, в Che пользователю не придется заботиться о зависимостях инструментов, работающих в его воркспейсе, они должны становиться доступны по мере необходимости. Это означает, что Che-плагин сам предоставляет свои зависимости, свои backend-службы (которые могут работать во вспомогательном контейнере, подключенном к рабочей области пользователя) и свои UI-расширение для IDE. В результате у пользователей создается впечатление, что Che волшебным образом предоставляет языковые службы и инструменты разработки, которые нужны им в рабочей области.

Совместимость с VSCode


У новой модели плагинов есть еще один важный аспект: стремление рационализировать усилия разработчиков, создающих плагины и распространяющих их в составе различных инструментов или в рамках сообществ. Поэтому плагины Theia дополнились своими API-интерфейсами, чтобы обеспечить совместимость с точками расширения VS Code. В результате значительно упрощается перенос существующих плагинов из VS Code в Eclipse Che. Основное отличие – метод упаковки: в Eclipse Che плагины вместе с зависимостями пакуются в свой собственный контейнер.

Вот так:



Чтобы упростить публикацию и распространение, будет запущен магазин плагинов (plugin marketplace). Причем он будет реализован как в форме общедоступного сервиса, доступного сообществу, так в виде отдельного функционала, позволяющего создавать такие магазины в составе частных Che-сред с жестким контролем контента за файерволами. Сейчас вы можете найти плагины в соответствующем реестре репозитория github.

Hosted Mode


Создание Che-плагинов должно быть легким и занимать как можно меньше времени во внутреннем цикле разработки (мы сейчас про промежуток между внесением изменений в код и просмотром-отладкой результатов этих изменений). И поскольку здесь нужны серьезные улучшения по сравнению с IDE на основе GWT, был реализован новый режим Hosted Mode. Этот режим позволяет участникам проекта Che выполнять сборку Che непосредственно из самой Che, причем с полной поддержкой жизненного цикла, от создания и кодирования нового плагина до его отладки.

Вот как это выглядит:



Kubernetes-ориентированная IDE


Eclipse Che 7 – это первая в истории Kubernetes-ориентированная IDE. То есть вы можете использовать контейнеры непосредственно в своих рабочих областях. В Che эти области имеют специальный логический уровень «dev mode», который реализован поверх контейнеров, используемых в продакшн-среде, и предоставляет средства автодополнения при вводе IntelliSense и другие вспомогательные IDE-инструменты.



Что касается Workspace.Next, то благодаря им в Che можно сразу использовать «чистые» определения приложений (Docker-образ, Composefile или список ресурсов Kubernetes) без какой-либо доработки для внедрения IDE-служб. В Workspace.Next инструменты IDE реализуются в виде микросервисов, которые упакованы в свои собственные вспомогательные контейнеры вместе с зависимостями и никак не затрагивают контейнеры приложения. На этапе выполнения инструменты IDE изолируются как друг от друга, так и от контейнеров приложения. В результате, каждый инструмент IDE имеет свой собственный жизненный цикл, что упрощает их обновление и замену, а скоро они получат и собственные механизмы масштабирования.

Как попробовать?


Eclipse Che 7 доступна и ее можно опробовать уже сейчас, просто выбрав стек Che 7 при создании новой рабочей области.

Перейдите по factory URL: https://che.openshift.io/f?id=factoryvbwekkducozn3jsn
Создайте аккаунт на che.openshift.io, создайте new workspace и выберите стек Che 7.



Хотите протестировать? Устанавливайте последнюю версию Eclipse Che: Quick Start with Eclipse Che

Если вы готовы поделиться своими мыслями и наблюдениями, присоединяйтесь к сообществу!

Support: вопросы, баг репорты, запрос фич через GitHub issues
Общий чат: eclipse-che Mattermost channel
Виртуальные встречи: Che community meeting проходят каждый второй понедельник
Mailing list: che-dev@eclipse.org

Red Hat CodeReady Workspaces можно скачать по подписке разработчика здесь: https://developers.redhat.com/crw-hw/

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (2):

  1. artalar
    /#19816956

    Пользуюсь GitPod, очень доволен, спасибо за Theia.

  2. kmansoft
    /#19824150

    А разработка для Андроида в Eclipse так и не вернулась?

    До сих пор скучаю по «родному» отображению шрифтов (в Eclipse). В Android Studio уже года два тоже неплохо, но всё-таки не совсем «то».