Skip to content

Техническое собеседование DevOps 2025: Как войти в айти ?

Интервью на позицию DevOps инженера с разбором технических вопросов и советами по прохождению собеседований в IT.

Key Takeaways

  • Не бойтесь ошибаться на собеседовании — это нормальная практика.
  • Понимание базовых процессов Linux, таких как загрузка системы и управление процессами, важно для DevOps.
  • Высокий load average при низкой загрузке CPU может указывать на проблемы с дисками или файловыми системами.
  • Виртуальные файловые системы и LVM — ключевые понятия для администрирования Linux-серверов.
  • Постоянная практика и прохождение интервью помогают улучшить навыки и повысить шансы на трудоустройство.

What the video covers

  • Интервью на позицию DevOps инженера с зарплатой 400 000 рублей и администрированием инфраструктуры и Docker.
  • Обсуждение процесса загрузки Linux, включая BIOS, загрузчик GRUB и systemd-юниты.
  • Разбор понятия load average и его связи с количеством ядер и нагрузкой на сервер.
  • Диагностика проблемы с сервером, когда load average очень высокий, но загрузка CPU и память низкие.
  • Обсуждение возможных причин проблем с сервером, включая деградацию диска и проблемы с файловыми системами.
  • Объяснение виртуальных файловых систем на примере /proc и NFS.
  • Краткий разбор LVM и его роли в управлении логическими томами.
  • Советы по прохождению технических собеседований и важности практики для повышения навыков.
  • Подчёркивание, что ошибки и незнание некоторых вопросов на интервью — это нормально.
  • Рассмотрение различных технических тем, связанных с Linux, сетями и DevOps.

Answers

Questions about this video

Что такое load average и как его интерпретировать?

Load average — это метрика ядра, показывающая среднюю нагрузку на систему за определённый период. Если значение load average превышает количество ядер, это может означать, что система перегружена.

Почему может быть высокий load average при низкой загрузке процессора?

Высокий load average при низкой загрузке CPU может указывать на проблемы с диском, например, деградацию или задержки при доступе к блоку, что замедляет обработку процессов.

Что делать, если удалённый лог-файл продолжает занимать место на диске?

Если файл удалён, но процесс всё ещё его использует, место не освобождается. Нужно найти процесс с помощью lsof и завершить его, чтобы освободить место.

Full Transcript — Download SRT & Markdown

