Forwarded from Библиотека задач по DevOps | тесты, код, задания
Чем отличается StatefulSet от Deployment?
Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.
StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.
Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.
StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.
🔥21🎉14👍5❤1
🤔❓ Как добавить, использовать и обновить .terraform.lock.hcl без боли
В Terraform 1.4.0 были внесены изменения, которые нарушают прежнее непреднамеренное поведение. Раньше моно было игнорировать lockfile и использовать кэшированных провайдеров, если ограничения версий в коде соответствовали локальному кэшу. Начиная с версии 1.4.0, Terraform всегда проверяет lockfile перед тем, как зайти в каталог кэша. На практике это означает, что если вы проигнорируете файл блокировки или полностью удалите его, Terraform запустит полный init, независимо от того, что находится в вашем TF_CACHE_DIR или в каталоге .terraform.
Более подробно читайте здесь
#гайд
В Terraform 1.4.0 были внесены изменения, которые нарушают прежнее непреднамеренное поведение. Раньше моно было игнорировать lockfile и использовать кэшированных провайдеров, если ограничения версий в коде соответствовали локальному кэшу. Начиная с версии 1.4.0, Terraform всегда проверяет lockfile перед тем, как зайти в каталог кэша. На практике это означает, что если вы проигнорируете файл блокировки или полностью удалите его, Terraform запустит полный init, независимо от того, что находится в вашем TF_CACHE_DIR или в каталоге .terraform.
Более подробно читайте здесь
#гайд
🤩27❤4👍3
🤔 Очередной #дайджест для DevOps-ов
↘️ Stack Lifecycle Deployment — опенсорсный проект, определяющий и управляющий полным жизненным циклом ресурсов, используемых в облаке
↘️ Управление несколькими средами в Terraform — создание каталога для каждой среды и организацию кода инфраструктуры в этих каталогах
↘️ Демистификация OOM Killer в Kubernetes — отслеживание проблем с памятью
↘️ Б значит не Безумие, а Безопасность — кибербезопасность сейчас в тренде, безопасность инфраструктуры и ПО, располагаемого в ней, тоже — об этом и пойдет речь
↘️ 10 советов по управлению крупными инцидентами — просмотрите логи, поковыряйте мониторинг, обратитесь в службу поддержки и т. д.
↘️ Stack Lifecycle Deployment — опенсорсный проект, определяющий и управляющий полным жизненным циклом ресурсов, используемых в облаке
↘️ Управление несколькими средами в Terraform — создание каталога для каждой среды и организацию кода инфраструктуры в этих каталогах
↘️ Демистификация OOM Killer в Kubernetes — отслеживание проблем с памятью
↘️ Б значит не Безумие, а Безопасность — кибербезопасность сейчас в тренде, безопасность инфраструктуры и ПО, располагаемого в ней, тоже — об этом и пойдет речь
↘️ 10 советов по управлению крупными инцидентами — просмотрите логи, поковыряйте мониторинг, обратитесь в службу поддержки и т. д.
👍7😁6🎉6👏5❤4
#вопросы_с_собеседования
Что такое контейнеризация? Чем она отличается от виртуализации?
При виртуализации машины создаются с помощью гипервизора и все аппаратные составляющие создаются через него. Затем на него накатываются операционные системы. Соответственно, ресурсы машины будут уходить на поддержание работы запущенной операционной системы.
При контейнеризации аппаратные ресурсы выделяются с помощью ядра операционной системы, и изолируются пространством имен. Следовательно, они потребляют меньше ресурсов, и быстрее пересоздаются.
Что такое контейнеризация? Чем она отличается от виртуализации?
При виртуализации машины создаются с помощью гипервизора и все аппаратные составляющие создаются через него. Затем на него накатываются операционные системы. Соответственно, ресурсы машины будут уходить на поддержание работы запущенной операционной системы.
При контейнеризации аппаратные ресурсы выделяются с помощью ядра операционной системы, и изолируются пространством имен. Следовательно, они потребляют меньше ресурсов, и быстрее пересоздаются.
❤🔥33🔥3👍2
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤2
✍️😎 Пишем Ansible-модули для управления разными системами хранения данных через Swordfish
Большинство современных систем хранения данных (СХД) предоставляют REST API для управления ими, включая настройку, конфигурирование, выполнение различных команд, получение логов, работу с пользователями и т.д. В зависимости от производителя СХД REST API могут отличаться друг от друга. Если вы используете несколько разных систем, их одновременная поддержка становится проблемой: нужно учитывать многообразие протоколов, интерфейсов, команд и способов взаимодействия с API.
О Swordfish и преимуществах спецификации
Swordfish — это стандарт управления хранилищами данных, разработанный SNIA (Storage Networking Industry Association). Эта организация объединяет производителей и пользователей СХД с целью разработки и поддержки отраслевых стандартов и технологий хранения данных. Swordfish предоставляет богатый функционал для управления ресурсами хранилищ данных, конфигурации и мониторинга систем, поддерживает механизмы аутентификации и авторизации для обеспечения безопасности. Спецификация Swordfish призвана решить большое количество проблем с универсальностью управления СХД в современной инфраструктуре, а за развитием и улучшением стандарта стоит активное сообщество.
Продолжение тут
#туториал
Большинство современных систем хранения данных (СХД) предоставляют REST API для управления ими, включая настройку, конфигурирование, выполнение различных команд, получение логов, работу с пользователями и т.д. В зависимости от производителя СХД REST API могут отличаться друг от друга. Если вы используете несколько разных систем, их одновременная поддержка становится проблемой: нужно учитывать многообразие протоколов, интерфейсов, команд и способов взаимодействия с API.
О Swordfish и преимуществах спецификации
Swordfish — это стандарт управления хранилищами данных, разработанный SNIA (Storage Networking Industry Association). Эта организация объединяет производителей и пользователей СХД с целью разработки и поддержки отраслевых стандартов и технологий хранения данных. Swordfish предоставляет богатый функционал для управления ресурсами хранилищ данных, конфигурации и мониторинга систем, поддерживает механизмы аутентификации и авторизации для обеспечения безопасности. Спецификация Swordfish призвана решить большое количество проблем с универсальностью управления СХД в современной инфраструктуре, а за развитием и улучшением стандарта стоит активное сообщество.
Продолжение тут
#туториал
🎉22❤5👍2
🤔✏️ Обзор одноцелевых дистрибутивов Linux
Многие из тех, кто устанавливает дистрибутив Linux для одной-единственной цели, например, для работы с контейнерами, предпочитают развёртывание по принципу «поставил и забыл». На конференции FOSDEM 2023, состоявшейся в Брюсселе, было представлено несколько проектов из разряда таких «минимальных дистрибутивов Linux». Все они — Fedora CoreOS, Ubuntu Core, openSUSE MicroOS и Bottlerocket OS — решают такие задачи по-своему. Из выступлений на FOSDEM можно составить интересную перспективу, демонстрирующую, в чём эти проекты отличаются на уровне применяемых подходов.
Изучить дистрибутивы
#гайд
Многие из тех, кто устанавливает дистрибутив Linux для одной-единственной цели, например, для работы с контейнерами, предпочитают развёртывание по принципу «поставил и забыл». На конференции FOSDEM 2023, состоявшейся в Брюсселе, было представлено несколько проектов из разряда таких «минимальных дистрибутивов Linux». Все они — Fedora CoreOS, Ubuntu Core, openSUSE MicroOS и Bottlerocket OS — решают такие задачи по-своему. Из выступлений на FOSDEM можно составить интересную перспективу, демонстрирующую, в чём эти проекты отличаются на уровне применяемых подходов.
Изучить дистрибутивы
#гайд
❤2👏2
Шпаргалка по командной строке CMD
TSKILL - завершение процессов, адаптированное для среды сервера терминалов (RDP).
SETX
- утилита для создания системных переменныхSFC
- проверка и восстановление системных файлов WindowsSHARE
- просмотр, создание и удаление разделяемых в локальной сети ресурсовSHUTDOWN
- выключение или перезагрузка компьютераSLEEP
- задержка по времени в пакетном файлеSLMGR
- управление лицензированием программного обеспечения WindowsSORT
- сортировка строк в текстовом файлеSTART
- запуск приложения или командного файлаSTORDIAG
- диагностика системы хранения данных в Windows 10SUBST
- назначение (отмена назначения) каталогу буквы дискаSxSTrace
- диагностическое средство трассировки компонент системыSYSTEMINFO
- отображение информации о системеTAKEOWN
- изменение владельца файла или каталогаTAR
- архивирование данных архиватором tar в Windows 10TASKKILL
- завершение процессов на локальной или удаленной системе.TASKLIST
- отображение списка выполняющихся приложений и служб WindowsTIME
- отображение и установка системного времениTELNET
- telnet-клиент WindowsTFTP
- TFTP-клиент WindowsTIMEOUT
- задержка в пакетных файлахTITLE
- изменение заголовка окна CMD.EXETRACERT
- трассировка маршрута к удаленному узлуTREE
- отображение структуры каталога в графическом видеTSCON
- подключение к сессии удаленного рабочего стола (RDP).TSDISCON
- отключение сессии удаленного рабочего стола (RDP).TSKILL - завершение процессов, адаптированное для среды сервера терминалов (RDP).
TYPE
- вывод на экран содержимого текстового файлаTypePerf
- вывод сведений о производительности на экран или в журналTZUTIL
- управление часовыми поясами в среде WindowsVER
- отображение версии операционной системыVERIFY
- управление режимом проверки записываемых файловVOL
- вывод данных метки томаVSSADMIN
- администрирование службы теневого копирования томов.W32TM
- управление службой времени WindowsWAITFOR
- организация обмена сигналами между компьютерамиWBADMIN
- управление резервным копированием и восстановлением в WindowsWEVTUTIL
- управление событиями в WindowsWHERE
- определение места расположения файловWHOAMI
- вывод имени текущего пользователяWINDIFF
- сравнение содержимого файловWinMgmt
- обслуживание инструментария управления Windows (WMI)WINRM
- удаленное управление Windows из командной строкиWINRS
- удаленная командная строка (Remote Shell)WINSAT
- средство проверки производительности WindowsWMIC
- выполнение команды WMI в командной строкеWSCollect
- получить CAB-файл с копиями журналов Windows 10 на рабочем столеWscript
- сервер сценариев Windows с графическим интерфейсомWSL
- выполнение команд Linux и конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10WSLconfig
- конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10XCOPY
- копирование файлов и папок👍9❤6🔥5👏5🥰3
#вопросы_с_собеседования
Что такое docker и какие инструменты linux лежат в основе? Для чего он используется?
Docker базируется на технологиях:
А вот докер — это уже штука, которая всеми этими технологиями рулит, удобным для нас образом.
Компоненты докера:
На
Docker daemon (демон) — это серверная часть, работающая на хост-машине: скачивает образы и запускает из них контейнеры, создаёт сеть между контейнерами, собирает логи. Когда мы говорим «создай образ», этим тоже занимается демон.
Docker CLI — клиентская часть Docker, консольная утилита для работы с демоном. Может работать не только локально, но и по сети.
Что такое docker и какие инструменты linux лежат в основе? Для чего он используется?
Docker базируется на технологиях:
🔸 namespaces
— обеспечивает изоляцию (например, можно айдишники процессов разместить в разных контейнерах)🔸 cgroups
— позволяет управлять группой процессов, и управлять их ресурсами
🔸 capabilities
— позволяет дать некоторые рут привелегии процессам или исполняемым файлам. Например, изменить UID процесса на 0, или дать возможность монтировать файловые системы.
🔸 overlay namespaces
— (overlayFS, overlay2-драйвер) - файловая система, которая умеет работать "слоями". Не сохранять каждый раз новые файлы, а наслаивать один слой на другой, тем самым экономя место на диске и время создания контейнера.А вот докер — это уже штука, которая всеми этими технологиями рулит, удобным для нас образом.
Компоненты докера:
🔻 Docker Daemon
— тот самый Container Engine; запускает контейнеры.🔻 Docker CLI
— утилита по управлению Docker.🔻 Dockerfile
— инструкция по тому, как собирать образ.🔻 Image
— образ, из которого раскатывается контейнер.🔻 Container
🔻 Docker registry
— хранилище образов.На
Docker_host
работает Docker daemon и запускает контейнеры. Client
— передаёт команды: собери образ, скачай образ, запусти контейнер. Docker daemon
ходит в registry и выполняет их. Docker-клиент может обращаться и локально (к юникс-сокету), и по TCP с удалённого хоста.Docker daemon (демон) — это серверная часть, работающая на хост-машине: скачивает образы и запускает из них контейнеры, создаёт сеть между контейнерами, собирает логи. Когда мы говорим «создай образ», этим тоже занимается демон.
Docker CLI — клиентская часть Docker, консольная утилита для работы с демоном. Может работать не только локально, но и по сети.
🔥42👍3❤1
🤔 Очередной #дайджест для DevOps-ов
🔺 CNCF White Paper по observability — инструменты, виды, стратегии и проблемы
🔺 Создание современных асинхронных систем — как создать устойчивую и масштабируемую асинхронную систему для управления сложным рабочим процессом
🔺 Настройка Honeypot в Mikrotik — что это такое, зачем он нужен и как его настраивать и использовать в MikroTik
🔺 Форматирование файловой системы XFS — инженеры Oracle пишут о работе mkfs.xfs и о том, что происходит в процессе форматирования раздела в этой файловой системе
🔺 Sudo без бинарного setuid или SSH через UNIX-сокет — странная, но занятная попытка отказаться от sudo и заменить его соединением по SSH через сокет
🔺 CNCF White Paper по observability — инструменты, виды, стратегии и проблемы
🔺 Создание современных асинхронных систем — как создать устойчивую и масштабируемую асинхронную систему для управления сложным рабочим процессом
🔺 Настройка Honeypot в Mikrotik — что это такое, зачем он нужен и как его настраивать и использовать в MikroTik
🔺 Форматирование файловой системы XFS — инженеры Oracle пишут о работе mkfs.xfs и о том, что происходит в процессе форматирования раздела в этой файловой системе
🔺 Sudo без бинарного setuid или SSH через UNIX-сокет — странная, но занятная попытка отказаться от sudo и заменить его соединением по SSH через сокет
👍8❤6🎉5🔥4🥰4
🔧🔧 Bitwarden в действии: автоматизация смены ключей и паролей для AWS
В мире, где каждая учетная запись требует от нас еще одного пароля, и каждый облачный сервис, такой как AWS, зависит от надежности этих ключей, менеджеры паролей вроде Bitwarden выступают как спасители. Они не просто хранят наши ключи и пароли, но и делают их управление значительно удобнее. Однако, даже с таким мощным инструментом, как Bitwarden, мы сталкиваемся с ограничением: он не способен автоматически обновлять и менять используемые в облачных сервисах ключи и пароли.
Итак, что делать, когда ручное обновление ключей и паролей становится скучной и малоэффективной задачей? В этой статье вы узнаете, как можно объединить удобство использования Bitwarden с эффективными методами автоматизации для управления учетными данными AWS. Представьте себе — больше нет монотонного ввода паролей и обновлений ключей вручную. Но для этого придется немного постараться.
Продолжение здесь
#гайд
В мире, где каждая учетная запись требует от нас еще одного пароля, и каждый облачный сервис, такой как AWS, зависит от надежности этих ключей, менеджеры паролей вроде Bitwarden выступают как спасители. Они не просто хранят наши ключи и пароли, но и делают их управление значительно удобнее. Однако, даже с таким мощным инструментом, как Bitwarden, мы сталкиваемся с ограничением: он не способен автоматически обновлять и менять используемые в облачных сервисах ключи и пароли.
Итак, что делать, когда ручное обновление ключей и паролей становится скучной и малоэффективной задачей? В этой статье вы узнаете, как можно объединить удобство использования Bitwarden с эффективными методами автоматизации для управления учетными данными AWS. Представьте себе — больше нет монотонного ввода паролей и обновлений ключей вручную. Но для этого придется немного постараться.
Продолжение здесь
#гайд
❤27👍4🔥1
Radius
Это облачная опенсорсная платформа, которая позволяет разработчикам определять, развертывать облачные приложения и совместно работать над ними в общедоступных облаках и частной инфраструктуре
Ключевые особенности платформы:
Совместная работа в команде: приложения и среды Radius позволяют разработчикам выполнять операции по определению и доставке приложений.
Рецепты инфраструктуры: заменяемая инфраструктура, соответствующая лучшим практикам организации и политике ИТ по умолчанию.
График приложения: понимание того, как службы и инфраструктура в приложении взаимосвязаны.
Нейтральность к облаку: развертывание в среде разработки, локальных и облачных средах обеспечивает согласованность работы.
Постепенное внедрение: интегрируйте Radius в существующие рабочие процессы и каталоги шаблонов инфраструктуры в виде кода.
Подробнее об инструменте тут
#туториал
Это облачная опенсорсная платформа, которая позволяет разработчикам определять, развертывать облачные приложения и совместно работать над ними в общедоступных облаках и частной инфраструктуре
Ключевые особенности платформы:
Совместная работа в команде: приложения и среды Radius позволяют разработчикам выполнять операции по определению и доставке приложений.
Рецепты инфраструктуры: заменяемая инфраструктура, соответствующая лучшим практикам организации и политике ИТ по умолчанию.
График приложения: понимание того, как службы и инфраструктура в приложении взаимосвязаны.
Нейтральность к облаку: развертывание в среде разработки, локальных и облачных средах обеспечивает согласованность работы.
Постепенное внедрение: интегрируйте Radius в существующие рабочие процессы и каталоги шаблонов инфраструктуры в виде кода.
Подробнее об инструменте тут
#туториал
🎉15❤🔥13❤2🥰1
doas – утилита, которая позволяет обычным пользователям выполнять задачи от имени root, так же как это делает sudo. Она была разработана проектом OpenBSD как минималистичная альтернатива sudo.
Запускайте
Так как doas не входит по умолчанию в коробочные версии linux, утилита требует немного бОльших настроек, в отличие от sudo. Но конфигурация намного проще для понимания чем sudo. Настраивается все это через файл /etc/doas.conf. Если файла нет — создайте.
Сымитируем поведение sudo и позволим пользователю выполнять любые команды от пользователя root. Добавим в конфиг такое:
Теперь пользователь user сможет выполнять команды от root + пользователь получает льготный период, когда не нужно вводить пароль в течение нескольких минут после последовательных команд doas.
Допустим нужно сделать подобное, но для определенной группы, добавляем в конфиг строчку:
Теперь все кто в группе wheel смогут побыть рутом. Также и с белым списком команд, которые можно выдать для запуска без пароля:
Конфиг sudo
Ну и с помощью doas можно запустить root shell такой командой:
Запускайте
apt install doas
.Так как doas не входит по умолчанию в коробочные версии linux, утилита требует немного бОльших настроек, в отличие от sudo. Но конфигурация намного проще для понимания чем sudo. Настраивается все это через файл /etc/doas.conf. Если файла нет — создайте.
Сымитируем поведение sudo и позволим пользователю выполнять любые команды от пользователя root. Добавим в конфиг такое:
permit persist user as root
Теперь пользователь user сможет выполнять команды от root + пользователь получает льготный период, когда не нужно вводить пароль в течение нескольких минут после последовательных команд doas.
Допустим нужно сделать подобное, но для определенной группы, добавляем в конфиг строчку:
permit persist :wheel as root
Теперь все кто в группе wheel смогут побыть рутом. Также и с белым списком команд, которые можно выдать для запуска без пароля:
permit persist user as rootДа, конфиг более читабельный чем у sudo
permit nopass :user as root cmd apt
Конфиг sudo
%wheel ALL=(ALL) NOPASSWD: ALLКонфиг doas
permit nopass :wheel as root
Ну и с помощью doas можно запустить root shell такой командой:
doas -s
❤🔥14👍8❤1🔥1🌚1
Forwarded from Библиотека собеса по DevOps | вопросы с собеседований
Как оцениваете свой уровень знания ОС Linux по десятибальной шкале?
Вопрос с подвохом. Ответ «на десять» для заядлого линуксоида все равно что красная тряпка для быка, поэтому вы рискуете провести следующие два часа своей жизни максимально увлекательно :)
Вопрос с подвохом. Ответ «на десять» для заядлого линуксоида все равно что красная тряпка для быка, поэтому вы рискуете провести следующие два часа своей жизни максимально увлекательно :)
👍4❤2
🧑🍳🧑🍳 Синхронизация локальных изменений с docker/kubernetes контейнером
Ситуация — вы решили создать какой-то сервис, написали первичный код, завернули это в контейнер, запустили в docker или в kubernetes, и все заработало...но вам понадобилось поменять код, ведь вы собираетесь вести активную разработку — изменять файлы, добавлять новые зависимости и так далее, не хотелось бы каждый раз вручную собирать или синхронизировать файлы, т.к. это занимает много времени. К счастью мир не стоит на месте, и уже есть несколько инструментов, которые позволят вам решить эту задачу.
Здесь подробный рассказ
#туториал
Ситуация — вы решили создать какой-то сервис, написали первичный код, завернули это в контейнер, запустили в docker или в kubernetes, и все заработало...но вам понадобилось поменять код, ведь вы собираетесь вести активную разработку — изменять файлы, добавлять новые зависимости и так далее, не хотелось бы каждый раз вручную собирать или синхронизировать файлы, т.к. это занимает много времени. К счастью мир не стоит на месте, и уже есть несколько инструментов, которые позволят вам решить эту задачу.
Здесь подробный рассказ
#туториал
❤3🥰1
🤔 Очередной #дайджест для DevOps-ов
👉 AgileOps: Jira-центричный подход — как убрать препоны между бизнесом, DEV, OPS, SEC, QA и обеспечить прозрачность процессов можно разрабатывать свою автоматизацию для Jira
👉 AWS Weekly Roundup — Amazon Route53, Amazon EventBridge, Amazon SageMaker и еще чуток
👉 Изучаем Ansible Inventory — рассматривается базовая функциональность, управление переменными и комбинирование нескольких источников Inventory и варианты работы с динамическими Inventory
👉 ScyllaDB на Kubernetes — как запускать Intense Workloads с помощью Spot Instances
👉 Опыт масштабирования Kubernetes на 2k узлов и на 400k подов — рассмотрено как масштабируется Kubernetes и как можно улучшить масштабируемость, настраивая параметры кластера
👉 AgileOps: Jira-центричный подход — как убрать препоны между бизнесом, DEV, OPS, SEC, QA и обеспечить прозрачность процессов можно разрабатывать свою автоматизацию для Jira
👉 AWS Weekly Roundup — Amazon Route53, Amazon EventBridge, Amazon SageMaker и еще чуток
👉 Изучаем Ansible Inventory — рассматривается базовая функциональность, управление переменными и комбинирование нескольких источников Inventory и варианты работы с динамическими Inventory
👉 ScyllaDB на Kubernetes — как запускать Intense Workloads с помощью Spot Instances
👉 Опыт масштабирования Kubernetes на 2k узлов и на 400k подов — рассмотрено как масштабируется Kubernetes и как можно улучшить масштабируемость, настраивая параметры кластера
👍7🎉5🔥4👏3😁3