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

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

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
#вопросы_с_собеседования

Что за none образы можно увидеть в docker images?


Каждый образ в докере состоит из слоев, и имеет дочерние связи с другими слоями. По умолчанию они лежат в /var/lib/docker/graph. И когда мы закачиваем новую версию образа, он подгружает слой раз за разом. И получается что none это лишь один из слоев. Этот образ называется промежуточным. Их можно увидеть с помощью docker images -a Также есть обособленные образы none:none. Например, когда мы собираем примерно такой же образ, но, например, с иной версией ОС. В этом случае будет создан именно такой образ. Поскольку мы пересобрали образ с помощью докерфайла, а старая система стала обособленной.

Можно почистить так:

docker rmi $(docker images -f "dangling=true" -q)
5🔥5
💰⬆️ 10 факторов, влияющих на зарплату программиста

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

Читать статью

#новость
2👍2🥰2
Рассмотрим полезный набор хоткеев для эффективной работы в оболочке bash.

Навигация

Ctrl+A переместить курсор в начало строки
Ctrl+E переместить курсор в конец строки
Ctrl+F переместить курсор на один символ вправо
Ctrl+B переместить курсор на один символ влево
Alt+B / Esc+B переместить курсор влево на одно слово


Редактирование


Ctrl+U удалить все и вернуться в начала строки
Ctrl+K удалить все после курсора
Ctrl+W удалить слово перед курсором
Alt+D удалить слово после курсора
Ctrl+Y вернуть удаленное
Ctrl+D удалить символ под курсором
Ctrl+H аналогично backspace
Alt+T смена позиции текущего слова на предыдущее
Ctrl+T замена местами двух символа перед курсором
Alt+U перевод слова в заглавные после курсора
Alt+L перевод слова в строчные после курсора
Ctrl+_ отмена последнего ввода


Bash History

Ctrl+R режим обратного поиска
Ctrl+P переход к предыдущей команде
Ctrl+N переход к следующей команде
Ctrl+O выполнить найденную команду
Ctrl+G выход из режима поиска
!! выполнить предыдущую команду
!vim выполнить последнюю команду, которая начиналась на vim
!vim:p вывести последнюю команду, которая начиналась на vim
!n запустить n команду из history


Общие хоткеи


Ctrl+C завершить команду
Ctrl+L очистить экран
Ctrl+S приостановить вывод, остановить прокрутку
Ctrl+Q возобновить прокрутку
Ctrl+D закрыть оболочку
Ctrl+Z приостановить процесс
👍25🎉5👏1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤖 Итоги недели в мире ИИ и обзоры новых сервисов

Мы написали статью на VC, которая основана на очередном выпуске нашей рассылки про последние новости и тенденции в мире ИИ. Залетайте и читайте!

👇Ниже — мини-подборка из статьи 👇

📰 Новости

▫️ OpenAI объявила о запуске долгожданного магазина кастомных чат-ботов.
▫️ В Пасадене (штат Калифорния) открывается первая закусочная CaliExpress by Flippy, полностью управляемая ИИ.
▫️ NVIDIA выпустила модель для распознавания речи Parakeet, которая по всем показателям превосходит OpenAI Whisper.
▫️ Использование ИИ в совместном научном проекте Microsoft и Тихоокеанской северо-западной национальной лаборатории в течение недели помогло определить новый элемент, который поможет снизить на 70% использование лития в батареях. Без ИИ такое исследование заняло бы по меньшей мере 20 лет.
▫️ Компания ByteDance выпустила новую модель MagicVideo-V2 для генерации видео.

🛠 Инструменты

◾️ Auto Wiki — генерирует вики-документацию для GitHub репозиториев.
◾️ Code to Flow — визуализирует, анализирует и объясняет код, написанный на всех популярных языках и фреймворках.
◾️ Concepto — платформа для создания прототипов веб-приложений.
◾️ Afforai — выполняет суммаризацию, перевод и поиск по множеству документов.
◾️ Corgea — исправляет уязвимые фрагменты кода.
◾️ Jan — опенсорсный оффлайновый чат-бот.
◾️ Plus AI — плагин для Google Slides: делает профессиональные презентации, персональные и командные дашборды, любые отчеты.

🤙 Сделай сам

🔸 WikiChat — опенсорсный инструмент для коррекции галлюцинаций с помощью информации из Википедии.
🔸 Подробная шпаргалка и советы по созданию продвинутых RAG.
🔸 OpenVoice — опенсорный инструмент для мгновенного клонирования голоса.

🎓 Туториалы

🔹 Туториал по работе с новым API Query Pipelines показывает примеры создания простых линейных цепочек и сложных ациклических графов из модулей LlamaIndex.
🔹 Туториал по объединению LLM с помощью mergekit детально разбирает 4 основных метода объединения моделей.

#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
#memes

Когда повесил кучу тикетов на разрабов 😆
😁5👍1
#вопросы_с_собеседования

Почему latency до 8.8.8.8 всегда низкий?

8.8.8.8 это не один хост. Это anycast адрес, который перенаправляет на ближайший хост, которые по всему миру.
👍12🥰4
#memes

Про курьеров и программистов уже слышали многие. Вот ещё данные из того же исследования.
21👍5🥰1
🤔 Очередной #дайджест для DevOps-ов

🛠️ D-Bus overview — о том, что такое d-bus, и о том, как эта система взаимодействия процессов работает

🛠️ dockly — TUI для управления docker контейнерами прямо из командной строки

🛠️ pghero — дашборд для PostgreSQL, умеет показывать общее состояние сервера, запросы и соединения к нему

🛠️ atuin — инструмент для синхронизации истории команд между системами

🛠️ Как обслуживать миллионы запросов в месяц с помощью VPS объемом 2 ГБ — история о размещении большого ресурса на простом виртуальном сервере без применения 100500 слоёв современных облачных технологий
🔥8🥰7🤩5👍4😁4
Стратегии развертывания Kubernetes

💩 Сине-зеленое развертывание (Blue/Green)

Эта стратегия базируется на двух продуктивных средах: «синяя» — там, где живут старые версии приложения, и «зеленая» — зона, где мы запускаем новую версию приложения.

💩 Shadow

Теневое развертывание заключается в выпуске версии 1.1 наряду с версией 1.0, перехвате входящих запросов с первой версии и отправке на вторую без влияния на трафик. Это особенно полезно для тестирования production нагрузки на новую функцию.

💩 Постепенное развертывание (Rolling)

Все инстансы приложения будут последовательно обновляться до новой версии.

💩 A/B testing

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

💩 Повторное создание (Recreate)

Сперва удаление текущей версии приложения, затем развертывание новой версии.

💩 Канареечное развертывание (Canary)

«Канареечный» деплой схож с зелено-синей стратегией. Часть текущих инстансов приложения заменяется новой версией, на которую переключается часть трафика.

Каждая стратегия предлагает свой подход к управлению обновлениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥2🤔2🥰1
😵☠️ Смерть от тысячи микросервисов

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


Читать статью

#почитать
👍8🔥1
Тренировки по DevOps — плейлист на YouTube для новичков. Лекторы рассказывают теорию и показывают, что делают на практике.

Лекция 1: Кто такой DevOps (+ разбор домашнего задания)
Лекция 2: Облако. Кто виноват и что делать? (+ разбор дз)
Лекция 3: Процессы Linux (+ разбор дз)
Лекция 4: Сети Часть 1. Коты и коробки (+ разбор дз)
Лекция 5: Linux: инструменты командной строки (+ разбор дз)
Лекция 6: Базы данных (+ разбор дз)
Лекция 7: Сети. Часть 2. Коробки и коты (+ разбор дз)
Лекция 8: Как запустить «облако»
🔥14🥰3👍1
Зачем делать touch, перед тем, как что-то записать в файл? Имеется в виду такая ситуация:

touch file.txt
vim file.txt
:w


Проще так:

vim file.txt
:w


Почему не делать такого?

dd if=/dev/zero of=newfile bs=1 count=0


Оно ведь тоже создает новый файл…

На самом деле правильного ответа нет. Единственно что нужно знать, это — используя touch вы всегда будете уверены, что сможете записать свои данные в файл.

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

Да и еще touch используется для обновления даты модификации. Например, вы редактировали конфиг nginx в прошлом году, но всем нужно показать что вчера, делаете touch nginx.conf и проставляется актуальная дата и время. И в bash скриптах можно использовать, если есть какая-то логика с lock файлами, таймштампами и т.п.

А как правильно создавать файлы? Правильный способ для создания файлов, это любая команда, которая использует системный вызов create или open (с флагом O_CREATE). Таких команд и программ масса.

Кстати есть еще такой древний строковый редактор, называется ed. Идет в коробке почти со всеми дистрибутивами. Этот редактор изначально требовал наличия файла перед его редактированием. И да, из этого редактора выйти намного сложнее чем из vim 😂. Попробуйте ради интереса.

А как вы создаете файлы?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18👏87🎉6😁5
🎉🎉 Релиз Grafana k6 v0.48.0

Многочисленные критические изменения, новая k6 new подкоманда для создания тестового сценария, новый k6/experimental/fs модуль для взаимодействия с файлами, поддержка регулирования ЦП и сети для модуля браузера k6 и многое другое.

Изучить

#новость
👍4🎉3🔥1
🤓🤓 Pure bash bible

Цель этого материала — задокументировать методы выполнения различных задач с использованием только встроенных функций bash. Использование фрагментов из этой библии может помочь удалить ненужные зависимости из скриптов и в большинстве случаев ускорить их выполнение.

Подробнее

#почитать
❤‍🔥23👍3🥰21
🤔 Очередной #дайджест для DevOps-ов

⏏️ Как сделать Kubernetes еще круче — о том, как повысить стабильность приложений в К8s кластерах с высокой критичностью для бизнеса

⏏️ Оптимизируем масштабируемость и экономическую эффективность Kubernetes с помощью Karpenter — узнаете обоснование и подход для повышения масштабируемости и эффективности кластера Kubernetes

⏏️ Оптимизация DevOps — как персональные стенды и Grafana улучшают разработку и мониторинг

⏏️ Развертывание веб-приложения на Docker Swarm — как запилить автоматизированное создание образа Docker для сайта

⏏️ Пишем оператор Kubernetes: руководство для начинающих — как создать кастомный оператор ConfigmapSync для синхронизации Configmap между пространствами имен
7👏6😁5🎉5🤩5
Что такое CBD?

Компонентно-ориентированное программирование (CBD) представляет собой инновационный подход к разработке продукта. Вместо традиционного создания продукта с нуля, разработчики используют CBD для поиска уже существующих, проверенных и качественных компонентов, которые затем комбинируются для создания нового и оригинального продукта. Этот подход позволяет улучшить качество и надежность продукта, а также упростить его сопровождение и обновление, благодаря использованию уже проверенных компонентов. CBD открывает новые возможности для разработчиков, позволяя им быстрее и эффективнее создавать продукты, используя уже существующие ресурсы. нового и оригинального продукта. Этот процесс проходит вместо обычного для многих процесса создания продукта с нуля.
3🥰1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍2
💪💪 Современная безопасность контейнерных приложений

Чем раньше команда задумается о проблеме безопасности, тем лучше. В этой статье обсуждается, какие проблемы ИБ есть в стандартном контейнерном приложении и безопасность использования Docker, Kubernetes и Terraform, а также, как можно встроить проверки в стандартный пайплайн деплоя.

Будет интересно DevOps-инженерам, специалистам по безопасности, владельцам продуктов и всем, кто хочет:

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

Читать статью

#туториал
2👏1
Стоит задача: провести ТО на сервере и всех выгнать с него.

Создаем пустой файл /etc/nologin. Теперь только root сможет авторизоваться по ssh. Предварительно нужно разрешить вообще заходить под root’ом.

Теперь нужно всех уведомить, кто в данный момент что-то делает в терминале.

Для этого воспользуемся утилитой wall.

Wall — утилита командной строки, которая отображает сообщение на терминалах всех вошедших в систему пользователей.

Запускаем команду:

wall "... текст сообщения ..."


Все кто был подключен к серверу, получают сообщение:

Broadcast message from root@dev (pts/0) (текущая дата/время):
... текст сообщения ...


И неважно что делает человек и где находится, сообщение появится у него на экране. Через wall можно спамить определенным группам пользователей.

В указанное время запускаем ассасина:

pkill -9 -u `who | awk '{print $1}'| grep -v root|head -1


Выгнали всех с сервера, кроме root’а и проводим технические работы, удаляем /etc/nologin.

Wall можно заменить например на такое:

echo "какой-то текст" | write user


Но тут сообщение уйдет конкретному пользователю user. Конечно, если по какой-то причине, в системе отсутствует wall, можно и через цикл выгрести всех юзеров и через echo отправить им уведомление.

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

Или так:

echo "какой-то текст" > /dev/pts/1
👍25👏3🎉3🔥2🥰2