Orquestração Docker + Projeto DevOps
Formação Inicia Completal!

⭐⭐⭐⭐⭐ Curso aprovado por mais de 5.257 alunos!

Curso de Kubernetes Completo

O que é Kubernetes?

Kubernetes é uma tecnologia de orquestração de contêineres prontos para produção que desempenha um papel fundamental na gestão de todo o ciclo de vida de aplicações em nuvens. O Google, por exemplo, utiliza o Kubernetes para implementar mais de 12 bilhões de aplicações por mês, incluindo serviços como o Buscador, YouTube, Gmail, Google Play e Chrome.

Nas empresas de tecnologia mais avançadas, o Kubernetes se tornou um fenômeno devido à sua versatilidade, segurança e desempenho. Ele permite a implantação ágil de novos softwares e atualizações, atendendo às demandas da internet atual.

Em resumo, o Kubernetes é uma tecnologia que facilita a gestão e a escalabilidade de contêineres.

Este curso inclui...
  • 19 horas de videoaulas

  • 35 artigos

  • 61 recursos para baixar

  • Acesso vitalício ao conteúdo

  • Certificado de conclusão de curso

O que você vai Aprender...

No Projeto Final do Curso, você terá a oportunidade de orquestrar uma aplicação profissional. Antes disso, aprenderá sobre os seguintes tópicos relacionados ao Kubernetes:

  1. Orquestrador de Container: Entenderá o que é um orquestrador de container e para que ele é utilizado.

  2. Instalação Local do Kubernetes: Aprenderá a instalar e configurar o Kubernetes em sua máquina.

  3. kubectl: Instalará a ferramenta de linha de comando para controle do Kubernetes.

  4. História, Fundamentos e Conceitos do Kubernetes: Explorará a origem, os princípios fundamentais e os conceitos essenciais do Kubernetes.

  5. Componentes do Cluster Kubernetes: Conhecerá os componentes que formam um cluster Kubernetes.

  6. Arquivos YAML no Kubernetes: Compreenderá a estrutura dos arquivos YAML usados no Kubernetes.

  7. Pods: Agrupará containers em modelos de hosts lógicos chamados Pods.

  8. ReplicaSets: Manterá um conjunto estável de réplicas de Pods em execução.

  9. Deployments: Implementará, escalará e realizará rollout e rollback de suas aplicações.

  10. Infraestrutura de Rede Interna do Kubernetes: Entenderá os conceitos básicos da rede interna do Kubernetes.

  11. Namespaces: Aprenderá a usar o mecanismo de isolamento de grupos de recursos.

  12. Kubernetes Services: Manipulará diversos tipos de serviços.

  13. LivenessProbe: Implementará verificações de sanidade para suas aplicações.

  14. Recursos Computacionais com Kubernetes: Compreender e gerenciar os recursos mínimos e máximos disponíveis usando o Kubernetes Resources.

  15. Persistência de Dados com Volumes: Utilizar diferentes tipos de volumes (como emptyDir, hostPath e PersistentVolume) para garantir a persistência de dados.

  16. DaemonSets: Criar e gerenciar daemons usando os poderosos DaemonSets do Kubernetes.

  17. K8s Jobs: Executar processos ou tarefas pontuais usando os recursos Kubernetes Jobs.

  18. K8s CronJobs: Elaborar e agendar tarefas ou processos usando os Kubernetes CronJobs.

  19. ConfigMaps e Secrets: Armazenar, usar e manipular dados de configurações não confidenciais com ConfigMaps e dados confidenciais com Kubernetes Secrets.

  20. StatefulSets: Utilizar os avançados StatefulSets para orquestrar aplicações com estado persistente.

  21. Endpoints e EndpointSlices: Gerenciar endpoints internos e externos usando os flexíveis recursos Kubernetes Endpoints e o novo recurso EndpointSlices.

  22. Controle de Acesso com RBAC: Entender e controlar o acesso aos recursos Kubernetes usando RBAC (Role-Based Access Control).

  23. Boas Práticas de Administração: Aprender boas práticas para a administração diária do Kubernetes.

  24. Preparação para a Certificação CKA: Estudar os conceitos, recursos e componentes necessários para a prova Certified Kubernetes Administrator.

  25. Confiança no Currículo: Ganhar confiança para incluir no seu currículo que você domina o Kubernetes!

Descrição Completa do Curso

Existe diferença entre Kubernetes e serviços como GKE (Google), AKS (Azure), EKS (Amazon), ACK (Alibaba)?
A diferença é grande, pois serviços como GKE, AKS, EKS e ACK não é Kubernetes! Em termos mais simples, Kubernetes é um sistema de orquestração de containers. Ele é uma tecnologia independente, aberta e gratuita que será ensinada neste treinamento. Você poderá aplicá-la de forma pura e totalmente reutilizável em qualquer ambiente com Kubernetes instalado, seja localmente ou na nuvem.

Agora, vamos falar sobre os produtos específicos que utilizam o Kubernetes: GKE, AKS, EKS e ACK são serviços oferecidos pela Google, Microsoft, Amazon e Alibaba, respectivamente. Eles disponibilizam um ambiente (chamado de cluster) para você executar suas aplicações baseadas em Kubernetes fora da sua empresa, ou seja, na nuvem desses provedores. Esses serviços são conhecidos como Managed Kubernetes Platforms (Plataformas Kubernetes Gerenciadas).

Em resumo, GKE, AKS, EKS e ACK não são mais do que ambientes prontos para instalar e gerenciar o Kubernetes. Além disso, eles oferecem serviços adicionais para enriquecer o seu ambiente de cluster Kubernetes e cobram por esses recursos.

A quem pertence o Kubernetes?
O Kubernetes faz parte da iniciativa da Cloud Native Computing Foundation (CNCF). A CNCF é ligada à Linux Foundation, uma entidade sem fins lucrativos que também coordena o desenvolvimento do Linux (Kernel).

Por que é importante estudar Kubernetes?
O Kubernetes (também conhecido como K8s) é uma ferramenta essencial para quem deseja se destacar no emocionante mundo das aplicações em nuvem que utilizam containers. Com o Kubernetes, você estará preparado para enfrentar os desafios da escalabilidade, gerenciamento e implantação eficiente de aplicações.

E não é só o Google que está aproveitando o poder do Kubernetes! Empresas renomadas, como NASA, Nubank, Spotify, Adidas, Tinder, Airbnb, Bloomberg Financial Data Analytics e Udemy, também estão adotando o Kubernetes para inovar seus sistemas. Essas organizações líderes estão colhendo os benefícios dessa plataforma robusta e flexível, e você também pode fazer parte desse movimento. Portanto, mergulhe no Kubernetes e torne-se um especialista nessa tecnologia que está moldando o futuro das aplicações em nuvem!

Qual conhecimento obtenho com este treinamento?
Você receberá uma base sólida, começando pelo essencial: entender o que é um orquestrador de containers e, em particular, o que é o Kubernetes. Além disso, exploraremos as diversas possibilidades de uso dessa tecnologia.
Ao longo do aprendizado, você se tornará capaz de gerenciar todo o ciclo de vida de suas aplicações. Isso inclui desde a implantação inicial até as atualizações e escalabilidade. Além disso, você adquirirá habilidades para lidar com situações cotidianas que um administrador de Kubernetes enfrenta, desenvolvendo a capacidade de resolver problemas de forma assertiva e profissional.

Como o foi estruturado pedagogicamente?
Este curso adota uma metodologia de neuroaprendizagem, aplicando técnicas de ensino que permitem ao aluno absorver até 70% mais do conteúdo sobre a tecnologia em questão, com menos esforço mental.

Os tópicos são organizados em três pilares:

  1. O que é?: Aqui, você entenderá o conceito fundamental por trás da tecnologia.

  2. Por quê?: Exploraremos o propósito de uso, compreendendo por que essa tecnologia é relevante e como ela se encaixa no cenário atual.

  3. Como fazer?: A parte prática! Você aprenderá a implementar a tecnologia, colocando em prática o conhecimento adquirido.

Ao longo do curso, você terá 20% de conteúdo conceitual e 80% de aulas práticas. Não se trata apenas de usar o Kubernetes, mas também de entender o que está acontecendo nos bastidores, tornando-se um profissional de grande valor nesse campo.

