Search
Write a publication
Pull to refresh
4
0.1
Евгений Хлебников @yellowmew

Инженер облачной инфраструктуры

Send message

ну вы же помните, сколько заменителей инстаграма появилось после блокировки?

и сколько выжило..

  • хапрокси умеет работать с прометеем и не через статс сокет https://www.haproxy.com/documentation/haproxy-configuration-tutorials/alerts-and-monitoring/prometheus/

  • еще можно перегружать только сам сертификат, прямо в памяти, без перезагрузки всего хапрокси https://www.haproxy.com/blog/dynamic-ssl-certificate-storage-in-haproxy. haproxy reload - довольно дорогая операция под нагрузкой, она создает копию сервиса в памяти которая забирает сокет и принимает новые соединения, в то же время старый процесс продолжает обрабатывать установленные соединения до их закрытия или таймаута (то есть у вас будет запущено одновременно два хапрокси под нагрузкой во время релоада). Но можно конечно установку сертификата спланировать и на время когда нагрузки нет, для упрощения всей конструкции =)

    Еще стоит отметить что в systemctl юните для haproxy как правило присутствует пункт ExecStartPre проверяющая валидность конфига, что снимает необходимость делать ту же команду в "горячем релоаде"

  • maxconn 20 000 + Linux 5.10 (SO_REUSEPORT) дают 5–6 Гбит/с без CPU‑узких мест. Опция SO_REUSEPORT позволяет HAProxy эффективнее использовать несколько ядер CPU, распределяя входящие соединения между несколькими рабочими процессами (worker processes) HAProxy, если они запущены.

    для эффективной утилизации мультипроцессорной системы рекомендуется использовать один воркер процесс и треды. Значение параметра nbthread по умолчанию чаще всего равно количеству CPU, но может быть равно и 1 - нужно проверять haproxy -vv

    SO_REUSEPORT тут скорее используется именно для релоада, когда новый процесс биндится на тот же порт

да там обе скорости занижены

тот самый окловский speedtest показывает более близкую к обещанной провайдером скорости ~500мбит\с ,https://qms.ru/ тоже, ну и свои тесты тоже показывают нечто похожее

в то же время селектеловский -

что-то явно не так =)

- Координатор дает статус проделанных и текущих работ каждые 15 минут. 

ну то есть одна из приоритетных задач "координатора" - это как раз фиксация всего происходящего, пока все остальные занимаются разрешением проблемы, верно?

Вопросы:
просто интересно

  • почему "координатор"? стандартное название этой роли во время инцидента - "инцидент менеджер"("управляющий инцидентом"). У вас же процесс "управления инцидентом" описан.

  • почему только 5 уровней "why"? Есть методика "7 whys", есть и более глубокие погружения. Всегда ли хватает всего 5 уровней глубины чтобы докопаться до реальной причины проблемы(в озоне)?

Дежурный фиксирует влияние на ... финансовые потери компании"

эта информация доступна дежурным? Или имеется в виду "вероятное влияние"? Или описаны критерии инцидента, когда финансовые потери точно присутствуют и дежурные ориентируются на них? Или возможно есть графики по которым это понятно?

В компании в которой строили инцидент менеджмент пришлось ограничиться "вероятным влиянием" для дежурного и оставлять оценку реального влияния на этап постмортема

таймлайн с саммари треда инцидента, созданный с помощью ML-суммаризации

При этом, насколько я вас понял, всё общение - голосовое. Как голос фиксируется в тред инцидента? или есть обязательство дублировать туда то что важно?

тоже было бы интересно узнать как ведется мониторинг в целях "неразрастания" для таких объемов

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

  1. для новых алертов должно было быть объяснено и записано: почему это надо алертить и кто ответственный за конкретно этот момент. Если никто не берет ответственность (даже если реакция первая должна быть от дежурного - дежурный не эксперт, эксперт - владелец сервиса) то на гильдиях (платформа для инфраструктурных сервисов, дев для сервисов приложения) ищем кто заберет себе. Тот же процесс для легаси алертов, созданных в до введения данного правила: оценка, описание, поиск владельца

  2. для существующих критов и ворнингов - статистика и еженедельная презентация на RnD(все команды продукта), с объяснением что происходило в продукте и какие критические алерты сработали в областях (если что-то было). Отчеты по инцидентам опять же там же

    1. Увеличение количества ворнингов в конкретной области - требовало расследования от команды и тюнинга либо алерта либо починки сервиса. Ибо вроде мелочь, но может привести к неприятным последствиям

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

    3. Большое колиство инцидентов или валидных критов в конкретной области - сигнал что что-то не так в принципе и надо менять приоритеты команды ответственной за область\сервис на исправление данной ситуации

    Спасибо вообще тем командам(а так же менеджерам): брали в относительно ближайшие спринты всё это править )

Вообще, получалось держать руку на пульсе, но у нас не было "N тысяч алертов в секунду" - поэтому интересно. Вообще, тысячи алертов в секунду это больно - никто на такое не отреагирует физически. Старались заводить только алерты на которые надо реагировать и воспринимать остальное как информационный шум. Интересный, но все таки шум

всегда еще смущал в таких статьях фактор "кейлоггера" в минусах использования пароля

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

вообще выглядит так что 2fa, по сути - подтверждение на втором устройстве, единственное что действительно добавляет некую защиту

Использовали такие приоритеты:

  1. Incident - инцидент =), сразу запускается процесс обработки инцидента в продукте (не такой продвинутый, как описанный, конечно). Алерт требует немедленной обработки с оповещениями и подключениями всех заинтересованных согласно процессу.

  2. Critical - алерт должен обработать дежурный, или по цепочке эскалации он уйдет команде ответственной за область (всем, на удачу - вдруг кто-то доступен), затем менеджеру команды, затем техдиру (и тогда будет больно всем). Требует немедленной обработки.

  3. Warning. Работало как High из статьи - Требует обработки, но достаточно и next business day. Кроме того эти алерты зачастую закрываются сами. И их количество тоже мониторилось и в статистике отображалось - если было слишком много от команды в чьей области они происходили требовалось провести работу по снижению (или алерт править или продукт)

  4. А вот Info (непонятно, равнозначен ли он Warning из статьи), просто не пускали даже в общий пайплайн. Этот приоритет был для разработчика. Хочет он помониторить что-то в уже опубликованном коде - может накрутить себе алерт и пустить в слак\тимс канал или вообще себе на почту. Мне немного непонятна разница между Warning и High из статьи

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

Для инцидента не связанного с алертами был специальный механизм "Аларм" канала. Когда происходит инцидент, дежурный его подтверждает и пишет сообщение в "Аларм" канал об этом - для оповещения всех заинтересованных людей (суппорта, продакта, техдиров, техлидов и т.п.), подписанных на данный канал. Добавление упоминания @alarm бота создавало алерт в системе алертов.

Уведомления должны быть читаемыми и понятными сразу, без необходимости разбираться в технических деталях

Золотые слова. Мне так и не удалось донести до наших алертописателей смысл этого, поэтому некоторые алерты были в стиле "Метрика Х на сервисе Y равна 50%"

нет же

Гитлаб

deploy-staging:
stage: deploy
script:
- ./
deploy.sh staging
rules:
- if: $CI_COMMIT_BRANCH == "develop"
when: on_success
- when: never

////////////////////////////////////// пропускаем текст ////

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

rules:

  • if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push" when: on_success

  • if: $CI_COMMIT_BRANCH =~ /^feature/.*/ when: manual

  • when: never

Не выходим из контекста условий для джобов - речь только про усложнение условий

Гитхаб

Сразу говорим про "когда воркфлоу запускать вообще"

on:
push:
branches: [ main, develop, 'feature/**' ]
pull_request:
branches: [ main, develop ]

//// а дальше переходим на условия для джобы
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run tests
run: npm test

deploy-to-staging:
runs-on: ubuntu-latest
needs: test
if: github.ref == 'refs/heads/develop'

По хорошему для гитлаба не хватает упоминания "когда вообще запускать пайплайн" такого же как и для гитхаба (ключевое слово в гитлабе: workflow)

workflow: rules: - if: $CI_PIPELINE_SOURCE == "schedule" when: never - if: $CI_PIPELINE_SOURCE == "push" when: never - when: always

для начала определитесь вы, что конкретно для вас является признанием языка? В предыдущем комментарии я всего-лишь описал этапы развития языка но не высказывал своего мнения на тему "когда" можно считать Украинский отдельным от древнерусского и вообще языком. Заметьте, древнерусского языка уже давно не существует (задолго до 19 века), чтобы измерять сквозь века отличия "украинского диалекта" от основного "литературного древнерусского". Почему-то вы называете его диалектом другого диалекта, несмотря на то что это две почти одинаковые ветви, развивавшиеся в разных условиях в близкие, но отдельные языки

Если признание его отдельной сущностью неким государством - это было сделано еще в Великом княжестве Литовском, "руський язык", который, судя по всему, не сильно соответствовал именно украинскому, но послужил основой для создания.

Если же достаточные устоявшиеся отличия от других больших групп диалектов древнерусского - это ~17 век (напомню, я уже ссылался на Зализняка который считает что наречия древнерусского начали сильно различаться веку к 15)

Если же максимально близкое соответствие современному украинскому - 19 век, Тарас Шевченко и другие литераторы.Но даже 19 век - это уже "достаточно давно". 200 лет скоро.

P.S. мне не нравится продолжать это обсуждение, поскольку в ваших комментариях многовато эмоций и почти нет отсылок на выводы лингвистов и факты (об украинском-русском-древнерусском языках а не языках других групп, развивавшихся в других условиях и где деление диалект-язык в которых может быть усложнено и определяться по другим правилам)

Вопрос на засыпку: когда украинский назывался "руською мовою" -- как тогда назывался русский язык?

российским или московским(Не забывайте, мы говорим про названия языка, данные языку Руси\России в соседних государствах, на самой Руси язык был все так же "руским"). Народы на территории, которая присоединились к Литве-Польше, все так же звались "русин" (ед.ч. - не путать с современными русинами или рутенами), "русь","руськие", "людий руских" (мн.ч.), как зафиксировано в договорах Олега с греками, Смоленска с немцами а так же зафиксировано в польских текстах как название западно-русских людей.

По моим сведениям -- с 19в. @Einherjar утверждал, что "за двести лет до основания РИ",

Если верить Зализняку, серьезные расхождения в наречиях "древнерусского", которые в итоге привели к образованию трех восточнославянских языков наблюдаются в письменных свидетельствах примерно к 15 веку. После присоединения к Литве на территории Украины-Белоруссии появляется та самая "руська мова", или западнорусский язык, на основе которого к концу 15 века происходят попытки создать литературный "Украинский" язык. У него есть письменные памятники, которые, в основном, являются толкованиями церковных текстов. В 16-17 веках так же происходят попытки его нормировать, плюс считается что основные особенности языка, присущие современному украинскому сложились в 17 веке. Дальше было обогащение народной речью, присоединение к РИ (усиливается влияние русского) но вместе с тем и активизация его развития писателями, плюс закрепление результа Т. Шевченко. То есть 15 век - заметное разделение наречий, 17 век - формирование основных особенностей (отличий от других вариантов древнерусского) и 19 век - закрепление обогащение в литературного "украинского" разговорным языком областей малороссии.

Разница между диалектом и языком и так чисто политическая 

Вообще-то нет. Лингвисты имеют вполне себе определенные критерии как отличать диалект от языка. Социополитический - только один из них.

Вообще группировка в языке: Язык -> наречие (группа диалектов, объединенные социально или территориально) -> диалект и говор(последние различаются степенью отличия от основного литературного языка)

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

(упрощенно) С Украинским, если посмотреть, до отделения (в эпоху феодальной раздробленности Руси) у среднерусского и южнорусского наречий было не так много различий (что характерно - сильно отличалось наречие в Новгороде - Пкове, и без объединения Руси под началом Москвы у него были все шансы стать отдельным языком). После отделения части Руси в Польшу началась полонизация отделенного южнорусского наречия,и оно продолжило развиваться, в том числе образовывая, как и в Руси/России отдельный язык на основе церковнославянского (В России - преобразование шло на основе Московского диалекта, в отделенной части - на основе Киевского). И это вылилось в образование вполне себе отдельного языка, признававшегося Австро-Венгрией. В 19 веке в нее насыпало из других малоросских говоров, во многом благодаря Т.Шевченко и другим авторам, что и привело к созданию "малоросского языка" в РИ. который сейчас известен под названием "украинский". Благодаря СССР (а так же технологическим революциям, которые сильно способствовали словообразованию и заимствованиям) в него мощно добавились русизмы или другие заимствованные через Русский язык слова

опустим то, что сейчас происходит с Украинским - это чисто политическая тема, но игнорировать то что происходило за эти века - глупо, Украинский язык считают языком уже достаточно давно (хоть он и называется так чуть больше 100 лет, до этого Малоросский или "Руська Мова")

Горилка - согласно лингвистам - это самогон с перцем, поэтому жжётся и "горит". Учитывая методику производства и сложности с измерением крепости, крепость напитка не была установлена стандартом.

"Водки", - различные напитки крепкие напитки, которым были приданы запах и вкус или цвет (подобные иностранные крепкие напитки во времена Петра I в указах тоже именовались "водками"). Сама бесцветная "водка" называлась вином аж до 19 века

Крепость водки, до появления спиртометров измеряли "полугарами" - что соответствует где-то 37.5-38 градусам. В 1817 эта крепость была установлена стандартом (напиток должен был быть крепостью не ниже), а к концу века чиновники уже округлили до 40.

победим, но нету победю?

потому что и не будет "победю", могло бы быть "побежу" но форма почему то не используется

победа - победить - *побежу

стыд - стыдить - стыжу

ссуда - ссудить - ссужу

Больше вроде не звонили по всяким защитам..

В итоге защита от их звонков все таки сработала :D

а вы упоминаете "украинский диалект" vs "украинский язык" на уровне понимания лингвистики Ломоносовым (который чуть ли не начал собственно лингвистику Русского языка) или современной лингвистики?

противоположное впечатление за последние пару месяцав

у меня их всех отбивает антиспам Билайна + антиспам гугла. Первый присылает смс типа "возможно вам звонили мошенники, прослушайте че сказали" (звонка нет), второй просто при звонке отображает "возможно спам" или вообще сразу отклоняет, вледствие чего я из клиники звонки пропускаю (они холодные обзвоны делают с того же номера с которых звонят клиентам подтверждать запись :D ). Но журнал звонков и смс-ки просто завалены этим, количество причем явно увеличилось.

Вообще, считается, что это в Русском языке слово "водка" появилось под влиянием польского wodka. Корень в общем-то общеславянский.

А вот в английский заимствование отмечается первым литературным упоминанием: "Russia: Or, a Compleat Historical Account of All the Nations which Compose that Empire". by Johann Gottlieb Georgi 1780

https://archive.org/details/russiaoracomple00georgoog/page/n120/mode/2up (страница 114)

И само слово становится известным в начале 19 века

Ветвление и условия в workflow

Почему то регулятор на уровне workflow (когда вообще запускать пайплайн, а не когда выполнять шаг) для github написан а для гитлаба - нет. https://docs.gitlab.com/ci/yaml/workflow/

но заимствовано-то из русского

в польском водка (напиток) долгое время была gorzałka а слово wódka использовалось в значении химического очистителя в косметике и медицине.

1
23 ...

Information

Rating
4,364-th
Location
Зеленоград, Москва и Московская обл., Россия
Date of birth
Registered
Activity