Фоновые задачи на Faust, Часть I: Введение

https://habrastorage.org/webt/wo/6b/ui/wo6buieqgfwzr4y5tczce4js0rc.png

Как я дошёл до жизни такой?

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

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

Скажу так, проект очень интересный и вполне успешно работает в других приложениях нашей команды, да и сам автор говорит о том, что смог выкатить в прод, заюзав асинхронный пул. Но, к сожалению, мне это не очень подошло, так как обнаружилась проблема с групповым запуском задач (см. group). На момент написания статьи issue уже закрыта, однако, работа велась на протяжении месяца. В любом случае, автору удачи и всех благ, так как рабочие штуки на либе уже есть… в общем, дело во мне и для меня оказался инструмент сыроват. Вдобавок, в некоторых задачах было по 2-3 http-запроса к разным сервисам, таким образом даже при оптимизации задач мы создаём 4 тысячи tcp соединений, примерно каждые 2 часа — не очень… Хотелось бы создавать сессию на один тип задач при запуске воркеров. Чуть подробнее о большом кол-ве запросов через aiohttp тут.

В связи с этим, я начал искать альтернативы и нашёл! Создателями celery, а конкретно, как я понял Ask Solem, была создана Faust, изначально для проекта robinhood. Faust написана под впечатлением от Kafka Streams и работает с Kafka в качестве брокера, также для хранения результатов от работы агентов используется rocksdb, а самое главное — это то, что библиотека асинхронна.

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

Что будем делать?

Итак, в небольшой серии статей я покажу, как собирать данные в фоновых задачах с помощью Faust. Источником для нашего пример-проекта будет, как следует из названия, alphavantage.co. Я продемонстрирую, как писать агентов (sink, топики, партиции), как делать регулярное (cron) выполнение, удобнейшие cli-комманды faust (обёртка над click), простой кластеринг, а в конце прикрутим datadog (работающий из коробки) и попытаемся, что-нибудь увидеть. Для хранения собранных данных будем использовать mongodb и motor для подключения.

P.S. Судя по уверенности, с которой написан пункт про мониторинг, думаю, что читатель в конце последней статьи всё-таки будет выглядеть, как-то так:

https://habrastorage.org/webt/e5/v1/pl/e5v1plkcyvxyoawde4motgq7vpm.png

Требования к проекту

В связи с тем, что я уже успел наобещать, составим небольшой списочек того, что должен уметь сервис:

  1. Выгружать ценные бумаги и overview по ним (в т.ч. прибыли и убытки, баланс, cash flow — за последний год) — регулярно
  2. Выгружать исторические данные (для каждого торгового года находить экстремумы цены закрытия торгов) — регулярно
  3. Выгружать последние торговые данные — регулярно
  4. Выгружать настроенный список индикаторов для каждой ценной бумаги — регулярно

Как полагается, выбираем имя проекту с потолка: horton

Готовим инфраструктуру

