Статьи

Развитие в облаке: введение

люди развивающиеся в облаке

Каждый веб-разработчик должен настроить среду разработки — набор инструментов для работы, таких как

  • редактор кода
  • система контроля версий (например, Git или SVN)
  • инструменты сборки и / или менеджеры пакетов
  • DevOps и инструменты обеспечения (Docker, Puppet, Ansible, Vagrant)

… и так далее. Хорошая настройка имеет решающее значение для максимизации производительности.

Стеки разработки варьируются от разработчика к разработчику и могут сильно зависеть от области работы разработчика. Тем не менее, есть несколько довольно типичных настроек. SitePoint недавно опубликовал примеры локальных сред разработки для Linux , Windows и Mac .

В этой статье я рассмотрю четвертый тип среды разработки, полностью основанной на облаке. Обычно это происходит через сторонние сервисы, и есть из чего выбирать — например, Cloud9 , Codenvy и Nitrous .

Преимущества развития в облаке

При использовании облачной среды разработки вы фактически являетесь клиентом платформы разработки как службы (dPaaS), которая предлагает гораздо больше, чем просто онлайн-редактор кода.

Быстрая настройка
Во-первых, разработка в облаке сокращает время установки. Обычно вы можете использовать предпочитаемый вами фреймворк или использовать стандартный код, структурированный так, как должно быть, и все это делается только нажатием некоторых кнопок.

Доступ из любого места
Вы можете кодировать с любого компьютера, если у вас есть подключение к Интернету — используете ли вы последнюю версию iMac, старый нетбук или даже планшет.

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

Несколько установок
У меня недавно была проблема с приложением Scala . Зависимости просто не будут устанавливаться. Это произошло потому, что у меня была установлена ​​Java 8, а для некоторых зависимостей требовалась Java 7. Я не хотел переходить на более раннюю версию, поскольку это, вероятно, затронуло бы другие приложения, поэтому я решил продолжить с конфигурацией Vagrant. Ну, если ты в облаке, тебе не нужно этого делать. Вы можете требовать контейнер для каждого разрабатываемого вами приложения, и этот контейнер будет таким, каким вы его хотите (в данном случае Java 7).

Работа с Cloud9

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

Cloud9 предлагает 5 планов , один из которых бесплатный. В каждом плане используются контейнеры Docker, работающие в Ubuntu Linux, предлагающие полный терминальный доступ, множественный доступ для совместной работы и бесконечные проекты с открытым исходным кодом.

сотрудничество

сотрудничество

Очень удобно, что несколько разработчиков могут работать с одним и тем же исходным кодом. У каждого соавтора есть активный курсор, и они могут писать код одновременно.

На скриншоте выше вы видите двух пользователей, меня и jamesbond006 , которые одновременно jamesbond006 доступ к одному и тому же коду контроллера. Обратите внимание на линии, помеченные разными цветами в левой части номеров строк. Каждый цвет идентифицирует пользователя. @message в строке 8 подчеркнуто цветом, соответствующим jamesbond006 означает, что он — тот, кто написал код. Эта функция очень полезна и всегда побеждает TeamViewer! Вы можете использовать его, чтобы помочь другу, получить помощь от друга, и даже тестировать или обучать какого-либо студента / кандидата на работу удаленно.

Несколько браузеров

Несколько браузеров

Если вы являетесь веб-разработчиком или дизайнером внешнего интерфейса, вам иногда придется переключать браузеры, чтобы проверить, соответствует ли то, что вы написали, тому, что вы ожидаете увидеть. Скорее всего, у вас будут установлены Chrome, Firefox, Opera и, возможно, IE и / или Edge.

Cloud9 избавляет вас от установки целого стека веб-браузеров. Вы можете удаленно протестировать свой макет в основных браузерах — как настольных, так и мобильных. Вы также можете протестировать свое приложение на iPad, iPhone, Android и Kindle.

Работа с языками

Как и другие сервисы, Cloud9 поддерживает широкий спектр языков программирования и фреймворков, включая Ruby on Rails, различные PHP-фреймворки, Node.js, а также базы данных, такие как MySQL, PostgreSQL, Cassandra, MongoDB и другие.

Шаблоны Cloud9

Даже если вы хотите развиваться на языке, не указанном выше, например Scala, вы можете выбрать пользовательский шаблон и установить выбранный язык через терминал.

Рельсы

Вы можете создать приложение Rails, выбрав шаблон Rails или выбрав пользовательский шаблон и выполнив rails new в терминале.

Вы можете запустить приложение, выполнив это на терминале:

 rails s -p $PORT -b $IP 

Затем вы можете получить доступ к разрабатываемому вами приложению, <workspace>-<username>.c9.io в <workspace>-<username>.c9.io .

Чтобы установить гемы, просто добавьте их в свой Gemfile и запустите Gemfile bundle install в терминале — так же, как в локальной среде. rails generate и rake db остаются прежними, а миграции создают таблицы в файле db/development.sqlite3 по умолчанию. Если вы не хотите использовать SQLite, прочтите документацию о том, как настроить базу данных .

Дальнейшие примеры

Для большего количества примеров настройки языка я собрал несколько демонстраций на GitHub, включая C и C ++, PHP и MySQL, Gradle и другие.

Другие преимущества

Конечно, онлайн-редакторы кода, такие как Cloud9, поставляются с множеством полезных функций, которые можно ожидать от редактора. Это включает:

  • схематические представления и завершение кода (включая интеграцию с Emmet)
  • инструменты отладки
  • разделенный вид
  • темы
  • привязки клавиш
  • режимы популярных редакторов (VIM, Emacs, Sublime)
  • встроенное редактирование изображений.

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

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

FTP

В Cloud9 вы можете подключить сервер FTP или SFTP (S для SSH / Secure), выбрав Файл> Подключить сервер FTP или SFTP :

Монтирование FTP-сервера

На изображении выше вы можете увидеть, как смонтирован FTP-сервер. Я рекомендую использовать SFTP, который является более безопасным и использует SSH-соединение с хост-сервером. С SFTP вам не нужно указывать пароль; по умолчанию используется ключ SSH в рабочей области. (Я рекомендую вам прочитать о настройке ключа SSH, если концепция для вас нова.)

Нажмите, чтобы развернуть

Альтернатива FTP называется Push to Deploy . Большинство облачных сервисов, в том числе Google App Engine , Heroku и Azure, позволяют вам использовать Git (или аналогичный VCS) для переноса исходного кода в облачную виртуальную машину для развертывания. Поскольку Git уже включен в каждое рабочее пространство Cloud9, вы можете использовать его для развертывания приложения, отправив его на рабочий сервер.

Работа в автономном режиме

Если вы хотите продолжить работу в автономном режиме, это не проблема. Cloud9 позволяет загружать исходный код в виде .zip архива, а затем вы можете разрабатывать локально на своем компьютере. Он также поддерживает FTP. Вы можете отправить проект непосредственно на сервер разработки или производства.

Заворачивать

Облачные IDE стараются сделать разработчика максимально мобильным. Вся среда где-то далеко от вашей машины, что позволяет вам использовать ее, даже если вы используете старый компьютер или сидите за чужой машиной. Он поставляется с включенным Git, так что вы можете использовать его, чтобы поставить проект под контроль версий и / или работать с командой разработчиков.

Я бы порекомендовал использовать Cloud IDE в такие моменты:

  • Ваш компьютер не достаточно мощный, и ваше интернет-соединение стабильно (не регулярно отключается).
  • Вы хотите попрактиковаться в парном программировании с другим разработчиком, когда один из вас работает за пределами кампуса.
  • Вы не возражаете против использования редактора кода, который менее мощный, чем локально установленный редактор кода.
  • Вы быстро хотите раскрутить альтернативную среду без всех хлопот локальной установки.
  • Вы хотите показать кому-то демонстрацию сайта / веб-приложения / темы WordPress, которую вы разрабатываете. (Вам просто нужно запустить приложение и поделиться URL.)

В этой статье я в основном освещал функции онлайн-среды Cloud9, но она не единственная. Есть много альтернатив, включая Nitrous , Codeanywhere и Codenvy . Что вы выберете, конечно, будет зависеть от ваших конкретных потребностей и предпочтений.

Вы когда-нибудь разрабатывали в облаке? Если так, как ты это нашел? Какой сервис вы предпочитаете и почему?