Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Приручая System Design Interview. Как его организовать и как к нему подготовиться

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров13K

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

Я поделюсь своими впечатлениями от участия в этом формате, рассмотрю проблемные моменты и предложу, что с ними можно сделать.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии3

Виды баз данных. Большой обзор типов СУБД

Время на прочтение21 мин
Количество просмотров101K

Часто, в обзорах видов баз данных упоминают реляционные и “другие”, “NoSQL” и т.д., либо приводят самые основные типы СУБД (базы данных), забывая о редких. В данной статье я постараюсь описать максимально полно виды баз данных и привести примеры конкретных реализаций. Разумеется, статья не претендует на всеохватность и классифицировать базы данных можно по разному, в том числе по типам оптимальной нагрузки и т.д., но надеюсь, она даст базовое представление о видах СУБД и принципах их работы.

В статье мы рассмотрим следующие типы баз данных:

Читать далее
Всего голосов 38: ↑36 и ↓2+38
Комментарии16

Большие потоки трафика и Linux: прерывания, маршрутизатор и NAT-сервер

Время на прочтение6 мин
Количество просмотров60K
Написано по следам публикации Большие потоки трафика и управление прерываниями в Linux

В нашей городской сети более 30 тысяч абонентов. Суммарный объем внешних каналов — более 3 гигабит. А советы, данные в упомянутой статье, мы проходили еще несколько лет назад. Таким образом, я хочу шире раскрыть тему и поделиться с читателями своими наработками в рамках затрагиваемого вопроса.

В заметке описываются нюансы настройки/тюнинга маршрутизатора и NAT-сервера под управлением Linux, а также приведены некоторые уточнения по поводу распределения прерываний.

Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии54

Расчет численности специалистов поддержки бизнес-приложений

Время на прочтение5 мин
Количество просмотров3.3K

Предположим, что вы стали ответственным за направление сопровождения бизнес-приложений (application management service, AMS) и ваш руководитель поставил задачу сформировать стратегию и план действий по организации этой деятельности. Первым делом Вы обратились к популярным фреймворкам, таким как ITIL или COBIT. Однако, не по всем аспектам деятельности удалось найти ценные советы. Поскольку, большинство методик говорят, что сделать, но не описывают как.

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

Читать далее
Всего голосов 3: ↑2 и ↓1+4
Комментарии0

Файл дескриптор в Linux с примерами

Время на прочтение14 мин
Количество просмотров108K
Однажды, на одном интервью меня спросили, что ты будешь делать, если обнаружишь неработающий сервис из-за того, что на диске закончилось место?

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

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

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

«окей», — ответил я, «мы можем выключить дебаг в конфиге приложения и перезапустить его».
Интервьюер возразил: «Нет, приложение мы перезапустить не можем, у нас в памяти все еще хранятся важные данные, а к самому сервису подключены важные клиенты, которых мы не можем заставлять переподключаться заново».

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

Интервьюер остался доволен, а я нет.

Тогда я подумал, почему человек, проверяющий мои знания, не копает глубже? А что, если данные все-таки важны? Что если мы не можем перезапускать процесс, и при этом этот процесс пишет на файловую систему в раздел, на котором нет свободного места? Что если мы не можем потерять не только уже записанные данные, но и те данные, что этот процесс пишет или пытается записать?
Читать дальше →
Всего голосов 136: ↑136 и ↓0+136
Комментарии20

Kubernetes: шпаргалка для собеседования

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров41K
Всем привет! Меня зовут Олег, я работаю исполнительным директором по разработке в Газпромбанке. На разных этапах карьеры я участвовал во многих собеседованиях, а в настоящее время сам собеседую кандидатов на должность инженеров DevOps и системных администраторов в Газпромбанке, вследствие чего у меня сформировалось некоторое представление о вопросах, которые могут быть заданы соискателям. И сейчас я хочу остановиться на разделе вопросов про Kubernetes.

image

Сразу хочу сказать, что изначально планировал сделать одну статью, но в итоге получилась такая простыня, что пришлось разделить текст на две части. Ссылку на вторую опубликую здесь, как только она появится (вот она).

Вопросы по Kubernetes достаточно часты на собеседованиях на инженерные вакансии, связанные с администрированием и эксплуатацией. Они могут варьироваться от базовых, рассчитанных на механическую проверку теоретических знаний («объясните, что такое service») до более сложных и комплексных, требующих глубинного понимания внутренних принципов Kubernetes и работы (каким образом опубликовать приложение, развёрнутое в Kubernetes). Давайте пойдём от базы в направлении возрастания сложности.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+20
Комментарии12

Kubernetes: шпаргалка для собеседования часть 2

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров17K

