Olá, pessoal! Tudo bem?
Estou com uma dúvida conceitual e prática sobre arquitetura .NET no Azure, que surgiu após uma aula.
Contexto:
Durante a aula, desenvolvemos uma aplicação que utilizava um banco de dados SQL Server rodando localmente em um container Docker. Em um segundo momento, para simular um ambiente de produção na nuvem, publicamos essa imagem do SQL Server como uma Azure Container Instance (ACI).
A minha dúvida principal é sobre a robustez e segurança dessa abordagem em um cenário real.
Minhas Questões:
Persistência e Perda de Dados: Se o container da minha Azure Container Instance que está rodando o SQL Server cair, for reiniciado ou apresentar uma falha, o que acontece com os dados? Eles são perdidos? Como garantir a persistência dos dados nesse cenário?
Segurança da Abordagem: É considerado seguro expor um banco de dados dessa maneira, diretamente a partir de um container? O Azure SQL, como serviço gerenciado, não ofereceria camadas de segurança mais robustas e já configuradas por padrão?
Resiliência e Alta Disponibilidade: Como a resiliência de um SQL Server em uma Container Instance se compara com a do serviço PaaS (Plataforma como Serviço) Azure SQL Database? O Azure SQL já oferece SLAs (Acordos de Nível de Serviço) de disponibilidade, backups automáticos, replicação geográfica e failover. É possível (e viável) replicar esse mesmo nível de resiliência e confiabilidade usando apenas containers?
Em resumo, gostaria de entender as vantagens e desvantagens de cada abordagem e em que cenários seria recomendado utilizar um banco de dados "containerizado" em vez do serviço gerenciado que a própria Azure oferece.
Agradeço muito a quem puder compartilhar experiências e conhecimentos sobre o tema!