Que nível de profissionalização conseguirei atingir com esse curso? Quão completo é o curso?
O treinamento oferece uma formação profissional inicial para ingressar no mercado de Kubernetes (Administrador de Kubernetes — Nível Inicial). Com o conteúdo deste curso, você estará preparado para lidar com várias situações relacionadas à operação diária do Kubernetes. O curso foi estruturado pedagogicamente da seguinte maneira:

  • Tópicos Básicos: O curso abrange todos os aspectos fundamentais do Kubernetes.

  • Tópicos Intermediários: Inclui as operações comuns do dia a dia.

  • Tópicos Avançados: Aborda algumas questões essenciais avançadas.

E o Projeto Final de Curso, como é?
O projeto final envolve a aplicação prática de todo o conhecimento adquirido durante o treinamento. Nele, você terá a oportunidade de orquestrar completamente um sistema profissional amplamente utilizado em todo o mundo. O curso fornecerá todas as condições necessárias para enfrentar esse desafio. O projeto será conduzido passo a passo e explicado detalhadamente pelo professor, com o objetivo final de orquestrar uma aplicação profissional. Isso inclui gerenciar todo o ciclo de vida do software: desde a implantação em produção até a gestão dos aspectos fundamentais e, por fim, a remoção da aplicação.

É necessário pagar ou usar cartão de crédito em uma nuvem pública para realizar este treinamento? (Por exemplo: Google, Azure, Amazon, Alibaba, etc.)
Este curso utiliza exclusivamente tecnologias FOSS (Software Livre e de Código Aberto). Você não precisará gastar um centavo sequer para utilizar qualquer uma das tecnologias ensinadas neste treinamento, nem será necessário fornecer seus dados de cartão de crédito a nenhuma empresa. É inaceitável que essas grandes corporações continuem buscando lucrar com estudantes.

No decorrer do curso, utilizaremos o Minikube, um sistema desenvolvido pelos criadores do Kubernetes. O Minikube cria um ambiente real de cluster Kubernetes completo, com todas as funcionalidades necessárias para executar tudo o que precisamos aprender neste treinamento. E o melhor de tudo: você não precisará pagar absolutamente nada! Afinal, o Minikube é um software FOSS (Free and Open Source Software)!

O que é o Minikube?
O Minikube é uma ferramenta especialmente criada para o ensino e aprendizado do Kubernetes. A Cloud Native Computing Foundation (CNCF) e a Linux Foundation (parceira da CNCF e certificadora do Kubernetes) recomendam e incentivam fortemente o uso do Minikube para fins educacionais.

Tudo o que estudarmos utilizando o Minikube funcionará de maneira idêntica onde o Kubernetes estiver instalado, seja em uma nuvem pública (como Google, Azure, Amazon, Alibaba, etc.), em um Raspberry Pi, em uma Máquina Virtual ou mesmo em servidores físicos (Bare Metal). A portabilidade e consistência proporcionadas pelo Minikube facilitam a aplicação prática dos conhecimentos adquiridos.

Qual conhecimento prévio devo ter para realizar este treinamento?
Três coisas são necessárias antes de fazer este curso:

  1. Conhecimento em Docker: Este curso não ensinará Docker, portanto, é importante que você já tenha familiaridade com essa tecnologia.

  2. Noções gerais de redes de computadores: É recomendado ter conhecimentos básicos sobre TCP/IP, DHCP, DNS, Proxy e Load Balancer.

  3. Conhecimentos básicos de GNU/Linux: Ter uma compreensão básica do sistema operacional Linux também é recomendado.



Este é um treinamento de preparação para Certified Kubernetes Administrator (CKA)?
Este curso é importantíssimo para quem planeja fazer obter a certificação CKA. Você aprenderá os conceitos, recursos e componentes que são abordados na prova. No entanto, é recomendado realizar simulados e estudos adicionais antes de fazer a prova, já que este curso não inclui simulados.

Quem é o professor deste treinamento?
O Prof. Eng. Arnaldo Sousa, graduado em Engenharia de Software, Gestão de TI e Análise e Desenvolvimento de Sistemas, possui uma vasta experiência como instrutor e consultor oficial da IBM e da Sun Microsystems (criadora do Java, atual Oracle). Arnaldo é professor licenciado e possui diversas especializações na área da educação, incluindo Docência, Comunicação, Neuroaprendizagem, Neuropsicologia, Filosofia e Educação Especial.

Com sua ampla vivência no uso e ensino de novas tecnologias em grandes corporações, o professor apresentará o Kubernetes de forma extremamente compreensível!

