Разработчики GitHub перешли в Codespaces

19.08.2021      24968

Создатели крупнейшего хостинга репозиториев кода GitHub объявили, что теперь будут работать в Codespaces. Облачная среда обеспечивает доступ к 32 процессорным ядрам и до 64 ГБ оперативной памяти. Такие мощности должны ускорить совместную разработку проектов любого масштаба.

Большие перемены

Кодовой базе GitHub.com почти 14 лет. Разработчики подчеркнули: если брать историю программирования, начиная с эпохи расцвета языка COBOL, это не слишком большой срок. Но для эпохи интернета это довольно много. Посудите сами: когда на GitHub.com опубликовали первый коммит (снимок репозитория кода), Ruby on Rails, на котором написан код платформы, было всего два года. А службы облачных вычислений Microsoft Azure и Google Cloud Platform в то время еще даже не существовали.

За 14 лет в основном репозитории GitHub.com (github / github) было опубликовано более миллиона коммитов. Подавляющее большинство из них подготовили разработчики, которые создают и тестируют код компьютерах Apple и macOS. Но, видимо, для проекта Microsoft (она купила GitHub в 2018 году за 7,5 млрд долларов) пришло время больших перемен.

В GitHub давно используют подход, основанный на использовании единых сценариев и правил для всех. Новые сотрудники могут просто клонировать основной репозиторий github / github и из него запускать сценарии установки и начальной загрузки, а также иметь локальный экземпляр GitHub.com, который находится в работоспособном состоянии примерно 12 часов в сутки. Когда же что-то идёт не так, сценарий автоматически связывает сотрудника со специалистами службы поддержки, которые оперативно решают проблему.

 

Команды, которые позволяют запустить локальную копию GitHub

 

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

Переход в Codespaces должен решить эту проблему – для GitHub и других крупных проектов. Единая облачная среда повышает производительность разработки и сокращает время ожидания.

Что такое Codespaces

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

Codespaces доступен в любом популярном браузере. Под капотом – виртуальные машины, которые включают до 32 процессорных ядер, до 64 ГБ оперативной памяти и до 128 ГБ места на диске.

 

 

Интерфейс платформы – интегрированная среда Visual Studio Code со всеми основными инструментами. Здесь есть редактор, дебаггер, терминал, доступ к системе контроля версий, синхронизация настроек, расширения и инструмент GitHub Copilot на базе искусственного интеллекта для дополнения кода. Есть также возможность предварительного просмотра изменений в браузере при работе с веб-проектами и порт-форвардинг.

С августа проект Codespaces стал доступен в тарифных планах Team и Enterprise Cloud на github.com. Платить предлагается за использованное время и ресурсы. Например, виртуальная машина с 2 процессорными ядрами и 4 ГБ оперативной памяти обойдётся в 18 центов в час, хранение гигабайта данных на диске – 7 центов в месяц.

 

 

Личный опыт

Разработчики признались, что миграция в Codespaces далась им нелегко. Репозиторий GitHub.com занимает на диске почти 13 ГБ. Клонировать его можно было не менее чем за 20 минут, а настройка зависимостей и загрузка кодового пространства занимала ещё 45 минут. Но даже после успешного монтирования репозитория в кодовое пространство разработчики очень долго не могли запустить проект.

В итоге после множества изменений и доработок пришлось переделать логику клонирования репозиториев в Codespaces. Вместо создания полного клона при инициализации теперь выполняется поверхностное клонирование, а затем, после создания кодового пространства с самыми последними коммитами, в фоновом режиме загружается история репозитория. Это позволило сократить время клонирования с 20 минут до 90 секунд.

После оптимизации кеширования и автоматического создания Docker-контейнеров, которые используются в качестве настроек (config-as-code) для сред Codespaces, загрузку кодового пространства и зависимостей удалось ускорить с 45 минут до 5. Но команда хотела большего, ведь обычно разработчики не готовы ждать 5 минут и уже через 10 секунд выпадают из состояния потока.

В GitHub поняли, что основная проблема заключалась в том, что клонирование и загрузка конкурируют за ресурсы. Поэтому в Codespaces стали заранее создавать предварительно сконфигурированные кодовые пространства, которые будут готовы к работе за 10 секунд.

Кроме того, миграция на Codespaces позволила делиться с коллегами результатами разработки просто по ссылке – без коммитов, пушей, код-ревью или развертывания. Достаточно просто скопировать и отправить ссылку, чтобы другой разработчик получил доступ к 80 порту в вашем кодовом пространстве и выполнил все необходимые операции или тесты.

