Propostas Submetidos

DEI - FCTUC
Gerado a 2024-05-17 04:23:56 (Europe/Lisbon).
Voltar

Titulo Estágio

Infrastructure as Code

Áreas de especialidade

Engenharia de Software

Local do Estágio

Lisboa

Enquadramento

O Genio é uma plataforma MDD (Model Drive Development) de desenvolvimento de software. Os modelos geridos nesta plataforma descrevem por completo a funcionalidade do sistema final. Estes são enviados para geradores especificos de tecnologia (por exemplo Web Site em Asp.Net MVC) que concretizam a implementação desse modelo numa aplicação.

Pretende-se adicionar a esta geração scripts de IaC para os cenários de deployment mais comums: Testes, Minimo, Recomendado, High Availability.

Objetivo

Objetivo
Implementar um gerador de scripts de IaC (Infrastructure As Code) capaz de interagir com ambientes cloud. Preferencialmente implementado nas tecnologias Azure e/ou Terraform.

Componentes a realizar

- Gerador em C# de sripts IaC.
- Templates dos vários cenários.

Plano de Trabalhos - Semestre 1

Fases do projeto

- Entrar em contacto com a metodologia de criação de aplicação através da plataforma Genio. Conhecer que partes do código final são geradas automáticamente. O Genio define o meta-modelo a usar nos scripts IaC.

- Analisar a arquitetura das soluções geradas pelo Genio de forma a entender os requisitos de sistema operativo e de dependencias de serviços.

Fases do projeto

- Implementação do gerador de scripts IaC de uma forma genérica e estensível.

- Implementação dos casos de uso mais comuns de infraestrutura: Testes, Minimo, Recomendado, High Availability.

- Testar o deployment feito a partir dos scripts em ambientes cloud como o Azure ou AWS.

Vamos dividir o estágio em 6 fases de 4 semanas cada:

Semanas 1-4: Introdução e Fundamentos
Semana 1
Apresentação da equipa e da empresa.
Introdução aos conceitos de IaC.
Configuração do ambiente de desenvolvimento.
Curso básico sobre ferramentas de controlo de versões (ex. Git).
Semana 2
Introdução às principais ferramentas de IaC (ex. Terraform, AWS CloudFormation, Azure Resource Manager).
Configurar e testar uma infraestrutura simples usando uma ferramenta de IaC.
Semana 3
Conceitos de redes e segurança na cloud.
Configuração de redes e sub-redes usando IaC.
Semana 4
Implementação de políticas de segurança e grupos de segurança através de IaC.
Revisão do mês e feedback.
Semanas 5-8: Gestão de Configuração e Provisionamento Semana 5 Introdução às ferramentas de gestão de configuração (ex. Ansible, Puppet, Chef).
Integrar uma ferramenta de gestão de configuração com IaC.
Semana 6
Script de provisionamento e configuração de servidores.
Automatização de escalabilidade e balanceamento de carga.
Semana 7
Criação de pipelines de CI/CD para automação de infraestrutura.
Semana 8
Implementar monitorização e alertas.
Revisão do mês e feedback.
Semanas 9-12: IaC em Ambientes de Contentores Semana 9 Introdução aos contentores e orquestração (ex. Docker, Kubernetes).
Provisionar um cluster Kubernetes usando IaC.

Plano de Trabalhos - Semestre 2

Semana 10
Gerir aplicações em contentores usando IaC.
Configurar redes e políticas de segurança em Kubernetes via IaC.
Semana 11
Automatizar o deployment de aplicações em contentores usando CI/CD.
Semana 12
Revisão de estudos de caso com Kubernetes e IaC.
Revisão do mês e feedback.
Semanas 13-16: IaC com Serviços Geridos e Serverless Semana 13 Introdução ao conceito de Serverless.
Implementar funções Serverless usando IaC.
Semana 14
Integrar bases de dados e outros serviços geridos com a infraestrutura via IaC.
Semana 15
Otimizar custos e performance de infraestruturas Serverless com IaC.
Semana 16
Revisão de estudos de caso com Serverless e IaC.
Revisão do mês e feedback.
Semanas 17-20: Boas Práticas e Conformidade Semana 17 Introdução a boas práticas e padrões em IaC.
Gerir o estado da infraestrutura e evitar configurações de drift.
Semana 18
Conformidade e auditoria de infraestrutura através de IaC.
Implementar políticas como código (Policy as Code).
Semana 19
Desenvolver testes de infraestrutura e validações de conformidade.
Semana 20
Revisão das melhores práticas e conformidade em IaC.
Revisão do mês e feedback.
Semanas 21-24: Projecto Final e Apresentação Semana 21-23 Desenvolvimento de um projeto final aplicando os conceitos aprendidos durante o estágio.
Integração contínua e desenvolvimento colaborativo utilizando repositórios Git.
Semana 24
Preparação da apresentação do projeto final.
Apresentação do projeto final para a equipa e stakeholders.
Feedback final e considerações de encerramento do estágio.

Possibilidade de integração com o Genio, a plataforma de geração de código automática da Quidgest - neste caso:

Semanas 21-24: Projeto Final e Integração com o Genio da Quidgest Semana 21 Introdução à plataforma Genio da Quidgest.
Entendimento da arquitetura e capacidades de geração automática de código do Genio.
Criação de um modelo básico usando o Genio.
Semana 22
Desenvolvimento do projeto final integrando as funcionalidades e infraestruturas criadas com IaC.
Explorar como o Genio pode ser utilizado para gerar código que interaja com a infraestrutura criada.
Semana 23
Desenvolvimento contínuo do projeto final.
Testar e validar a integração entre o código gerado pelo Genio e a infraestrutura provisionada através de IaC.
Semana 24
Preparação da apresentação do projeto final, com enfoque na integração com o Genio.
Apresentação do projeto final para a equipa e stakeholders, demonstrando como o Genio foi utilizado em conjunto com IaC.
Feedback final e considerações de encerramento do estágio.

Condições

Estágio presencial, bolsa de estágio, formação

Orientador

Rodrigo Serafim
rserafim@quidgest.pt 📩