Открыть сервис

Eclipse Che

Eclipse Che — это облачная интегрированная среда разработки (IDE) и платформа для создания рабочих пространств разработчика, работающая по модели «разработка как сервис» (Developer Workspace as a Service). Проект разрабатывается под эгидой Eclipse Foundation и предоставляет возможность запускать полноценные инструменты программирования (редактор кода, терминал, отладчик, средства сборки и тестирования) непосредственно в веб-браузере, без необходимости установки ПО на локальный компьютер пользователя. Ключевой особенностью Eclipse Che является использование контейнеризации: каждое рабочее пространство (workspace) изолируется с помощью Docker-контейнеров, что обеспечивает воспроизводимость окружения и упрощает совместную работу команд.

История

Проект был основан в 2014 году компанией Codenvy, которая специализировалась на облачных инструментах для разработчиков. В январе 2015 года исходный код был передан в Eclipse Foundation, что сделало проект открытым и управляемым сообществом. Первая стабильная версия Eclipse Che 4.0 вышла в марте 2016 года. В 2017 году компания Codenvy была приобретена Red Hat (входит в IBM), что обеспечило проекту ресурсы для дальнейшего развития и интеграции с экосистемой Red Hat OpenShift.

Значительным этапом стал выпуск версии 7.0 в 2019 году, которая представила новую архитектуру на основе Kubernetes и контейнеров, отказавшись от предыдущей серверной модели. Это позволило масштабировать платформу и обеспечивать высокую производительность. В 2021 году проект был переименован в Eclipse Che, а его кодовая база стала основой для коммерческого продукта Red Hat OpenShift Dev Spaces.

Архитектура и устройство

Компоненты

Eclipse Che состоит из нескольких ключевых компонентов, работающих совместно:

  • Che Server — центральный сервер, отвечающий за управление рабочими пространствами, аутентификацию пользователей и взаимодействие с API.
  • Che Plugin Registry — реестр плагинов, содержащий расширения для редактора (языковые серверы, инструменты отладки, интеграции).
  • Che Devfile Registry — реестр шаблонов конфигурации (devfile), описывающих структуру рабочего пространства (контейнеры, инструменты, порты, команды).
  • User Dashboard — веб-интерфейс для управления пространствами, проектами и настройками.
  • Workspace Engine — компонент, отвечающий за запуск и оркестрацию контейнеров на базе Kubernetes.

Рабочие пространства

Каждое рабочее пространство в Eclipse Che представляет собой набор контейнеров, объединённых общей файловой системой и сетью. Основной контейнер содержит среду разработки (редактор, терминал, языковые серверы), а дополнительные контейнеры могут предоставлять базы данных, серверы приложений или другие сервисы. Конфигурация пространства описывается в файле devfile (формат YAML), который определяет:

  • образы контейнеров (базовый образ с инструментарием);
  • команды для сборки, тестирования и запуска;
  • порты для доступа к приложениям;
  • переменные окружения;
  • точки монтирования для хранения данных.

Поддержка редакторов

По умолчанию Eclipse Che использует редактор Theia (открытая альтернатива Visual Studio Code), но начиная с версии 7.0 поддерживается также Microsoft Visual Studio Code — Open Source (VSCode OSS). Пользователи могут устанавливать плагины и расширения из маркетплейса Open VSX или собственных реестров. Редактор работает в браузере, используя протокол WebSocket для связи с сервером.

Развёртывание

Eclipse Che развёртывается в кластере Kubernetes или OpenShift. Существует несколько способов установки:

  • Che Operator — оператор для автоматизированного развёртывания в OpenShift или Kubernetes.
  • Helm Chart — пакет Helm для установки в кластер.
  • Docker Compose — упрощённый вариант для локального тестирования (не рекомендуется для продакшена).

Минимальные требования к кластеру: 4 ядра CPU, 8 ГБ оперативной памяти и 50 ГБ дискового пространства. Для производственного использования рекомендуется 8 ядер и 16 ГБ ОЗУ.

Применение

Eclipse Che используется в следующих сценариях:

  • Облачная разработка — команды разработчиков могут работать над проектами из любого места, используя только браузер. Это особенно актуально для организаций с политикой безопасности, запрещающей установку ПО на локальные машины.
  • Обучение и хакатоны — платформа позволяет быстро разворачивать готовые окружения для участников, исключая проблемы с настройкой инструментов.
  • CI/CD интеграция — рабочие пространства могут быть автоматически созданы для каждого pull request, что позволяет тестировать код в изолированном окружении.
  • Разработка микросервисов — возможность запускать несколько контейнеров в одном пространстве упрощает отладку и тестирование взаимодействия сервисов.

Преимущества и ограничения

Преимущества

  • Воспроизводимость окружений — конфигурация рабочего пространства хранится в репозитории, что гарантирует одинаковые условия для всех разработчиков.
  • Централизованное управление — администраторы могут контролировать версии инструментов и плагинов, обновляя их на сервере.
  • Безопасность — код и данные не покидают сервер, что снижает риск утечки.
  • Масштабируемость — Kubernetes позволяет динамически выделять ресурсы под нагрузку.

Ограничения

  • Зависимость от сети — для работы требуется стабильное интернет-соединение.
  • Задержки — при работе с большими проектами возможны задержки из-за сетевой передачи данных.
  • Сложность развёртывания — требуется администратор с опытом работы с Kubernetes.
  • Ограниченная поддержка некоторых языков — не все языковые серверы полностью совместимы с Theia.

Конкуренты

На рынке облачных IDE существуют аналогичные решения:

  • GitHub Codespaces — облачная среда от GitHub, интегрированная с репозиториями и поддерживающая Visual Studio Code.
  • Gitpod — платформа, основанная на открытом проекте Theia, предлагающая автоматическое создание окружений для GitHub, GitLab и Bitbucket.
  • Cloud9 — продукт Amazon Web Services (AWS), встроенный в консоль AWS и поддерживающий серверные вычисления.
  • CodeSandbox — онлайн-редактор для веб-разработки, ориентированный на фронтенд и Node.js.

Интересные факты

  • Eclipse Che поддерживает работу с любым языком программирования, для которого существует языковый сервер (LSP — Language Server Protocol).
  • Проект активно используется в образовательных программах, например, в курсах по Kubernetes и облачным технологиям.
  • В 2020 году Eclipse Che получил награду «Best Developer Tool» на конференции EclipseCon.

Источники

  • Официальная документация Eclipse Che (Eclipse Foundation)
  • Red Hat OpenShift Dev Spaces documentation
  • Репозиторий проекта на GitHub (Eclipse Che)
  • Статья «Eclipse Che: A Cloud IDE for Kubernetes» (opensource.com)
  • Документация по формату Devfile (devfile.io)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →