Conforme estudo realizado na plataforma da Azure, foram observados cenários computacionais gerando melhores insights dentro de sua arquitetura computacional.
As recomendações desta página são baseadas nos testes de Benchmark realizados pelo time de Engenharia de Dados nas Máquinas Virtuais disponíveis da Azure.
Nos testes, foram utilizados Windows e Linux; constatamos que o Linux obteve melhor desempenho (em torno de 15% de melhora) quando comparado ao Windows dentro da arquitetura da Azure. Usando escalabilidade, o Linux obteve os melhores cenários.
VMs recomendadas
Foram testados diferentes VMs. A série que apresentou melhor performance foi a DSv2, que pode ser visualizada na documentação da fornecedora ou na planilha abaixo.
Configuração de cenário
Atenção
- Máquina Primária: Possui a função de Gateway, direcionando as conexões para os Secundários. Se conecta nas máquinas Secundária, Secundária VIP, WF/WB/SCH/JOB, e Database.
- Máquina Secundária: De 1 a N, recebe as requisições da Primária para processamento. Não é recomendado instalar outros serviços. Elas podem ser escalonadas horizontalmente conforme a necessidade. Estas máquinas recebem conexões de usuário e processos.
- Máquina Secundária VIP: Para cenários que necessitam de alta disponibilidade, pode ser definido uma VM das pré-desenhadas que não será desligada quando o consumo estiver abaixo de 10%. Neste cenário, é importante a configuração de um broker (balanceamento de carga) exclusivo após a escolha do blueprint.
- Máquina WF/WB/SCH/JOB: Este servidor pode servir para Work Flow, WebService, Scheduler ou Jobs.
- Database: Recomendamos uma máquina específica dedicada ao banco de dados.
Máquina TSS (SPED): Recomendamos que uma máquina específica seja dedicada ao TSS.
Para ambientes com C-Tree Server, recomendamos, além do Storage Pool (Windows) ou LVM (Linux), os seguintes vm´s:
- Máquina Primária: VM Standard DSv2, com C-Tree, App Broker, App Broker VIP, App Compilação, App Balance (monitor), License Server, DBAccess SPOFless, DBAccess Secundário; Para o sistema operacional, recomendamos o disco Standard SSD para a unidade C:/ (Windows) ou /.(root) (Linux). Para a protheus_data, binários e repositório de dados do Protheus, recomendamos o disco Premium SSD, considerando a combinação do storage pool (Windows)/LVM (Linux). Leve em consideração o cálculo do throughput provisionado, conforme:
Quantidade | Disk tier | Tamanho | IOPS provisionado | Throughput provisionado |
---|---|---|---|---|
4 x 128GiB | P10 | 512 GiB | 2000 | 400 MB/s |
4 x 256GiB | P15 | 1024 GiB | 4400 | 500 MB/s |
4 x 512GiB | P20 | 2048 GiB | 9200 | 600 MB/s |
- Máquina(s) Secundária(s): VM Standard DSv2, com Boundserver, AppServer Secundários, DBAccess Secundário. Para o sistema operacional, recomendamos o disco Standard SSD para a unidade C:/ (Windows) ou /.(root) (Linux); Para a unidade dos binários e repositório de dados do Protheus, recomendamos o disco Premium SSD.
- Máquina VM WebService/Job/Workflow: VM Standard DSv2, com Protheus WEBRest, Protheus WEBService, Protheus Workflow, Protheus JOB, Protheus Schedule, Protheus Mobile, e um DBAccess em modo Secundário. Para o sistema operacional, recomendamos o disco Standard SSD para a unidade C:/ (Windows) ou /.(root) (Linux). Para a unidade dos binários e repositório de dados do Protheus, recomendamos o disco Premium SSD.
- Máquina VM TSS: VM Standard DSv2, com Broker (balance), Appserver Secundários e DBAccess (Single). Para o sistema operacional, recomendamos o disco Standard SSD para a unidade C:/ (Windows) ou /.(root) (Linux). Para a unidade dos binários e repositório de dados do Protheus, recomendamos o disco Premium SSD.
Não há necessidade do Storage Pool (Windows) ou LVM (Linux) para cenários com o dicionário no banco de dados, pois o workload está direcionado para o banco de dados.
Para ambientes com Dicionário no banco recomendamos os seguintes VM's (lembrando que, quanto maior o tamanho do disco, mais performático será o throughput):
- Máquina(s) Secundária(s): VM Standard DSv2, com AppServer Secundários e DBAccess Secundário. Para o sistema operacional, recomendamos o disco Standard SSD para a unidade C:/ (Windows) ou /.(root) (Linux). Para a unidade dos binários e repositório de dados do Protheus, recomendamos o disco Premium SSD.Máquina Primária: VM Standard DSv2, com C-Tree, App Broker, App Broker VIP, App Compilação, App Balance (monitor), License Server, DBAccess SPOFless, DBAccess Secundário; Para o sistema operacional, recomendamos o disco Standard SSD para a unidade C:/ (Windows) ou /.(root) (Linux). Para a unidade dos binários e repositório de dados do Protheus, recomendamos o disco Premium SSD.
- Máquina VM WebService/Job/Workflow: VM Standard DSv2, com Protheus WEBRest, Protheus WEBService, Protheus Workflow, Protheus JOB, Protheus Schedule, Protheus Mobile, e um DBAccess em modo Secundário. Para o sistema operacional, recomendamos o disco Standard SSD para a unidade C:/ (Windows) ou /.(root) (Linux). Para a unidade dos binários e repositório de dados do Protheus, recomendamos o disco Premium SSD.
- Máquina VM TSS: VM Standard DSv2, com Broker (balance), Appserver Secundários e DBAccess (Single). Para o sistema operacional, recomendamos o disco Standard SSD para a unidade C:/ (Windows) ou /.(root) (Linux). Para a unidade dos binários e repositório de dados do Protheus, recomendamos o disco Premium SSD.
Os Proximity Placement Groups realizam o agrupamento lógico de recursos, e aproximam o posicionamento destes de maneira a diminuir a latência de rede e, consequentemente, reduzindo o risco de erros ocasionados por falhas relacionadas à distribuição de carga de trabalho. Este recurso está disponível para todas as regiões de nuvem pública da Azure (excluindo a India central), e é possível mover recursos já existentes para um Proximity Placement Group ou para fora deste.
Recomendamos, para o Protheus, o uso deste recurso, por diminuir a latência de rede entre os recursos.
Consulte a documentação da fabricante para mais informações sobre o recurso Proximity Placement Groups.
Você também pode consultar o anúncio de disponibilidade geral deste recurso e o post de apresentação do Proximity Placement Groups.
Atenção
Para minimizar a latência, escolha a região mais próxima à sua localização.
Para redes: visando segurança e melhores práticas, recomendamos trabalhar, no mínimo, com VNet para cada tipo de uso (Produção, Homologação e Desenvolvimento) e cada com duas subnets, sendo a primeira privada contendo as Appls e a segunda privada contendo as databases.
Para segurança:
- Use os grupos de segurança de rede (NSG) para permitir somente as portas necessárias (siga o modelo de least privileges para grupos e usuários)
- Habilite MFA para usuários administradores
- Use criptografia em trânsito e em armazenamento.
Para agrupamento de recursos:
Produção Aplicação Database | Homologação Aplicação Database | Desenvolvimento Aplicação Database |
BoundServer/BoundClient
Blueprints recomendadas de acordo com cada quantidade de usuários simultâneos
Atenção
Nos cenários onde uma máquina não pode ser desligada, é possível utilizar uma máquina secundária VIP, que ficará disponível em períodos de baixo consumo de recursos.
Abaixo, sugerimos as VMs de cada máquina Secundária, de acordo com as quantidades de usuários.
Para ambientes que não terão as quantidades anteriores mencionadas de usuários simultâneos, recomendamos a mescla das máquinas recomendadas conforme sua necessidade, podendo variar entre VM Standard DS2v2, DS3v2 ou DS4v2, com AppServer Slaves, Boundserver e DBAccess Slave. Para o sistema operacional, recomendamos o disco Standard SSD para a unidade C:/ (Windows) ou /.(root) (Linux). Para a unidade dos binários e repositório de dados do Protheus, recomendamos o disco Premium SSD.
No exemplo abaixo, são definidas quatro VMs, com dois Appserver cada, e o exemplo para a configuração do Broker. Na seção [BALANCE_SMART_CLIENT_DESKTOP], as chaves REMOTE_SERVER_XX são referentes aos IPs de cada VM; estes endereços, portas e quantidades de usuários exibidos são meramente ilustrativos.
O limite de processamento refere-se à quantidade que pode ser consumida sem atingir o limite de saturação. Neste cenário, o limite é considerado ao respeitar a quantidade de recursos estipulada ou utilizando até 60% de CPU.