![]() |
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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Entity Framework - Conceitos Básicos - Uma visão geral - Macoratti
ASP .NET Core - Acesso ao MySQL c/ EF Core usando o Docker no Linux - I