DevOps Brain 🧠
1.35K subscribers
132 photos
17 videos
130 links
Пишу про kubernetes, terraform, linux, сети, автоматизации и полезные тулзы. Без спама и щитпостинга.

Хотите пообщаться? @devopsbrain_chat

Автор: @itcaat
Download Telegram
📰 Бесплатный сайт/блог/cv/wiki - закроем уже эту тему. [Часть 2]

“Но тут же чужие посты и контакты!” скажете вы. Cейчас это поправим. За то что мы видим на сайте отвечают файлы внутри content и файл конфигурации hugo.toml. Я не хочу подробно тут останавливаться на hugo.toml - там все интуитивно понятно. У меня будет примерно будет так:


baseURL = "https://itcaat.github.io"
title = "ItCaat personal blog and CV"
....
[[params.social]]
name = "GitHub"
icon = "github"
url = "https://github.com/itcaat"
[[params.social]]
name = "Twitter"
icon = "twitter"
url = "https://x.com/itcaat"
....


# Шаг 5. Теперь давайте вернемся к наполнению. Тут надо понимать две простые вещи: все одержимое вашего сайта находится в content и все содержимое это обычные md-файлы из которых в дальнейшем генерируется сайт.

Вы можете отредактировать, создать и удалить текущие посты как вам нравится. Ну и отредактируйте about.md.


# Новые посты рекомендуется создавать через команду.
# По-умолчанию пост создает в draft и не будет опубликован.
# Draft версия доступна только при локальном запуске hugo.
# Когда пост будет финально готов - то просто удалите draft: true
hugo new posts/kak-kakat.md


Мы подошли к финалу - публикация нашего сайта. Давайте запустим его, проверим что нам все нравится и зальем финальные правки.



hugo server --buildDrafts
git add . && git commit -m "ready for release" && git push


# Шаг 6. Доверим всю работу по публикации github actions. Для этого просто закинем в .github/workflows/hugo.yml содержимое ниже и commit push. Данный файл сделает всю грязную работу и опубликует наш сайт.


# .github/workflows/hugo.yml
name: Deploy Hugo site to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

# Default to bash
defaults:
run:
shell: bash

jobs:
# Build job
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.145.0
steps:
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Install Dart Sass
run: sudo snap install dart-sass
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Install Node.js dependencies
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
- name: Build with Hugo
env:
HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache
HUGO_ENVIRONMENT: production
run: |
hugo \
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/"
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4



Заливаем правки по github actions и дожидаемся публикации нашего сайта.


git add . && git commit -m "github actions" && git push


Поздравляю, у вас бесплатный сайт/блог/wiki/cv доступный по адресу https://itcaat.github.io. Для тех кому лень разбираться в деталях и вы хотите такой же сайт в таком же исполнении - просто форкайте репу https://github.com/itcaat/itcaat.github.io
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍18🔥7❤1🥰1
✨️️️️️️️ Иллюзия приватности: как мы доверились ИИ без оглядки

Кажется, ещё вчера искусственный интеллект был чем-то из фильмов и фантазий. А сегодня - он везде: в чатах, в рабочих инструментах, в личных помощниках. Мы удивительно легко впустили его в свою жизнь - с интересом, с восхищением, с доверием.

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

Мы ведём себя так, будто это безопасное пространство. Будто есть некий невидимый контракт: "Ты такой классный помошник, я тебе доверяю".

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

Но ИИ не магия. И под капотом там инфраструктура и люди, которые ее обслуживают. А инфраструктура ломается. Сливается. Продаётся. Взламывается.

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

Безопасники: Василий, мы обнаружили утечку данных и следы ведут к вам!
Василий: Но я просто промтил…
Безопасники: А, ну тогда все в порядке, извините за беспокойство.


Что можно и нужно сделать компаниям прямо сейчас?

1. Определить политики использования ИИ. Чётко зафиксировать, какие данные можно и нельзя передавать в ИИ-инструменты, особенно внешние.
2. Обучать сотрудников. Рассказывать не только о возможностях ИИ, но и о рисках. Показывать реальные кейсы утечек.
3. Использовать self-hosted и on-prem решения. Там, где это возможно - разворачивать модели локально, контролируя окружение.
4. Анализировать политику конфиденциальности используемых сервисов. Проверять, передаются ли данные третьим сторонам, используются ли они для обучения моделей.
5. Инвентаризировать, какие ИИ-сервисы уже используются в компании. "Теневой ИИ" - это как теневой IT: опасен, если не знаете, где он уже работает.

ИИ даёт мощные возможности. Но без здравого смысла и защиты данных - это всего лишь ещё один путь к новой форме утечки.
🔥12👍2👏2❤1
Котлеги, привет. Сегодня без длинных постов - но я не могу не рассказать про https://github.com/ripienaar/free-for-dev.

Это просто клад - тысячи бесплатных сервисов и инструментов для ойтишников: хостинги, CI/CD, мониторинг, базы данных и многое другое. И самое главное что не триалы, а реально бесплатные тарифы (с ограничениями, но без внезапных счетов).

Если вы запускаете pet-проект, MVP или просто хотите сэкономить на инфраструктуре - must-have в закладках.

P.S. Если вы уже что-то используете оттуда - напишите, что зашло. 🤘

#tools
👍9👀8❤3🔥1
🔖 Как умерла OS/2 в неравной схватке с Windows

Пока я готовлю несколько классных статьей (спойлер: про grafana и про мониторинг CPU), решил сюда выложить историю легендарной операционной системы, которая была уже опубликована мной на хабре, но почему то не пошла сюда. Заваривайте чай, берите печеньки и наслаждайтесь - будет интересно.

А вы знали что операционная система OS/2 должна была стать революцией, а стала легендой? В этот прекрасный воскресный вечер предлагаю вам вместе со мной вернуться в прошлое и вспомнить или, возможно, узнать для себя что то новое об истории OS/2. [image01]

В начале 1980-х IBM была лидером в производстве компьютерного железа (аппаратного обеспечения), но у неё не было опыта в создании операционных систем для массового пользователя. Она искала партнёра, который бы помог разработать простую и удобную ОС для нового IBM PC. [image02]

IBM стремилась как можно быстрее закрепить своё лидерство на рынке персональных компьютеров. Для этого нужна была ОС, способная превзойти MS-DOS и конкурировать с появляющимися графическими системами (Macintosh от Apple).

Партнёрство с Microsoft выглядело самым быстрым и надёжным способом добиться этой цели. И вот в 1985 году IBM и Microsoft объявили о партнёрстве по созданию новой ОС - OS/2. Она должна была прийти на смену DOS. Microsoft тогда верила: “Windows - это временный шаг. Будущее за OS/2”.

Windows 1.0 и 2.0 были по сути надстройками над MS-DOS, а не полноценными ОС. Они не имели защищённой памяти и серьёзных архитектурных решений. В глазах Microsoft Windows была временным шагом, который просто поможет плавно перевести пользователей с текстового интерфейса на графический, пока не выйдет OS/2. [image03]

OS/2 1.0 вышла в декабре 1987. Без GUI, только текстовый интерфейс. Зато: поддержка 80286, многозадачность, управление памятью до 16 МБ. Но не запускала Windows-программы. [image04]

IBM и Microsoft делили обязанности: IBM работала над Presentation Manager (графикой), Microsoft - над ядром и API. В итоге GUI OS/2 1.1 стал прообразом будущего Windows 3.x. Presentation Manager был амбициозным: поддержка окон, пропорциональных шрифтов, горячих клавиш. А позже Microsoft даже выпустила Word и Excel под OS/2. [image05]

Но у OS/2 была проблема - она требовала 2 МБ ОЗУ, а память в 1989 году это очень дорого. Windows 3.0, вышедшая в 1990, запускалась на 640 КБ и стала коммерчески успешной. Низкие системные требования, доступная цена, лёгкая установка и большое количество популярных приложений и игр. [image06.png]

продолжение ⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Всё это позволило Microsoft продать 10 млн копий за 2 года. Да, OS/2 была функциональнее, но она была дороже, сложнее и менее доступной массовому пользователю. И Microsoft поняла: зачем делиться OS/2 с IBM, если можно развивать Windows и контролировать рынок. А еще поняла, что пользователям важнее удобство и доступность, а не техническое совершенство. Именно в этот момент Microsoft приняла решение покинуть проект OS/2 и начать разработку Windows NT, опираясь на опыт, полученный во время работы над OS/2. А IBM продолжила развивать OS/2 самостоятельно.

Разблокировано воспоминание: Когда мне было лет 6, я дружил с девчонкой. Она жила несколькими этажами ниже. Я довольно часто бегал к ней в гости. А у нее был старший брат, который увлекался компами - и я вот помню как он мне хвастался что поставил на комп OS/2. Он был явно очень собой доволен и счастлив, что у него это получилось. Я не знаю как я это помню до сих пор, но почему то это отпечаталось в моей памяти.

В 1992 выходит OS/2 2.0 уже без участия Microsoft. Полноценная 32-битная система для 386, поддержка кооперативной и вытесняющей многозадачности, виртуализация DOS, запуск Windows-программ внутри - всё это было в новой операционной системе.

OS/2 могла одновременно запускать несколько Windows 3.0 приложений в отдельных защищённых сессиях. И это было даже безопаснее и стабильнее, чем сам Windows.

IBM продвигала OS/2 как “лучше Windows”, но этой ОС нужно было больше ОЗУ, места на диске, и драйвера ставились труднее. К тому же не каждый пользователь справлялся с установкой.

Выход Windows 3.1 в 1992 добил ситуацию. Простая установка, игры, драйвера - всё шло “из коробки”. OS/2 же оставалась системой для гиков и корпоративных клиентов.

В мае 1993 года IBM выпускает OS/2 2.1 и к концу 1993 года IBM занимает всего лишь менее четырех процентов рынка настольных компьютеров. Но начинает прокладывть себе путь как на рынок серверов и встраиваемых систем.

В 1994 IBM выпускает OS/2 Warp 3.0 и она стала самой популярной версией OS/2. Она предлагала поддержку мультимедиа, интернет-приложений и имела улучшенный интерфейс. Warp продавалась в коробках, рекламировалась в журналах и по ТВ.

IBM даже подписала контракт с DC Comics - выпускали комиксы о WarpMan, борющемся с “злыми синими окнами”. Но несмотря на юмор и креатив, успеха не вышло.

В 1995 выходит Windows 95. Поддержка Win32, современный GUI, огромная база разработчиков и массовая реклама от Microsoft сделали своё дело - окончательно добили OS/2 на рынке настольных ПК.

К концу 1996 года OS/2 завоевала почти тринадцать процентов рынка серверов и чуть более трех процентов рынка настольных ПК. Серверные версии OS/2 были технически превосходны и имели хорошую ценность, но NT быстро обгоняла OS/2, а Linux также начал отвоевывать часть рынка серверов.

В 2001 IBM выпустила последнюю версию - OS/2 Warp 4.52. После этого проект закрыли, но лицензии передали сторонним компаниям. Так появились eComStation и ArcaOS на базе OS/2.

ArcaOS - современное ответвление OS/2. Работает на новых процессорах, поддерживает USB 3.0, Wi-Fi, современные дисплеи и т.д. Система всё ещё используется в некоторых банках.

OS/2 была технически передовой системой, превосходящей Windows по многим параметрам, но проиграла из-за более высокой стоимости оборудования, сложности использования, неудачной маркетинговой стратегии. Но ключевым фактором стал разрыв отношений с Microsoft, которые вовремя поняли что пользователи не хотят настраивать систему, они хотят включить и чтобы сразу работало. Можем ли мы упрекнуть Microsoft в неэтичности по отношению к IBM вопрос открытый - решайте сами…

https://habr.com/ru/articles/906698/

#facts
👏6🔥3👍1
🔖Как прокачать сетку между разными ЦОД за пару команд

Сегодня поговорим как разогнать скорость передачи по сети на максимум всего за пару команд. В качестве примера представим, что у нас распределенная инфраструктура, которая живет в разных регионах. Также у нас есть какой то VPN между ЦОД-ами, который решает проблему связности ресурсов и безопасности. И есть требование: каждый час надо скачивать бекап на 50GB и разворачивать в другом регионе.

И вот вы настроили свой cronjob, запустили его и пошли пить чай и брать следующую таску в работу. Через какое то время обнаруживаете что скорость во время скачивания бекапа серьезно проседает, ну и плюс периодически могут теряться пакеты, а RTT вообще 30ms. И вот бекап уже даже за пару часов не может скачаться.

Это классическая история для алгоритма управления перегрузкой (Congestion Control Algorithms) CUBIC. Эти алгоритмы встроены в ядро операционных систем и работают автоматически, без вашего участия.

Но не все так плохо - Google начал придумывать более оптимальный алгоритм еще в 2016 и назвал его BBR (Bottleneck Bandwidth and Round-trip time). Алгоритм BBR проходит через несколько фаз, но для простоты можно выделить его основную логику:

1. Разведка: BBR периодически ненадолго увеличивает скорость отправки данных, чтобы проверить, не выросла ли пропускная способность канала (вдруг «трубу» расширили?).
2. Дренаж: После разведки он наоборот, немного снижает скорость, чтобы «осушить» возможные очереди из пакетов, которые могли скопиться в буферах маршрутизаторов, уменьшая задержку.
3. Стабильная работа: Основное время BBR работает на рассчитанной оптимальной скорости, которая обеспечивает максимальную пропускную способность при минимальной задержке.

Ключевое отличие в том, что CUBIC реагирует на потери, а BBR реагирует на изменения в сети (сравнение CUBIC и BBR на реальных устройствах от компании ESNet https://internet2.edu/wp-content/uploads/2022/12/techex22-AdvancedNetworking-ExploringtheBBRv2CongestionControlAlgorithm-Tierney.pdf)

BBR вы можете включить на свежих ядрах как Linux так и Windows:


# linux
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

# windows
NetTCPSetting | Select SettingName, CongestionProvider
netsh int tcp set supplemental template=Internet congestionprovider=BBR2
netsh int tcp set supplemental template=InternetCustom congestionprovider=BBR2
netsh int tcp set supplemental template=Datacenter congestionprovider=BBR2
netsh int tcp set supplemental template=DatacenterCustom congestionprovider=BBR2
netsh int tcp set supplemental template=Compat congestionprovider=BBR2


Где можно попробовать включать: между облаками/ЦОДами (NAT и VPN-шлюзы), а также конечные сервера где требуется просасывать большие объемы трафика.

На моей практике включение BBR на конечных серверах и VPN-инстансах дало буст по сетке x6. Но вы должны иметь ввиду, что BBR может быть довольно агрессивен по отношению к соседям использующим CUBIC - поэтому после включения стоит понаблюдать за ситуацией. А сравнить эффективность вы можете через iperf3 -c YOUR_IP -t 60 -P 16.

#linux #networking
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16