Просто Devops
26.1K subscribers
110 photos
4 videos
10 files
146 links
Платформа: https://prostodevops.ru/l/kanal
Отзывы: https://t.me/prosto_devops_reviews

Менеджер - @devmoder
Матвей - @greghouse134
Миша - @misha_devops
Ютуб - youtube.com/@prosto_devops

Бот - @prostodevops_bot
Download Telegram
Коротко про разницу хард и софт скиллов.

Один из наших ребят очень хотел максимально быстро устроиться. В технических темах оставались пробелы, многое нужно было подтянуть, потому что техничка страдала. Но откладывать собесы он не хотел.

Обсудили и решили выходить на рынок с тем, что уже знал.

На собесе он мог забыть ответ даже на простой вопрос. Но вместо того, чтобы мычать, просто начинал говорить на связанную тему или похожую задачу из своего опыта. Объяснял, что помнит и как это относится к вопросу.

Появлялись уточнения, дополнительные вопросы. Разговор продолжался, и становилось понятнее, что он знает и где запутался.

Общался живо, мог отшутиться. Доходило вплоть до анекдотов, и ключевое здесь: с ним было легко разговаривать, даже когда технические вопросы давались непросто.

К чему это привело?
За две недели — 10 собесов и 5 офферов.

А бывает, что человек знает гораздо больше, но боится произнести ответ. Вдруг неточно? Вдруг вопрос поняли неправильно? В итоге мычит или вообще не говорит, или говорит очень мало, а собеседующий воспринимает это как незнание.

Здесь же мысли звучали вслух. Их можно было уточнить, обсудить, поправить.

Для будущей команды это тоже важно. Лиду нужно, чтобы человек переспросил, если не понял задачу, и сообщил, если застрял.

Перед следующим собесом попробуйте рассказать знакомому об одном своём проекте. Пусть задаёт вопросы по ходу. Если где-то запутались, попробуйте объяснить ещё раз — уже проще и понятнее.

В нашем «Введении в IT» как раз есть разбор софт-скиллов и первых дней в команде. Загляните.

Бывало у вас, что ответ знали, но так и не решились его озвучить?
Ну вот лучше сказать хоть что-то, чем ничего

❤️ Буткемп
Please open Telegram to view this post
VIEW IN TELEGRAM
❤79👍38🔥15🏆5💯3
Терминал и лайвкодинг на собесах.

Про лайвкодинг у разрабов знают все: дают задачку, ты пишешь код и объясняешь, что делаешь. А как обстоят дела у девопсов?

Тут тоже бывает лайвкодинг, но он немного другой: тебе открывают терминал (или дают сервак для подключения по SSH) и говорят условие, в нашем случае возьмем простое: «сервис не отвечает. найди почему». Собеседующий смотрит демку и ждёт, что ты начнешь свой монолог.

Первая мысль — посмотреть лог. Находишь файл на 50 гигов, пишешь cat и жмёшь Enter и все, гг. Ты видишь логи как есть, но их столько, сколько ты за всю жизнь свою не видел, и самое обидное, что они не останавливаются. Сидишь и думаешь, как бы объяснить, что всё идёт по плану, но по плану оно теперь пойдет только на другом собеседовании.

В таких задачах проверяют, как ты ищешь причину. Базовые навыки работы с терминалом даже не обсуждаются, например, less или tail вместо того же cat для логов.

Возвращаемся к задаче.
Процесс запущен, но сервис на запросы не отвечает. Смотришь последние строки лога: сервис не может подключиться к базе.

База при этом жива. Проблема в том, что сервер не может определить её адрес по имени. Проверяешь настройки разрешения имён и находишь ошибку.

Исправляешь настройки, перезапускаешь сервис — и получаешь новую ошибку: нет доступа к конфигу. Файл на месте, но права не позволяют пользователю сервиса его прочитать. Исправляешь доступ, запускаешь снова. Теперь работает.

Процессы, сеть и права — три темы, которые чаще остальных встречаются в таких задачах. Все это мы разбирали бесплатно во «Введении в DevOps».

А еще собеседующему важно понимать, почему ты делаешь каждое действие, и почему именно его, а не что-то другое, поэтому очень важно проговаривать свои предположения и проверять их по очереди. Это нас также отсылает к предыдущему посту.

Чем увереннее работаешь с терминалом, тем больше внимания остаётся на саму проблему. И тем больше будет офферов.

🖤 Буткемп
Please open Telegram to view this post
VIEW IN TELEGRAM
❤74👍24🔥12🎉2🤝1
На канале новый ролик про терминал и Bash

Разобрали, что девопс делает в терминале, базовые команды, а так же как работают пайпы и скрипты и что по ним спрашивают на собесах.

📱 Смотреть: https://youtu.be/i_isJxe6UyU
Please open Telegram to view this post
VIEW IN TELEGRAM
❤66🔥26💯16🎉4👀1
Просто Devops
На канале новый ролик про терминал и Bash Разобрали, что девопс делает в терминале, базовые команды, а так же как работают пайпы и скрипты и что по ним спрашивают на собесах. 📱 Смотреть: https://youtu.be/i_isJxe6UyU
Просто_DevOps_шпаргалка_команды_линукс.pdf
3.4 MB
🐧 Обещанная шпаргалка к ролику про терминал и bash

Все команды из ролика, плюс кое-что сверху с подробным объяснением: права, потоки, grep, find, cron, set -euo pipefail и вопросы с собесов. Плюс отдельная страница с ошибками.

Сохраняйте)

🖤 Просто DevOps. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤107🔥56🎉14😍5💯3
Давайте сегодня обсудим вопрос, который очень часто задают на собеседованиях в последнее время.

Условие такое:
На сервере 32 МБ свободной памяти, хочу запустить утилиту, которой нужно 64 МБ

Вопроса два:
1) Запустится ли она?
2) Будет ли она работать?

Пишите свои ответы и рассуждения в комментарии, а вечером выложим лучшие ответы из комментариев + наш эталонный ответ
💯55😱17❤16🤩4🎉3
32 МБ свободной памяти, а утилите нужно 64 МБ. Разбираемся

Утилита может и запуститься, и успешно отработать. Но по этим двум числам однозначного ответа нет.

На собеседовании надо начать с уточнений:
— 32 МБ — это значение free или available?
— 64 МБ утилита запрашивает у ОС или действительно использует для своих данных?
— Есть ли swap и сколько в нём свободного места?
— Есть ли ограничения памяти у процесса или контейнера?

Допустим, открываем free -m, а там: free — 32 МиБ, available — 300 МиБ.

Linux использует оперативку в том числе под файловый кэш. Часть этой памяти ядро может освободить для приложения. Поэтому маленькое значение free само по себе ещё не говорит о нехватке памяти.

Для первой оценки смотрим на available: сколько памяти предположительно доступно приложениям без подкачки.

1. Запуститься утилита может, даже если доступной памяти меньше 64 МБ.

Ей необязательно занимать все 64 МБ RAM сразу после старта.

Например, программа запросила через malloc буфер на 64 МБ, но записала данные только в небольшую его часть. Физические страницы под остальную часть могут выделяться позже, по мере записи.

Или есть overcommit: политика, при которой Linux может разрешать запросы памяти, даже если обеспечить все такие запросы одновременно не получится.

Это разные механизмы. Ленивое выделение позволяет предоставлять физические страницы по мере необходимости. Политика overcommit определяет, какие обязательства по памяти ядро разрешает принимать.

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

Отказать могут и при запросе буфера: например, malloc вернёт NULL с ошибкой ENOMEM. Дальше всё зависит от программы: она может обработать отказ, сократить объём работы или завершиться.

2. Успешный запуск и успешный запрос памяти ещё не гарантируют дальнейшую работу.

Предположим, запрос прошёл, утилита начала заполнять буфер. Теперь для данных нужны реальные физические страницы.

Если ядро сможет освободить достаточно памяти, например за счёт кэша, утилита продолжит работу.

Если есть доступный и разрешённый для процесса swap, часть страниц можно вытеснить туда и освободить RAM. Причём вытесняться могут страницы других процессов.

Дальше важен характер нагрузки. Если вытеснили редко используемые данные, влияние на скорость может быть небольшим. Если приходится постоянно возвращать страницы из swap и вытеснять другие, производительность может сильно упасть.

Если получить достаточно памяти не удаётся, возможен OOM. Ядро может завершить процесс, чтобы освободить память. При общесистемном OOM жертвой необязательно станет наша утилита.

Уже завершившийся успешный вызов malloc задним числом ошибку не вернёт, так как нехватка памяти при заполнении буфера — это уже другой этап.

Отдельно проверяем лимиты контейнера или сервиса. Процесс может упереться в ограничение своей cgroup, даже когда на хосте ещё есть свободная RAM.

Если же условие строгое, то утилите нужны дополнительные 64 МБ одновременно в RAM, предоставить можно только 32 МБ и освободить больше нечего, значит выполнить это требование она не сможет. Overcommit дополнительную оперативку не создаёт.

Что проверить командами:

— free -m — значения free, available и состояние swap. Вывод здесь в МиБ.
— swapon --show — какие области swap подключены и насколько заняты.
— sysctl vm.overcommit_memory — политику overcommit.
— ps -o pid,vsz,rss,comm -p PID — виртуальную память процесса и объём, находящийся в RAM. VSZ и RSS здесь выводятся в КиБ.
— vmstat -y 1 — текущую активность подкачки в колонках si и so.
— journalctl -k -b — сообщения ядра, в том числе об OOM.

Для процесса дополнительно смотрим /proc/PID/limits, для контейнера или сервиса — ограничения его cgroup.
❤90🔥50👍19🙏8💯7
Сегодня у нас важная тема: как защитить сервер

Если вы прямо сейчас поднимете новый сервакс публичным IP-адресом, то буквально через несколько минут увидите в логах десятки попыток зайти под root, admin, test и другими пользователями.
Все из-за того, что интернет постоянно сканируют боты для своих корыстных целей.

Посмотреть, кто стучится к вам, можно так:
journalctl -u ssh | grep "Failed password"

И если вход по паролю у вас ещё включён, рано или поздно кто-нибудь из них пароль подберёт.

В ролике разобрали, что закрыть, чтобы бот не ломился, и как заметить и разобрать взлом, если он всё-таки случился

📱 Смотреть: https://youtu.be/SF6e_aYOGRE
Please open Telegram to view this post
VIEW IN TELEGRAM
❤71🔥57👍9🏆9🤝4
Что самое сложное в изучении чего-либо?

Кто-то может сказать, что это поиск структуры, или, пользуясь привычными терминами - учебной программы, то есть: что именно учить, насколько глубоко погружаться, в каком порядке переходить от темы к теме. И это действительно может вызывать трудности, но, скажем прямо, в современном мире найти более-менее нормальный роадмап несложно. Просто часто мы пытаемся найти какой-то «идеальный» вариант, который будет самым-самым лучшим, только вот заранее мы все равно никак это не поймем, а на старте главное - просто начать.

Мы - канал про DevOps, у нас есть роадмап изучения девопса, который мы выстроили на основе реальных запросов рынка, а также тех задач, с которыми девопсы каждый день сталкиваются на работе. Он лежит вот здесь абсолютно бесплатно, и если вы его ещё не видели - пользуйтесь. Кстати, к концу года мы выпустим уже третье обновление, максимально актуализировав его по последним трендам.

Окей, структуру найти можно, но остаётся другой вопрос: как глубоко копать и, самое главное, где взять практику? С глубиной всё сложнее, потому что источников огромное количество, все говорят по-разному, а если пытаться собрать всё сказанное воедино, то получается, что каждый инструмент нужно чуть ли не по винтикам разбирать, прежде чем переходить к следующему. И сколько тогда уйдёт на весь путь - год, два, больше?

С практикой сейчас в каком-то смысле проще: в конце концов, можно попросить нейронку придумывать задания и проверять реализации, но такой формат закрывает далеко не всё.

Здесь у нас тоже есть свое решение. Если вы нацелились на девопс, хотите всё знать и уметь, а во время изучения не волноваться постоянно о том, что, может, чего-то не хватает, или, наоборот, «а не лишнее ли это, не зря ли я трачу время на эту тему», то вам подойдёт наш буткемп, о котором мы часто рассказываем в канале, а подробнее узнать о нём можно тут.

Но это ещё не всё. За последние три недели мы провели какое-то невероятное количество созвонов с теми, кто подавал заявки на сопровождение, кто купил буткемп, кто не купил буткемп, кто раздумывал, как ему двигаться в девопсе. В общем, всё это были люди, которые хотят развиваться в этом направлении.

И они раз за разом озвучивали одну и ту же проблему: в изучении чего-либо самое сложное - не забить. А забить можно по разным причинам: не понимаешь, достаточно ли качественно изучил тему, не хватает взгляда со стороны, а главное - тебя никто не контролирует и не подталкивает, а значит, в момент трудности или банальной лени возрастает риск всё бросить.

Хотя решение простое: нужен человек, который проверит, подскажет, объяснит и не даст забить. Поэтому мы сделали буткемп с куратором. Он пока закрыт, но запись откроется уже на этой неделе и продлится 3-4 дня, а следующий набор будет примерно через месяц. Те, кто уже купил буткемп, смогут апгрейднуться до кураторского формата. В любом случае всё подробно напишем в день старта здесь же, в канале.

Поэтому если вы чему-то учитесь, не важно чему, но сталкиваетесь с какими-то трудностями - постарайтесь понять, чего именно вам не хватает, для каждого причина своя: в этом посте мы перечислили как минимум 3. А когда причина ясна, то становится ясно и то, как от нее избавиться.

Вообще готовим очень много интересных активностей и материалов: ближайшие 3 месяца обещают быть насыщенными.

🖤 Всем хорошего вечера, всем лучших результатов!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤79🔥43👍18💯4🤯2
🐸 Впервые: буткемп с куратором + новые модули!

Думаю, многим знакомо: взял курс, за первую неделю прошёл часть, вечерами сидишь, выполняешь задания, учишь теорию, одним словом - получаешь удовольствие от обучения. А потом на работе завал, и вечером хочется просто отдохнуть, потом надо уехать на выходные, и занятия отодвигаются на второй план. И потом просто не хочется возвращаться к обучению - тупо лень. Открываешь материалы через неделю и уже не помнишь, на чём остановился, что прошел, а новое в голову никак не лезет.

Когда учишься сам, никто ни о чем не спросит. Никто не укажет тебе на пробелы в знаниях, потому что их попросту некому оценить. И часто осознание этих пробелов приходит вообще на собесе, когда просят объяснить, как работает то, что ты вроде бы уже проходил.

Поэтому мы выпускаем буткемп с куратором, где им является практикующий девопс, который ведёт вас по буткемпу от начала и до конца. Этот человек станет вашей опорой на ближайшие три месяца прохождения буткемпа, вы сможете задавать ему любые вопросы касательно обучения и проходимых тем, совместно с ним строить план своего обучения, а самое главное - куратор всегда укажет вам на ошибки и не даст лениться.

Что вы получаете в этом потоке?
— Куратор будет доступен вам в течении трех месяцев с момента старта.
— За это время вы успеете пройти 4 пробных собеседования, одно из которых будет в самом начале, чтобы понять ваш уровень знаний сейчас и выстроить план дальнейшего обучения, а дальше такие собесы будут проходить раз в месяц. Причем каждый из них будет разобран куратором, и вы получите полную обратную связь по нему.
— Защита каждой темы будет проходить в созвоне, а в случае неудачи тему всегда можно будет пересдать. Таким образом вы сами будете уверены, что освоили материал.
— Раз в месяц куратор будет сверять ваш прогресс и корректировать план обучения.
— Группа включает до 20 человек, но работа будет вестись с каждым индивидуально.
— В случае каких либо непредвиденных ситуаций вы сможете взять паузу на месяц, при этом она не будет съедать сроки вашего обучения.
— Два раза в неделю у вас будут групповые созвоны, на одном вы будете разбирать сложные технические темы, а второй будет в формате дейлика.
— Доступ к буткемпу при покупке такого формата останется с вами навсегда.

Набор на первый поток начинается сейчас и продлится до 26 октября 18:59 по МСК, потому что в этот день в 19:00 уже будет старт.

Так же, теперь на буткемпе доступны новые модули по логированию и мониторингу!

Там поднимаем сбор метрик и логов, собираем дашборды, настраиваем алерты в Telegram и многое другое, можно заценить бесплатно:
— Начать мониторинг
— Начать логирование

Новые модули уже доступны в буткемпе, независимо от формата.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥46❤15🤯5💯2🤝2
Знаете, что самое лучшее в создании собственной платформы? — Абсолютная свобода и гибкость в разработке. Вот появилась идея — сделали, выкатили, собрали обратную связь и так по кругу.

Сегодня хотим рассказать, как вы влияете на развитие этой платформы. Думаю, всем очевидно, что основной фокус-группой и самыми активными контрибьюторами в отзывы и пожелания являются участники буткемпа, и вот несколько живых примеров:

1. Когда буткемп только вышел, любую практику в нем можно было пройти только один раз, и некоторые попросили возможность проходить практики заново. На следующий день такая возможность появилась у всех. Позже уже другие ребята сказали, что было круто видеть историю собственных решений. Так появилась страница «как я решил», где можно посмотреть свои прошлые решения, все команды и сравнить с последней попыткой.

2. Один человек просто рассказал в общем чате, что ему было неудобно каждый раз тянуться мышью к кнопке «Проверить» в практике с терминалом, и он навайбкодил себе скрипт, который жмёт эту кнопку при сочетании клавиш Ctrl + Enter и возвращает фокус на терминал.
Самое интересное, что у нас было предусмотрено именно это сочетание клавиш, именно для проверки, но терминал отправлял его в консоль обычным Enter. Теперь каждый может нажать Ctrl + Enter, и если задание еще не засчитано — выполнится проверка, а если засчитано — откроется следующее. При этом фокус у вас остается на терминале, и не надо отвлекаться на клики мышкой.

3. Созвоны по обратной связи. Мы время от времени собираем большой созвон с участниками и разгоняем, что хотелось бы добавить или доработать, так например на первом созвоне попросили возможность пропускать обязательные задания после сообщения о баге или нескольких неудачных попыток.
Раньше было так, что если задание не принимается, а оно обязательное - нужно было ждать исправления (если баг), или биться с ней до победного (если просто не получается решить). Теперь, после сообщения о баге или нескольких неудачных попытках, задание можно отложить: оно остаётся в отдельном списке, можно продолжить работу с другими материалами, а потом вернуться к нему.

И это только несколько примеров.

Всего с июля у нас вышло больше 30ти таких доработок, а количество багов снизилось в разы, вот для примера: за август на платформе было 255 баг-репортов, за октябрь их почти в 3 раза меньше, и это при том, что количество пользователей с августа выросло в 2 раза.

А еще мы сделали канал с отзывами о буткемпе - тут можете почитать, что говорят реальные люди.

Мы всегда прислушиваемся к обратной связи ребят, для нас это очень важный элемент в развитии проекта.

🖤 Буткемп
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥57❤18👏7💯3🤯2
Какие редфлаги в резюме девопса?

Как выглядит резюме для HR? - Кучка непонятных названий, которые мы активно где-то использовали. Поэтому HR читают его наискосок. Пробегают по тексту, выделяют для себя нужные паттерны и принимают решение за пару минут, а то и быстрее, звать ли кандидата или нет. Техлиды в резюме вчитываются чаще, но это не значит, что так делают все. Некоторые вообще даже не открывают резюме, а кто то так же, как и hr, читают их наискосок.
Поэтому очень важно, чтобы даже при невнимательном прочтении резюме могло заинтересовать, а для этого нужно избегать ошибок:

Большой список технологий в начале

Docker, Kubernetes, Terraform, Ansible, Prometheus, Grafana, Jenkins, GitLab CI и ещё десяток названий через запятую.
Этот список может действительно соответствовать твоему стеку и ты правда можешь работать с 15 технологиями одновременно, но для hr или лида это выглядит будто человек просто написал полотно технологий из того, что нагуглил за 3 минуты.

Такого в резюме быть не должно.
Технологии, с которыми ты работаешь должны быть описаны в рамках реальных кейсов, а не просто списком по порядку. Техлид не узнает где именно ты применял ту или иную технологию, если ты явно это не укажешь, а гадать тут никто не будет, ведь резюме не вычитывают, а только лишь смотрят.
Но вот в конце резюме перечислить свой стек можно.

Обязанности из должностной инструкции
«Поддержка инфраструктуры», «участие в настройке CI/CD», «мониторинг серверов».
Такие строчки встречаются в 85% резюме и на них уже никто не обращается внимание. У тебя должно быть написано что именно ты поддерживал в инфраструктуре и с какой технологией работал, когда это все поддерживал. Тут нужна конкретика, нельзя просто писать шаблоны, даже больше скажу: простая задача, но расписанная достаточно подробно, гораздо лучше абстрактной сложной.

Простыня на три страницы
Длинное резюме не всегда хорошо. Казалось бы, если написать большое резюме, будет казаться что у соискателя вагон опыта. Но это не так. Если включать в места работы какую-то учебную деятельность, прохождение практик, то с огромной долей вероятности тебя просто отбросят, потому что будут видеть не реальный рабочий опыт, а какой-то мусор, который человек написал для объема.
При беглом осмотре резюме hr и лид посмотрят на места работы, а если они увидят какой-то курс или лабу, то пропустят их, потому что смотреть там нечего, ведь это не продакшен опыт.

Теперь интерактив:
Делитесь с нами своими резюме, вы выберем несколько штук и завтра их разберем. Все резюме на разборе будут обезличены, а названия компаний будут изменены.
Отправляйте их нашему менеджеру в личку @devmoder.

А теперь крутая новость:

Завтра в 17:00 по МСК проведем ЭФИР, на котором:
1. Расскажем, как выглядит буткемп изнутри и том, что дает куратор
2. Поделимся трендами и тем, что сейчас действительно нужно компаниям, каких девопсов они ищут и как стать именно таким
3. Разберем несколько резюме, которые вы пришлете и дадим советы по ним
4. Поотвечаем на ваши вопросы в конце эфира

Площадку для эфира еще не выбрали, о ней напишем завтра, можете в комментах написать предпочтения.

🖤 Буткемп
Please open Telegram to view this post
VIEW IN TELEGRAM
❤37🔥14👍4🎉3🤝2