Всем привет! Это снова Олег. Как и обещал, публикую вторую часть текста, посвященную вопросам, которые могут быть заданы на собеседовании по Kubernetes. 

Чтобы было понятно о чем речь, коротко: я работаю исполнительным директором по разработке в Газпромбанке, собеседую инженеров DevOps и системных администраторов. Делюсь вопросами (и ответами, конечно), которые могут быть заданы на собеседовании. Первую часть можно найти здесь. Итак, поехали.

Ехать далее
Всего голосов 11: ↑10 и ↓1+10
Комментарии17

Еще несколько слов о Path MTU Discovery Black Hole

Время на прочтение14 мин
Количество просмотров149K

Еще несколько слов о Path MTU Discovery Black Hole



Вместо вступления


Однажды для каждого настоящего системного администратора (или исполняющего обязанности такового) наступает момент истины. Ему выпадает судьба настроить маршрутизатор на компьютере с установленной ОС GNU/Linux. Те, кто это уже прошел, знают, что ничего сложного в этом нет и можно уложиться в пару команд. И вот наш админ находит эти команды, вбивает их в консоль и гордо идет к пользователям сказать, что уже все работает. Но не тут-то было – пользователи говорят что их любимые сайты не открываются. После траты некоторой части своей жизни на выяснение подробностей обнаруживается, что большая часть сайтов ведет себя следующим образом:
1. При открытии страницы загружается заголовок и больше ничего;
2. В таком состоянии страница висит неопределенно долгое время;
3. Строка статуса браузера все это время показывает что загружает страницу;
4. Пинги и трассировка до данного сайта проходят нормально;
5. Соединение по telnet на 80 порт тоже проходит нормально.
Обескураженный админ звонит в техподдержку провайдера, но там от него быстро избавляются, советуя попробовать настроить маршрутизатор на OC Windows, а если уж и там не работает тогда… купить аппаратный маршрутизатор.
Я думаю, эта ситуация знакома многим. Некоторые в нее попадали сами, у кого-то с ней сталкивались знакомые, а кто-то встречал таких админов на форумах и прочих конференциях. Итак: если у Вас Такая Ситуация, то — Поздравляю! Вы столкнулись с Path MTU Discovering Black Hole. Данная статья посвящается тому, отчего это бывает, и как решить эту проблему.

Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии22

Основы Linux от основателя Gentoo. Часть 3 (4/4): Настройка пользовательского окружения

Время на прочтение8 мин
Количество просмотров38K
Заключительная глава третьей части серии руководств Linux для новичков. Основы конфигурирования рабочей оболочки, настройка переменных окружения, а также подведение итогов всей третьей части.

Навигация по основам Linux от основателя Gentoo:

Часть I:
  1. BASH, основы навигации
  2. Управление файлами и директориями
  3. Ссылки, а также удаление файлов и директорий
  4. Glob-подстановки
Читать дальше →
Всего голосов 72: ↑64 и ↓8+56
Комментарии22

Какую нагрузку на серверы создают сетевые механизмы?

Время на прочтение9 мин
Количество просмотров7.6K
Когда анализируют работу сетевой подсистемы серверов, внимание обычно обращают на такие показатели, как время задержки (latency), пропускная способность системы (throughput), количество пакетов, которое можно обработать за секунду (PPS, Packets Per Second). Эти показатели применяют для того чтобы понять то, под какой максимальной нагрузкой сможет работать исследуемый компьютер. И, хотя эти метрики важны и часто способны многое сказать о системе, они не дают сведений о том, какое воздействие обработка сетевых пакетов оказывает на программы, выполняющиеся на сервере.



Этот материал направлен на исследование нагрузки, создаваемой сетевыми механизмами на серверы. В частности, речь пойдёт о том, сколько процессорного времени решение сетевых задач может «украсть» у различных процессов, выполняющихся в Linux-системах.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии0

Переосмысление PID 1. Часть 1

Время на прочтение3 мин
Количество просмотров20K

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

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

Здесь код. А вот здесь история:
Читать дальше →
Всего голосов 19: ↑12 и ↓7+5
Комментарии6

StatefulSet в Kubernetes – примеры и наилучшие практики

Время на прочтение10 мин
Количество просмотров33K
image

Собираетесь ли вы развертывать базу данных в кластере Kubernetes? Если так – то это отличный выбор. Kubernetes – это инструмент оркестрации контейнеров, который при помощи множества инструментов координирует эксплуатацию приложений в контейнерах (подах). Один из этих контроллеров называется StatefulSet и используется для эксплуатации приложений, сохраняющих состояние.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+19
Комментарии20

