Обновить
68.94

Микросервисы *

Микросервисная архитектура и все что с ней связано

Сначала показывать
Порог рейтинга
Уровень сложности

QIWI Server Party 5.0

Время на прочтение2 мин
Количество просмотров2K
Привет!

Мы собираем QIWI Server Party в пятый раз — уже через 10 дней, 17 октября, мы соберемся на улице Правды, дом 24 стр. 3.

Остаёмся привержены традициям — бесплатное участие для тех, кто заранее зарегистрировался, трансляция и интересные выступления спикеров (которых будет целых 8).


Сборка и деплой однотипных микросервисов с werf и GitLab CI

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


Два года назад мы публиковали статью «Сборка проектов с GitLab CI: один .gitlab-ci.yml для сотни приложений», а теперь расскажем о решении схожей задачи сегодня. Новый материал — о том, как можно построить CI/CD-процессы для большого количества однотипных приложений с появлением include в .gitlab-ci.yml и приходом werf на замену dapp.
Читать дальше →

Рождение платформы

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


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

В интернете существует 100500 статей и докладов на тему «как мы пилили монолит», и у меня нет желания написать еще одну. Я попробовал пойти немного дальше и рассказать, как изменения технологий привели к появлению абсолютно нового продукта (спойлер: мы писали коробку, а написали платформу). Статья во многом получилась обзорной, без технических подробностей. Подробности будут позже.
Читать дальше →

Так все-таки RAML или OAS (Swagger)?

Время на прочтение7 мин
Количество просмотров13K
В динамичном мире микросервисов измениться может все что угодно — любой компонент можно переписать на другом языке, используя иные фреймворки и архитектуру. Неизменными должны оставаться лишь контракты, для того, чтобы с микросервисом можно было взаимодействовать извне на некой постоянной основе, вне зависимости от внутренних метаморфоз. И сегодня мы расскажем о нашей проблеме выбора формата описания контрактов и поделимся найденными артефактами.


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

Сервисы, микросервисы и пакетно-ориентированное программирование

Время на прочтение7 мин
Количество просмотров14K
Многие программисты слышали о том, что иногда код следует выделять в отдельные библиотеки для дальнейшего повторного использования. Однако, вопрос, какой же все-таки код следует выделять в отдельную сущность, ставит многих разработчиков в тупик. При прочтении статей/разговоре на данную тему обычно вспоминается проблема преждевременного обобщения.

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

Хочу поднять тему повторного использования кода в контексте создания сервис-ориентированной и микросервисной архитектуры.
Читать дальше →

Kafka и микросервисы: обзор

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


Всем привет. В этой статье я расскажу, почему мы в Авито девять месяцев назад выбрали Kafka, и что она из себя представляет. Поделюсь одним из кейсов использования — брокер сообщений. И напоследок поговорим о том, какие плюсы мы получили от применения подхода Kafka as a Service.

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

Бенчмарк RPC систем (и Inverted Json)

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

Сравниение различных инструментов (RabbitMQ, Crossbar.io, Nats.io, Nginx и др.) для организации RPC между микросервисами.
Читать дальше →

Поддержка monorepo и multirepo в werf и при чём здесь Docker Registry

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


Тема монорепозитория обсуждалась уже не раз и, как правило, вызывает весьма активные споры. Создавая werf как Open Source-инструмент, призванный улучшить процессы сборки кода приложений из Git в Docker-образы (и их последующей доставки в Kubernetes), мы мало размышляем на тему того, какой выбор лучше. Для нас первично обеспечить всё необходимое для сторонников разных мнений (если это не противоречит здравому смыслу, конечно).

Появившаяся недавно поддержка mono-repo в werf — хороший тому пример. Но для начала давайте разберёмся, как эта поддержка вообще связана с использованием werf и при чём здесь Docker Registry…
Читать дальше →

Как меняется специфика работы с серверами приложений на примере OpenLiberty

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


Привет, Хабр!

Выступление Себастьяна Дашнера на java meetup в московском офисе IBM (нашел запись похожего выступления) подтолкнуло меня начать свое знакомство с легковесными серверами приложений, в частности, с OpenLiberty. И тогда я задумался:

  1. Какие преимущества дают легковесные сервера приложений?
  2. Как меняется специфика работы при их использовании?
  3. Зачем упаковывать сервер приложений в контейнер?

Отвечая на эти вопросы, я заметил, что информации по этой теме в открытом доступе мало, потому решил собрать и систематизировать её здесь.

Результаты выкладываю под катом.
Читать дальше →

Kubernetes для автомобиля: как открыть разработчику доступ к бортовому компьютеру и сделать это безопасно

Время на прочтение12 мин
Количество просмотров4.3K
Это история в двух частях — о новом витке развития automotive. Эта «серия» посвящена собственной разработке EPAM – Aos Connected Vehicle Platform. Алекс Агизим, CTO, Automotive & Embedded Systems, объясняет, чем она отличается от традиционного облачного решения и как дает software-разработчикам доступ в автомобиль. Ознакомиться с первой частью можно здесь.

image

В первой части я рассказывал, как наши разработки XEN Hypervisor позволяют изолировать сервисную часть автомобильного ПО от safety required software. Это один из барьеров перед широким применением в индустрии. Впервые опенсорсный гипервизор станет полноценным конкурентом закрытым коммерческим решениям.

Но это только первая ступенька. Чтобы вывести автомобильные сервисы на новый уровень, нужно «пустить» в него сервис-компании и разработчиков, далеких от embedded и automotive. Для этого требуется следующий уровень абстракции. Чтобы разработчик пользующийся современными фреймворками в разработке программного обеспечения мог, не переучиваясь, дизайнить свои сервисы для автомобилей.

Возможно, после прочтения вы захотите сказать: «Зачем такие сложности? Я, к примеру, купил Android-планшет для автомобиля, настроил нужные сервисы и вполне счастлив». Это классический инженерный подход, очень поддерживаю. Но давайте посмотрим шире. Автомобильная индустрия с точки зрения software как раз таки давно застряла в классических подходах. Я расскажу, каким ее будущее видим мы и что для этого делаем. А в конце пройдемся по основным сложностям.

Итак.
Читать дальше →

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

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


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

В этом обзоре представлена краткая информация о некоторых инструментах, которые упрощают жизнь программисту, чей код крутится в pod’ax Kubernetes-кластера.
Читать дальше →

Gonkey — инструмент тестирования микросервисов

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

Gonkey тестирует наши микросервисы в Lamoda, и мы подумали, что он может протестировать и ваши, поэтому выложили его в open source. Если функциональность ваших сервисов реализована преимущественно через API, и используется JSON для обмена данными, то почти наверняка Gonkey подойдет и вам.


image


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

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

Распределённая трассировка: мы всё делали не так

Время на прочтение13 мин
Количество просмотров16K
Прим. перев.: Автор этого материала — Cindy Sridharan, инженер из компании imgix, занимающаяся вопросами разработки API и, в частности, тестирования микросервисов. В этом материале она делится своим развёрнутым видением актуальных проблем в области распределённой трассировки, где, по её мнению, наблюдается недостаток по-настоящему эффективных инструментов для решения насущных задач.


[Иллюстрация заимствована из другого материала про распределенную трассировку.]

Считается, что распределенную трассировку сложно внедрять, да и отдача от нее в лучшем случае сомнительная. «Проблемность» трассировки объясняют множеством причин, при этом часто ссылаются на трудоемкость настройки каждого компонента системы для передачи соответствующих заголовков вместе с каждым запросом. Хотя эта проблема действительно имеет место, ее вовсе нельзя назвать непреодолимой. Она, кстати, не объясняет, почему разработчики не очень любят трассировку (даже уже функционирующую).
Читать дальше →

Ближайшие события

7 недостающих факторов в подходе 12 Factor App

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


Прим. перев.: Тот восторг, что испытали наши тимлиды, увидев в блоге IBM Cloud этот материал — своеобразное «расширение» легендарного Twelve-Factor App, — говорит сам за себя. Поднятые автором вопросы не просто на слуху, а по-настоящему жизненны, т.е. актуальны в повседневной жизни. Их понимание полезно не только для DevOps-инженеров, но и разработчиков, создающих современные приложения, запускаемые в Kubernetes.

Известная методология «12 factor application» представляет собой свод четко определенных правил для разработки микросервисов. Они широко используются для запуска, масштабирования и деплоя приложений. В облачной платформе IBM Cloud Private мы следуем тем же 12 принципам при разработке контейнеризированных приложений. В статье «Kubernetes & 12-factor apps» обсуждается специфика применения этих 12 факторов (они поддерживаются моделью оркестровки контейнеров Kubernetes).

Размышляя о принципах разработки контейнеризированных микросервисов, работающих под контролем Kubernetes, мы пришли к следующему выводу: вышеуказанные 12 факторов совершенно справедливы, однако для организации production-среды крайне важны и другие, а в частности:
Читать дальше →

Цифровая трансформация обучения и аттестации полевых сотрудников

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

Наш клиент — это федеральная компания-производитель. Её мерчендайзеры отвечают за наличие товаров в магазинах, представленность на полках, POSM материалы (реклама), знания продавца о продукции и др. Супервайзеры занимаются обучением, оценкой и контролем полевых сотрудников. Для этого есть корпоративные стандарты и четко регламентированный процесс.

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



Мы в True Engineering создали технологичный инструмент, который помогает супервайзерам спланировать развитие своей команды, зафиксировать результат и подвести итоги. В этой статье расскажем подробности.
Читать дальше →

Книга «Микросервисы. Паттерны разработки и рефакторинга»

Время на прочтение8 мин
Количество просмотров66K
image Привет, Хаброжители! Если вам давно кажется, что вся разработка и развертывание в вашей компании донельзя замедлились — переходите на микросервисную архитектуру. Она обеспечивает непрерывную разработку, доставку и развертывание приложений любой сложности.

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

Предлагаем ознакомиться с отрывком «Управление транзакциями в микросервисной архитектуре»
Читать дальше →

Геопозиция и геолокация: мега-инструмент

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

Вступление


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

Исследуйте геолокацию и API бесплатно вместе с сервисом геолокации IPGeolocation.io

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

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

  • ближайший отель
  • аптеку или больницу
  • продуктовый магазин
  • университет или школу
  • место проведения концерта Pink в Сан-Франциско

Трансформация технологии на этом не остановится. Это станет лучше и точнее, как никогда.

Эволюция во времени


Давайте посмотрим, как началась эволюция геолокации. Путешествие этого явления начинается с давнейших времен.

Экскурс в прошлое
Читать дальше →

Как создать простой микросервис на Golang и gRPC и выполнить его контейнеризацию с помощью Docker

Время на прочтение4 мин
Количество просмотров53K
Привет, Хабр! представляю вашему вниманию перевод статьи «Go, gRPC and Docker» автора Mat Evans.

Существует множество статей о совместном использовании Go и Docker. Создавать контейнеры, способные взаимодействовать с клиентами и между собой, очень легко. Далее следует небольшой пример того, как это делается на базовом уровне.
Читать дальше →

Выпускаем Predator — предкомпилированные Data-репозитории

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


Сегодня, команда Micronaut в Object Computing Inc (OCI) представила Predator, новый проект с открытым исходным кодом, цель которого — значительно улучшить время выполнения и производительность (по памяти) доступа к данным для микросервисов и serverless-приложений, при этом не потеряв в продуктивности по сравнению с такими инструментами, как GORM и Spring Data.

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

Микрофронтенды: о чем это мы?

Время на прочтение10 мин
Количество просмотров71K
Все эти годы вы, frontend-разработчик, писали монолиты, хотя и понимали, что это дурная привычка. Вы делили свой код на компоненты, использовали require или import и определяли npm-пакеты в package.json или плодили гит-репозитории в вашем проекте, но все равно писали монолит.
Пришло время изменить положение.
Читать дальше →