Говорят, что разбить монолитные системы сложно

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

Уже много лет это индустриальная мантра: монолиты. это громоздкие, негибкие звери, которые останавливают любые инновации на своем пути. Но у многих компаний есть монолиты в той или иной форме, которые они пытались сломать, такие как традиционные системы ERP и MRP или системы крупномасштабных транзакций.

Фото: Джо МакКендрик

Верьте или нет, есть несколько хороших вещей, которые можно сказать о монолитах. Эллен Кёрбс, менеджер по связям с разработчиками в Garden, например, указала в недавней презентации, что «есть нечто, что у нас было с монолитами из-за этой простоты, магия программирования была в этом». Она вспоминает, как с монолитами легко освоить систему в первый раз. У вас есть одна большая система, поэтому у вас есть один язык программирования, у вас есть один набор правил, один набор соглашений и у вас есть одна большая команда для одной сборки ».

Смотрите так же

Системы домашней безопасности Amazon экономят 90 д... Системы домашней безопасности Amazon: сэкономьте 90 долларов на системе домашней безопасности Blink XT Приобретите двухкамерный комплект Blink XT за ...
Лучшие системы домашней безопасности, которые мы т... Да, покупка лучшей системы домашней безопасности может быть головной болью. К счастью, мы проделали большую часть работы для вас. Технология продолжа...
Системы с маленькими дисками не смогут установить ... И 32-, и 64-битные требования были увеличены. Питер Брайт. 26 апреля 2019 г. 19:44 UTC Традиционно Microsoft будет использовать выпуск новой операци...

Конечно, Körbes не видит монолитных систем в чьем-либо будущем и предлагает платформу с открытым исходным кодом для разрушения и перестройки архитектуры микросервисов.

В отдельной презентации Келли Саттон, менеджер по инженерным разработкам в Gusto, рассказал о последствиях монолитного разрушения. особенно тех, которые основаны на Ruby on Rails. но его совет может быть применен ко многим языкам программирования и средам, которые слишком велики, чтобы обанкротиться ,

Для начала проблема с перемещением функциональности из монолита в микросервисы заключается в том, что обе версии необходимо будет поддерживать и обновлять, указывает Саттон. «На самом деле мы создали проблему, которая хуже, чем у нас». объясняет он. «Мы буквально создали племенные знания в нашей системе. Теперь, когда мы хотим найти концепцию HR, мы должны спросить кого-то:« Эй, это HR v2 или это в старом приложении HR, которое просто как-то застревает? ?»

Проблемы растут по мере масштабирования приложений или услуг. Поскольку принято решение о выделении функции как услуги, такой как имена HR, адреса и персональные идентификационные номера, данные и функции могут по-прежнему использоваться для новых и старых приложений. HR v1 и HR v2.

Саттон иллюстрирует, какие проблемы возникают, когда монолиты разбиты на части:

Смотрите так же

Леново Восстановление Системы Windows 10 На Флешку... Решил приготовить подробную аннотацию по созданию диска восстановления в Windows 10. Покажу как сделать диск восстановления на USB флешку, либо компак...
Когда 2FA не 2FA Как система проверки подлинности ... Двухфакторная аутентификация Apple превращается в однофакторную аутентификацию в Интернете. Для учетной записи iCloud и устройства Apple двухфактор...
Windows 10 boost — операционная система Micr... WINDOWS 10 только что добилась крупной победы после публикации нового отчета, в котором утверждается, что программное обеспечение Microsoft стало боле...

«Мы перечисляем все то, что делает HR v1 сегодня. Скажем, это похоже на 14 вещей, а затем мы постепенно начинаем подключать его обратно к основному приложению, тщательно следуя одному за другим и перемещая эти 14 вариантов поведения. Но обычно примерно на полпути через это кто-то становится постоянной работой, просто говоря: «Хорошо, что в HR v2 и что в HR v1». Пройдите немного дальше, и вы по-прежнему получаете отчеты об ошибках старой системы управления персоналом, так что теперь вы говорите: «Хорошо, я думаю, мы исправили ошибку в старой системе управления персоналом, но нам нужно воссоздать ее в новый, а затем исправить это там.

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

Избегайте круговых зависимостей. Как можно разбить монолитную систему и разработать архитектуру на основе микросервисов? «Ответ« болезненно ». говорит Кёрбс, который отмечает, что монолитные зависимости заменяются другой формой зависимостей. «Служебные зависимости. сложная задача для управления. Если я изменю свою службу доставки, мне, возможно, придется обновить службу заказов, а если я изменю службу заказов, мне, возможно, придется обновить службу внешнего интерфейса, потому что все происходит каскадно. Я могу не просто изменить одну вещь и ожидать, что этого не будет «. Разница с монолитными приложениями заключается в том, что «у вас есть компилятор, и компилятор может сделать для вас граф зависимостей».

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

Говорят, что разбить монолитные системы сложно

Двигайся медленно. Разбиение монолитов на распределенные сервисы потребует тщательного рассмотрения. «У вас большая куча кода, и вы разбили его на 20 разных кусков, и вы добавили в него некоторые отступы, и некоторые из этих кусков теперь стали другим языком программирования». говорит Кёрбс. Когда вы переходите на микросервисы, вы добавляете в него что-то, так что это будет медленнее ». Плюс, возможно, потребуются сотни дополнительных часов на программирование, говорит Саттон.« Вы должны сесть за стол с командами разработчиков и сказать: «Хорошо, мы собираемся сделать это, и тогда со временем все станет быстрее, но сейчас ничего не изменится. Мы собираемся сделать рефакторинг правильно. Вам нужно убедительно обосновать, как это поможет вам ускорить работу и разработать безопасное программное обеспечение, независимо от того, насколько плох текущий код сегодня ».

Смотрите так же

Системы с маленькими дисками не смогут установить ... И 32-, и 64-битные требования были увеличены. Питер Брайт. 26 апреля 2019 г. 19:44 UTC Традиционно Microsoft будет использовать выпуск новой операци...
Леново Восстановление Системы Windows 10 На Флешку... Решил приготовить подробную аннотацию по созданию диска восстановления в Windows 10. Покажу как сделать диск восстановления на USB флешку, либо компак...
Как Запустить Восстановление Системы На Ноутбуке A... Часто юзеры ноутбуков встречаются с неувязкой, когда из строя выходит операционная система. И если ранее «вернуть к жизни» устройство можн...