TeamCity предоставляет мощные механизмы непрерывной интеграции и непрерывного развертывания, работающие «из коробки».
Из отчета Google Cloud Accelerate State of DevOps за 2022 г., спонсором которого выступила наша компания, вы узнаете, как наладить поставку программного обеспечения и улучшить показатели операционной деятельности. Сведения, приведенные в отчете, помогут вам повысить эффективность DevOps и ускорить внедрение инноваций. Watch the report highlights with JetBrains and Google Cloud experts.
Скачать отчетГде бы ни было развернуто ваше приложение — в виртуальных машинах или в контейнерах, — у нас есть инструменты, которые помогут вам вести разработку в этих окружениях. IDE JetBrains помогут доставить код в вашу среду разработки и выполнить отладку кода непосредственно в ней.
Каждая IDE JetBrains способна выполнять развертывание кода и артефактов с помощью SCP, а также открывать терминал SSH. Это облегчает подключение к экземплярам Google Compute Engine. Имеется поддержка сложных конфигураций SSH с bastion-хостами; их настройка может выполняться с помощью конфигурационного файла SSH (даже в Windows).
Вы можете использовать Vagrant для упрощения автоматизации процессов, относящихся к виртуальным машинам. Поддержка Vagrant реализована во всех IDE JetBrains — можно подключаться к настроенным с помощью Vagrant виртуальным машинам без дополнительной настройки.
Все IDE JetBrains позволяют вам выполнять сборку и запуск как контейнеров Docker, так и проектов Docker Compose. Вы можете легко редактировать файлы Dockerfile и YAML Compose.
Используете Google Kubernetes Engine? Несмотря на то, что Kubernetes значительно упрощает процесс развертывания, для его настройки требуются сложные YAML-файлы. Kubernetes-плагин от JetBrains помогает вам в этом: он генерирует сниппеты, позволяет выполнять навигацию по конфигурации и содержит инспекции, помогающие писать корректные конфигурации.
Если вы пишете код на Python, Node.js, PHP или Ruby, можете использовать встроенную в IDE JetBrains функциональность удаленного интерпретатора. Вне зависимости от цели подключения, будь то виртуальная машина или Docker-контейнер, вы можете настроить удаленный интерпретатор для использования удаленной машины в качестве среды выполнения проекта. После выполнения этой настройки все конфигурации запуска будут выполняться на удаленной машине, однако рабочий процесс будет соответствовать вашей локальной среде разработки.
При настройке удаленного интерпретатора ваша IDE сканирует среду удаленного компьютера, чтобы обеспечить корректную работу механизма автодополнения кода. Для дополнительного упрощения процесса разработки юнит-тесты выполняются в удаленном режиме.
После настройки удаленного интерпретатора консоль Python, IRB или Rails будет запускаться на удаленной машине: вы сможете прототипировать свой код в том же окружении, где он будет выполняться.
В большинстве конфигураций запуска отладка поддерживается без дополнительной настройки. В более сложных конфигурациях запуск кода из IDE может быть невозможен. Например, при тестировании тулчейна, генерирующего образы виртуальных машин. В этих случаях вы можете использовать встроенные в IDE JetBrains средства удаленной отладки для подключения к уже выполняющемуся коду.
Разработка на следующих языках поддерживается как в специализированных IDE для этих языков, так и в IntelliJ IDEA Ultimate с соответствующим языковым плагином. Поддержка JavaScript доступна во всех платных версиях IDE JetBrains.
Настройте Java для запуска с включенной отладкой, используя командную строку или переменную окружения. Затем подключите отладчик IntelliJ IDEA.
Скопируйте pydevd egg на свой сервер и скопируйте две строки из конфигурации запуска. Затем запустите сервер отладки в PyCharm и дождитесь подключения скрипта.
Запустите приложение Node.js с флагом `--inspect`, а затем подключите отладчик WebStorm.
Запустите приложение под gdbserver, а затем подключитесь с помощью CLion.
Запустите приложение, используя delve, а затем подключитесь с помощью GoLang.
Настройте Xdebug так же, как для локального использования. Веб-сервер должен быть в состоянии подключиться к компьютеру, на котором запущен PhpStorm. Попробуйте использовать SSH-туннель.
Запустите приложение, используя rdebug, а затем подключитесь с помощью RubyMine.
Сложно создать приложение без базы данных. У JetBrains есть решение — DataGrip, IDE для SQL. Помимо того, что это автономный продукт, его функциональность для работы с базами данных также интегрирована в большинство наших IDE*.
*Все платные IDE, за исключением WebStorm
С целью упрощения разработки в удаленных окружениях DataGrip поставляется с готовой поддержкой SSH-туннелей. Чтобы подключиться к базе данных Google Cloud SQL, просто используйте Google Cloud Proxy.
SQL обладает множеством возможностей. Почему бы не работать с ним с помощью такого же многофункционального инструмента? JetBrains DataGrip позволяет добавить в SQL полезнейшие возможности анализа и автодополнения кода. DataGrip позволяет подключаться к базе данных и просматривать данные еще проще, чем когда-либо.
DataGrip не ограничивается какой-то отдельной РСУБД, а может подключаться ко всем распространенным серверам баз данных: PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database и прочим.
Просматривайте данные в ходе разработки. Благодаря интеграции функциональности DataGrip в IDE JetBrains у вас есть возможность не только анализировать ваши данные, но и пользоваться механизмом автодополнения SQL-запросов — лучшим в своем роде инструментом, действительно умеющим понимать ваши данные. Все IDE JetBrains, интегрируемые с СУБД, содержат механизм автодополнения запросов SQL, учитывающий текущую схему и активирующийся всякий раз, когда вы вводите запрос в своем коде.
Плагин Cloud Tools для IntelliJ от Google делает разработку проектов App Engine на Java еще проще. Он обеспечивает глубокую интеграцию с вашей IDE независимо от того, используете ли вы App Engine Standard или App Engine Flexible.
Плагин позволяет быстро создавать новые проекты App Engine и настраивать существующие. Вы можете производить локальный запуск и отладку одним щелчком мыши, чтобы поддерживать быстрый цикл разработки. Когда следующая версия вашего приложения готова, можно развернуть код на App Engine прямо из IDE.
Теперь можно настраивать свою инфраструктуру с помощью кода. Почему бы не делать это в первоклассной IDE? Установив плагин языка HashiCorp Configuration Language (HCL), вы можете использовать такие возможности IDE JetBrains, как Ctrl-Click для перехода к определению в вашем инфраструктурном коде.
Помимо базовой поддержки синтаксиса этот плагин обеспечивает углубленную интеграцию с HashiCorp TerraForm. Для методов TerraForm доступно автодополнение, а набор предлагаемых инспекций помогает удостовериться, что конфигурация вашей инфраструктуры верна.
Доступны плагины как для Chief, так и для Puppet и Ansible. Плагин JetBrains для Puppet обеспечивает высококачественные механизмы автодополнения кода и рефакторинга, а также инспекции для вашей IDE. Также доступны плагины автодополнения кода в кукбуках Chef и сценариях Ansible.
Большинство рабочих групп используют то или иное решение непрерывной интеграции (CI) и/или непрерывного развертывания (CD). JetBrains TeamCity — это сервер CI/CD, созданный для сложного современного окружения.
Конечно же, TeamCity может собирать и загружать Docker-образы в соответствии с файлом Dockerfile в вашем репозитории. Кроме того, TeamCity может задействовать контейнер Docker в качестве обертки для этапов сборки. Например, вместо запуска этапа сборки Gradle напрямую в вашем билд-агенте, вы можете сконфигурировать TeamCity для создания эфемерных контейнеров Docker, в которых будет запущен Gradle.
JetBrains TeamCity позволяет вам с легкостью выполнять сборку вашего кода в облаке. Вне зависимости от того, работаете ли вы полностью в облаке или используете гибридную конфигурацию (локальные и облачные машины), TeamCity возьмет на себя все сложности управления этим процессом.
Бывает ли так, что ваша очередь сборки становится чрезмерно длинной? Облачные агенты TeamCity упрощают запуск сборки на Google Compute Engine. С помощью плагина Kubernetes, вы также можете использовать TeamCity для динамического создания контейнеров в Google Kubernetes Engine для ваших сборок.
Облачные агенты TeamCity способны динамически добавлять и удалять билд-агенты в соответствии с вашими потребностями. Можно смешивать различных вычислительных провайдеров: TeamCity способен динамически добавлять билд-агенты локально с помощью vSphere, также поддерживаются AWS, Google Cloud Platform и Azure. С помощью стороннего плагина можно также динамически создавать агенты в частном облаке OpenStack.
TeamCity предоставляет мощные механизмы непрерывной интеграции и непрерывного развертывания, работающие «из коробки».
«Мы очень довольны TeamCity, полностью работающем на Google Cloud Platform. Мы полностью перешли с собственной билд-фермы TeamCity (на основе Xen) на аналогичную ферму TeamCity, работающую на Compute Engine на GCP, около двух лет назад. И ни разу не пожалели».
Из-за сложного устройства современных облачных сред порой трудно локально воспроизвести определенную ошибку. Поэтому мы добавили возможность анализировать трассировки стеков, которые поступают из логов*. Просто скопируйте трассировку стека, вставьте ее в IDE и используйте возможности среды разработки JetBrains для быстрого перехода к соответствующим частям вашего приложения.
Если вы разрабатываете многопоточное Java-приложение, обязательно попробуйте инструмент анализа дампов потоков в IntelliJ IDEA.
* Доступно только для Java, Python, PHP, .NET, Ruby и Node.js
Плагин Cloud Tools для IntelliJ позволяет пойти еще дальше. При подключении к отладчику Google Stackdriver, вы можете получить полные трассировки стека (со значениями локальных переменных) из Java или Kotlin-приложения, запущенного в Google App Engine или Google Compute Engine. Просто установите точку останова в IDE, и вы получите снэпшоты из работающего приложения. Конечно же, точка останова на самом деле не останавливает (и не замедляет) приложение.
Если вы используете репозитории исходного кода Google Cloud, чтобы обезопасить свой код, плагин Cloud Tools для IntelliJ легко и быстро интегрируется с поддержкой VCS в вашей IDE. Произведите настройку и отправляйте изменения в проект Google Cloud так же просто, как и в GitHub.
TeamCity предоставляет мощные механизмы непрерывной интеграции и непрерывного развертывания, работающие «из коробки».