Сети Kubernetes: Ingress

Время на прочтение12 мин
Количество просмотров57K
Сегодня мы публикуем перевод третьей части руководства по работе с сетями в Kubernetes. В первой части речь шла о подах, во второй — о сервисах, а сегодня мы поговорим о балансировке нагрузки и о ресурсах Kubernetes вида Ingress.

Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии3

Полезные советы по Python, которых вы ещё не встречали. Часть 2

Время на прочтение7 мин
Количество просмотров37K
Недавно мы опубликовали перевод материала, в котором были приведены полезные советы для Python-программистов. У того материала есть продолжение, которое мы представляем вашему вниманию сегодня.


Читать дальше →
Всего голосов 51: ↑48 и ↓3+62
Комментарии24

Как работает CPU Manager в Kubernetes

Время на прочтение8 мин
Количество просмотров12K
Прим. перев.: Эта статья опубликована в официальном блоге Kubernetes и написана двумя сотрудниками Intel, принимающими непосредственное участие в разработке CPU Manager — новой возможности в Kubernetes, о появлении которой мы писали в обзоре релиза 1.8. В настоящий момент (т.е. для K8s 1.11) эта фича имеет статус бета-версии, а подробнее о её предназначении читайте далее в заметке.

Публикация рассказывает о CPU Manager — бета-фиче в Kubernetes. CPU Manager позволяет лучше распределять рабочие нагрузки в Kubelet, т.е. на агенте узла Kubernetes, с помощью назначения выделенных CPU на контейнеры конкретного пода.

Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии1

Выгружаем историю изменений статуса задачи в Jira с помощью Python

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров5.6K

В данной статье поэтапно расскажу, как подключится к Jira используя Python и выгрузить историю изменений статуса.

Читать далее
Всего голосов 7: ↑4 и ↓3+3
Комментарии4

Настройка сетевого стека Linux для высоконагруженных систем

Время на прочтение10 мин
Количество просмотров33K

Сетевой стек — одна из самых запутанных вещей в Linux. И не только из-за сложности некоторых концепций и терминов, но и из-за изменения смысла некоторых параметров в разных версиях ядра. В этой статье приведена информация для ядра 2.2 и выше, а также, там где это возможно, указано различие между версиями вплоть до 5.5.

О том как изменять параметры ядра, описываемые здесь, можно прочитать в статье Linux Kernel Tuning for High Performance Networking: Configuring Kernel Settings.

Читать далее
Всего голосов 29: ↑29 и ↓0+29
Комментарии7

Мониторинг и настройка сетевого стека Linux: получение данных

Время на прочтение71 мин
Количество просмотров82K


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

Также рекомендуем ознакомиться с иллюстрированным руководством на ту же тему, там есть поясняющие схемы и дополнительная информация.
Читать дальше →
Всего голосов 63: ↑60 и ↓3+57
Комментарии8

История о жрущем память API-сервере Kubernetes

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров5.3K

Несколько месяцев назад коллеги, работающие с одним из кластеров Kubernetes в dev-окружении, обратились с проблемой недоступности API-сервера Kubernetes. Dev-среды обычно не подключены к дежурной смене, и решением проблем занимаются владельцы или, если проблемы нестандартные, обращаются к профильным специалистам. В ходе диагностики оказалось, что kube-api стал потреблять значительно больше памяти. Это приводило к возникновению ошибки с OOM.

Давайте будем честными — если бы это произошло в production-окружении, мы, скорее всего, закинули бы больше памяти и успешно бы забыли про проблему. Но dev-стенд не имеет жёстких SLA с финансовой ответственностью, и это дало нам возможность и время разобраться с прожорливым kube-api.

Всех, кому интересно, что из этого вышло, прошу под капот.

Читать далее
Всего голосов 27: ↑27 и ↓0+27
Комментарии9

Профилирование и оптимизация программ на Go

Время на прочтение25 мин
Количество просмотров90K

Введение


В этой статье я расскажу, как профилировать и оптимизировать приложения на языке Go с использованием встроенных и общих инструментов, доступных в ОС Linux.

Что такое профайлинг и оптимизация? Если ваша программа работает недостаточно быстро, использует слишком много памяти, неоптимально использует процессор, вы хотите понять, в чем дело, и исправить — это и есть профайлинг и оптимизация.

Я привел такое определение, чтобы сразу отсечь вопросы некорректной работы приложения. В этой статье мы не будем говорить о проблемах мультитредового программирования, о дата-рейсах (англ. data race), о поиске ошибок (англ. debugging). Для всего этого в Go есть свои утилиты и подходы, но оставим эту тему на будущее.



Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии18
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность