Pull to refresh
1
0

Пользователь

Send message

Визуализация Apache Kafka Streams с помощью Quarkus Dev UI

Reading time5 min
Views3.1K

В этой статье показано, как можно визуализировать Apache Kafka Streams в реактивных приложениях с помощью пользовательского интерфейса разработчика в Quarkus (Quarkus Dev UI).

Quarkus - Java платформа, предоставляющая расширение для использования Kafka Streams API, а также позволяющая реализовывать приложения потоковой обработки, основанные непосредственно на Kafka.

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments0

Типы проб в Kubernetes: проверяем работоспособность систем

Reading time6 min
Views2.8K
В Kubernetes существует три типа проб, предназначенных для проверки работоспособности подов. В этой статье рассказано, как использовать эти пробы, а также объяснены отличия между ними.

Пробы — важнейшая возможность Kubernetes, обеспечивающая удобное предоставление услуг, что незаменимо для конечных пользователей. По своей сути пробы регулярно отслеживают, может ли под адекватно обрабатывать трафик, и при необходимости принимают меры, например, выполняют перезапуск.
Читать дальше →
Total votes 14: ↑13 and ↓1+18
Comments1

Программирование 10 лет спустя: мы протёрли пыль с хрустального шара

Level of difficultyEasy
Reading time7 min
Views7.1K
— Скажи триста!
— Триста
— С днём программиста!


Предсказывать что-либо — дело неблагодарное, последние лет пять преподали нам отличный урок. Однако, если вы встретите программиста конца 80-х — начала 90-х, то он наверняка расскажет вам, сколько раз за 30 лет умирала страшно невостребованная профессия программиста. Её убивали декларативные языки, платформы разработки, low-code, no-code, теперь очередь AI. А программисты знай себе живут, раскаляют рынок зарплат, придумывают новые языки программирования и пишут тот самый искусственный интеллект, который и должен уничтожить программирование как деятельность. Потому что знают — здесь, как с врачами скорой помощи: что бы в мире ни случилось, без разработчиков ничего не обойдётся. Или… нет? В общем, давайте посмотрим в будущее. Мы под это дело даже КДПВ нагенерили (надеемся, вы не генерируете код, который выглядит, как этот кот).


Начнём, конечно, с главного. Ну как с главного — с самого заметного и обсуждаемого. Как известно, пустая бочка громче всех звенит.
Читать дальше →
Total votes 33: ↑30 and ↓3+40
Comments8

Собеседуем компании правильно

Level of difficultyEasy
Reading time4 min
Views4.5K

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

Читать далее
Total votes 10: ↑4 and ↓60
Comments5

Следующий уровень автоматизации Kubernetes. Создаем свой оператор

Reading time20 min
Views6K

Оператором в Kubernetes принято называть развертывание, которое самостоятельно управляет ресурсами кластера, регистрирует новые Custom Resource Definition (CRD) и, в некоторых случаях, добавляется для наблюдения за существующими ресурсами (через механизмы Dynamic Admission Control). В этой статье на примере создания оператора для развертывания и управления кластером Aerospike мы попробуем разобраться с этапами создания оператора, способами взаимодействия с кластером и проблемами, с которыми можно встретиться в реальной практике. Всех практикующих DevOps и желающих поднять автоматизацию развертывания своих сервисов на новый уровень приглашаю под кат.

Читать далее
Total votes 12: ↑9 and ↓3+7
Comments0

Давайте работать с proto ошибками правильно :)

Level of difficultyEasy
Reading time5 min
Views4.8K

В программировании всегда есть несколько способов решения одной и той же проблемы. Но не все они одинаково эффективны. Сегодня поговорим о способах обработки ошибок в gRPC — удачных и не очень.

Разобраться подробнее
Total votes 21: ↑20 and ↓1+22
Comments2

Задача коммивояжёра в общем виде. Наибыстрейшее точное решение

Level of difficultyEasy
Reading time6 min
Views15K

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

Тут я хочу подытожить все опробованные подходы и выбрать лучший по моему мнению.

Читать далее
Total votes 36: ↑35 and ↓1+42
Comments29

Памятка по BPMN и BPMN-диаграммам

