Bom pessoal, o seguinte, no nosso capítulo anterior, o que a gente fez? A gente falou um pouco sobre arquitetura baseada em micro serviços, falamos um pouco sobre monolitos e agora, sabe aquela história de desenha que fica um pouco mais claro para todo mundo? Então eu quero trazer aqui alguns desenhos, somente para que você consiga internalizar tudo que a gente já falou legal então o nosso primeiro ponto aqui que nós vamos entre aspas desenhar é sobre um monolito clássico que acaba assim conseguindo escalar então vamos fazer o deixa eu colocar esse cara aqui, somente para tentar deixar o mais claro possível aqui para você. Legal? Então vamos colocar esse cara aqui. E aqui está o nosso monolito clássico e escalável. E o porquê que eu estou dizendo isso? Porque toda vez que a gente está falando em um monolito clássico normalmente a gente está falando em um sistema tá então esse cara que é o sistema e dentro do sistema nós temos o que diversos componentes a gente tem módulos dentro do mesmo sistema a gente tem as classes dentro do mesmo sistema ou seja a gente tem aquilo que faz com que o nosso sistema funcione legal normalmente também a gente tem um banco de dados ou pode ter até mais bancos de dados aí é uma questão apenas de ajuste mesmo depende do que o sistema faz normalmente também a gente pode ter ali um banco de dados de cash e também né o que acontece conforme o nosso sistema ele for a crescendo a nossa demanda né de acesso foi crescendo o que vai acontecer a gente coloca um balanço e um e peguei aqui na frente não importa tá ea gente começa a crescer o quê? Horizontalmente. Ou seja, ora a requisição vai cair aqui, ora a requisição vai cair aqui. Então, isso aí é um monolito clássico, vamos dizer assim. Agora, lembrando um pouco aqui para você, dizer assim agora lembrando um pouco aqui pra você nós temos dois formatos de a escala é de de crescimento e do nosso sistema um é o vertical que nesse caso aqui a gente aumenta o nosso hardware para aguentar mais requisições legal e o outro é a horizontal que a gente coloca mais máquinas na maioria das vezes o caso mais sustentável vai ser crescer horizontalmente porque vai chegar num momento que você não vai ter mais máquina para suprir e o valor da máquina que você vai pagar aqui vai ser mais alto do que você ter diversas pequenas máquinas tá então isso aí é um ponto importante aqui pra você agora lembrando que nós temos alguns pontos que você tem que levar sempre em consideração na hora de escalar qualquer tipo de sistema independente se ele é um micro serviço ou se é um monolito tá quais são esses pontos que você tem que pensar vou até colocar aqui do lado como observação tá o disco tem que ser e efêmero tá deixa até colocar aqui como um verdinho aqui pra ficar claro o que significa que o disco tem que ser efêmero significa que todos os dados que são armazenados em disco no seu sistema por exemplo um upload de um arquivo tá aqui um upload de arquivo por exemplo o que acontece quando essa máquina foi removida esse dado também vai ser removido tá então você na hora que você for por exemplo fazer um upload você não vai fazer o piloto no próprio disco da sua aplicação porque você tem que pensar que essa aplicação ela pode morrer a qualquer momento aí você pode subir no cloud storage num s3 da vida ou em algum outro local onde você guarda né arquivos é um local persistente realmente de dados tá então se você começar a gravar arquivos específicos aqui tá é o que vai acontecer quando o usuário acessar que o arquivo vai estar aqui quando o cara acessar aqui o arquivo não vai estar aqui e quando esse cara morreu você perde completamente os arquivos né outro ponto importante que você vai ter que também aqui levar em conta vai ser o seguinte os blogs também tá devem ser os blogs devem ser a como eu posso colocar os logins devem ser uploadados tá o que isso significa significa que tudo que você tiver de log ali na sua aplicação tá os logs também não vão poder ficar armazenados nessa máquina porque se a máquina for apagada você vai perder os logs de tudo que aconteceu tá esse aí também um outro ponto importante outro ponto importante aqui também as sessões dos usuários elas não podem ficar armazenados em disco tá seções usuários os versos disco porque se ficar armazenado em disco uma hora o usuário vai estar autenticado outra hora ele não vai ser autenticado quando essa máquina morrer perde a sessão e vai ficar uma coisa muito maluca ali a lógica aqui tá é a seguinte todas as vezes que você criar qualquer tipo de sistema tá e esse sistema ele pode ser destruído criado novamente né o o software a morrer e daí você recria ou você escala começa a criar mais máquinas a regra é a seguinte o seu software eles têm que estar pronto para ser destruído e ser recriado novamente sem gerar nenhum efeito colateral de perda de dados se o comportamento da sua aplicação mudar pelo fato tá se o comportamento da sua aplicação mudar pelo fato de você destruir a aplicação e subir ela de novo significa que você está armazenando o que? Estado. Esse aqui é o principal ponto, tá? Não armazenar Estado. Toda vez que você armazena Estado, o que vai acontecer? Você vai poder perder a aplicação. Então, siga essas regras, tá? Isso aqui também, existe um documento bem interessante que eu vou deixar aí para vocês, que é o 12 Factor App, que foi criado pela galera do Heroku, onde é falado muito sobre, vamos dizer assim, essas regrinhas para que você consiga, sim, criar de forma sustentável sistemas que vão poder escalar, desescalar, sem nenhuma perda de dados. De uma forma ou de outra, isso aqui é independente se você está trabalhando com microserviços ou sistema monolítico. Mas, de forma geral, toda vez que a gente vai trabalhar com sistemas clássicos monolíticos, normalmente você vai ter um comportamento pelo menos um pouco parecido com isso que eu estou mostrando agora. Agora, tem alguma coisa de errado fazer esse tipo de abordagem? Absolutamente não. Não tem nada de errado. O que você vai perceber é que conforme você for trazendo muito, muito acesso, a gente tende a ter um gargalo aqui, porque aqui a gente está conseguindo escalar. Então, normalmente, o gargalo começa a ficar maior aqui no banco de dados. Hoje em dia, a gente tem tecnologias muito bacanas de bancos de dados que conseguem escalar muito bem também. Então, até você ter um gargalo muito forte no banco de dados, pode ser que demore, mas o custo também pode ficar bem elevado. A mesma coisa aqui no cache. Bacana? bem elevado tá a mesma coisa aqui no cash bacana então tá aqui uma idéia de um sistema monolito monolítico clássico que normalmente aí você vai conseguir escalar até o nosso próximo vídeo