Executando verificação de segurança...
1

Como posso criar um ambiente de teste do zero ?

Olá time, recentemente venho estudando Devops e Backend e fui recentemente selecionado para ser o devops de um projeto do time de TI, Mas me deparei com uma coisa, eu nunca fiz um ambiente de teste que seja necessário mais que 1 (no caso eu) usar.
Sempre que precisamos iniciar um projeto por si só, geralmente se começa em sua propiá máquina e o ambiente teste é o famoso 127.000..., mas quando precisamos fazer para um time de Ti que trabalharão de maneira remota, como funciona?
OBS:( eu juro que pesquisei, mas só vejo o pessoal ensinando a usar as ferramentas de uso, mas nunca como podemos fazer independente da ferramenta

Detalhes do projeto: vamos construir um site que mostrará uma tabela de uma base de dados de funcionários da empresa(ou seja, tanto os novos quantos os já desligados) esses funcionários têm celulares, notebook e termos, totalizando o banco deve chegar em uns 10Gib de, no site só terão 4 user ( que são os devs envolvidos)

AS MINHAS DUVIDAS SÃO:
1.º devo criar 3 maquinas virtuais (1 pro ambiente de teste, uma pro ambiente de produção e 1 pro banco), ou posso simplesmente fazer um servidor com 3 contêiner em docker para cada e trabalhar assim mesmo?

2.º devido todos trabalharmos de casa, como faço para o servidor (tanto o de produção quanto o de teste, puxarem os dados do git dos devs que estão no projeto?)

3.º já no caso do site, ele no momento do teste vai ser mandado para um local host do servidor (ou docker ) que ele esta e depois que ele for mandando pro ambiente de produção?, ai, sim, que vai ser mandando pro real em produção?

VLW PELA AJUDA, OBRIGADO POR ME AJUDAREM EM MEU DESENVOLVIMENTO.

Carregando publicação patrocinada...
1

chegou a olhar um pouco sobre pipelines de CI/CD? de uma olhada em github actions ou jenkins.

normalmente você desenvolve local mesmo (não há necessidade de ter um clone do ambiente de dev pra cada desenvolvedor), cria os testes e tudo mais e quando envia para o git, a pipeline roda e atualiza o ambiente de testes integrado.

depois desse ainda pode ser que passe por um ambiente de homologação para só então chegar ser promovido até produção.

normalmente usa-se infras separadas (porem com mesmas versões de software) para cada ambiente, o ambiente produtivo por exemplo, pouquissimos terão acesso.

sobre a estrutura em si, se será docker ou vms, vai depender muito do que pretende fazer, quanto pretende gastar e talvez até a stack que usa

1

Quando se fala de ambientes, temos alguns comumente utilizados:

local/dev/sandbox:

Aquele ambiente que roda na maquina local do desenvolvedor. Geralmente é um ambiente mais aberto, com ferramentas de debug/profiling, configurações de log de erro mais abertas, sem muita preocupação com segurança.

No caso de um sistema que trata de informação sensíveis, o ideal é wue nesse ambiente jamais se utilize dados reais. Para isso seu sistema deve ter um bom script de seeding (alimentador de banco de dados) que crie dados realistas o suficiente para permitir desenvolver e testar.

Em geral é acessado apenas localmente, mas as vezes é preciso compartilhar com outro dev para discutir, mostrar e testar algo. Nesse caso libere via rede local o acesso, ou caso de remoto, use um ngrok da vida.

Staging/homologação

É o ambiente que usamos para validar uma determinada versão. Nesse ambiente é mais comum diversos programadores/testadores acessarem.

também não se deve utilizar dados reais.

Produção

É o ambiente que vai ser utilizado pelo usuário final. Toda preocupação com segurança é pouca. Poucas pessoas devem ter acesso ao servidor, backup é uma preocupação obrigatória, firewall restritivo, uma boa ferramenta para analise de logs e auditoria.