Titulo Estágio
Inter-operacionalidade de processos de DevOps nativos de Cloud
Áreas de especialidade
Engenharia de Software
Sistemas de Informação
Local do Estágio
Deloitte/Híbrido
Enquadramento
Duas das grandes tendências atuais são a Cloud e o DevOps. Sendo por isso natural que as duas maiores plataformas de Cloud, a AWS e a Microsoft Azure, tenham serviços dedicados para implementar o processo de DevOps, com otimizações de utilização e gestão dos mesmos. No entanto para grandes empresas que utilizem as duas plataformas Cloud isto significa ter de implementar e manter dois pipelines de DevOps distintos.
No contexto tecnológico de grandes empresas começa a existir o caso de uso de manter os processos DevOps consistentes e uniformes para múltiplas clouds distintas. O tema deste estágio consiste na exploração deste cenário de uniformização de pipeline DevOps em contexto de múltiplos fornecedores de Cloud.
Objetivo
O objetivo deste trabalho é desenhar e implementar um pipeline de DevOps agnóstico da plataforma de Cloud escolhido (AWS ou Azure) mas que consiga tirar partido dos serviços nativos dessas plataformas. Desta forma as empresas apenas teriam de implementar e manter um pipeline que poderia ser utilizado em ambas as Cloud’s.
Este é um tipo de arquitetura que seria aplicável no contexto de empresas de grande dimensão e uma componente tecnológica forte onde é necessário gerir aplicações em Clouds distintas. Como tal, a própria escolha de tecnologia deverá ser condicionada por esta audiência alvo. Em concreto, requisitos não-funcionais como modificabilidade e disponibilidade são cruciais nesta arquitetura proposta.
Plano de Trabalhos - Semestre 1
1. Realização do estado da arte que sistematiza quais são as principais categorias de serviços Cloud (agnósticos de solução) com relevância mais direta para pipelines DevOps (2 meses)
2. Definir de forma clara as categorias de serviço nativos, fundamentados nas terminologias e melhores práticas da indústria (Cloud Native Computing Foundation), com uma descrição de alto nível preliminar da sua aplicabilidade e papel em pipelines DevOps (1 mês)
3. Investigação e definição da plataforma de DevOps (e.g., Jenkins) a utilizar como protótipo de software para realizar a implementação dos processos agnósticos (1 mês)
4. Realizar uma primeira iteração de identificação dos jobs associados à pipeline DevOps com uma descrição alto nível do que cada um representa, preparando em paralelo uma aplicação de exemplo para instanciar estes processos (1 mês)
5. Criação de um plano estruturado para sistematizar o trabalho de pipeline e jobs a ser desenvolvido (1 mês)
Plano de Trabalhos - Semestre 2
1. Realização de um desenho técnico detalhado dos processos agnósticos de Cloud (jobs) das pipelines DevOps que vão interagir com as diferentes categorias de serviço da Cloud (1 mês)
2. Preparação a nível de software da plataforma de DevOps que será utilizada (e.g., Jenkins), elaboração de uma aplicação simples (modelo microserviço ou serverless) que possa ser usado para efeitos de teste e preparação das contas de Cloud a utilizador (AWS e Azure) (1 mês)
3. Implementação dos jobs de DevOps de acordo com o desenho técnico detalhado dos processos agnósticos e realização de testes (com captura de resultados) destes processos (3 meses)
4. Elaboração de um relatório final que inclui os desenhos técnicos dos processos agnósticos, resultados da execução destes processos no protótipo e uma reflexão crítica das possibilidades e limitações desta abordagem tecnológica (1 mês)
Condições
O aluno deve ter as bases suficientes para conseguir desenvolver do ponto de vista de software uma pipeline DevOps de forma autónoma e ter familiaridade com conceitos de básicos de pelo menos um dos principais fornecedores de Cloud (AWS ou Azure).
Observações
Bolsa de formação durante a realização do estágio
Orientador
Pedro Goldschmidt Oliveira
maricoelho@deloitte.pt 📩