Пятничный деплой
4.36K subscribers
1.27K photos
24 videos
163 files
7.53K links
Подборка ссылок, статей и постов из мира DevOps\SRE\разработки. Если вы хотите прислать фидбек, интересную статью или просто поболтать пишите @count0ru https://t.me/s/count0_digest
Download Telegram
Forwarded from DevOps Deflope News
VictoriaMetrics представила новый продукт — VictoriaMetrics Cloud. Это платформа, которая позволяет запускать Enterprise-версию базы данных в AWS без лишних настроек. Схема та же, что у ClickHouse Cloud, — автоматизация, которая поднимает инстанс БД в популярном облаке. Правда, пока VictoriaMetrics предлагает только облако Amazon, но в планах есть GCP и Azure.

Компания обещает сокращение расходов на мониторинг за счёт хранения большего объёма данных на том же «железе» и оплаты только за используемые ресурсы. В списке фичей платформы — автоматические бэкапы, настройка правил алертов и масштабирование в несколько кликов.

Подробности — в блоге компании: https://e42.link/4duiRg8
Forwarded from Евгений Козлов пишет про IT (Eugene Kozlov)
asyncio: We Did It Wrong

Серия статей по асинхронному программированию от Staff инженера Spotify. Под капотом 8 частей покрывающий практически все вопросы по asyncio возникающие у разработчика:

Part 0: Initial Setup
Part 1: True Concurrency
Part 2: Graceful Shutdowns
Part 3: Exception Handling
Part 4: Working with Synchronous & Threaded Code
Part 5: Testing asyncio Code
Part 6: Debugging asyncio Code
Part 7: Profiling asyncio Code

Во многом благодаря этому сокровищу я разобрался как готовить асинхронщину на Python и не выстрелить себе в ногу. Советую к ознакомлению всем питонистам и тем кому просто интересна тема конкуретности.

https://www.roguelynn.com/words/asyncio-we-did-it-wrong/
Сегодня говорим про bytes!

Вышел восьмой урок "Лучшего курса по Питону": https://www.youtube.com/watch?v=RbznhbK3vC0

Что вообще такое "Лучший курс по Питону"?
- Я решил разобрать все исходники CPython и показать, как на самом деле работают все его части
- В каждом видео я рассказываю про одну узкую тему
- Каждое видео я делю на три уровня сложности: для джунов, мидлов и сениоров
- Переодически беру интервью у других core-разработчиков CPython про разные части интерпретатора в их зоне интересов
- Получается очень хардкорно!

Например, в bytes я показываю, как устроен PyBytesObject (он простой):


typedef struct {
PyObject_VAR_HEAD
Py_DEPRECATED(3.11) Py_hash_t ob_shash;
char ob_sval[1];

/* Invariants:
* ob_sval contains space for 'ob_size+1' elements.
* ob_sval[ob_size] == 0.
* ob_shash is the hash of the byte string or -1 if not computed yet.
*/
} PyBytesObject;


Как устроен Buffer протокол для bytes с его __buffer__ и __release_buffer__:


static int
bytes_buffer_getbuffer(PyBytesObject *self, Py_buffer *view, int flags)
{
return PyBuffer_FillInfo(view, (PyObject*)self, (void *)self->ob_sval, Py_SIZE(self), 1, flags);
}

static PyBufferProcs bytes_as_buffer = {
(getbufferproc)bytes_buffer_getbuffer,
NULL,
};


Дополнительные материалы (не вошли в выпуск):
- mypy: bytes и bytearray c disable_bytearray_promotion и disable_memoryview_promotion https://github.com/python/mypy/commit/2d70ac0b33b448d5ef51c0856571068dd0754af6
- Мутабельность bytes https://docs.python.org/3.13/c-api/bytes.html#c._PyBytes_Resize
- PyBytes_Writer API: https://github.com/capi-workgroup/decisions/issues/39
- ob_shash deprecation: https://github.com/python/cpython/issues/91020

Поддержать проект можно тут: https://boosty.to/sobolevn

#лкпп #python #c
💣 Почему бы в пятницу не грохнуть часть инфраструктуры своего прода и посмотреть как пойдут дела?

- Deploy on Friday? How About Destroy on Friday! A Chaos Engineering Experiment - Part 1;
- Destroy on Friday: The Big Day. A Chaos Engineering Experiment - Part 2.

#sre #напочитать
Forwarded from Евгений Козлов пишет про IT (Eugene Kozlov)
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 GoNB ядро Go Notebook для Jupyter

Notebook облегчают так называемое literate programming (грамотное программирование), где вы видите результаты немедленно, как REPL, но с сохранением и контролем над исходным кодом. Распространенный в Python, GoNB приносит такую же возможность в мир Go. В последнем выпуске добавлена​​поддержка Jupytext.

👉 GitHub
Forwarded from DevOps Deflope News
Elasticsearch и Kibana снова Open Source

В блоге Elastic вышла новость о том, что код Elasticsearch и Kibana в скором времени снова будет распространяться под свободной лицензией. Это будет AGPL, одобренная Open Source Initiative. Позитивные изменения основатель компании объяснил тем, что получилось разрешить прошлые проблемы с AWS.

https://e42.link/3Ms1aBY
🔵 Получи оффер инженера технической поддержки всего за неделю!

Ведущая технологическая компания России YADRO приглашает на One Week Offer инженеров технической поддержки, которые хорошо знают принципы серверной архитектуры и СХД.

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

Принять участие и заполнить форму можно по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps FM
Всем DevOps! 🖖

Возможно, вы уже слышали о nxs-backup или читали статью о nxs-marketplace-terraform. Если нет, то мы немного расскажем об полезных open-source инструментах и репозиториях Nixys.

nxs-backup — инструмент резервного копирования для создания и доставки бэкапов, совместимый с дистрибутивами GNU/Linux.

nxs-data-anonymizer — инструмент для анонимизации дампа различных баз данных PostgreSQL и MySQL/MariaDB/Percona.

nxs-universal-chart — репозиторий с универсальным Helm-чартом, направленным на развёртывание приложений в Kubernetes, OpenShift и другие оркестраторы, совместимые с API Kubernetes.

nxs-marketplace-terraform — репозиторий, содержащий модули Terraform для упрощения развёртывания и настройки основных инструментов с поддержкой различных версий ПО и нескольких облачных сервисов.

nxs-marketplace-ansible — репозиторий с ролями Ansible, которые позволяют легко развёртывать и настраивать основные технологии.

nxs-marketplace-k8s-apps — репозиторий, содержащий модули Terraform для простого развертывания и настройки основных ресурсов с различными версиями программного обеспечения.

Если вы ими уже пользуетесь, то будет здорово, если поделитесь опытом в комментариях. А если хотите попробовать — приглашаем на GitHub!

#open_source #DevOps
This media is not supported in your browser
VIEW IN TELEGRAM
Знаю, что многие тут хотят уйти в DevOps. Но не знают где взять информацию и четкий план.

💪 Советую бесплатный мета-курс Devops Roadmap - это расширенный чек-лист, который поможет сориентироваться в мире DevOps и стать крутым спецом.

👀 В мета-курсе перечислены все основные разделы и навыки, которыми должен обладать DevOps инженер: от Linux до программирования в удобном формате.

✔️А еще он будет полезен при подготовке к собеседованиям.

👽 Кстати, бонусом крутой канал о девопс. Там тоже самые свежие IT-новости, полезные советы от DevOps-инженера с 20-летним стажем, эксклюзивные материалы, релизы топовых инструментов, обзоры вакансий и личный взгляд на девопс-сферу.

📌 Ну а тем, кто хочет двигаться под руководством наставника - индивидуальная программа.
Forwarded from Мониторим ИТ
k8spacket - a fully based on eBPF right now

Репыч на Гитхабе

Что такое k8spacket? Это инструмент для сбора информации о трафике TCP и метаданных TLS-подключений в кластере Kubernetes с использованием eBPF и визуализации в Grafana. Подробнее в статье.

❗️ Статья на medium.com
Forwarded from Евгений Козлов пишет про IT (Eugene Kozlov)
CPU, Memory Models, Concurrency, Multiprocess, Multithreading и Async. Часть 2

Продолжаем разбираться с процессорами а именно с тем как развивалась их конфигурация со временем.

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

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

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

Но есть ли лимиты у подобного способа масштабирования? Теоретически нет. А практически как и всегда нужно помнить о том что чип будет увеличиваться в размерах, нужно его охлаждать и следить за энергопотреблением.

Перейдем к ОС и Софту.
Мультизадачные ОС создавались с учетом новых трендов в железе и могли утилизировать несколько ядер. А как дела обстоят с программами? Если программа была написана в строго последовательном стиле то она не сможет утилизировать появившиеся мощности и скорость работы не увеличится.

Поэтому чтобы делать свои программы быстрыми и производительными нужно учиться писать код по другому. Как? Создавать дополнительные дочерние задачи в рамках основной.
Для этого о мультизадачных ОС появились системные вызовы, например:
- Windows: CreateProcess и CreateThread.
- Linux / Unix: clone(2) как основной системный вызов на основе которого реализована функция fork(2) для создания дочернего процесса.

В отличии от Windows в Linux из коробки не было явного API для создания легковесных потоков (для масштабирования использовались процессы с некоторыми оптимизациями) поэтому в начале 2000х была предпринята попытка сделать "свои потоки" (LinuxThreads) но спустя короткое время она была полностью заменена POSIX Threads. POSIX Threads со временем стал дефакто стандартом для работы с потоками и реализации данного API есть для большинства систем.

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

Спасибо что читали, увидимся завтра😊

Доп ссылки:
- Why haven't CPU clock speeds increased in the last 6 years?
- Why multi core processors?
- Advantages and Disadvantages of Multicore Processors
-----

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

Предлагайте темы для будущих постов, задавайте вопросы или оставляйте отзывы/пожелания.😊
Forwarded from DevOps Deflope News
В апреле мы приглашали вас поучаствовать в исследовании State of DevOps Russia 2024. Обработка данных закончена, а значит, можно посмотреть подробный отчёт о результатах.

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

Смотреть полную версию отчёта
Forwarded from Мониторим ИТ
Better root cause analysis: Mastering alert insights with the new central history timeline

Чтобы обеспечить стабильность системы и предотвратить сбои, в Grafana 11.2 появился новый интерфейс для просмотра истории состояний всех оповещений в системе. Страница «История» показывает все переходы состояний для каждого правила оповещения, управляемого в Grafana. Читать в блоге Grafana.
🔥Команда Экспресс 42 при поддержке генеральных партнеров, выпустила полную версию Исследования состояния DevOps 2024!

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

Посмотреть полную версию можно 👉 по ссылке!
Forwarded from KazDevOps
🔥 Коллекция шаблонов, примеров и ресурсов для проектирования процессов и структур репозиториев GitOps

Проектирование GitOps помогает автоматизировать и улучшить процессы развертывания приложений и управления инфраструктурой.

👉 Этот репозиторий облегчит построение GitOps

Вот что вы получаете с GitOps:

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

Пользуйтесь и делитесь с коллегами 🫡

#GitOps #Patterns #RepositoryDesign

@DevOpsKaz 😛
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from /usr/bin
How to calculate CPU for containers in k8s dynamically ?

В k8s можно динамически изменять количество ядер CPU в контейнерах с помощью функции «InPlacePodVerticalScaling» .

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

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

❗️Статья на medium.com
Forwarded from DevOps&SRE Library
Please open Telegram to view this post
VIEW IN TELEGRAM