Как стать автором
Обновить
0
0
Владислав @GeckoGreen

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

Отправить сообщение

RabbitMQ Streams для сбора и обработки телеметрии умного дома

Время на прочтение10 мин
Количество просмотров9.9K

Традиционно для сценариев поточной обработки с использованием Map-Reduce рассматриваются такие решения как Hadoop/Spark, либо используются конвейерные системы (например Kafka), для которых есть возможность реализовать концепцию потоков (streams) с помощью дополнительных инструментов (в случае с Kafka это Kafka Connect (для подключения к источникам и получателям потока) и Kafka Streams для реализации Map-Reduce на потоке сообщений.

Начиная с версии 3.9 RabbitMQ анонсировал поддержку нового типа очереди, оптимизированного для поточной обработки. В этой статье мы посмотрим на основные отличия очередей RabbitMQ от классического режима очереди сообщений, а также возможные сценарии использования (с примерами кода на Go).

Читать далее
Всего голосов 13: ↑12 и ↓1+12
Комментарии1

Архитектурные методы: что это и зачем они нужны

Время на прочтение7 мин
Количество просмотров10K

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


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


Читать дальше →
Всего голосов 7: ↑6 и ↓1+8
Комментарии2

Языковая механика escape analysis

Время на прочтение9 мин
Количество просмотров20K

Прелюдия


Это вторая из четырех статей в серии, которая даст представление о механике и дизайне указателей, стеков, куч, escape analysis и семантики значения/указателя в Go. Этот пост посвящен кучам и escape analysis.

Оглавление цикла статей:

  1. Language Mechanics On Stacks And Pointers (перевод)
  2. Language Mechanics On Escape Analysis
  3. Language Mechanics On Memory Profiling (перевод)
  4. Design Philosophy On Data And Semantics

Вступление


В первом посте из этой серии я рассказал основы механики указателя на примере, в котором значение распределяется по стеку между горутинами. Я не показывал вам, что происходит, когда вы разделяете значение в стеке. Чтобы понять это, вам нужно узнать о другой области памяти, где могут находиться значения: о «куче». С этим знанием вы можете начать изучать «escape analysis».
Читать дальше →
Всего голосов 4: ↑3 и ↓1+5
Комментарии1

Унифицируй это: как Lamoda делает единообразными свои Go сервисы

Время на прочтение14 мин
Количество просмотров18K

Мы широко используем микросервисную архитектуру, хоть и не считаем ее панацеей, и чуть больше 2 лет назад начали переходить на язык Go. Он сравнительно прост и, на мой взгляд, очень хорошо подходит для создания простых, небольших и быстрых микросервисов. Эта простота имеет и обратную сторону: из-за неё возникает множество способов решить одну и ту же задачу.


Казалось бы, насколько сильно может отличаться один микросервис, который ходит в базу данных, от другого микросервиса, который ходит в соседнюю базу данных? Например, одна команда использует Go 1.9, glide, стандартный database/sql и одну структуру проекта, а в это же время другая команда использует Go 1.13, modules, sqlx и, конечно же, другую структуру проекта.


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


Меня зовут Алексей Партилов, я техлид команды web-разработки в компании Lamoda. В этой статье я расскажу, как мы справляемся с разношерстностью около 40 наших микросервисов на Go. Статья будет полезна разработчикам, которые только вливаются в Go и не знают, с чего начать более сложный проект, чем “helloworld”.


image

Читать дальше →
Всего голосов 46: ↑40 и ↓6+48
Комментарии65

Некоторые тенденции в сфере хранения данных, на которые стоит обратить внимание

Время на прочтение6 мин
Количество просмотров3.5K
Мы знаем, что данные становятся все более ценным для бизнеса ресурсом. Известно и то, что объем генерируемых в мире данных будет расти в геометрической прогрессии. Но тогда возникает вопрос: где же компании собираются их хранить? С появлением новых технологий в этой отрасли стали происходить заметные изменения, которые окажут влияние на рынок корпоративных СХД.

Ожидается, что в скором времени резко вырастут объемы видеоматериалов и тех данных, которые собираются с различных датчиков. Последние тенденции приведут к изменениям в самом подходе к хранению информации и управлению ею. ИТ-администраторы и директора должны заранее планировать будущие изменения и быть к ним готовыми.
Читать дальше →
Всего голосов 6: ↑2 и ↓4+2
Комментарии1

Camunda external tasks — мощный инструмент для создания приложений с отказоустойчивой и масштабируемой архитектурой

Время на прочтение6 мин
Количество просмотров26K
image

В Тинькофф для разработки систем автоматизации бизнес-процессов мы используем фреймворк Camunda + Spring. Сами бизнес-процессы описываем с помощью BPMN (Business Process Management Notation) в виде блок-схем.

Наиболее часто используемый элемент на наших схемах — service tasks (прямоугольник с шестеренкой). Camunda поддерживает два способа выполнения service tasks:

  1. С помощью синхронного вызова java-кода.
  2. Создание external task.

Второй способ позволяет выполнять задачи с помощью внешних систем — например, если нужно вызвать одно camunda-приложение из другого или вообще делегировать работу в какую-либо внешнюю систему.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии3

Истории успеха Kubernetes в production. Часть 9: ЦЕРН и 210 кластеров K8s

Время на прочтение6 мин
Количество просмотров7.7K


На сегодняшний день ЦЕРН является одним из крупнейших пользователей Kubernetes в мире. Согласно недавней статистике, в этой европейской организации, стоящей за Большим адронным коллайдером (БАК) и рядом других известных научно-исследовательских проектов, запущено 210 кластеров K8s, обслуживающих одновременное выполнение сотен тысяч задач. Эта история успеха — о них.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии0

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность