На этой неделе мне стали известны подробности о том, как работает планировщик Kubernetes, и я хочу поделиться ими с теми, кто готов погрузиться в дебри организации того, как это в действительности работает.
User
Как на самом деле работает планировщик Kubernetes?
На этой неделе мне стали известны подробности о том, как работает планировщик Kubernetes, и я хочу поделиться ими с теми, кто готов погрузиться в дебри организации того, как это в действительности работает.
Создаем самодостаточный Docker-кластер
Самодостаточная система — это та, которая способна восстанавливаться и адаптироваться. Восстановление означает, что кластер почти всегда будет в том состоянии, в котором его запроектировали. Например, если копия сервиса выйдет из строя, то системе потребуется ее восстановить. Адаптация же связана с модификацией желаемого состояния, так чтобы система смогла справиться с изменившимися условиями. Простым примером будет увеличение трафика. В этом случае сервисам потребуется масштабироваться. Когда восстановление и адаптация автоматизировано, мы получаем самовосстанавливающуюся и самоадаптирующуюся систему. Такая система является самодостаточной и может действовать без вмешательства человека.
Как выглядит самодостаточная система? Какие ее основные части? Кто действующие лица? В этой статье мы обсудим только сервисы и проигнорируем тот факт, что железо также очень важно. Такими ограничениями мы составим картину высокого уровня, которая описывает (в основном) автономную систему с точки зрения сервисов. Мы опустим детали и взглянем на систему с высоты птичьего полёта.
Если вы хорошо разбираетесь в теме и хотите сразу всё понять, то система изображено на рисунке ниже.
Load Average в Linux: разгадка тайны
Средние значения нагрузки (Load averages) — это критически важная для индустрии метрика. Многие компании тратят миллионы долларов, автоматически масштабируя облачные инстансы на основании этой и ряда других метрик. Но на Linux она окутана некой тайной. Отслеживание средней нагрузки на Linux — это задача, работающая в непрерываемом состоянии сна (uninterruptible sleep state). Почему? Я никогда не встречал объяснений. В этой статье я хочу разгадать эту тайну, и создать референс по средним значениям нагрузки для всех, кто пытается их интерпретировать.
Тюнинг сетевого стека Linux для ленивых
Сетевой стек Linux по умолчанию замечательно работает на десктопах. На серверах с нагрузкой чуть выше средней уже приходится разбираться как всё нужно правильно настраивать. На моей текущей работе этим приходится заниматься едва ли не в промышленных масштабах, так что без автоматизации никуда – объяснять каждому коллеге что и как устроено долго, а заставлять людей читать ≈300 страниц английского текста, перемешанного с кодом на C… Можно и нужно, но результаты будут не через час и не через день. Поэтому я попробовал накидать набор утилит для тюнинга сетевого стека и руководство по их использованию, не уходящее в специфические детали определённых задач, которое при этом остаётся достаточно компактным для того, чтобы его можно было прочитать меньше чем за час и вынести из него хоть какую-то пользу.
В чём суть проекта Moby и почему главным репозиторием Docker вдруг стал moby/moby?
Забегая вперёд и заранее отвечая на вопросы разработчиков, использующих Docker как простой способ запуска приложений в контейнерах: Moby — проект не для вас. Несмотря на его появление и происходящие внутри перестановки, «внешне» (для пользователей Docker как готового продукта) ничего не изменится. А для тех, кто настроен более глубоко разобраться в этих перестановках (весьма значимых!) и, возможно, даже воспользоваться ими для решения своих задач… начну с краткого экскурса в новейшую историю развития Docker.
Феншуйная автоматизация CI & CD с помощью Jenkins и Jira
Мы давно ничего не рассказывали об автоматизации разработки. Поэтому в этот раз расскажу о том, как мы сократили время релиза с трех дней до одного и убрали из процесса участие человека с его возможными ошибками.
Рассказывать о долгом и тернистом пути всегда непросто. Однако за последние годы инфраструктура разработки Яндекс.Денег сделала большой шаг в сторону автоматизации самого важного для нас процесса — релиза, о чем просто грех не рассказать. Фактически получилось полноценное решение Continuous Integration и Continuous Delivery на базе связки Bitbucket, Jenkins и Jira.
Книга «Философия DevOps. Искусство управления IT»
IT-принцип «agile» стал мантрой цифровой эпохи. С ростом проектов, переходом от монолитных приложений к системе микросервисов, увеличением и накоплением продуктов возникают вопросы, которые требуют совершенно иного подхода. Теперь наибольший интерес вызывает находящаяся на стыке разработки и операционного управления методология DevOps.
DevOps — это не просто набор техник, это философия. Разработчики, зацикленные на пользователях, должны уделять внимание поддержке и ее запросам. Сисадмины должны сообщать о проблемах продукта и вносить свой вклад в улучшение процесса работы. Но налаживание связей внутри компании — это лишь первый шаг. Чтобы продукт стал простым и удобным, придется вложить время и ресурсы в его доработку. Конфигурация через центральную службу, внедрение простым копированием, отсутствие внешних зависимостей, обдуманные метрики вместо мусора в логах — вот лишь часть задач, которые придется решать на этом пути.
Системы инициализации Unix и Linux после SysV
До середины 2000-х никому в голову не приходило менять sysvinit, почти никому. Gentoo с самого начала создавала и развивала OpenRC. Все изменилось с появлением launchd в Mac OS X. Разработчики Ubuntu бросились создавать Upstart, в котором были позаимствованы некоторые идеи из launchd
. Дело шло ни шатко ни валко, но тут случился systemd и смешал все карты. Но кто же был истинным первопроходцем?
Daniel J. Bernstein математик и специалист по криптографии, автор популярного MTA qmail и множества других менее известных программ, среди которых выделяется daemontools. Для множества современных систем инициализации daemontools являлся примером и вдохновителем. Прошу внутрь для того, чтобы познакомиться с самой элегантной, простой и влиятельной системой управления службами в Unix / Linux.
«Меньшими силами делать больше» — Кирилл Толкачёв об Альфа-Лаборатории
Кирилл tolkkv Толкачёв — вероятно, самый известный в Java-мире сотрудник Альфа-Лаборатории: он активно выступает на Java-конференциях, давно участвует в подкасте «Разбор Полётов», а осенью стал сооснователем нового подкаста «Two Devs One Ops». Но как выглядит его работа в самой Альфа-Лаборатории, и насколько активно в компании используют все те инструменты, которые он упоминает в докладах и подкастах?
Кирилл выступил на прошедшей JPoint 2017, рассказав там совместно с Евгением Борисовым о «граблях» Spring Test/Spring Boot Test, а Альфа-Лаборатория стала спонсором JPoint — и мы решили, что на конференции удобно поймать его и расспросить обо всём этом.
Лекции Технопарка. Курс «Алгоритмы и структуры данных» (осень 2016)
Сегодня представляем вашему вниманию один из свежих курсов Технопарка — «Алгоритмы и структуры данных». Он представляет собой изучение базовых алгоритмов и структур данных, необходимых программистам для качественного решения ежедневных задач. В курсе представлены алгоритмы для работы с массивами, сортировки. Рассказывается об элементарных структурах данных: стек, очередь, списки, куча. Также в программу включены различные деревья поиска и хеш-таблицы. Курс дает представление о том, как оценивать эффективность алгоритмов, все алгоритмы курса оцениваются по времени работы и по количеству используемой дополнительной памяти. Вас ждут шесть лекций:
- «Введение. Исполнители. Абстракции интерфейсов. Рекурсия»;
- «Жадные алгоритмы»;
- «Сортировки»;
- «Поиск. Списки»;
- «Деревья»;
- «Хеш-таблицы».
Четыре лекции курса читает Степан Мацкевич, руководитель группы извлечения онтологической информации в компании ABBYY. Он был ведущим программистом при написании серверной части продукта ABBYY InfoExtractor на основе технологии ABBYY Compreno (анализ текстов и перевода).
Еще две лекции ведет Георгий Иванов, разработчик Поиска Mail.Ru, занимающийся задачами обработки поисковых запросов.
Самые полезные приёмы работы в командной строке Linux
Как выглядят типичные трудовые будни системного администратора, который сидит на Linux? Если абстрагироваться от всего, кроме набираемых на клавиатуре команд, то окажется, что команды эти постоянно повторяются. Всё выходит на уровень автоматизма. И, если даже в работе есть что улучшать, привычка противится новому. Как результат, немало времени уходит на то, чтобы делать так, как привычнее, а не так, как быстрее, и, после небольшого периода привыкания – удобнее. Помнить об этом, сознательно вводить в собственную практику новые полезные мелочи – значит профессионально расти и развиваться, значит – экономить время, которое можно много на что потратить.
Перед вами – небольшой список полезных приёмов работы с командной строкой Linux. С некоторыми из них вы, возможно, уже знакомы, но успели их позабыть. А кое-что вполне может оказаться приятной находкой даже для знатоков. Хочется надеяться, что некоторые из них будут вам полезны и превратятся из «списка» в живые команды, которыми вы будете пользоваться каждый день.
История успеха «Яндекс.Почты» с PostgreSQL
Владимир Бородин (на «Хабре» dev1ant), системный администратор группы эксплуатации систем хранения данных в «Яндекс.Почте», знакомит со сложностями миграции крупного проекта с Oracle Database на PostgreSQL. Это — расшифровка доклада с конференции HighLoad++ 2016.
Всем привет! Меня зовут Вова, сегодня я буду рассказывать про базы данных «Яндекс.Почты».
Сначала несколько фактов, которые будут иметь значение в будущем. «Яндекс.Почта» — сервис достаточно старый: он был запущен в 2000 году, и потому мы накопили много legacy. У нас — как это принято и модно говорить — вполне себе highload-сервис, больше 10 миллионов пользователей в сутки, какие-то сотни миллионов всего. В бэкенд нам прилетает более 200 тысяч запросов в секунду в пике. Мы складываем более 150 миллионов писем в сутки, прошедших проверки на спам и вирусы. Суммарный объём писем за все 16 лет — больше 20 петабайт.
О чем пойдет речь? О том, как мы перевезли метаданные из Oracle в PostgreSQL. Метаданных там не петабайты — их чуть больше трехсот терабайт. В базы влетает более 250 тысяч запросов в секунду. Надо иметь в виду, что это маленькие OLTP-запросы, по большей части чтение (80%).
Это — не первая наша попытка избавиться от Oracle. В начале нулевых была попытка переехать на MySQL, она провалилась. В 2007 или 2008 была попытка написать что-то своё, она тоже провалилась. В обоих случаях был провал не столько по технически причинам, сколько по организационным.
Отладка вашей ОС: урок по выделению памяти
Всё началось, как и многие другие расследования, с баг-репорта.
Название отчёта было довольно простым: «При HTTP-подключении iter_content медленно работает с чанками большого размера». Подобное название немедленно включило у меня в голове сирену по двум причинам. Во-первых, довольно сложно определить, что здесь означает «медленно»? Насколько медленно? Насколько велик «большой размер»? Во-вторых, если бы описанное проявлялось действительно серьёзно, то мы бы об этом уже знали. Метод
iter_content
используется давно, и если бы он существенно притормаживал в распространённом пользовательском режиме, то мимо нас такая информация не прошла бы.Эффективное хранение: как мы из 50 Пб сделали 32 Пб
Видео доклада
Текстовая Версия
Изменения курса рубля два года назад заставили нас задуматься о способах снижения стоимости железа для Почты Mail.Ru. Нам понадобилось уменьшить количество закупаемого железа и цену за хостинг. Чтобы найти, где сэкономить, давайте посмотрим, из чего состоит почта.
Индексы и тела писем составляют 15 % объёма, файлы — 85 %. Место для оптимизаций надо искать в файлах (аттачах в письмах). На тот момент у нас не была реализована дедупликация файлов; по нашим оценкам, она может дать экономию в 36 % всего объёма почты: многим пользователям приходят одинаковые письма (рассылки социальных сетей с картинками, магазинов с прайсами и т.д.). В этом посте я расскажу про реализацию такой системы, сделанной под руководством PSIAlt.
Основы Kubernetes
Что такое Kubernetes?
Kubernetes является проектом с открытым исходным кодом, предназначенным для управления кластером контейнеров Linux как единой системой. Kubernetes управляет и запускает контейнеры Docker на большом количестве хостов, а так же обеспечивает совместное размещение и репликацию большого количества контейнеров. Проект был начат Google и теперь поддерживается многими компаниями, среди которых Microsoft, RedHat, IBM и Docker.
Мониторинг и настройка сетевого стека Linux: получение данных
В этой статье мы рассмотрим, как осуществляется приём пакетов на компьютерах под управлением ядра Linux, а также разберём вопросы мониторинга и настройки каждого компонента сетевого стека по мере движения пакетов из сети в приложения пользовательского пространства. Здесь вы найдёте много исходного кода, потому что без глубокого понимания процессов вы не сможете настроить и отслеживать сетевой стек Linux.
Также рекомендуем ознакомиться с иллюстрированным руководством на ту же тему, там есть поясняющие схемы и дополнительная информация.
Обучаемся самостоятельно: подборка видеокурсов по Computer Science
Содержание
- Введение в Computer Science
- Структуры данных и Алгоритмы
- Системное программирование
- Распределенные системы
- Базы данных
- Объектно-ориентированный дизайн и разработка софта
- Искусственный интеллект
- Машинное обучение
- Веб-разработка и интернет-технологии
- Concurrency
- Компьютерные сети
- Разработка мобильных приложений
- Математика для программистов
- Теория информатики и языки программирования
- Архитектура компьютера
- Безопасность
- Компьютерная графика
- Работа с изображениями и компьютерное зрение
- Интерфейс Человек-Компьютер
- Вычислительная биология
- Прочее
Уничтожить SSD за 7 секунд: тактическая защита информации от несанкционированного доступа
«Любую ценность контролирует лишь тот, кто в состоянии её уничтожить»
— Дюна, Фрэнк Герберт
На втором курсе универа мой одногруппник устроился на работу помощником админа. Через месяц в столовке он нам (был я и еще три одногруппника) похвастался, что написал софтину, которая позволяла ему качать файлы из интернета через корпоративный аккаунт (напомню, что по диалапу в те времена одна mp3шка качалась час). Другой одногруппник за пивасом рассказал это уже в своей компании друзей, а те без его ведома решили прикольнуться. Базы данных с номерами телефонов, адресов, ГАИ и прочие давно гуляли по рукам, городок маленький. Звонок:
— Евгений, добрый день, это сержант Иванов, отдел федеральной службы по расследованию информационных преступлений. У вас незаконное использование служебного положения, когда вы можете подойти к нам для дачи показаний?
Парень не появлялся в универе где-то неделю, а свой жесткий, дискеты и оперативку он измолотил в крошку.
Наверняка каждый, кто читает эти строки, задумывался, как и чем покрошить свой жесткий диск, если к нему придут (эффект неуловимого Джо). У кого-то это осталось в виде мысленного плана, а у кого-то руки дошли до вооружений техническими средствами (например, жесткий, диск заранее вытащен из системника, а рядом любимая болгарка.)
Защита от несанкционированного доступа бывает не только софтовой, но и хардкорной. Ситуации всякие бывают, и защищать информацию приходится ценой ее жизни. «Так не достанься же ты никому!» или «Ultima ratio regum» (последний довод королей).
Сегодня — репортаж из лаборатории по оперативному уничтожению информации. (Спасибо эксперту по ИБ Олегу Позднякову из "Детектор Системс" за право доступа.)
Пять инструментов systemd, которые стоит начать использовать прямо сейчас
Эта статья призвана познакомить читателя с находящимся в арсенале systemd набором инструментов.
Когда наконец удается смириться с уходом systemd от тех принципов, что лежали в основе ветхозаветной System V с ее простыми текстовыми файлами и засильем скриптов, начинаешь видеть неоспоримые преимущества новой системы инициализации и поставляемых с ней инструментов. В этой статье мы поговорим о четырех из них, а также упомянем еще один, который вы наверняка уже знаете, но вряд ли использовали описанным здесь способом.
Information
- Rating
- Does not participate
- Registered
- Activity