Как стать автором
Обновить
15
0
Maks Mikhalov @neopug

DevOps, MLOps

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

Пишем с комфортом на Rust в Visual Studio Code

Время на прочтение3 мин
Количество просмотров34K

Хочешь писать на Rust, но не знаешь в чём?

Нет денег на CLion или Intellij Ultimate, но тебе нужно отлаживать код?

Очень нравится Visual Studio Code, но при виде кучи плагинов разбегаются глаза?

Если на любой из вопросов выше ты ответил "да" - залетай.

Залететь
Всего голосов 14: ↑9 и ↓5+6
Комментарии42

Мониторинг веб-приложения на Rust с использованием Prometheus и Grafana

Время на прочтение13 мин
Количество просмотров13K

В статье показано как настроить мониторинг веб-приложения на Rust. Приложение выставляет наружу Prometheus метрики, которые визуализируются с помощью Grafana. Мониторинг осуществляется для проекта mongodb-redis demo, детально рассмотренного здесь. В итоге получена следующая архитектура:


architecture

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии10

Интеграция устройства в экосистему Samsung SmartThings на примере «Умного чайника»

Время на прочтение27 мин
Количество просмотров7.6K

Допустим, вы сделали свое собственное устройство «Умного дома» и хотите интегрировать его в платформу домашней автоматизации Samsung SmartThings. Тогда вы сможете включить его в общую экосистему, поддерживающую множество устройств от разных производителей. Пользователи вашего устройства смогут инициализировать его удобным образом, задавать сценарии автоматизации, взаимодействовать с ним через мобильное приложение.

Я покажу, как это сделать, на примере самодельного устройства «Умный чайник». На функциональном уровне оно повторяет существующие на рынке устройства такого типа. Конечно, сам «чайник» мы собирать не будем, сделаем только очень простой прототип. Мой пример будет иллюстрировать в основном программный уровень. На железном уровне, я обошелся минимумом периферийных устройств, а часть из них реализовал как “заглушки”. Чтобы вы могли повторить все описанные в статье шаги самостоятельно, в качестве целевой платформы я выбрал плату микроконтроллера ESP8266 - одну из самых доступных и популярных на рынке. Данный пример я сделал в качестве стажировки в Исследовательском центре Samsung, и он будет полезен всем, кто еще только начинает заниматься разработкой умных устройств.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии14

Huawei получил от Трампа люлей… But show must go on?

Время на прочтение9 мин
Количество просмотров54K
«Просто хочешь ты знать, где и что происходит…» (с) Кино


Недавно волею судеб (подарили) я стал обладателем смартфона Huawei P40 Lite: красивый такой, зелененький. После «люлей» от Трампа за шпионаж, смартфоны Huawei поставляются без сервисов Гугл. Магазин приложений от Гугл также недоступен. Зато есть собственный магазин Huawei AppGallery, который продвигается, в том числе, и на Хабре.

Есть мнение, что Гугл активно следит за пользователями в Инете. Да и про китайские смартфоны такие разговоры идут. Поэтому я, было, обрадовался – одним шпионом меньше.  Но Huawei, похоже, решил «поработать» за двоих…
Читать дальше →
Всего голосов 126: ↑109 и ↓17+123
Комментарии286

Как я пишу конспекты по математике на LaTeX в Vim

Время на прочтение9 мин
Количество просмотров128K
Некоторое время назад на Quora я отвечал на вопрос: как успевать записывать за лектором конспект по математике на LaTeX. Там я объяснил свой рабочий процесс по конспектированию в LaTeX с помощью Vim и Inkscape (для рисунков). Но с тех пор многое изменилось, так что я хочу опубликовать несколько постов в блоге с описанием нового процесса. Это первая из статей.

Я начал использовать LaTeX для конспектирования во втором семестре курса математики, и с тех пор написал более 1700 страниц. Вот несколько примеров, как выглядит конспект:


Читать дальше →
Всего голосов 222: ↑220 и ↓2+218
Комментарии133

Добываем Wi-Fi соседа стандартными средствами MacOS

Время на прочтение5 мин
Количество просмотров365K
Я всегда был фанатом багов и уязвимостей «на поверхности», всегда завидовал чувакам, которые пишут эксплойты для самых защищённых ОС, а сам умел только скрипткиддить (термин из нулевых). Однако мой пост про уязвимости в системах контроля версий набрал более 1000 лайков на Хабре и остаётся топ1 постом за всю историю Хабра, несмотря на то, что был написан 9(!) лет назад.

И сегодня я хотел бы на пальцах показать и рассказать про такую штуку, как вардрайвинг. А точнее, как стандартными средствами MacOS можно добыть пароли от Wi-Fi соседей. Нелёгкая забросила меня на очередную квартиру. Как-то исторически сложилось, что я ленивый. Пару лет назад я уже писал, что моя лень, новая квартира и провод Beeline (бывшая Corbina) помогли мне найти багу у Билайна и иметь бесплатно интернет в их сети. «Сегодня» происходит «подобное», я на новой квартире, нет даже провода, но есть много сетей у соседей.


