Что мы сделали для вас в декабре



Поздравляем вас с прошедшими зимними праздниками!

Небольшой итог 2019: по нашей программе грантов для стартапов и некоммерческих организаций стартапы «Сколково» получили более 11 млн ₽. Мы рады, что можем помогать развитию российских технологических компаний.

На @Kubernetes Conference мы рассказали о том, как готовим наш Kubernetes as a Service. А также сняли несколько огненных интервью про настоящее и будущее DevOps на DevOpsDays Moscow.
www.youtube.com/watch?v=qkfnCtp-qes&list=PLQzTaxmOHjnv0tP_HDxsIvcuac2kkIJTQ
www.youtube.com/playlist?list=PLQzTaxmOHjntGGX1TOaAcmHlZBw0VByhZ

Теперь о платформе MCS
Mail.ru Industrial IoT Platform, новый сервис для интернета вещей
Мы запустили облачную платформу промышленного интернета вещей для быстрой разработки IoT-решений.
mcs.mail.ru/iot/

Быстрое создание основных сервисов

Теперь в личном кабинете пользователя есть главная страница, на которой можно быстро создать самые популярные сервисы, не заходя в дополнительные разделы.
mcs.mail.ru/app/main/

Инкрементальные бэкапы для виртуальных машин
Теперь при создании виртуальной машины можно включить создание не только полных, но и инкрементальных бэкапов. Инкрементальные бэкапы занимают меньше места в S3-хранилище и быстрее создаются.

Сети: MTU 1500
MTU в приватных сетях стал =1500. Раньше MTU был другой, но многие приложения при запуске настроены именно для MTU=1500. Это приходилось учитывать при настройке приложений. Теперь с этим не будет проблем.

Email-уведомление о превышении расходов

Можно настроить получение уведомления при превышении ежемесячных расходов выше заданного порога, чтобы вносить коррективы в настройки проектов при перерасходах. Это может быть полезно для отслеживания превышения расходов при пиковых нагрузках и авто-масштабировании. Настроить оповещения можно в разделе Баланс > Ограничения.

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


Новый калькулятор с выгрузкой PDF
Теперь на одной странице можно посчитать стоимость сразу нескольких сервисов в разных конфигурациях. Чтобы можно было распечатать или переслать результаты расчёта, можно их скачать в виде файла PDF.
mcs.mail.ru/pricing/

Почитать
→ Хабр: Как сделать свой автоскейлер для кластера. Эксперт New Professions Lab о решении проблемы неравномерной загрузки кластера с помощью создания автоскейлера и облака Mail.ru Cloud Solutions. habr.com/ru/company/newprolab/blog/482198/
→ Завтра облачно: Защита персональных данных в облаке. Как сделать все по закону 152-ФЗ. mcs.mail.ru/blog/zashchita-personalnyh-dannyh-v-oblake-kak-sdelat-vse-po-zakonu
→ Завтра облачно: Пять важных фактов про анализ неструктурированных данных. mcs.mail.ru/blog/pyat-vazhnyh-faktov-pro-analiz-nestrukturirovannyh-dannyh

Три факта и девять тезисов про интернет вещей в Яндекс.Облаке



Мы пересмотрели еще раз выступления с Yandex Scale и подготовили для вас девять главных тезисов про интернет вещей (internet of things, IoT) в Яндекс.Облаке.

Три факта о нашем IoT:
  • 72 рубля стоит 1 ГБ или 1 млн сообщений, отправленных в облако с помощью сервиса Yandex IoT Core, следующие гигабайты еще дешевле.
  • Миллионы устройств — масштаб работы наших надёжных и безопасных, отказоустойчивых и масштабируемых сервисов.
  • Экономия ресурсов за счет использования интегрированных между собой платформенных сервисов — вы решаете свою бизнес-задачу и платите только за то, что действительно вам нужно.

Основные тезисы
  • Масштабный сценарий. Платформа Яндекс.Облако запускает свой сценарий интернета вещей. Почему сценарий? Потому что интернет вещей — всегда интеграция, а не отдельное решение. С Яндекс.Облаком в рамках проектов интернета вещей вы можете использовать больше разнообразных сервисов, которые отлично взаимодействуют между собой и позволяют эффективнее, дешевле и надёжнее реализовывать ваши сценарии для работы с устройствами.
  • Удобный сервис. В основе нашего сценария лежит новый сервис Yandex IoT Core, который выполняет роль универсального инструмента для создания решений в области интернета вещей. Сервис позволяет надёжно и безопасно передавать данные между облаками и устройствами по протоколу MQTT. Обеспечивает безопасную авторизацию и управление доступом. Обмен данными между устройствами происходит только после аутентификации, обеспечивается шифрование данных по всем точкам подключения.
  • Экономия на вычислениях. В рамках сценария интернета вещей представлена интеграция с новым сервисом функций Yandex Cloud Functions. Настроенная функция вызывается каждый раз, когда к вам попадает пакет с данными. Тем самым вы решаете две задачи. С одной стороны, обеспечиваете отказоустойчивость системы, потому что сервисы Яндекса гарантируют надёжность и автоматическое масштабирование. С другой стороны, эта связка позволяет существенно экономить, так как в данном случае вы платите только за объем данных, которые потребили. Использование функций полезно как на ранних этапах, когда устройств мало и система будет стоить очень дешёво, так и на этапе масштабирования, когда нужно будет поддерживать постоянно растущее количество устройств.
  • Интеграция и обработка. Сервис Yandex IoT Core умеет автоматически масштабироваться и обеспечивает обработку огромного количества данных, в том числе с помощью Yandex Cloud Functions. Кроме того, вы можете не только отправлять телеметрию в Yandex IoT Core, но еще отправлять команды из облака к устройствам. А данные, которые были приняты, вы можете обрабатывать всеми существующими сервисами платформы, в частности, собирать в хранилищах, использовать управляемые базы данных, ВМ, сети-балансировщики, а также визуализацию, например DataLens.
  • Технологии Moxa. Сценарии интернета вещей требуют сложных многослойных решений, поэтому к анонсу Yandex IoT Core было заключено несколько партнёрских соглашений. Первое — с компанией Moxa, производителем промышленного оборудования для интернета вещей. Интеграция с сервисами платформы Яндекс.Облако теперь реализована на уровне прошивки устройств Moxa.
  • Возможности KasperskyOS. Все устройства интернета вещей с установленной микроядерной операционной системой KasperskyOS автоматически совместимы с Yandex IoT Core. Операционную систему можно поставить на шлюз, который работает «в поле», и использовать для того, чтобы анализировать трафик и защищать от возможных атак или аномалий.
  • Оборудование RedBees. Для задач, предполагающих передачу данных по беспроводным сетям, например по 4G или по NB-IoT, мы рекомендуем оборудование от компании RedBees. Его отличает пониженное энергопотребление и расширенное покрытие, благодаря чему даже в труднодоступных местах устройство гарантированно будет связываться с сетью.
  • ПО SAYMON. Для расширения возможностей в области мониторинга данных, аналитики потребления и ее визуализации мы предлагаем программные решения от компании SAYMON, российского ISV-партнера платформы Яндекс.Облако.
  • Реализованные пилоты. Еще до публичного запуска Yandex IoT Core, некоторые партнёры активно проводили тестирование сервиса. На конференции своим опытом поделились компания MultiSoft, производящая кассовую технику, а также участники проекта по созданию системы автоматизированного сбора данных со счетчиков на базе сетей NB-IoT (реализован совместно SAYMON и RedBees). Развитие партнёрских отношений будет способствовать расширению предложений в формате «IoT из коробки».

Посмотреть запись сессии про интернет вещей можно по ссылке.
www.youtube.com/watch?v=A9ORCdSHv4Q

IOT: отправка данных в серию метрик OVHcloud от Arduino



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



После удаления углей, я должен расставить приоритеты для посуды, которую я хочу приготовить, так как температура падает:
  • Пицца: 280 C
  • Хлеб: 250 С
  • Рисовый пудинг: 180 C
  • Безе: 100 C
Я построил первую версию термометра с Arduino, чтобы иметь возможность проверить температуру. Этот термометр, изготовленный из термопары (то есть датчика, который измеряет высокие температуры), отображает внутреннюю температуру на небольшом ЖК-экране.



Следующим шагом было предвидеть, когда начинать посуду в духовку. Наблюдать за падением температуры в течение нескольких часов не было хорошей идеей. Мне нужна была тепловая диаграмма моей духовки! Тепловая диаграмма — это просто диаграмма температуры за определенный период времени. Но записывать температуру на бумаге каждые десять минут… подождите… это будет длиться более 30 часов.

Пожалуйста, дайте мне спать!

Это требует некоторой автоматизации. К счастью, у OVHcloud есть решение: Metrics Data Platform: www.ovh.com/fr/data-platforms/metrics/

Аппаратное обеспечение
Цель проекта — подключить датчик к Arduino, который будет отправлять данные на платформу данных OVHcloud Metrics (https://www.ovh.com/fr/data-platforms/metrics/) через сеть. По сути, Arduino будет использовать локальную сеть Wi-Fi для передачи данных о температуре на серверы OVHcloud.

Вы знаете ESP8266? Это недорогой (менее 2 €!) Wi-Fi микрочип с полным стеком TCP / IP и возможностью микроконтроллера.

Функциональная схема ESP8266


Реализация: Wemos
ESP8266 не так прост в использовании:

Должен питаться от 3,3 В (не слишком много, иначе он сгорит)
Нет USB


Вот почему для нас лучше использовать решение, которое реализует ESP8266. Вот этот Вемос!
  • Питание от 5 В (6 В до сих пор в порядке)
  • USB для последовательной связи (для отладки)
  • Может быть запрограммирован через USB
  • Может быть запрограммирован с Arduino IDE
  • Стоит менее 3 €
Подготовьте вашу Arduino IDE
Установите интегрированную среду разработки


Прежде всего, вам нужно установить Arduino IDE. Это бесплатно и доступно для любой платформы (Mac, Windows, Linux). Перейдите по адресу www.arduino.cc/en/main/software и загрузите версию, соответствующую вашей платформе. На момент написания текущей версии 1.8.10.

Дополнительная конфигурация для ESP8266
Когда вы устанавливаете Arduino IDE, он сможет программировать только официальные Arduinos. Давайте добавим прошивку и библиотеки для ESP8266


Запустите Arduino и откройте окно «Настройки» («Файл»> «Настройки»).

Введите arduino.esp8266.com/stable/package_esp8266com_index.json в поле «Дополнительные URL-адреса менеджера доски объявлений». Вы можете добавить несколько URL, разделяя их запятыми.


Теперь откройте «Диспетчер плат» в меню «Инструменты»> «Плата» и установите платформу esp8266 (не забудьте выбрать плату ESP8266 в меню «Инструменты> Плата» после установки).

Теперь вы готовы!

Заказать платформу данных метрик


Перейдите на веб-сайт Платформы данных OVHcloud Metrics: www.ovh.com/fr/data-platforms/metrics/. Нажмите на бесплатную пробную версию и завершите ваш заказ. Если у вас нет учетной записи, просто создайте ее. В этом испытании у вас будет 12 метрик (то есть 12 наборов записей). В этом примере мы будем использовать только один.

Получить свой токен

Перейдите в панель управления OVH: www.ovh.com/manager/cloud/#/. На левой панели вы должны иметь метрики и новый сервис внутри.

На вкладке «Токены» вы можете скопировать токен записи. Оставь, как нам понадобится позже.


Обратите внимание, что для настройки Grafana вам понадобится токен чтения.

Получить хост платформы Metrics Data


Хост вашей Metrics Data Platform указан в описании вашей услуги. На вкладке «Платформы» скопируйте хост opentsdb. Оставь, как нам понадобится позже.

Глубже в программу
Теперь давайте посмотрим на пример. Вот код, который отправляет статические данные в платформу данных OVHcloud Metrics. Вы можете использовать его с вашим датчиком. Вы просто должны закодировать меру датчика. При запуске Wemos будет:

Попробуй подключить к тебе сеть wifi
В случае успеха отправьте данные на платформу данных OVHcloud Metrics.
Весь исходный код доступен на моем github: github.com/landru29/ovh_metrics_wemos

Есть шесть основных файлов:
  • ovh_metrics_wemos.ino: основной файл
  • wifi.cpp: класс, реализующий процесс подключения к wifi через WPS (Wifi Protected Setup)
  • wifi.h: заголовочный файл для wifi
  • metrics.cpp: класс, который отправляет данные метрик в OVHcloud Metrics Data Platform через HTTPS
  • metrics.h: заголовочный файл для метрик
  • config.h.sample: модель для создания вашего файла конфигурации (см. ниже)

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

Скопируйте config.h.sample в config.h
Скопируйте токен записи, который вы получили в пункте 5.1 (#define TOKEN «xxxxxx»)
Скопируйте хост, который вы получили в пункте 5.2 (#define HOST «xxxxxx»)
Получить отпечаток сертификата
Поскольку Wemos будет запрашивать через HTTPS, нам понадобится отпечаток сертификата. Вам понадобится хост, который вы только что выбрали на вкладке «Платформы», а затем:

Пользователи Linux
Просто запустите этот маленький скрипт:
HOST=opentsdb.gra1.metrics.ovh.net; echo | openssl s_client -showcerts -servername ${HOST} -connect ${HOST}:443 2>/dev/null | openssl x509 -noout -fingerprint -sha1 -inform pem | sed -e "s/.*=//g" | sed -e "s/\:/ /g"

Скопируйте результат в ваш config.h (#define FINGERPRINT «xx xx ..»).

Пользователи MAC
Просто запустите этот маленький скрипт:
HOST=opentsdb.gra1.metrics.ovh.net; echo | openssl s_client -showcerts -servername ${HOST} -connect ${HOST}:443 2>/dev/null | openssl x509 -noout -fingerprint -sha1 -inform pem | sed -e "s/.*=//g" | sed -e "s/\:/ /g"

Скопируйте результат в ваш config.h (#define FINGERPRINT «xx xx ..»).

Пользователи Windows
В вашем браузере перейдите на opentsdb.gra1.metrics.ovh.net. Нажмите на замок рядом с URL, чтобы отобразить отпечаток сертификата. Замените все символы ":" одним пробелом.

Скомпилируйте проект и загрузите его на Wemos
Откройте файл .ino в IDE Arduino (у вас должно быть шесть вкладок в проекте)
Подключите Wemos к вашему компьютеру
Выберите порт из Сервис> Порт
В верхнем левом углу нажмите на стрелку, чтобы загрузить программу
После загрузки вы можете открыть последовательный монитор: Инструменты> Последовательный монитор
Прямо сейчас программа должна выйти из строя, так как Wemos не сможет подключиться к вашей сети Wi-Fi.

Запустите программу
Как мы уже видели, при первом запуске происходит сбой. Это потому, что вам нужно установить WPS-соединение, поэтому в зависимости от вашего интернет-модема вам нужно будет запустить WPS-транзакцию. Это может быть физическая кнопка на модеме или программная операция, запускаемая на консоли (https://en.wikipedia.org/wiki/Wi-Fi_Protected_Setup).

Когда процесс запускается на стороне модема, у вас есть что-то около 30 секунд для питания Wemos.

Подключите свой Wemos через USB => программа работает
Выберите порт из меню «Инструменты»> «Порт» (возможно, он изменился)
Откройте последовательный монитор: Инструменты> Последовательный монитор
Теперь вы можете следить за процессом.

Wi-Fi соединение
В последовательном мониторе (настройте битрейт на 9600) вы должны получить:

Попробуйте подключиться
Try to connect
 
WPS config start
Trying to connect to <your modem> with saved config ...|SUCCESS
IP address: 192.168.xx.xx


Если соединение Wi-Fi было успешным, последовательная консоль должна отображать локальный IP-адрес (192.168.xx.xx), в противном случае это не удалось. Попробуйте еще раз, запустив WPS на вашем модеме и перезапустив Wemos (отключите и снова подключите его).

Отправка данных в платформу данных OVHcloud Metrics
Теперь Wemos размещает запрос на сервере OVHcloud. Последовательная консоль показывает вам JSON, который она отправит:
------------------------------------------------
POST opentsdb.gra1.metrics.ovh.net/api/put
[{"metric": "universe","value":42,"tags":{}}]
------------------------------------------------
beginResult: 0
http: 204
response: xxxx


Если beginResult отрицательный, соединение с сервером OVHcloud не удалось. Это может означать, что отпечаток пальца не так.

Если http не 2xx (это должно быть 204), сервер не может обработать ваш запрос. Это может означать, что ЖЕТОН неправильный.

У тебя есть 204? Большой! Это успех. Давайте проверим это на Графане…

Настроить Графана


Перейдите в OVHcloud Графана: grafana.metrics.ovh.net/login. Войдите в свою учетную запись OVHcloud.

Настройте источник данных
Нажмите «Добавить источник данных».



Имя: выберите один
Тип: OpenTSDB
URL: https: // <хост, который вы получили от своего менеджера (см. Ниже)>
Доступ: прямой
Проверьте «Базовый Аут»
Пользователь: metrics
Пароль: <прочитать токен у вашего менеджера (см. Ниже)>
Нажмите на кнопку «Добавить»…
… и сохранить его.

Создайте свой первый график
Вернитесь на grafana.metrics.ovh.net/ и нажмите «Новая панель».




Выберите свою метрику в поле «имя метрики». Программное обеспечение должно предлагать имя юниверса (имя, указанное в программе Arduino). Если это не так, это означает, что метрики были неправильно отправлены Wemos. Закройте панель «Редактировать» (нажмите крестик справа) и сохраните свою конфигурацию (в верхнем левом углу окна).

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

Между 11:05 и 11:10 наблюдается шаг около 85 ° C. Кажется, это была влажность сушащейся духовки.
Затем происходит падение температуры, поэтому я добавил еще дров в духовку (то есть ввел холодные продукты).
Около 11:20 склон светлее, и я понятия не имею, почему. Огонь недостаточно сильный? Влага глубже в кирпичах?


Падение температуры
В этот момент я переместил все угли в заднюю часть духовки и поместил датчик в место, где горел огонь. Вот почему график начинается при 400 ° C.

Падение температуры выглядит примерно так: F (t) = A / t
Примерно в 15:40 я поменял блок питания телефона, подключенного к источнику питания на 230 В, на автомобильный аккумулятор с регулятором напряжения (что казалось дерьмовым)
Температура окружающей среды довольно высокая с 15:00 до 17:00. Был солнечный день, поэтому солнце нагревало цепь.

www.ovh.com/blog/iot-pushing-data-to-ovhcloud-metrics-timeseries-from-arduino/