Большая шпаргалка по Docker: как распилить монолитный проект на части
Погружение в мир контейнеризации с докером — это путь к оптимизации развёртыванию приложений, а также ключ к упрощению жизни разработчиков и системных администраторов. Меня зовут Андрей Аверков, в IT c 2008 начинал пусть с аналитика-проектировщика IT систем, 11 лет в роли разработчика и последние годы на руководящих должностях. Сейчас я тимлид команды разработки из 9 человек в группе компаний Kokoc Group. Мы занимаемся созданием и поддержкой CPA платформ (gdeslon.ru, fxpartners.ru, ads.mobisharks.com), а также проектом по генерации лендингов - lpgenerator.ru. Отдел разработки тесно сотрудничает с отделом IT. И эту статью мне помогал писать Egorov_Ilja, он руководит IT-отделом в группе компаний Kokoc Group с 2013 года, а вообще в компании уже более 16 лет. В общем, у нас довольно большой опыт в разделении продуктов на части, поэтому, сегодня мы собрали самое основное и необходимое для работы с Docker. В нашей шпаргалке вы найдете все необходимое для успешного старта с докером: от базовых концепций и установки до продвинутых техник работы с контейнерами.
https://habr.com/ru/companies/kokocgroup/articles/802039/
#devops #девопс
Подпишись 👉@i_DevOps
Погружение в мир контейнеризации с докером — это путь к оптимизации развёртыванию приложений, а также ключ к упрощению жизни разработчиков и системных администраторов. Меня зовут Андрей Аверков, в IT c 2008 начинал пусть с аналитика-проектировщика IT систем, 11 лет в роли разработчика и последние годы на руководящих должностях. Сейчас я тимлид команды разработки из 9 человек в группе компаний Kokoc Group. Мы занимаемся созданием и поддержкой CPA платформ (gdeslon.ru, fxpartners.ru, ads.mobisharks.com), а также проектом по генерации лендингов - lpgenerator.ru. Отдел разработки тесно сотрудничает с отделом IT. И эту статью мне помогал писать Egorov_Ilja, он руководит IT-отделом в группе компаний Kokoc Group с 2013 года, а вообще в компании уже более 16 лет. В общем, у нас довольно большой опыт в разделении продуктов на части, поэтому, сегодня мы собрали самое основное и необходимое для работы с Docker. В нашей шпаргалке вы найдете все необходимое для успешного старта с докером: от базовых концепций и установки до продвинутых техник работы с контейнерами.
https://habr.com/ru/companies/kokocgroup/articles/802039/
#devops #девопс
Подпишись 👉@i_DevOps
👍4
Эволюция Terraform: Как мы безопасно отделили дюжину сервисов от монолита
Если вы используете terraform для управления облачной инфраструктурой, то по мере роста проекта вы могли столкнуться с некоторыми проблемами. Возможно, код terraform становится слишком сложным и запутанным. Возможно, развертывание занимает слишком много времени и приводит к ошибкам. Возможно, ваша команда боится вносить изменения, потому что не знает, что может сломаться.
https://medium.com/@susovan87/lesson-learned-after-decoupling-a-dozen-of-services-from-terraform-monolith-safely-with-no-downtime-404e503f6cb6
#devops #девопс
Подпишись 👉@i_DevOps
Если вы используете terraform для управления облачной инфраструктурой, то по мере роста проекта вы могли столкнуться с некоторыми проблемами. Возможно, код terraform становится слишком сложным и запутанным. Возможно, развертывание занимает слишком много времени и приводит к ошибкам. Возможно, ваша команда боится вносить изменения, потому что не знает, что может сломаться.
https://medium.com/@susovan87/lesson-learned-after-decoupling-a-dozen-of-services-from-terraform-monolith-safely-with-no-downtime-404e503f6cb6
#devops #девопс
Подпишись 👉@i_DevOps
👍5
Понимание многоархивных контейнеров, преимуществ и интеграции CI/CD
Вы когда-нибудь видели сообщение об ошибке "
В этой статье мы узнаем, что такое многоархивные образы контейнеров? Как они работают? Как их создавать и продвигать? И напишем пример кода для создания многоархивного образа в конвейере CI/CD.
https://www.infracloud.io/blogs/multi-arch-containers-ci-cd-integration/
#devops #девопс
Подпишись 👉@i_DevOps
Вы когда-нибудь видели сообщение об ошибке "
exec /docker-entrypoint.sh: exec format error" на вашем сервере при запуске любого образа docker или подкад Kubernetes? Скорее всего, это связано с тем, что на вашем сервере запущен образ контейнера с другой архитектурой процессора, или вы когда-нибудь использовали опцию --platform linux/x86_64 на вашем Apple silicon M1, M2 MacBook? Если да, то вы не получаете встроенной производительности Apple silicon и, возможно, это разряжает батарею вашего MacBook. Чтобы избежать подобных ошибок и проблем с производительностью, нам нужно запустить правильный многоархивный образ контейнера или создать свой собственный образ, поскольку все публичные образы контейнеров не содержат многоархивных образов.В этой статье мы узнаем, что такое многоархивные образы контейнеров? Как они работают? Как их создавать и продвигать? И напишем пример кода для создания многоархивного образа в конвейере CI/CD.
https://www.infracloud.io/blogs/multi-arch-containers-ci-cd-integration/
#devops #девопс
Подпишись 👉@i_DevOps
👍3
Haskell Dockerfile Linter
Интеллектуальный распаковщик Dockerfile, помогающий создавать лучшие образы Docker. Линтер разбирает Docker-файл на AST и выполняет правила поверх AST. Он опирается на поддержку ShellCheck для проверки Bash-кода внутри инструкций RUN.
https://github.com/hadolint/hadolint
#devops #девопс
Подпишись 👉@i_DevOps
Интеллектуальный распаковщик Dockerfile, помогающий создавать лучшие образы Docker. Линтер разбирает Docker-файл на AST и выполняет правила поверх AST. Он опирается на поддержку ShellCheck для проверки Bash-кода внутри инструкций RUN.
https://github.com/hadolint/hadolint
#devops #девопс
Подпишись 👉@i_DevOps
👍4
Продвинутая работа с логами в Linux
journalctl - Работа со структурированными логами
Журнал событий, это компонент systemd, который захватывает сообщения Syslog, логи ядра, все события при инициализации системы (RAM, диск, boot, STDOUT/STDERR для всех сервисов), индексирует их и затем предоставляет удобной пользовательский интерфейс для поиска и фильтрации логов. Журнал (systemd journal) можно использовать вместе или вместо syslog или syslog-ng.
Утилита командной строки journalctl, если сравнивать ее с традиционным инструментами для работы с логами в UNIX (tail, grep, sed, awk) более широкие возможности.
Давайте рассмотрим основные возможности которые предоставляет журнал systemd и способы их применения.
https://habr.com/ru/articles/749714/
#devops #девопс
Подпишись 👉@i_DevOps
journalctl - Работа со структурированными логами
Журнал событий, это компонент systemd, который захватывает сообщения Syslog, логи ядра, все события при инициализации системы (RAM, диск, boot, STDOUT/STDERR для всех сервисов), индексирует их и затем предоставляет удобной пользовательский интерфейс для поиска и фильтрации логов. Журнал (systemd journal) можно использовать вместе или вместо syslog или syslog-ng.
Утилита командной строки journalctl, если сравнивать ее с традиционным инструментами для работы с логами в UNIX (tail, grep, sed, awk) более широкие возможности.
Давайте рассмотрим основные возможности которые предоставляет журнал systemd и способы их применения.
https://habr.com/ru/articles/749714/
#devops #девопс
Подпишись 👉@i_DevOps
👍5
Перед вами — книга-метод, книга-наставник, способная перевернуть мышление и помочь выработать осознанный подход к работе и жизни в целом путём высокоуровневого планирования.
В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.
У Карты гипотез нет ограничений по области применения или роли пользователя — она будет полезна в самых разных ситуациях, от личного планирования до планирования работы огромной компании. Автор надеется, что его метод, которому посвящена эта книга, послужит вашему благополучию во всех сферах жизни.
Ознакомиться с книгой
В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.
У Карты гипотез нет ограничений по области применения или роли пользователя — она будет полезна в самых разных ситуациях, от личного планирования до планирования работы огромной компании. Автор надеется, что его метод, которому посвящена эта книга, послужит вашему благополучию во всех сферах жизни.
Ознакомиться с книгой
👍3
Grafana Mimir - наше путешествие к бесконечной мудрости с помощью 5m активных временных рядов
Более глубокое понимание производительности и поведения наших приложений приводит к повышению надежности и лучшему пониманию наших систем. Это очень важно для любой технологической среды, которая быстро развивается и стремится к совершенству. Полезность метрик трудно переоценить. Две основные проблемы, связанные с этой темой в контексте данного поста, - как хранить данные и как их запрашивать. Мы считаем, что исторические данные имеют большой потенциал для сравнительного анализа, поэтому наша цель - собрать и сохранить как можно больше информации, не забывая при этом о стоимости, эффективности и затраченных усилиях.
https://tech.loveholidays.com/grafana-mimir-our-journey-towards-infinite-wisdom-with-5m-active-time-series-7a262ba53a3f
#devops #девопс
Подпишись 👉@i_DevOps
Более глубокое понимание производительности и поведения наших приложений приводит к повышению надежности и лучшему пониманию наших систем. Это очень важно для любой технологической среды, которая быстро развивается и стремится к совершенству. Полезность метрик трудно переоценить. Две основные проблемы, связанные с этой темой в контексте данного поста, - как хранить данные и как их запрашивать. Мы считаем, что исторические данные имеют большой потенциал для сравнительного анализа, поэтому наша цель - собрать и сохранить как можно больше информации, не забывая при этом о стоимости, эффективности и затраченных усилиях.
https://tech.loveholidays.com/grafana-mimir-our-journey-towards-infinite-wisdom-with-5m-active-time-series-7a262ba53a3f
#devops #девопс
Подпишись 👉@i_DevOps
👍3
Как я ищу себе сотрудников в команду DevSecOps и AppSec
Привет! Меня зовут Михаил Синельников. Я DevSecOps TeamLead в РСХБ‑Интех. Тружусь в ИТ‑сфере уже 25 лет, немалую часть из которых — на руководящих должностях. Сегодня расскажу, как я ищу специалистов к себе в команду DevSecOps и AppSec, на что обращаю внимание и как общаюсь с соискателями, которые на собеседовании пытаются приукрасить собственные достижения.
Сразу отмечу, что мой опыт в основном касается найма сотрудников в регионах на удаленку. И тут есть свои сложности. Специалисты боятся уйти из местных компаний, потому что это, во-первых, гарантия трудоустройства и, во-вторых, очень стабильное место. Я тоже прошел этот путь и решился перейти из маленькой компании в большую, но об этом, наверное, расскажу в следующий раз.
https://habr.com/ru/companies/rshb/articles/802807/
#devops #девопс
Подпишись 👉@i_DevOps
Привет! Меня зовут Михаил Синельников. Я DevSecOps TeamLead в РСХБ‑Интех. Тружусь в ИТ‑сфере уже 25 лет, немалую часть из которых — на руководящих должностях. Сегодня расскажу, как я ищу специалистов к себе в команду DevSecOps и AppSec, на что обращаю внимание и как общаюсь с соискателями, которые на собеседовании пытаются приукрасить собственные достижения.
Сразу отмечу, что мой опыт в основном касается найма сотрудников в регионах на удаленку. И тут есть свои сложности. Специалисты боятся уйти из местных компаний, потому что это, во-первых, гарантия трудоустройства и, во-вторых, очень стабильное место. Я тоже прошел этот путь и решился перейти из маленькой компании в большую, но об этом, наверное, расскажу в следующий раз.
https://habr.com/ru/companies/rshb/articles/802807/
#devops #девопс
Подпишись 👉@i_DevOps
👍3
Как DoorDash перешла с StatsD на Prometheus
Точная и надежная наблюдаемость важна при поддержке крупных распределенных сервисов, но это возможно только в том случае, если ваши инструменты так же масштабируемы. К сожалению, в DoorDash это было проблемой из-за пиковых сбоев трафика при использовании нашей устаревшей инфраструктуры метрик на базе StatsD. Именно тогда, когда нам больше всего нужны были данные о наблюдаемости, система оставляла нас на произвол судьбы.
https://doordash.engineering/2023/08/01/how-doordash-migrated-from-statsd-to-prometheus/
#devops #девопс
Подпишись 👉@i_DevOps
Точная и надежная наблюдаемость важна при поддержке крупных распределенных сервисов, но это возможно только в том случае, если ваши инструменты так же масштабируемы. К сожалению, в DoorDash это было проблемой из-за пиковых сбоев трафика при использовании нашей устаревшей инфраструктуры метрик на базе StatsD. Именно тогда, когда нам больше всего нужны были данные о наблюдаемости, система оставляла нас на произвол судьбы.
https://doordash.engineering/2023/08/01/how-doordash-migrated-from-statsd-to-prometheus/
#devops #девопс
Подпишись 👉@i_DevOps
Skipper
Skipper - это HTTP-маршрутизатор и обратный прокси для построения сервисов. Он разработан для обработки >300 тысяч HTTP-маршрутов с подробными условиями поиска и гибким дополнением потока запросов фильтрами. Его можно использовать из коробки или расширить с помощью пользовательского поиска, логики фильтрации и конфигурации.
https://github.com/zalando/skipper
#devops #девопс
Подпишись 👉@i_DevOps
Skipper - это HTTP-маршрутизатор и обратный прокси для построения сервисов. Он разработан для обработки >300 тысяч HTTP-маршрутов с подробными условиями поиска и гибким дополнением потока запросов фильтрами. Его можно использовать из коробки или расширить с помощью пользовательского поиска, логики фильтрации и конфигурации.
https://github.com/zalando/skipper
#devops #девопс
Подпишись 👉@i_DevOps
👍4👏1
Руководство по Kubernetes для хейтеров Kubernetes
Есть среди программистов такая фракция, в которой Kubernetes пользуется дурной репутацией как чрезмерно сложный пожиратель времени и технология, которой следует сторониться стартапам. Использовать Kubernetes в рамках небольшой команды — явный признак инженерного переусложнения.
Я и сам замешан в перемывании косточек на эту тему.
https://habr.com/ru/companies/timeweb/articles/804259/
Original https://paulbutler.org/2024/the-haters-guide-to-kubernetes/
#devops #девопс
Подпишись 👉@i_DevOps
Есть среди программистов такая фракция, в которой Kubernetes пользуется дурной репутацией как чрезмерно сложный пожиратель времени и технология, которой следует сторониться стартапам. Использовать Kubernetes в рамках небольшой команды — явный признак инженерного переусложнения.
Я и сам замешан в перемывании косточек на эту тему.
https://habr.com/ru/companies/timeweb/articles/804259/
Original https://paulbutler.org/2024/the-haters-guide-to-kubernetes/
#devops #девопс
Подпишись 👉@i_DevOps
👍5
Настраиваем CI/CD с GitHub Actions и werf: инструкция для новичков
В этой статье мы рассмотрим, как настроить пайплайн CI/CD в GitHub: подготовим репозиторий, зальём туда приложение, создадим файлы конфигурации GitHub Actions, в которых опишем, как собирать наше приложение и деплоить его в кластер Kubernetes, развёрнутый под управлением Deckhouse Kubernetes Platform. Деплоить будем с помощью Open Source CLI-утилиты werf. Она помогает организовать полный цикл доставки приложений в Kubernetes и рассматривает Git как единый источник истины для состояния развёрнутого приложения. Статья рассчитана на тех, кто только начинает свой путь в мире облаков и кластеризации.
https://habr.com/ru/companies/flant/articles/803251/
#devops #девопс
Подпишись 👉@i_DevOps
В этой статье мы рассмотрим, как настроить пайплайн CI/CD в GitHub: подготовим репозиторий, зальём туда приложение, создадим файлы конфигурации GitHub Actions, в которых опишем, как собирать наше приложение и деплоить его в кластер Kubernetes, развёрнутый под управлением Deckhouse Kubernetes Platform. Деплоить будем с помощью Open Source CLI-утилиты werf. Она помогает организовать полный цикл доставки приложений в Kubernetes и рассматривает Git как единый источник истины для состояния развёрнутого приложения. Статья рассчитана на тех, кто только начинает свой путь в мире облаков и кластеризации.
https://habr.com/ru/companies/flant/articles/803251/
#devops #девопс
Подпишись 👉@i_DevOps
❤🔥5👍4👎1
Автоматизируем сборку и деплой приложения в GitLab CI/CD: подробное руководство с примерами
При разработке приложений рано или поздно наступает момент, когда заниматься развёртыванием вручную становится затратно и неудобно. Как следствие на помощь приходит автоматизация этого процесса с помощью специально настроенных пайплайнов непрерывной интеграции и непрерывной доставки (Continuous Integration & Continuous Delivery — CI/CD). Для разных систем управления репозиториями исходного кода существуют свои способы настройки CI/CD.
В этой статье мы рассмотрим, как использовать GitLab для организации автоматической сборки и деплоя приложения в кластер Kubernetes. Сам кластер будет работать под управлением Deckhouse Kubernetes Platform (код приложения и процесс настройки кластера мы описывали в предыдущей статье цикла), а автоматизировать процесс будем с помощью werf — Open Source CLI-утилиты, организующей полный цикл доставки приложения в Kubernetes и использующей Git как единый источник истины для состояния приложения, развёрнутого в кластере.
https://habr.com/ru/companies/flant/articles/795475/
#devops #девопс
Подпишись 👉@i_DevOps
При разработке приложений рано или поздно наступает момент, когда заниматься развёртыванием вручную становится затратно и неудобно. Как следствие на помощь приходит автоматизация этого процесса с помощью специально настроенных пайплайнов непрерывной интеграции и непрерывной доставки (Continuous Integration & Continuous Delivery — CI/CD). Для разных систем управления репозиториями исходного кода существуют свои способы настройки CI/CD.
В этой статье мы рассмотрим, как использовать GitLab для организации автоматической сборки и деплоя приложения в кластер Kubernetes. Сам кластер будет работать под управлением Deckhouse Kubernetes Platform (код приложения и процесс настройки кластера мы описывали в предыдущей статье цикла), а автоматизировать процесс будем с помощью werf — Open Source CLI-утилиты, организующей полный цикл доставки приложения в Kubernetes и использующей Git как единый источник истины для состояния приложения, развёрнутого в кластере.
https://habr.com/ru/companies/flant/articles/795475/
#devops #девопс
Подпишись 👉@i_DevOps
👍5
Отладка плэйбуков ansible
В этом руководстве я постараюсь рассказать как дебажить playbookи, устраняя потенциальные проблемы, не дожидаясь обезвреживания продакшена. Если вы читаете это, то я уверен что вы, также как и я, прочитали десяток статей о том как установить ansible и запускать (применять - режет слух) плэйбуки для конфигурирования всего до чего дотягивается руки.
https://habr.com/ru/articles/745328/
#devops #девопс
Подпишись 👉@i_DevOps
В этом руководстве я постараюсь рассказать как дебажить playbookи, устраняя потенциальные проблемы, не дожидаясь обезвреживания продакшена. Если вы читаете это, то я уверен что вы, также как и я, прочитали десяток статей о том как установить ansible и запускать (применять - режет слух) плэйбуки для конфигурирования всего до чего дотягивается руки.
https://habr.com/ru/articles/745328/
#devops #девопс
Подпишись 👉@i_DevOps
👍5
Пишем роли ansible не ломая прод — особенности check_mode или как правильно его готовить
В данном опусе я попытаюсь рассказать как можно писать роли и плэйбуки такими, чтобы они отыгрывали без падений при запуске с флагом --check. Зачем вот это всё: вы в команде адептов инфраструктуры как код и не только раскатываете свою инфраструктуру, но и обновляете ее и хотите быстро восстанавливать, а это значит что вы должны обеспечивать одну из ключевых концепций ansible - идемпотентность повторных запусков. Для этого вы вынуждены не только писать роли, применяя их в лабораторных условиях, но и применения их на реальной инфраструктуре, о том как дебажить при этом ямлы написано например здесь. Применять код который сделает множество изменений в продакшн - такое себе удовольствие не для слабонервных, поэтому и мы будем пускать его предварительно с флагом --check - в холостую, желая посмотреть те изменения которые будут внесены в целевую инфраструктуру. То есть, если вы собираетесь реконфигурировать сервис в одном конфиге и перезапустить-перегрузить его, то вы должны увидеть только 2 изменения (changed) по итогам запуска.
https://habr.com/ru/articles/746864/
#devops #девопс
Подпишись 👉@i_DevOps
В данном опусе я попытаюсь рассказать как можно писать роли и плэйбуки такими, чтобы они отыгрывали без падений при запуске с флагом --check. Зачем вот это всё: вы в команде адептов инфраструктуры как код и не только раскатываете свою инфраструктуру, но и обновляете ее и хотите быстро восстанавливать, а это значит что вы должны обеспечивать одну из ключевых концепций ansible - идемпотентность повторных запусков. Для этого вы вынуждены не только писать роли, применяя их в лабораторных условиях, но и применения их на реальной инфраструктуре, о том как дебажить при этом ямлы написано например здесь. Применять код который сделает множество изменений в продакшн - такое себе удовольствие не для слабонервных, поэтому и мы будем пускать его предварительно с флагом --check - в холостую, желая посмотреть те изменения которые будут внесены в целевую инфраструктуру. То есть, если вы собираетесь реконфигурировать сервис в одном конфиге и перезапустить-перегрузить его, то вы должны увидеть только 2 изменения (changed) по итогам запуска.
https://habr.com/ru/articles/746864/
#devops #девопс
Подпишись 👉@i_DevOps
👍7👏1
GitOps с использованием Flux и Flagger
GitOps как практика используется с 2017 года, когда Алексис Ричардсон придумал этот термин. Он изменил DevOps и автоматизацию. Если посмотреть на его основные принципы, то он расширяет DevOps, рассматривая инфраструктуру как код (IaC). Конфигурация развертывания хранится в системе контроля версий (она же Git), обеспечивая единый источник данных для разработчиков.
https://dev.to/infracloud/gitops-using-flux-and-flagger-15ci
#devops #девопс
Подпишись 👉@i_DevOps
GitOps как практика используется с 2017 года, когда Алексис Ричардсон придумал этот термин. Он изменил DevOps и автоматизацию. Если посмотреть на его основные принципы, то он расширяет DevOps, рассматривая инфраструктуру как код (IaC). Конфигурация развертывания хранится в системе контроля версий (она же Git), обеспечивая единый источник данных для разработчиков.
https://dev.to/infracloud/gitops-using-flux-and-flagger-15ci
#devops #девопс
Подпишись 👉@i_DevOps
👍5
System Design 101
О сложных системах простыми словами.
В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.
https://habr.com/ru/articles/770564/
original https://github.com/ByteByteGoHq/system-design-101
#devops #девопс
Подпишись 👉@i_DevOps
О сложных системах простыми словами.
В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.
https://habr.com/ru/articles/770564/
original https://github.com/ByteByteGoHq/system-design-101
#devops #девопс
Подпишись 👉@i_DevOps
❤5👍2