company_banner

OpenVPN в Microsoft Azure для виртуального объединения подписок. Опыт GanttPRO — сервиса для управления проектами

    Привет! Сегодня мы расскажем о GanttPRO – онлайн-диаграмме Гантта для планирования, создания и управления проектами. Для своей работы команда сервиса в рамках гранта BizSpark использует инфраструктуру Microsoft Azure. У BizSpark есть особенность — когда компания вступает в программу, она получает до 8 аккаунтов Azure. Ежемесячно каждый из аккаунтов может потребить до $150. Часто этого достаточно, иногда — не хватает, особенно в случае с виртуальными машинами.

    В этой статье команда GanttPRO расскажет не только о конкретных действиях, которые позволят объединить виртуальные машины в разных подписках, но и о проекте в целом. Конечно, если вы опытный администратор или разработчик, вы сможете потратить время и разобраться. Однако — потратить время.

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

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

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

    Это столбчатая диаграмма, состоящая из полос, которые и являются задачами. У каждой полосы есть начальная и конечная точки. Т.е. это те моменты, где задача начинается и заканчивается. Соответственно, протяженность полосы – продолжительность задачи. Все полосы ориентированы вдоль временной оси.

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

    Онлайн-диаграмма Гантта GanttPRO также строится на ней. Интерфейс похож c Google Docs, как внешне, так и в простоте использования, как если бы вы в Google Docs внезапно решили начать управлять проектами и работать с командой. Однако Google пока не предоставляет подобного решения.



    Просто постановка задач и контроль над их выполнением – это базовые функции диаграммы. На деле же управление требует много других полезных фич для простоты, наглядности и удобства. Например: задачи редко носят обособленный характер. Как правило, часть из них взаимосвязана. Значит, в инструменте должна быть функция «Установить зависимость».

    Или еще пример. Менеджеру нужно, чтобы проект всегда был под рукой для его обсуждения с участниками или включения в презентацию. Значит, без функции «Экспорт» не обойтись. Поэтому классические функции диаграммы Гантта в GanttPRO значительно расширены. Здесь пользователь может не только создавать задачи и распределять их, но и выставлять зависимости между ними, следить за прогрессом каждой отдельной задачи и проекта в целом, создавать вехи и определять критический путь.

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

    Также здесь есть автоматическое планирование. Функция позволяет избежать многочасовой монотонной работы. Сервис автоматически на основе связей рассчитывает порядок задач, длительность и прогресс групп задач и проекта в целом, подсказывает, когда проект завершится и какие этапы опасны из-за потенциального возникновения задержек.

    Почему было принято решение создать GanttPRO

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

    Сервисом уже пользуется свыше 190 000 пользователей, которые создали более 210 000 проектов по всему миру. Его посчитали полезным и удобным для project management как где-то далеко в США, Канаде, Британии, Австралии и Германии, так и уже в управлении проектами где-то рядом в России, Беларуси и Украине.



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

    Что сделано в GanttPRO и чего ждать в будущем

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

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



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

    Почему в GanttPRO пользуются облачным сервисом Microsoft Azure:

    • Быстрая настройка в течение нескольких минут;
    • Стабильная производительность;
    • Возможность быстро масштабироваться;
    • Высокий уровень безопасности — все пароли и другая информация шифруются;
    • Функция обнаружения угроз;
    • Собственное виртуальное пространство.

    Так сложилось, что разработчики в продакшене используют linux-машины. Так им привычнее и удобнее. Оставался вопрос, как поднять VPN сеть между ними в инфраструктуре Azure.
    После пары неудачных попыток и нескольких советов от специалистов Microsoft команда пришла к решению, с которым успешно работает уже более года. И она делится с вами инструкцией о том, как все настроить:

    Создаем VM для VPN gateway

    В «portal.azure.com» выбираем “+New” → «Virtual machines» → «Ubuntu Server 14.04 LTS» → «Create»



    Configure basic settings
    «Name» — openvpn-gateway
    «User name» — ubuntu-admin
    Выбираем пункт «SSH public key»
    Копируем «SSH public key»
    «Resource group» — newgroup
    «Location» — North Europe
    → OK



    Size
    «Choose virtual machine size» — A1 Standard
    → Select

    Configure optional features
    «Disk type» — Standard
    «Public IP address» — Create new → Static

    «Network security group» → Create new → Создаем новую группу и добавляем правила доступа для 1194 UDP Any
    → OK → OK



    Ждем, пока создается виртуальная машина. В свойствах виртуальной машины можно посмотреть полученный IP.



    Подключаемся к только что созданной виртуальной машине.



    Для установки и настройки программ залогинимся под root при помощи sudo

    $ sudo -i

    Обновить список пакетов в репозитории

    # apt-get update

    Установка необходимых пакетов и настройка

    # apt-get install openvpn easy-rsa
    # mkdir /etc/openvpn/easy-rsa
    # cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa
    # mv /etc/openvpn/easy-rsa/easy-rsa /etc/openvpn/easy-rsa/2.0 

    Генерация ключей сервера

    # cd /etc/openvpn/easy-rsa/2.0
    # cp openssl-1.0.0.cnf openssl.cnf
    # source ./vars
    # ./clean-all
    # ./build-ca
    Отвечаем на вопросы интерактивного меню.



    # ./build-key-server <название ключа> (в данном примере openvpn-gateway)

    Отвечаем на вопросы интерактивного меню

    # ./build-dh

    Копируем ключи

    # cp -r /etc/openvpn/easy-rsa/2.0/keys/ /etc/openvpn/

    Пишем файл конфига для сервера /etc/openvpn/server.conf следующего содержания:

    port 1194 
    proto udp
    dev tun 
    ca /etc/openvpn/keys/ca.crt
    cert /etc/openvpn/keys/openvpn-gateway.crt
    key /etc/openvpn/keys/openvpn-gateway.key
    dh /etc/openvpn/keys/dh2048.pem
    server 10.8.0.0 255.255.255.0 (подсеть и маска)
    client-config-dir ccd
    ifconfig-pool-persist ipp.txt
    cipher BF-CBC
    client-to-client
    keepalive 10 60 
    comp-lzo
    max-clients 20
    user nobody
    group nogroup
    persist-key
    persist-tun
    status openvpn-status.log
    log /var/log/openvpn.log
    verb 3
    mute 20

    создаем папку сcd

    # mkdir /etc/openvpn/ccd

    Перезапускаем openvpn

    # service openvpn restart

    После перезапуска у сервера должен появиться сетевой интерфейс tun0 с ip 10.8.0.1



    Сервер готов.

    Настройка клиентов

    На сервере генерируем ключ для клиента

    # cd /etc/openvpn/easy-rsa/2.0
    # source vars
    # ./build-key-pkcs12 <имя клиента>

    Отвечаем на вопросы интерактивного меню. На клиента нужно установить пакет openvpn.

    # apt-get install openvpn

    Скопировать сгенерированный на сервер файл <имя клиента>.p12 в папку /etc/openvpn
    Написать файл конфига для /etc/openvpn/openvpn-gateway.conf следующего содержания:

    dev tun
    proto udp
    remote <ip адрес сервера или доменное имя> 1194
    client
    resolv-retry infinite
    pkcs12 <имя клиента>.p12
    ns-cert-type server
    comp-lzo yes
    persist-key
    persist-tun
    status openvpn-status.log
    log /var/log/openvpn.log
    verb 3
    keepalive 10 60

    Перезапускаем сервис.

    # service openvpn restart

    После перезапуска у клиента должен появиться сетевой интерфейс tun0 с ip 10.8.0.х по ip 10.8.0.1 должен отвечать наш сервер.

    Работать в GanttPRO с Microsoft Azure удобно. Microsoft Azure дает нам возможность быстро масштабироваться и не волноваться за сохранность данных. При этом выбор стека технологий остается за нами ;)

    Спасибо!
    • +17
    • 2.8k
    • 2
    Microsoft
    547.00
    Microsoft — мировой лидер в области ПО и ИТ-услуг
    Share post

    Similar posts

    Comments 2

      0
      Скажите, правильно ли я понимаю, что если машина с VPN gateway по каким-либо причинам упадет, то упадет и вся сеть? Достаточно ли при создании виртуалки с впн сервером создать availability set, чтоб избежать подобного?
        0
        Да. В данной ситуации сервер openvpn является узким местом, и в случае его отказа пропадет соединение между всеми серверами, подключенными по vpn. availability set позволяет создавать 2 и более серверов в разных группах доступности. Это дает большую гарантию, что все сервера, входящие в текущий availability set, не отключаться одновременно. Но насколько мне известно, бесплатная реализация openvpn не предусматривает настройку резервного шлюза в сети vpn. Тут надо искать другое решение для vpn.

      Only users with full accounts can post comments. Log in, please.