Level of difficultyEasy
Reading time7 min
Views31K

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

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

Читать далее
Total votes 49: ↑47 and ↓2+60
Comments35

Как запускать WebAssembly-приложения в Kubernetes с помощью Deckhouse

Level of difficultyEasy
Reading time8 min
Views2K

Запускать Wasm-приложения в ванильном Kubernetes затруднительно, так как есть неудобства в настройке сред выполнения на рабочих узлах. Штатных средств недостаточно, чтобы легко конфигурировать узлы. Конечно, можно сконфигурировать один узел руками. Но если нужно обкатать различные рантаймы или большое количество приложений, то хочется максимально просто масштабировать кластер и управлять узлами декларативно. Поэтому я решил запустить Wasm-приложение в Deckhouse Kubernetes Platform (DKP). Эта платформа упрощает развёртывание и управление кластерами Kubernetes.

В этой статье я покажу, как запускать Wasm-приложения в Kubernetes с использованием DKP. Мы настроим окружение, установим необходимые компоненты и запустим простой WebAssembly-модуль.

Читать далее
Total votes 17: ↑17 and ↓0+23
Comments0

Использование алгоритма Бойера-Мура-Хорспула в Java с примером решения задачи с LeetCode

Level of difficultyEasy
Reading time4 min
Views2.8K

Алгоритм Хорспула используется для нахождения подстроки в строке. Например, у нас есть строка «The game is over» и подстрока «over». Алгоритм Хорспула вернет значение первого вхождения подстроки «over» в строку «The game is over», а именно 12. 

Фактически, данный алгоритм является упрощенным алгоритмом Бойера-Мура, который, считается работает лучше, чем стандартный алгоритм на случайных текстах, но в худшем случае его скорость равна |needle| * |haystack| вместо 3 х |haystack|. 

Тем не менее, для восприятия, на мой взгляд, он гораздо проще.

Итак, погнали.

Условие задачи с leetcode: https://leetcode.com/problems/find-the-index-of-the-first-occurrence-in-a-string/description/

Как работает алгоритм?

Строка и подстрока совмещаются по первому символу, и начинаются сравниваться от последнего символа к первому.

Для примера возьмем строку: «aabcdadbc» и подстроку «adb»

Совмещаются строки следующим образом (слева направо):

Читать далее
Total votes 3: ↑3 and ↓0+6
Comments2

Три оттенка Kubernetes Operator, или чем слушает Prometheus

Level of difficultyMedium
Reading time33 min
Views2.9K

Это ещё не туториал, но относительно подробный гайд о том, как компоненты Операторов взаимодействуют с Kubernetes API на уровне кода (Golang), чтобы реализовать заложенную в них логику для автоматизации вполне определённых практических задач. И да, всем известно, максимальный уровень автоматизации работы в Кубернетес ограничен лишь желанием самих разработчиков избавиться от рутины в близкой для них предметной области, потому я разделил текст на три части, чтобы вы могли без промедления промотать к наиболее актуальной, в которой узреете нечто достойное вашего внимания:

1. Кастомные ресурсы - мониторы Прометеус-оператора
2. Информеры и контроллеры
3. Сайдкар-Инжекторы с помощью аннотаций и вебхуков

Читать далее
Total votes 6: ↑4 and ↓2+3
Comments0

Единственное руководство, необходимое для успешной сдачи экзамена CKAD(Certified Kubernetes Application Developer)

Level of difficultyMedium
Reading time4 min
Views6.3K

12 июня 2022 года я сдал экзамен CKAD. Изначально объем знаний, необходимых для сдачи этого экзамена, был пугающим, но с правильной подготовкой я справился. В этой статье делюсь опытом, ресурсами и советами, которые помогут вам успешно подготовиться к экзамену CKAD.

Читать далее
Total votes 4: ↑4 and ↓0+5
Comments16

Популярные ошибки в Golang и как их избежать

Level of difficultyEasy
Reading time15 min
Views11K

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

Читать далее
Total votes 24: ↑24 and ↓0+27
Comments7

Асинхронный веб: WebSocket, Server-Sent Events, Long Polling и Short Polling

