Pull to refresh
3
0.9

User

Send message

Троттлинг в Kubernetes. Или как настроить лимиты, чтобы приложения не “тормозили”

Level of difficultyMedium
Reading time3 min
Views10K

Главная рекомендация - отказаться от лимитов!

А теперь подробнее.

Когда у вас много пользователей используют один кластер Kubernetes, возникает вопрос - как задать квоты, чтобы и приложениям хватало ресурса, и не случилось ситуации, когда из-за одного прожорливого соседа страдают все поды на ноде? 

Начну с того, что самым распространенным способом является задание request и limit по CPU и RAM. С оперативной памятью все достаточно просто - при превышении потребления, OMM-Killer остановит процесс. А вот с CPU есть целый ряд нюансов и возможностей наступить на грабли.

Это происходит из-за того, что ресурс процессора делится не долями, а по времени. 

Это можно представить так

Читать далее

О пройденном пути, полученных результатах и наших планах в мониторинге

Level of difficultyEasy
Reading time15 min
Views3.3K

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

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

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

Читать далее

Как работает сеть в контейнерах: Docker Bridge с нуля

Level of difficultyMedium
Reading time21 min
Views62K

В этой статье мы собираемся разобраться со следующими вопросами:

* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?

* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?

* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?

* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?

* Как реализовать публикацию портов, подобную Docker?

Читать далее

Микросотовые IP-DECT-системы Yealink

Reading time6 min
Views5.4K

Мы запускаем цикл статей, посвященный микросотовым IP-DECT-решениям Yealink.

Вводная часть посвящена следующим вопросам:

• обзор стандарта DECT, его преимущества и недостатки;
• определение микросотовой IP-DECT-системы, ключевые компоненты системы;
• терминология, ключевые понятия, применимые к микросотовым IP-DECT-системам;
• линейка микросотовых IP-DECT-систем Yealink.

Читать далее

Хранение паролей: работа над ошибками

Level of difficultyEasy
Reading time9 min
Views18K

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

Но начнём мы с небольшого объяснения, почему система такая сложная. Вспомним суть:

1) Для логина на "не значимые" сайты (например в аккаунт очередного AI-продукта) мы используем уникальный пароль, который храним в программе хранения паролей (парольном менеджере)

2) Для логина на "более важные ресурсы" (например в аккаунт на github), мы используем уникальный пароль, который храним в парольном менеджере, плюс одноразовый пароль (TOTP - Time-based One-Time Password) который нам покажет специальное приложение на телефоне.

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

Читать далее

Смена IP-адреса сервера Carbonio

Level of difficultyMedium
Reading time5 min
Views1.7K

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

Читать далее

Загадка про черепашку или архаизация шагает по стране (про тестирование импортозаместительных продуктов – 5)

Reading time10 min
Views6K

Ползут три черепашки.
Первая говорит, что перед ней никого нет, а сзади неё — две черепашки.
Вторая говорит, что впереди неё — одна черепашка, и сзади ещё одна.
И третья тоже говорит, что впереди неё одна, и сзади одна.
Как такое может быть? И при чем тут архаизация и импортозамещение ?

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

Читать далее

Как я поменял профессию: из тканевой инженерии в adult-индустрию

Level of difficultyEasy
Reading time11 min
Views69K

Если ты DevOps, который работает с adult‑проектами, то твой типичный «взрослый контент» будет выглядеть примерно так.

Одна из самых традиционных тем на Хабре — это внезапные карьерные перемещения из различных профессий в IT и обратно. У меня, вот, чудесный коллега — профессиональный мясник с соответствующим образованием. Мониторинг настраивает как боженька и умеет убедительно отстаивать свою точку зрения. Образование позволяет.

Меня тоже можете принимать в свои ряды людей со странной сменой профессии. Как многие помнят по моим старым постам — я изначально врач, который свернул в направлении фундаментальной науки и тканевой инженерии. Все вот эти развлечения со стволовыми клетками, выращиванием органов в биореакторах и прочими нетиповыми экспериментальными задачами. И вот тут меня внезапно позвали на собеседование в крупный телеком… Короче, очнулся я уже будучи DevOps в компании, которая занимается сложными проектами, некоторые из которых про adult‑видео. Ну вот те самые специальные обучающие фильмы для взрослых, которые двигатель прогресса. С петабайтами отданного трафика, набегами миллионов пользователей и прочими радостями.

Работает у нас это примерно так — у бизнеса наступает момент, когда приходит осознание, что все. Приехали. Инфраструктура работает, вроде бы все в порядке, но построена на костылях, которые заботливо укладывали три поколения сотрудников назад. Документации нет, как все это работает — никто не помнит. Если сервер сдохнет, воскресить в случае чего никто не сможет.

И вот где‑то в этот момент обычно появляемся мы с командой WiseOps и начинаем перебирать по винтику все археологические слои кода, архитектуры и бизнес‑логики. У нас уже есть несколько десятков клиентов и три из них про видеоконтент.

Предлагаю перейти под кат, а я попробую рассказать, как выглядит вся эта индустрия глазами врача/био‑инженера/DevOps.

Читать далее

Корпоративный куколдизм

Level of difficultyEasy
Reading time8 min
Views129K

Зачастую мне приходится слышать в подкастах или лицезреть в комментариях примерно такой диалог: "Я вашу айтишечку на балде вертел. Я сюда ради денег пришёл, которые в России ни в одной другой области не платят. Я вру на собесах об опыте, потому что работодатели точно так же врут соискателям об условиях работы, требования к джунам сениорские, а зарплата - нет"

Читать далее

Телефония «дёшево и сердито»

Level of difficultyMedium
Reading time3 min
Views7.4K

Бывают ситуации, когда нужна очень недорогая и несложная телефония, например, для связи между 2-3 точками: позвонить из магазина на склад, из основного помещения в подвал и прочее. Приобретение и установка АТС в таких случаях бывает избыточна, часто и довольно затратно и люди ищут решения попроще и подешевле. Разберем несколько рабочих вариантов для таких случаев. Может быть, они общеизвестны, однако по работе часто получаю такие вопросы.

Связь между двумя телефонами по схеме «точка-точка»

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

ip-телефон(ы) (либо FXS-шлюзы) должен поддерживать режим работы без регистрации. Эта особенность обычно обозначена в описании устройства или можно самому выяснить в документации.

оба устройства (ip-телефоны/шлюзы) должны находиться в одной сети или каким-либо другим образом «видеть» друг друга по ip-сети.

Читать далее

Как я создаю себе колоды Anki для немецких слов

Level of difficultyMedium
Reading time14 min
Views13K

Я захотел продолжить некогда заброшенное изучение немецкого языка. Долгое время на просторах интернета слышал мнение, что карточки Anki – чуть ли не самый лучший способ изучение языка, и решил, собственно, посмотреть что к чему. Рекомендации YouTube привели меня к интересному видео, где автор рассказывает о своем шаблоне карточек с немецкими словами. Автор не желал публиковать свою колоду, и не найдя аналогов среди публичных колод, я принялся делать свое. Конечно же не вручную.

Читать далее

Ускоряем анализ данных в 170 000 раз с помощью Python

Level of difficultyMedium
Reading time15 min
Views20K

В статье «Ускоряем анализ данных в 180 000 раз с помощью Rust» показано, как неоптимизированный код на Python, после переписывания и оптимизации на Rust, ускоряется в 180 000 раз. Автор отмечает: «есть множество способов сделать код на Python быстрее, но смысл этого поста не в том, чтобы сравнить высокооптимизированный Python с высокооптимизированным Rust. Смысл в том, чтобы сравнить "стандартный-Jupyter-notebook" Python с высокооптимизированным Rust».

Возникает вопрос: какого ускорения мы могли бы достичь, если бы остановились на Python?

Под катом разработчик Сидни Рэдклифф* проходит путь профилирования и итеративного ускорения кода на Python, чтобы выяснить это.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее

Беспредел в госзакупках: как ФОМС препятствовал исполнению госконтракта

Reading time9 min
Views13K

«Договорной» тендер, ошибка или личная неприязнь организатора? Мы пока не выяснили.

Привет! На связи Cloud4Y, корпоративный облачный провайдер. Хотим поделиться историей о том, как мы выиграли тендер ФОМС на 26 млн рублей, но оказались «неправильным» победителем. За это нам назначили штраф и могут занести в чёрный список недобросовестных исполнителей.

Читать далее

Бесплатные векторные карты на своём хостинге

Level of difficultyMedium
Reading time6 min
Views24K

Векторные карты Protomaps на базе OSM

Каждый веб-разработчик знает о OpenStreetMap (OSM), свободной альтернативе Google Maps. Несмотря на всеобщую известность OSM, у некоторых всё-таки возникают вопросы: как сделать веб-карту с открытыми данными OSM, как самостоятельно публиковать карты?

На эту тему есть популярные руководства, в том числе по работе с базами PostGIS и запуску тайлсерверов для реализации бесшовных карт OSM. Но есть принципиально иной подход — векторные карты Protomaps, которые обеспечивают более высокое разрешение, настройку внешнего вида и наложение произвольных меток. Они изначально предполагают максимальную простоту в создании своих карт. А главное, что разместить тайлы можно на своём хостинге или в облаке.
Читать дальше →

Как мы использовали Telekube для удаленной отладки приложений в Kubernetes

Reading time7 min
Views2.2K

Привет, Хабр! Эта статья расскажет о способе, который мы в Just AI придумали и реализовали для локальной разработки и отладки сервиса, работающего в Kubernetes.

Допустим, у нас есть некий компонент (ядро системы), который обычно запускается в Kubernetes и имеет множество взаимосвязей с другими сервисами. У компонента два сетевых интерфейса, которыми активно пользуются другие части системы, также развернутые в Kubernetes. Наша задача — научиться запускать его в IDE на своем ноутбуке в режиме отладки, чтобы максимально удобно и быстро отлаживать этот компонент. Telekube предоставляет возможность это сделать

