Olá! Gostaríamos de dar as boas-vindas à segunda parte do curso de Oracle Cloud Infrastructure. Nesta etapa, abordaremos bases de dados e infraestrutura como código. Meu nome é Essias, e vamos começar apresentando nossa aula e curso durante este vídeo. Também faremos uma breve recapitulação do que aprendemos na aula anterior. É de suma importância que todos tenham completado a primeira parte do curso para que possamos desenvolver juntos toda a implementação que será realizada aqui.
Recapitulando o que aprendemos: no curso anterior, criamos uma VCN, ou seja, uma Virtual Cloud Network (Rede de Nuvem Virtual), dentro do ambiente de rede da Oracle Cloud Infrastructure, na seção de rede da console. Trata-se basicamente de uma rede configurada virtualmente por meio de software, sem equipamentos físicos.
Além disso, criamos duas instâncias de máquinas virtuais através do menu Compute. É importante lembrar que essas máquinas não foram apenas criadas, mas também montamos o ambiente para executar nossa aplicação do portal cloud, que é a aplicação que estamos implementando durante este curso.
Por último, criamos um load balancer (balanceador de cargas) para equilibrar o tráfego em nosso site. Imagine que nosso site está em alta, com muitas pessoas acessando o portal cloud. Precisamos balancear os usuários que entram para não sobrecarregar as máquinas de nossa infraestrutura.
Agora, neste curso, veremos os próximos passos: definiremos uma base de dados, revisaremos as bases de dados existentes na Oracle Cloud Infrastructure e escolheremos uma para nossa aplicação. Também configuraremos a aplicação e a API do portal cloud. Isso é muito interessante, pois a automação não só traz comodidade, mas também eficiência, além de reduzir erros humanos.
Na próxima etapa, completaremos a parte de instalação da nossa arquitetura do portal cloud e colocaremos uma API em funcionamento. Isso permitirá que façamos atualizações sem a necessidade de acessar os ambientes da aplicação ou o servidor para editar arquivos. Será uma experiência muito interessante.
No passo 3, definiremos a parte de armazenamento de arquivos e também criaremos nossa infraestrutura como código. Para quem ainda não está familiarizado, essa é uma abordagem inovadora dentro da infraestrutura atual, especialmente no Macloud. Trata-se de construir nossa infraestrutura de maneira declarativa, utilizando um arquivo ou script. Nesse script, indicamos como desejamos que nossa infraestrutura seja, e o sistema executa esse script, transformando ou construindo nossa infraestrutura de forma rápida.
No passo 5, abordaremos a automatização e a reprodutibilidade da IAC, ou seja, da infraestrutura como código. Além disso, aprenderemos a trabalhar com o Resource Manager, que é o administrador de recursos dentro do Developer Services, o serviço de desenvolvedores da console da OCI. Para finalizar, utilizaremos scripts de Terraform na OCI. Isso será muito útil para criar nossa infraestrutura, e aprenderemos tecnologias que estão em uso atualmente, facilitando bastante nossa vida como pessoas desenvolvedoras, DevOps ou arquitetas de cloud.
Gostaria de compartilhar uma frase e, antes disso, dar um conselho. Sei que vamos aprender muitas coisas novas, especialmente para quem está começando agora, mas gostaria que fôssemos além. Tentemos, façamos nossos próprios laboratórios, experimentemos outras coisas e não nos limitemos apenas ao que estamos aprendendo aqui. A frase de Albert Hubbard que gosto muito diz: "Uma máquina pode fazer o trabalho de cinquenta pessoas comuns; nenhuma máquina pode fazer o trabalho de uma pessoa extraordinária." Portanto, sejamos extraordinários e busquemos sempre aprender mais.
Se houver alguma dúvida, vamos deixar as incertezas e dificuldades para trás e conversar. Convido todos a entrar na comunidade do Discord e deixar suas dúvidas lá. Há professores e outras pessoas capacitadas para responder. Nos vemos na próxima aula. Até mais!
Agora vamos discutir sobre as bases de dados dentro da Oracle Cloud Infrastructure (OCI) e compreender a infraestrutura utilizada, para que possamos saber tudo o que podemos usar dentro da OCI e que faça sentido para nossa infraestrutura.
Primeiramente, precisamos entender os diferentes engines (mecanismos) de base de dados disponíveis no mercado atualmente. Por exemplo, temos o MySQL, que é uma base de dados open source (código aberto), criada em 1995, conhecida por ser rápida e popular. O MySQL, ou MySQL como costumamos dizer no Brasil, pertence à Oracle. Após a Oracle adquirir a Sun, fabricante do MySQL, passou a deter também os direitos e oferece alguns produtos empresariais do MySQL.
O PostgreSQL também é uma base open source, avançada, robusta e altamente extensível. Utilizamos bastante em nossos projetos na empresa. Já o Oracle NoSQL Database é focado em escala e baixa latência, funcionando de forma semelhante ao MongoDB, trabalhando com chave e valor.
Precisamos entender outra parte da OCI, que é o Oracle AI Database. Este é um mundo à parte, por isso destacamos essa questão. Existem dois menus básicos dentro do console da OCI: o primeiro é o Oracle AI Database, que inclui o Autonomous Database, o Exadata e o Base Database. São tecnologias próprias da Oracle oferecidas como produtos. Explicaremos mais adiante a geração de valor que a Oracle tem com esse menu e esses produtos.
O segundo menu é o Databases, que inclui MySQL, PostgreSQL e Oracle NoSQL, os engines mencionados anteriormente. Temos uma imagem que ilustra o menu Databases com esses engines e o Autonomous, Exadata, Base Database, integrações e gestão dentro do menu Oracle AI Database.
Dentro do Oracle AI Database, temos basicamente três categorias de produtos. Primeiramente, aqueles totalmente geridos pela Oracle, onde não administramos nada além dos dados. A infraestrutura em si não é tocada. No Command Database, administramos parte da infraestrutura, como a quantidade de hardware desejada para a base de dados. A terceira parte envolve integração, operação e gestão.
Vamos explorar a tela da OCI para entender melhor, visualizando o console. No console, ao clicar no Navigation Menu, veremos o ícone mencionado, com os itens Oracle AI Database e Databases. Ao clicar em Databases, veremos MySQL, HeatWave, Postgre, MySQL HeatWave on AWS e Oracle NoSQL Database. No Oracle AI Database, encontramos o Autonomous AI Database.
Os produtos mencionados são geridos pela Oracle, que faz o gerenciamento completo. No Exadata, temos infraestrutura dedicada, infraestrutura com scale e a possibilidade de integrar parte da infraestrutura on-premise para comunicação com a Oracle.
Vamos criar o Autonomous AI Database para demonstrar como é a criação dessa base de dados. Não será a base de dados que utilizaremos em nossa aplicação, pois não é compatível. Precisaríamos fazer adaptações que não seriam profissionais, então usamos o produto correto para a ferramenta adequada.
Para criar, clique em Create Autonomous AI Database. Podemos nomear a base de dados, por exemplo, como "PRUEBA", e o display name também como "PRUEBA". Como convenção, geralmente os nomes de bases de dados estão em maiúsculas, então seguimos essa prática. Escolhemos o compartimento onde a base de dados será criada. No nosso caso, usamos o portal CloudDev.
Existem tipos de carga de trabalho: Lake House, que seria o antigo warehouse para tratamento de dados; Transaction Processing, para transações de escrita e leitura de dados; JSON, para armazenar dados em formato JSON (chave-valor); e APEX, para trabalhar com low-code, onde não trabalhamos diretamente com código, mas com algo que gera o código por trás.
Na Database Configuration, temos duas opções: Always Free e Developer. Always Free é sempre gratuito, mas ao desmarcar essa opção ou escolher outra, podemos entrar em uma infraestrutura paga. Ao selecionar Developer, algumas configurações são carregadas como padrão, mas podemos modificá-las, como a quantidade de CPU e armazenamento desejados. Vamos deixar Always Free para continuar.
Podemos escolher a versão da base de dados, sendo a versão 19c a estável atualmente. Esta base de dados autônoma da Oracle não requer DBAs para configurações ou ajustes, pois o próprio sistema realiza essas tarefas.
Existe a versão 26AI, que traz inteligência artificial incorporada, capacidade de machine learning (aprendizado de máquina) e outras funcionalidades para trabalhar e configurar dados de forma mais eficiente do que a versão 19c. No entanto, por ser uma ferramenta mais nova, a Oracle ainda está testando-a, por isso a versão 19c é mantida como padrão ao criar bases de dados. Podemos optar pela 26AI para experimentar e avaliar o valor que ela pode agregar à nossa infraestrutura.
Nas Advanced Options (Opções Avançadas), algumas configurações não podem ser alteradas. Quando o Always Free (Sempre Gratuito) está ativado, algumas opções ficam indisponíveis para modificação. Em Administration Credentials Creation (Criação de Credenciais de Administração), criaremos nossa senha de administrador. O nome de usuário padrão é "admin", e precisamos apenas criar uma senha. Vamos definir uma senha fácil de lembrar, que inclua caracteres especiais, letras maiúsculas e minúsculas, números e mais de 12 caracteres.
Em Network Access (Acesso à Rede), configuramos o tipo de acesso à internet. Temos três opções: Private (Privado), Private Endpoint Access Only (Acesso Somente ao Endpoint Privado), onde podemos criar acesso direto ao endpoint, mas não é configurável para nós, pois algumas opções estão restritas a quem paga pelo serviço. Como estamos usando o Always Free, não temos essa opção, mas podemos configurar um acesso seguro apenas para IPs ou VCNs permitidas em Security Access from Allowed IPs and VCN Only. Podemos escolher entre IP Address (Endereço IP), onde inserimos o bloco 0.0 ou 10.0.0, dependendo da rede que queremos liberar, ou uma Virtual Cloud Network usando seu OCI ID. Por simplicidade, deixaremos Security Access from Everywhere (Acesso Seguro de Qualquer Lugar).
Nas configurações adicionais, podemos inserir um e-mail de contato, como cias.souza@alura.com.br. Cada vez que criarmos uma base de dados e inserirmos um e-mail, o OCI enviará informações sobre essa base, além de notícias operacionais e anúncios.
Nas Advanced Options, há opções como criptografia, que é obrigatória na Oracle, garantindo segurança máxima. A parte de Maintenance (Manutenção) refere-se ao nível de atualização regular. Migration (Migração) é uma ferramenta para migrar dados de uma base para outra usando o Transportable Table Space da Oracle. Neste caso, não migraremos nada, então deixaremos desmarcado.
Em Tools (Ferramentas), existem opções como a MongoDB API, Oracle Apex, Data Transforms e a Oracle Machine Learning User Interface (Interface de Usuário de Aprendizado de Máquina da Oracle). Todas essas opções estão indisponíveis para edição, pois o Always Free está ativado. Se desmarcarmos o Always Free, elas se tornam editáveis, mas lembremos que haverá cobrança por qualquer serviço habilitado.
Em Security Attributes (Atributos de Segurança), trabalharemos com pacotes de roteamento de Zero Trust da Oracle. Em Tags, podemos configurar etiquetas para organizar nossa infraestrutura. À medida que ela cresce, as Tags facilitam a localização e organização interna.
Ao clicar em Create (Criar), a base de dados começará a ser criada. Caso ocorra um erro, como a necessidade de inserir um IP, basta corrigir e clicar novamente em Create. Após a criação, podemos acessar a ferramenta SQL dentro da Oracle para uso. Embora não utilizemos essa base de dados para prática, ela serve para aprendizado. Usaremos outra base de dados e formas de conexão mais interessantes.
A ferramenta SQL oferece um tutorial explicativo. Podemos realizar operações como Select, criar tabelas e outras ações usando a ferramenta SQL. Após a apresentação, precisamos eliminar essa base de dados. Para isso, clicamos em More Actions (Mais Ações) e depois em Terminate (Encerrar), digitando o nome da base e confirmando a ação.
No próximo vídeo, mostraremos como criar a base de dados que utilizaremos neste curso para montar nossa infraestrutura. Até o próximo vídeo!
Agora que já conhecemos as bases de dados da OCI, precisamos escolher uma base de dados para trabalhar em nossa aplicação. Escolhemos o WordPress como nossa aplicação, então a base de dados que selecionarmos deve ser compatível com ele. Neste caso, optamos pelo MySQL, que está disponível para nós dentro da OCI. Vamos trabalhar com ele.
Na tela da OCI, no console, vamos ver como criar essa base de dados. Primeiro, clicamos no Menu de navegação, depois em Base de dados e em DB Systems. Em DB Systems, podemos ver que já temos algumas bases de dados, uma ativa e outra excluída. Vamos mostrar como excluir uma base de dados. Esta já é uma base de dados MySQL, pronta para uso, mas vamos excluí-la para demonstrar. Sempre que precisarmos excluir uma base, podemos fazê-lo para ajustar ou testar nossas configurações. Podemos vir aqui e excluir a base de dados quantas vezes forem necessárias.
Ao selecionar a base de dados e procurar em Actions, a opção Delete estará desativada. Isso ocorre porque a base de dados tem uma proteção ativada. Vamos mostrar como desativar essa proteção. Após criar a base de dados, podemos deixá-la desativada. Essa proteção é uma camada extra de segurança para evitar exclusões acidentais, o que é comum. Estamos em um ambiente de aprendizado, então não precisamos de tanta segurança. Em um ambiente produtivo, no entanto, a segurança é essencial.
Para desativar a proteção, clicamos nos três pontos, selecionamos "ver detalhes" e acessamos a base de dados. Ao descer um pouco, encontramos a opção Deletion Plan e o botão Edit. Clicamos em Edit, desmarcamos Delete Protect e clicamos em Update. Agora, podemos selecionar a base de dados e escolher Stop, Restart ou Delete. Vamos clicar em Delete para excluir a base de dados. Há uma opção "Delete DB Systems Permanently", que selecionamos antes de confirmar a exclusão.
Podemos acompanhar o progresso da exclusão em Work Requests, onde vemos o percentual de conclusão da operação. A exclusão pode ser lenta. Também podemos gerenciar backups. Se houver algum backup, podemos selecioná-lo e excluí-lo para limpar nossas configurações na OCI.
Ao acessar oraclecloud.com e clicar em Try OCI for Free, podemos escolher Oracle Database, Always Free, e ver os tipos de base de dados disponíveis. Podemos usar até duas bases de dados, como o Oracle Database HeatWave. Podemos criar uma base stand-alone com até 50 GB de armazenamento e backup, sem custos.
Voltando à base de dados, verificamos o tempo de conclusão da exclusão. Após excluir o backup, retornamos a DB Systems para criar uma nova base de dados. Clicamos em Create DB Systems para iniciar o processo. Escolhemos a template da base, que pode ser para produção, desenvolvimento e teste, ou Always Free, que usaremos.
No compartment, escolhemos onde criar a base de dados. O compartment é onde os recursos são alocados. Vamos deixá-lo em "portal CloudDev". Podemos nomear o sistema de base de dados, usando um padrão como "WordPress_portal_Cloud". Podemos adicionar uma descrição para detalhar a base de dados.
Criamos um usuário, por exemplo, dm-portal-cloud, e definimos uma senha simples para estudo, mas recomendamos uma senha complexa para segurança. A senha será dm-essias-123, que copiamos e colamos no campo de confirmação.
Escolhemos entre standalone ou high availability. Apenas standalone está disponível, permitindo uma única instância. Em Configure network, escolhemos as configurações de rede, permanecendo no mesmo compartment. Selecionamos a VCN, como "portal-cloud-vcn1", criada no curso anterior. Escolhemos a subnet, podendo ser privada ou pública. Optamos por pública para acesso tanto pela rede privada quanto pública.
As opções avançadas possuem algumas configurações, como o plano de exclusão, que pode ser desabilitado ou habilitado para facilitar a exclusão e oferecer uma camada maior de segurança. Vamos deixar essa configuração como está. A retenção de backup automático também será mantida marcada para que os backups sejam feitos automaticamente. Na parte de backup final, é necessário um backup final ao eliminar sempre o sistema de banco de dados.
Existem mais configurações que podemos usar, como a configuração padrão para selecionar a forma, alterar a configuração, mas estamos sempre limitados. Caso já possua uma conta ou uma conta de teste por um mês com cerca de 300 dólares de crédito, ou se já fez o upgrade da sua conta, pode usar essas configurações.
Para criar nosso banco de dados, clicaremos em "Create", e ele será criado. Como mencionado no início, precisamos verificar em "Work Requests" para ver o percentual de criação, que está em 0% no momento. Está demorando um pouco para criar esses bancos de dados, então vamos aguardar a conclusão da criação para continuar a aula.
Lembrei de algo importante para mencionar enquanto a base está sendo criada: este banco de dados, ao contrário do que criamos antes, não pode ser acessado diretamente. É necessário um bastião, algo entre nós e o banco de dados. Neste caso, poderíamos usar o próprio WordPress para comunicação, ou phpMyAdmin, mas para simplificar e não precisar instalar muitas coisas nas máquinas, podemos usar o Cloud Shell em "Developer Tools". Já temos o Cloud Shell aberto.
Dentro do Cloud Shell, podemos usar o comando mysql --version para verificar se está instalado. Vemos que há uma versão instalada.
mysql --version
Se quisermos acessar de outra máquina, também é possível. Vou acessar minha máquina virtual, que está funcionando corretamente. Dentro dela, usarei mysql --version para verificar a versão, e vemos que o MySQL está instalado.
mysql --version
Enquanto isso, mostrarei como fazemos essa conexão. Escreveremos -p para que solicite a senha do usuário. Ao pressionar Enter, ele se conectará ao banco de dados e pedirá a senha do usuário adm-portal-cloud.
mysql -u adm-portal-cloud -p
Digitaremos a senha. Agora, precisamos escrever -h, que é o host da máquina à qual queremos nos conectar. Para saber o host, vamos em "Connections", onde aparecerá o IP da máquina. Como a base ainda não foi totalmente criada, está em 32% agora, ainda não temos esse IP.
mysql -u adm-portal-cloud -p -h 10.0.1.231
Para se conectar ao banco de dados, além do endereço IP, também precisaremos da porta. A porta comum do MySQL é 3306. Sempre que trabalharmos com um banco assim, precisamos ir à lista de segurança e adicionar essa conexão, essa abertura de porta para a rede, nas regras de entrada (ingress rules).
Vamos ao menu de navegação, em "Networking", e em "Virtual Cloud Networks". Esperamos abrir e aparecerá nossa VCN. Entraremos na nossa VCN. Na parte superior, nas abas, vamos para a aba "Security". Não confunda "Security" com "Routing". "Routing" é o que manda a rota. "Security" é o que permitirá ou não o acesso.
Dentro de "Security", temos dois itens: nossa rede privada e nossa rede pública padrão. Entraremos na rede pública porque a máquina conectada aqui, a VM2, portal cloud vNIC1, não tem acesso na porta 3306. Quando tentarmos acessar o banco de dados, não será permitido devido a esse bloqueio. Se tentarmos de outra máquina, essa outra máquina teria acesso, mas nossa base de dados está dentro dessa rede, então também não terá a abertura da porta.
É importante revisar o firewall e todas essas configurações dentro do servidor que estamos montando. Como estamos montando um servidor ao qual não temos acesso à máquina ou à configuração interna, configuraremos o firewall a nível de rede. Vamos para "Security Rules", onde lembraremos que criamos a porta 22 e a porta 80, e agora criaremos a porta 3306.
O CIDR que usaremos será 0.0.0.0/0, para aceitar todos os IPs de todos os lugares. Deixaremos marcado o protocolo, a porta de origem pode ser "all" ou não colocar nada, e assumirá "all", que seriam todas as portas pelas quais as conexões saem. Se colocarmos 3306 aqui e 3306 aqui, e o sistema sair por outra porta, não poderá acessar porque bloqueia a porta de origem. Por isso, deixamos todas as portas, e colocaremos 3306 aqui. Uma recomendação é colocar "mysql" na descrição para lembrar para que serve essa regra. Adicionamos as regras de entrada, e agora a máquina já tem acesso.
Vamos verificar se a base de dados terminou de ser criada. Em "Database", "DB Systems", veremos nossa base de dados, que ainda está em estado de criação. Devemos esperar que termine para poder acessar. Em "Work Requests", está em 65% de criação, e o cluster já está em 68%. Vamos aguardar um pouco.
Quando terminar, verificaremos se já tem IP. Já tem IP, ótimo. Colocamos o IP aqui e tentamos conectar à máquina. Solicita a senha, então digitamos admecias@123 e pressionamos Enter novamente. O acesso foi negado, pode ser que estava em maiúsculas. Vou tentar novamente, digitando admecias@123. Pronto, já estamos conectados ao banco.
Para ver as bases de dados, dentro deste sistema de banco de dados, usaremos show databases;. Isso mostrará todas as bases de dados existentes.
show databases;
A base de dados que vamos criar será portal_cloud_wordpress. Vamos criar a base de dados com create database portal_cloud_wordpress;.
CREATE DATABASE portal_cloud_wordpress;
Agora, se executarmos show databases; novamente, veremos nossa base de dados portal_cloud_wordpress criada.
show databases;
O cluster ainda está sendo adicionado, mas já temos nossa base de dados criada e configurada, com o usuário pronto. Agora, só falta seguir para o próximo passo. Nos vemos no próximo vídeo.
O curso Oracle Cloud Infrastructure: banco de dados e infraestrutura como código possui 264 minutos de vídeos, em um total de 42 atividades. Gostou? Conheça nossos outros cursos de OCI em DevOps, ou leia nossos artigos de DevOps.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
O Plano Plus evoluiu: agora com Luri para impulsionar sua carreira com os melhores cursos e acesso à maior comunidade tech.
2 anos de Alura
Matricule-se no plano PLUS 24 e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Programação, Data Science, Front-end, DevOps, Mobile, Inovação & Gestão, UX & Design, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
Acesso à inteligência artificial da Alura.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Luri Vision chegou no Plano Pro: a IA da Alura que enxerga suas dúvidas, acelera seu aprendizado e conta também com o Alura Língua que prepara você para competir no mercado internacional.
2 anos de Alura
Todos os benefícios do PLUS 24 e mais vantagens exclusivas:
Chat, busca, exercícios abertos, revisão de aula, geração de legenda para certificado.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Para quem quer atingir seus objetivos mais rápido: Luri Vision ilimitado, vagas de emprego exclusivas e mentorias para acelerar cada etapa da jornada.
2 anos de Alura
Todos os benefícios do PRO 24 e mais vantagens exclusivas:
Catálogo de tecnologia para quem é da área de Marketing
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais de forma ilimitada.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.