Level of difficultyMedium
Reading time13 min
Views13K

Веб-разработка часто требует реализации механизмов обновления контента на странице в реальном времени. Существуют различные сценарии, где это необходимо, например, отображение прогресса выполнения тяжелых задач на бекенде, обновление каких-либо часто меняющихся данных, будь то курсы валют или мониторинг какой-то активности, чаты, различные уведомления. Эти сценарии объединяет одна общая особенность: источник события необходимости обновления данных находится не на клиентской стороне, поэтому мы хотим получать события с бекенда. В данной статье мы рассмотрим четыре популярных подхода к реализации этой функциональности: WebSocket, Server-Sent Events (SSE), Long Polling и Short Polling.
Мы проанализируем каждый метод, выявим их плюсы, минусы и сложность реализации.

Читать далее
Total votes 17: ↑15 and ↓2+18
Comments11

Как мы работаем со Stateful в Kubernetes: особенности и подводные камни

Level of difficultyMedium
Reading time15 min
Views6.5K

Всем привет! На связи Олег Сапрыкин, технический директор по инфраструктуре и тимлид DevOps-команд во «Фланте». В марте 2024 года мы с Андреем Радыгиным (ex-главный архитектор по внедрению Deckhouse) выступили на конференции DevOpsConf. Эта статья — текстовый вариант нашего доклада о развитии и нашем опыте использования Stateful в Kubernetes.

Мы рассказали, как оценивать Stateful-компонент, прежде чем запускать его в Kubernetes, показали нюансы работы с такими приложениями, а также поделились особенностями конфигурирования и опытом использования некоторых Stateful-операторов — ClickHouse, Redis, Kafka, PostgreSQL и MySQL.

Читать далее
Total votes 37: ↑36 and ↓1+51
Comments4

4 частых вопроса на собеседовании по части Kubernetes, с которыми может столкнуться каждый. Часть 1

Level of difficultyEasy
Reading time7 min
Views9.7K

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

Начнем с основной архитектуры Kubernetes и роли основных компонентов.

Читать далее
Total votes 15: ↑8 and ↓7+7
Comments8

Поддержка Null в Protobuf

Reading time9 min
Views25K

Что значит значение равно null?

Проблема в том, что null может обозначать разные вещи в разных контекстах:

- Null — это null.

- Null — значение опционально / не установлено.

- Null — значение по умолчанию.

- Null — перепутано с другим значением.

Чтобы избежать этой путаницы, разработчики protobuf решили не сериализовать null. Вместо этого protobuf принуждает вас использовать одну из явных стратегий, избегая тем самым семантической путаницы в вашем Protobuf / gRPC API.

Читать далее
Total votes 11: ↑8 and ↓3+9
Comments2

Разбираемся в новом роутинге в Go 1.22

Reading time5 min
Views9.7K

В начале февраля 2024 года вышел Go 1.22. Вот, что нового и интересного принёс новый релиз: сделали более безопасное поведение переменных в циклах, добавили функции-итераторы в качестве rangefunc-эксперимента и улучшили шаблоны роутинга. В этой статье я сфокусируюсь на последнем, самом долгожданном, для многих, обновлении — шаблонах http-роутинга.

Читать дальше →
Total votes 15: ↑14 and ↓1+19
Comments3

Работа с Kubernetes: поднимаем локальный кластер и деплоим в него приложения

Reading time5 min
Views15K

Павел Агалецкий, ведущий разработчик юнита Platform as a Service Авито, написал, как поднять кластер Kubernetes на локальном компьютере Mac с помощью подручных инструментов, а потом задеплоить в него простейшие приложения.

Читать далее
Total votes 12: ↑10 and ↓2+9
Comments5

Реализация параллельной быстрой сортировки при помощи ForkJoinPool

Reading time2 min
Views11K

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


Есть 100 млн. чисел, каждое из которых от 0 до 1млрд.
Нужно отсортировать по возрастанию.
В самом начале программа случайно их заполняет, а потом сортирует.
Читать дальше →
Total votes 23: ↑15 and ↓8+7
Comments42

Information

Rating
Does not participate
Location
North Vancouver, British Columbia, Канада
Date of birth
Registered
Activity