Не совсем технический вопрос, но не пробовали ли вы решать эту проблему с точки зрения улучшения BlueStore? Если у Ceph действительно есть перфоманс проблемы с BlueStore/rocksdb, то по идее мейнтейнер (Red Hat?) будет заинтересован их решить. Возможно можно было законтрибьютить новый сторедж бекенд вместо rocksdb туда, или описать проблему и попросить помощи у мейнтейнера. Просто сейчас у вас появилось несколько новых сервисов, и сцилла. Не звучит, как бесплатное решение для поддержки.
Несколько параллельных инициатив за последние года:
проект Лум - виртуальные потоки. Способ делать асинхронное программирование на джаве, без сложного реактивного программирования.
Паттерн матчинг - инструмент для реализации Data-oriented программирования (описываем нашу предметную область, как records, и sealed classes/interfaces, а потом пишем логику, используя exhaustive switch).
Улучшение производительности за счет ряда проектов (Vector API, GC improvements).
Улучшение взаимодействия с нативным кодом (Project Panama) - как вызывать Си функцию (или любую другую с C ABI) без боли и приседаний.
Упрощения языка для начинающих программистов - как сделать так, чтобы первая программа на джаве не требовала IDE, build tool, и прочтения книжки, а можно было просто взять и написать main() функцию и какой-то код.
Сколько же в яндексе было проектов по перезду с Оракла на PG. Наверное, самый старый (или нет?) - от 2016 года - https://habr.com/ru/articles/321756/
Интересно, можно ли было бы сделать какой-то универсальный набор тулинга / шагов, чтобы все проекты внутри компании использовали их, а не начинали свой ресерч с шагов типа "подойдет ли нам Oracle GoldenGate".
А у вас в компании нет инициативы по переходу на YDB повсеместно? Например, как гугл переводит все внутренние проекты на google spanner.
(пока я читал статью, думал про вопрос выбора PG - мое изначальное предположение было, что YDB использует ваш сервис, и вы не хотели иметь циклическую зависемость друг на друга, поэтому решили выбрать PG; но тогда я бы спросил - что не обязательно использовать облачную YDB, и можно деплоить свой кластер YDB)
Меня зовут Георгий Меликов, я работаю в VK Cloud, являюсь руководителем направления IaaS разработки. Мы занимаемся не только хранилищами, но и программными сетями. Но так как у нас в проде ещё нет ZFS, то я пишу в качестве контрибьютора проекта OpenZFS.
Спасибо за статью. Есть ли у вас уже предположения, для каких нагрузок вы могли бы использовать OpenZFS в VK? Так кажется, что большинство современных БД (sql/очереди/s3) делают много аналогичных вещей - также считают чексуммы данных, пишут WAL, делают репликацию данных и тд. Выглядит так, что используя вместе с ними OpenZFS мы будем часто делать операции дважды.
Я слышал, что люди используют OpenZFS для тестовых стендов вместе с PostgreSQL, чтобы за счет COW получить за бесплатно идентичные базы данных. Есть ли какие-то еще интересные места для использования данной FS?
Если бы вам нужно было построить подобную систему с нуля не в 2016 году, а сейчас (2023), стали бы вы повторять это решение с построением системы на основе Tarantool, или уже бы взяли одну из готовых БД (если да, то какую)?
Обычно те, кто добавляет логи, не платят за них (редко когда у каждой команды свой бюджет на логи) — значит не понятно, зачем прикладывать доп. усилия
Системы состоят из кучи сервисов, как все работает вместе — никто не знает, а если еще и самых подробных логов не будет — не ясно, как чинить инциденты
Потом, когда случится инцидент, если не будет нужных логов — начальники спросят, почему так плохо было сделано. Выходит, с точки зрения разработчика выгоднее сразу добавлять много логов, на всякий случай.
Не везде хорошая инфраструктура. Например, было бы здорово уметь в рантайме переключать уровень логов — но если система такое не поддерживает, ну, чтоже, будем логировать опять все, что можем.
Не везде хороший CI/CD. Если случилась беда на проде, докинуть новые логи может занять не минуты, а часы, благодаря долгим пайплайнам сборок и деплоев.
У меня нет каких-то маркетинговых исследований, доказывающих это. Говоря про рынок, я ссылался на то что языки (котлин, c# и потенциально GraalVM) вкладывают ресурсы своих разработчиков, для того чтобы поддержать этот таргет. Кроме того, в последнее время было довольно много конференций (как чисто по WASM, так и языковых), где опять таки WASM был популярным (это может быть просто хайп, а не реальный спрос, но, как один из сигналов — можно рассмотреть).
Обычно если я встречаю чьи-то попытки объяснить, чем WebAssembly плох для реализации JVM (а так же, CLR, JavaScript и прочих динамических сред), то они сводятся к следующему: "Java (.NET, JavaScript, ваш вариант) — это управляемый язык со сборкой мусора и исключениями, так что приходится тащить с собой гигантский рантайм". Что же, на самом деле, ситуация несколько сложнее, а размер рантайма вовсе не такой страшный и не является основным источником бед.
Понятно, что JVM и dotnet — не лучшие платформы для WASM, но рынок требует, и разработчики пытаются реализовать такой таргет в своих рантаймах.
Если подскажете, есть ли где-то возможность пройти подобный тест онлайн бесплатно (понятно, что без официального сертификата, чисто для себя) — буду благодарен, самому любопытно.
Думаю, бесплатно не получится (или я не в курсе о таком). Ведь тест включает в себя speaking, где нужен реальный человек для приема экзамена. Вряд ли работа этого человека может быть бесплатной.
Самое дешевое, наверное, взять урок у какого-нибудь репетитора, кто специализируется на тестах по английскому. Он сможет провести пробный тест. Стоить это будет, наверное, $20-50. Найти такого инструктора можно, например, на https://www.italki.com/
500 задач — это не золотая середина, это P90, если не больше. С 100-150 задачами можно легко проходить собеседования (не все, не всегда, но это и не требуется, так как во время поиска работы будет множество этапов и множество собеседований).
А сами Policies вы храните просто, как текст в БД, и по необходимости загружаете их (при обработки авторизационого запроса?), или там не большой итоговый размер, и вы держите все policies в памяти?
Каким образом легче?
Не совсем технический вопрос, но не пробовали ли вы решать эту проблему с точки зрения улучшения BlueStore? Если у Ceph действительно есть перфоманс проблемы с BlueStore/rocksdb, то по идее мейнтейнер (Red Hat?) будет заинтересован их решить. Возможно можно было законтрибьютить новый сторедж бекенд вместо rocksdb туда, или описать проблему и попросить помощи у мейнтейнера. Просто сейчас у вас появилось несколько новых сервисов, и сцилла. Не звучит, как бесплатное решение для поддержки.
Несколько параллельных инициатив за последние года:
проект Лум - виртуальные потоки. Способ делать асинхронное программирование на джаве, без сложного реактивного программирования.
Паттерн матчинг - инструмент для реализации Data-oriented программирования (описываем нашу предметную область, как records, и sealed classes/interfaces, а потом пишем логику, используя exhaustive switch).
Улучшение производительности за счет ряда проектов (Vector API, GC improvements).
Улучшение взаимодействия с нативным кодом (Project Panama) - как вызывать Си функцию (или любую другую с C ABI) без боли и приседаний.
Упрощения языка для начинающих программистов - как сделать так, чтобы первая программа на джаве не требовала IDE, build tool, и прочтения книжки, а можно было просто взять и написать main() функцию и какой-то код.
Сколько же в яндексе было проектов по перезду с Оракла на PG. Наверное, самый старый (или нет?) - от 2016 года - https://habr.com/ru/articles/321756/
Интересно, можно ли было бы сделать какой-то универсальный набор тулинга / шагов, чтобы все проекты внутри компании использовали их, а не начинали свой ресерч с шагов типа "подойдет ли нам Oracle GoldenGate".
А у вас в компании нет инициативы по переходу на YDB повсеместно? Например, как гугл переводит все внутренние проекты на google spanner.
(пока я читал статью, думал про вопрос выбора PG - мое изначальное предположение было, что YDB использует ваш сервис, и вы не хотели иметь циклическую зависемость друг на друга, поэтому решили выбрать PG; но тогда я бы спросил - что не обязательно использовать облачную YDB, и можно деплоить свой кластер YDB)
Спасибо за статью. Пара вопросов:
Вы используете https://github.com/open-policy-agent/opa-envoy-plugin , или что-то свое написали, и используете OPA как библиотеку?
Интересно было бы узнать, как вы распростряняете policy и data.
Вы генерируете Rego Policy на основе
auth.toml
?По какой визе вы уехали? H1B? Или O1?
Спасибо за статью. Есть ли у вас уже предположения, для каких нагрузок вы могли бы использовать OpenZFS в VK? Так кажется, что большинство современных БД (sql/очереди/s3) делают много аналогичных вещей - также считают чексуммы данных, пишут WAL, делают репликацию данных и тд. Выглядит так, что используя вместе с ними OpenZFS мы будем часто делать операции дважды.
Я слышал, что люди используют OpenZFS для тестовых стендов вместе с PostgreSQL, чтобы за счет COW получить за бесплатно идентичные базы данных. Есть ли какие-то еще интересные места для использования данной FS?
Если бы вам нужно было построить подобную систему с нуля не в 2016 году, а сейчас (2023), стали бы вы повторять это решение с построением системы на основе Tarantool, или уже бы взяли одну из готовых БД (если да, то какую)?
Так понятные же причины?
У меня нет каких-то маркетинговых исследований, доказывающих это. Говоря про рынок, я ссылался на то что языки (котлин, c# и потенциально GraalVM) вкладывают ресурсы своих разработчиков, для того чтобы поддержать этот таргет. Кроме того, в последнее время было довольно много конференций (как чисто по WASM, так и языковых), где опять таки WASM был популярным (это может быть просто хайп, а не реальный спрос, но, как один из сигналов — можно рассмотреть).
Кстати, вы больше пишите про запуск Java в браузерах. Но я вижу популярность (на уровней статей/докладов) у запуска WASM вне браузера (serverless и в виде плагинов, например — https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/wasm_filter )
Понятно, что JVM и dotnet — не лучшие платформы для WASM, но рынок требует, и разработчики пытаются реализовать такой таргет в своих рантаймах.
А чем WASI не "POSIX"?
Думаю, бесплатно не получится (или я не в курсе о таком). Ведь тест включает в себя speaking, где нужен реальный человек для приема экзамена. Вряд ли работа этого человека может быть бесплатной.
Самое дешевое, наверное, взять урок у какого-нибудь репетитора, кто специализируется на тестах по английскому. Он сможет провести пробный тест. Стоить это будет, наверное, $20-50. Найти такого инструктора можно, например, на https://www.italki.com/
Это на основе личных ощущений, или какой-то тест сдавался, на подобии IELTS?
Пожалуйста, прикладывайте ссылки на подкасты. Яндекс музыка открывается далеко не везде (например, из под VPN может не открыться, или не из РФ)
500 задач — это не золотая середина, это P90, если не больше. С 100-150 задачами можно легко проходить собеседования (не все, не всегда, но это и не требуется, так как во время поиска работы будет множество этапов и множество собеседований).
Полно таких историй. Достаточно открыть linkedin и поискать людей из России в фирмах из биг теха.
Интересно, не было ли проблем с GC GO у вас? Или вы пулы объектов используете, на горячем пути практически ничего не аллоцируете?
И традиционный вопрос в подобных постах — при дизайне системы не думали о том, чтобы взять язык без GC (C++/Rust)?
https://news.ycombinator.com/item?id=36618344 — тут были решения, которые векторизируются компилятором, и все становится сильно быстрее
А сами Policies вы храните просто, как текст в БД, и по необходимости загружаете их (при обработки авторизационого запроса?), или там не большой итоговый размер, и вы держите все policies в памяти?