Наконец, GitHub добавил в Codespaces поддержку работы в консоли. Для этого достаточно обновить предварительно созданный образ, который инициализирует sshd с открытыми ключами, открывает порт 22 и перенаправляет запросы к нему из кодового пространства. Что-то подобное можно сделать в любом проекте, чтобы повысить эффективность и удобство разработки.


Автор:
Обозреватель


Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 3036 19.08.21 11:03 Сейчас в теме
Один товарищъ где-то (может даже здесь) как-то писал, что состояние потока - это плохое состояние, непрофессиональное, в нем нельзя разрабатывать бизнес-приложения со сложной логикой и тому подобное. Но, смотрю, не все с этим согласны. И это хорошо.
iulyus; +1
Оставьте свое сообщение

См. также

«Сколково» объявил отбор перспективных ИИ-проектов для получения грантов

Новость Искусственный интеллект ИТ-Новость

В 2024 году «Сколково» выделит пилотным проектам в сфере искусственного интеллекта гранты на общую сумму 554 млн рублей. В результате отбора финансирование получат проекты с применением ИИ в областях производства, операционной деятельности и в работе предоставляемых сервисов.

12.04.2024    416    AnastasiaKl    3       

3

В программу подготовки спортивных программистов вошли бег и скорость печати

Новость ИТ-Новость

Пятничное: в России вступил в силу стандарт подготовки по дисциплине «спортивное программирование». В стандарт вошли требования к физическим показателям спортсменов и скорости набора текста.

16.02.2024    694    VKuser24342747    2       

1

Росстандарт утвердил протокол LoRaWAN для интернета вещей

Новость ИТ-Новость

Федеральное агентство по техническому регулированию и метрологии (Росстандарт) утвердило национальный стандарт протокола LoRaWAN RU, таким образом он получил официальный статус. Технология используется для беспроводной передачи данных между устройствами интернета вещей.

19.01.2024    487    VKuser24342747    0       

2

Новый закон откладывает на год вступление в силу изменений в порядок регистрации на сайтах

Новость Законодательство ИТ-Новость

12 декабря вступил в силу Федеральный закон, меняющий срок, к которому все владельцы сайтов должны внести изменения в порядок авторизации пользователей на сайте. Закон вводит переходный период до 1 января 2025 года.

20.12.2023    660    VKuser24342747    2       

1

Вышло крупное обновление для Android Studio

Новость Мобильные приложения ИТ-Новость

Новая версия Android Studio под номером 2023.1 получила имя Hedgehog. Появились возможности контролировать производительность приложений и управлять подключенными устройствами.

07.12.2023    806    VKuser24342747    2       

3

GitHub опубликовал результаты ежегодного исследования проектов с открытым исходным кодом

Новость GitHub ИТ-Новость

GitHub собрал данные об Open Source проектах в рамках ежегодного исследования Octoverse. Компания изучила географию репозиториев, используемые языки программирования и нейросети, а также активность сообщества.

15.11.2023    527    VKuser24342747    1       

2

Некоммерческие проекты смогут получить бесплатный доступ к GigaChat API

Новость ИТ-компания ИТ-Новость

Компания «Сбер» заявила, что будет бесплатно предоставлять доступ к API нейросети для генерации текста GigaChat для некоммерческих проектов. Однако для них будет ограничено число доступных токенов.

01.11.2023    656    VKuser24342747    2       

3

Состоялся релиз свободной среды разработки Geany 2.0

Новость ИТ-Новость Программист

Вышла новая версия Geany 2.0. Обновление затронуло внешний вид программы, расширило поддержку файлов и сторонних проектов, добавило новые способы работы с кодом.

25.10.2023    711    VKuser24342747    0       

1

Минцифры подготовило критерии по выбору оператора реестра провайдеров хостинга

Новость Минцифры ИТ-Новость Роскомнадзор

Минцифры подготовило проект постановления, которое утверждает требования к организации, претендующей на статус оператора реестра провайдеров хостинга.

25.10.2023    382    VKuser24342747    0       

1

Минцифры составило алгоритм действий для компаний, у которых не работает VPN

Новость Минцифры ИТ-Новость

Минцифры подготовило разъяснения для российских организаций, у которых возникли перебои в работе VPN-сервисов для клиентов и сотрудников из-за блокировки запрещенных ресурсов Роскомнадзором.

24.10.2023    635    VKuser24342747    0       

0

«Сбер» объявила о доступности SberLinux OS Server для российских компаний

Новость Импортозамещение ИТ-Новость

«СберТех», дочерняя компания «Сбера», объявила о предоставлении доступа к собственной серверной операционной системе SberLinux OS Server российским компаниям. ОС включена в реестр отечественного ПО.

20.10.2023    892    VKuser24342747    0       

2

Минцифры внесло изменения в проект правил идентификации клиентов веб-хостингов

Новость Минцифры ИТ-Новость Роскомнадзор

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

18.10.2023    471    VKuser24342747    0       

1

Google выпустила финальную версию Android 14

Новость Android Google ИТ-Новость

Google выпустила новую версию мобильной ОС Android 14. Изменения затронули настройки внешнего вида и безопасности. Были расширены возможности камеры и инструментов для хранения данных.

12.10.2023    697    VKuser24342747    0       

1

Яндекс объявил об открытии исходного кода DataLens

Новость Аналитика ИТ-Новость Яндекс

BI-система Yandex DataLens теперь развивается в опенсорс. Код продукта выложен для всех на GitHub. Любой желающий сможет развернуть DataLens на своем железе и доработать его под свои сценарии применения.

03.10.2023    1425    ЕленаЧерепнева    1       

6

Роскомнадзор создаст реестр хостинг-провайдеров

Новость Минцифры ИТ-Новость Роскомнадзор

Минцифры подготовило несколько проектов постановлений, которые утверждают правила ведения реестра поставщиков хостинг-услуг, а также новые требования к провайдерам.

02.10.2023    605    VKuser24342747    0       

1

«СберТех» представил репозиторий GitVerse с ИИ-помощником для написания кода

Новость Импортозамещение ИТ-Новость Программист

«СберТех» начал прием заявок на тестирование веб-сервиса для публикации ИТ-проектов GitVerse. Платформа подходит для разработки программ с открытым и закрытым кодом.

26.09.2023    830    VKuser24342747    2       

1

ИП и юрлица смогут использовать смартфон для создания и замены электронной подписи

Новость ИТ-Новость ФНС Цифровая подпись

ФНС внесла изменения в правила оформления электронной подписи руководителя организации и ИП. Станет возможным продлевать ее и записывать при помощи мобильного устройства.

18.09.2023    437    VKuser24342747    1       

1

Журнал IEEE Spectrum опубликовал рейтинг популярности языков программирования

Новость ИТ-Новость Языки программирования

Журнал Института инженеров электротехники и электроники IEEE Spectrum подготовил рейтинг самых популярных языков программирования в 2023 году. Статистика разделена на три категории.

01.09.2023    1314    VKuser24342747    4       

2

В бета-версии Microsoft 365 появилась поддержка языка Python для Excel

Новость ИТ-Новость Языки программирования

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

28.08.2023    666    VKuser24342747    0       

2

Специалисты Калифорнийского университета установили, что боты справляются с CAPTCHA лучше, чем люди

Новость ИТ-Новость

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

24.08.2023    1167    VKuser24342747    23       

2

Google Chrome начнет поддерживать квантово-устойчивые алгоритмы шифрования

Новость Google Безопасность ИТ-Новость

В версии Google Chrome 116 появится поддержка алгоритмов шифрования, устойчивых к попыткам дешифрации при помощи квантовых вычислений. Технология объединяет преимущества классической и инновационной криптографии.

24.08.2023    484    VKuser24342747    0       

1

В реестр российского ПО включен первый комплекс обработки больших данных

Новость Импортозамещение Минцифры ИТ-Новость Реестр ПО

Минцифры внесло в реестр отечественного ПО программно-аппаратный комплекс «Скала-Р», предназначенный для обработки больших данных. Это первый комплекс с таким функционалом, включенный в перечень.

22.08.2023    474    VKuser24342747    0       

1

Microsoft внедрила новые функции в GitHub Copilot и анонсировала Windows Copilot

Новость GitHub Искусственный интеллект

ИИ-помощник для разработчиков GitHub Copilot теперь не только в реальном времени анализирует код, предлагает варианты для его улучшения и помогает найти решение проблем в разработке, но и  показывает ссылки на репозитории, из которых взят код. 

17.08.2023    1167    VKuser24342747    0       

1

В JetBrains разработали ИИ-помощника для аналитиков данных

Новость Аналитика Искусственный интеллект

JetBrains представила нейросеть Ask AI для онлайн-блокнота Datalore. Виртуальный ассистент способен генерировать код на нескольких языках, предлагать доработки и упрощать процесс аналитики данных. 

16.08.2023    671    VKuser24342747    0       

1

Исследование: ChatGPT дает неправильный ответ на половину вопросов о программировании

Новость Искусственный интеллект ИТ-Новость

Чат-бот OpenAI ошибается в 52% случаев, когда отвечает на вопросы по программированию. Однако делает это так убедительно, что пользователи не замечают ошибки. 

14.08.2023    1048    VKuser24342747    5       

3