Заколебавшись расходовать мобильный трафик, я решил, что «соседям надо помогать», и под «соседями» я имел введу себя…
Читать дальше →
Всего голосов 163: ↑151 и ↓12+139
Комментарии249

Двенадцать советов по повышению безопасности Linux

Время на прочтение8 мин
Количество просмотров54K
imageМы живём в опасное время: едва ли не каждый день обнаруживаются новые уязвимости, на их основе создают эксплойты, под ударом может оказаться и обычный домашний компьютер на Linux, и сервер, от которого зависит огромная организация.

Возможно, вы уделяете внимание безопасности и периодически обновляете систему, но обычно этого недостаточно. Поэтому сегодня мы поделимся двенадцатью советами по повышению безопасности Linux-систем на примере CentOS 7.
Читать дальше →
Всего голосов 43: ↑36 и ↓7+29
Комментарии84

Хранение метрик: как мы перешли с Graphite+Whisper на Graphite+ClickHouse

Время на прочтение7 мин
Количество просмотров25K

Всем привет! В своей прошлой статье я писал об организации модульной системы мониторинга для микросервисной архитектуры. Ничего не стоит на месте, наш проект постоянно растёт, и количество хранимых метрик — тоже. Как мы организовали переход с Graphite+Whisper на Graphite+ClickHouse в условиях высоких нагрузок, об ожиданиях от него и результатах миграции читайте под катом.


Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии36

Новые возможности мониторинга Java приложений в Zabbix 3.4

Время на прочтение9 мин
Количество просмотров37K

Что случилось?


Вышел долгожданный релиз Zabbix 3.4, который принёс много полезных улучшений, среди которых оказались настраиваемые JMX endpoints и гибкое обнаружение MBean’ов.


Это так круто, да?


Если вы используете Zabbix и вам требуется мониторить Java приложения, то да — это может сильно облегчить вам жизнь, потому что раньше приходилось прибегать к различным ухищрениям, а теперь всё работает, как говорится, “из коробки”.


Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии7

Как программно управлять WiFi маршрутизатором TP-Link с помощью Python requests

Время на прочтение11 мин
Количество просмотров35K
Однажды передо мной встала задача реализации программного управления одним из распространенных домашних Wi-Fi маршрутизаторов TP-Link TL-WR841N, у которого, к сожалению, нет интерфейса управления через командную строку (telnet, SSH). Я хотел, чтобы мой Telegram бот, реализованный на Python на базе SBC в локальной домашней сети, на основе моих команд выполнял следующие функции управления маршрутизатором:

  • Перезагрузка маршрутизатора
  • Открытие/закрытие NAT Port Forwarding к внутренним WEB-сервисам
  • Открытие/закрытие удаленного доступа к маршрутизатору из WAN (интернет)
  • Определение устройств, зарегистрированных в локальной WiFi сети маршрутизатора
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии20

Дюжина приемов в Linux, которые действительно сэкономят уйму времени

Время на прочтение9 мин
Количество просмотров137K


Эта статья также есть на английском.

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

Командная строка для администратора или пользователя — это не только инструмент, которым можно сделать все, но и инструмент, который кастомизируется под себя любимого бесконечно долго. Недавно пробегал перевод на тему удобных приемов в CLI. Но у меня сложилось впечатление, что сам переводчик мало пользовался советами, из-за чего важные нюансы могли быть упущены.

Под катом — дюжина приемов в командной строке — из личного опыта.
Читать дальше →
Всего голосов 128: ↑122 и ↓6+116
Комментарии169

MongoDB на вырост

Время на прочтение15 мин
Количество просмотров41K

image Приветствую бойцов невидимого бэкенда!


Вы уже почитали обзоры MongoDB. Вероятно, прошли отличные онлайн-курсы на university.mongodb.com. Конечно, у вас уже есть многообещающий проект-прототип с использованием MongoDB.


Что мы можем ждать от MongoDB на этом этапе?


  • Удешевление хранилища — чтение с ведомых реплик экономит iops мастера, не требуется RAID, отказ одного диска не фатален.
  • Повышаем скорость разработки — можно допустить бОльшую небрежность в проектировании структур данных, т.к. мы вполне можем все исправлять на работающем приложении.
  • Повышаем отзывчивость приложения — независимо от разработки, легко увеличить число ведущих реплик или количество шардов, чтобы компенсировать возросшую нагрузку на приложение.
  • Повышаем надежность приложения — независимо от разработки, убираем единую точку отказа.

И вот, вы готовы ввязаться в бой — выпустить проект на публику.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии6

Установка и настройка MongoDB на Debian, а также ReplicaSet и пара других мелочей

Время на прочтение6 мин
Количество просмотров36K
image

