A computação em nuvem (cloud computing) em Portugal é dominada pelos três grandes provedores globais: Amazon Web Services (AWS), Microsoft Azure e Google Cloud Platform (GCP). Estes fornecedores oferecem uma vasta gama de serviços (IaaS, PaaS, SaaS) que permitem a empresas e profissionais em Portugal armazenar dados, desenvolver aplicações e utilizar inteligência artificial (IA) de forma escalável.
Aqui está um resumo comparativo com base em informações relevantes para o mercado português:
1. Principais Provedores (As "Três Grandes")
AWS (Amazon Web Services): Líder global de mercado (30-35% de quota). É conhecida pela maior maturidade, ecossistema vasto e grande demanda por profissionais certificados em Portugal.
Microsoft Azure: Muito forte em ambiente empresarial, especialmente pela integração nativa com o Windows Server, Active Directory e Office 365. É frequentemente a escolha principal para empresas com infraestrutura Microsoft pré-existente.
GCP (Google Cloud Platform): Destaca-se em análise de dados (Big Data), inteligência artificial, machine learning e tecnologias nativas da nuvem, como o Kubernetes.
2. Comparação de Serviços
A maioria dos serviços é comparável entre as plataformas:
Computação: AWS EC2, Azure Virtual Machines, Google Compute Engine.
Armazenamento: AWS S3, Azure Blob Storage, Google Cloud Storage.
Bases de Dados: AWS RDS, Azure SQL Database, Cloud SQL.
3. Presença em Portugal
Embora os grandes centros de dados regionais (Regiões AWS/Azure/GCP) geralmente não estejam localizados fisicamente em território português, todos os provedores operam através de redes globais de alta velocidade e podem utilizar localizações de borda (edge locations) para garantir baixa latência. Muitas empresas em Portugal adotam soluções híbridas (nuvem pública + infraestrutura local).
4. Qual escolher?
Para quem procura mais oportunidades de emprego/certificação: AWS costuma ser o ponto de partida recomendado.
Para integração corporativa (Windows): Azure é, geralmente, a escolha mais natural.
Para Data Science/AI: GCP é altamente reconhecido.
5. Recursos em Português
Todos os provedores oferecem documentação técnica extensa, consolas de gestão e suporte técnico em português, facilitando a adoção local.
Google Cloud Documentation
AWS: Possui documentação e console traduzidos.
Azure: Integração forte com suporte local Microsoft Portugal.
O Terraform é uma ferramenta de Infraestrutura como Código (IaC) de código aberto que permite provisionar e gerenciar infraestrutura de forma declarativa em diversos provedores (AWS, Azure, GCP, VMware, etc.). Ele possibilita ambientes repetíveis e com controle de versão.
Como funciona o Terraform
Configuração: Você descreve a infraestrutura em HCL Arquivos (recursos, fontes de dados, variáveis, saídas).
Provedores: Plugins que traduzem a configuração em chamadas de API para cada plataforma.
Estado: Um arquivo de estado rastreia recursos reais e seus atributos, permitindo a detecção de mudanças (plan) e atualizações (apply).
Módulos: Unidades reutilizáveis que encapsulam padrões e melhores práticas.
Fluxos de trabalho:init → validate → plan → apply com backends de estado remotos (por exemplo, S3, Azure Storage, GCS) e bloqueio.
>
Conceitos-chave
Idempotência: Corrida apply converge repetidamente recursos para o estado declarado.
Gráfico de Dependência: O Terraform cria um DAG (Grafo Acíclico Direcionado) para ordenar as operações com segurança (criar, atualizar, destruir).
Imutabilidade: Prefira substituir em vez de modificar para implantações mais seguras.
Política e CI/CD: Validar com fmt/validate, executar planos em pipelines e aprovar alterações com revisões de código.
O Terraform permite que você provisione RELIANOID balanceadores de carga reproduzíveis em diferentes nuvens e ambientes usando o mesmo fluxo de trabalho baseado em Git:
Repetibilidade e auditoria: A configuração versionada garante instâncias de balanceamento de carga, redes e regras de segurança consistentes em todos os estágios.
Padronização multicloud: Uma única base de código para criar RELIANOID na AWS, Azure ou GCP com variáveis específicas do ambiente.
Implantações confiáveis: Uso plan Visualizar alterações; aplicar com pipelines; aproveitar a reinicialização a quente em RELIANOID Para minimizar interrupções durante atualizações de políticas.
Inicialização: Scripts de inicialização ou de inicialização em nuvem podem carregar inicialmente RELIANOID Configuração, certificados e verificações de integridade na primeira inicialização.
Composibilidade: Encapsule ouvintes, pools, sondas de integridade e políticas de segurança em módulos reutilizáveis por equipe de aplicação.
Com o Terraform, seu RELIANOID Essa camada passa a fazer parte do mesmo processo de entrega auditado e automatizado que o restante da sua infraestrutura.
O Terraform é uma ferramenta de código aberto, desenvolvida pela HashiCorp que permite descrever sua infraestrutura como código (“Infrastructure as Code” ou IaC) usando uma linguagem declarativa simples e legível chamada Hashicorp Configuration Language (“HCL”).
Após escrever a infraestrutura desejada em arquivos de configuração, você consegue implantar e gerenciar a infraestrutura de forma automatizada em diferentes plataformas de nuvem pública (AWS, Digital Ocean, Azure, entre outras) e também em infraestrutura on-premises (VMware, Proxmox, etc.).
Instalação Terraform no Windows
1. Acesse o site do download oficial do Terraform em: https://developer.hashicorp.com/terraform/install
2. Na parte correspondente ao “Windows”, faça o download do arquivo conforme a arquitetura do seu processador (32 ou 64 bits).
3. Depois do download, extraia o executável para um diretório de sua escolha (por exemplo, C:\ProgramData\terraform).
Adicione o diretório onde você extraiu o Terraform ao caminho global (PATH) do seu sistema:
4. Vá em “Painel de Controle > Sistema e Segurança > Sistema” e escolha a opção “Configurações Avançadas de Sistema”.
5. Clique no botão [Variáveis de Ambiente].
6. Na seção “Variáveis do sistema”, selecione a variável “Path” e clique em “Editar”.
7. Clique em “Novo” e adicione o caminho escolhido por você para o diretório do Terraform (por exemplo, “C:\ProgramData\terraform”).
8. Clique em “OK” em todas as janelas para salvar as alterações.
9. Abra uma janela do terminal Power Shell e verifique se o Terraform está funcionando corretamente.
terraform -version
Levando em consideração que, no momento de produção deste artigo a última versão é a 1.7.3, a saída deve ser semelhante ao mostrado a seguir:
Terraform v1.7.3 on windows_amd64
Instalação Terraform no Linux
Para Linux, a melhor opção é via gerenciador de pacotes, pois a HashiCorp mantém e assina oficialmente pacotes para as principais distribuições do Linux. Basta então, ir até a página de downloads e acessar a respectiva seção de seu sistema operacional e seguir as instruções:
A topologia de redes refere-se à forma como os dispositivos de uma rede (computadores, servidores, switches, routers, etc.) estão ligados entre si, tanto a nível físico como lógico.
Existem vários tipos de topologias, cada uma com vantagens e desvantagens.
1. Topologia em Barramento (Bus)
Todos os dispositivos estão ligados a um único cabo principal (backbone).
Vantagens:
Simples de implementar
Baixo custo
Usa pouco cabo
Desvantagens:
Se o cabo principal falhar, toda a rede para
Difícil de detectar falhas
Baixo desempenho com muitos dispositivos
2. Topologia em Estrela (Star)
Todos os dispositivos ligam-se a um equipamento central (switch ou hub).
Vantagens:
Fácil de instalar e gerir
Uma falha num cabo não afecta toda a rede
Bom desempenho
Desvantagens:
Se o equipamento central falhar, a rede fica inoperacional
Custo mais elevado
👉 É a topologia mais usada actualmente.
3. Topologia em Anel (Ring)
Os dispositivos estão ligados em forma de anel, onde os dados circulam numa direcção (ou duas).
Vantagens:
Dados circulam de forma ordenada
Menos colisões
Desvantagens:
Uma falha pode afectar toda a rede
Difícil de reconfigurar
4. Topologia em Malha (Mesh)
Cada dispositivo liga-se a vários ou a todos os outros.
Vantagens:
Alta fiabilidade
Excelente tolerância a falhas
Desvantagens:
Muito cara
Complexa de instalar e manter
5. Topologia em Árvore (Tree)
Combinação de topologias em estrela organizadas de forma hierárquica.
Vantagens:
Escalável
Fácil de gerir em grandes redes
Desvantagens:
Dependência do nó principal
Configuração mais complexa
6. Topologia Híbrida
Combinação de duas ou mais topologias diferentes.
Vantagens:
Flexível
Adapta-se a diferentes necessidades
Desvantagens:
Planeamento e gestão mais complexos
Pode ser dispendiosa
Conclusão
A escolha da topologia de rede depende de factores como:
Todos nós já ouvimos falar certamente em redes de comunicação (também designadas de redes informáticas ou redes de dados). Uma “rede” (na área da informática), é definida como um conjunto de equipamentos interligados entre si, e que permitem o transporte e troca de vários tipos de informação entre utilizadores e sistemas.
Na hora de classificar uma rede qual o critério a usar?
Segundo o mítico livro “Engenharia de Redes Informáticas” (um must-have para qualquer aluno de Eng. Informática) dos autores Edmundo Monteiro e Fernando Boavida, uma rede de comunicação pode ser classificada segundo um ou mais critérios. Podemos classificar as redes de acordo com o/a:
tecnologia de suporte (comutação de pacotes, comutação de circuitos, assíncronas, plesiócronas, síncronas, etc)
ou segundo o ambiente ao qual se destinam (redes de escritório, redes industriais, redes militares, redes de sensores, etc)
No entanto, a classificação mais frequente baseia-se na área – geográfica ou organizacional e aí entram os termos que normalmente ouvimos: LAN, MAN, WAN, PAN…etc. Vamos então passar a explicação simples de algumas definições mais comuns:
LAN (Local Area Networks) – também designadas de redes locais, são o tipo de redes mais comuns uma vez que permitem interligar computadores, servidores e outros equipamentos de rede, numa área geográfica limitada (ex. sala de aula, casa, espaço Internet, etc).
MAN (Metropolitan Area Networks) – permitem a interligação de redes e equipamentos numa área metropolitana (ex. locais situados em diversos pontos de uma cidade).
WAN (Wide Area Netwoks) – permitem a interligação de redes locais, metropolitanas e equipamentos de rede, numa grande área geográfica (ex. país, continente, etc).
Kubernetes: o que é e qual
a diferença entre esta tecnologia e Docker?
Com a ampla adoção de containers pelas
organizações, o Kubernetes tornou-se "padrão" para implantar e operar
aplicações. Mas o que é realmente esta tecnologia? E de que forma se distingue
do famoso Docker?
O que é o Kubernetes (K8s)?
O Kubernetes (às vezes abreviado como K8s com o
8 a representar o número de letras entre o "K" e o "s") foi
criado com base nos 15 anos de execução de workloads em containers da Google e
nas contribuições valiosas da comunidade open-source. Inspirado no sistema de
gestão de clusters interno da Google, Borg, o Kubernetes facilita todas as
tarefas associadas à implantação e à gestão de aplicações.
Esta tecnologia automatiza tarefas operacionais
de gestão de containers e inclui comandos integrados para:
Implantação de aplicações;
Implementação de alterações nas aplicações;
Escalonamento para mais e para menos para
atender às necessidades de mudança;
Monitorização das aplicações;
E muito mais.
Quais são os benefícios desta tecnologia?
Operações automatizadas
O Kubernetes tem comandos integrados para lidar
com grande parte do trabalho pesado que envolve a gestão de aplicações,
permitindo automatizar as operações diárias.
Abstração de infraestrutura
Quando instala o Kubernetes, este lida com a
computação, a rede e o armazenamento em nome dos seus workloads. Isso permite
que os desenvolvedores se concentrem nas aplicações e não se preocupem com o
ambiente subjacente.
Monitorização da integridade do serviço
O Kubernetes executa continuamente verificações
de integridade nos serviços, reiniciando os containers que falharam ou pararam
e só disponibilizando os serviços aos utilizadores quando confirma que eles
estão em execução.
Kubernetes vs. Docker
Muitas vezes interpretadas como uma escolha
entre uma ou outra, estas são tecnologias diferentes, mas complementares, para
executar aplicações em containers.
O Docker permite colocar tudo o que precisa
para executar a aplicação numa "caixa" que pode ser armazenada e
aberta quando e onde for necessário. Depois de começar a "encaixotar"
as suas aplicações, precisa de encontrar uma maneira de geri-las; e é isso que
o Kubernetes faz.
Kubernetes é uma palavra grega que significa
"capitão". Assim como o capitão é responsável pela jornada segura do
navio no mar, o Kubernetes é responsável por transportar e entregar essas
caixas em segurança para os locais onde possam ser usadas.
O Docker não é uma alternativa ao Kubernetes.
Portanto, não é uma questão de um vs. outro. Trata-se de usar o Kubernetes com
o Docker para armazenar as aplicações em containers.
Siga os passos abaixo para instalar o Jenkins no Debian.
Observação: A atualização do Java para a versão 17 pode causar conflitos no Jenkins. Recomenda-se instalar o Java antes de instalar o Jenkins ou consultar as notas de instalação oficiais antes da atualização.
Passo 1: Instale o Java
Comece instalando o Java Developer's Kit (JDK). O JDK inclui o Java Runtime Environment (JRE) e seus arquivos necessários .
1. Abra uma janela de terminal e atualize o índice do repositório de pacotes:
sudo apt update
2. Instale o Java executando o comando abaixo:
sudo apt install default-jdk -y
O sistema instala a versão mais recente do Java disponível no repositório Debian. Aguarde a conclusão da instalação.
3. Verifique a instalação consultando a versão do Java . Execute:
java -version
Passo 2: Baixe a chave de segurança GPG
Os pacotes do Jenkins são assinados para garantir a integridade. Você precisa baixar e salvar a chave de assinatura atualizada. Dependendo da versão do Debian que você estiver usando (LTS ou semanal), execute um dos comandos abaixo para adicionar a chave GPG:
Para versões LTS:
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
Para lançamentos semanais:
curl -fsSL https://pkg.jenkins.io/debian/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
Etapa 3: Adicionar o repositório Jenkins
Por padrão, o Debian não inclui acesso ao repositório de software Jenkins. Adicione o repositório Jenkins apropriado ao seu sistema:
Para versões LTS:
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
Para lançamentos semanais:
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
Este comando adiciona o repositório Jenkins ao seu sistema.
Passo 4: Instalar o Jenkins
Antes de instalar o Jenkins, atualize o índice de pacotes para incluir o repositório do Jenkins recém-adicionado:
A página de configuração do Jenkins informa que uma senha foi criada durante a instalação. Siga os passos abaixo para encontrar a senha e desbloquear o Jenkins:
1. Alterne para uma janela de terminal e execute o seguinte comando para exibir a senha:
O sistema exibe um longo código alfanumérico. Copie o código.
2. Acesse a página de Introdução ao Jenkins no seu navegador e cole o código no campo Senha do Administrador. Em seguida, clique em Continuar para desbloquear o Jenkins.
Instalar plugins
Na tela seguinte, o Jenkins solicita que você instale plugins. A menos que você saiba quais plugins especificamente deseja, a opção recomendada é Instalar plugins sugeridos .
Criar o primeiro usuário administrador
Após a conclusão da instalação dos plugins, o assistente solicitará que você crie o primeiro usuário administrador . Preencha os campos com as informações necessárias e clique em Salvar e Continuar .
Configuração da instância
A última tela exibe o URL do Jenkins . Este deve ser o URL que você usou inicialmente para acessar a ferramenta de configuração.
Você pode usar este URL a qualquer momento para configurar o Jenkins. Quando estiver pronto, clique em Salvar e Concluir .
O sistema avisa que o Jenkins está pronto. Clique em " Começar a usar o Jenkins" para carregar o software. Isso o levará ao painel principal do Jenkins com a mensagem " Bem-vindo ao Jenkins!" .
Esta seção descreve as principais práticas recomendadas de segurança para proteger sua instância do Jenkins.
Configurar firewall
Um firewall é essencial para proteger o Jenkins, limitando o acesso a portas e intervalos de IP específicos. No Debian, você pode usar ufwo Uncomplicated Firewall para configurar o firewall. Siga os passos abaixo:
1. Execute o comando abaixo para permitir o tráfego apenas em portas específicas (por exemplo, 8443):
ufw allow 8443 sudo ufw enable
2. Habilitar ufwpara aplicar as regras:
sudo ufw enable
Ativar plugins de auditoria
Os registros de auditoria no Jenkins registram eventos como a execução de tarefas, logins de usuários e alterações de configuração. Eles oferecem informações essenciais para a resolução de problemas, segurança e conformidade.
1. Faça login na sua instância do Jenkins e selecione a opção Gerenciar Jenkins no painel de controle.
2. Na página de gerenciamento do Jenkins, clique em Log do sistema .
Na página de gravadores de logs , clique no botão + Adicionar gravador para adicionar um novo gravador de logs à sua instância. Use plugins como o Audit Trail para habilitar o monitoramento detalhado e aprimorar a segurança.
Ative a criptografia TLS
A criptografia TLS (Transport Layer Security) garante a comunicação segura ao criptografar os dados transferidos entre sistemas. É crucial para proteger os dados contra interceptação e adulteração.
Siga os passos abaixo para ativar a criptografia TLS para conexões entre o controlador e os agentes:
1. Faça login na sua instância do Jenkins e selecione Gerenciar Jenkins no painel de controle.
2. Role a página para baixo até a seção Segurança e selecione Segurança . A seção Segurança também oferece várias outras configurações que você pode ajustar para proteger sua instância do Jenkins.
3. Em Segurança , role para baixo até a seção Agentes . Por padrão, os agentes se conectam ao controlador via TCP usando uma porta de entrada. Se as conexões de entrada não forem necessárias, desative a porta. Se as conexões de entrada forem necessárias, ative "Protocolo de Agente TCP de Entrada/4 (criptografia TLS)" para proteger essas conexões com TLS. Essa configuração garante uma comunicação criptografada e segura.
Ativar proteção CSRF
Cross-Site Request Forgery ( CSRF ) é uma vulnerabilidade de segurança web em que sites maliciosos podem executar ações não autorizadas em nome de usuários autenticados. O Jenkins oferece proteção contra CSRF. Essa configuração gera um token único (crumb) para cada usuário. Qualquer ação que modifique o Jenkins requer esse crumb, garantindo que as ações estejam vinculadas ao usuário autenticado.
Siga os passos abaixo para ativar a proteção CSRF:
1. Selecione a opção Gerenciar Jenkins no Painel de Controle.
2. Localize a seção Segurança e clique em Segurança .
3. Desça até a seção Proteção CSRF e habilite o emissor Crumb padrão .
Conclusão
Agora você deve ter o Jenkins instalado e pronto para uso em seu sistema Debian. Com ele, você pode coordenar facilmente um projeto com várias equipes e entregar software em um ambiente de CI/CD .