Search
Write a publication
Pull to refresh
11
0.8
Иван Кудрявцев @ivankudryavtsev

Техдиректор в дикой природе

Send message

Устройство и полезные фишки Hashicorp Vault

Reading time5 min
Views9K

Мое видение продукта Vault от Hashicorp.

Думаю многие слышали о такой системе хранения секретов Vault от Hashicorp. Кроме Vault Hashicorp выпустила еще много востребованных решений - Boundary, Terraform, которые предоставляют возможности управления PAM (Privileged Access Management) и IAS(Infrastructure As a Code) соответственно и многие другие.

Читать далее o Hashicorp Vault

Инструкция: сделать доверенность заграницей для РФ и РБ

Reading time6 min
Views31K

В дополнение к вчерашней статье "Документы перед выездом из РФ".

Вводные: вы уезжаете из России или Беларуси, но там остаются дела.

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

Читать далее

GitOps — что это такое и с чем его едят?

Reading time12 min
Views42K

На самом деле почти никто не знает, что такое GitOps. Я тоже заблуждался, пока не начал готовить доклад, а потом статью по этой теме. Самое распространенное определение GitOps — это «хранение состояния в Git», но оно не единственное и не самое главное. Это звучное словечко  придумали в Weaveworks, но его название несколько разнится с его реальным пониманием. Созвучие с DevOps — скорее, маркетинговый ход, чем реальное отражение сущности. Основная идея GitOps в том, что помимо хранения состояния в Git, у нас есть непрерывный процесс его синхронизации с реальным миром, то есть, что у вас Kubernetes-кластере или где либо ещё в вашем окружении.

Меня зовут Андрей Квапил. Я работал в чешском хостинге WEDOS. Он не сильно популярен в России, но это крупнейший хостинг на территории Чехии (просто Чехия маленькая).  Сейчас я работаю во Фланте, но именно на примере европейского хостинга WEDOS, хочу рассказать историю имплементации GitOps.

Читать далее

Скрининг-колл с рекрутером: вопросы, которые скорее всего вам зададут

Reading time6 min
Views8.6K

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

В этой статье я расскажу:

• Что такое скрининг-колл.

• Какие типовые вопросы встречаются на скрининг звонках в США, вне зависимости от того собеседуют ли в стартап или в FAANG компанию.

• А также на какие вопросы вы не должны отвечать на скрининг звонках в США.

Читать далее

Самообучающийся трекер объектов: как отслеживать цель в изменчивых условиях сцены

Reading time16 min
Views16K

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

Есть один подход к трекингу, широко известный на западе, но о котором мало пишут по-русски: Incremental Visual Tracker (IVT). Это трекер объектов на основе модифицированного метода главных компонент: он самообучается на ходу и адаптируется к изменчивым условиям.

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

Читать далее

Как правильно подготовиться к сбою в RAID

Reading time4 min
Views8.9K

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

Читать далее

Во что вам обойдется конкурентная обработка. Иерархия проблем

Reading time47 min
Views6.3K

Конкурентность сложно как следует наладить, как минимум, тем из нас, кому не повезло писать на языках, непосредственно открывающих нутро конкурентного аппаратного обеспечения: речь о потоках и разделяемой памяти. Не менее сложно организовать конкурентность так, чтобы она работала и правильно, и быстро. Все, что вы знаете об оптимизации однопоточного кода, зачастую вам не поможет. На микроуровне (отдельные инструкции) просто невозможно применить обычные правила, актуальные для μ-операций, цепочек зависимостей, пределов пропускной способности и т.д. При конкурентности правила другие.

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

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

Часто ловлю себя на мысли, что рассуждаю именно в таких категориях, когда мне нужна высокопроизводительная конкурентность: каков наилучший уровень, который я реально могу достичь при решении конкретной задачи? Держать в уме эти уровни полезно и на этапе первичного проектирования (иногда небольшое изменение требований или высокоуровневого дизайна позволяют вам выйти на более выгодный уровень), а также при оценке уже существующих систем (для еще более точного понимания имеющейся производительности и выстраивания пути наименьшего сопротивления, ведущего к улучшениям).

Читать далее

Что было до Большого Взрыва?

Reading time5 min
Views45K

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

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

Читать далее

Экстремальная настройка производительности HTTP: 1,2M API RPS на инстансе EC2 с 4 виртуальными процессорами (vCPU)

Reading time54 min
Views19K

Прим. перев.: автор данного исследования — Marc Richards, Solutions Architect и DevOps-инженер — продемонстрировал потрясающую настойчивость и тщательность в тотальной оптимизации производительности веб-приложения. Получившийся материал — кладезь полезных знаний для расширения своего кругозора в области оптимизации, особенностей сетевого стека в Linux и не только, даже вне зависимости от практической заинтересованности в конечном результате автора. Приготовьтесь к по-настоящему длинному техническому путешествию с обилием терминологии, увлекательных графиков и полезных ссылок.

Читать далее

Почему мьютексы в Rust реализованы именно так

Reading time17 min
Views14K

Я часто слышу от пробующих работать с Rust системных программистов жалобы на мьютексы и особенно на Rust Mutex API. Жалобы обычно выглядят так:

  • Они не хотят, чтобы мьютекс содержал данные, только блокировку.
  • Они не хотят управлять «защитным» значением, разблокирующим мьютекс при сбросе, в частности, они просто хотят вызывать операцию unlock, потому что им кажется, что это более явное действие.

Такие изменения превратили бы Rust mutex API в эквивалент C/Posix mutex API. Однажды я даже видел, как один разработчик пытался использовать Mutex<()> и разные хитрости, чтобы его имитировать.

Однако у такого стремления есть проблема: эти два аспекта Mutex неразрывно связаны друг с другом, а также с гарантиями безопасности Rust в целом — изменение одного из них или обоих откроет возможности для возникновения незаметных багов и повреждений из-за гонок данных.

Использование API мьютексов в стиле C, состоящего из набора косвенно защищаемых данных и из функций lock и unlock было бы опрометчивым в Rust, потому что это позволяет безопасному коду легко вносить ошибки, нарушающие безопасность памяти и вызывающие гонки данных.

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

В этом посте я разберу типичный C mutex API, сравню его с типичным Rust mutex API, и расскажу о том, что произойдёт, если мы изменим Rust API так, чтобы он напоминал C.
Читать дальше →

Предотвращение троттлинга процессора в контейнеризованной среде

Reading time7 min
Views8.6K

В Uber все рабочие нагрузки, хранящие состояние, запускают на единой контейнеризованной платформе. Аппаратной основой этой платформы является обширный парк серверов. Среди таких рабочих нагрузок можно отметить MySQL, Apache Cassandra, ElasticSearch, Apache Kafka, Apache HDFS, Redis, DocstoreSchemaless. Во многих случаях они совместно работают на одних и тех же физических хостах.

Речь идёт о 65000 таких хостов, о 2,4 миллионах процессорных ядер и о 200000 контейнеров. Мы постоянно боремся за повышение эффективности использования серверов, делая это ради снижения затрат на их поддержку. Это — важная задача, но до недавнего времени её достойному решению мешал троттлинг процессоров. Это явление указывало на то, что нашим программам выделялось недостаточно ресурсов.

Оказалось, что проблема заключалась в том, как именно ядро Linux распределяет процессорное время между процессами. В этом материале мы расскажем о переходе с квот CPU (квот на ресурсы процессора, CPU quotas) на механизм распределения процессов по процессорам и памяти (cpusets; эта технология ещё известна как CPU pinning — закрепление процессора). Такой переход позволил нам значительно снизить задержки в 99 перцентиле (P99) в обмен на небольшой рост задержек в 50 перцентиле (P50). Это, в свою очередь, позволило нам снизить уровень выделения процессорных ядер во всём нашем серверном парке на 11% благодаря уменьшению различий в требованиях к ресурсам.

Читать далее

Биометрия в ритейле: большие надежды и суровая реальность

Reading time7 min
Views4.8K

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

Читать далее

Саморазвивающийся искусственный интеллект

Level of difficultyEasy
Reading time2 min
Views16K

Развитие науки идет с использованием стандартных методов: cбор исходных данных, построение моделей, тестирование их опытами, открытая публикация для проверки сообществом. Ядро науки составляют модели. Примеры моделей, которые всем известны со школьной парты: U=IR; F=ma. Даже на основе этой пары моделей вы можете нагенерировать миллионы школьных задачек. Если же модель устаревает, то она уходит в историю.

Попробуем спрогнозировать развитие искусственного интеллекта, основанного на нейросетях. Математическая модель нейрона постоянно совершенствуется и уточняется: y = f(sum(wi*xi)+b). Архитектуры нейросетей развиваются. Число связей нейросети всего лишь O(n^2). Алгоритмический доступ к элементам нейросети за время O(log(n)) уже готов. Узкие места сейчас – это такая деталь как процессоры, а так же построение более адекватной модели нейрона с динамическими синапсами. Развитие науки процесс сложный, но создание томографа с разрешением в 1 микрон, очевидно, упростит не только исследования работы мозга, но и сразу выявит природных гениев с сильно увеличенными зрительными, речевыми и вероятно некоторыми другими полями мозга.

Интересно, а каков дальнейший оптимальный путь развития искусственного интеллекта? Допустим, удастся сделать первичную нейросеть, обладающую настоящим разумом. Что если поставить ей задачу самосовершенствоваться? Затем помочь ей запустить процессы саморазвития, самоконструирования, самомодификации и самосозидания. Теоретически, вычислительная мощность нейросети ограничена только скоростью света. Возможно, она попросит сделать ее размером с дом, город или луну. Интересно, о чем она будет думать? Способен ли подобный Сверхразум ответить на вопросы, которые так волнуют человечество: освоение космоса, улучшение генетики, развитие социальных систем?

Биологические нейросети очевидно работают, но поставлены в жесткие эволюционные рамки. И вот достаточно простая идея - создать хоть каким способом первичную искусственную разумную нейросеть, которая сама подскажет как ее совершенствовать. Это быстрее и лучше, чем ломать головы из каких деталей лепить поколения муравьёв-терминаторов, распиливая гранты как в США. Вероятнее всего, первого же адекватного робота посадят проектировать еще более совершенного робота и так далее, пока не получится Сверхразум. Это экспоненциальная скорость развития. Риски подобных экспериментов уже давно стали основой многих научно-фантастических произведений. Технические детали активно обсуждаются в научном сообществе:
https://www.youtube.com/watch?v=Yow9YxRnR70
https://dzen.ru/a/ZhZdJ0KUjl7-zZfK
https://dzen.ru/video/watch/626c2ba92ebe7476c9571885

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

Читать далее

Как сделать стрим в Postgres?

Reading time4 min
Views11K

На одной конференции мне задали вопрос (спасибо Александру!): как сделать стрим в PostgreSQL? Представьте, что имеется bytea и вы к нему хотите что-то дописать. Люди столкнулись с тем, что на это в PostgreSQL  тратится гигантское время  и растет WAL-трафик. 

Расскажу, что с этим возможно сделать — это будет еще один пример оптимизации TOAST (о чем я недавно писал), на на этот раз — для быстрой записи потока бинарных данных. На самом деле мой коллега, Никита Глухов, за несколько часов сделал расширение, которое «вылечило» проблему, и мы даже успели рассказать про это на сессии блиц-докладов на PGConf.Online 2021.

Читать далее
Со стороны кажется, что новый дата-центр, построенный с нуля за полгода — это тривиальный проект. Но, во-первых, в дело вкрались всем известные события 2020-го. А во-вторых, Утконос ОНЛАЙН не нужен был просто дата-центр; им нужно было решение, на котором можно основать будущее компании. Эта статья о том, как мы создавали такое решение и почему в процессе создания вдруг почувствовали себя настоящими зодчими.
Читать далее

Отечественный процессор — так каким он должен быть?

Reading time15 min
Views49K

Предыдущая статья про микропроцессор Эльбрус вызвала живой отклик читателей Хабра. Изначально я планировал написать только статью о технических проблемах VLIW-архитектур на конкретном примере Эльбруса и имел мало желания углубляться в вопрос дальше, ввиду его куда большой скользкости и дискуссионности. Но сказать «А» и не сказать «Б» было бы, наверное, не совсем правильно. Поэтому в данной статье я попытаюсь изложить исключительно СВОЙ взгляд на проблематику того, какие процессорные Архитектуры (в контексте general purpose CPU) надо развивать и поддерживать рублем в России.

Читать далее

Список ноотропов, покупка которых не окажется пустой тратой денег

Reading time5 min
Views311K

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

Читать далее

Применение модулей LRDIMM в высокопроизводительных серверах

Reading time11 min
Views68K
LRDIMM (Load-Reduced Dual Inline Memory Module или «DIMM со сниженной нагрузкой») – тип модулей памяти, поддерживаемых серверными платформами с 2012 года. Модули LRDIMM схожи с регистровыми модулями DIMM и подходят к тем же разъемам памяти. Однако принцип работы LRDIMM отличается от RDIMM. Используя LRDIMM в обычном сервере можно сделать 512Гб, 1Тб или 1,5Тб памяти.


Читать дальше →

Friends: The Reunion: 17 лет спустя. Или как по английскому Мэтта Леблана мы узнали, что он никогда не играл Джоуи

Reading time7 min
Views42K

Привет, Хабр! Сериал «Друзья» — это целая эпоха, которая закончилась 17 лет назад, а на деле навсегда прописалась в нашем сердечке. 

И вот мы посмотрели «новый эпизод» «Друзей», как писали в русскоязычном пространстве, а на деле шоу о создании сериала, которое вызывает бурю эмоций. 

Автор статьи будучи еще зеленым пацаном смотрел «Друзей» по телевизору, стараясь не пропускать ни одну серию. Потому что смешно. И пусть даже далеко не все шутки можно было перевести на русский идеально — это автор понял после просмотра сериала уже на английском — но это все равно было офигенно. 

Так что немного поностальгируем о былом, вспомним «Друзей» и заодно разберем некоторые интересные фразы на английском, которые мы встретили в Friends: Reunion.

Читать далее

Представляем OpenShift Pipelines

Reading time5 min
Views7.2K

3 мая 2021 года Red Hat выпустила первую общедоступную версию OpenShift Pipelines, облачно-ориентированной системы непрерывной интеграции на базе СПО-проекта Tekton. Решение реализует kubernetes фреймворк CI/CD для разработки и выполнения конвейеров, в которых каждый шаг запускается в своем собственном контейнере, что позволяет масштабировать шаги независимо друг от друга. Сегодня мы вкратце рассмотрим ключевые особенности и преимущества этого решения, а также приведем список дополнительных ресурсов для дальнейшего знакомства с ней и освоения.

Читать дальше: OpenShift Pipelines...

Information

Rating
3,008-th
Location
Barcelona, Barcelona, Испания
Date of birth
Registered
Activity