мб это тоже сыграло свою роль в популярности, но основа все таки другая. аргументы:
1) chatGPT PHP стал популярным благодаря своей простоте в изучении и использовании, богатой документации и огромному сообществу разработчиков. Он также легко интегрируется с различными базами данных, позволяет быстро написать динамические сайты и открывает много возможностей для создания веб‑приложений. Кроме того, PHP является бесплатным и доступным на большинстве серверов, что делает его привлекательным выбором для многих веб‑разработчиков
2) куча ссылок с первой страницы и все об одном - легко посадить любого новичка и получить хоть какой-то результат:
Потому что php стало нарицательным, жаль все забывают почему именно - php был простым как палка и в своё время позволял справляться с задачами где другие не вывозили по производительности, но именно из-за простоты и распространённости бизнес начал пытаться экономить... в итоге сотни тысяч обезьян такую фигню на нём пишут... Вообщем то что на языке удобнее и быстрее всего написать фигню - не делает его плохим, но об этом уже не упоминают.
смотря каких объемов кластер и какие функции поддерживает. грубо говоря работа уровня ученика не стоит ничего, а с ростом опыта в геометрической прогрессии растет и оплата.
helloy world легко оформить, вопросы встают когда необходимо обеспечить безопасность, изменять инсталляции под нужды проекта\организации.
и это на самом деле не бином ньютона - необходимы только желание и время разбираться
Предисловие. А еще я как-то упустил что топик для разработчиков(думаю для разработки избыточно) и ответ писал для DevOps'ов =) ну, пусть уже будет.
Гайд в целом неплох, но ученика может запутать на мой взгляд:
основной вывод про виртуализацию многие упускают - ресурсы выртуализированных сред отделены друг от друга и неразделяемы. контейнеры к примеру могут использовать один и тот же адрес оперативной памяти, виртуальные машины - нет.
на мой взгляд акценты по значимости немного другие: масштабируемость, потом управляемость(сюда же входит и автоматизированный запуск), SasS
вообще это скорее к общему порядку относится, но в частности для начала неплохо было бы стросить что такое вообще докер, libvirt, kvm, cgroups. а можно ли контейнер запустить без демона docker?
kubelet работает не только на worker нодах, но и на master. кстати с него бы и начал - отправная точка для работы k8s, потом уже контроллеры.
лучше бы спросить чем конкретно отличается statefulset от deployment - фактически только порядком процесса запуска и именованием пода.
опять же, как и во всех ответах - не акцентировано внимание на результаты - в частности pvc создан для того чтобы защитить pv от удаления пока есть хотя бы один запрос на использование. неплохо было бы уточнить что вопрос про хранилище именно данных.
вообще неплохо было бы для начала спросить что вообще такое service. ClusterIP сам по себе не дает возможность публикации, к нему еще нужны какая-то прокся. LoadBalancer так же можно использовать как и ClusterIP, различие в том что при обращении к сервису он отдает либо один ip, либо список ip из которого выбирается уже балансировщиком целевой под. ни первый способ, ни второй сам по себе не позволит опубликовать сервис.
вводит в заблуждение - kubectl к примеру не упаковывает контейнеры.
тут уже у всех свои предпочтения, но я бы рекомендовал(так же и сисадмином помогало двигаться по OSI) начинать от начала к концу - точка входа, ингресс, сервис, под, состояние пода, логи пода, ресурсы от которых зависит приложение.
Вот список вопросов(как видите они довольно схожи, только я еще прошу знание linux - т.к. k8s можно обучить за месяц, а опыт работы с linux набирается годами и он критичен потому что k8s это прежде всего инструмент который помогает управлять основой - linux) которые я задаю на позицию ученика(к сожалению сейчас нет времени на запись и пояснение ответов. PS редактор текста в комментарии кажется очень неудобным):
Общие: Что делает системный администратор? Что делает devops? Что такое GNU Что такое линукс
Linux:
чем отличается Unix и Linux
как происходит загрузка ОС что такое grub
что такое initd стадии initd
чем отличается пространство ядра и пространство пользователя?
демон systemd, команды systemctl, как создать сервис, как посмотреть журнал сервиса, что такое journalctl, как провести дебаг сервиса
компоненты процесса что такое PID, PPID, UID, GID и как их получить
команды top, htop что такое load average %Cpu(s): 7.3 us, 5.5 sy, 0.0 ni, 87.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st приоритет процесса, каким бывает, как установить, как узнать, oomkiller
файловая система как устроена файловая система, что такое inode, стандартные дирректории linux: /bin /boot /dev /etc /home /lib /opt /proc /root /tmp /usr /var, что такое df и ncdu
ACL как назначить права ,как сменить владельца, что такое cgroups
что такое rpm и yum, как посмотреть список установленных пакетов, как найти доступные пакеты в репозиториях, как установить репозиторий
GNU-Utils какими пользовались за последний год sed, awk, xargs, ls, find(и чем отличается от ls), grep, rm, move, tail, head, env, tee, curl, wget, tree
TCP/IP, уровни модели osi, что такое ip адрес, что такое маска сети, чем отличается TCP от UDP, netfilter и его компоненты, iptables и conntrack, что такое порт и сколько их может быть, команды ping, traceroute, tcpdump, netstat, nmap, telnet, netcat, что такое DNS? что такое nslookup
Docker Что такое Dockerfile что такое docker build Расскажите о CMD и ENTRYPOINT в Dockerfile, чем отличаются для чего используется multi-stage в Dockerfile Что такое контейнер Docker Назовите наиболее важные команды Docker Что такое пространства имен в Docker Как определить состояние контейнера Docker Опишите функции и случаи применения Docker Какие сети доступны по умолчанию в Docker Приведите необходимые шаги для развертывания докеризированного приложения, сохраненного в репозитории Git Если вы остановите контейнер — потеряете данные? Как выполняется мониторинг Docker в производственных окружениях Расскажите о ключевом различии между виртуализацией и контейнеризацией Где хранятся тома Docker
Kubernetes Что такое Kubernetes? Расскажите об основных компонентах kubernetes Чем полезна оркестровка контейнеров? Как связаны Kubernetes и Docker? Что такое node в Kubernetes? Что такое pod в Kubernetes? Что такое Kubernetes deployment? Опишите набор действий необходимых для запуска deployment? Объясните разницу между pod и deployment Что такое service? что такое namespace что такое controller-manager какие типы controller-manager вы знаете?(endpoints controller, service accounts controller, namespace controller, node controller, token controller, and replication controller) для чего etcd в kubernetes? что такое clusterIP? что такое NodePort? что такое kubelet? что такое kube-proxy?
для работы важны т.к. linux это основа, а docker + k8s обертка для всего этого.
"Спрашивают про архитектуры распределенных приложений, про обервабилити" - это уже SRE. Я такое спрашиваю только у профессионалов(а в статье обсуждается уровень ученика) и да - они обязаны знать линукс.
Для использования модуля авторизации/аутентификации он должен иметь отдельную лицензию на СЗИ(приказ 55) - как средство защиты информации. Можно ли ссылку на сертификат?
так и охота спросить "а вы кто собственно такой, чтобы мне было дело?" а я что-ли должен подбирать максимально удобную форму для соискателя?
на мой взгляд во всем должен быть компромисс - и нашим и вашим. если уж так для соискателя критичен формат - он может сказать об этом, сказать о том что сильно нервничал и все что знает забыл - мы же не космонавтов ищем. а способность коммуницировать будет только плюсом. но таких еще не встречал.
да и для меня самого подобного рода тех.собесы были лучшим вариантом когда искал работу
не соглашусь. я тоже на собеседованиях(правда на уровне ученика) прибегаю к списку коротких вопрос-ответ - так быстрее(примерно 30мин) понять с чем конкретно работал человек за последнее время.
на позиции повыше там где чуть расширенные вопросы выстреливают уже расспрашиваю - а какая именно ситуация к этому приводила, как справлялись.
и всегда напоминаю людям чтобы не нервничали, на все вопросы не надо знать ответа, мне только надо понять с какими конкретно инструментами и областями у ник есть закрепленный опыт.
я тоже по вашему мнению пытаюсь показать как они мало знают?
Открою секрет - за умение адекватно ставить задачу, исследовать варианты решения, реализовывать наилучшее решение - платят куда больше. А уж умение последовательно излагать мысли - вообще необходимо всем чтобы достигать взаимопонимания.
для мидла не описывал, но все то же самое с дополнительными вопросами вглубь и уточнениями завязанными на опыте. к примеру на вопрос "чем отличается tcp от udp" будет мало ответить "гарантией доставки" - необходимо так же упомянуть что tcp создает сессию.
а сеньоров нанимать не приходилось - сам еще не дорос до сеньора =)
рекомендую Unix_и_Linux_Руководство_системного_администратора_5_e_издание_2020 - первые три главы. эксплуатация активно развивается и четвертая глава уже не так актуальна, а вот часть где рассказывают про linux все еще более-менее актуально т.к. его основы не меняются каждый год.
обязательные - Linux(выше среднего + понимание сетей), Ansible(средний уровень + уметь читать и редактировать плейбуки), Docker, bash(средний уровень), git(начальный уровень), Nginx(начальный уровень), prometheus+grafana_alert_manager(начальный уровень + понимание работы prometheus operator)
дальше по формату работы - если ищем большую компанию - Jenkins, если бюрократия больших компаний претит - Gitlab
всегда удивляло требование знания БД... БД можно столько оптимизировать что для этого есть отдельная специальность - database administrator. а все остальное в виде установки(настройки pghab_conf в том числе) и кластера(к примеру coronasync, pacemaker) можно по гайду конечно изучить, но зачем?
Python вообще ни разу не пригодился за 4 года работы непосредственно devops...
Ну и на затравку список вопросов которые задавал на позицию ученика(junior). В формате быстрых вопросов-ответов, без углубления в тему:
Общие: Что делает системный администратор? Что делает devops? Что такое GNU Что такое линукс
Linux:
чем отличается Unix и Linux
как происходит загрузка ОС что такое grub
что такое initd стадии initd
чем отличается пространство ядра и пространство пользователя?
демон systemd, команды systemctl, как создать сервис, как посмотреть журнал сервиса, что такое journalctl, как провести дебаг сервиса
компоненты процесса что такое PID, PPID, UID, GID и как их получить
команды top, htop что такое load average %Cpu(s): 7.3 us, 5.5 sy, 0.0 ni, 87.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st приоритет процесса, каким бывает, как установить, как узнать, oomkiller
файловая система как устроена файловая система, что такое inode, стандартные дирректории linux: /bin /boot /dev /etc /home /lib /opt /proc /root /tmp /usr /var, что такое df и ncdu
ACL как назначить права ,как сменить владельца, что такое cgroups
что такое rpm и yum, как посмотреть список установленных пакетов, как найти доступные пакеты в репозиториях, как установить репозиторий
GNU-Utils какими пользовались за последний год sed, awk, xargs, ls, find(и чем отличается от ls), grep, rm, move, tail, head, env, tee, curl, wget, tree
TCP/IP, уровни модели osi, что такое ip адрес, что такое маска сети, чем отличается TCP от UDP, netfilter и его компоненты, iptables и conntrack, что такое порт и сколько их может быть, команды ping, traceroute, tcpdump, netstat, nmap, telnet, netcat, что такое DNS? что такое nslookup
Docker Что такое Dockerfile что такое docker build Расскажите о CMD и ENTRYPOINT в Dockerfile, чем отличаются для чего используется multi-stage в Dockerfile Что такое контейнер Docker Назовите наиболее важные команды Docker Что такое пространства имен в Docker Как определить состояние контейнера Docker Опишите функции и случаи применения Docker Какие сети доступны по умолчанию в Docker Приведите необходимые шаги для развертывания докеризированного приложения, сохраненного в репозитории Git Если вы остановите контейнер — потеряете данные? Как выполняется мониторинг Docker в производственных окружениях Расскажите о ключевом различии между виртуализацией и контейнеризацией Где хранятся тома Docker
Kubernetes Что такое Kubernetes? Расскажите об основных компонентах kubernetes Чем полезна оркестровка контейнеров? Как связаны Kubernetes и Docker? Что такое node в Kubernetes? Что такое pod в Kubernetes? Что такое Kubernetes deployment? Опишите набор действий необходимых для запуска deployment? Объясните разницу между pod и deployment Что такое service? что такое namespace что такое controller-manager какие типы controller-manager вы знаете?(endpoints controller, service accounts controller, namespace controller, node controller, token controller, and replication controller) для чего etcd в kubernetes? что такое clusterIP? что такое NodePort? что такое kubelet? что такое kube-proxy?
т.е. там за последние 60 лет придумали что-то кроме numpy(или его более молодых аналогов)? ну действительно же - мало что меняется в ML, просто то что было начали использовать в разных отраслях.
в 1 и 2 для большинства работников области действительно мало что меняется - потому что они никогда этих технологий в живую и не пощупают в виду малораспространнености дорогих железок и вакантных мест на необходимые навыки
никаких проблем не возникнет если знаете ansible, а ansible достаточно легок в освоении.
я начинал с ванильного k8s, потом kubespray на ansible - все что требовалось кастомизировать - кастомизировалось за один день максимум.
еще момент - я использовал форк kubespray от southbridge(https://github.com/southbridgeio/kubespray) - они раскатывают кластер целиком при помощи ansible, а последний официальный kubespray использует под собой kubeadm
простой пример - в пятницу разработчик запланировал отдохнуть и когда ему позвонили в 20.00 с вопросом по его функционалу - уже не отвечает.
запрет в пятницу, перед праздниками - привязан не к бизнес логике а к людям сопровождающим систему.
ПС. поднимать в понедельник-вторник гораздо веселее и продуктивнее когда команда отдохнула на выходных, чем в пятницу-субботу когда команда думает об остывшей пицце а не о работе.
мб это тоже сыграло свою роль в популярности, но основа все таки другая. аргументы:
1) chatGPT
PHP стал популярным благодаря своей простоте в изучении и использовании, богатой документации и огромному сообществу разработчиков. Он также легко интегрируется с различными базами данных, позволяет быстро написать динамические сайты и открывает много возможностей для создания веб‑приложений. Кроме того, PHP является бесплатным и доступным на большинстве серверов, что делает его привлекательным выбором для многих веб‑разработчиков
2) куча ссылок с первой страницы и все об одном - легко посадить любого новичка и получить хоть какой-то результат:
Одной из главных причин, почему PHP лидирует в веб-разработке, является его простота и доступность
PHP подходит тем, кто начинает изучать язык с нуля. Наши эксперты единодушны: данную технологию можно освоить без профильного образования
PHP — это язык номер один по перформансу среди интерпретируемых языков в мире. Радует, что с каждой новой версией производительность языка возрастает.
Если в Java или C# допустить алгоритмическую ошибку — например, присвоить переменной не тот тип, — они «дадут по рукам». PHP же это пропустит, и программист сломает голову: что не так?
Его считают плохим те, кто на нём не пишет, либо, кто столкнулся с некачественным исполнением поставленной задачи. Те разработчики, кто не стремятся изучить документацию языка и не следуют рекомендациям, пишут на нём действительно очень слабо. Это бросает тень на всё сообщество. PHP — язык с низким порогом вхождения. Это одновременно сильная и слабая его сторона
ПС. забавно будет если это тоже заминусуют за "неконструктивное общение" =)
Потому что php стало нарицательным, жаль все забывают почему именно - php был простым как палка и в своё время позволял справляться с задачами где другие не вывозили по производительности, но именно из-за простоты и распространённости бизнес начал пытаться экономить... в итоге сотни тысяч обезьян такую фигню на нём пишут... Вообщем то что на языке удобнее и быстрее всего написать фигню - не делает его плохим, но об этом уже не упоминают.
смотря каких объемов кластер и какие функции поддерживает. грубо говоря работа уровня ученика не стоит ничего, а с ростом опыта в геометрической прогрессии растет и оплата.
helloy world легко оформить, вопросы встают когда необходимо обеспечить безопасность, изменять инсталляции под нужды проекта\организации.
и это на самом деле не бином ньютона - необходимы только желание и время разбираться
Предисловие. А еще я как-то упустил что топик для разработчиков(думаю для разработки избыточно) и ответ писал для DevOps'ов =) ну, пусть уже будет.
Гайд в целом неплох, но ученика может запутать на мой взгляд:
основной вывод про виртуализацию многие упускают - ресурсы выртуализированных сред отделены друг от друга и неразделяемы. контейнеры к примеру могут использовать один и тот же адрес оперативной памяти, виртуальные машины - нет.
на мой взгляд акценты по значимости немного другие: масштабируемость, потом управляемость(сюда же входит и автоматизированный запуск), SasS
вообще это скорее к общему порядку относится, но в частности для начала неплохо было бы стросить что такое вообще докер, libvirt, kvm, cgroups. а можно ли контейнер запустить без демона docker?
kubelet работает не только на worker нодах, но и на master. кстати с него бы и начал - отправная точка для работы k8s, потом уже контроллеры.
лучше бы спросить чем конкретно отличается statefulset от deployment - фактически только порядком процесса запуска и именованием пода.
опять же, как и во всех ответах - не акцентировано внимание на результаты - в частности pvc создан для того чтобы защитить pv от удаления пока есть хотя бы один запрос на использование. неплохо было бы уточнить что вопрос про хранилище именно данных.
вообще неплохо было бы для начала спросить что вообще такое service. ClusterIP сам по себе не дает возможность публикации, к нему еще нужны какая-то прокся. LoadBalancer так же можно использовать как и ClusterIP, различие в том что при обращении к сервису он отдает либо один ip, либо список ip из которого выбирается уже балансировщиком целевой под. ни первый способ, ни второй сам по себе не позволит опубликовать сервис.
вводит в заблуждение - kubectl к примеру не упаковывает контейнеры.
тут уже у всех свои предпочтения, но я бы рекомендовал(так же и сисадмином помогало двигаться по OSI) начинать от начала к концу - точка входа, ингресс, сервис, под, состояние пода, логи пода, ресурсы от которых зависит приложение.
Вот список вопросов(как видите они довольно схожи, только я еще прошу знание linux - т.к. k8s можно обучить за месяц, а опыт работы с linux набирается годами и он критичен потому что k8s это прежде всего инструмент который помогает управлять основой - linux) которые я задаю на позицию ученика(к сожалению сейчас нет времени на запись и пояснение ответов. PS редактор текста в комментарии кажется очень неудобным):
Общие:
Что делает системный администратор?
Что делает devops?
Что такое GNU
Что такое линукс
Linux:
чем отличается Unix и Linux
как происходит загрузка ОС что такое grub
что такое initd стадии initd
чем отличается пространство ядра и пространство пользователя?
демон systemd, команды systemctl, как создать сервис, как посмотреть журнал сервиса, что такое journalctl, как провести дебаг сервиса
компоненты процесса что такое PID, PPID, UID, GID и как их получить
команды top, htop что такое load average %Cpu(s): 7.3 us, 5.5 sy, 0.0 ni, 87.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st приоритет процесса, каким бывает, как установить, как узнать, oomkiller
файловая система как устроена файловая система, что такое inode, стандартные дирректории linux: /bin /boot /dev /etc /home /lib /opt /proc /root /tmp /usr /var, что такое df и ncdu
ACL как назначить права ,как сменить владельца, что такое cgroups
что такое rpm и yum, как посмотреть список установленных пакетов, как найти доступные пакеты в репозиториях, как установить репозиторий
GNU-Utils какими пользовались за последний год sed, awk, xargs, ls, find(и чем отличается от ls), grep, rm, move, tail, head, env, tee, curl, wget, tree
TCP/IP, уровни модели osi, что такое ip адрес, что такое маска сети, чем отличается TCP от UDP, netfilter и его компоненты, iptables и conntrack, что такое порт и сколько их может быть, команды ping, traceroute, tcpdump, netstat, nmap, telnet, netcat, что такое DNS? что такое nslookup
Docker
Что такое Dockerfile
что такое docker build
Расскажите о CMD и ENTRYPOINT в Dockerfile, чем отличаются
для чего используется multi-stage в Dockerfile
Что такое контейнер Docker
Назовите наиболее важные команды Docker
Что такое пространства имен в Docker
Как определить состояние контейнера Docker
Опишите функции и случаи применения Docker
Какие сети доступны по умолчанию в Docker
Приведите необходимые шаги для развертывания докеризированного приложения, сохраненного в репозитории Git
Если вы остановите контейнер — потеряете данные?
Как выполняется мониторинг Docker в производственных окружениях
Расскажите о ключевом различии между виртуализацией и контейнеризацией
Где хранятся тома Docker
Kubernetes
Что такое Kubernetes?
Расскажите об основных компонентах kubernetes
Чем полезна оркестровка контейнеров?
Как связаны Kubernetes и Docker?
Что такое node в Kubernetes?
Что такое pod в Kubernetes?
Что такое Kubernetes deployment?
Опишите набор действий необходимых для запуска deployment?
Объясните разницу между pod и deployment
Что такое service?
что такое namespace
что такое controller-manager
какие типы controller-manager вы знаете?(endpoints controller, service accounts controller, namespace controller, node controller, token controller, and replication controller)
для чего etcd в kubernetes?
что такое clusterIP?
что такое NodePort?
что такое kubelet?
что такое kube-proxy?
для работы важны т.к. linux это основа, а docker + k8s обертка для всего этого.
"Спрашивают про архитектуры распределенных приложений, про обервабилити" - это уже SRE. Я такое спрашиваю только у профессионалов(а в статье обсуждается уровень ученика) и да - они обязаны знать линукс.
Для использования модуля авторизации/аутентификации он должен иметь отдельную лицензию на СЗИ(приказ 55) - как средство защиты информации. Можно ли ссылку на сертификат?
вы вырываете из контекста и делаете из этого сенсацию. я не только говорю "не бойся" я еще и аргументирую почему это не страшно
"не нервничали, на все вопросы не надо знать ответа, мне только надо понять с какими конкретно инструментами и областями у ник есть закрепленный опыт"
боже упаси, я девопс и спрашиваю то что надо девопсу(и это не сортировка массивов =) )
в этот список зачастую даже не входят частности - только необходимое для конкретной деятельности. пример у меня в комментариях пару дней назад
так и охота спросить "а вы кто собственно такой, чтобы мне было дело?"
а я что-ли должен подбирать максимально удобную форму для соискателя?
на мой взгляд во всем должен быть компромисс - и нашим и вашим. если уж так для соискателя критичен формат - он может сказать об этом, сказать о том что сильно нервничал и все что знает забыл - мы же не космонавтов ищем. а способность коммуницировать будет только плюсом. но таких еще не встречал.
да и для меня самого подобного рода тех.собесы были лучшим вариантом когда искал работу
не соглашусь. я тоже на собеседованиях(правда на уровне ученика) прибегаю к списку коротких вопрос-ответ - так быстрее(примерно 30мин) понять с чем конкретно работал человек за последнее время.
на позиции повыше там где чуть расширенные вопросы выстреливают уже расспрашиваю - а какая именно ситуация к этому приводила, как справлялись.
и всегда напоминаю людям чтобы не нервничали, на все вопросы не надо знать ответа, мне только надо понять с какими конкретно инструментами и областями у ник есть закрепленный опыт.
я тоже по вашему мнению пытаюсь показать как они мало знают?
https://en.wikipedia.org/wiki/Timeline_of_machine_learning
о таких 60ти годах.
вы говорите об инструментах, я говорю об области знаний.
на примере сетей - TCP/IP не менялось туеву хучу лет, хотя инструменты менялись постоянно.
так то и в других областях - к примеру водителям не приходится ездить на одной машине всю жизнь.
В итоге от аргументов - "больше платят"
Аргументов для применения как сисадмину - ноль
Открою секрет - за умение адекватно ставить задачу, исследовать варианты решения, реализовывать наилучшее решение - платят куда больше. А уж умение последовательно излагать мысли - вообще необходимо всем чтобы достигать взаимопонимания.
для мидла не описывал, но все то же самое с дополнительными вопросами вглубь и уточнениями завязанными на опыте. к примеру на вопрос "чем отличается tcp от udp" будет мало ответить "гарантией доставки" - необходимо так же упомянуть что tcp создает сессию.
а сеньоров нанимать не приходилось - сам еще не дорос до сеньора =)
рекомендую Unix_и_Linux_Руководство_системного_администратора_5_e_издание_2020 - первые три главы. эксплуатация активно развивается и четвертая глава уже не так актуальна, а вот часть где рассказывают про linux все еще более-менее актуально т.к. его основы не меняются каждый год.
так же, для новичков в k8s, тот же открытый курс от Слёрм:
https://www.youtube.com/playlist?list=PL8D2P0ruohOA4Y9LQoTttfSgsRwUGWpu6
я бы сказал скорее так:
обязательные - Linux(выше среднего + понимание сетей), Ansible(средний уровень + уметь читать и редактировать плейбуки), Docker, bash(средний уровень), git(начальный уровень), Nginx(начальный уровень), prometheus+grafana_alert_manager(начальный уровень + понимание работы prometheus operator)
дальше по формату работы - если ищем большую компанию - Jenkins, если бюрократия больших компаний претит - Gitlab
всегда удивляло требование знания БД... БД можно столько оптимизировать что для этого есть отдельная специальность - database administrator. а все остальное в виде установки(настройки pghab_conf в том числе) и кластера(к примеру coronasync, pacemaker) можно по гайду конечно изучить, но зачем?
Python вообще ни разу не пригодился за 4 года работы непосредственно devops...
Ну и на затравку список вопросов которые задавал на позицию ученика(junior). В формате быстрых вопросов-ответов, без углубления в тему:
Общие:
Что делает системный администратор?
Что делает devops?
Что такое GNU
Что такое линукс
Linux:
чем отличается Unix и Linux
как происходит загрузка ОС что такое grub
что такое initd стадии initd
чем отличается пространство ядра и пространство пользователя?
демон systemd, команды systemctl, как создать сервис, как посмотреть журнал сервиса, что такое journalctl, как провести дебаг сервиса
компоненты процесса что такое PID, PPID, UID, GID и как их получить
команды top, htop что такое load average %Cpu(s): 7.3 us, 5.5 sy, 0.0 ni, 87.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st приоритет процесса, каким бывает, как установить, как узнать, oomkiller
файловая система как устроена файловая система, что такое inode, стандартные дирректории linux: /bin /boot /dev /etc /home /lib /opt /proc /root /tmp /usr /var, что такое df и ncdu
ACL как назначить права ,как сменить владельца, что такое cgroups
что такое rpm и yum, как посмотреть список установленных пакетов, как найти доступные пакеты в репозиториях, как установить репозиторий
GNU-Utils какими пользовались за последний год sed, awk, xargs, ls, find(и чем отличается от ls), grep, rm, move, tail, head, env, tee, curl, wget, tree
TCP/IP, уровни модели osi, что такое ip адрес, что такое маска сети, чем отличается TCP от UDP, netfilter и его компоненты, iptables и conntrack, что такое порт и сколько их может быть, команды ping, traceroute, tcpdump, netstat, nmap, telnet, netcat, что такое DNS? что такое nslookup
Docker
Что такое Dockerfile
что такое docker build
Расскажите о CMD и ENTRYPOINT в Dockerfile, чем отличаются
для чего используется multi-stage в Dockerfile
Что такое контейнер Docker
Назовите наиболее важные команды Docker
Что такое пространства имен в Docker
Как определить состояние контейнера Docker
Опишите функции и случаи применения Docker
Какие сети доступны по умолчанию в Docker
Приведите необходимые шаги для развертывания докеризированного приложения, сохраненного в репозитории Git
Если вы остановите контейнер — потеряете данные?
Как выполняется мониторинг Docker в производственных окружениях
Расскажите о ключевом различии между виртуализацией и контейнеризацией
Где хранятся тома Docker
Kubernetes
Что такое Kubernetes?
Расскажите об основных компонентах kubernetes
Чем полезна оркестровка контейнеров?
Как связаны Kubernetes и Docker?
Что такое node в Kubernetes?
Что такое pod в Kubernetes?
Что такое Kubernetes deployment?
Опишите набор действий необходимых для запуска deployment?
Объясните разницу между pod и deployment
Что такое service?
что такое namespace
что такое controller-manager
какие типы controller-manager вы знаете?(endpoints controller, service accounts controller, namespace controller, node controller, token controller, and replication controller)
для чего etcd в kubernetes?
что такое clusterIP?
что такое NodePort?
что такое kubelet?
что такое kube-proxy?
т.е. там за последние 60 лет придумали что-то кроме numpy(или его более молодых аналогов)? ну действительно же - мало что меняется в ML, просто то что было начали использовать в разных отраслях.
в 1 и 2 для большинства работников области действительно мало что меняется - потому что они никогда этих технологий в живую и не пощупают в виду малораспространнености дорогих железок и вакантных мест на необходимые навыки
так и сейчас каждый бит на учете - объемы такие что x86 машины справляются с трудом
вы и без kubeadm все делали? там и сертификаты выписывались не на год - что в то время еще было головной болью
никаких проблем не возникнет если знаете ansible, а ansible достаточно легок в освоении.
я начинал с ванильного k8s, потом kubespray на ansible - все что требовалось кастомизировать - кастомизировалось за один день максимум.
еще момент - я использовал форк kubespray от southbridge(https://github.com/southbridgeio/kubespray) - они раскатывают кластер целиком при помощи ansible, а последний официальный kubespray использует под собой kubeadm
простой пример - в пятницу разработчик запланировал отдохнуть и когда ему позвонили в 20.00 с вопросом по его функционалу - уже не отвечает.
запрет в пятницу, перед праздниками - привязан не к бизнес логике а к людям сопровождающим систему.
ПС. поднимать в понедельник-вторник гораздо веселее и продуктивнее когда команда отдохнула на выходных, чем в пятницу-субботу когда команда думает об остывшей пицце а не о работе.