Conteúdo do curso

Abertura do Curso

  • Visão Geral e Objetivos do Curso

  • Apresentação do Professor

  • Wallpapers do Curso

  • Não sei Docker, posso fazer este curso?

  • Mais informações sobre pré-requisitos


Setup para usuários Windows

  • Importante!

  • antiX Linux, VM para usuários Windows

  • Oracle VirtualBox

  • Downloads para Virtual Machine antiX Linux

  • Instalação do hypervisor Oracle VirtualBox

  • Configuração da antiX VM (OVA file)

  • antiX Linux Overview

  • VirtualBox Shared Folders


Informações aos usuários GNU/Linux

  • FeatherPad - Editor Recomendado

Setup do Kubernetes

  • Comandos de Instalação e Configuração

  • Instalação do Docker

  • minikube - Local Kubernetes Cluster

  • Versões de kubectl e minikube utilizadas

  • Instalação do kubectl

  • Instalação do minikube

História, Fundamentos e Conceitos

  • O que é um orquestrador de container?

  • Orquestradores populares (Docker Swarm, Apache Mesos, OpenShift e Kubernetes)

  • O que é Kubernetes? Qual sua história?

  • Conceito de Imutabilidade Kubernetes

  • Fundamentos

  • Disponibilidade - Parte 1 - Configurações Declarativas

  • Disponibilidade - Parte 2 - Relação DevOps

  • Escalabilidade - Infraestrutura, Serviços e Equipes DevOps

  • Abstração de Infraestrutura

  • Fundamentos

Componentes

  • Control Plane

  • kube-apiserver

  • cloud-controller-manager

  • controller-manager

  • etcd - Cluster Persistence Storage

  • kube-proxy

  • Conceito de recursos Pods

  • kube-scheduler

  • kubelet

  • Container Runtime Interface (CRI)


YAML

  • YAML - Introdução

  • YAML - Overview

  • YAML - Principais Utilizações: Persistência, Docker Compose, Kubernetes.

  • YAML - Estrutura Básica

  • Arquivo YAML para Kubernetes


Pods

  • Exercitar - Aprender fazendo!

  • Criando Pods - Forma Imperativa

  • Criando Pods - Manifest Files

  • Exercício Opcional


ReplicaSets

  • Exercícios - Aprender fazendo

  • Conceito e Criação de ReplicaSet

  • ReplicaSet Controlando Pods

  • ReplicaSet Scale - Manifest File

  • ReplicaSet Scale - Imperative


Deployments

  • Overview da Seção Deployments

  • Introdução à Kubernetes Deployments

  • Exercitar - Aprender fazendo

  • Criação de Deployment

  • Deployment Rollout

  • Rolling Update Strategy - Análise Minuciosa

  • Remoção de Recursos Deployment

  • Rollout History

  • Deployment Rollback

  • Rollout Pause & Rolout Resume

  • Deployment Scale: YAML & Imperative form

  • Recreate Strategy Type


Kubernetes Networking Infrastructure

  • Container to Container Communication

  • Intra-Node Pod Network Communication

  • INTER-Node Pod Network Communication

  • Exercitar - Aprender fazendo

  • Teste de Comunicação entre Pods - Parte 1

  • Teste de Comunicação entre Pods - Parte 2

Namespaces

  • Introdução aos Namespaces

  • Exercitar - Aprender fazendo

  • Criação de Namespaces

  • Current Context Namespace

  • Namespaces Manifest File


Services

  • Introdução aos Kubernetes Services

  • Disponibilização de Services

  • ClusterIP Default Service

  • ClusterIP - Comunicação entre Portas: port e targetPort

  • Exercitar - Aprender fazendo

  • Criação de ClusterIP Service

  • Consumindo ClusterIP Service

  • Características ClusterIP e Deleções em Massa de Recursos

  • NodePort Service

  • Portas NodePort Service: Mandatory, Optional , Omitted, Random

  • Criação de um NodePort Service

  • Consumo externo de NodePort Service

  • Formas de Obter endereço IP do Node

  • Remoção de NodePort Service

  • Instrodução à servicos avançados

  • LoadBalancer Service

  • LoadBalancer Service - Criação, Consumo e Remoção

  • Introdução à ExternalName Service

  • ExternalName Service - DNS Looking UP