Это руководство описывает пошаговую установку и настройку реплики из 3 узлов mongoDB на базе движка WiredTiger. А также несколько полезных мелочей для людей, впервые столкнувшихся с MongoDB.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии16

Непрерывная интеграция/внедрение приложения Symfony с помощью docker-compose и GitLab CI

Время на прочтение16 мин
Количество просмотров33K

В статье я поделюсь своим опытом автоматизации всего процесса разработки приложения Symfony с нуля от настройки инфраструктуры до деплоя в production. От development- и до production-окружения для запуска приложения будет использоваться docker-compose, а все процедуры непрерывной интеграции/внедрения будут запускаться через GitLab CI/CD Pipelines в docker-контейнерах.


Подразумевается, что вы знакомы с docker и docker-compose. Если нет или вы не знаете как его установить, я подготовил инструкцию по подготовке локального окружения разработчика. Фактически, для работы над приложением потребуется только Docker, VirtualBox и, опционально, Yarn.

Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии39

Play with Docker — онлайн-сервис для практического знакомства с Docker

Время на прочтение4 мин
Количество просмотров69K


В конце прошлого года два капитана Docker представили свою разработку под названием Play with Docker (PWD) — «игровую площадку для Docker». Пользователям предлагается бесплатно поработать со сборкой и запуском Docker-контейнеров прямо в веб-браузере, а также выполнить лабораторные работы для знакомства с Docker с нуля и совершенствования своих навыков.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии6

Apache Maven — основы

Время на прочтение6 мин
Количество просмотров547K
После публикации топика о Maven в комментариях возникли вопросы о том, как начать с ним работать, с чего начать, как составлять файлы pom.xml, откуда брать плагины и т.п. Данный топик будет своего рода getting started или f.a.q.
Поехали!
Всего голосов 45: ↑41 и ↓4+37
Комментарии29

Начало работы в Kubernetes с помощью Minikube

Время на прочтение7 мин
Количество просмотров90K


Предисловие переводчика: Minikube — удобный инструмент, который мы применяем в компании для локальных экспериментов с Kubernetes (в частности, для выполнения лабораторных работ по этой системе при обучении сотрудников). Эта статья показалась мне полезной во время моего знакомства с Kubernetes. Она написана год назад автором, использующим Mac OS X, а я проделывал все операции в Ubuntu 16.04 совсем недавно и с актуальными версиями основного софта: Minikube 0.20, Docker 17.06.0-ce, kubectl 1.7.0. Поэтому все выводы команд были переделаны под новые версии и незначительно отличаются от приведённых в оригинальной статье.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии4

Релизный цикл для Infrastructure as Code

Время на прочтение13 мин
Количество просмотров10K

На просторах интернета можно встретить немало статей на тему Infrastructure as Code, утилит SaltStack, Kitchen-CI и так далее, однако, сколько я не встречал различного рода примеров IaC, они зачастую остаются только кодом, как правило, с делением на бранчи в VCS соответствующие наименованию типа среды, например dev/int, возможно даже с тэгами, а говорить о полноценном цикле разработки конфигураций как правило не приходится. Во всяком случае с компаниями, с которыми знаком именно такая ситуация, да и статей не находил.
Может быть оно и понятно — тотальный Agile и "раз-раз и в продакшен".
Попробую исправить ситуацию данной статьей.

Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии0

Selenium: проще пареной репы…

Время на прочтение3 мин
Количество просмотров26K

Как вы уже могли заметить мы в команде Aerokube продолжаем упрощать жизнь в инфраструктуре тестирования. Сейчас мы усиленно работаем над удобными инструментами для, браузерного тестирования на основе Selenium. Одним из инструментов, о котором я уже рассказывал раньше, является Selenoid. Selenoid — это легковесный сервер, запускающий изолированные браузеры в Docker контейнерах. В предыдущих статьях (раз, два) я описал два возможных сценария использования Selenoid — работа с Docker и использование исполняемых файлов веб-драйверов в операционных системах, где отсутствует поддержка Docker. Сегодня я расскажу о новых возможностях, которые могут помочь в отладке браузерных тестов.


Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии0

GitLab CI для непрерывной интеграции и доставки в production. Часть 1: наш пайплайн

Время на прочтение6 мин
Количество просмотров150K


Итак, GitLab CI: что можно ещё рассказать о нём? На хабре уже есть статьи про установку, про настройку раннеров, про командное использование, про GitLab Flow. Пожалуй, не хватает описаний того, как используется GitLab CI в реальном проекте, где задействовано несколько команд. А в современном мире разработки ПО это действительно так: ведь есть (как минимум) разработчики, тестировщики, DevOps- и релиз-инженеры. С подобным разделением на команды мы работаем уже несколько лет. В этой статье я расскажу о том, как мы, используя и улучшая возможности GitLab CI, реализовали и применяем в production для коллектива из нескольких команд процессы непрерывной интеграции (CI) и отчасти доставки приложений (CD).
Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии25
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Dallas, Texas, США
Дата рождения
Зарегистрирован
Активность