Заголовок конечно сильный, однако, всё что нужно сделать — это написать небольшой конфиг для docker-compose с kafka (и zookeeper — в одном контейнере), kafdrop (если нам захочется посмотреть сообщения в топиках), mongodb. Получаем [docker-compose.yml](https://github.com/Egnod/horton/blob/562fa5ec14df952cd74760acf76e141707d2ef58/docker-compose.yml) следующего вида:

version: '3'  services:   db:     container_name: horton-mongodb-local     image: mongo:4.2-bionic     command: mongod --port 20017     restart: always     ports:       - 20017:20017     environment:       - MONGO_INITDB_DATABASE=horton       - MONGO_INITDB_ROOT_USERNAME=admin       - MONGO_INITDB_ROOT_PASSWORD=admin_password    kafka-service:     container_name: horton-kafka-local     image: obsidiandynamics/kafka     restart: always     ports:       - "2181:2181"       - "9092:9092"     environment:       KAFKA_LISTENERS: "INTERNAL://:29092,EXTERNAL://:9092"       KAFKA_ADVERTISED_LISTENERS: "INTERNAL://kafka-service:29092,EXTERNAL://localhost:9092"       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT"       KAFKA_INTER_BROKER_LISTENER_NAME: "INTERNAL"       KAFKA_ZOOKEEPER_SESSION_TIMEOUT: "6000"       KAFKA_RESTART_ATTEMPTS: "10"       KAFKA_RESTART_DELAY: "5"       ZOOKEEPER_AUTOPURGE_PURGE_INTERVAL: "0"    kafdrop:     container_name: horton-kafdrop-local     image: 'obsidiandynamics/kafdrop:latest'     restart: always     ports:       - '9000:9000'     environment:       KAFKA_BROKERCONNECT: kafka-service:29092     depends_on:       - kafka-service

Тут вообще ничего сложного. Для kafka объявили два listener’а: одного (internal) для использования внутри композной сети, а второго (external) для запросов из вне, поэтому пробросили его наружу. 2181 — порт zookeeper’а. По остальному, я думаю, ясно.

Готовим скелет проекта

В базовом варианте структура нашего проекта должна выглядеть так:

horton ├── docker-compose.yml └── horton     ├── agents.py *     ├── alphavantage.py *     ├── app.py *     ├── config.py     ├── database     │   ├── connect.py     │   ├── cruds     │   │   ├── base.py     │   │   ├── __init__.py     │   │   └── security.py *     │   └── __init__.py     ├── __init__.py     ├── records.py *     └── tasks.py *

*Всё что я отметил мы пока не трогаем, а просто создаём пустые файлы.**

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

Начнём с зависимостей и мета о проекте — pyproject.toml

Далее, запускаем установку зависимостей и создание virtualenv (либо, можете сами создать папку venv и активировать окружение):

pip3 install poetry (если ещё не установлено) poetry install

Теперь создадим config.yml — креды и куда стучаться. Сразу туда можно разместить и данные для alphavantage. Ну и переходим к config.py — извлекаем данные для приложения из нашего конфига. Да, каюсь, заюзал свою либу — sitri.

По подключению с монго — совсем всё просто. Объявили класс клиента для подключения и базовый класс для крудов, чтобы проще было делать запросы по коллекциям.

Что будет дальше?

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

Итак, а в этой самой следующей части мы:

  1. Напишем небольшой клиентик для alphavantage на aiohttp с запросами на нужные нам эндпоинты.
  2. Сделаем агента, который будет собирать данные о ценных бумагах и исторические цены по ним.

Код проекта

Код этой части

ссылка на оригинал статьи https://habr.com/ru/post/519882/

Как Data Science продает вам рекламу? Интервью с инженером Unity

Неделю назад в наших соцсетях выступал Никита Александров — Data Scientist в Unity Ads, где он улучшает алгоритмы конверсии. Никита сейчас живет в Финляндии, и кроме прочего он рассказал об IT-жизни в стране.

Делимся с вами расшифровкой и записью интервью

Меня зовут Никита Александров, я вырос в Татарстане и там же окончил школу, занимался олимпиадами по математике. После этого поступил на факультет компьютерных наук ВШЭ и там закончил бакалавриат. В начале 4 курса съездил на учебу по обмену, провел семестр в Финляндии. Мне там понравилось, я поступил в магистратуру университета Аалто, хотя не закончил ее полностью – я закончил все курсы и начал писать диплом, но ушел работать в Unity, не получив степень. Сейчас я работаю в Unity data scientist-ом, отдел называется Operate Solutions (раньше он назывался Monetization); непосредственно моя команда занимается доставкой рекламы. То есть, внутриигровое рекламы – той, которая выдается, когда вы играете в мобильную игру и нужно заработать дополнительную жизнь, например. Я работаю над улучшением конверсии рекламы – то есть, делаю так, чтобы игрок с большей вероятностью прошел по рекламе.

Как ты переехал?

Сначала я приехал в Финляндию учиться на семестр по обмену, после этого вернулся в Россию и закончил диплом. Потом я поступил на магистратуру в университет Аалто по machine learning / data science. Так как я учился по обмену, мне даже не пришлось сдавать экзамен по английскому; поступил легко, я знал, на что поступаю. Живу здесь уже 3 года.

Финский необходим?

Он необходим, если вы собираетесь учиться здесь на бакалавра. Очень мало программ на английском языке для бакалавров, нужен финский или шведский – это второй государственный язык, некоторые университеты обучают на шведском. Но в магистратуре и PhD большинство программ англоязычные. Если говорить про ежедневное общение и быт – тут большинство людей говорит на английском языке, примерно 90%. Люди нормально живут целыми годами (мой коллега живет вообще 20 лет) без финского языка.

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

Отличается ли качество обучения от университетов РФ? Дают ли всю необходимую базу для устройства джуниором?

Качество отличается. Как мне кажется, в России пытаются сразу давать много всего: сразу дифференциальные уравнения, дискретная математика и многое другое. На самом деле, нужно брать дополнительные материалы, в качестве курсовой или дипломной работы, что-то новое постигать самостоятельно, ходить на какие-то курсы. Здесь же мне было легко в магистратуре; я знал многое из того, что проходилось. Опять же, в Финляндии бакалавр – это еще не специалист, тут по-прежнему есть такое разделение. Вот если ты магистр, то можно устраиваться на работу. Я бы сказал, что в магистратуре в Финляндии важны социальные скиллы, важно участвовать, быть активным; есть исследовательские проекты. Если есть интересные для вас исследования, и вы хотите глубже копнуть, то можно получить контакты профессора, работать в этом направлении, развиваться.

То есть, ответ – «да», но нужно быть социально активным, цепляться за каждую возможность, если она есть. Один из моих друзей поехал работать в стартап в Долине – есть программа в университете, которая ищет подходящие стартапы и устраивает интервью. По-моему, потом он даже поехал в CERN.

Чем компания в Финляндии мотивирует сотрудников, какие плюшки?

Кроме очевидного (зарплаты), есть социальные плюшки. Например, количество декретного отпуска для родителей. Есть медицинские страховки, акции, опционы. Бывает необычное начисление отпускных дней. Ничего особенного, в основном.

У нас в офисе есть сауна, например.

Есть еще купоны – какое-то количество денег на обеды, на общественный транспорт, на культурно-спортивные мероприятия (музеи, спорт).

Что посоветовать гуманитарию для входа в IT?

Повторять школьный курс и поступать в ВШЭ? Часто прогеры имею математическую базу/олимпиады…

Я советую, конечно, подтянуть математику. Но не обязательно повторять школьный курс. Точнее, его надо повторять только в том случае, если не помните совсем ничего. Кроме того, надо определиться, в какое именно IT вы хотите пойти. Для фронтендера не обязательно знать математику: надо просто брать курсы по фронтенду и учиться. Моя подруга недавно решила записаться на курсы от компании Accenture, она сейчас учит Scala; она не гуманитарий, но опыта программирования у нее не было никакого. В зависимости от того, что вы хотите программировать и на чем, нужно разное количество математики. Конечно, для Machine Learning-специальности нужна математика, в том или ином ключе. Но, если вы хотите просто попробовать – есть много разных туториалов, открытой информации, мест, где можно поиграть с нейросетью или построить самостоятельно, или скачать готовую, поменять параметры и посмотреть, как она меняется. Все зависит от того, как сильна мотивация.

Если не секрет — зарплаты, опыт, на чем пишете?

Я пишу на Python — это универсальный язык для machine learning и data science. Опыт – был различный опыт; я был простым инженером в нескольких компаниях, был на стажировке несколько месяцев в Москве. Не было постоянной работы до Unity. Туда я пришел тоже как стажер, поработал стажером 9 месяцев, потом сделал перерыв, а теперь работаю уже год. Зарплата конкурентоспособная, выше медианной для региона. Начинающий специалист будет зарабатывать от 3500 EUR; в разных компаниях это разнится. В общем, 3.5-4 – начинающая зарплата.

Какие книги и туториалы посоветуете?

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

Туториалы — есть различные. Если вы хотите опробовать какой-то алгоритм – берите название алгоритма, метода, классы методов, и вбивайте в поиск. Что зайдет первой ссылкой, то и смотрите.

Сколько остается чистыми?

После налогов — надо брать налоги плюс 8% (которые как бы не налог, но налог) – остается 2/3 зарплаты. Ставка динамическая – чем больше зарабатываете, тем больше налог.

Какие компании обращаются за рекламой?

Нужно понимать, что Unity / Unity Ads занимаются рекламой мобильных игр. То есть, у нас есть ниша, мы очень хорошо разбираемся в мобильных играх, на Unity можно их создавать. Как только вы написали игру, вы хотите на ней заработать, и монетизация – один из способов.
Компании за рекламой могут обращаться любые – интернет-магазины, финансовые приложения разнообразные. Реклама всем нужна. Конкретно у нас основные клиенты – это разработчики мобильных игр.

Какие проекты лучше делать для повышения скиллов?

Хороший вопрос. Если мы говорим о data science, нужно прокачать себя через онлайн-курс (например, в Стэнфорде есть) или онлайн-университет. Есть разнообразные платформы, за которые нужно платить – например, Udacity. Там есть домашние задания, видео, менторство, но удовольствие это не из дешевых.

Чем уже ваши интересы (например, какой-нибудь reinforcement learning), тем сложнее найти проекты. Можно попробовать поучаствовать в Kegel-соревнованиях: заходите на kegel.com, там много различных соревнований по машинному обучению. Берете то, к чему уже приложен какой-то baseline; скачиваете и начинаете этим заниматься. То есть, много способов: можно заниматься самостоятельно, можно походить онлайн-курс – бесплатный или платный, можно участвовать в соревнованиях. Если вы хотите искать работу в Facebook, Google и так далее, то нужно научиться решать алгоритмические задачи – то есть, надо идти в LeetCode, набивать руку там для того, чтобы проходить собеседования.

Опишите краткий роадмап обучения Machine Learning?

Расскажу в идеале, не претендуя на универсальность. Вы сначала проходите математические курсы в универе, вам нужно знание и понимание линейной алгебры, теории вероятности и статистики. После этого вам кто-то рассказывает про ML; если вы живете в крупном городе, то в нем должны быть школы, предлагающие курсы по ML. Самая известная – ШАД, Школа анализа данных Яндекса. Если вы в нее пройдете, и вы сможете проучиться два года, то вы получите всю базу ML. Вам нужно будет дальше оттачивать скилл в исследованиях и в работе.

Если и другие варианты: например, у Тинькова есть курсы по машинному обучению с возможностью трудоустроиться в Tinkoff после окончания. Если вам это удобно – записывайтесь на эти курсы. Бывают разные пороги вхождения: например, в ШАД есть вступительные испытания.
Если вы не хотите идти на обычные курсы, можно начать с онлайн-курсов, которых более чем достаточно существует. Это зависит от вас; если у вас хороший английский — хорошо, найти будет легко. Если нет, то, возможно, тоже что-то да есть. Те же лекции ШАДа есть в открытом доступе.
После получения теоретической базы можно идти вперед – на стажировки, исследования и так далее.

Можно ли самому обучиться machine learning? Встречали ли вы такого программиста?

Я думаю, да. Только нужно иметь сильную мотивацию. Кто-то может сам выучить английский язык, например, а кому-то надо идти на курсы, и только так этот человек сможет выучиться. С ML все так же. Хотя я не знаю такого программиста, который бы научился всему сам, но, возможно, у меня просто мало знакомых; все мои друзья как раз обучались обычным способом. Я не берусь говорить, что 100% нужно обучаться так: главное – ваше желание, ваше время. Конечно, если у вас не математической базы, придется потратить много времени, чтобы наработать ее.
Вдобавок к пониманию того, что значит – быть data scientist’ом: я сам не занимаюсь data sci
ence как research. Наша компания – это не лаборатория, где мы разрабатываем методы, закрываясь на полгода в лаборатории. Я непосредственно работаю с production, и мне нужны инженерные скиллы; мне нужно писать код, иметь инженерные навыки, чтобы понимать, что как работает. Люди часто опускают эти особенности, когда говорят про data science. Есть множество историй о том, как люди с PhD пишут нечитаемый ужасный неструктурированный код, у них возникают большие проблемы после того, как они решают пойти в индустрию. То есть, в совокупе с Machine Learning не нужно забывать про инженерные скиллы.

Data science – это позиция, не говорящая о себе. Вы можете устроиться компанию, которая занимается data science, и вы станете писать SQL-запросы, или будет простая логистическая регрессия. В принципе, это тоже уже machine learning, но в каждой компании есть свое понимание того, что такое data science. Например, моя подруга в Facebook рассказала, что data science – это когда люди просто запускаю статистические эксперименты: кликают на кнопочки, собирают результаты и потом предоставляют их. При этом я сам улучшаю методы конверсии и алгоритмы; в некоторых других компаниях эта специальность может называться machine learning engineer. В разных компаниях все может быть по-разному.

Какие библиотеки используете?

Мы используем Keras и TensorFlow. Можно и PyTorch — это не принципиально, она позволяет делать все те же вещи – но в какой-то момент было принято решение использовать именно их. При существующем продакшене трудно менять.

В Unity есть не только data scientist’ы, которые оптимизируют алгоритмы конверсии, но и GameTune – это такая вещь, где вы улучшаете метрики в плане прибыли или retention с помощью различных туториалов. Допустим, кто-то поиграл в игру и сказал: мне непонятно, мне неинтересно – забросил; кому-то слишком легко, наоборот – он тоже забросил. Поэтому нужен GameTune – это инициатива, которая адаптирует сложность игр по способностям геймера, или по истории игр, или по тому, как часто он что-то покупает внутри приложений.

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

Можно поговорить непосредственно про Unity Ads. Если вы решили написать игру, и решили опубликовать ее и заработать, то придется решить некоторые трудные задачи.

Я начну с примера: вот Apple анонсировал запуск iOS 14. В ней потенциальный геймер может зайти в приложение и сказать, что не хочет шарить свой Device-ID кому-либо. При этом он соглашается с тем, что качество рекламы ухудшится. Но в то же время это сложная задача для нас, потому что, если мы не сможем идентифицировать вас, то мы не сможем собирать определенные метрики, и просто будем иметь меньше информации о вас. Оптимизировать работу в условиях мира, который больше стремится к конфиденциальности, к защите данных, для data scientist’а все труднее — данных становится все меньше, как и доступных методов.

Помимо Unity, есть гиганты вроде Facebook и Google – и, казалось бы, зачем нужен Unity Ads? Но нужно понимать, что в разных странах эти рекламные сети могут работать по-разному. Условно говоря, есть Tier 1-страны (Америка, Канада, Австралия); есть Tier 2-страны (Азия), есть Tier 2 (Индия, Бразилия). Рекламные сети могут работать в них по-разному. Также имеет значение используемый вид рекламы. Обычный ли вид, или реклама «за вознаграждение» (rewardable) – когда, например, чтобы продолжить с того же места после game over, нужно просмотреть рекламу. Разные виды рекламы, разные люди. В каких-то странах одна рекламная сеть лучше работает, в каких-то – другая. И еще, как дополнительное замечание – я слышал, что интеграция AdMob, которая у Google, сложнее, чем Unity.

То есть, если вы создали игру в Unity, то вы автоматически интегрированы в Unity Ads. Разница – в простоте интеграции. Что можно посоветовать: есть такая вещь, как медиация; в ней есть разные позиции: можно устанавливать позиции в «waterfall» (водопаде) для постановки рекламных placements. Можно сказать, например, так: хочу, чтобы по приоритету показывался сначала Facebook, потом Google, потом Unity. И, если Facebook и Google решат не показывать рекламу, то Unity покажет. Чем больше у вас рекламных сетей – тем лучше. Это можно рассматривать как инвестирование, но вы инвестируете сразу в разное количество рекламных сетей.
Еще можно рассказать про то, что имеет значение для успеха рекламной кампании. На самом деле, здесь нет ничего особенного: нужно следить, чтобы реклама соответствовала контенту вашего приложения. Можно, например, поискать в Youtube «app ads mafia» и посмотреть, насколько реклама может не соответствовать контенту. Еще есть приложение Homescapes (или Gardenscapes?). Может иметь значение то, правильно ли настроена кампания: чтобы реклама на английском языке показывалась англоязычной аудитории, на русском – русскоязычной. Очень часто бывают ошибки в этом: люди просто не разбираются, устанавливают наобум.
Вам нужно создавать различные прикольные видео, подумывать над форматом, думать, как часто обновлять их. В крупных компаниях этим занимаются специальные люди – user acquisition managers. Если вы – одиночный разработчик, то вам это не нужно, или нужно по достижению определенного роста.

Какие дальнейшие планы?

По-прежнему работать там, где я сейчас. Может быть, я получу финское гражданство – это возможно после 5 лет проживания (если меньше 30 лет, нужно еще и отслужить, если человек не сделал этого в другой стране).

Почему переехали в Финляндию?

Да, это не слишком популярная страна для переезда IT-специалиста. Многие переезжают семьями, потому что здесь хорошие социальные плюшки – детские сады, ясли, больше декретные отпуска для любого из родителей. Почему переехал я сам – мне тут просто понравилось. Могло бы понравиться где угодно, наверно, но Финляндия довольно близкая по культурному менталитету; различия с Россией есть, конечно, но есть и сходство. Она маленькая, безопасная, и никогда не будет вовлечена в какие-то большие заварушки. Это не условная Америка, где может попасться президент, которого не любят, и начнется что-то из-за этого; и не Великобритания, которая вдруг захочет выходить из ЕС, и тоже будут проблемы. Тут всего 5 миллионов человек. Даже с эпидемией коронавируса Финляндия справилась достаточно достойно, по сравнению с другими странами.

Собираетесь возвращаться в Россию?

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

Про магистратуру в Финляндии

Ничего особенного. Если говорить про контент лекций – это просто набор слайдов; есть теоретический материал, семинар с практикой, где оттачивается эта теория, потом – экзамен по всем этим материалам (теория и задачи).

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

Работа в Москве и в Финляндии отличается сильно?

Я бы не сказал. Те же IT-компании, те же задачи. В культурно-бытовом плане удобно, работа – недалеко, город маленький. Продуктовый магазин стоит в одной минуте от меня, зал – в трех, работа – двадцать пять, от двери до двери. Мне нравятся размеры; я раньше не жил в таких уютных городах, где все под рукой. Красивая природа, пляж рядом.

Но в плане работы, я думаю, все плюс-минус одинаково. Что касается рынка IT-труда Финляндии, касаемо machine learning – некоторые замечают, что для специальностей, связанных с ML, требуют PhD или хотя бы магистров. Я считаю, что в обозримом будущем это изменится. Тут до сих пор есть предубеждение: если ты бакалавр, то ты не можешь быть сформированным специалистом, а вот если магистр – у тебя есть специализация, и ты можешь работать. А если PhD, то уже все совершенно круто, и ты можешь делать IT-исследования. Хотя, как мне кажется, даже люди, которые закончили PhD, могут быть совершенно не интегрированы в индустрию, и могут не понимать, что индустрия – это не только алгоритмы и методы, но и бизнес. Если вы не понимаете бизнес, то я не знаю, как вы сможете врастать компанию и понимать, как работает вся эта мета-система.

Поэтому идея переехать в магистратуру и сразу найти работу – это довольно сложно; если вы переезжаете в Финляндию с бакалаврским дипломом – вы ноунейм. Нужно иметь какой-нибудь опыт работы, чтобы сказать: я работал в Яндексе, в Mail, в Лаборатории Касперского и т.д.

Как прожить на 500 EUR в Финляндии?

Прожить можно. Если вы студент, нужно понимать, что у вас не будет стипендии; ЕС может предоставлять деньги, но только для тех, кто учится по обмену. Если вы поступаете в университет Финляндии, то нужно понимать, как вы будете жить. Есть несколько вариантов; если вы поступаете в магистратуру с PhD-треком (то есть, одновременно в магистратуру и на PhD), то с первого же года вы будете делать исследовательскую работу и получать за это деньги.
Небольшие, но студенту будет хватать. Второй вариант – подработка; например, я был учебным ассистентом по определенному курсу и зарабатывал 400 EUR в месяц.

Кстати, в Финляндии хорошие студенческие бенефиты. Можно заселиться в общагу за 300 или 200 EUR за комнату, можно питаться в студенческих столовых с фиксированной ценой (все, что вы накладываете себе в тарелку – 2.60 EUR). Некоторые стараются завтракать, обедать и ужинать в столовой за 2.60; если так делать, то можно прожить на 500 EUR. Но это самый минимум.

Куда можно поступить, если хочешь быть программистом?

Можно поступить на факультет компьютерных наук ВШЭ, МФТИ — ФИВТ и ФУПМ, или ВМК МГУ, например. Можно что-то и в Петербурге найти. Но я не в курсе точной ситуации с обучением machine learning, попробуйте загуглить эту тему.

Хочу сказать, что, чтобы стать программистом, мало одного обучения. Важно быть социальным человеком, приятным в общении, чтобы как можно быстрее заводить контакты. Контакты могут решать. Персональные рекомендации в компанию дают ощутимое преимущество перед другими претендентами, можно просто пропускать скрининг рекрутера.

Естественно, жизнь в Финляндии не вполне сказочная – переехал, и сразу все стало круто. Любой мигрант все равно встречается с культурным шоком. В разных странах – разные люди, разный менталитет, разные законы. Например, здесь нужно самому заботиться о налогах – заполнять самому налоговую карту; покупка машины, аренда жилья – многое работает по-другому. Это достаточно трудно, если вы решите переехать. Народ здесь не сказать чтобы очень социальный, погода как в Санкт-Петербурге – в ноябре-декабре может быть по 1-2 солнечных дня. Некоторые даже впадают в депрессию здесь; они приезжают с уверенностью, что они здесь очень нужны, но это оказывается не так, и нужно зарабатывать деньги, играя по чужим правилам. Это всегда риск. Всегда есть вероятность, что вам придется вернуться, потому что вы просто не приживетесь.

Какой совет дашь начинающим программистам?

Я советую попробовать как можно больше, понять, что вас действительно интересует. Старайтесь не зацикливаться в одной сфере: попробуйте Android-разработку, frontend/backend, Java, Javascript, ML, другие вещи. И, как я уже сказал, нужно быть активным, идти на контакт, интересоваться, что происходит; что делают друзья, коллеги, знакомые. Ходите на воркшопы, семинары, лекции, знакомьтесь с людьми. Чем больше у вас связей, тем проще понять, что интересного происходит.

Где еще используется Unity, кроме игр?

Unity старается перестать быть чисто игровым движком. Например, он используется для рендеринга CGI-роликов: если вы разрабатываете машину, например, и хотите сделать рекламу – вы, конечно, захотите сделать хороший ролик. Я слышал, что Unity используется и для архитектурного планирования. То есть, везде, где нужна визуализация, можно применять Unity. Если погуглить, можно найти интересные примеры.

Если хотите задать вопрос – не стесняйтесь находить меня во всех социальных сетях.


Что было ранее

  1. Илона Папава, Senior Software Engineer в Facebook — как попасть на стажировку, получить оффер и все о работе в компании
  2. Борис Янгель, ML-инженер Яндекса — как не пополнить ряды стремных специалистов, если ты Data Scientist
  3. Александр Калошин, СEO LastBackend — как запустить стартап, выйти на рынок Китая и получить 15 млн инвестиций.
  4. Наталья Теплухина, Vue.js core team member, GoogleDevExpret — как пройти собеседование в GitLab, попасть в команду разработчиков Vue и стать Staff-engineer.
  5. Ашот Оганесян, основатель и технический директор компании DeviceLock — кто ворует и зарабатывает на ваших персональных данных.
  6. Сания Галимова, маркетолог RUVDS — как жить и работать с психиатрическим диагнозом. Часть 1. Часть 2.
  7. Илья Кашлаков, руководитель фронтенд-отдела Яндекс.Денег — как стать тимлидом фронтендеров и как жить после этого.
  8. Влада Рау, Senior Digital Analyst в McKinsey Digital Labs — как попасть на стажировку в Google, уйти в консалтинг и переехать в Лондон.
  9. Ричард «Левелорд» Грей, создатель игр Duke Nukem 3D, SiN, Blood — про личную жизнь, любимые игры и о Москве.
  10. Вячеслав Дреер, гейм-дизайнер и продюсер игр с 12-летним стажем — про игры, их жизненный цикл и монетизацию
  11. Андрей, технический директор GameAcademy — как видеоигры помогают прокачивать реальные навыки и найти работу мечты.
  12. Александр Высоцкий, ведущий PHP-разработчик Badoo — как создаются Highload проекты на PHP в Badoo.
  13. Андрей Евсюков, заместитель CTO в Delivery Club — про найм 50 синьоров за 43 дня и о том, как оптимизировать фреймворк найма
  14. Джон Ромеро, создатель игр Doom, Quake и Wolfenstein 3D — байки о том, как создавался DOOM
  15. Паша Жовнер, создатель тамагочи для хакеров Flipper Zero — о своем проекте и другой деятельности
  16. Татьяна Ландо, лингвист-аналитик в Google — как научить Google-ассистента человеческому поведению
  17. Путь от джуна до исполнительного директора в Сбербанке. Интервью с Алексеем Левановым

ссылка на оригинал статьи https://habr.com/ru/company/ruvds/blog/519884/

Непобедимый

Время действия близкое будущее… Ближе чем вы думаете…

— Первая цель уничтожена! Объект летит в направлении следующих целей! — инженер оторвал взгляд от мониторов и с восторгом повернулся к круглому столу, за которым сидели члены комиссии – генерал, два полковника молодой и старый, капитан и человек в штатском, сидевший чуть поодаль остальных. Из сидящих за столом он единственный кто был не в военной форме. Собственно, присутствующие и сами все видели, вся комната наблюдения за ходом испытаний была увешена мониторами, но инженер, как всякий творец, видя успехи детища не мог сдержать восторга. Столько сил и времени потрачено и теперь все идет к завершению. Рядом вперед-назад нервно прохаживался глава департамента перспективных разработок корпорации «Дедал», усидеть на месте он не мог, так как сегодня по результатам испытаний комиссия должна была решить, продолжить финансирование проекта «Непобедимый» или искать других подрядчиков. А в желающих запустить руку в карман министерства обороны недостатка не было. Председатель комиссии- генерал, которому было 50, а на вид все семьдесят лет бесстрастно смотрел на мониторы.

-Прекрасно, — в голосе генерала восторга не было. -Ваш чудо-истребитель только что уничтожил сарай с манекенами. Радоваться будем, когда будут пройдены остальные этапы испытаний. Я думаю не стоит напоминать остальным присутствующим, что программа разработки очень затянулась, а бюджет был сильно превышен. Если испытания пройдут неудачно, то вашей компании, — он обратился к главе департамента, — придется инвестировать свои средства, чтобы закончить работы, либо, -генерал сделал эффектную паузу — мы передадим проект другой корпорации. Хватит расходовать деньги налогоплательщиков. Конгресс очень недоволен, а на прошлой неделе я имел крайне неприятную беседу с министром обороны.

Инженер кивнул и вернулся к своему рабочему месту, наблюдать за состоянием объекта. До входа в зону поражения следующих целей еще было время, поэтому молодой полковник потянулся к вазе с конфетами, стоявшей на столе. Старый полковник о чем-то разговаривал с капитаном, генерал все так же бесстрастно взирал на мониторы. Только невыразительный, «серый» человек в штатском, единственный из комиссии кто был мало знаком с авиацией, с интересом изучал содержимое папки, лежащей перед ним. Точно такие же папки лежали перед каждым из членов комиссии-перед началом испытаний их раздал глава департамента разработок. На каждой из папок красовалась буква D, внутреннюю часть которой из левого верхнего угла в правую нижнюю часть перечеркивала молния – логотип корпорации «Дедал», крупнейшего производителя и поставщика вооружения и военной техники. Под буквой D был написан слоган корпорации: «Мы приближаем будущее». Учитывая, что она производила в основном высокоточное оружие, слоган наводил на весьма невеселые мысли. Хотя возможно, он больше относился к разработкам в космической отрасли, где данная корпорация так же отметилась. Габариты, показатели массы, параметры тяги и скорости, система радиоэлектронной борьбы, новейшая система маскировки – взгляд «серого» человека скользил по характеристикам и возможностям машины, — так, а вот теперь становится интересней. Из вооружения кроме ракет класса «воздух-воздух» и «воздух-земля» была еще пушка Гаусса, как замена обычных авиационных пушек. И самое важное, все это было под управлением искусственного интеллекта. Новейший многофункциональный истребитель следующего поколения не управлялся пилотом, в кабине даже места для человека предусмотрено не было.

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

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

— Только для принятия стратегических решений, — глава департамента ничуть не смутился от заданного вопроса, и казалось, даже ждал его. — Но воевать скоро будут машины. И сама тактика ведения боя с их появлением изменится. Вспомните ближний маневренный воздушный бой — противостояние самолетов на предельно малых расстояниях. Этот вид боя считается одним из самых сложных, так как он очень скоротечен и предъявляет высочайшие требования к выносливости и скорости принятия решений пилотом. Он активно практиковался в первую и вторую мировую войну, но уже после второй мировой считался устаревшим, так как потом стало появляться ракетное вооружение с самонаведением, системы радиолокации, способные обнаруживать летящие цели на больших расстояниях, а самолеты стали летать быстрее. Сейчас самое главное, как можно быстрее обнаружить противника на радаре и сбить его ракетой.

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

Военные сидящие за столом молчали. Генерал поморщился.

— С этим никто не спорит, реакция у компьютера лучше человеческой. Но все это было на симуляторе,- было заметно, что генералу не приятно признавать победу машины над человеком. — Управление настоящим самолетом, пусть и в учебном бою совершенно другое дело. Посмотрим как ваш искусственный интеллект будет управлять машиной в небе.
— Объект вошел в зону поражения средств ПВО, — инженер снова комментировал происходящее на мониторах. — Если они обнаружат его, то с земли будет произведен ракетный залп по нашему истребителю.

Генерал плотоядно ухмыльнулся. — Сейчас чудо-самолету наступит конец и можно будет поехать домой, -подумал он.

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

Глава департамента разработок подбоченился и гордо обвел взглядом комиссию. — Второй этап завершен успешно. Скоро переходим к третьему этапу.

Третий этап представлял собой реальный воздушный бой с группой беспилотных летательных аппаратов управляемых автоматически, а также дистанционно людьми. Но глава департамента не сомневался в победе своей разработки. «Дедал» имел свои испытательные полигоны, экспериментальный истребитель с легкостью расправлялся с беспилотными аппаратами.
Слишком сильно он их превосходил. Примерно так же, как орел превосходит курицу. От такого сравнения главе департамента захотелось рассмеяться, но он сдержался. Пока рано, вот удачно закончим испытания, вот тогда и будем смеяться!

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

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

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

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

Инженер напряженно проверял приходящие от истребителя данные. — Да, он применил электромагнитную пушку и сжег всю их электронику на расстоянии.

— Ну что ж, так было даже быстрее, -сказал глава департамента, похоже из всего умеющий извлекать выгоду.
Генерал все также хмуро смотрел на мониторы. Голос решил подать старый полковник.
— А почему ваш истребитель не стал расстреливать беспилотники из пушки?
Глава департамента умоляюще посмотрел на инженера в ожидании ответа.
— Решение о том, какое оружие использовать принимает бортовой искусственный интеллект. Как показали эксперименты, он пытается принимать самое оптимальное решение в каждой ситуации исходя из поставленной задачи. Похоже, что в данной ситуации самым оптимальным решением было не тратить ракеты или заряды пушки Гаусса, а просто сжечь беспилотники электромагнитным импульсом. По крайней мере, так посчитал бортовой компьютер. Я могу с пульта давать команды на истребитель, но просто не успел это сделать, и решение принял он сам.
— Как он определил, что это были беспилотники? -не унимался старый полковник.
— Он способен самостоятельно искать цели и после нахождения их идентифицировать, -инженер казалось вот-вот лопнет от гордости за свое детище.
— Понятно, -похоже ответы старого полковника вполне устроили.
— Господа! — голос снова подал глава департамента. — Мы переходим к последнему, четвертому этапу. Он самый интересный и самый напряженный. Напоминаю, что четвертый этап, это учебный бой с людьми. Лучшими летчиками-истребителями нашего времени. Поединок машины и человека! Пусть и учебный, но все же. Это фундаментальное противостояние, я бы даже сказал противопоставление плоти и металла!
— Звено из четырех наших истребителей вылетело на перехват объекта, -сообщил офицер. — Их сопровождает еще один самолет, который будет осуществлять видеосъемку и запись боя.
— Четыре на одного! — глава департамента широко улыбался, — честный поединок!
Генерал задумчиво смотрел на мониторы. На одном из них было видно как двигаются пять точек.
— Сейчас ваши истребители будут обнаружены его радаром, после этого он примет решение сократить дистанцию и начать бой. Вашим людям для его обнаружения также придется сократить дистанцию, так как его система маскировки совершеннее, чем у противников. А дальше, начнется учебный ближний маневренный бой, -обратился к генералу глава департамента разработок.
— Отключи ему все вооружение, — обратился глава департамента к своему инженеру,- пусть предполагаемое применение оружия пишется в логи.
— Уже сделано, — сказал инженер не отрываясь от монитора.
— Господа! — снова обратился глава департамента к комиссии. Прошу обратить внимание на эти мониторы, -он указал на ряд самых крупных мониторов под потолком. На земле установлены камеры для наблюдения и записи тренировочного воздушного боя. Смотрите и наслаждайтесь! Бортовой искусственный интеллект установленный в экспериментальный истребитель прошел обучение на 11 миллиардах симуляций боя. Мы использовали так называемое обучение с подкреплением, когда искусственные нейронные сети, лежащие в основе бортового искусственного интеллекта получают сигналы от среды, в которой им приходится действовать. С каждой новой симуляцией, сети учатся находить оптимальное решение. Это, помноженное на высочайшую скорость реакции машины, на нечувствительность к запредельным перегрузкам при маневрировании на больших скоростях и на новейшие инженерные решения, примененные при конструировании этого истребителя, делают данную машину непобедимой! Добро пожаловать в новый мир!
— Экспериментальный истребитель обнаружил предполагаемых противников! — инженер снова комментировал события.
— Звено наших истребителей разделяется на пары ведущий- ведомый, но они все еще не могут обнаружить противника, -печальным голосом сообщил офицер, отрываясь от мониторов.
— Наш истребитель обнаружил невозможность применения ракет и сокращает дистанцию для начала ближнего маневренного боя, — инженер продолжал комментировать.
— Истребители обнаружили противника, сокращают дистанцию, ведущие и ведомые разделяются для атаки с разных сторон, — судя по голосу офицер немного приободрился.
Члены комиссии с интересом смотрели на мониторы, на которых происходил учебный воздушный бой. Экспериментальный истребитель корпорации совершал фигуры высшего пилотажа. Он то крутился плашмя вокруг своей оси, совершая поиск противников с минимальным разворотом, то снижал скорость практически до нуля, всей плоскостью фюзеляжа поднимаясь вертикально, словно потревоженная змея перед броском на жертву. Снова и снова он ускользал от атакующих его самолетов, быстро менял высоту и направление, заходя противнику «на хвост». Выглядело все это завораживающе. Сомнений в его превосходстве уже не оставалось. Комиссия неотрывно смотрела на мониторы, но ровно до того момента, пока экспериментальный истребитель вдруг резко не начал набирать высоту, скрывшись за облаками.
— Что он делает? — в голосе генерала послышалась тревога, он перевел взгляд с мониторов и уставился на главу департамента разработок.
Глава департамента повторил вопрос генерала и сам уставился на инженера. Тот как прикованный не отрывал взгляд от монитора куда приходили данные от истребителя.
— Что он делает? — с нажимом в голосе повторил глава департамента, — зачем он стал набирать высоту?
Инженер оторвался от монитора и перевел взгляд на комиссию, он был бледен, как полотно. — Кажется я догадываюсь, — инженер заикался, — он совершал учебный бой, с отключенным вооружением, мы так уже делали, когда проверяли, и все было нормально, мы так уже делали- повторял инженер.

Глава департамента подскочил к бледному, как смерть инженеру, схватил его за шиворот и начал трясти. — Хватит мямлить! -он повысил голос. -Что делает этот чертов истребитель?
— Он набирает достаточную высоту, потом отключит силовую установку, двигатели и после этого начнет пикировать вниз. Затем, в падении, он включит все заново. Отключение нужно для перезапуска всех систем, он пытается включить оружейные системы, которые мы ему заблокировали!
— Их же нельзя включить без нас черт возьми! — глава департамента уже не сдерживался, переходя на крик.
— Теоретически можно, если отключить силовую установку и произвести перезапуск всех систем, после этого система самодиагностики произведет проверку и включит вооружение. И тогда… он продолжит бой, но уже с включенными оружейными системами…
— Уводите оттуда самолеты, немедленно! -генерал вскочил с места и отдавал указания офицеру, сидящему за монитором, — передайте станции наземного управления, пусть вводят в бой передвижные ракетные комплексы! Все что есть в округе! Надо сбить эту тварь! Что у него осталось из вооружения? — генерал обращался уже к инженеру. — Попробуйте его отключить, посадить на землю, не знаю, сделайте черт возьми что-нибудь! Вы же можете отправлять ему команды!

Опомнившись, инженер, стоявший до этого как вкопанный бросился к своему месту.
— Из вооружения у него осталась пара ракет — «воздух-воздух» и «воздух-земля», одна термобарическая бомба и пушка Гаусса из которой он сегодня еще не стрелял…
— Куда он летит? — теперь бледен как полотно был глава департамента.
— Он перезапустил все системы и перестал присылать данные. Я думаю он будет преследовать истребители, с которыми был учебный бой. И атаку начнет, скорее всего, с запуска ракеты «воздух- воздух»… — инженер смотрел в монитор расширившимися от ужаса глазами.
Все перевели взгляд на монитор, где было видно пять двигающихся точек — четыре истребителя и самолет производивший видеосъемку учебного боя. Через несколько секунд точек стало четыре. Генерал выругался.
— Генерал- сэр! Станция наземного управления передает, что ракетные комплексы пытаются обнаружить противника.
— Пусть пытаются! — лицо генерала покраснело, казалось, его сейчас хватит удар. -Вы… Вы двое… — он подбирал слова глядя на инженера и главу департамента. — Вы двое пойдете у меня под трибунал! — видимо про то, что оба были гражданскими он забыл.
— Я им больше не управляю, — потерянно сообщил инженер. — После перезапуска всех систем, он заблокировал прием команд извне.
— Такое возможно? — голос подал молодой полковник.
— Возможно, ответил за инженера глава департамента, -в рамках радиоэлектронной борьбы, истребитель пресекает попытки перехвата управления или получения от него информации, — он устало опустился на стоящий рядом стул. — Похоже, что теперь он воспринимает нас как врагов…
— Смотрите! — старый полковник указывал на монитор, где одна за другой гасли точки. — Он уничтожил оставшиеся три истребителя и самолет сопровождения.
— Я приказываю немедленно эвакуироваться из здания! Сейчас же! — генерал был по прежнему красным как рак. — Где ваш чертов истребитель, что он делает сейчас?
— Из-за новейшей системы маскировки его не видно на радарах, а данные от него ко мне больше не приходят, — инженер обвел блуждающим взглядом помещение.
— Я боюсь он где-то близко, -сказал старый полковник, — уходим отсюда.
Все присутствующие в помещении быстро двинулись на выход из центра управления.
— На улице есть машины, -генерал продолжал раздавать указания. — Мы сядем в них и поедем в бункер, который находится в паре километров отсюда. Там пересидим, пока не собьют ваш чертов истребитель.

Дойти до выхода они не успели, потому что на здание центра управления, который они спешно собирались покинуть упала авиационная бомба с термобарическим зарядом. Экспериментальный истребитель помнил из какой точки ему отправлялись управляющие команды.

20.07.2019-08.09.2020

ссылка на оригинал статьи https://habr.com/ru/post/519886/

«Обзор возможностей Kubespray»: Отличие оригинальной версии и нашего форка

23 сентября 20.00 МСК Сергей Бондарев проведёт бесплатный вебинар «Обзор возможностей Kubespray», где расскажет, как готовят kubespray, чтобы получилось быстро, эффективно и отказоустойчиво.

Сергей Бондарев расскажет отличие оригинальной версии и нашего форка:

Отличие оригинальной версии и нашего форка.

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

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

  • собирал кластер etcd;
  • устанавливал кублеты, генерил сертификаты, конфиги и токены доступа для статик подов контролплейна и прочих служебных компонентов;
  • создавал сервис аккаунты для рабочих узлов и подключал их в кластер.

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

В итоге разница между кластерами, созданными моим форком и оригинальным — это kube-proxy и сроки действия сертификатов.

В моем форке все осталось, как было раньше — куб-прокси запускается, как статик под, сертификаты выписываются на 100 лет.

В Kubeadm куб-прокси запускается, как daemonset, а сертификаты выписываются на 1 год, и их надо периодически продлевать. kubeadm наконец-то научился это делать одной командой.

Разница небольшая, и на сегодня мы используем оба варианта.

Особенности (недостатки) при промышленной эксплуатации:

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

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

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

Например у меня была проблема с кубадмом, когда он падал в момент добавления второго и третьего мастера, и после этого кубспрей делал kubeadm reset на узле, и пробовал добавить мастер еще раз.

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

Opensource как он есть.

Всё это и многое другое на бесплатном вебинаре «Обзор возможностей Kubespray» 23 сентября 20.00 МСК.

Присоединяйтесь!

ссылка на оригинал статьи https://habr.com/ru/company/southbridge/blog/519890/

RTX 3080 – Мечта, которой нет в наличии

Выход поколения Ampere ждали все. Предыдущий Turing оказался слишком дорогим и совершенно посредственным, а подоспевшие позже карты с припиской Super только больше запутали публику. Все с нетерпением ожидали анонса поколения, которое станет поводом для долгожданного апгрейда с блестящей линейки Pascal. И Ampere при всех слухах, тизерах и ожиданиях обещал стать именно тем, на что так рассчитывали фанаты – мечтой, которая вот-вот станет реальностью.

image

Для начала напомним технические фишки Ampere. Согласно официальной презентации, которая состоялась 1 сентября, главными особенностями нового поколения стали сильно возросшие цифры CUDA-ядер (более чем в 2 раза превышающие значения Turing) и новое поколение RT-ядер, с помощью которого NVidia обещала сократить падение производительности при использовании трассировки лучей. Также особый акцент был сделан на применение технологии мультисемплинга DLSS 2.0, дебют которой в Control и Death Stranding стал настоящим потрясением для большинства игроков. Неудивительно, что именно эта технология выступает одним из ключевых преимуществ решений NVidia перед видеокартами AMD.

image

При этом у новинок есть и технические недостатки. Производством чипов Ampere на 8-нм техпроцессе занимается компания Samsung, технические решения которой значительно уступают конкурентным предложениям TSMC, 7-нм пластины которой значительно плотнее в плане бюджета транзисторов на квадратный мм, и предлагают лучшие характеристики производительности на ватт. Использование компромиссного варианта корейской компании привело к тому, что размер чипов оказался довольно велик, а энергопотребление, несмотря на смену техпроцесса, в среднем на 40% превышает значения аналогичного сегмента видеокарт поколения Turing (произведенного на базе 12-нм техпроцесса TSMC). Именно возросшие аппетиты стали причиной появления того необычного высокотехнологичного кулера референсных моделей, призванного сохранить тишину и обеспечить эффективное отведение более чем 300 Вт тепла. Напомним, что RTX 3080 в базовом исполнении без разгона потребляет 320 Вт, а при повышении частот это значение может возрасти до 360 Вт или даже выше. Для юзера это означает лишь одно – простеньким блоком питания от предыдущей сборки уже не обойтись.

image

Теперь к презентации. В рамках анонса Дженсен Хуанг сделал серьезные заявления, сообщив о двукратном преимуществе новой RTX 3080 над своей предшественницей – RTX 2080 (не путать с Super). Смазанные графики без упоминания кадров в секунду, а также постоянное подчеркивание 4К, трассировки лучей и технологии DLSS во многом заставили пользователей насторожиться – а что если сырая производительность новинки далека от ожиданий? Многочисленные утечки и ожидания пророчили Ampere трехкратный, а то и четырехкратный прирост производительности с трассировкой лучей (а некоторые даже предполагали, что необычная компоновка кулера NVidia связана с присутствием на задней стороне платы отдельного RT-чипа, отвечающего за обработку таких инструкций). В этом плане официальная презентация оказалась куда скромнее, — 80% прироста в сравнении с 2080, но даже такой шаг нельзя назвать разочарованием в рамках всего одного поколения.

Наконец, вишенкой на торте стала цена – всего $700 за «новую флагманскую видеокарту» (как назвал её сам Дженсен) выглядело чуть ли не подарком на фоне $1000 цены 2080Ti, но многие люди в индустрии сразу подчеркнули, что первые поставки будут очень скромными, поэтому спешить с выводами не нужно. Кто-то не послушал, и ринулся в панике продавать свои карты за бесценок, уповая на удачу. На деле же всё оказалось куда хуже, но об этом чуть позже.
16 сентября обзоры RTX 3080 появились в сети. Впечатления от реальных сравнений 3080 vs 2080 оказались неоднозначными – с одной стороны, преимущество над картой поколения Turing практически никогда не превышало 50-70%, с другой – благодаря расширенному до 10 Гб буферу видеопамяти новинка получила возможность блеснуть более существенным приростом в 4К. Помните официальную презентацию Nvidia, где в Doom Eternal новинка отрывалась от предшественницы аж на 60 фпс? Выяснилось, что выбор этой игры был не случаен – при использовании пресета графики Ultra Nightmare в 4К-разрешении игра потребляет ровно 10 Гб видеопамяти, из-за чего RTX 2080 с 8 Гб на борту испытывает острую нехватку буфера, позволяя RTX 3080 без труда показать колоссальный прирост в более чем 100%. К несчастью для будущих владельцев, эта игра оказалась единственным исключением.

image

Неизбежное сравнение с 2080Ti показало, что карта всего на 25-30% быстрее прошлого флагмана, что стало еще одним поводом для жесткой критики. Сырой 50% прирост на фоне прошлого лидера позволил бы задать совершенно новую планку производительности, недостижимую для AMD, однако теперь загадочные карты на базе RDNA2 получили возможность навязать серьезную конкуренцию серии Ampere.

Но куда большей неожиданностью стали результаты тестирования RTX 3080 в играх с поддержкой RTX и DLSS 2.0. Оказалось, что Ampere практически не получила прироста эффективности в работе алгоритмов трассировки лучей по сравнению с первым поколением RT-ядер в Turing – новинки в среднем были быстрее в работе со сложными эффектами и освещением всего на 20%, а в ряде случаев цифры были даже ниже этих значений. Во многом разница в общем fps здесь достигается не благодаря продвинутым RT-ядрам нового поколения, а за счет банального повышения общей сырой производительности видеокарты – это логично, но где же обещанные на презентации 80%? Даже в сравнение с 2080 разница чаще всего лежала всё в той же плоскости 50-70%. Digital Foundry, как Вы могли?

Многие возразят, сказав – «Да черт с ним, посмотрите на цену! Мы платим куда меньше, а получаем на 30% больше, чем раньше!». Но так ли это? Здесь всё куда сложнее, чем может показаться на первый взгляд. После старта продаж 17 сентября все RTX 3080 были разобраны за считанные минуты, и уже в скором времени на Ebay стали появляться очень «выгодные» предложения по покупке предзаказа, ставки на которые иногда превышали реальную стоимость новинки в десятки раз.

image
Источник

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

В России RTX 3080 тоже появилась – и стоила по 85 тысяч рублей (при рекомендованной цене в 63 490 рублей). Встречались и более доступные модели, но и они предусматривали наценку в 15 тысяч рублей или выше. Кто-то уже советовал присмотреться ко всем известному немецкому магазину в желании купить заветную карту, но не обольщайтесь – несмотря на вкусные цены, их, как и везде, до сих пор нет в наличии.

Что можно сказать об этом релизе? Дженсен Хуанг, как и всегда, заставил тысячи людей ахнуть и бежать в магазины, занимая очередь и перепродавая предзаказы за бешеные деньги. RTX 3080 оказалась далеко не такой производительной, как все ожидали, трассировка лучей всё еще превращает 100 фпс в 50, а очень приятная цена также далека от реальности, как второй чип на обратной стороне платы. К счастью, когда-нибудь всё образуется, и мы надеемся, что еще к Черной Пятнице магазины пополнят свои складские запасы и предложат оголодавшим ПК-боярам долгожданные новинки поколения Ampere. Ну а если нет — всегда будет возможность купить Big Navi.

Не ведитесь на громкие обещания, не верьте в красивый маркетинг, и никогда не продавайте железо за бесценок из-за красивых заявлений.

ссылка на оригинал статьи https://habr.com/ru/post/519892/