Pull to refresh
0
0
Владислав @GeckoGreen

User

Send message

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

Reading time10 min
Views9.2K

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

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

Читать далее
Total votes 14: ↑13 and ↓1+12
Comments1

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

Reading time7 min
Views9.2K

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


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


Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments2

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

Reading time9 min
Views18K

Прелюдия


Это вторая из четырех статей в серии, которая даст представление о механике и дизайне указателей, стеков, куч, 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».
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments1

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

Reading time14 min
Views18K

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


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


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


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


image

Читать дальше →
Total votes 60: ↑54 and ↓6+48
Comments65

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

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

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

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

Reading time6 min
Views25K
image

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

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

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

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

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

Reading time6 min
Views7.6K


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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity