Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.4K photos
72 videos
4 files
2.61K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
💥⚠️ Рекомендации по безопасности: высокая степень уязвимости Curl

Разработчики curl, популярного инструмента командной строки и библиотеки для передачи данных выпустили релиз 8.4.0 11 октября 2023 года. Эта версия включает исправление для двух распространенных уязвимостей, одну из которых разработчики curl оценивают как «ВЫСОКУЮ» степень серьезности и описывают как «вероятно, худший недостаток безопасности curl за долгое время».

Айдишники CVE:

CVE-2023-38545: переполнение буфера кучи SOCKS5, высокая степень серьезности (влияет как на libcurl, так и на инструмент curl)
CVE-2023-38546: внедрение cookie без файла, степень серьезности НИЗКАЯ (влияет только на libcurl, а не на инструмент)

Подробная информация о том, как используются эти CVE, опубликована вместе с рекомендацией. Разработчик curl опубликовал пост с более подробной информацией о том, как возникла уязвимость в результате конкретной реализации поддержки SOCKS5.

В данной статье объясняется, как можно использовать Docker Scout, чтобы понять, есть ли зависимость от curl в образах контейнеров, а также представлено руководство о том, где была введена зависимость и как обновить curl до версии 8.4.0.

Подробности тут

#гайд
👍42👏2
🧖🧖 System Design 101

Объясняются сложные системы, используя наглядные материалы и простые термины.

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

Шпаргалка

#туториал
6👍1
#вопросы_с_собеседования

Что такое RAID? Какие основные типы RAID существуют?

В работе с дисками есть две проблемы:

✏️ Низкая скорость чтения\записи
✏️ Выход дисков из строя и потеря данных

И это всё решается с помощью технологии RAID — избыточного массива независимых дисков.

Существуют следующие уровни спецификации RAID: 1, 2, 3, 4, 5, 6, 0. Кроме того, существуют комбинации: 01, 10, 50, 05, 60, 06. Существуют аппаратные и программные RAID-массивы.

Программные массивы создаются уже после установки ОС средствами программных продуктов и утилит, что и является главным недостатком таких дисковых массивов.
Аппаратные RAID’ы создают дисковый массив до установки ОС и от неё не зависят.
RAID 0 — чередование
RAID 1 — зеркалирование
RAID 5 — чередование с четностью
RAID 6 — чередование с двойной четностью
RAID 10 — совмещение зеркалирования и чередования
🔥9👍3🌚1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
❤️🙏 Путь к мечте: как инвалидность не помешала стать разработчиком и продолжить борьбу за здоровье

Автор «Библиотеки программиста» Станислав Герасимов, инвалид с детства, делится жизненной историей становления профессиональным разработчиком.

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

🔗 Читать статью
🔗 Зеркало
👍5
Маск навел суеты вокруг ИИ, поэтому и вам предлагаем немного погрузиться в эту тему. Поможет #дайджест бесплатных курсов по ИИ и ChatGPT:

🚀 Генеративный ИИ для всех — как работает генеративный искусственный интеллект и как использовать его в своей жизни и на работе

🔥 Введение в генеративный ИИ от Google — что такое генеративный искусственный интеллект, как он используется и чем отличается от традиционных методов машинного обучения

🔵 Гарвардский курс CS50 «Введение в искусственный интеллект с помощью Python» — учимся использовать машинное обучение на Python

✈️ Знакомство с ответственным ИИ от Google — что такое ответственный ИИ, почему это важно и как Google внедряет ответственный ИИ в свои продукты

👨‍💻 Оптимизируем работу с помощью Microsoft Bing Chat — как Bing Chat может выполнять широкий спектр задач и помочь вам оптимизировать весь рабочий процесс
3👍2
🤔 Что ты такое, dhclient?

Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.

Один из самых простых протоколов с точки зрения сетевого взаимодействия — UDP 67+68. Это всего четыре сообщения: DHCPDISCOVER, DHCPOFFER, DHCPREQUEST, DHCPACK. И даже не будем усложнять себе жизнь, используя DHCP Relay.

Остальная часть истории здесь

#почитать
❤‍🔥173🔥3👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏆 Самые популярные языки программирования 2023

Популярность ЯП зависит от нескольких факторов. Мы разобрались с ними, составили сводный рейтинг и обсудили особенности, преимущества, недостатки и причины популярности каждого языка. Заходите и читайте👇

🔗 Читать статью
🔗 Зеркало
3🥱2
Как быть, если запустил скрипт в терминале, без nohup и применения screen? Ждать завершения не вариант, и завершать нельзя...

Сделаем подопытный образец, который в цикле, каждые 2 секунды будет писать в файл числа от 1 до 10000, чтобы визуально понимать что происходит.

#!/bin/bash

for i in {1..10000}
do
echo $i >> /tmp/log.txt
sleep 2
done

Открываем второй терминал:

tail -f /tmp/log.txt

Видим как log.txt постепенно наполняется.

Жмем сочетание клавиш ctrl+z в первом терминале, где был запущен скрипт.

Комбинация клавиш Ctrl + Z посылает процессу сигнал, который приказывает ему остановиться. Это значит, что процесс остается в системе, но замораживается.


Получаем такое:

[1]+ Stopped ./script.sh

Видим что скрипт остановил свою работу. А во втором терминале с tail, цифры перестали заполнять файл. Ключевое слово - остановил, но не прекратил.

А теперь в первом терминале запустим команду bg, и увидим такое:

[1] + ./script.sh & 


Команда bg предназначена для возобновления исполнения остановленной задачи в фоновом режиме в командных оболочках.


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

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

disown %1


Команда disown блокирует отправку системного сигнала SIGHUP с помощью командной оболочки и исполняющемуся в фоновом режиме процессу при завершении работы командной оболочки.


Теперь в первом терминале пишем exit либо просто закрываем его. А во втором терминале работа скрипта продолжается.
🤩23👍113🔥3
🤔😱 Что происходит после команды kubectl run?

Представьте, что вы хотите развернуть nginx в кластере Kubernetes, набрав что-то вроде этого в своем терминале:

kubectl create deployment nginx --image=nginx --replicas=3

Через несколько секунд увидите три модуля nginx, распределенных по всем рабочим нодам. Что на самом деле происходит под капотом?

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

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

#туториал
👍11🔥52
🤜🤛 🤙 Сoop-Days 2023 — День информационных технологий и безопасности

Конференция Coop-Days 2023 посвящена двум ключевым темам: кооперация и самоуправление, и информационные технологии и безопасность.

Конференция будет интересна как отраслевым специалистам, так и людям, интересующимся и практикующим в своей деятельности практики самоуправления и кооперации.

Видео

#мероприятие
👍5👏1
Очередной #дайджест инструментов и материалов по DevOps

🟢 Релиз Docker Desktop 4.25 — улучшения в Docker Desktop для Windows, Rosetta для Linux GA и новый Docker Scout Image Analysis

🟢 Terraform AWS Drift Checks — как бороться с «дрейфом» настроек в IaC

🟢 tEKS — набор модулей Terraform / Terragrunt, предназначенных для предоставления вам всего необходимого для запуска производственного кластера EKS на AWS

🟢 BPF и безопасность: друзья и враги — как BPF используется для обеспечения безопасности, как BPF обеспечивает свою собственную безопасность, свои привилегированные и непривилегированные варианты использования

🟢 Эволюция разработки ПО — подробный рассказ об эволюции Software Engineering и попытка понять, как индустрия должна измениться сегодня
🔥6👍53😁3🤩3
#вопросы_с_собеседования

Какие основные типы RAID существуют, чем они отличаются?

RAID 0 — Чередование

В системе RAID 0 данные разделяются на блоки, которые записываются на все диски в массиве. При одновременном использовании нескольких дисков (как минимум 2) это обеспечивает превосходную производительность ввода-вывода.

RAID 1 — Зеркальное отображение

Данные хранятся дважды, записывая их как на основной диск (или набор дисков), так и на зеркальный диск (или набор дисков). В случае сбоя диска контроллер использует основной диск или зеркальный диск для восстановления данных и продолжает работу.

RAID уровень 5

RAID 5 является наиболее распространенным безопасным уровнем RAID. Требуется как минимум 3 диска, но может работать до 16. Блоки данных распределяются по дискам, и на одном диске записывается контрольная сумма четности всех данных блока

Уровень RAID 6 — Чередование с двойной четностью

RAID 6 похож на RAID 5, но данные о четности записываются на два диска. Это означает, что для него требуется как минимум 4 диска и он может выдержать 2 диска, умирающих одновременно.

RAID уровень 10 — объединение RAID 1 и RAID 0

Можно объединить преимущества (и недостатки) RAID 0 и RAID 1 в одной системе. Это вложенная или гибридная конфигурация RAID.
13👍4🥰3
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
4
#memes

Когда бэкэндер решил заняться установкой люстр
8😁5🥰1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📯Внимание всем отважным героям и искателям приключений!

«Библиотеки Программиста» с гордостью представляет новую захватывающую игру — «Битва с Драконом». Выберите своих персонажей и сразитесь с древним Крылатым Ужасом Бурлопиворогом в эпическом поединке!

Мы предлагаем вам взять под свой контроль хитроумного изобретателя или ловкого вора.

💎Победителей ждет почет, уважение и награда! Итак, кто осмелится бросить вызов Бурлопиворогу? Начните свою «Битву с Драконом»!
👏21🔥1🤔1
🦫🍅 Go-Redis 9.3.0

Разрабы продолжают добавлять поддержку типов данных в Go-Redis. Вот, подвезли поддержку JSON.

С JSON key в Redis вы можете:

✏️ Использовать его как универсальный иерархический тип данных
✏️ Выбрать его в качестве сложной альтернативы традиционной хэш-структуре данных
✏️ Рассматривать его как отдельный документ в базе данных на основе документов

Пример демонстрирует, как начать работу с JSON в Go-Redis:

var ctx = context.Background()
client := redis.NewClient(&redis.Options{
Addr: «localhost:6379»,
})

type Bicycle struct {
Brand string
Model string
Price int
}

bicycle := Bicycle{
Brand: «Velorim»,
Model: «Jigger»,
Price: 270,
}

_, err := client.JSONSet(ctx, «bicycle:1», «$», bicycle).Result()
if err != nil {
panic(err)
}

res, err := client.JSONGet(ctx, «bicycle:1», «.Model»).Result()
if err != nil {
panic(err)
}
fmt.Println(«bicycle:1 model is», res)


Изучить подробности релиза
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥11👍5🔥1🤔1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🔤 Азбука SQL в примерах. Часть 1. Создаем базу данных и первую таблицу

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

🔗 Читать статью
🔗 Зеркало
👏3👍2💯1
💪😎 Подробная сборка сетевого хранилища на базе TrueNAS/ZFS

Очень крутой материал про настройку и обслуживание высокообъемной хранилки на FreeNAS-е с ZFS-ом.
FreeNAS, основана на FreeBSD, ориентированной на сетевое хранилище, которая использует файловую систему ZFS и веб-интерфейс для настройки общего доступа к сети и других параметров. Хотя большая часть настройки и управления системой осуществляется через этот веб-интерфейс, вы можете немного расширить возможности через терминал по SSH.

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

Читать

#гайд
🔥5👏5🤩32🥰2