Все потоки
Поиск
Написать публикацию
Обновить
34.94

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

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

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

gRPC клиент. Попробуй на вкус клиент/сервер на gRPC

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

   В прошлой статье мы разобрали, как писать сервер на gRPC. И протестировали его с помощью BloomRPC. Теперь, давайте разберем как пишется клиент. И попробуем отправлять запросы с клиента на сервер. Это будет наш первый шаг к созданию микросервисов на грпц. 

   В моем случае я использую многомодульный проект, но можно создать отдельный проект. Структура проекта будет примерно следующей: 

Читать далее gRPC client

Повышение устойчивости микросервисов к отказам

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

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

Врууум

Как мы переписывали сервер-сайд СберБанк Онлайн на микросервисы

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

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

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

Читать далее

Эволюция распределённых систем в Kubernetes

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

image
Фото Cenk Batuhan Özaltun, Unsplash.com


Обзор


  • Облачные платформы должны предоставлять современным распределённым приложениям возможности, связанные с управлением жизненным циклом, взаимодействием, привязками и состояниями.
  • Kubernetes хорошо поддерживает управление жизненным циклом, но для остального использует другие платформы с помощью концепции sidecar-контейнеров и операторов.
  • В будущем распределённые системы на базе Kubernetes будут состоять из нескольких сред выполнения, где бизнес-логика будет ядром приложения, и «меха»-компоненты (прим. переводчика: «меха» — сокращение от mechanics) в виде сайдкаров будут предлагать большие возможности в виде распределённых примитивов «из коробки».
  • Такая разделённая меха-архитекура связывает элементы бизнес-логики и улучшает операции второго дня, вроде патчинга, апгрейдов и долгосрочной поддержки.

На конференции QCon в марте я рассказывал об эволюции распределённых систем в Kubernetes. Главный вопрос: что будет после микросервисов? У вас наверняка есть мнение на этот счет. У меня оно тоже есть. В конце вы узнаете, что я думаю. Но для начала давайте обсудим потребности распределённых систем. Как эти потребности развиваются с годами, начиная с монолитных приложений до Kubernetes и таких новых проектов, как Dapr, Istio, Knative, и как они меняют наши методы работы с распределёнными системами. Попробуем сделать несколько прогнозов на будущее.

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

Как оставаться отказоустойчивым, переходя на микросервисы на PHP (и как правильно падать)

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

Когда-то вы кодили на одном большом и могучем серваке, с кучей памяти и кучей процов. Сервер был безграничен, все ваши сервисы были здесь, все ваши Redis’ы и даже зачастую MySQL-и были тут. Все ваши приложения были здесь же: какая-то аналитика, какой-то бэкенд для админки, еще десяток сервисов — все было рядом. 

Но вот вы заехали в Swarm. Все приложения — это набор контейнеров. А контейнеры это, по сути, набор микросерверов со своей файловой системой, своей памятью, своими процами. И они уже не всегда рядом. Соответственно, это тянет за собой некоторые изменения. 

Читать далее

Что такое service mesh, когда внедрять, альтернативы Istio и другие ответы экспертов с АМА-сессии Слёрм по service mesh

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


Публикуем сессию вопросов и ответов по service mesh. Сессия прошла в рамках подготовки к интенсиву Слёрм по service mesh. На Youtube есть запись.

Эксперты отвечали на самые популярные вопросы по технологии service mesh и вопросы участников мероприятия. Ключевые вопросы АМА-сессии:

  • Что такое service mesh,
  • Когда внедрять,
  • Альтернативы Istio,
  • Почему Envoy используется в service mesh, а не Nginx.

Марсель Ибраев, СТО Слёрм, вёл мероприятие, а Александр Лукьянченко, тимлид в команде архитектуры Авито, и Иван Круглов, Staff Software Engineer в Databricks, делились экспертизой.
Оба инженера имеют опыт не просто с работы какой-то конкретной реализацией service mesh, но с построением собственного, что намного круче.
Читать дальше →

Делаем микрообразы с микросервисами

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

Из цикла "Микросервисы или смерть"

Решаемая проблема: монолитное приложение на Node.js раньше, в развернутом состоянии, занимало 0.2 Гб всего. Теперь же, разбитое на 33 микросервиса, занимает 33 * 0.1 = 3.3 Гб. Можно ли избежать подобной издержки? -- можно! В статье мы избавимся от лишнего веса.

Читать далее

О клиенте и сервере в микросервисной архитектуре

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

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

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

Читать далее

Лучшие фреймворки для микросервисов

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

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

Читать далее

Распознавание эмоций в записях телефонных разговоров

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

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

Читать

От одного приложения — к сотне. Путь микрофронтенда в Тинькофф Бизнес

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

Привет, меня зовут Ваня, недавно я выступил на CodeFest 11, где рассказал про путь Тинькофф Бизнеса на фронтенде от одного приложения к сотне. Но, так как в ИT очень быстро все меняется, а ждать запись еще долго, сейчас я тезисно расскажу о нашем шестилетнем путешествии в дивный мир микрофронтенда!

Пройти путь вместе

Защита приложений в эпоху микросервисов

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

Мы переживаем переломный момент в развитии культуры отношений DevOps и CISO. Директора по информационной безопасности (CISO) должны защищать организации любой ценой, а для специалистов по разработке и эксплуатации (DevOps) главное — это гибкость, поэтому в вопросах безопасности они склонны выбирать компромиссное (good enough) решение, а иногда категорически возражают против предлагаемых мер защиты.

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

Чему можно научиться у фикуса-душителя? Паттерн Strangler

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

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

Читать далее

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

Использование микросервисов в работе с Kubernetes и GitOps

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

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

К счастью, существуют стратегии решения этих проблем. Сначала мы рассмотрим рефакторинг сервиса на основе Kafka Streams с использованием Microservices Framework, который обеспечивает стандарты для тестирования, конфигурации и интеграции. Затем мы используем существующий проект streaming-ops для создания, проверки и продвижения нового сервиса из среды разработки в рабочую среду. Хотя это и не обязательно, но вы если хотите выполнить шаги, описанные в этой заметке, то вам понадобится собственная версия проекта streaming-ops, как описано в документации.

Читать далее

DocHub: API по-джентльменски

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

- Саш, админы говорят, что у нас 400 полетели адово. Глянь, в чем проблема.
- Странно… все же было хорошо.

Пару часов спустя...

- Коллеги, и в очередной раз у нас изменены контракты без согласования и оповещения! Это уже не первый случай!

Давайте что-то с этим делать!

Бенчмаркинг Linkerd и Istio

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

image
Фото с сайта linkerd.io


Пару лет назад ребята из Kinvolk сравнили производительность Linkerd и Istio и узнали, что Linkerd значительно быстрее и меньше Istio везде, кроме одной области. Linkerd использовала больше процессорных ресурсов в плоскости данных (data plane). Недавно мы повторили эти эксперименты с последними версиями обеих service mesh. Как показывают результаты, Linkerd не только по-прежнему заметно быстрее Istio, но и использует на порядок меньше ресурсов памяти и процессора в плоскости данных (data plane). Причем это происходит, даже если число запросов в секунду в три с лишним раза больше, чем в бенчмарке Kinvolk. Вы легко можете это повторить.


А теперь подробности.

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

Как писать кодогенераторы в Go

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

Однообразный код писать неинтересно, нудно, но приходится. Испокон веков изворотливые программисты ищут Святой Грааль формализма, позволяющего переложить рутинные задачи на машину, писать только раз и переиспользовать код. Так появились структурное программирование, потом объектно-ориентированное, полиморфизм с параметризованными типами, кодогенерация на основе формальных грамматик, препроцессоры макроязыка и прочее…​ Под катом рассмотрим, как обстоят дела именно в Go.

Читать далее

Хватит везде делать микросервисы

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

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


image

И вот почему...

Архитектура микросервисов: Разрушение монолита

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

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

Эта статья подводит итог вебинара "Разрушение монолита", представленного Даниэлем Гутьерресом Сааведрой, старшим инженером-программистом компании Zartis. Вы можете посмотреть полный текст вебинара, который также включает сессию вопросов и ответов, ниже!

Читать далее

Fintech на практике: как Quadcode технологии для трейдинга и банкинга разрабатывает

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

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

Этот пост - первый в списке, его можно считать знакомством. Под катом я расскажу про структуру нашей команды, про продукты Quadcode – это платформа для трейдинга, банкинг и внутренние разработки, а также про наши первые шаги на пути к IPO.  

Наша команда

Команда Quadcode уже 8 лет работает в финтехе. Цель компании - создавать удобные финтех-инструменты для B2B клиентов со всего мира.

В разработке мы руководствуемся Agile принципами, да и в принципе склонны к гибким методологиям. Именно они позволяют достигать баланса в скорости и качестве разработки продуктов, поэтому разработка представляет из себя набор Scrum команд. 

Во главе каждой команды стоит Team Lead. Сами команды сгруппированы в отделы работающие над определенными предметными областями. Например, есть отдел Finance Development, в котором команды разрабатывают финансовые сервисы для платформы. Есть ветка, где располагаются владельцы продукта (product owners), задача которых развивать и улучшать наши продукты. Сейчас у нас в разработке 230+ опытных (реально опытных, у каждого много лет практики) специалистов. Это порядка 24 команд и 6 Product Owners. Джуниоров мы берем редко. Но с каждым годом искать опытных специалистов становится все сложнее, так что все больше в эту сторону смотрим, но тут нужно все грамотно подготовить.

Читать далее