Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Мобильное API, лайфхаки для MVP, микросервисы – в программе Hot Mobile&Backend в Санкт-Петербурге

SimbirSoftРазработка мобильных приложенийУчебный процесс в ITКонференцииМикросервисы

Запускаем офлайн-митап для разработчиков Mobile и Backend в Санкт-Петербурге! Мероприятие стартует 24 апреля в пространстве Freedom (залы «Библиотека» и Brandroom). В программе 7 докладов наших экспертов, общение и ответы на вопросы, лучшие из которых мы по традиции отметим призами.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры366
Комментарии 3

Создаем микросервисную архитектуру вместе с Apache Kafka и .NET Core 2.0

.NETC#
Из песочницы

Доброго времени суток! Apache Kafka – очень быстрый распределенный брокер сообщений, и сегодня я расскажу как его “готовить” и реализовать с его помощью простую микросервисную архитектуру из консольных приложений. Итак, всем, кто хочет познакомиться с Apache Kafka и опробовать ее в деле, добро пожаловать под кат.
Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Просмотры57.3K
Комментарии 28

Модули вместо микросервисов

Ненормальное программированиеПрограммированиеАнализ и проектирование системAPIМикросервисы

Термин "модуль" (module) взят из статьи Modules vs. microservices. Так же для описания чего-то среднего между микросервисами и монолитами иногда используют термины "микролит" (microlith) или "моносервис" (monoservice). Но, не смотря на то, что термин "модуль" и так уже нагружен общеизвестным смыслом, на мой взгляд он подходит лучше других вариантов. Update: В комментарии lega использовал термин "встроенный микросервис" — он лучше описывает суть подхода, чем "модуль".


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


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

Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Просмотры21.2K
Комментарии 100

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

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

Читать дальше →
Всего голосов 16: ↑12 и ↓4 +8
Просмотры6.5K
Комментарии 2

Просто о микросервисах

РайффайзенбанкВысокая производительностьАнализ и проектирование системПроектирование и рефакторингМикросервисы

Вступление


Чуть ли не каждый второй, кто впервые сталкивается с MSA (Micro Service Architecture), на первых порах восклицает: «Да я эти микросервисы еще …надцать лет назад». Отчасти они правы. И я тоже был из этой самой половины, и не понимал — почему такой шум?



В самом деле! Ведь MSA — это тоже про разработку софта. Какие здесь могут быть революции? Все методики знакомы. В некоторых местах можно даже удивиться: «А разве бывает по-другому»? Фанаты Agile и DevOps тоже скажут, что это всё наше, родное.

Но всё же прошу вас набраться терпения и продолжить читать дальше.
Читать дальше →
Всего голосов 51: ↑41 и ↓10 +31
Просмотры126.7K
Комментарии 33

Смерть микросервисного безумия в 2018 году

ФлантСистемное администрированиеDevOpsМикросервисы
Перевод
Прим. перев.: Этот материал, написанный опытным разработчиком, не задаётся целью похоронить идею микросервисов, как можно подумать, глядя на заголовок. Статья — разумное предупреждение для тех, кто решил, что микросервисы — это «серебряная пуля», которая сама по себе решает все архитектурные и эксплуатационные проблемы. Для демонстрации этого автор собрал и систематизировал популярные проблемы, зачастую встречающиеся в сегодняшних проектах, уже использующих микросервисы или мигрирующих на них.



В последние годы микросервисы стали очень популярной темой. «Микросервисное безумие» выглядит примерно так:

«Netflix хороши в DevOps. Netflix делают микросервисы. Таким образом, если я делаю микросервисы, я хорош в DevOps».
Читать дальше →
Всего голосов 90: ↑87 и ↓3 +84
Просмотры94.8K
Комментарии 167

SOA: послать запрос на сервер? Что может быть проще?

Конференции Олега Бунина (Онтико)Высокая производительностьАнализ и проектирование системПроектирование и рефакторинг
Возможно, вы уже слышали про компанию Booking.com, что они много экспериментируют и часто деплоятся без тестирования. И еще, что есть один большой репозиторий на 4 Гб, в нем 4 миллиона строчек перлового кода, и вообще монолитная архитектура.

В то же самое время Booking.com меняется. Нельзя сказать, что это кардинальное скачкообразное изменение, но медленное и уверенное преображение. Меняется стек, постепенно внедряется Java в тех местах, где это актуально. В том числе термин сервис-ориентированная архитектура (SOA) слышится все чаще и чаще во внутренних дискуссиях.

Далее рассказ Ивана Круглова (@vian) об этих изменениях с точки зрения взаимодействия внутренних компонентов на Highload Junior ++ 2017. Попав в западню циклически зависимых воркеров пришлось качественно разобраться, что к чему, и какими средствами можно все это исправить.


Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры9.4K
Комментарии 2

Как перейти на микросервисы и не разломать production

True EngineeringВысокая производительностьУправление продуктомDevOps
Сегодня расскажем, как переводили на микросервисы монолитное решение. Через наше приложение круглосуточно проходит от 20 до 120 тысяч транзакций в сутки. Пользователи работают в 12 часовых поясах. В то же время функционал добавлялся много и часто, что довольно сложно делать на монолите. Вот почему системе требовались устойчивая работа в режиме 24/7, то есть HighLoad, High Availability и Fault Tolerance.

Мы развиваем этот продукт по модели MVP. Архитектура менялась в несколько этапов вслед за требованиями бизнеса. Первоначально не было возможности сделать всё и сразу, потому что никто не знал, как должно выглядеть решение. Мы двигались по модели Agile, итерациями добавляя и расширяя функциональность.


Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры13.5K
Комментарии 9

OPA и SPIFFE — два новых проекта в CNCF для безопасности облачных приложений

ФлантИнформационная безопасностьOpen sourceDevOps


В конце марта у фонда CNCF, помогающего развивать Open Source-проекты для облачных (cloud native) приложений, случилось двойное пополнение: в «песочницу» были добавлены OPA (Open Policy Agent) и SPIFFE (Secure Production Identity Framework For Everyone), которых роднит тема безопасности. Для чего же они могут пригодится?
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры3.5K
Комментарии 0

Прощайте, микросервисы: от ста проблемных детей до одной суперзвезды

Анализ и проектирование системПроектирование и рефакторингМикросервисы
Перевод
Если вы не живете в пещере, вы, возможно, знаете, что микросервисы – это архитектура сегодняшнего дня. С развитием этого тренда, в продукте Segment на раннем этапе приняли его, как лучшую практику, которая служила хорошо в одних случаях, и, как вы скоро увидите, не так хорошо в других.

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

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

В итоге команда оказалась не в состоянии добиться успеха с тремя штатными инженерами, тратящими основную часть своего времени просто поддерживая систему. Что-то должно было измениться. Этот пост – история о том, как мы сделали шаг назад и приняли подход, который хорошо соответствовал нашим требованиям и потребностям команды.
Читать дальше →
Всего голосов 62: ↑56 и ↓6 +50
Просмотры45.7K
Комментарии 173

Что вас ждёт до, после и во время перехода на Kubernetes – бизнесу на заметку

True EngineeringIT-стандартыУправление продуктомDevOpsKubernetes
Всем привет!

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


Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры8.9K
Комментарии 11

Запуск кластера RabbitMQ в Kubernetes

True EngineeringВысокая производительностьDevOpsKubernetes
Tutorial
При микросервисной организации приложения существенная работа ложится на механизмы интеграционной связи микросервисов. Причем эта интеграция должна быть отказоустойчива, с высокой степенью доступности.

В наших решениях мы используем интеграцию и с помощью Kafka, и с помощью gRPC, и с помощью RabbitMQ.

В этой статье мы поделимся нашим опытом кластеризации RabbitMQ, ноды которого размещены в Kubernetes.

image

До RabbitMQ версии 3.7 его кластеризация в K8S была не очень тривиальной задачей, со множеством хаков и не очень красивых решений. В версии 3.6 использовался autocluster плагин из RabbitMQ Community. А в 3.7 появился Kubernetes Peer Discovery Backend. Он встроен плагином в базовую поставку RabbitMQ и не требует отдельной сборки и установки.

