Tutorial: Build Your Own Heroku With Cloud... - Muvaffak Onus, & Sidarta Oliveira, Grupo Boticário

Tutorial: Build Your Own Heroku With Cloud... - Muvaffak Onus, & Sidarta Oliveira, Grupo Boticário

Introdução

Visão Geral da Seção: Esta apresentação aborda a criação de uma plataforma semelhante ao Heroku usando uma pilha nativa em nuvem, que inclui o Backstage, Argo CD e um repositório Git.

Experiência do Heroku

  • O Heroku permite fazer alterações no código, fazer push e tudo fica online.
  • Oferece recursos como implantação, dimensionamento, monitoramento e algumas medidas de segurança.
  • No entanto, não é flexível o suficiente para empresas maiores que precisam de mais controle sobre suas configurações e contas em nuvem.

Ferramentas Utilizadas

Crossplane

  • Permite criar sua própria plataforma em nuvem interna para provisionar recursos em nuvem.
  • Integra-se com ferramentas como Terraform e Kubernetes.
  • Instala CI/CDs e permite interagir com eles por meio da API do Kubernetes.

Backstage

  • Fornece um catálogo de serviços interno para a empresa.
  • Permite criar novos aplicativos a partir de modelos pré-definidos.
  • Oferece informações sobre os serviços disponíveis, como propriedade e documentação.

Argo CD

  • Gerencia a implantação de aplicativos e infraestrutura.
  • Integra-se com o Backstage para implantar aplicativos automaticamente quando solicitado.

Diagrama Básico da Solução Proposta

Diagrama

Introdução ao Tutorial

Visão Geral da Seção: Nesta seção, o tutor explica que o tutorial irá abordar a experiência do Heroku e como ele funciona. Ele sugere que os ouvintes acessem uma página específica para copiar e colar o código necessário durante o tutorial.

Acessando a Página do Heroku

  • É sugerido aos ouvintes que acessem a página do Heroku para criar um novo aplicativo.
  • O tutor pede para colocarem a página em uma aba aberta para facilitar a cópia e colagem de código posteriormente.

Criação de um Aplicativo no Heroku

  • O tutor cria um novo aplicativo no Heroku.
  • Ele faz login na sua conta do Heroku.
  • O tutor menciona que criará uma pasta para o projeto.

Configurações de Visualização

  • Há dificuldades iniciais com as configurações de visualização, mas são resolvidas posteriormente.
  • O tutor ajusta as configurações para tornar o texto mais legível.

Push Inicial para o Repositório Remoto

  • O tutor adiciona o repositório remoto do Heroku ao projeto local.
  • Ele realiza um push inicial para enviar as alterações ao repositório remoto.

Experiência do Heroku

  • Ao fazer alterações no código e realizar push, o aplicativo é automaticamente construído e implantado pelo Heroku.
  • Isso demonstra a experiência contínua de implantação automática oferecida pelo Heroku.

Adicionando Add-ons (Infraestrutura)

  • É mencionado brevemente sobre os add-ons, que são recursos adicionais que podem ser adicionados a um aplicativo no Heroku.
  • Um exemplo de add-on é mencionado, mas não é implementado neste momento.

Preparando o Cluster

  • O tutor copia um código relacionado à configuração do cluster.
  • Ele cria um namespace para trabalhar com o Heroku, Backstage, Crossplane e Argo CD.

Configurando o Backstage

  • O tutor explica que o Backstage é uma biblioteca TypeScript que permite construir interfaces personalizadas.
  • Ele demonstra como criar um aplicativo Backstage e fazer alterações no código.

Conclusão da Seção

  • O tutor conclui a seção informando que será necessário instalar ferramentas adicionais e continuar fazendo alterações no código do projeto Backstage.

Explorando o Projeto Backstage

Visão Geral da Seção: Nesta seção, o tutor explora o projeto Backstage recém-criado e mostra seu estado inicial.

Explorando a Estrutura do Projeto

  • O tutor mostra a estrutura de pastas do projeto Backstage.
  • Ele destaca as pastas "app" (front-end) e "backend" (back-end).

Iniciando o Servidor Localmente

  • É mencionado que será necessário executar npm start para iniciar o servidor localmente.
  • No entanto, essa etapa não é realizada neste momento.

Conclusão Parcial da Seção

Visão Geral da Seção: Nesta seção, foi explorada a estrutura inicial do projeto Backstage. A próxima etapa envolverá a execução do servidor localmente e a visualização do estado inicial do projeto.

Próximos Passos

  • O tutor menciona que o próximo passo será executar o servidor localmente e verificar o estado inicial do projeto Backstage.

Fim da Transcrição

Visão Geral da Seção: A transcrição termina aqui.

Visão Geral da Interface do Backstage

Visão Geral da Seção: Nesta seção, o palestrante apresenta a interface inicial do Backstage e explica suas funcionalidades.

Exemplo de Website e Criação de Novo Componente

  • O Backstage possui um exemplo de website e a opção de criar um novo componente.
  • A parte do catálogo mostra todos os softwares em execução na empresa, incluindo informações sobre CI/CD, dependências e documentação.
  • Ao clicar em uma fonte, como um repositório no GitHub, é possível ser redirecionado para lá.
  • A parte de criação permite escolher um template e criar um repositório no GitHub com base nesse template.

Criação de Token do GitHub

  • É necessário criar um token do GitHub para dar permissões ao Backstage para criar repositórios.
  • O token precisa ter permissões para repositórios e fluxos de trabalho.

Verificação das Configurações

  • É preciso verificar as configurações do aplicativo (app config) para garantir que o ambiente esteja correto.
  • Existem diferentes arquivos de configuração dependendo do ambiente (local, produção).
  • É importante verificar se a integração com o GitHub está correta.

Criação de Serviço

  • O processo de criação de serviço envolve três etapas: fornecer um diretório inicial, publicar no repositório do GitHub e registrar no Backstage.
  • São utilizados templates predefinidos que podem ser personalizados com informações fornecidas pelo usuário.

Implantação no Cluster Kubernetes

  • Após a criação do serviço, é possível implantá-lo em um cluster Kubernetes.
  • É necessário configurar um banco de dados em memória e adicionar a opção de templates no Backstage.
  • Após a configuração, é feito o build da imagem e a implantação no cluster.

Instalação do Argo CD

  • O Argo CD será instalado no namespace Heroku usando uma imagem pré-carregada.

Problemas Técnicos e Soluções

Visão Geral da Seção: Nesta seção, o palestrante enfrenta problemas técnicos durante a demonstração e encontra soluções para resolvê-los.

Problema de Conexão Recusada

  • Durante a abertura do serviço implantado, ocorre um erro de "conexão recusada".

Solução do Problema

  • Foi identificado que faltava adicionar o token do GitHub como variável de ambiente.
  • Após corrigir essa falha, o serviço foi reiniciado com sucesso.

Implantação do Argo CD

Visão Geral da Seção: Nesta seção, o palestrante continua com a implantação do Argo CD após resolver os problemas técnicos anteriores.

Pré-carregamento das Imagens do Argo CD

  • Para evitar problemas com limites de download das imagens utilizadas pelo Argo CD, é feito um pré-carregamento dessas imagens.

Instalação do Argo CD no Namespace Heroku

  • O Argo CD é instalado no namespace Heroku utilizando as imagens pré-carregadas.

Esperando que ele apareça

Visão geral da seção: Nesta parte, o palestrante está esperando que algo apareça.

Aguardando a exibição rápida das imagens

  • O palestrante pré-carregou as imagens para que elas apareçam rapidamente.
  • Confirmação de que está tudo bem.

Imagens frequentemente usadas e problemas com o Wi-Fi

Visão geral da seção: O palestrante fala sobre o uso frequente de imagens e os problemas causados pelo Wi-Fi.

  • As imagens são frequentemente usadas e podem causar problemas no Wi-Fi.
  • Decisão de eliminar todas as imagens.
  • Observação de que as imagens podem voltar.
  • Confirmação de que as imagens estão retornando.
  • Tentativa de obter a senha inicial do Argo CD.

Configurando o Argo CD

Visão geral da seção: O palestrante configura o Argo CD.

  • Solicitação para obter a senha inicial do Argo CD.
  • Acesso ao Argo CD no Chrome.
  • Assumindo riscos durante a configuração do Argo CD.

Instalando Crossplane com Helm

Visão geral da seção: O palestrante instala o Crossplane usando o Helm.

  • Instalação do Crossplane com Helm.
  • Utilização de um exemplo simples de scaffolding para validar a instalação.

Criando um novo repositório

Visão geral da seção: O palestrante cria um novo repositório.

  • Criação de um novo repositório chamado "template-demo".
  • Clonagem do repositório criado.

Inicializando o repositório

Visão geral da seção: O palestrante inicializa o repositório criado anteriormente.

  • Inicialização do repositório "template-demo".

Criando um template YAML

Visão geral da seção: O palestrante cria um arquivo YAML para definir um template.

  • Explicação sobre a criação de um template YAML.
  • Definição das propriedades que serão solicitadas aos usuários.
  • Descrição dos passos necessários no template YAML.
  • Uso de valores fornecidos pelos usuários no skeleton template.
  • Publicação do template no GitHub e registro no catálogo do Backstage.

Criando a estrutura do projeto

Visão geral da seção: O palestrante cria a estrutura básica do projeto.

  • Criação da pasta "skeleton" para a estrutura do projeto.
  • Adição do arquivo "catalog-info.yaml".
  • Adição dos arquivos "package.json" e "server.js".

Adicionando código ao template

Visão geral da seção: O palestrante adiciona código ao template.

  • Uso de templates no código, substituindo valores específicos.
  • Continuação da adição de código ao template.

Essas são as principais informações e etapas mencionadas no vídeo.

Video description

Don’t miss out! Join us at our upcoming event: KubeCon + CloudNativeCon Europe 2023 in Amsterdam, The Netherlands from April 17-21. Learn more at https://kubecon.io​. The conference features presentations from developers and end users of Kubernetes, Prometheus, Envoy, and all of the other CNCF-hosted projects. Tutorial: Build Your Own Heroku With Cloud Native Stack - Muvaffak Onus, Upbound & Sidarta Aguiar de Oliveira, Grupo Boticário Speakers: Muvaffak Onus, Sidarta Aguiar de Oliveira Heroku has led the transformational PaaS experience we're all used to today and we still see companies building a variant of that experience in their specific niche. However, while the opinionated nature of Heroku made it a really sound choice for general use cases, everyone knows that they will outgrow it at one point. What if you could build your own Heroku and tailor it to your needs as you grow? With the help of the cloud native stack, we will build a Heroku experience that is fully customizable for your ever changing use cases. By combining Backstage, Crossplane and several other cloud native tools, we will build our platform that can give the Heroku experience to your users consistently while your organization’s needs grow and you accommodate the changes.