Идеальная среда разработки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Люди

Макетирование

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

Это означает, что разработка сложной компьютерной системы не будет успешной без её достаточно полного макетирования. Но не покупать же специально для макета новые «железные» серверы… И что с ними делать после передачи системы заказчику?..

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

Макетирование

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

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

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

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

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

Инструменты

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

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

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

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

При таком подходе: 1) старая система будет работать до окончания проверки работоспособности новой; 2) переключение на новую систему может быть очень быстрым (мгновенным); 3) сохранится возможность обратного переключения на старую систему, если в работе новой — выявятся какие-то недостатки.

Сервер

Заключение

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

Облако 1cloud даёт возможность избежать такой ситуации.

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