Bom pessoal, para a gente começar a falar sobre arquitetura baseada em micro serviços, a gente tem que falar sobre sistemas monolíticos, tá? Porém, eu não quero ficar chovendo muito no molhado, explicando detalhe por detalhe de sistemas monolíticos aqui para vocês. Porém, existem algumas características que a gente vai utilizar em via de comparação entre sistemas monolíticos em micro serviços para que nós possamos entender quando que utilizar micro serviços faz sentido tá e no final das contas também o que são micro serviços tá então o que eu tenho aqui galera eu tenho um pequeno resumo que aos poucos eu vou trazendo aqui para vocês para eu não ficar digitando de do zero aqui no escala e drop tá então deixa eu colar isso aqui aqui para você para que você consiga entender um pouquinho melhor tá vamos lá vamos falar sobre sistemas monolíticos eo porque esses caras são tão importantes aqui pra gente legal então vamos lá galera sistemas monolíticos todos os escopos e áreas dentro de um mesmo sistema tá então vamos imaginar que um sistema monolítico ele é um único sistema onde tudo está dentro desse mesmo sistema todos os componentes todas as áreas todos os contextos tudo que você precisar utilizar vai estar dentro de um mesmo sistema ou seja na maioria das vezes quando a gente está trabalhando em alguma empresa ou a gente desenvolve algum sistema provavelmente a gente está desenvolvendo um sistema monolítico tá pra você fazer uma comunicação entre o sistema basta instanciar uma classe fazer uma chamada um serviço e que você já vai tá falando dentro desse sistema outro ponto importante aqui todas as equipes elas trabalham em um mesmo sistema ou seja vamos imaginar que você tem uma squad duas três quatro não interessa e você tem que entregar lá por exemplo aquele sistema financeiro então as escolas elas tentam se organizar para que uma consiga mexer numa parte diferente do sistema inclusive para evitar tipos de conflitos, para você poder trabalhar ali com o seu monolito, legal? Então é muito comum acontecer isso e com certeza, para que isso aconteça, você tem que ter o mínimo de organização para evitar conflitos no Git, inclusive também para você evitar quebrar o sistema do coleguinha que está mexendo em outra parte. Então eu não preciso nem falar aqui para você que para você trabalhar com sistemas monolíticos, inclusive com microserviços, mas também mais especificamente com sistemas monolíticos, você precisa ter testes, porque senão o fulano que está mexendoendo uma outra parte do sistema vai quebrar sua parte sem perceber então trabalhar com testes automatizados é algo fundamental um outro ponto importantíssimo quando nós estamos falando sobre sistemas monolíticos é que é muito mais fácil começar um novo projeto. Por que eu estou dizendo isso? Porque tudo vai estar no mesmo projeto, as pastas que você vai organizar vai estar no mesmo projeto, você vai evitar comunicação desnecessária, você vai evitar ficar trabalhando com filas, ficar fazendo milhares de chamadas REST para pegar os mesmos sistemas, tudo vai estar no mesmo banco de dados, para gerar relatórios vai ser mais tranquilo. Então, toda vez que você for começar um novo projeto, é muito simples, entre aspas, devido às proporções e às dificuldades de negócio desse projeto, você começar ali trabalhando com um sistema monolítico legal a um outro ponto importante aqui é que ele atende facilmente grande parte dos projetos em diversos tipos de empresa tá o que eu tô querendo dizer com isso é o seguinte galera na maioria das vezes na maioria das empresas que você for trabalhar provavelmente esse sistema monolítico ele vai atender tá porque eu estou dizendo isso porque vai estar tudo no mesmo sistema é mais fácil fazer o de ploy você vai precisar apenas de uma pipeline de se a exigir você vai ter que ter apenas uma organização para conseguir subir esse sistema no ar o processo de teste mais simples né então tudo acaba ficando mais tranquilo para você conseguir trabalhar e obviamente pessoal quando a gente está falando em empresa está falando em dinheiro então dependendo da situação trabalhar com sistemas monolíticos ele ele vai te economizar você vai ter menos infraestrutura para gastar você vai ter menos recursos computacionais para poder fazer o de ploy então na maioria das vezes aqui também trabalhar com sistemas monolíticos vão te ajudar bastante tá um outro ponto importante aqui, e aqui eu não digo necessariamente que é uma desvantagem, mas é uma característica que você vai ter que aprender a viver com. Que é o seguinte, você tem restrição de uso de diversas tecnologias como linguagens de programação. Como assim? Você está fazendo inteirinho o seu sistema monolítico em php legal daí de repente tem uma rotina ali no seu sistema monolítico que você sabe que se fosse feito em gol que se fosse feito em java ou em qualquer outra linguagem seria mais rápido seria mais produtivo não interessa qual seja essa rotina não tem jeito você vai ter que trabalhar e fazer essa parada com php legal então é uma restrição é o preço que você paga por ter escolhido esse tipo de decisão não significa que isso está errado porém tá novamente você tem essa restrição e você vai ter que aprender a viver com essa restrição por outro lado, você tendo essa restrição você garante que tudo vai estar rodando de forma uniforme ou seja, tudo com a mesma linguagem, tudo com o mesmo padrão os profissionais que vão estar trabalhando os profissionais que vão trabalhar com esse tipo de sistema vão estar sendo treinados apenas em uma linguagem, então provavelmente em aspectos de produtividade, dependendo da situação, você vai ter uma ótima produtividade também, de forma indireta pelo fato que você tem uma restrição de uma única tecnologia um outro ponto importante aqui também está é o processo de comunicação processo de comunicação é algo crítico porque porque micro serviços tá tem diversos escopos cada micro serviço que você vai trabalhar tem uma função pré-definida e como essas funções elas podem estar em sistemas diferentes esses sistemas eles têm que sair se comunicando de todas as formas com filas via rest com gpc com grefg que o el com diversas formas de comunicação para facilitar a vida agora se tudo isso está dentro do mesmo sistema o que acontece no final das contas você não tem essa preocupação a comunicação dos dados vai vai acontecer em memória e somente dentro da mesma aplicação então você tá aí nesse caso nos melhores dos mundos você tem que evitar recursos como circuit breaker você vai ter que evitar políticas de retry então diversas com a complexidade vão cair por terra porque tudo está no mesmo sistema inclusive a parte de troubleshooting né se você tem um erro naquele sistema é muito mais fácil você saber onde esse erro está do que necessariamente sair caçando ali em diversos outros sistemas em qual momento esse erro aconteceu legal agora tem um ponto também importante quando a gente está falando sobre micro serviços que a partir de depor porque a eu acredito que você já ouviu falar naquela história de não coloque né é todos os ovos na mesma cesta porque eu estou dizendo isso porque no caso do sistema monolítico quando você faz o deploy o que vai acontecer se der errado esse deploy tudo vai cair todas as áreas da empresa vai cair então é um risco maior tá você condensar tudo em um único sistema para quando você fizer o deploy tudo cai se você está trabalhando numa arquitetura baseada em micro serviços você vai ter diversos sistemas e se apenas um cair, o que vai acontecer? Os outros vão continuar no ar. Então é extremamente importante você entender isso. E é por isso que políticas de teste, trabalhar com formatos diferentes de deploy, sei lá, um blue-green, por exemplo exemplo que replica a mesma infraestrutura e muda o tráfego para esse outro sistema estudo tiver ok ele apaga a infraestrutura e se não tiver o que ele simplesmente roteia novamente para infraestrutura antiga a vai facilitar muito a sua vida então no final do dia pessoal o que acontece é muito comum trabalhar com sistemas monolíticos a talvez você já tenha ouvido a falar sobre isso né trabalhar monolito furs e coisas desse tipo mas aqui tem algumas argumentações que eu quero trazer pra você pra você guardar e na sua casa caixola vamos dizer assim pra você ter razões claras para utilizar ou não utilizar sistemas monolíticos legal então era isso que eu queria trazer aqui pra você nessa aula eu sei que ela ficou um pouco grandinha mas é muito importante você ter clareza sobre tudo isso maravilha então até o nosso próximo vídeo