Более 100 полезных сервисов для разработки на все случаи жизни

Облачные сервисы очень удобные для разработки проектов. Представим весь процесс в виде 5 этапов и рассмотрим сервисы для каждого из них.

Облачная инфраструктура

1. Сотрудничество

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

Управление жизненным циклом ПО

Хорошим примером послужит Team Foundation Server – продукт для совместной работы над проектами ПО с поддержкой различных IDE, учетом сбора данных, формирования отчетов и других функциональных возможностей. Другой удобный инструмент для управления проектами – это Basecamp: совместим со многими виджетами и приложениями. Их много, и каждый продукт обладает своими преимуществами, но основная задача одна: управление проектом на этапах его жизненного цикла.

Управление жизненным циклом ПО

Связь и ChatOps во время разработки

Работа с инфраструктурой нередко организовывается через чат. Так можно просматривать изменения, поддерживать общение и запускать команды в режиме реального времени. Один из популярных продуктов, Slack чат, легко настраивается на взаимодействие с другими приложениями, такими как Google Docs и Dropbox. В интеграции поможет Hubot – чат-бот, разработанный GitHub. Для таких приложений характерно удобное разделение на комнаты, а в платную версию включены видеозвонки.

Связь и ChatOps

Обмен знаниями

Знание – сила, и ряд сервисов тому подтверждение. К примеру, на Reddit каждый зарегистрированный может оставить ссылку на полезную информацию, а самые популярные материалы появляются на заглавной странице. Или GitHub – настоящая палочка-выручалочка для поиска полезных материалов и совместной разработки с использованием VCS Git. Приятным дополнением послужит дискуссионная платформа Discourse с открытым исходным кодом.

Обмен знаниями

2. Создание

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

SCM/VCS

Облачная инфраструктура включает в себя и системы контроля версий типа Git или Mercurial – незаменимых помощников в разработке: они позволяют откатываться к прошлым версиям, в которых еще не была допущена ошибка или не внесено какое-то изменение. Такие сервисы кажутся бесполезными новичкам, которые создают множество копий своего проекта, но при работе с большим кодом без SCM/VCS не обойтись.

SCM/VCS

CI

Интеграция является завершающим этапом в работе нескольких человек над разными частями проекта, и без использования сервисов по непрерывной интеграции данный этап может сильно задержать окончание работ. Такие сервисы, как Snap CI, Jenkins или Bamboo снижают трудоемкость интеграции. Первый поддерживает сборки по расписанию, бесшовную интеграцию GitHub, имеет понятную визуализацию стадий разработки и многое другое.

CI

Сборка

Apache Ant – инструмент сборки, написанный на Java, но направленный не только на этот язык: «Муравей» широко используется и для разработки ПО, и для веб-разработки. Еще один фреймворк для автоматизации сборки проектов – это Maven. Он не зависит от ОС и предоставляет возможность сборки из командной строки. Но какой бы инструмент для сборки вы ни выбрали, сам инструмент обязан быть.

Сборка

Управление БД

Облачная инфраструктура также затрагивает работу с базами данных. Зачем это нужно? Нередко появляется необходимость обновить текущую БД, сохранив при этом ее содержимое. А еще может потребоваться удалить базу и восстановить ее с нуля так же чисто, как код при помощи VCS. Продукты вроде DBDeploy как раз позволяют управлять изменениями баз данных, используя при этом большой функционал возможностей.

Управление БД

3. Облачная инфраструктура: тестирование

А вот здесь самое интересное, ведь бывает тестирование статичного контента, ссылок, функциональности и т. д. Следовательно, ассортимент велик, а большой выбор – это всегда хорошо. Например, JUnit многофункционален: и для простых юнит-тестов сгодится, и для интеграционных. Еще есть удобный фреймворк TestNG, после которого не особо хочется возвращаться к JUnit. Можно долго говорить об отличиях и преимуществах разных продуктов, но каждый из них хорош по-своему.

Облачная инфраструктура: тестирование

4. Развертывание

Действия, направленные на подготовку ПО к использованию, должны выполняться строго проверенными качественными сервисами.

Процесс развертывания

XL Deploy стандартизирует и автоматизирует развертывания программных обеспечений в любых средах. У Octopus Deploy похожий функционал, но для некоторых разработчиков он может показаться проще по сравнению с XL Deploy за счет более удобного интерфейса, в котором выдержан минимализм. Также есть Rundeck: с ним развертывание упрощается еще больше, так как нет необходимости в очередном клиентском ПО на нодах.

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

Управление конфигурацией/Резервирование

Новые сценарии нужны в случаях, когда необходимо обновить версии или преобразовать архитектуру, внести в нее изменения. Программы-конфигураторы вроде Chef и Puppet разработаны специально для этого. Облачная инфраструктура включает и ряд других сервисов: все зависит от личной интерпретации удобства и опыта работы с теми или иными продуктами.

Управление конфигурацией/Резервирование

Управление артефактами

Разберем принцип работы на примере Bower. Этот инструмент управляет пакетами, используемыми разработчиком в его проекте. С Bower можно забыть о неэффективной загрузке файлов в проект вручную. Почему это важно? Работа должна быть максимально автоматизирована, что ускорит процесс. Например, не нужно искать в интернете файлы для дальнейшей установки: достаточно запустить команду, которая сама найдет и сама все установит.

Управление артефактами

5. Запуск

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

Cloud/IaaS/PaaS

PaaS-сервис Heroku предназначен для запуска различных приложений. С ним не придется думать о масштабировании и дополнительных комплексных настройках. Для запуска нужно залить ПО на поддерживаемом языке, выполнить несложную настройку и запустить. Также облачная инфраструктура богата на продукты вроде MS Azure, что представляет собой платформу облачных вычислений. Еще стоит выделить OpenStack, Appfog, Rackspace и прочие инструменты.

Cloud/IaaS/PaaS

Механизмы управления и планирования

Один из таких механизмов, Docker Swarm, представляет собой кластер Докеров, объединенных под общим управлением. При этом хосты могут добавляться, а емкость кластера – увеличиваться. Apache Mesos также наделен функцией управления кластером. Этот менеджер ресурсов с открытым кодом делает проще запуск ПО на масштабируемом кластере серверов. А вот Nomad кое в чем лучше Docker, так как в Nomad описание инфраструктуры производится в одном файле.

Механизмы управления и планирования

BI/Мониторинг/Запись данных

Служба мониторинга для облачных приложений Datadog объединяет данные серверов, баз данных, инструментов и сервисов для единого представления. New Relic также предоставляет удобный мониторинг с отслеживанием путей взаимодействия с программой. Все эти средства аналитики приложения следят за различными операциями, чтобы уведомлять о возможных проблемах, создавать отчеты по развертыванию, доступности и другим параметрам.

BI/Мониторинг/Запись данных

Также рекомендуем Вам посмотреть:

Что же такое виртуальный сервер, и с чем его едят
Подборка материалов для изучения баз данных и SQL
Гайды по работе с Git

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