00:00
Speaker A
Друзья, всем привет. Сегодня у нас интервью на позицию инженера DevOps с зарплатой в 400 000 руб. на руки, где используются закрытые контура и, соответственно, нужно администрировать инфраструктуру, Docker и так далее.
00:14
Speaker A
Интервью я выкладываю исключительно для того, чтобы показать, насколько это всё достаточно просто. Можно провалить половину вопросов и всё равно устроиться. Это как бы абсолютно нормальная практика, если ты что-то не знаешь, потому что в разных компаниях используется разный стек, разные
00:29
Speaker A
технологии. Ты можешь вообще банально что-то забыть. Бывают у меня из головы вылетают вообще какие-то элементарные вещи, прямо азы, азов. Но на какие-то сложные вопросы я прекрасно знаю ответы.
00:38
Speaker A
То есть ошибаться и что-то не ответить на интервью — это абсолютно нормально. И не нужно этого бояться. Важно проходить интервью, собеседоваться, повышать свои скилы в прохождении интервью.
00:50
Speaker A
Вот. И рано или поздно вы устроитесь на работу, если у вас есть такое желание.
00:54
Speaker A
Дальше вы можете прекрасно работать, получать опыт на работе уже непосредственно и развиваться в компании. Давайте перейдём тогда к вопросам. М Дмитрий нам поможет.
01:07
Speaker A
Вот я в конце задам какие-нибудь ещё. Да, ещё раз приветствую. Э, первый вопрос. Как происходит процесс загрузки операционной системы Linux с момента включения сервера?
01:21
Speaker A
Мм, как он происходит? Как он происходит? Мы нажимаем на кнопку питания, потом загружается у нас, соответственно, BIOS, вот, который инициализирует и опрашивает компоненты, там память, про все вот эти вот дела.
01:37
Speaker A
А потом у нас происходит обращение к диску и загружается, я не помню, как это называется, первый сектор. Короче говоря, инициализируется загрузчик. Если брать Linux — это самый популярный GRUB, GRUB, LILO, по-моему, ещё раньше был. Не знаю, сейчас используется или нет.
01:56
Speaker A
А дальше загрузчик инициализирует у нас ядро операционной системы, которая, соответственно, у нас тянет все остальные systemd-юниты и вот, ну, всё, соответственно, остальное.
02:13
Speaker A
Ну, это в моём понимании простыми словами. Это, конечно, максимально сейчас не технически было, но я не знаю, как это.
02:23
Speaker A
Да нет, вполне хорошо.
02:39
Speaker A
Окей. А что такое load average?
02:58
Speaker A
А, это определённая метрика, метрика ядра, а, по которой мы, зайдя на сервер, наверное, первое, что надо смотреть — это, ну, команду top вызываем. Смотрим load average.
03:13
Speaker A
Если оно у нас, соответственно, растёт, то стоп, соответственно, процессы. Но тут всё зависит от количества ядер. Если у нас там ядер два, там, ой, ядер, не знаю, там 10-12 ядер, а у нас там в районе четырёх-пяти, то это
03:34
Speaker A
как бы нормально. Вот если у нас ядер четыре и load average уже четыре, то это как бы хреново, потому что ядра не успевают обрабатывать процессы. Это значит, у нас что-то повисло и, ну, как бы ядро пытается обработать сначала одни задачи,
03:47
Speaker A
на которых висит и не может переходить условно к следующему.
04:10
Speaker A
Окей, хорошо. А, предположим, есть у нас сервер под управлением Linux, на нём nginx, 4 гига, ой, четыре ядра, 8 гигов оперативки. Там лежит какая-то статика, никакого там нету.
04:21
Speaker A
Пользователи начали жаловаться, что сервер пятисотит. А мы заходим на сервер, видим load average 100. Такого я не видел ещё.
04:48
Speaker A
Ну, бывает такое. А при этом утилизации процессора нету. Там системная утилизация 3, 5, 10%, памяти свободной много, там занято 800 Мб. Вот в чём может быть проблема, как можно её решить?
05:07
Speaker A
Так, ну, то, что load average, да, растёт, я понял. А нагрузка по ядрам, соответственно, по процессам, то есть можно посмотреть, какие процессы сейчас максимально отжирают ресурсы.
05:23
Speaker A
Я говорю, утилизация процессора 3-5%, там, может, 10 — это системная загрузка. Ну, например, сетевое хранилище отвалилось, либо же, не знаю, на диске закончилось место, например, и, соответственно, мы не можем писать на диск. И, соответственно, load растёт, но при этом процессор не будет
05:40
Speaker A
нагружен, память. Также вот как один из вариантов — сетевое хранилище отвалилось, например, примонтированный том какой-то отвалился, куда всё это дело должно писаться, а при этом процесс не может, ну, короче говоря, обработать, завершить его корректно и всё. Хорошо, проверили. Ну, сетевого хранилища у нас
05:58
Speaker A
нет, проверили место. Место есть. Айноны могли кончиться, как бы место покажет на диске есть. По факту записываться не сможет. Айноны проверены, айноны занято 10%.
06:13
Speaker A
А какой-то файл грохнули, в который был, не знаю, огромный разросшийся лог. Мы его удалили через rm, но при этом не завершили процесс, и в него продолжается запись. Можно и lsof-ом посмотреть открытые файлы. Смотрим. Место есть. То есть
06:26
Speaker A
мы бы увидели, даже если процесс занял файл и мы его удалили и он не удалился, то, ну, его заголовок не удалился, то мы всё равно видели, что он занимает место, пока процесс его не отпустит. Но такого мы не видим.
06:44
Speaker A
А проблемы с сетью банальные? Проверили IP-адреса. Не знаю, всё нормально.
07:00
Speaker A
Мм. Мм, логи, логи в первую очередь. Чуть также логи. В логи надо глянуть. Nginx.
07:17
Speaker A
Почему пятисотка? Глянули. Глянули логи, пятисотки возвращает. Да, но в логах что-нибудь ещё должно быть? Не знаю. Там не больше ничего нет.
07:24
Speaker A
А так бэкенд мог отвалиться. Нет бэкенда. Отдаём статику с дисков. Мм, сейчас, одна секунда.
07:53
Speaker A
Что ещё может быть? Ну, какие-нибудь сетевые проблемы на уровне... Не знаю, там петля образовалась, наверное, и нет. Ненене, не.
08:15
Speaker A
А, ну можно попробовать перезагрузить, ну, рестартануть сервис nginx. Рестартанули, не помогло. База данных отвалилась. А, ну хотя, если статика, то, наверное, без базы данных. Базы данных тоже нет.
08:28
Speaker A
[музыка] Так, ну, у меня вроде как будто бы кончились сейчас варианты, если дальше не размышлять.
08:36
Speaker A
Из подсказок мы, когда смотрим, видим процессы, видим, что они в постоянном состоянии ожидания. Наверное, на это сейчас в таком контексте не отвечу. Прокся или что-то такого рода.
08:51
Speaker A
Нет. У процессов есть состояние, да, а определённые. Мы видим, что в состоянии ожидания. Что ещё можно посмотреть, ну, на что можно ещё ориентироваться?
09:03
Speaker A
М, не знаю, наверное, единственное, что сейчас приходит в голову — это на дочерние процессы, но, наверное, нет. Я, наверное, не отвечу.
09:18
Speaker A
Окей. Ладно, пойдём дальше. А в чём, ну, как бы что конкретно имелось в виду?
09:29
Speaker A
Ну, диски надо было посмотреть. Так, я же говорил изначально про диски, что могли отвалиться, могло место кончиться и всё вот это вот дело в сетево. Вы сказали, мог отвалиться, но диск не отвалился. Он не сетевой и место не кончилось. С айнонами всё
09:45
Speaker A
нормально. Есть ещё причины, по которым может быть такая проблема? Ну, точнее, есть только одна причина, почему может быть такая проблема.
10:02
Speaker A
Ладно, окей. Это деградация диска. То есть надо было посмотреть там, а, либо atop-ом, либо iostat-ом, а чтение-записей,
10:10
Speaker A
время доступа к блоку, скорее всего, вы бы увидели деградацию и что время доступа к блоку там приближается к бесконечности.
10:33
Speaker A
Вот. Потому что непосредственно нагрузка на диск — это вычисляемое значение, которое, в том числе, опирается на время доступа к блоку. Угу. Окей.
10:56
Speaker A
Ну зато вы параллельно ответили на парочку ещё вопросов. А сейчас отмечу. А так, а что такое виртуальные файловые системы? Приведите их пример.
11:19
Speaker A
М виртуальная файловая система. Это, например, у нас, по-моему, она так и называется, VFS — Virtual File System.
11:29
Speaker A
Ну а да. А пример какой-нибудь? NFS, если я не ошибаюсь, я не работал с ними, не скажу здесь, по-моему, из подсказок мы их пример можем видеть просто на свежеустановленном дистрибутиве Linux.
11:48
Speaker A
Мм, может быть, когда мы смотрим так, не, наверное, не скажу, честно даже гадать сейчас не буду, потому что у меня с этим ничего сейчас не ассоциируется в голове.
12:05
Speaker A
Окей. Где в Linux хранится информация о процессах? /proc этот, блин, как его, psproc. А, ну вот, кстати говоря, proc — виртуальная файловая система, наверное, где процессы сохранятся, да? Хорошо. На два вопроса ответили.
12:24
Speaker A
А что такое LVM? KVM или LVM? LVM. А Logical... Нет, стоп. Это короче. Не, ну что, что это?
12:50
Speaker A
Понятно. Расскажите там уровни абстракции, какие у него есть. Менеджер логических томов, это понятно. Хочется про техническую часть узнать побольше.
13:09
Speaker A
М, я с этим сталкивался только па...
13:22
Speaker A
Вот. И, соответственно, мы можем моментально поднять интересующийся на интересующий нас, например, сервис тот же Engжинкс минимально каким-то возможным образом, а не ставить полноценную даже убунту в её нет инсталляции, которая будет ставиться достаточно долго и тянуть за собой кучу
13:41
Speaker A
ненужного. О'кей хорошо. Предположим, на сервере Sins встретились с ошибкой. Слишком много файлов открыто процессом.
13:54
Speaker A
Что нужно сделать? Поправить, посмотреть. Мм, так слишком много там есть ограничение точно по ядру на количество открытых файлов. Можно это скорректировать, если в этом есть необходимость.
14:10
Speaker A
Что будете корректировать? Где? А, чат у GPT. Напишу вопрос, какой файлик скорректировать для корректировки количества открытых файлов, потому что я сейчас его, к сожалению, и не помню, но это делал. Ладно, мы проверили. На уровне ядра лимит мы точно не упёрлись.
14:27
Speaker A
Там на уровне ядра максимальное количество файлов около миллиарда, по-моему. Есть ещё ограничения. Блин, ну это скорее всего в папке с жинксом, не знаю, куча, куча куча папок и подпапок. Это не связано с ингингсом, это связано с настройками операционной
14:44
Speaker A
системы. М просто - это, ну, как просто с ним все работали и никто не пугается.
14:56
Speaker A
[музыка] Возможно, лсофом можно это как-то посмотреть. Не, ну мы посмотрели, видим, да, действительно, много файлов держит.
15:10
Speaker A
много отдаёт, само собой много держит в промежутках. Ну и это нормально. Ну, условно соединение много держит. Да, я понял. А получается ошибка ошибка в чём? То есть где-то валится ворнинги еро или м Да, это ворнги.
15:33
Speaker A
[музыка] Я бы загуглил или, не знаю, у коллег спросил, потому что сейчас не скажу.
15:40
Speaker A
А с улимитами работали? Нет, что-то мне ни о чём не говорит. О'кей. Это настройки ядра или это Нет, это не настройки ядра, это больше безопасность.
15:52
Speaker A
Ну, Linux Security, не путать с Linux. А, всё, я понял. Нет, не сталкивался, не помню, чтобы редактировать приходилось.
16:00
Speaker A
Ну, есть команда её лимиit, можно посмотреть лимиты конкретного пользователя, посмотреть его ограничения, сколько процессов может открыть, сколько файлов может открыть. и тому прочее. Там много всяко всяких лимитов можно понастраивать.
16:15
Speaker A
Но что касается НСА, это там этим можно управлять непосредственно через конфигурацию. Ладно, идём дальше. А команда D сообщает о наличии 20 Гб занятого пространства.
16:31
Speaker A
При подсчёте, э, объёма команды DO она показывает результат в 10 Гб. Почему мы можем видеть разные объёмы, занятые в одном и том же месте?
16:48
Speaker A
Возможно, у команд разный разный принцип обращения к дисковой подсистеме где-то, может быть. Ну, с айнодами это не связано в очередной раз, правильно?
17:02
Speaker A
Или косвенно. Ну, есть ноды, есть айноды. Если они, соответственно заполнились возможно одна из команд выдаёт неверные значения, потому что она не у Нет, не не в эту сторону. А тогда тогда тогда потому что где-то возможно открыт файловый ещё дескриптор файл удалён, и
17:24
Speaker A
одна из команд показывает без учёта этого. Ага. А мы можем как-то его найти? [музыка] какой-то флаг и можем посмотреть, да, ну не только через там ещё есть команда можно грепнуть просто, да, в принципе, правильно.
17:44
Speaker A
А так немножко поговорим про сети. А есть возможность чат открыть, посмотреть? чат. Ну, чат у меня открыт на экране. А, всё, не просто некоторые с телефона сидят.
18:00
Speaker A
Так, предположим, мы зашли на какой-то сервер. Там в таблице машетизации видим две такие записи.
18:08
Speaker A
А через какой шлюз пойдёт у нас трафик, если мы обращаемся к хосту 192 168 100.10 через единицы.
18:19
Speaker A
Почему? А, блин, подожди, где 100.102. Нет, через 4двойки. Почему? А потому что потому что потому что маска Хотя нет, стоп, не всё-таки через двадцать четвёртый, потому что маска под сети 24 и это все, весь трафик 192168 100.255 255 будет ходить до четырёх единиц,
18:46
Speaker A
потому что сш - это как бы, ну, окончание на 255, 100.25. Вот все IP-адреса до этого значения будут входить через четыре единицы.
19:01
Speaker A
Я не утверждаю, что это верный ответ, потому что я что с сетями немного плаваю. Я понял. Нет, неправильно.
19:11
Speaker A
А чем отличается TCP от UDP? TCP требует Ой, ну TCP подразумевает подтверждение доставки пакетов. UDP нет, потому что, ну, в UDP можно использовать стриминги, там, не знаю, в телефонии, когда часть профакапленных пакетов как бы не критично.
19:33
Speaker A
Вот отличие в подтверждении доставки пакетов до хоста. Угу. А как устанавливается TCP соединение? Через ншейк, что ли, это называется? Ну, в общем, мы отправляем заголовок, может ли хост принять как бы подключение. Дальше мы получаем ответ, можем. И, соответственно, через три
19:58
Speaker A
рукоподжатия, если я не ошибаюсь, называется, в общем, хост отправляет туда пакет, получает ответ и дальше начинает пересылать данные и получает подтверждение доставки, если этот CP. А заголовки какие при поднятии соединения передают?
20:16
Speaker A
Так как бы я повседневно никогда не сталкиваюсь. Это нужно там условно на интервью ответить.
20:24
Speaker A
Вопрос, поэтому не скажу. Это это ошибочное суждение. Ну, видимо, зависит от специфики работы, потому что если там постоянно с сетями, может быть, как-то взаимодействуешь с какими-то сервисами, возможно, мне это, ну, не требовалось, поэтому не отвечу. Хотя вопрос простой,
20:39
Speaker A
как бы, максимально. Ну ладно. А что такое ретрансмиш? Не отвечу. О'кей. А, о'кей. Что такое и как он работает?
21:02
Speaker A
Trroad у нас делает трассировку пакетов дохостаун соответственно это отражает у нас промежуточные хосты, через которые проходит трафик. Соответственно, он шлёт до ближайшего маштизатора, я так понимаю.
21:17
Speaker A
Ну, через получает ответ от маршрутизаторов по путиследования пакета до хоста. А как он нам отрисовывает все хосты, через которые прошёл пакет? Ну, я предположу что до хостов, до которых по цепочке доходят пакеты, соответственно, он дописывает, наверное, какой-то заголовок, чтобы
21:41
Speaker A
получился обратный ответ с возвращением имени айпишника или, ну, айпишника, наверное да. Но получается нам, что каждый через каждый хост, через который прошёл пакет, он нам должен ответить, что он пакет получил. М на один пакет слишком много флуда будет,
22:02
Speaker A
особенно если много через много мужетисаторов придётся пройти, да, поэтому тут затрудняюсь с ответом. О'кей.
22:17
Speaker A
А какой транспортный протокол используют ДНС? По-моему, это четвёртый уровень модели. Осень Нет, или пятый.
22:34
Speaker A
А так, ну, ДНС у нас работает на пятьдесят третьем порту. Вот по поводу транспортного протокола.
22:43
Speaker A
Ну TCP проще задам TCP или UDP. А он может работать и по TCP, и по UDP.
22:53
Speaker A
А в каких случаях он работает по TCP? В каких поP? М, в зависим предположу, что в зависимости от настроек сервера.
23:08
Speaker A
От настроек ДНС сервера. О'кей. А, о'кей. Как работает НАТ? Зачем он нужен? Какие виды НАТО бывают?
23:25
Speaker A
Над нужен для того, чтобы использовать, например, один внешний IP-адрес на группу, группу компьютеров, которые или серверов, которые стоят за натом, чтобы у них была внутренняя адресация, но наружу они выходили через, соответственно, над сервер.
23:41
Speaker A
Вот. классический нат, где как бы который работает как в режиме, можно сказать, машутизатора и другие виды натов я не назову.
23:57
Speaker A
Ну тот, который вы описали - это SNТ, да? А ещё какие-нибудь виды НАТО бывают?
24:06
Speaker A
М они однозначно бывают, но не помню, чтобы я сталкивался за последние 5 лет с этим.
24:14
Speaker A
Донат не настраивали? Нет. О'кей. А что он свое отличие? Если секрет, а что происходит с пакетом, например, при SNAT прави как? Ну, дописывается, соответственно, внутренний адрес и дальше он, соответственно, имеет внешний адрес.
24:38
Speaker A
Когда он обратно приходит, он приходит на внутренний адрес. Ну, типа, в IP-пакете передаётся два адреса.
24:50
Speaker A
Возможно, там какие-то заголовки используются. Я вот так детально не отвечу на этот вопрос. О'кей.
25:01
Speaker A
А что происходит в сети, когда мы в консоли вводим курlon?ru. Чем подробнее расскажете, тем лучше.
25:16
Speaker A
Нуно, какой-то хост, правильно? Konru. Ну, сначала у нас идёт обращение к файлу, если это Linux etc hosts.
25:30
Speaker A
Смотрится там соотношение айпишника и имени хоста. Если его там нету, то, соответственно, по цепочке идёт дальше обращение к ДНС кэшу. И если там нет адреса, то к DNS, соответственно, серверу.
25:44
Speaker A
Мм, дальше к корневым ДНС-серверам по необходимости. И дальше, соответственно, до хоста определяется айпишник и устанавливается соединение.
26:00
Speaker A
Хорошо. А как веб-сервер понимает, что вы пришли на kon.ru, а не на какой-то другой домен? Например, там у нас один внешний адрес, а доменов там, ну, несколько.
26:12
Speaker A
Да, я понял вопрос. Он тоже максимально простой. Вылететь его из головы. Там используется, блин, вылеть его из головы.
26:24
Speaker A
Действительно не заголо или заголовок, по-моему используется. В общем, там что-то указывается, то, что передаётся, и мы попадаем туда, куда нужно.
26:43
Speaker A
А как это называется? Да я говорю, вот вылетело из головы. На самом деле вопрос понятен. Я с этим недавно совсем сталкивался. Блин, это ещё в нжинксовской конфигурации задаётся.
26:56
Speaker A
Ну, в гинкосовской конфигурации там чуть-чуть по-другому это называется, но это можно при проксировании запроса переопределять, скажем так. Там вот прямо правильно называется.
27:16
Speaker A
А, в общем, я понимаю, о чём идёт речь. Назвать название не могу. К сожалению, вылетело прямо из головы.
27:28
Speaker A
Хорошо, говорим про кубер. А опиши архитектуру бернат кластера. Из чего он состоит? А кластер куба состоит у нас из кучи запущенных контейнеров.
27:44
Speaker A
Вот каждый отвечает за какие-то свои задачи. Соответственно, обращение у нас идёт к аписерверу и взаимодействуемый через кубкtl с аписервером путём, соответственно, запросов к нему.
27:59
Speaker A
Вот дальше CD для хранения конфигурации. А кубилет, который на хостах м купроксидур. А что я ещё не назвал?
28:18
Speaker A
IP сервер. ETCD что-то ты ещё не назвал. Ну, в целом хорошо. А что такое под?
28:34
Speaker A
Под сущность кубер, внутри которого, соответственно, у нас запускается контейнер. О'кей. Ну, там сначала, вернее, инициализируется вот то, что через Sunbox инициализирующий контейнер, который всё это дело поднимает, а потом уже запускается непосредственно сам сервис.
28:56
Speaker A
Ну да. А в чём разница между подом и контейнером? Мм, в том, что внутри пода может находиться несколько контейнеров.
29:11
Speaker A
Угу. Как правило, один под, один контейнер, но бывают случаи, когда нам надо внутри подать несколько контейнеров, например, там бэкэнты и базу. Бывают такие случаи, когда это нужно, и они будут использовать, естественно, единое пространство.
29:27
Speaker A
А вот если взять под какие виды контейнеров бывают, ну, там можно несколько типов запустить.
29:39
Speaker A
М, речь про, блин, как это называется-то? Про криоконтейнеры, про вот их разновидности. Ненене. Мы больше говорим про специфику этих контейнеров.
29:58
Speaker A
Ну, из подсказок они иногда используются для предконфигурации, например, там что-нибудь скачать для запуска основного контейнера или в процессе жизни, например, быть коллектором чего-либо для основного контейнера. Ну, это вот которые сандбоксовские образы инициализации, как бы.
30:22
Speaker A
М, блин, наверное, так не отвечу на этот вопрос. О'кей. А в чём отличие stateful setта от deployment?
30:40
Speaker A
Stateful set хранит состояние подов. А ещё какое-нибудь отличие большое? Так, стоит лиц. Ну, из подсказок это связано, наверное, со стороными.
31:13
Speaker A
Может быть, как, блин, не отвечу. Может быть, какое-то взаимодействие солумы, типа PVC, пивишки, вот это вот все исто.
31:19
Speaker A
Ну да, да, да, там есть особенность. М, вот этот особенность сейчас не назову. О'кей. А зачем нужен Diamond set?
31:35
Speaker A
Diamond set гарантирует, что у нас на каждой ноде будет запущено бусервис будет запущен на каждой ноде, если там нет исключений.
31:47
Speaker A
То есть мы можем там какие-то ноды под базой данных конкретно выделять и так далее. Тогда это игнорируется. Так, Diamond вообще запускает на всех нодах, если они селекторами отдельными указаны.
32:00
Speaker A
Хорошо. А что такое сервис? сервис тоже сущность кубера, которая у нас отвечает за, ну, соответственно, чтобы мы к подам могли обращаться через сервис, когда они используются.
32:19
Speaker A
А какие типы сервисов есть? Так, типа сервис сейчас. не ну классический который используется, другие не назову.
32:38
Speaker A
А что такое классический? Это когда мы в Ямле описываем, соответственно, у нас сервис, который как именно как приложение работает у нас внутри кубера.
32:49
Speaker A
И, соответственно, мы под него создаём ямом сервис и чтобы до него, соответственно, к нему была возможность подключиться.
33:02
Speaker A
Ну, там как бы все варианты позволяют подключиться, и, наверное, они все классические, но у них есть там четыре типа, ну, и будем говорить так, три основных. А, ну это речь про notпор, баланс, вот эти вот истории, да? А
33:22
Speaker A
lo банпорт, э, кластер IP и какой-то ещё, наверное, потому что я знаю только эти три в основном.
33:34
Speaker A
О'кей. А что такое лимит и request? М, лимиты реквест у нас через них мы можем ограничивать, сколько у нас потребляет соответственно ставить ограничения по процу, по памяти в ямле описания пода.
33:55
Speaker A
Угу. А что произойдёт с контейнером, если он превысит потребление ЦПУ? Его, соответственно, грох грохнет. О, нет, короче говоря, какой-то киллер его грохнет.
34:15
Speaker A
А если по памяти? По памяти, по-моему, возможно, та же история. А разве мы можем как-то контролировать приложение по ЦПУ, чтобы его грохать?
34:39
Speaker A
Ну, количество, сколько он потребляет процессорного условно времени в плане ресурсов, по-моему, можем. Да, мы при написании приложения можем сказать.
34:51
Speaker A
Три так-то что-то вычисляем, два так-то ничего не вычисляем. Нет, мы же можем в поде задать при при описании, я имею в виду депломента задать границы, за которые не может выходить. О, да. Вот мы указали, говорим вот 1.000 милис.
35:11
Speaker A
Э, он потреб хочет потребить полторы, и мы пойдём его прибьём. А скорее, скорее нет, чем да, мы скорее упрёмся, да, в лимит и просто будет, ну, ожидание всё это дольше будет выполняться. Но нет, да, по-моему, ничего не прибьётся в данном случае по
35:32
Speaker A
процу. Угу. Хорошо. А что такое славный стартап пробы? Зачем они нужны? Чем они отличаются?
35:47
Speaker A
Так, ну, одна проба у нас переводит под в состояние, когда вот, ну, под стартанул, запущен.
35:58
Speaker A
Мм, это когда у нас запускается сам контейнер. Мы получаем, по-моему, пробу о том, что у нас всё запустилось.
36:06
Speaker A
Алайнос проба - это когда у нас поднялся сервис, который там должен работать. Например, Инкс отдал двухсотую ошибку, код ответа, тогда мы понимаем, что, ну, как бы поднялся, отдаёт ответ и сервис считается запущенным.
36:24
Speaker A
Хорошо. Предположим, у нас Redn Pro не проходит. Тшфол там прошёл, который мы указали. Что произойдёт с контейнером?
36:40
Speaker A
М, если не ошибаюсь, он будет спустя какое-то время пытаться перезапуститься. Хорошо. А если по тем же причинам не проходит лайвна проба?
36:55
Speaker A
М, скорее всего, он так и будет просто висеть вот пока мы в него не зайдём и что-нибудь не сделаем.
37:09
Speaker A
Ну, это неточный ответ, потому что я путаю путаю эти две пробы. А если поразмышлять, а возможно, ну, если говорить про тот же Джинкс, то будет перезапускаться не сам контейнер, а возможно рестартоваться сама служба Джинсо это предположение.
37:28
Speaker A
А разве губернатор знает процесс запуска процесса в рамках контейнера? Как его можно перезапустить? Как его можно остановить?
37:43
Speaker A
Нет, не знает. Тогда тогда ответ, что ничего не будет происходить, просто будет как бы отдаваться самому условно этот пробушь. Он не недозапущенный. Тот же Джинс не отдаёт двухсотую ошибку.
37:56
Speaker A
По-моему, он так и будет висеть. М. О'кей. А так, что такое? Ангресс - это у нас точка точка входа в кубер из внех по по имени, ну, короче говоря, по по имени Хстов.
38:29
Speaker A
Ну, если мы берём классический, не знаю, который все используют Enginress, то мы можем, соответственно, через связать внутренние группу подов или под или внутренние там, не знаю, сервисы и так далее работающие по восьмидесятому 44 третьему порту через, чтобы к нему
38:45
Speaker A
был доступ. О'кей. А в чём преимущество использования э в чём преимущество использования Ингресса против сервиса при обращении приложений в рамках одного кластера друг другу?
39:13
Speaker A
Ну, например, у нас есть кластер, там есть там, ну, пять сервисов, они должны обращаться друг к другу. Почему выгоднее, если они будут ходить через ингресс, а не через сервис?
39:34
Speaker A
Мы откинем удобство там, что Инрес там в SSR умеет, там можно локейшены описать, и вот это вот всё мы с более технической точки зрения подходим.
39:51
Speaker A
Понятно, что он там удобнее, но он как бы является прокладкой дополнительной. Вот почему всё-таки с ним работает лучше, чем без него?
40:03
Speaker A
Мм, возможно, он работает на другом соответственно уровень абстракции выше, и используют сетевые плагины, вроде калики и так далее, и можно прикрутить какие-то дополнительные штуки, но это предположение не связано с плагинами.
40:29
Speaker A
не связано с Калика. Калика вообще немножко другим занимается, но вот другая зона ответственности. А, возможно, дополнительная куча параметров, которые мы можем задать в нгрейсе, но не можем задать в сервисе.
40:56
Speaker A
Ну, это понятно. А основная-то основное преимущество какое? [музыка] Что-то ничего на ум не приходит, честно.
41:09
Speaker A
О'кей. Ну, у меня вопросы закончились. Промиль. А дополнительные вопросы задаёшь? Мм, да. Аэ, так.
41:32
Speaker A
Ээ какие основные э артефакты бывают у Android? У андроида у Android приложений? Так, я в начале интервью сказал, что я не сталкивался со сборкой под Android.
41:51
Speaker A
Ну, если мы про Java говорим, там козлом собираем, то это джарники непосредственно наверное. О'кей. А у вас Android смартфона не было никогда? Акашки.
42:05
Speaker A
Угу. Угу. Всё верно. Да. А не слышали о такой штуке, как А? Не так давно, пару роль назад. Мм. А.
42:20
Speaker A
А, ну, Android Bundle, если со Нет, не слышал я. Вот, что касается мобильной разработки, максимально не сталкивался.
42:32
Speaker A
Так сейчас аа, а, какие, вот какие языки и платформы собирали вообще? То есть Java, там C.
42:50
Speaker A
Не знаю, вот был опыт совсем давно с дотнетом, соответственно, большая часть - это в основном джавовый стек через Угу. Хорошо.
43:06
Speaker A
Какие настройки для градла мы можем накрутить, а для того, чтобы умерить аппетиты сборки? Какие сущности вообще есть у Градула?
43:29
Speaker A
М, не скажу. Грабил демон. Встречались с таким. А м на ум не приходит? Нет. Угу. А-э, так хорошо.
43:47
Speaker A
Если вы с Ja, помимо ограничений ресурсов в контейнерах, нам нужно ещё, ээ, сообщить Джаве каким-то образом, да, а либо сколько она может потреблять ресурсов, либо сколько процентов от ээ э контейнера ресурсов она может потреблять. Да. Ээ, знаете, какие ключи
44:19
Speaker A
для этого применяются и что с этим можно сделать? Не, ну мы же можем это всё ограничить в Java BM, вот которое стартует.
44:30
Speaker A
Угу. А какие ключи там? Ну какие ограничения бывают? Ну, хотя бы так, может, по названиям не вспомните, но так блин, надо просто открыть config любой Java VM и посмотреть эти лечения. XMX XMS дада. Это по по как раз-таки
45:00
Speaker A
ресурсам. Там точно оперативка где-то указывается. Вот что касаемо что указывается там по процу, не скажу. Там либо в соотношении процентах, либо процессорное время, либо рацю. Я не помню, что вообще в принципе есть ограничение. Ну о'кей.
45:17
Speaker A
Мм. А так хорошо. Фронт вы собирали, да, по-моему, но ноды. Но трогали, да? [музыка] М.
45:30
Speaker A
Не совсем сейчас понял вопрос. Фронт. Ну, с НПМом сталкивались. JS, блин, только вот самое вот классический запуск да через MPM install, вот эти вот все дела.
45:47
Speaker A
Хорошо. С файликом NPMC сталкивались? М, возможно, там, скорее всего, ресурсы задаются, судя по названию.
46:03
Speaker A
Аа у вас во всех компаниях, ээ ну вот ээ была сборка мм с состоящая из нульщи внешние компоненты, да. Ну, скорее всего, да, любой продукт использует какие-то библиотеки извне, правильно?
46:25
Speaker A
Угу. Вот. А, ээ, обеспечение безопасности и уязвимость неуязвимости каким образом у вас осуществлялось? Мм, где-то использовался Sunarub, например, в процессе сборки, который чекал все эти моменты. Есть другие инструменты при сборке, которые проверяют пакеты, которые тянутся извнен по базам, соответственно, уязвимостей.
46:53
Speaker A
Угу. То есть у вас был какой-то инструмент который проверял библиотеки, да? Угу. Да. За этого за это отдельная команда как бы отвечала, которые вот по бизнесу Не, я понимаю, я просто вот спрашиваю, как организовано было и, ну, сталкивались ли
47:09
Speaker A
пресекались. Хорошо. С Санаром, значит, тоже, да, имели опыт работать. Ну, он максимально просто прикручивается в целом да?
47:18
Speaker A
Хорошо. Как прикручивается к Java проектур, к примеру? РКУ он встраивается в, соответственно, одну из в один из стейджей как бы пайплайна и проверяет используемые мм что он проверяет у нас Мм, он, соответственно, проверяет код на наличие наличие уязвимостей по базе.
48:04
Speaker A
Хорошо, я понял. Э, так, ну, в целом, наверное, у меня вопросы закончились. Вот. Ээ, может, какие-то вопросы у вас к нам возникли?
48:17
Speaker A
А, наверное, основной вопрос это что есть сейчас? Что бы хотелось получить после завершения, не знаю, испытательного срока инженера на данной позиции? То есть это разгребание бэклога, либо же это внедрение каких какого-то нового функционала, либо просто погрузиться и разгрузить текущих
48:33
Speaker A
инженеров по текущим задачам. CCD сейчас уже есть. Вот нужно, ну, а то, что нужно на первый этап - это работа с фичстендами и конореечным деплоем. Ну, соответственно, э последним шагом будет перевоз всего в новую инфраструктуру.
49:05
Speaker A
А сейчас заменка наречного деплоях используется BLгрин развёртывание либо же ничего не используется. Так о'кей понятно. А основные скилы, которые требуются, это всё-таки упорно м, короче говоря, с мобильной разработкой. Либо же это всё-таки Kuber, либо это CICD сети.
49:31
Speaker A
То есть, ну вот максимально экспертные знания нужны по какому направлению под данную позицию? А, ну мы рассчитываем, что клиентские приложения можно всегда м изучить. Ээ в основном это просто базовые знания, это знание куба, знания джинкса.
49:55
Speaker A
Вот. И, ну, э-э, клиентские, ну, всё остальное клиентское приложение, сборки - это, э, ну, тоже на основе базовых знаний. Если вы знаете, как, э, Linkс работает с памятью, как Java работает с памятью, то проблем не возникнет. Это всё можно изучить,
50:15
Speaker A
прочитать э статей 100, 500 млн. Документация градла очень подробная. Есть G5 [музыка] GP не поможет в этом плане вообще никак.
50:32
Speaker A
Не, с МЦПшкой он нормально работает. Без знаний ничего не поможет. Нет, ну им хорошо документацию читать, когда он даёт выдержки именно из всей огромной документации. У меня эта [ __ ] получится полная. Угу. Если вот в документациях Градла там
50:48
Speaker A
каждая строчка имеет супервысокую важность. Если ты неправильно прочитал, э-э, там, не знаю, один абзац и не понял, ээ все нюансы, то ты получил, ээ, непоня непонятно как работающую историю. То есть ты будешь сидеть и думать, но не понимать, как это
51:11
Speaker A
работает. большие документации, может быть, да, как-то где-то, но опять же все эти м сложение документации в краткий пересказ, то же самое, что там, не знаю, войну и мир на тридцати страницах прочитать. Да, контекст ты поймёшь, но ты не будешь знать, как Нет, я согласен.
51:38
Speaker A
Согласен, что технические нюансы максимально важны. Просто иногда где-то нужны общие там тезисы, понимания, особенно из зарубежной документации, поэтому иногда где-то чат GPT помогает в этом плане.
51:50
Speaker A
Ну о'кей. А, ну вот примерно так. Так, о'кей. А формат работы гибрид или полная удалёнка? Я вот этот вот момент упустил.
52:03
Speaker A
Мне не принципиально. А вы где, в каком регионе живёте? Я я 90% времени в Москве.
52:12
Speaker A
А, ну, соответственно, если а по возможности будете приходить в офис там четвергам, в основном коллеги собираются, ну, восстанов своей массе, так, чтобы просто поддерживать нетворкинг, скажем так, да, и в глаза посмотреть с кем вы работаете, потому что там в основном в Москве
52:35
Speaker A
команда а фронтовой разработки она, ну, короче, в основном она там и в основном Они как раз в офис входят.
52:44
Speaker A
Вот так. Это не обязательно. Я понял. Тогда у меня пока, наверное, других вопросов нет. Спасибо. M.
Topics:DevOpsсобеседованиеLinuxзагрузка системыload averageвиртуальные файловые системыLVMадминистрированиеDockerтехническое интервью

Get More with the SozAI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries, speaker detection, and unlimited transcriptions.

Or transcribe another YouTube video here →