Search
Write a publication
Pull to refresh
1
0
Send message

Стратегии деплоя в Kubernetes: rolling, recreate, blue/green, canary, dark (A/B-тестирование)

Reading time5 min
Views91K
Прим. перев.: Этот обзорный материал от Weaveworks знакомит с наиболее популярными стратегиями выката приложений и рассказывает о возможности реализации наиболее продвинутых из них с помощью Kubernetes-оператора Flagger. Он написан простым языком и содержит наглядные схемы, позволяющие разобраться в вопросе даже начинающим инженерам.


Схема взята из другого обзора стратегий выката, сделанного в Container Solutions

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

Более короткие и частые развертывания имеют следующие преимущества:

  • Сокращается время выхода на рынок.
  • Новые функции быстрее попадают к пользователям.
  • Отклики пользователей быстрее доходят до команды разработчиков. Это означает, что команда может дополнять функции и исправлять проблемы более оперативно.
  • Повышается моральный дух разработчиков: с большим количеством функций в разработке интереснее работать.
Читать дальше →

Книга «Знакомство с PyTorch: глубокое обучение при обработке естественного языка»

Reading time10 min
Views7.8K
image Привет, Хаброжители! Обработка текстов на естественном языке (Natural Language Processing, NLP) — крайне важная задача в области искусственного интеллекта. Успешная реализация делает возможными такие продукты, как Alexa от Amazon и Google Translate. Эта книга поможет вам изучить PyTorch — библиотеку глубокого обучения для языка Python — один из ведущих инструментов для дата-сайентистов и разработчиков ПО, занимающихся NLP. Делип Рао и Брайан Макмахан введут вас в курс дел с NLP и алгоритмами глубокого обучения. И покажут, как PyTorch позволяет реализовать приложения, использующие анализ текста.

В этой книге • Вычислительные графы и парадигма обучения с учителем. • Основы оптимизированной библиотеки PyTorch для работы с тензорами. • Обзор традиционных понятий и методов NLP. • Упреждающие нейронные сети (многослойный перцептрон и другие). • Улучшение RNN при помощи долгой краткосрочной памяти (LSTM) и управляемых рекуррентных блоков • Предсказание и модели преобразования последовательностей. • Паттерны проектирования NLP-систем, используемых в продакшене.
Читать дальше →

Julia и нейронные сети: Flux

Reading time11 min
Views9.7K


Прошло чуть больше года, с тех пор как MIT объявил о релизе высокопроизводительного языка общего назначения Julia. С тех пор язык набирает популярность: он используется в более чем 1500 университетах (в некоторых преподается в качестве первого ЯП), а области применения охватывают от медицинской диагностики и планирования космических миссий до таких насущных проблем, как оптимизация трафика школьных автобусов.


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


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

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

Миграция на инфраструктуру async-await в Rust

Reading time7 min
Views9.5K

birds migration
img source


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


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

Как не переписать проект на Rust

Reading time25 min
Views16K

Как только вы переступаете через болевой порог Борроу-Чекера и осознаёте, что Rust позволяет вытворять невообразимые (и порой опасные) в других языках вещи, вас может постигнуть настолько же непреодолимое желание Переписать Всё на Rust. Хоть и в лучшем случае это банально непродуктивно (бессмысленное разбазаривание усилий на несколько проектов), а в худшем — приводит к уменьшению качества кода (ведь с чего вы считаете себя более опытным в области применения библиотеки, чем её изначальный автор?)


Гораздо полезнее будет предоставить безопасный интерфейс для оригинальной библиотеки, повторно используя её код.

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

Что изучают на специальности Data Science в зарубежных вузах

Reading time4 min
Views11K

«Будь то компания, предоставляющая финансовые услуги, которая хочет снизить риски, или ритейлер, пытающийся предсказать поведение покупателей, сценарий применения ИИ и машинного обучения основан на эффективной стратегии использования данных», — слова Рёхея Фуджимаки, основателя компании dotData и самого молодого научного сотрудника в истории 119-летней IT-корпорации NEC.


С ростом спроса, растет и количество программ Data Science в университетах. Какие модули изучают студенты, какие визовые возможности предусмотрены для выпускников вузов — разбираемся ниже.

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

Архитектура EBA aka реактивность на всю катушку

Reading time14 min
Views9K

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



По моему мнению, все популярные ныне архитектуры — MVP, MVVM и даже MVI — уже давно на арене и не всегда заслуженно. Разве у них нет недостатков? Я вижу их немало. Мы у себя решили, что хватит это терпеть, и (пере)изобрели новую, максимально асинхронную архитектуру.

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

Khronos Group создала унифицированный репозиторий с примерами использования Vulkan

Reading time2 min
Views5K

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



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

Книга Алана Тьюринга и загадочная записка — Научный детектив

Reading time30 min
Views11K

Оригинал перевода в моём блоге

Как ко мне попала эта книга?


В мае 2017 года я получил электронное письмо от моего старого учителя средней школы по имени Джордж Раттер, в котором он писал: «У меня есть копия большой книги Дирака на немецком языке (Die Prinzipien der Quantenmechanik), которая принадлежала Алану Тьюрингу, и после того как я прочел вашу книгу Создатели идей (Idea Makers), мне показалось само собой разумеющимся, что вы именно тот человек, которому она нужна». Он объяснил мне, что получил книгу от другого (к тому времени умершего) моего школьного учителя Нормана Рутледжа, о котором я знал, что он был другом Алана Тьюринга. Джордж закончил свое письмо фразой: «Если вам нужна эта книга, я мог бы вручить ее вам в следующий раз, когда вы приедете в Англию».

Спустя пару лет в марте 2019 года я действительно прибыл в Англию, после чего договорился с Джорджем о встрече за завтраком в небольшом отеле в Оксфорде. Мы ели, болтали и ждали, пока еда уляжется. Затем настал подходящий момент для обсуждения книги. Джордж сунул руку в портфель и вытащил довольно скромно оформленный, типичный академический томик середины 1900-х годов.



Я открыл обложку, размышляя, не может ли на ней быть с обратной стороны надписи: «Собственность Алана Тьюринга» или чего-то в этом духе. Но, к сожалению, это оказалось не так. Тем не менее к ней была приложена достаточно выразительная записка на четырех листах от Нормана Рутледжа к Джорджу Раттеру, написанная в 2002 году.

Я знал Нормана Рутледжа, когда еще был учеником средней школы в Итоне в начале 1970-х годов. Он был учителем математики по прозвищу «Чокнутый Норман». Он был приятным во всех отношениях преподавателем и рассказывал бесконечные байки о математике и о всяких других занимательных вещах. Он был ответственным за то, чтобы школа получила компьютер (программируемый с помощью перфоленты шириной с парту) — это был самый первый компьютер, который я когда-либо использовал.
Читать дальше →

Перешел с Terraform на CloudFormation — и пожалел

Reading time9 min
Views8.7K

Представлять инфраструктуру в виде кода в повторяемом текстовом формате — простая лучшая практика для систем, с которой не нужно мышевозить. За этой практикой закрепилось название — Infrastructure as Code, и пока что для ее осуществления, особенно в AWS, есть два популярных инструмента: Terraform и CloudFormation.



Сравниваю опыт работы с Terraform и CloudFormation


До прихода в Twitch (он же Amazon Jr.) я трудился в одном стартапе и года три использовал Terraform. На новом месте я тоже вовсю использовал Terraform, а потом компания продавила переход на все а-ля Amazon, включая CloudFormation. Я усердно разрабатывал лучшие практики и для того, и для другого, и оба инструмента использовал в очень сложных рабочих процессах в масштабах организации. Позднее, вдумчиво взвесив последствия перехода с Terraform на CloudFormation, я убедился, что Terraform, наверное, — лучший выбор для организации.

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

Стриминг видеозвонков по RTMP

Reading time6 min
Views7.1K

Сегодня стриминг-платформы на пике популярности, так как миллионы талантливых людей регулярно делятся своими знаниями – читай, используют стриминг на всю катушку. Так как этот рынок растет, то существует и масса приложений, которые могут стримить видео в реальном времени, используя камеру смартфона или ноутбука. Возможно, вы тоже хотите внедрить в ваше приложение такую функциональность; если так, то спешим обрадовать – теперь Voximplant позволяет прокидывать видеозвонки по RTMP в любой CDN, который поддерживает этот протокол.

Эта функциональность стала возможна благодаря новому модулю VoxengineStreamingAgent. Под катом вас ждут 5 шагов по настройке этой интеграции, добро пожаловать!
Читать дальше →

Пишем собственный воксельный движок

Reading time11 min
Views25K
image

Примечание: полный исходный код этого проекта выложен здесь: [source].

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

После выпуска первоначального концепта Task-Bot [перевод на Хабре] я почувствовал, что меня ограничивает двухмерное пространство, в котором я работал. Казалось, что оно сдерживает возможности емерджентного поведения ботов.

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

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

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

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

Конспект по «Машинному обучению». Математический анализ. Градиентный спуск

Reading time3 min
Views11K


Вспомним математический анализ


Непрерывность функции и производная


Пусть $E \subseteq \mathbb{R}$, $a$ — предельная точка множества $E$ (т.е. $a \in E, \forall \varepsilon > 0 \space\space |(a - \varepsilon, a + \varepsilon) \cap E| = \infty$), $f \colon E \to \mathbb{R}$.

Определение 1 (предел функции по Коши):

Функция $f \colon E \to \mathbb{R}$ стремится к $A$ при $x$, стремящемся к $a$, если

$\forall \varepsilon > 0 \space\space \exists \delta > 0 \space\space \forall x \in E \space\space (0 < |x- a| < \delta \Rightarrow |f(x)- A| < \varepsilon).$


Обозначение: $\lim\limits_{E \ni x \to a}f(x) = A$.
Читать дальше →

Реализация шлюза P2P операций перевода с карты на карту

Reading time4 min
Views23K
Для своего проекта мне потребовалось реализовать возможность перевода с карты на карту. Для официального подключения к интерфейсу любого банка необходимо заключение договора и выполнение ряда условий. Поэтому было принято решение сделать шлюз к публичной странице банка. Для этих целей были выбраны два банка Тинькофф и БИН Банк предоставляющие возможность перевода на “свои” карты без комиссии. Подробней о тарифах и ограничениях на перевод вы можете ознакомиться на соответствующих страницах банков. В этой статье краткое описание работы шлюза, реализующего функциональность приема платежей на карту.

Требуется реализовать перевод с любой карты на заранее выбранную карту, с поддержкой процедуры авторизации 3DSecure. 3DSecure это защищенный протокол авторизации пользователей для CNP-операций (без присутствия карты). Подробней вы можете почитать на специализированных сайтах, ниже на схеме приведена упрощенная схема, как это работает с точки зрения пользователя.

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

Делаем крутой sticky-эффект для слайдера на React

Reading time7 min
Views18K

Есть много разных библиотек для реализации слайдера со всеми возможными эффектами. Для React одни из лучших это: ReactSlick и Swiper. Но когда для моего проекта потребовался горизонтальный sticky-эффект, то ничего подходящего не нашлось.



В этой статье мы попробуем поэтапно создать такой слайдер, возможно он вам тоже понадобится!

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

Как я пришел к формальной спецификации RISC-V процессора на F#

Reading time8 min
Views8.2K

Томными зимними вечерами, когда солнце лениво пробегало сквозь пелену дней — я нашел в себе силы заняться реализацией давней мечты: разобраться как же устроены процессоры. Эта мечта привела меня к написанию формальной спецификации RISC-V процессора. Проект на Github


image

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

Периодическое обновление данных

Reading time4 min
Views5.4K
Сразу хочу оговорится, что наш код выполняется в виртуальной среде(машине) .NET Framework которая в свою очередь исполняется на операционной системе общего назначения, поэтому говорить о какой либо точности даже в пределах 1-2 мс мы не будем. Но тем не менее попытаемся сделать все от зависящие, чтобы увеличить временную точность.

Зачастую в нашей программе, возникает необходимость обновление какой-либо информации c определенным временным интервалом. В моем случаи это было обновление снапшотов (изображений) с ip камер. Зачастую бизнес логика приложения устанавливает перед нами определенные ограничения частоты обновления данных. Для это время составляет 1 секунда.
Решение в лоб — это установить Thread.Sleep(1000)/Task.Await(1000) после запроса снапшота.

static void Getsnapshot()
{
  var rnd = new Random()
  var sleepMs = rnd.Next(0, 1000);
  Console.WriteLine($"[{DateTime.Now.ToString("mm:ss.ff")}] DoSomethink {sleepMs} ms");
  Thread.Sleep(sleepMs);
}

while (true)
{
  Getsnapshot();
  Thread.Sleep(1000);
}

Но срок выполнения нашей операции — недетерминированная величина. Поэтому имитация взятия снапшота выглядит примерно так:
Читать дальше →

Открытый вебинар «Основы MongoDB»

Reading time6 min
Views9.9K
Друзья, очередной запуск курса «Базы данных» состоится уже завтра, поэтому мы провели традиционный открытый урок, запись которого вы можете посмотреть здесь. В этот раз поговорили о популярной БД MongoDB: изучили некоторые тонкости, рассмотрели основы работы, возможности и архитектуру. А также коснулись некоторых User Cases.



Вебинар провёл Иван Ремень, руководитель направления серверной разработки в «Ситимобил».


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

HTTP/3: разрушение основ и дивный новый мир

Reading time8 min
Views55K
Вот уже больше 20 лет мы смотрим веб-странички по протоколу HTTP. Большинство пользователей вообще не задумывается о том, что это такое и как оно работает. Другие знают, что где-то под HTTP есть TLS, а под ним TCP, под которым IP и так далее. А третьи – еретики – считают, что TCP – это прошлый век, им хочется чего-то более быстрого, надёжного и защищённого. Но в своих попытках изобрести новый идеальный протокол они вернулись к технологиям 80-х годов и пытаются построить на них свой дивный новый мир.

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

Information

Rating
Does not participate
Location
Херсон, Херсонская обл., Украина
Registered
Activity