Я уже работал разработку программного обеспечения, и мой репозиторий является инженером Devops. У моей компании есть процесс разработки — это Agile, развлеченная культура и микросервис для разработки заявления в компании.
У меня есть вопрос, который вы выбираете монолиту или микросервис для разработки программного приложения.
Спасибо за книгу моделей микровиссов ( https://www.amazon.com/microservices-patterns-example-chris-richarson/dp/1617294543 ) В главе один в книге принять хорошее решение для моего результата, и у многих рекомендаций о реализации, тестировании и развертывании для вас начнут разработать приложение Microsvice.
Монолитная архитектура
Монолитная архитектура является традиционной единой моделью для проектирования программной программы и составляют приложение для бизнес-логики для одного исходного кода и одного сервиса. ( https://whatis.techtarget.com/definition/monolithic-architecture )
Преимущество монолитной архитектуры
- Просто для развития IDES и другие инструменты разработчика ориентированы на создание единого приложения.
- Легко сделать радикальные изменения в приложении Вы можете изменить код и схему базы данных, сборки и развертывание.
- Простое, чтобы проверить Разработчики писали модульный тест, концевые тесты, которые запустили приложение в одном исходном коде.
- Простое для развертывания Имейте один исходный код для сборки и развертывания привести к легкому развертыванию (для небольшого приложения, я люблю его.)
- Легко масштабировать Может управлять несколькими экземплярами приложения за балансировщиком нагрузки (приложение Sohuld BE без гражданства. О беззвененном/штате -> https://www.redhat.com/en/topics/Cloud-native-apps/stateful-vs-vscateless Несомненно
Недостаток монолитной архитектуры
- Трудный процесс развивается для большой команды Представьте себе, у вас есть 100 разработчиков в проекте. У вас есть 50 или более коммит, слияние или потяните запрос каждый день. Они делают верхний процесс для вас.
- Медленное развертывание, когда большой исходный код Verilog для сборки, компиляции, развертывания и тестирования.
- Трудно для Mange Resource Некоторые Bussiness Logic Code используют множество таких ресурсов, как функция генерации отчета. Вы не можете отделить ресурс, потому что вся бизнес-логика хранится в том же исходном коде
- Влияние скомпилированного кода сломана Некоторые Devloper делают какой-то код брокера в исходном коде, приведя во внимание все скомпилированные код.
- Технологический стек блокировки пример У вас есть приложение Java и получите новую функцию. Вы пробуете внедрение приложения с Golang для новой функции и приложения Golang имеют производительность и управлять ресурсом больше, чем приложение Java, но вы не можете адаптироваться к основной заявке, потому что ваше главное приложение скомпилировано с Java.
Производительность в области программного обеспечения
( https://martinfowler.com/bliki/microservicePremium.html )
На рисунке вы можете увидеть, когда вы реализуете программное обеспечение с помощью монолита, такие как Добавить функцию или код Refactor, когда исходный код большой, у вас есть много времени, чтобы скомпилировать тестовый тест на единицу и построить код исходного кода, приводящих к тому, что одна из которых используется для медленного производства, но вы реализуете программное обеспечение с помощью программного обеспечения микропроводящий так же, как. Время COMPILE и сосредоточить фокус в новом коде функции или код рефакторов, а не влиять на другой результат услуг, и о управлении GIT вы можете отделить исходный код, а команды разработчиков помогут вам снизить управление GIT, такими как многие Compartion и Pull Proke.
Все о развертывании и разработке процесса развертывания приводят к увеличению производительности микровисса, чем монольфов, когда ваше приложение растет нанесение.
Архитектура микросервиса
Микросервисы — это архитектурный стиль, который структурирует приложение как коллекцию услуг которые
- Высокогодные и тестируемые
- Слабо связанный
- Независимо развернут
- Организовано вокруг бизнес-возможностей
- Принадлежит небольшой команде
Преимущество микро архитектуры
- Он включает непрерывную доставку и развертывание Включить для инструментов CI/CD для развертывания
- Сервис маленький легко поддерживается
- Сервис развертывает независимость О развертывании вы не должны перекомпилировать все услуги.
- Услуги независимо от масштабируемой Когда одна масштаб обслуживания все услуги не нужно масштабировать.
- Включить для отдельной команды Вы можете отделить большую команду для многих маленьких команд для реализации и управлять каждой услугой.
- Разрешить простое эксперименты и принятие новых технологий Вы можете отделить услугу и команду для реализации новой кадры или нового языка программирования.
- Увеличьте надежность Когда какой-то сервис снизится, но другой сервис все еще может работать.
Недостаток микро архитектуры
- Поиск правильного набора услуг сложно
- Увеличить комплекс Распределенные системы являются сложными, что делает развитие, тестирование и развертывание сложно
- Увеличить сетевой трафик Complex Развертывание функций, которые охватывают несколько услуг, требуют тщательной координации.
- Принять архитектуру микросервиса сложно Micro Service поможет вашему решению, у вас есть большой исходный код и разработчик большой команды, но о многих процессах Suach в качестве процесса тестирования, надежный процесс создания кислотной транзакции, процесс развертывания и уборщиков изменится от монолита.
Вывод
Когда у вас есть небольшой проект, демонстрационный проект и монолитная архитектура небольшой команды — это хороший способ использовать в devlop вашу программную архитектуру. Когда ваш проект растет, придет много функций, или у вас будет большая команда. Microsevice Architect — это одно из хороших способов разработки вашей архитектуры программного обеспечения, но когда ваш ADAOPT у вас новый процесс разработки и сохранения вашего приложения и закономерности книги ( https://www.amazon.com/microservices-Patterns -Ексексуалы-Chris-Richardson/DP/1617294543 ) — один из хороших ресурсов для того, чтобы помочь вам разработать приложение с микросервисом.
Оригинал: «https://dev.to/panupongdeve/monolithic-vs-microservice-what-do-you-choose-5bkf»