Мы опишем итоговую конфигурацию целиком, попутно комментируя происходящее.
Читать дальше →
Всего голосов 29: ↑28 и ↓1 +27
Просмотры17.3K
Комментарии 13

Consumer-Driven Contracts как способ развития сервиса

СберАнализ и проектирование системПроектирование и рефакторинг
Перевод

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


От переводчика


Что это


Это перевод статьи, описывающей шаблон Consumer-Driven Contracts (CDC).
Оригинал опубликован на сайте Мартина Фаулера за авторством Яна Робинсона.


Зачем это


В микросервисной архитектуре зависимости между сервисами являются источником проблем. Шаблон CDC помогает решать эти проблемы способом, устраивающим и разработчиков сервиса, и его потребителей. Фаулер ссылается на Consumer-Driven Contracts в своей ключевой статье по микросервисной архитектуре: Microservices.


Для кого это


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

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

Микросервисы: размер имеет значение, даже если у вас Kubernetes

ФлантПрограммированиеАнализ и проектирование системDevOps
19 сентября в Москве состоялся первый тематический митап HUG (Highload++ User Group), который был посвящён микросервисам. На нём прозвучал доклад «Эксплуатация микросервисов: размер имеет значение, даже если у вас Kubernetes», в котором мы поделились обширным опытом компании «Флант» в области эксплуатации проектов с микросервисной архитектурой. В первую очередь он будет полезен всем разработчикам, задумывающимся о применении этого подхода в своём настоящем или будущем проекте.



Представляем видео с докладом (50 минут, гораздо информативнее статьи), а также основную выжимку из него в текстовом виде.

NB: Видео и презентация доступны также в конце этой публикации.
Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Просмотры24.4K
Комментарии 18

Как машинное обучение в YouDo катится в продакшен. Лекция в Яндексе

ЯндексПромышленное программированиеМашинное обучение
В крупных сервисах решить какую-нибудь задачу с помощью машинного обучения — означает выполнить только часть работы. Встраивать ML-модели не так уж просто, а налаживать вокруг них CI/CD-процессы еще сложнее. На конференции Яндекса «Data & Science: программа по заявкам» руководитель направления data science в компании YouDo Адам Елдаров рассказал о том, как управлять жизненным циклом моделей, настраивать процессы дообучения и переобучения, разрабатывать масштабируемые микросервисы, и о многом другом.


— Начнем с вводных. Есть data scientist, он в Jupyter Notebook пишет какой-то код, делает фиче-инжениринг, кросс-валидацию, тренирует модельки. Скор растет.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Просмотры9.1K
Комментарии 8

Секс, любовь и отношения сквозь призму микросервисной архитектуры

Управление сообществомЧитальный залСоциальные сети и сообщества
«Когда я разделила секс, любовь и отношения — все стало значительно проще...» цитата умудренной жизненным опытом девушки
Мы программисты и имеем дело с машинами, но ничто человеческое нам не чуждо. Мы влюбляемся, женимся (выходим замуж), рожаем детей и … умираем. Как и у простых смертных, у нас постоянно возникают проблемы эмоционального плана, когда “не сошлись характером”, “мы не подходим друг к другу” и т.д… У нас случаются любовные треугольники, разрывы отношений, измены и прочие эмоционально окрашенные события.

С другой стороны, в силу особенностей профессии, мы любим чтобы было все логично и одно вытекало из другого. Если не нравлюсь — то чем конкретно? Если не сошлись характерами, то какой конкретно частью. Объяснения в стиле “ты меня не жалеешь и не любишь” кажутся нам каким то набором малопонятных абстракций, которые нужно измерить (в каких единицах измеряется жалость) и дать понятные граничные условия (какие события должны эту жалость тригерить).
Читать дальше →
Всего голосов 22: ↑12 и ↓10 +2
Просмотры5.7K
Комментарии 7

Архитектурный шаблон “Macro Shared Transactions for Microservices”

DataArtПрограммированиеJavaАнализ и проектирование системМикросервисы
Tutorial


