Блог компании RUVDS.com

Настоящий сервер в настоящих облаках: «Слабоумие и отвага!»

Выражение «сервер в облаках» стало настолько устойчивым, что мы, хабражители, уже не воспринимаем его как что-то буквальное. Между тем, датацентры, в которых находятся облачные хранилища, находятся далеко не в облаках, а иногда и вовсе под землей, в старых бункерах или укрепленных командных пунктах.
Мы, группа энтузиастов из компании RuVDS, собравшись в очередной раз за кружкой пятничного пива, подумали: «А почему бы нам не сделать сервер в облаках? Настоящий сервер и в настоящих облаках?».

Серега (он у нас настраивает Linux и его главное правило — «не трогай, если работает»), поперхнулся пивом. А когда откашлялся, сказал добродушно: «Ребята, закусывать надо!». Закуски, действительно, не несли очень долго, пятничный вечер, полный бар, не успевали официанты обслуживать...
Компания RuVDS проводит конкурс с крутыми призами
Но тут Володя (наш менеджер проектов) вспомнил про «Проект Loon» (Project Loon), разрабатываемый в лабораториях Google X, целью которого является предоставление доступа в Интернет жителям сельской местности и удаленных регионов. В проекте планируется использовать высотные аэростаты, дрейфующие в стратосфере на высоте около 18 км, для создания беспроводной сети со скоростями, сравнимыми с 4G и LTE.
У Володи есть знакомый, который работает пилотом в компании, запускающей воздушные шары, и он мог бы с ним договориться протестировать оборудование.
Про оборудование придумал Петр: «Сейчас сервер можно и на Raspberry Pi 3 сделать...»
Итак, наша идея начала обретать форму. И когда принесли закуски к пиву, на салфетке уже была нарисована первая схема проекта.
Cхема немного облагорожена нашим дизайнером, чтобы у вас не вытекли глаза, Володя — хороший сисадмин, а вот художник — не очень
А причем тут конкурс?
Через несколько дней мы посчитали, сколько стоит собрать это всё, оплатить пилота и запуск аэростата, и немного приуныли.
Мы пошли в отдел маркетинга и рассказали им идею. Они почесали голову, сказали, что мы, конечно, больные на всю голову, но идея клевая. Только чтобы выделить на это бюджет, надо привлечь как можно больше хабражителей, тогда будет хоть какое-то оправдание этих трат перед шефом. Ну там, KPI, CPC и другие страшные трехбуквенные заклинания, которыми так любят отшивать любую интересную идею эти маркетологи.
В этот же момент по принципу «случайности не случайны», команда RUVDS познакомилась с Сашей Бабицким и его школой яхтинга Seanation. Саша как раз начинал активную подготовку к традиционной регате для начинающих шкиперов AFR и предложил нам в нее вписаться объединенной командой Хабра и RUVDS. В этот момент в наших головах идея начала обретать полностью завершенную форму: облака, ветер, паруса, море...Регата! И вопрос о том, как собрать побольше хаброжителей
вокруг проекта, получил ответ: мы решили сделать конкурс, и в качестве главного приза разыграть не что иное, как бесплатное участие в Регате в составе объединенной команды RUVDS и Хабра. Семь дней среди греческих островов на яхте, азарт соревнований и кайф от отдыха с неповторимым средиземноморским колоритом — это ли не приз мечты?!
Да, стоимость проекта выросла на пару нулей, но теперь это всё выглядело не как безумный гиковский эксперимент (каковым он, по сути, и является, не будем скрывать), а как безумная маркетинговая акция!
Итак, теперь ты всё знаешь.
Да, мы зашли слишком далеко, и нам немного страшновато — всё начиналось с простого трепа за кружкой пива, с этого ветра перемен (кто его знает, может быть, в пивную в тот момент зашла красивая девушка и пробудила в нас дух путешественников, первооткрывателей, завоевателей...).
Но теперь, за неделю до вылета, мы нервно хихикаем и в шутку повесили соответствующий демотиватор с Чипом и Дэйлом. #понятьипростить
Ну ОК, давайте дальше!
Итак, конкурс. Мы разбили его на две части. Первая — это простое тестирование, которое не будет препятствием практически любому хабражителю. После прохождения этой части ты сразу получишь приятный бонус — код на скидку в 15% на услуги виртуальных серверов.
Но задача первой части — не впарить тебе скидку (если ты читаешь наш блог на Хабре, то и так знаешь, что мы вставляем коды со скидкой почти в каждом посте), а отсеять случайных прохожих. Конкурс мы затеваем исключительно для «своих». Потому что плыть неделю на яхте хотелось бы с нормальным человеком, разделяющим наши ценности (да простят нас маркетологи и пиарщики, тусующиеся на VC.RU).
А вот вторая часть одновременно и простая, и сложная. С одной стороны, во второй части тебе нужно будет лишь указать точку на карте (да, всего один клик). Для участия в конкурсе необходимо авторизоваться на Хабре
А куда именно нужно будет направить свой указующий перст — вот в этом и состоит задачка.
Но обо всем по порядку.
Мы собрали и настроили сервер и модуль радиосвязи. «Сердцем» системы стал микросервер на основе Raspberry Pi 3. К нему мы подключили:
  • широкоугольную камеру, чтобы вы могли полюбоваться местностью под воздушным шаром с высоты, на которую заберётся не всякая птица;
  • GSM-модем для передачи координат через сотовую связь. В него мы вставим две SIM-карты, основную и дублирующую;
  • если сотовый канал накроется, отслеживать сервер мы будем через GPS-трекер;
  • наконец, самая важная приблуда (после самого сервера) — бортовой компьютер, собирающий данные с датчиков и камеры.
