Pull to refresh
3
0
Алексей Максименко @HunterXXI

Пользователь

Send message

Надёжность граничных прокси в контейнеризированных приложениях на примере Platform V Synapse Service Mesh

Level of difficultyMedium
Reading time5 min
Views815

Привет, Хабр! Меня зовут Данила Трушин, я руководитель направления в СберТехе. Мы с командой развиваем Platform V Synapse Service Mesh — продукт, который обеспечивает надёжную безопасную интеграцию и оркестрацию микросервисов в облаке.

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

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

Читать далее
Total votes 18: ↑16 and ↓2+14
Comments2

Я разработал свой keyless продукт для удостоверения Docker образов — DIA

Level of difficultyMedium
Reading time4 min
Views2.2K

Идея подписи и проверки образов Docker крутилась у меня давно. Неоднократно исследовались различные решения от Notary до Cosign. Так или иначе все эти продукты были сложны для использования, требовали отдельного хранилища для криптографической информации + на клиентах также нужно было где то хранить кучу закрытых ключей. Cosign более прост в использовании но для него также требовалось где-то хранить закрытые ключи, менять их и все прелести этого. Мне же хотелось чтобы подпись работала по принципу обычных x509 сертификатов но без валидации срока действия. Подписал образ доверенным УЦ (выдал серт) — все, образ валиден. Эту мысль я и стал развивать далее и все оказалось очевидно но, не без нюансов…

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments5

Способы подготовки манифестов для Kubernetes

Level of difficultyEasy
Reading time6 min
Views7.5K

Когда последний раз вы подходили к вашему выгоревшему девопсу, по отцовски хлопали его по плечу и говорили — «Мне нравится твой пайплайн»?

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

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments1

Лучшие практики для контейнеров Kubernetes: проверки работоспособности

Reading time7 min
Views8.6K


TL;DR


  • Чтобы добиться высокой наблюдаемости контейнеров и микросервисов, журналов и первичных метрик мало.
  • Для более быстрого восстановления и повышения отказоустойчивости приложения должны применять Принцип высокой наблюдаемости (HOP, High Observability Principle).
  • На уровне приложение для НОР требуется: должное журналирование, тщательный мониторинг, проверки работоспособности и трассировки производительности/переходов.
  • В качестве элемента НОР используйте проверки readinessProbe и livenessProbe Kubernetes.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments8

Как дебажить переменные окружения в Linux

Reading time4 min
Views28K
Часто бывает так, что приходишь на машину и обнаруживаешь какой-то скрипт, запущенный под системным пользователем неделю назад. Кто его запустил? Где искать этот run.php? Или добавляешь запись в /etc/crontab, а скрипт там падает с ошибкой «command not found». Почему? И что делать? 

У меня есть ответы на эти вопросы.

Читать дальше →
Total votes 88: ↑86 and ↓2+84
Comments22

Эволюция сети к SDN & NFV

Reading time8 min
Views21K
Почему идет смена технологических концепций в среде сетей передачи данных, какие у этого причины и как изменится жизнь сервис-провайдеров через реализацию современных трендов?

Исторический экскурс


image

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

image

Есть версия, что такой подход был специально спроектирован для повышения шанса выживания сетей передачи данных в условиях военного конфликта, при котором часть устройств либо линий связи может выйти из строя, и оставшимся компонентам сети необходимо будет самостоятельно принять решение о том, какая топология осталась целостной и работоспособной. То есть децентрализация работы сети была заложена как цель.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments14

Приемы написания скриптов в Bash

Reading time7 min
Views173K
Администраторам Linux писать скрипты на Bash приходится регулярно. Ниже я привожу советы, как можно ускорить эту работу, а также повысить надежность скриптов.

Совет 1

Не пишите скриптов, которые выполняют действия ничего не спрашивая. Такие скрипты нужны довольно редко. А вот всевозможного «добра» для копирования, синхронизации, запуска чего-либо, хоть отбавляй. И если в любимом Midnight Commander Вы вдруг нажали не на тот скрипт, то с системой может произойти все что угодно. Это как правила дорожного движения — «написано кровью».

Совет 2

Отталкиваясь от предыдущего, в начало каждого скрипта неплохо помещать что-то вроде:
read -n 1 -p "Ты уверен, что хочешь запустить это (y/[a]): " AMSURE 
[ "$AMSURE" = "y" ] || exit
echo "" 1>&2
Команда echo, кстати, здесь нужна потому, что после нажатия кнопки <y> у вас не будет перевода строки, следовательно, следующий любой вывод пойдет в эту же строку.

Совет 3

Это ключевой совет из всех. Для того, чтобы не писать каждый раз одно и то же — пользуйтесь библиотеками функций. Прочитав много статей по Bash, я вынужден констатировать, что этой теме уделяется мало внимания. Возможно в силу очевидности. Однако я считаю необходимым напомнить об этом. Итак.
Заведите свою библиотеку функций, например myfunc.sh и положите ее, например в /usr/bin. При написании скриптов она не только поможет сократить ваш труд, но и позволит одним махом доработать множество скриптов, если Вы улучшите какую-либо функцию.
Например, в свете совета 2 можно написать такую функцию:
Читать дальше →
Total votes 121: ↑83 and ↓38+45
Comments46

Сетевые оверлейные технологии для ЦОД. Часть 1

Reading time7 min
Views28K


