Переход от монолитной архитектуры к Приложение микросервиса это большое дело. Это не просто «сдвиг», это цунами. Понимание того, что требуется, чтобы сдвиг широко. Разработчики должны начать думать о том, как они собираются разбить монолитные приложения на более мелкие функции, операционные команды должны создать совершенно новый подход к обработке данных вокруг Kubernetes и контейнеров, а инженеры DevOps должны начать оценивать существующие трубопроводы и что нужно изменить на Поддержите сотни независимых движущихся частей от Dev через Prod. Другими словами, у всех нас есть чему поучиться.
Ядро понимания микросервисов — это то, как они написаны и развернуты. Микросервисы — это небольшие функции, которые независимо развернуты. Ваше традиционное «приложение» теряется в море услуг, которые составляют «логическое» приложение. Микросервисы дают нам возможность написать совершенно новое поколение программного обеспечения. Они делают AI и ML возможностью, а также создают платформу для высоко масштабируемого программного обеспечения за долю от стоимости по сравнению с монолитными решениями. Не заблуждайтесь, путешествие стоит усилий.
С любым новым путешествием есть нарушение, и микросервисы ничем не отличаются. И, честно говоря, это нарушение приветствуется и может быть преодолен, если мы сможем понять как необходимые изменения, так и сходства, которые архитектура микросервиса сравнивает с монолитом. В прошлом мы пережили большие сдвиги, например, мэйнфрейм для распределения, и мы не только выжили, но и процветали. И, как и переход от мэйнфрейма к распределенным системам, микросервисы нарушают то, как мы записываем и доставляем код.
Хотя есть много дискуссий, которые вы будете проводить в вашей организации о микросервисах, рассмотрите эти три основные истины: 1) Микросервисы не требуют традиционного шага «сборка». Связывание не выполняется в сборке CI, это делается во время выполнения через API. 2) Чтобы получить полную выгоду от микросервисов, они должны быть разделены между командами. 3) Микросервисы независимо развернуты и могут влиять на несколько «логических» приложений.
CI Build
Мы полагались на сборку CI, чтобы выполнить тяжелую работу и принятие решений о том, что входит в приложение. Процесс компиляции/ссылки создает нашу версию приложения, которая продвигается через разработку, тестирование и производство в качестве полного устройства. С реализацией микросервиса это исчезает. Вместо этого наша сборка становится процессом получения небольшого кусочка кода, скажем, 300 строк или меньше, и создание изображения контейнера. Это изображение затем зарегистрировано в хранилище контейнера. Этот единственный микросервис, живущий в контейнере, может повлиять на несколько «логических» приложений. Важно понять, что шаг «ссылки», обычно выполняемый в вашей сборке, теперь выполняется во время выполнения через API. Микросервисы слабо связаны и связаны с помощью API при выполнении, а не связаны в процессе сборки.
Обмен микросервисами и домены
Большинство микросервисов должны быть повторно использованы. Разрастание микросервиса является признаком того, что ваша общая архитектура не использует преимущества повторного использования микросервиса. Чтобы избежать этой ошибки, ваша стратегия микросервисов должна быть определена вокруг концепции Доменная дизайн Анкет Этот подход требует, чтобы вы сделали шаг назад и увидите свою организацию с точки зрения «решения». Эти решения будут определять, какие микросервисы должны быть созданы и разделены на ваши организационные силосы. После того, как эти места для решения будут идентифицированы, вы можете обнаружить, что около 80% ваших микросервисов будут использоваться повторно, оставив всего лишь 20% пользовательских микросервисов для любого отдельного решения. Этот уровень повторного использования кода будет необходим для нас для удовлетворения требований цифрового преобразования 21 -го века. У нас есть много программного обеспечения для проектирования, а повторное использование микросервиса — самый экономичный способ получить нас туда.
Потеря «логического» приложения
Преимущества микросервисов также являются их сложностью. Когда вы выбрасываете процесс сборки приложений, вы также выкидываете процесс управления версией приложения. С помощью микросервисов требуется новый способ мышления об управлении конфигурацией программного обеспечения и версиями приложений. Хотя мы больше не выпускаем приложение в качестве монолита, мы все еще создаем приложения. Банки будут продолжать строить заявки на ипотеку, автокредит и расчеты. Они будут построены по -другому. Когда мы начинаем переходить к архитектуре микросервиса, методы отслеживания, управления версиями и визуализации полного «логического» приложения будут необходимы для упрощения реализации микросервиса.
Вывод
Переход к архитектуре Kubernetes и Microservice потребуется для будущих доказательств вашей организации. Чтобы добраться туда, вам нужно будет переосмыслить практику разработки программного обеспечения, чтобы поддержать реализацию MicroService. Когда вы начинаете в этом путешествии, рассмотрим влияние потери полной сборки приложения, которая определяет, как версия монолитной приложения будет действовать на основе кода и библиотек, которые были составлены и связаны в целом. Во -вторых, просмотрите и определите свои паттерны микросервиса, определяя их в логические места для решений или домены. Конструкция, управляемое доменом, является ключом к успешной реализации микросервиса. Без этого вы можете создать микросервис. Разрастание. И, наконец, управление конфигурацией программного обеспечения и версии приложений все еще важны. Рассмотрим методы отслеживания версий микросервиса до версий применения. Вам понадобится понимание того, что потребляет ваше логическое приложение, какие микросервисы влияют на ваше приложение и возможность отслеживать различия в версиях приложений во всех ваших кластерах для достижения DevOps в масштабе, которые требуют микросервисов.
об авторе
Об авторе Трейси является генеральным директором и соучредителем DeployHub Анкет DeployHub — это первая платформа для управления микросервисами, предназначенную для облегчения обмена, картирования отношений и развертывания микросервисов. Трейси является экспертом в области управления конфигурацией и практики жизненного цикла трубопровода с гиперфофоном на микросервисах и облачной нативной архитектуре. В настоящее время она является членом совета директоров Фонда непрерывной доставки (CDF), где она является избранным представителем общего члена. Она также является исполнительным директором проекта [Ortelius с открытым исходным кодом] ( https://www.ortelius.io/ , ядро с открытым исходным кодом.
Оригинал: «https://dev.to/tracyragan_12/three-basic-truths-about-microservices-1486»