LivenessProbe

  • Overview da Seção LivenessProbe

  • Introdução à Kubernetes LivenessProbe

  • Exercitar - Aprender fazendo

  • Implementando LivenessProbe e Lógica de Sanidade

  • Colocando LivenessProbe em Ação!


Gerenciamento de Recursos

  • Overview da Seção Gerenciamento de Recursos

  • Requests Resources - Minimum Resources

  • Exercitar - Aprender fazendo

  • Implementação de Requests Resources

  • Limits Resources - Maximum Resources

  • Gerenciando Recursos em Múltiplos Containers no mesmo Pod


Volumes

  • Overview da Seção Volumes

  • Introdução à Kubernetes Volumes

  • Exercitar - Aprender fazendo

  • Criando Volumes Efêmeros emptyDir

  • Criação de Volumes Persistentes hostPath

  • PersistentVolume, PersistentVolumeClaim, VolumeClaimTemplates e Storage Class


DaemonSet

  • Overview da Seção DaemonSets

  • Introdução Kubernetes DaemonSets

  • Exercitar - Aprender fazendo!

  • Criando DaemonSets Pods em Múltiplos Nodes

  • Orientação para Troubleshooting em minikube Multi-Nodes

  • Troubleshooting: minikube Multi-Nodes

  • DaemonSet Orphan Pods

  • Cascade Orphan Pods Option

  • Adoção de DaemonSet Orphan Pods

  • DaemonSet on Speficic Nodes

  • Criando DaemonSet on Speficic Nodes com Node Labels

  • DaemonSet Pods Direct Nodes Attibution

  • Pods Direct Nodes Attibution - Usando Node Name

  • Pods Nodes Attibution - Usando Node Labels

  • Rolling Update DaemonSet Update Strategy

  • OnDelete DaemonSet Update Strategy

  • Detalhes Adicionais sobre DaemonSet Update Strategy


Jobs

  • Overview da Seção Jobs

  • Importância das Job Technical Specifications

  • Introdução aos Kubernetes Jobs

  • Container Exit Codes & Kubernetes Jobs

  • Container Restart Policy - Pods & Jobs Pods

  • Restart Policy Values - Pods & Jobs Pods

  • Restart Policy Application

  • Falhas em Job Pods

  • Desafio: Usar Jobs para Geração de Números da Sorte de Loteria

  • Exercitar - Aprender fazendo!

  • Criando Jobs para Geração de Números da Sorte

  • Entendendo Detalhes do Job para Geração dos Números da Sorte

  • Job Completions - Múltiplas Tarefas com Job Único

  • Indexed Job Pods

  • Entendendo Execuções de Múltiplas Job Completions

  • Jobs Parallelism - Concorrência de Kubernetes Jobs

  • ActiveDeadlineSeconds - Parte 1

  • ActiveDeadlineSeconds - Parte 2


CronJobs

  • Overview da Seção CronJobs

  • Introdução à Kubernetes CronJobs

  • Estrutura Básica do Kubernetes CronJob

  • API CronJob

  • Kubernetes Cron Schedule Syntax

  • CronJob Special Strings

  • Exemplos de Schedule Cron & crontab guru

  • Exercitar - Aprender fazendo!

  • Criação e Execução de Kubernetes CronJob

  • Eventos e Execuções do Kubernetes CronJobs

  • Identificação: CronJobs > Jobs > Pods

  • Suspenção de CronJob - Parte 1: Suspend Patch

  • Suspenção de CronJob - Parte 2: Continue Patch

  • CronJobs Parallelism

  • Limitações Gerais Kubernetes CronJob - Parte 1

  • Limitações Gerais Kubernetes CronJob - Parte 2

  • Limitações Kubernetes CronJob Time Zones

  • Recursos Adicionais Cron


ConfigMaps

  • Overview das Seções ConfigMaps e Secrets

  • Introdução à Kubernetes ConfigMaps

  • Especificações Gerais de ConfigMaps

  • Exercitar - Aprender fazendo!

  • Criando ConfigMap

  • Mapeamento ConfigMap - Env Variable

  • Atualização de ConfigMap - Env Variable

  • Consumindo ConfigMap por Container Command

  • Criação de ConfigMap com ReadOnly Volume

  • Detalhes de ConfigMap com ReadOnly Volume

  • Atualização de ConfigMap com ReadOnly Volume

  • ConfigMap File Properties

  • ConfigMaps Baseados em Arquivo de Parâmetros

  • ConfigMaps Imutáveis

  • Implementando ConfigMaps Imutáveis


Secrets

  • Introdução a Kubernetes Secrets

  • Consumo de Secrets - Base64 & Arbitrary Strings

  • Exercitar - Aprender fazendo!

  • Criando Secret: data Field e Operações Base64

  • Opaque, stringdata Field, immutable

  • Criando e Usando Secrets com Env Variable e ReadOnly Volume

  • Secrets Opcionais

  • Kubernetes Built-in Types

  • Secret de Autenticação Básica

  • Secret Protection Power & Hardening Options


StatefulSets

  • Overview da Seção StatefulSets

  • Introdução à Kubernetes StatefulSets

  • StatefulSet Features

  • Composição de StatefulSet e Recusos Associados

  • Exercitar - Aprender fazendo!

  • Criando Headless Service

  • Criando StatefulSet

  • Dynamic Volume Provisioning (volumeClaimTemplates)

  • StatefulSet Scale-UP & Scale Down

  • Atualização de StatefulSet

  • Identidade Única de Rede, Persistência e Service Lookup

  • PersistentVolume, PersistentVolumeClaim e StorageClass

  • Remoção de PersistentVolumeClaim e PersistentVolume

  • OrderedReady Pod Management Policy

  • Parallel Pod Management Policy

  • Limiações StatefulSet


Endpoints

  • Overview da Seção Endpoints

  • Introdução à Kubernetes Endpoints

  • Exercitar - Aprender fazendo!

  • Criação de Recurso Kubernetes Endpoints

  • Utilização de Recurso Kubernetes Endpoints

  • Acessando Endpoints Externos ao Cluster Kubernetes


EndpointSlice

  • Overview da Seção EndpointSlice

  • Limitações de Recursos Endpoints

  • Escalabilidade e Extensibilidade EndpointSlice

  • EndpointSlice Labels e Endereçamentos Suportados

  • Exercitar - Aprender fazendo!

  • Criando EndpointSlice

  • Múltiplos EndpointSlice: Implementação e Uso

  • Automatic EndpointSlice Mirroring


RBAC Security Authorization

  • Overview da Seção RBAC

  • Introdução à RBAC Authorization

  • Access Control Types: Role/RoleBinding & ClusterRole/ClusterRoleBinding

  • Interação entre Objetos RBAC

  • RBAC Verbs for Roles

  • Implementação de Cenário Prático RBAC para Perfil de Auditor

  • Exercitar - Aprender fazendo!

  • Gerando Chave e Certificado de Segurança para RBAC

  • Configuração de Usuário e Contexto (kubeconfig credential & context)

  • Criação de Role e RoleBinding

  • Implementando RBAC Authorization

  • Testando RBAC Authorization

  • Removendo: Contexto, Usuário, Chave e Certificado


Guia de Boas Práticas para Kubernetes

  • Overview da Seção de Boas Práticas

  • Princípios Básicos da Administração do Kubernetes

  • Revisões de Códigos e Equipes DevOps

  • Controladores de Versões e Separações por Camadas (Layers)

  • Organização e Versionamento de Manifest Files

  • Rollout em Larga Escala / Abrangência Mundial


Projeto Final de Curso - Orquestração Real Profissional

  • Overview da Seção do Projeto Final de Curso

  • Overview do Projeto Final de Curso

  • Aplicação que será Orquestrada no Projeto

  • Conhecendo a Aplicação e suas Integrações

  • Fases do Projeto de Orquestração

  • Exercitar - Aprender fazendo!

  • Projeto Fase 1: Manifesto Namespace e Annotations

  • Projeto Fase 2: Manifesto Deployment

  • Projeto Fase 3: Implantando Aplicação

  • Projeto Fase 4: Verificando Implementação

  • Projeto Fase 5: Testando Aplicação

  • Projeto Fase 6: Migrando Aplicação para Service

  • Projeto Fase 7: Migrando Porta da Aplicação

  • Projeto Fase 8 - Escalando Aplicação

  • Projeto Fase 9: Atualizando Aplicação

  • Projeto Fase 10: Análise Final e Remoção da Aplicação


Encerramento do Curso

  • Finalização do Curso