Последнее время в материалах различных конференций по сетевым технологиям, обзорах, статьях стали всё чаще встречаться такие термины, как TRILL, FabricPath, VXLAN, OTV и LISP, особенно в разрезе построения ЦОДов. Ловишь себя на мысли, а что же это такое? Конечно, многие из них, как звёзды, достаточно далеки от нашей повседневной реальности. Но все-таки, наверное, было бы не плохо понять, хотя бы в общих чертах, а что же это всё значит. Более того, вроде как, все они меняют привычные принципы работы сети: коммутация по каким-то меткам, маршрутизация какая-то не такая, да и адресация хоста совсем уже не та. В общем, предлагаю попробовать со всем этим разобраться.

Статья будет разбита на три части. В первой части рассмотрим, что такое оверлейные технологии. Разберёмся с предпосылками появления новых оверлейных технологий для ЦОД, а также их общей классификацией. Остальные части будут посвящены уже непосредственно технологиям TRILL, FabricPath, VXLAN, OTV и LISP.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments10

Балансировка двух провайдеров на основе BGP и EEM

Reading time15 min
Views27K

Статья рассматривает способ управления BPG-анонсами на маршрутизаторах Cisco, c операционной системой IOS XE, с помощью Cisco Embedded Event Manager (EEM) для балансировки входящего трафика и резервирования uplink от нескольких вышестоящих провайдеров.

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments18

Исследование защищенности карты Тройка

Reading time18 min
Views202K
Карта тройка

Карта Тройка представляет из себя универсальный пополняемый электронный кошелек, широко используемый в системах оплаты общественного транспорта Москвы с 2013 года.

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

В ходе работы был успешно проведен реверс­-инжиниринг мобильного приложения «Мой проездной», что позволило получить доступ к памяти карты и изучить структуру хранения данных. Были найдены уязвимости, позволяющие выполнить подделку баланса, записанного на электронном кошельке карты Тройка. В результате чего стало возможным использование систем, поддерживающих карту, без оплаты.

Итогом исследования стала разработка приложения TroikaDumper, позволяющего эксплуатировать уязвимости системы электронного кошелька.

Внимание! Данные материалы представлены исключительно в ознакомительных целях. Подделка проездных билетов является уголовным преступлением и преследуется по закону.

Читать дальше →
Total votes 380: ↑374 and ↓6+368
Comments348

Juniper routing instances

Reading time15 min
Views52K
Routing Instance – это совокупность таблиц маршрутизации, интерфейсов и параметров протоколов маршрутизации. Протоколы маршрутизации контролируют информацию в таблицах маршрутизации, причем в одной routing instance могут быть как IPv4, так и IPv6 маршруты одновременно, а так же несколько физических или логических интерфейсов. Один физический интерфейс, разбитый на несколько логических unit-ов (субинтерфейсов), может быть отнесен к разным routing instance (однако один и тот же unit (субинтерфейс) или, не разделенный на unit-ы, физический интерфейс, нельзя прикрепить к разным routing instance).

Routing instance — мощнейший инструмент операционной системы JunOS, позволяющий при совместном использовании c rib-groups, firewall filters и policy выполнить любую задачу. К сожалению, многие инженеры не знают о назначении большинства routing instances, кроме всем до боли знакомой VRF.

JunOS предоставляет нам большой выбор routing instance, доступных для конфигурирования:
routing-instances {
     routing-instance-name {
           interface interface-name;
           instance-type (forwarding | l2vpn | layer2-control | no-forwarding | virtual-router | virtual-switch | vpls | vrf);
     }
}

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments3

Прототип сервиса обмена сообщениями Geotalk

Reading time6 min
Views9K

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

Преамбула


У информации много характеристик, но есть одна на наш взгляд самая главная характеристика – актуальность. Если этот признак отсутствует, то информация либо ложная, либо ненужная. Пример неактуальной для меня информации это то, что происходит сейчас на перекрестке двух улиц в каком-то захолустном городке штата Миннесота. А вот информация о том, нет ли перебоев в работе станции метро Бибирево, для меня актуальна. Мы ежедневно смотрим новости своей страны, а не чужой, потому что эти новости для нас актуальны, не только во времени, но и географически. Я хочу сказать, что важным критерием актуальности, наравне со временем, является географическое расположение информации.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments33

Одновременное использование двух провайдеров на маршрутизаторах cisco (продолжение)

Reading time4 min
Views52K
Одновременное использование двух провайдеров

Если в первом случае все понятно и однозначно, то в случае с одновременным использованием двух провайдеров возникают проблемы.
Для начала: нам надо обоих провайдеров проверять на «живость» и переключать все потоки на одного в случае, если кто то «упал». Это делается полностью аналогично проверке ISP1 в главе про Резервирование. С тем лишь отличием, что оба маршрута по умолчанию имеют одинаковую административную дистанцию

  ip route 0.0.0.0 0.0.0.0 Gate(ISP1) track 11
  ip route 0.0.0.0 0.0.0.0 Gate(ISP2) track 22

Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments62

Создаём интерактивную векторную схему московского метро

Reading time6 min
Views23K
Московское метро меняется. Желающий представить себе схему, скажем, 1945 года без проблем соберёт данные из открытых источников; остаётся вопрос с представлением результата, — не на круговой диаграмме же его показывать. В статье я расскажу об основных шагах в создании proof-of-concept сервиса, позволяющего показать схему метро, например, на 1 мая 74 года (слева) или станции с глубиной заложения больше 30 метров (справа).


Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments35

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity