Docker - Alguns Motivos para usar o Docker

 Neste artigo vou apresentar alguns motivos para usar o Docker no ambiente .NET Core.

Se você não conhece o Docker sugiro que acompanhe a série de artigos : Docker uma introdução básica

Vamos agora apresentar alguns motivos que são essenciais para que você se encorage a usar o Docker com a plataforma .NET.

1.- Esqueça o sistema operacional e configurações manuais

Normalmente, quando você configura uma máquina física ou virtual, precisa instalar o sistema operacional, o software de que seu aplicativo precisa (servidores da Web, SDKs, bibliotecas, ...) e executar as configurações específicas de que o aplicativo precisa.

Se você usar o Docker, poderá especificar tudo isso no seu dockerfile e, sempre que o ambiente for iniciado, ele garantirá que o software apropriado seja instalado no contêiner.

Quando atualizações forem necessárias, você pode simplesmente atualizar a definição do contêiner e reimplementá-lo. Isso pode reduzir bastante o tempo de manutenção.

2.- "Mas ... na minha máquina funciona"

Se você é desenvolvedor alguma vez já disse isso ao seu cliente, e, se você já esteve no papel de cliente talvez tenha ouvido tal frase também.

E não há nada mais frustrante do que ter um aplicativo pronto e testado (em sua máquina) e ao levá-lo para produção ver que ele começa a falhar.

Com o Docker isso é coisa do passado. O que o Docker oferece é, acima de tudo, consistência. Garantindo que o que vai dentro de um contêiner será executado da mesma maneira em sua máquina e em qualquer outro lugar no mundo, aqui e na China, não tem preço...

Se funcionar em desenvolvimento, funcionará na produção porque são a mesma coisa. Simples assim.

3.- Contêineres são mais leves e escaláveis que uma máquina virtual

Quando você define uma máquina virtual, precisa especificar quantos recursos (memória, processadores, disco ...) da máquina host alocará no momento em que a criar. Esses recursos também ficam indisponíveis para o sistema operacional subjacente.

Pelo contrário, um contêiner Docker usa apenas os recursos necessários a qualquer momento. E você também pode implantar várias instâncias do mesmo contêiner ao mesmo tempo, sem a única opção de fornecer mais e mais recursos de hardware a um contêiner pré-existente.

Além disso, você pode controlar o consumo de recursos do host ao qual um contêiner ou um conjunto deles terá acesso. Se um determinado contêiner estiver sobrecarregado por ter muito uso, ele não monopolizará todos os recursos da máquina ou fará com que outros contêineres caiam nesse host.

Se você também quiser recursos mais poderosos, Kubernetes permite orquestrar todos os seus contêineres, monitorá-los, protegê-los, executá-los periodicamente, e criar ambientes corporativos com a complexidade que você precisa.

4.- Tão seguro quanto uma máquina virtual

Os contêineres Docker usam os recursos da máquina host, mas eles têm seu próprio ambiente de runtime. Eles têm uma versão reduzida do espaço do usuário do sistema operacional. Isso significa que você pode proteger um contêiner de uma forma muito semelhante ao que você faria em uma máquina real, já que no fundo é quase como se fosse uma máquina real.

Um contêiner não pode acessar outros contêineres ou o sistema operacional subjacente (exceto os volumes de armazenamento aos quais você concede permissão) e se comunicará com outras redes e contêineres, com a configuração de rede específica que você deseja conceder.

Tenha em mente que um container o isola tanto quanto uma máquina virtual, mas é muito menos pesado, requer menos configuração e faz isso com total segurança

5.- Concebido para funcionar na nuvem

Os contêineres foram pensados com a nuvem em mente. E, atualmente, os principais atores do Cloud oferecem ótimas opções para a implantação de contêineres em suas infraestruturas.

Assim, tanto a Amazon Web Services, como o Microsoft Azure ou o Google Compute Engine (entre muitos outros), permitem que você implante contêineres na nuvem de maneira bem simples, usando a linha de comando ou ferramentas visuais. Eles ainda permitem que você fature os contêineres por segundo, o que abre um mundo de possibilidades.

Além disso, todos eles suportam o Kubernetes para poder fazer implementações complexas de vários contêineres orquestrados para funcionar e dimensionar independentemente.

Implantar infra-estruturas simples ou complexas nunca foi tão fácil quanto agora.

6.- Vantagens concretas para .NET

Outra vantagem do Docker é que ele também pode ser usado para unificar os ambientes de desenvolvimento e o fluxo de trabalho. Ou seja, você não precisa instalar os seus SDKs de trabalho ou compiladores : você define um ambiente de trabalho baseado em imagens Docker para toda a equipe, e assim,  você garante que todos possuem exatamente o mesmo ambiente e que tudo vai se comportar da mesma forma.

A Microsoft está contribuindo muito com a comunidade do Docker e oferece uma integração muito boa do Docker e desses fluxos de trabalho em suas ferramentas para desenvolvedores, tanto no Visual Studio e no Visual Studio Code, quanto no Team System.

Se você criar aplicativos .NET Core e, especialmente, aplicativos da Web com .NET Core MVC, eles poderão trabalhar em contêineres do Linux da mesma maneira que qualquer aplicativo de linguagem com Node.js, Go, PHP ou outros que tenham sido usados ​​nesse sistema. .

Há algum tempo, os contêineres tradicionais do Linux funcionam no Windows Server (e no Windows 10: você não precisa de Linux ou Mac para trabalhar com o Docker), agora temos também contêineres nativos do Windows, que permitem executar como contêiner aplicações deste sistema operacional.

Isto significa que se, por exemplo, você tem uma aplicação Web Forms feita no velho e bom ASP.NET, você poderá usá-la em um contêiner e obter todas as vantagens que isso lhe dá, podendo ainda combinar com outros contêineres de aplicativos e implantá-los na nuvem.

A ASP.NET Core usa o Kestrel para atender aos aplicativos e você deve usar algum proxy reverso para o Kestrel para fornecer os recursos de um servidor de aplicativos real. Se seus aplicativos forem implantados em contêineres, você consegue isso de várias maneiras padronizadas : desde o uso de um proxy NGINX específico de uma imagem já criada até o uso do Ingress no Kubernetes.

Embora o Docker tenha sido criado para o Linux, seu uso na plataforma .NET e Windows não pára de crescer e está melhorando. A Microsoft trabalha em estreita colaboração com a equipe do Docker e sua comunidade.

Como vimos motivos é que não faltam para você conhecer e começar a usar o Docker.

O que esta esperando...

(disse Jesus) - "E a vida eterna é esta: que te conheçam, a ti só, por único Deus verdadeiro, e a Jesus Cristo, a quem enviaste."
João 17:3
 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti