Я хочу иметь возможность ответить на вопрос: «Вы пользуетесь микросервисами?» Я понятия не имею, что конкретно означает «микросервис». По сути, все, что я прочитал на "Что такое микроуслуги?" это либо бесполезная куча терминов, таких как «слабосвязанные», «мелкозернистые» и «легковесные», либо звучит так, как будто они написаны консультантами по управлению для руководителей предприятий и не имеют реального содержания.
Мой текущий понимание:
- A
monolithic application
- это то, где все (кроме базы данных) интегрировано в единую кодовую базу. Например, я написал приложение ASP. NET MVC с моделями, представлениями и контроллерами. Это была единая кодовая база, работавшая поверх IIS и подключенная к MS SQL. - .
API-driven application
- это та, где бизнес-логика c отделена от логики приложения; API определяет / реализует бизнес-логи c, а приложение взаимодействует с пользователями и выполняет бизнес-логи c, вызывая API. Например, я преобразовал свое приложение ASP. NET MVC в A) API, который запускался в одном контейнере, и B) одностраничное приложение (SPA), которое выполнялось в отдельном контейнере и выполняло вызовы API клиентом. side.
Позже, когда я начал писать дополнительные приложения, каждое с собственным SPA и API, я решил выделить аутентификацию и авторизацию в свой собственный API. А потом я решил выделить некоторые бизнес-логики c, которые были бы общими для каждого API, но не относились к authn / authz, в еще один API. Таким образом, теперь каждый SPA взаимодействует независимо (как минимум) с тремя API. (Каждый API представляет собой отдельный контейнер, а каждый SPA - отдельный контейнер.)
Являются ли эти микросервисы? Что такое микросервисы? Каждое приложение имеет один API, и в большинстве случаев я могу разбить их на несколько меньших API. Так это монолитные c API или микросервисы?