Читать далее

Самолет из соломы против водного спорта здорового человека

Reading time9 min
Views3.8K

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

Современный водный спорт здорового человека выглядит несколько иначе. Ограничу список — серфинг, виндсерфинг, кайтсерфинг, фойл (включая электро и бензиновые варианты типа efoil и Jet Surf ), вингфойл, гидрофойл. Не буду включать sup, вейкборд и дополните список сами.

Читать далее

Кто такой — джуниор в FAANG?

Level of difficultyEasy
Reading time4 min
Views4.7K

Все мы понимаем, что означает слово Junior в контексте разработки софта. Человек без опыта, недавно попавший в профессию, часто делающий ошибки, требующий помощи и наставлений. Но как так получается, что в FAANG на Junior позиции (напр., L3 в Google) платят, как на Senior позиции в остальной отрасли? За что? За ошибки, помощь, наставления и отсутствие опыта? Какая‑то бессмыслица!

Каждая компания определяет слово «Junior» по‑своему, и это правильно. В этой статье я расскажу, как эту позицию определяют FAANG компании, и значительная часть Big Tech индустрии вместе с ними. В прошлый раз я поговорил про общие требования к кандидатам. Разобравшись с требованиями к этой позиции, вы узнаете, кому стоит приходить на собеседование в FAANG, а также как к нему готовиться. При правильном подходе быть принятым на работу гораздо проще, чем кажется на первый взгляд.

И кто же он такой?

Опыт масштабирования Kubernetes на 2k узлов и на 400k подов

Level of difficultyHard
Reading time8 min
Views12K

Расскажу, как мы в PayPal начинали осваивать Kubernetes. На тот момент большинство наших рабочих нагрузок выполнялось на Apache Mesos, и в рамках этой миграции нам требовалось разобраться с некоторыми аспектами производительности у кластеров, в которых будет работать Kubernetes – с учётом той плоскости управления, что действует в PayPal. Из всех этих аспектов важнее всего было понять, как именно масштабируется платформа, а также выявить, как можно было бы улучшить масштабируемость, настраивая параметры кластера.

Тогда как Apache Mesos может прямо из коробки масштабироваться вплоть до 10 000 узлов, масштабировать Kubernetes непросто. При масштабировании Kubernetes требуется учитывать не только количество узлов и подов, но и ещё некоторые вещи, в частности: сколько ресурсов создано, сколько у нас контейнеров на под, сколько всего сервисов задействовано, а также пропускная способность при развёртывании подов. В этом посте описаны некоторые проблемы, с которыми нам довелось столкнуться при масштабировании, и рассказано, как нам удалось с ними справиться.
Читать дальше →

Как работают трансформеры: разбираем математику

Level of difficultyMedium
Reading time28 min
Views24K

В этом посте я представлю подробный пример математики, используемой внутри модели трансформера, чтобы вы получили хорошее представление о работе модели. Чтобы пост был понятным, я многое упрощу. Мы будем выполнять довольно много вычислений вручную, поэтому снизим размерность модели. Например, вместо эмбеддингов из 512 значений мы используем эмбеддинги из 4 значений. Это позволит упростить понимание вычислений. Мы используем произвольные векторы и матрицы, но при желании вы можете выбрать собственные значения.

Как вы увидите, математика модели не так уж сложна. Сложность возникает из-за количества этапов и количества параметров. Перед прочтением этой статьи я рекомендую прочитать пост Illustrated Transformer (или читать их параллельно) [перевод на Хабре]. Это отличный пост, объясняющий модель трансформера интуитивным (и наглядным!) образом, поэтому я не буду объяснять то, что уже объяснено в нём. Моя цель заключается в том, чтобы объяснить, как работает модель трансформера, а не что это такое. Если вы хотите углубиться в подробности, то изучите известную статью Attention is all you need [перевод на Хабре: первая и вторая части].

Читать далее

15 лет развитию СПО в России

Level of difficultyEasy
Reading time8 min
Views6.3K

Посвящается 15 лет развитию СПО в России.

Для Лиги Лени: все очень плохо, хотя это смотря для кого

2007: Компания «РБК-Центр» (Армада) объявлена победителем конкурса на заключение гос. контракта по созданию пакета свободного программного обеспечения и пилотному апробированию этого пакета программ в образовательных учреждениях. Соисполнителями объявлены ALT Linux, Linux Ink.

17.03.2008 Мининформсвязи опубликовало Концепцию развития разработки и использования свободного ПО в России

13 сентября 2010 Глава «Ростехнологий» Сергей Чемезов доложил президенту России Дмитрию Медведеву, что национальная программная платформа уже создается на базе ПО компании «Альт Линукс».

Можно сказать, что последние 15-20 лет каждый второй год шел под знаком импортозамещения, исключая те, что шли как годы победы Linux на десктопе. Но есть, как говорится, нюанс.

Что там далее

Information

Rating
1,981-st
Registered
Activity