Автор: Денис Цыплаков, Solution Architect, DataArt

Постановка задачи


Одной из проблем при построении микросервисных архитектур и особенно при миграции монолитной архитектуры на микросервисы часто становятся транзакции. Каждый микросервис отвечает за собственную группу функций, возможно, управляет данным, ассоциированными с этой группой, и может обслуживать запросы пользователя либо автономно, либо посылая запросы другим микросервисам. Все это прекрасно работает, пока нам не требуется обеспечить консистентность данных, которыми управляют разные микросервисы.
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Просмотры5.6K
Комментарии 11

От монолитов к микросервисам: опыт «М.Видео-Эльдорадо» и «МегаФона»

Mail.ru GroupIT-инфраструктураDevOpsМикросервисыKubernetes


25 апреля мы в Mail.ru Group провели конференцию про облака и вокруг — mailto:CLOUD. Несколько хайлайтов:

  • На одной сцене собрались основные российские провайдеры — про специфику нашего облачного рынка и своих сервисов говорили Mail.ru Cloud Solutions, #CloudMTS, SberCloud, Selectel, «Ростелеком — ЦОД» и «Яндекс.Облако»;
  • Коллеги из «Битрикс24» рассказали, как они пришли к мультиклауду;
  • «Леруа Мерлен», «Открытие», Burger King и Schneider Electric предоставили интересный взгляд со стороны потребителей облаков — какие задачи их бизнес ставит перед IT и какие технологии, в том числе облачные, видятся им наиболее перспективными.

Все видео с конференции mailto:CLOUD можно посмотреть по ссылке, а здесь можно почитать, как прошла дискуссия про микросервисы. Своими — успешными — кейсами избавления от монолитов поделились Александр Деулин, руководитель центра исследования и разработки бизнес-систем «МегаФона», и Сергей Сергеев, директор по информационным технологиям группы «М.Видео-Эльдорадо». Также обсудили близкие вопросы IT-стратегии, процессов и даже HR.
Читать дальше →
Всего голосов 38: ↑33 и ↓5 +28
Просмотры10.3K
Комментарии 0

Переход от монолита к микросервисам: история и практика

РайффайзенбанкВысокая производительностьIT-инфраструктураC#Микросервисы
В этой статье я расскажу о том, как проект, в котором я работаю, превращался из большого монолита в набор микросервисов.

Проект начал свою историю довольно давно, в начале 2000. Первые версии были написаны на Visual Basic 6. С течением времени стало понятно, что разработку на этом языке в будущем будет сложно поддерживать, так как IDE и сам язык развиваются слабо. В конце 2000-х было решено переходить на более перспективный C#. Новая версия писалась параллельно с доработкой старой, постепенно все больше кода было на .NET. Backend на C# изначально ориентировался на сервисную архитектуру, однако при разработке использовались общие библиотеки с логикой, да и запускались сервисы в едином процессе. Получилось приложение, которое мы называли «сервисный монолит».

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

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


Читать дальше →
Всего голосов 26: ↑24 и ↓2 +22
Просмотры13.5K
Комментарии 3

Интеграционное тестирование микросервисов на Scala

Конференции Олега Бунина (Онтико)Высокая производительностьScalaТестирование веб-сервисовМикросервисы
Unit-тестирование — это замечательно, но его одного бывает недостаточно. Часто хочется дополнительно убедиться, что запущенное приложение будет работать. На помощь приходит интеграционное тестирование. Оно все чаще применяется для тестирования сервисов, а Docker позволяет удобно управлять тестовым окружением. Но, как всегда, не все так просто, когда микросервисов и зависимостей становится намного больше.

Юрий Бадальянц на РИТ++ рассказал, как в 2ГИС тестируют связку из большого числа сервисов и целого зоопарка технологий. Под катом дополненная и актуализированная под тщательным присмотром спикера версия этого доклада: какие варианты пробовали, к чему пришли, какие проблемы теперь вам не придется решать. Будет про Docker, Testcontainers, а также про Scala.
Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры4.3K
Комментарии 1