😎🥷 Разбираемся с Microcks Docker Extension
Microcks — это облачный опенсорсный Kubernetes-инструмент для макетирования и тестирования API.
🔹 Симуляция API или микросервиса на основе набора описательных ресурсов (спецификаций или контрактов)
🔹 Валидация соответствия приложения и API путем проведения контрактного тестирования
Уникальность Microcks — он предлагает единый и согласованный подход для всех видов запросов/ответов к API (REST, GraphQL, gRPC, SOAP) и API и event-driven API.
Зачем запускать Microcks в качестве Desktop-расширения для Docker?
Благодаря бесшовной интеграции возможностей контейнеризации Docker разработчикам больше не нужно ориентироваться в сложных настройках или бороться с проблемами совместимости. Разработчики могут без особых усилий настраивать и развертывать Microcks в существующей среде Docker, без необходимости править большие конфиги.
Подробнее читаем тут
#обучалка
Microcks — это облачный опенсорсный Kubernetes-инструмент для макетирования и тестирования API.
🔹 Симуляция API или микросервиса на основе набора описательных ресурсов (спецификаций или контрактов)
🔹 Валидация соответствия приложения и API путем проведения контрактного тестирования
Уникальность Microcks — он предлагает единый и согласованный подход для всех видов запросов/ответов к API (REST, GraphQL, gRPC, SOAP) и API и event-driven API.
Зачем запускать Microcks в качестве Desktop-расширения для Docker?
Благодаря бесшовной интеграции возможностей контейнеризации Docker разработчикам больше не нужно ориентироваться в сложных настройках или бороться с проблемами совместимости. Разработчики могут без особых усилий настраивать и развертывать Microcks в существующей среде Docker, без необходимости править большие конфиги.
Подробнее читаем тут
#обучалка
🔥22❤3
👷♂️🏗️ Контейнеризованная платформа автоматизации Ansible
Эта штука может устанавливать и запускать контейнеризованные авто-контроллеры, Ansible automation hub и Event-Driven службы Ansible на одном или нескольких базовых узлах RHEL с архитектурой x86_64 и ARM64. Для этого не требуется Kubernetes, поскольку она использует собственный RHEL podman поверх RHEL-хоста.
Преимущества
🔹 упрощенный процесс установки
🔹 многоуровневый подход к установке
🔹 контейнеризированный подход к сервисам
🔹 защита «из коробки» с использованием rootless Podman контейнеров
🔹 стартовая площадка для улучшенных функций в будущем
🔹 согласование подхода к поддерживаемым платформам развертывания и опциям
Читать статью
#гайд
Эта штука может устанавливать и запускать контейнеризованные авто-контроллеры, Ansible automation hub и Event-Driven службы Ansible на одном или нескольких базовых узлах RHEL с архитектурой x86_64 и ARM64. Для этого не требуется Kubernetes, поскольку она использует собственный RHEL podman поверх RHEL-хоста.
Преимущества
🔹 упрощенный процесс установки
🔹 многоуровневый подход к установке
🔹 контейнеризированный подход к сервисам
🔹 защита «из коробки» с использованием rootless Podman контейнеров
🔹 стартовая площадка для улучшенных функций в будущем
🔹 согласование подхода к поддерживаемым платформам развертывания и опциям
Читать статью
#гайд
🤩27🔥6❤1👍1
🧑🎓😎 Еще одна серия с мероприятия OFFZONE 2023
Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.
Эксплуатация уязвимостей HTTP Request Splitting
В своем докладе Сергей расскажет об уязвимостях HTTP Request Splitting / CRLF Injection в проксировании HTTP‑запросов пользователя между веб‑серверами. Будут освещены методы обнаружения подобных уязвимостей при автоматическом сканировании и варианты их эксплуатации на примере популярных багбаунти-программ
Смотреть
#видео
Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.
Эксплуатация уязвимостей HTTP Request Splitting
В своем докладе Сергей расскажет об уязвимостях HTTP Request Splitting / CRLF Injection в проксировании HTTP‑запросов пользователя между веб‑серверами. Будут освещены методы обнаружения подобных уязвимостей при автоматическом сканировании и варианты их эксплуатации на примере популярных багбаунти-программ
Смотреть
#видео
❤3👍3🔥2
#вопросы_с_собеседований
Простенький вопрос, который часто предлагают вначале собеса
Представлен вывод команды top. Что означает каждая запись в выводе?
top - 10:44:36 up 91 days, 19:29, 7 users, load average: 0,00, 0,02, 0,05
Tasks: 156 total, 1 running, 155 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0,0 us, 1,5 sy, 0,0 ni, 96,9 id, 0,0 wa, 0,0 hi, 0,0 si, 1,5 st
KiB Mem : 12137392 total, 6227844 free, 1117728 used, 4791820 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 10090148 avail Mem
top — утилита
10:44:36 — время системы
up — сколько система работает с момента последнего запуска
7 user — количество авторизованных юзеров в системе
load average: 0.00, 0.02, 0.05 — параметр средней нагрузки на систему за период времени 1 минута, 5 минут, 15 минут
156 total — всего процессов в системе
1 running — количество процессов в работе
155 sleeping — ожидание процесса или сигнала
0 stopped — количество приостановленных процессов сигналом STOP или выполнение трассировки
0 zombie — количество зомби-процессов, которые завершили своё выполнение, но присутствующие в системе, чтобы дать родительскому процессу считать свой код завершения.
Простенький вопрос, который часто предлагают вначале собеса
Представлен вывод команды top. Что означает каждая запись в выводе?
top - 10:44:36 up 91 days, 19:29, 7 users, load average: 0,00, 0,02, 0,05
Tasks: 156 total, 1 running, 155 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0,0 us, 1,5 sy, 0,0 ni, 96,9 id, 0,0 wa, 0,0 hi, 0,0 si, 1,5 st
KiB Mem : 12137392 total, 6227844 free, 1117728 used, 4791820 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 10090148 avail Mem
👍11❤6🔥5🥰5🎉2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💼🖥️ Топ лучших бирж фриланса и платформ для программистов
Где начинающему разработчику найти работу и получить первый коммерческий заказ? В этом могут помочь фриланс-биржи и human-cloud платформы. Но какие именно — расскажем в статье.
📌 Полезные материалы по теме:
🧒 Как найти работу junior-разработчику: 5 самых неочевидных способов
👍 Тесты на собеседовании: как к ним подготовиться и получить оффер
📝 Как правильно составить сопроводительное письмо программисту
🔍 ТОП-12 джоб-сайтов: где программисту разместить резюме и найти работу
🤖 40 сервисов на базе AI, которые помогут найти работу в 2023 году
💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Подборка полезных материалов для улучшения профиля на LinkedIn и не только
💾 Список каналов «Библиотеки программиста» с вакансиями
🤩Понравился пост? Проголосуйте за нас, чтобы мы могли публиковать сторис (требуется премиум).
Где начинающему разработчику найти работу и получить первый коммерческий заказ? В этом могут помочь фриланс-биржи и human-cloud платформы. Но какие именно — расскажем в статье.
📌 Полезные материалы по теме:
🧒 Как найти работу junior-разработчику: 5 самых неочевидных способов
👍 Тесты на собеседовании: как к ним подготовиться и получить оффер
📝 Как правильно составить сопроводительное письмо программисту
🔍 ТОП-12 джоб-сайтов: где программисту разместить резюме и найти работу
🤖 40 сервисов на базе AI, которые помогут найти работу в 2023 году
💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Подборка полезных материалов для улучшения профиля на LinkedIn и не только
💾 Список каналов «Библиотеки программиста» с вакансиями
🤩Понравился пост? Проголосуйте за нас, чтобы мы могли публиковать сторис (требуется премиум).
❤4👍4🔥2
Подборка лучших статей «Библиотеки программиста» за сентябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
🐧📖 ТОП-10 книг по Linux в 2023 году
🧩🧠 Тест на сообразительность: 3 захватывающие головоломки, чтобы развлечься и потренировать мозг
🎮 Идеальный подарок геймеру: Xbox vs PlayStation vs Nintendo Switch vs Steam Deck
📊 Как я входил в IT? Результаты опроса «Библиотеки программиста»
🔝 Приоритизация задач по методу MoSCoW: как за 5 минут научиться грамотно расставлять приоритеты
🐧📖 ТОП-10 книг по Linux в 2023 году
🧩🧠 Тест на сообразительность: 3 захватывающие головоломки, чтобы развлечься и потренировать мозг
🎮 Идеальный подарок геймеру: Xbox vs PlayStation vs Nintendo Switch vs Steam Deck
📊 Как я входил в IT? Результаты опроса «Библиотеки программиста»
🔝 Приоритизация задач по методу MoSCoW: как за 5 минут научиться грамотно расставлять приоритеты
❤7🥰3👍1
📚 ТОП-8 книг по DevOps в 2023 году
Список из 8 лучших книг, которые должны быть в библиотеке каждого начинающего и продвинутого DevOps-специалиста.
Читать статью
#книги
Список из 8 лучших книг, которые должны быть в библиотеке каждого начинающего и продвинутого DevOps-специалиста.
Читать статью
#книги
👍8❤3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
❤33🥰25🔥17👏12👍6
ErrImagePull — это ошибка, возникающая, когда с образом, указанным для контейнера, нельзя произвести retrieved или pull.
ImagePullBackOff — это период ожидания, пока с образом не случится pull fix.
Образы контейнеров
Одной из самых сильных сторон контейнеризации является возможность запуска любого образа за считанные секунды. Контейнер — это группа процессов, выполняющихся изолированно от базовой системы. Образ контейнера содержит все ресурсы, необходимые для запуска этих процессов: бинарники, библиотеки и необходимые конфиги.
Реестр контейнеров — это репозиторий образов, в котором выполняются два основных действия:
Push: загрузка образа для доступа из из репы
Pull: выгрузка образа для использование его в контейнере
В примерах к этой статье будет использоваться docker CLI, но можно использовать любой инструмент, реализующий спецификации Open Container Initiative для всех взаимодействий с реестром контейнеров.
Далее читайте здесь
#гайд
ImagePullBackOff — это период ожидания, пока с образом не случится pull fix.
Образы контейнеров
Одной из самых сильных сторон контейнеризации является возможность запуска любого образа за считанные секунды. Контейнер — это группа процессов, выполняющихся изолированно от базовой системы. Образ контейнера содержит все ресурсы, необходимые для запуска этих процессов: бинарники, библиотеки и необходимые конфиги.
Реестр контейнеров — это репозиторий образов, в котором выполняются два основных действия:
Push: загрузка образа для доступа из из репы
Pull: выгрузка образа для использование его в контейнере
В примерах к этой статье будет использоваться docker CLI, но можно использовать любой инструмент, реализующий спецификации Open Container Initiative для всех взаимодействий с реестром контейнеров.
Далее читайте здесь
#гайд
❤8
#туториал
🤔🤔 Что насчет запуска команд в bash параллельно?
Первый способ основан на символе &
Wait – команда, которая ожидает завершения определенного процесса и возвращает его состояние завершения.
Оболочка ждет (wait) пока завершатся два предыдущих процесса, прежде чем запустить следующую команду. Получается, все то, что в скрипте идет после wait, будет в режиме ожидания, пока не завершатся 2 sleep-а.
Уже похоже на асинхронность.
Теперь запустим в терминале последовательно такие команды:
Запускаем jobs и смотрим:
Теперь посмотрим где всё это можно применить.
🍕 Передает каждую строчку в функцию downloader
🍕 Функция downloader каждый раз запускается в фоне
🍕 Происходит скачивание файла по ссылке
🍕 По завершению (wait) получаем complete
Файл url.txt представляет собой список прямых урлов на файлы, которые нужно скачать.
Символ & говорит — запусти всё одновременно и параллельно. Типа такого, с таким ты уже всяко встречался:
Можно все это сделать иначе. Есть утилита
А еще, есть «$!», она позволяет узнать PID последнего запущенного процесса:
🤔🤔 Что насчет запуска команд в bash параллельно?
Первый способ основан на символе &
#!/bin/bashЗдесь первая и вторая команда запустятся параллельно. Через 5 секунд на экран выведутся 3 строчки sleep 5_1, sleep 5_2 и sleep 0.
sleep 5 && echo "sleep 5_1" &
sleep 5 && echo "sleep 5_2" &
wait
echo "sleep 0"
Wait – команда, которая ожидает завершения определенного процесса и возвращает его состояние завершения.
Оболочка ждет (wait) пока завершатся два предыдущих процесса, прежде чем запустить следующую команду. Получается, все то, что в скрипте идет после wait, будет в режиме ожидания, пока не завершатся 2 sleep-а.
Уже похоже на асинхронность.
Теперь запустим в терминале последовательно такие команды:
sleep 60 &На экран выведется что-то такое:
sleep 90 &
sleep 120 &
[1] 38161Это PID-ы запущенных процессов. Но сейчас интересна команда jobs, которая позволяет напрямую взаимодействовать с процессами в текущей оболочке. Команда отображает состояние заданий в текущем сеансе.
[2] 38166
[3] 38167
Запускаем jobs и смотрим:
[1] Done sleep 60— список команд, которые запустились в фоне. Первое задание завершилось, а остальное еще в процессе.
[2]- Running sleep 90 &
[3]+ Running sleep 120 &
Теперь посмотрим где всё это можно применить.
downloader(){🍕Скрипт читает построчно файл url.txt
wget -q "$1"
}
while IFS= read -r url
do
downloader "$url" &
done < urls.txt
wait
echo "Завершено"
🍕 Передает каждую строчку в функцию downloader
🍕 Функция downloader каждый раз запускается в фоне
🍕 Происходит скачивание файла по ссылке
🍕 По завершению (wait) получаем complete
Файл url.txt представляет собой список прямых урлов на файлы, которые нужно скачать.
Символ & говорит — запусти всё одновременно и параллельно. Типа такого, с таким ты уже всяко встречался:
Можно все это сделать иначе. Есть утилита
parallel: apt/yum/brew install parallel
Делает она то же самое, но имеет более гибкие настройки через параметры. Например, предыдущий пример со скачиванием файлов мог бы выглядеть таким образом:parallel -j 4 wget -q {} < urls.txt-j означает сколько джобов будет запараллелено.
А еще, есть «$!», она позволяет узнать PID последнего запущенного процесса:
sleep 60 &В первой команде запустили фоном ожидание 60 секунд, вывелся порядковый номер джобы и PID. Ну а чтобы получить последний PID, выполняем третью команду с «$!». На экран вывелся PID в чистом виде, а дальше можно его сохранить в переменную и уже проверять в скрипте, завершился он или нет.
[1] 39032
echo $!
39032
👍20❤11🎉9🥰7🔥6