Вообще, это только звучит легко и просто — «собрали и настроили». На самом деле, ушло две недели работы и ведро нервных клеток, пока связка железок наконец заработала, как нужно. То камера не показывает, то координаты не передаются, то сервер не пингуется.
Подробнее о «железном» этапе можно почитать в этом посте.
28 августа (а может и чуть позже, всё будет зависеть от погоды), мы собираемся уложить это оборудование в корзину воздушного шара и взлететь.
Наш мобильный WiFi-джип, будет ловить сигнал и перемещаться по траектории полета воздушного шара. По возможности, конечно. Достаточно часто бывает, что сделать это невозможно из-за особенностей сети автодорог, которые мы, в отличие от шара, не можем игнорировать.
Что нужно сделать, чтобы выиграть?
Смотри, тема такая. Мы не знаем, в каком месте сервер упадет приземлится. Этого не знает даже пилот. Потому что там очень много неизвестных, начиная от погодных условий и заканчивая силой и направлением ветра в конкретном высотном эшелоне.
Это получается офигенный генератор истинно случайных чисел. Даже достоверно зная розу ветров в момент запуска, угадать место падения («ПРИЗЕМЛЕНИЯ!», громко поправляет нас пилот, крестясь) хотя бы с погрешностью 500 метров не сможет даже IBM Watson (а вообще, не будем зарекаться, вдруг сможет?).
С другой стороны, выбрать точку па... приземления можно более-менее осознанно: например, нарыть историю метеонаблюдений в Дмитрове, прикинуть направление дрейфа, и ткнуть в карту хотя бы в каком-то секторе от места старта. Но это так, не подсказка, а импровизация на салфетке. Но если что, у нас есть кулёк полезных ссылок.
Ты можешь использовать вот этот или вот этот сервис для расчета прогноза приземления нашего шара.
Для прогнозирования траектории можно использовать вот этот онлайн-сервис.
Исходные данные для расчета:
  1. Стартуем 28 августа (или в один из последующих дней, всё будет зависеть от погоды).
  2. Полет продлится 1,5 часа, из них 5 минут займёт набор высоты после взлета, 10 минут до истечения 1,5 часа и 10 минут после — на посадку, т.е. полет в высотном интервале, отличном от заданного. Указанные 20 минут — как максимум.
  3. Высотный интервал 400-700 метров MSL, исключая взлет и посадку.
    Место взлета — Дмитровский район Московской области.
    Осталось дело за малым: поставить точку на карте и угадать, где мы приземлимся.
    Те трое счастливчиков, чьи точки на карте окажутся ближе всего к месту посадки, и займут первые три места.
Ты можешь не ждать запуска и поставить точку прямо сейчас.
Итак, поехали (или, скорее, «полетели», а потом и «поплыли»!)
Комментарии 18
    0
    А кто из ТМ поплывёт? Бурум, или даже сам Денискин? :)
      +2
      Бурум всегда за любой движ :)
      0
      Этого не знает даже пилот.

      А пилот просто сидит в корзине, или ещё и сервак админит? И есть ли какая-то граница, дальше которой шар точно не имеет права лететь? Что будет, если полётное время будет заканчиваться где-нибудь в городской черте или на болотах?
        0
        Пилот может поднять или опустить аэростат, а направление задает ветер. Соответственно пилот определяет лишь удобное место, чтобы это была не дорога например.
        0
        В каком браузере работает страница конкурса? В FF v.61 не отображается карта.
        Рискну предположить, что в Хроме.
          0
          Карта у нас стандартная — API Яндекс.Карты. Поэтому это скорее вопрос к ним. Попробуйте через Хром ))
            0

            Подтверждаю, в FF не работает. Думаю, дело не в Яндексе.

              0
              У нас стоит FF v.61.0.2 все работает.
          +1
          Сейчас метку на карте можно двигать. Лайфхак: можно отслеживать при запуске направление полёта и передвигать метку, повышая шансы на победу :)
            +1
            За несколько часов до старта (в 12.00 28-го августа) мы заморозим все передвижения )) так что пока — да, можно двигать, делать расчеты.
            +2

            Как житель данного региона могу предположить.Если запуск планируется возле канала, то движение будет в основном в сторону Москвы, практически вдоль канала. Если со стадиона, то это направление Клинско-Дмитровская гряда это в сторону Хотьково.


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

              0
              Chrome Версия 68.0.3440.106 (Официальная сборка), (64 бит)
              Карта не отображается и ошибки в консоли:

              pack.js:3818 jQuery.Deferred exception: ymaps is not defined ReferenceError: ymaps is not defined
              at HTMLDocument.initializeMaps (https://habr.ruvds.com/assets/js/pack.js:10777:5)
              at mightThrow (https://habr.ruvds.com/assets/js/pack.js:3534:29)
              at process (https://habr.ruvds.com/assets/js/pack.js:3602:12) undefined
              jQuery.Deferred.exceptionHook @ pack.js:3818
              pack.js:3827 Uncaught ReferenceError: ymaps is not defined
              at HTMLDocument.initializeMaps (pack.js:10777)
              at mightThrow (pack.js:3534)
              at process (pack.js:3602)
                0
                Почитал когда запускают шары, прикинул время запуска, рассчитал примерное место — зашел в комменты, узнал что запуск после 12. Все по новой)
                А вообще, удалите свою метку.
                  0
                  Хм, а если он взлетит и сразу упадет?)
                    0
                    Простите, приземлится
                      0
                      Выиграет тот, чей маркер будет ближе всего)
                    +1
                    На заметку: FF и Хром (не проверял) блокируют Я.карты при настройке «защита от отслеживания». Её можно отключить для отдельного сайта.
                      0
                      А где можно трансляцию смотреть?

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.