Главное Авторские колонки Вакансии Образование
271 2 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Проблемы программистов-фрилансеров и как их решить

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

По данным глобального опроса Payoneer, программисты-фрилансеры зарабатывают больше многих других специалистов, работающих на удаленке. Достаточно вспомнить историю бывшего инженера Google Джеймса Найта (James Knight). После ухода из компании 27-летний девелопер смог увеличить свой заработок вдвое, параллельно путешествуя с женой по Европе.

Фриланс постепенно становится не просто символом дауншифтинга — разработчики-фрилансеры зарабатывают не хуже своих коллег из корпораций, зачастую работая с большим комфортом. Но популярность этого формата приводит к растущей конкуренции среди самих фрилансеров — к примеру, на фриланс-бирже Toptal.com отбор проходят лишь 3% кандидатов.

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

Одной из таких технологий является IaaS.

1. Тестирование в облаке: качественный QA позволяет не потерять клиентов

По данным исследования компании AppDynamics, занимающейся APM-технологиями, 90% пользователей перестают работать с приложениями из-за технических сбоев. Поэтому тестирование ПО является критически важной частью работы разработчика.

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

Помочь с решением этой проблемы способен IaaS-провайдер, который дает возможность быстро развернуть необходимую тестовую среду. Технический специалист и резидент Quora Спенсер Грин (Spencer H. Greene), например, отмечает, что нагрузочное тестирование приложений в системе, которая один в один повторяет целевую, позволяет наиболее точно оценить их работоспособность.

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

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

Согласно исследованию Gartner, в 2015 году уже 80% организаций в той или иной степени задействовали облачные структуры для своих проектов. Разработка и тестирование в облаке постепенно становятся естественной практикой в ИТ-индустрии, а потому скоро могут стать стандартом и для фрилансеров.

2. Масштабирование: когда клиентом становится крупная компания

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

Одним из плюсов IaaS-провайдеров является гибкость предоставляемых услуг. Разработчики могут арендовать облачную инфраструктуру любого размера: от одного сервера до целой сети связанных между собой виртуальных машин. Стоимость напрямую зависит от мощностей арендуемого оборудования, а срок аренды может составлять как день, так и час. Такая гибкость позволяет фрилансеру экономить на инфраструктуре и платить за вычислительные ресурсы только тогда, когда они нужны для работы.

IaaS-провайдеры также предоставляют дополнительные сервисы, которые могут помочь разработчику еще лучше адаптироваться под конкретную задачу. Например, в 1cloud существует услуга Объектное хранилище, с её помощью клиенты могут хранить практически неограниченное количество данных. Это могут быть как резервные копии файлов, так и статическое содержание веб-сайтов или записи систем видеонаблюдения (если вы, например, работаете над созданием систем обеспечения безопасности).

3. Удаленный доступ: на случай, если дома отключили свет

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

В конце января один из хостинг-ресурсов LKML — LKML.org — оказался недоступен. Сервер, на котором размещался сайт, стоял дома у разработчика проекта Джаспера Спаанса (Jasper Spaans). Когда Джаспер находился в отпуске, у него дома отключили свет, и из-за скачка напряжения материнская плата сервера сгорела. Поэтому он не смог подключиться удаленно и поднять сайт.

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

  • Разработчик не тратит время на настройку защищенного удаленного доступа.
  • Инфраструктура облачного провайдера обладает высокой доступностью — 99,9% и более. При этом провайдеры, в том числе и 1cloud, предлагают денежную компенсацию в случае нарушения заявленных показателей доступности и требований SLA.

Причем IaaS-провайдер может обеспечить несколько вариантов удаленного доступа на случай неработоспособности одного из них. Недавно Microsoft заявили об обнаружении уязвимости в протоколе удаленного рабочего стола (RDP). Компания выпустила заплатку, однако она блокирует доступ к системе, на которой патч не был установлен. При этом справедливо и обратное — обновлённая операционная система отказывается показывать свой рабочий стол не обновлённому RDP-клиенту.

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

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

4. Защита данных: бэкапы сохраняют время и нервы

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

Такая ситуация — кошмар для любого девелопера, особенно для разработчика-фрилансера, которому важно поддерживать свою репутацию на конкурентном рынке. Чтобы обезопасить себя, программисты-фрилансеры закупают сетевые хранилища и настраивают бэкапы, которые отправляются в несколько разных мест одновременно. Самостоятельно поддерживать такую систему дорого и времязатратно, плюс это отвлекает от разработки.

Облачные IaaS-провайдеры в данном случае помогают решить эти проблемы. Они освобождают программиста от необходимости настраивать бэкапы самостоятельно — достаточно указать глубину хранения копий. В 1cloud, например, параметр глубины хранения резервных копий кратен 7 дням. Само же резервное копирование выполняется ежедневно на территориально удаленный дисковый массив.

5. Коллаборация: если нужно работать над одним проектом в команде

Согласно исследованию Intuit, к 2020 году в США фрилансеры составят 40% рабочего населения. Малые бизнесы будут формировать целые сети фрилансеров, нанимая удаленых специалистов из самых разных сфер. В то же время 80% больших корпораций планируют значительно увеличить использование нештатной рабочей силы.

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

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

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем