Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 week, 2 days ago
Новые и перспективные Web3 игры с добычей токенов.
Чат: https://t.me/Crypto_Wolf_Chat
Правила чата смотрите в описании чата.
Все свои вопросы направляйте в чат или главному модератору чата: @Exudna_118
По теме сотрудничества: @Zombini
Last updated 2 months, 3 weeks ago
Привет! В канале за последнее время прибавилось огромное количество подписчиков — привет вам всем, спасибо, что читаете, и спасибо за вашу поддержку 👯♂️
Решил собрать небольшой дайджест крутых и полезных постов из этого канала.
Старички, ставьте чувака с ноутом 👨💻, если помните эти посты!
🟢 Как работают процессы в Linux
🟢 Как работает оперативная память и swap
🟢 Out of Memory (OOM)
🟢 SLI, SLO и SLA — в чем разница?
🟢 Как подставить переменные в файл в пайплайне?
Привет! ?
Продолжаю прошлый пост, где мы остановились на объединении сети трех проектов в одну. А дальше нужно было настроить связность DNS. Вот какая ситуация была:
- В первом проекте есть свой DNS сервер, который "держит" одну приватную зону (несуществующая в паблике). Все остальные запросы форвардятся на DNS-ы хостера.
- В двух других проектах DNS работает на уровне облачного ресурса. Там тоже есть свои приватные зоны. Например у Яндекс Облака облачный DNS-сервер всегда живет на ip-адресе .2
внутри подсети.
Что делаю:
- В первом проекте стоит Bind9, там настраиваю forwarding запросов к определенной зоне через другой DNS-сервер:
zone "coolproject" {
type forward;
forward only;
forwarders { 10.131.0.2; };
};
Тут у меня возникли ошибки связанные с проверкой DNSSEC, поэтому при доверии между серверами можно добавить: validate\-except {"coolproject";};
- На других проектах я пошел прямо по инструкции от Яндекса:
Там нужно поднять CoreDNS на одной из машин, аналогично настроить forwarding и прописать новый DNS-сервер в настройки DHCP внутренней сети.
```
bestproject {
forward . 10.40.10.1 10.40.10.2
cache 30
}
. {
forward . 10.131.0.2
cache 30
}
```
Не стоит надеяться на стабильность облака, отклоняться от инструкции и создавать только одну виртуалку под DNS. Делайте две через балансировщик как и советуют в инструкции.
Чтобы не гонять все DNS запросы через VPN, я настраиваю Split-DNS. Для этого у меня уже есть инструкция под Open VPN + Tunnelblick. Добавляю туда новые зоны и раздаю юзерам новый профиль.
Вот так вот получилось.
этогик | youtube | #техшортики
Приветос! Мне тут напомнили, что я упустил пятничный дайджест по текущим рабочим задачам. Исправляюсь.
Сейчас у меня начался большой проект по объединению инфраструктур трех проектов в одну. Я уже упоминал это, вот могу рассказать подробности.
Есть три проекта, которые хостятся в разных местах, используют разные стеки, разные инструменты CI/CD, тесты, линтеры. В связи с появившейся необходимостью разработчикам переключаться между разными проектами появилась потребность в упрощении и приведении к общему виду всей этой истории.
Сейчас работа, конечно, больше админская, а не девупсерская. Начинаю с общего сетевого контура, VPN и DNS. Там в одном месте — 70 bare-metal серверов, в другом — виртуалки в AWS, в третьем — виртуалки в Яндексе.
Большой плюс, что хостер железных серверов позволяет объединить их в vSwitch и добавить VLAN между ними. Собственно, закидываем все машины в один влан, рисуем таблицу ip-адресов, настраиваем их (Ansible-ом, конечно), добавляем в нужных местах разрешающие правила в iptables и внутренняя сетка есть. (не забываем про least privilege подход)
У облачных провайдеров приватная сеть между виртуалками — это само собой разумеющееся удовольствие, поэтому надо придумать как объединить эти сети между собой. Ну, надо поднять VPN-туннельчики и настроить маршрутизацию. Солидный вариант — StrongSwan и ipsec. Через чур солидный. Иду в сторону VpnCloud, с ним уже работал, настраивается простым yml-иком, шифрует, поддерживает mesh.
Опять таки, ансиблом устанавливаю и настраиваю по одной ноде в каждой сети, коннекчу их между собой и прям в конфиге указываю какие маршруты добавлять при поднятии vpn.
Окей, впн-ноды знают про существование "новых" подсетей, а как научить остальные машины? С облачными инстансами проще — у ресурса Virtual Private Cloud (облачные сети) есть функционал Routing Tables (таблицы маршрутизации). В них указываю, что трафик до определенных подсетей должен ходить через местную впн-ноду. PROFIT.
А вот на bare-metal серверах у каждого свой "шлюз по умолчанию" (он же default gateway), там нужно прописать маршруты прямо в netplan. Ansible в зубы, и обновляю конфиг.
Довольно длинный пост выходит, и это я еще опускаю проблемы с пересечением адресаций подсетей в разных проектах, и с тем, что я узнал про routing tables в VPC вообще не сразу. А я про DNS и VPN не рассказал.
Если интересно, то напишу следующим постом ?
А чем вы занимались в последние пару недель?
этогик | youtube | #техшортики
Привет! Давно не постил ничего, как будто даже пропал! Рассказываю что происходило за последнее время.
Ну, сначала я был в долгожданном отпуске на две недели. Ездили в Черногорию с родителями, отлично почиллили на пляже, посмотрели окресности, покатались по серпантинам. Постарался максимально отключиться от работы, но размышления о том, что можно внедрить и исправить сложно полностью выкинуть из головы. Вернулся в работу довольно бодрым и заряженным.
Затем я начал писать тексты для новых видео, а то что это я не снимаю ничего. Даже хотел в прошлую субботу отснять видео! И тут бах - в субботу ночью ломается кондиционер, а за окном днем +40°. Это смэрт, температура в квартире в течение ближайших часов поднимается до ~32° и единственное о чем можешь думать — как перестать потеть и чтобы собака не померла. Кондей нам починили только в среду, поэтому видос буду снимать на этих выходных.
Рабочие задачи начались с исследования self-hosted Mattermost как замены Slack-у. Много просмотренных записей конференций, о том как других компании его готовят; тестирование импорта истории из Slack. Вопросов много - объединения воркспейсов, аутентификация пользователей, пуш-уведомления, проивзодительность..
Также прикрутил использование Infisical для хранения всяких токенов и паролей для Ansible-плейбуков, которые у меня автоматически запускаются.
Еще занимаюсь объединением серверов и виртуалок в разных инфраструктурах (дата-центр с bare-metal серверами, разные облачные провайдеры) в единый сетевой контур. Это в рамках довольно большого проекта по объединению инфраструктур нескольких проектов, создании некой общей платформы, чтобы разработчикам не приходилось изучать заново как сделано что-то в соседнем проекте - просто берешь и погроммируешь, а пайплайны похожие все и запускаются одинаково.
А в мире, вон, авиакомпании и крупнейшие энтерпрайзы "встают", потому что антивирус CrowdStrike выпустил свежий патч, который вызывает BSOD(синий экран смерти) на Windows-компьютерах
А у вас что происходило за последние недели?
Как Витька ~~Чеснок вез Леху Штыря~~ положил сеть компании
В бытность мою молодую, когда я управлял сетью вместе с моим старшим, во всех смыслах, товарищем, была у нас такая тема — держать на столе свой свитч (коммутатор). В нем были настроены порты в разные VLAN, чтобы можно было быстро попасть в нужный, просто переткнув свой ПК в другой порт.
VLAN — это когда коммутатор изолирует кадры на втором уровне TCP/IP друг от друга на основе определенной метки, которая указывается в каждом кадре. От VLAN-а зависела IP-подсеть на DHCP-сервере и, соответственно, настройки firewall на сетевом оборудовании.
И вот однажды мы переезжали нашим отделом из одного кабинета в другой. Я уже подрубил свой комп, сижу работаю. Витя всё ковыряется с проводами. Кто-то шарящий уже может догадаться, что произошло дальше. А дальше начинает лагать сеть. О том, что это “не только у меня” я понял по прибежавшему коллеге из отдела техподдержки. Позвонить он мне не мог, сеть же лагает. Да, частенько они прибегали раньше алертов мониторинга.
Я был в процессе поиска неисправностей, когда все, внезапно, заработало снова. Виктор в этот момент решил переключить свой удлинитель в другую 220-розетку. Через пару минут лаги начались снова.
Путешествуя по MAC-таблицам корпоративных свитчей, я дохожу до конкретного порта на конечном коммутаторе, сверяюсь с таблицей соответствия розеток в кабинетах и портов коммутаторов (конечно, у меня была такая). Понимаю, что это наш кабинет, смотрю карту розеток на схеме помещения, сверяюсь с нумерацией, и медленно поднимаю глаза на Витю:
«Дядь Вить, это твоя розетка».
По итогу выяснилось, что один из портов на его свитче — trunk на все vlan-ы, он подключался в сетевую розетку — был зеркалирован на другой порт, в который Витя подключил свой ПК. Грубо говоря, один порт, через который могли проходить все VLAN-ы, дублировался на другой. А в случае, когда MAC-адреса пересекались, сеть начинала бесконечно пересылать данные между этими портами, вызывая "шторм" кадров. Когда Витя переключал удлинитель, это временно разрывало петлю, но как только питание восстанавливалось, всё начиналось заново.
Мораль: иногда самые большие проблемы возникают из-за самых маленьких ошибок. Зачастую человеческих. Не даром говорят, что в модели OSI/ISO есть восьмой уровень — пользователь.
p.s. STP не сработал, почему не помню. А STP — это протокол специально для защиты от петель на втором уровне.
А кто знает, какой механизм используется для защиты от петель (бесконечно путешествующих по кругу пакетов) на третьем уровне?
У Яндекс Облака (1 июня) в новом дата-центре отвечающим за зону доступности ru-central1-d произошел инцидент, связанный с электропитанием.
Для клиентов это выглядело как перезагрузка части виртуальных машин (Compute Cloud). Также наблюдалась недоступность сетевых дисков, используемых в этих виртуальных машинах. К тому же, перезагрузка виртуалок выполнялась неприлично долго.
Инцидент длился около полутора часов до восстановления основной работы и около 7 часов суммарно. По информации Яндекс Облака, это было связано с электропитанием в дата-центре.
Сегодня Яндекс Облако опубликовало отчет об инциденте:
Интересное чтиво, рекомендую.
Мораль: нужно делать мультизональное резервирование нагрузки. Простыми словами, создавать реплики наших сервисов в двух и более зонах доступности (дата-центрах). В таком случае выход из строя одного ДЦ не приведет к отказу сервиса.
этогик | youtube | #инциденты
? Приветосы! Что по задачам за последнее время?
Основная движуха в этом спринте была связана с написанием плана общей платформы.
Сейчас у нас есть два проекта с разными стеками, разными подходами к деплоям, разными способами запуска периодических заданий, сбора метрик и мониторинга, сетевых доступов.
А нужно, чтобы разработчики могли максимально безболененно переключаться между задачами на двух проектах. Чтобы были общие подходы в мониторинге, оценке перфоманса, сборке и выкатке. Так и разрабам удобно, и инфра-команде проще будет поддерживать это все.
В итоге у меня получился довольно обширный роадмап на приличное количество человеко-часов. И даже интересно. Меня вообще реально драйвит то, что я делаю на работе — поддержка и оптимизация вот этого “живого организма”. И я пишу это даже без клоунского смайлика.
География рулит! У нас есть джоба, которая выкачивает бекап продовой базы данных, обезличивает его и раскатывает на дев-окружение. Сократил время выполнения джобы на 40% просто переместив s3-бакет географически ближе к серверам.
Еще поковырялся с запуском Python+Selenium тестов в контейнере, с отчетиками в Gitlab-е (через junit артефкат). Вот хз, как будто бы отчеты в Allure выглядят нагляднее. Но их еще надо куда-то складывать в отдельное место, а junit отлично парсится самим Гитлабом. Скоро буду вкорячивать их запуск в общий пайплайн деплоя.
Осталось неделю поработать до отпуска, жду. Там еще и микрофон клевый должен приехать. А у вас что на неделе было интересного?
И да, хороших выходных!
IaaS, PaaS и SaaS
Ты, наверное, часто слышал эти термины, но задавался вопросом «чем они отличаются»? А еще это иногда спрашивают на собесах.
IaaS (Infrastructure as a Service) — это когда ты арендуешь виртуальные машины, сети, хранилища и другие инфраструктурные ресурсы. Например, AWS EC2, Google Compute Engine или Microsoft Azure VMs. Всё делаем сами, кроме установки и покупки железного оборудования. Для тех кто хочет полный контроль над своей инфраструктурой. Ты сам настраиваешь серверы, сеть, устанавливаешь операционную систему и всё программное обеспечение. Это как арендовать пустую квартиру: стены есть, но всю мебель ты выбираешь сам.
PaaS (Platform as a Service) — это уже платформа для разработки и развертывания приложений, где провайдер управляет инфраструктурой и ОС за тебя. Ты пишешь только код, настройка инфраструктуры автоматическая (грубо говоря, ты даже не знаешь на какой инфраструктуре это запускается). Они же — Serverless Computing. Например AWS Lambda, Google App Engine, Heroku и Microsoft Azure App Services. Для разработчиков, которым нужно только писать и запускать код, не заморачиваясь с серверной частью. Можно поэкономить на девопсах. Представь, что тебе дали уже обставленную квартиру: ты можешь сразу начать жить, не думая о покупке мебели.
SaaS (Software as a Service) — это уже готовое ПО, обычно доступное онлайн. Типичные примеры — Slack, Google Workspace, Microsoft Office 365. Доступность из любого места, где есть интернет. Отсутствие затрат (временных и финансовых) на поддержку и настройку — платим только за сам сервис. Это как снять квартиру на Airbnb: все уже готово к твоему приезду, просто бери и пользуйся.
этогик | youtube | #техшортики
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 week, 2 days ago
Новые и перспективные Web3 игры с добычей токенов.
Чат: https://t.me/Crypto_Wolf_Chat
Правила чата смотрите в описании чата.
Все свои вопросы направляйте в чат или главному модератору чата: @Exudna_118
По теме сотрудничества: @Zombini
Last updated 2 months, 3 weeks ago