Разработка в облаке.

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

Рабочее место

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

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

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

Организация для одного программиста нескольких рабочих мест на разных «железных» компьютерах потребует дополнительных расходов, и часть этих рабочих мест какое-то время будет простаивать, то есть эффективность их использования будет существенно ниже 100%.

Этого можно избежать, если рабочие места программистов создавать в компьютерном облаке, предоставляющем виртуальные вычислительные ресурсы.

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

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

При необходимости, состояние виртуального сервера можно откатить либо к моменту его создания, либо к промежуточному, если был сделан соответствующий снимок (snapshot) системы через запрос в службу поддержки.

С виртуальным сервером, расположенным в облаке, можно работать из любого места, в котором есть интернет.

Групповая работа.

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

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

Тестирование

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

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

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

Если базы небольшие и размещены в шаблоне тестового сервера, ничего дополнительного делать не придётся. А если база данных большая или предназначена для использования с нескольких компьютеров, её можно разместить на отдельном виртуальном сервере и также сохранить в виде шаблона.