Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 14

Atlassian Platform Architecture: Jira, Forge, and Rovo

Recommended resources

Olá! Bem-vindo ao Módulo 3. Nas últimas semanas, construímos uma base teórica sólida sobre o funcionamento de LLMs, agentes de IA e, crucialmente, como usar a Geração Aumentada por Recuperação (RAG) para fundamentar as respostas da IA em conhecimento específico. Vimos como avaliar e diagnosticar esses sistemas, uma habilidade essencial para construir qualquer aplicação de IA robusta.

Agora, vamos começar a transição da teoria para a prática, focando no ecossistema específico do seu projeto.

Introdução

O objetivo desta lição é mapear o território da Atlassian, permitindo que você descreva a arquitetura da plataforma, com foco em Jira, Forge e Rovo. Entender como essas três peças se encaixam é o primeiro passo para projetar e construir seu agente de código. Pense nesta lição como o estudo da planta arquitetônica de um edifício antes de começar a instalar a fiação elétrica. Você precisa saber onde ficam as paredes, as fontes de energia e os conduítes para que seu trabalho seja eficiente e bem-sucedido.

Vamos desmistificar a plataforma Atlassian, mostrando como ela evoluiu de um conjunto de produtos isolados para uma plataforma de nuvem integrada e extensível, ideal para construir a automação que você planeja.


1. A Plataforma Atlassian: Uma Arquitetura em Camadas

Primeiramente, é importante ver a Atlassian não apenas como a criadora do Jira ou do Confluence, mas como a provedora de uma plataforma de nuvem unificada. Os produtos que usamos no dia a dia são, na verdade, soluções construídas sobre um conjunto de serviços compartilhados e uma infraestrutura robusta.

Observe a imagem abaixo para ter uma visão geral dessa arquitetura.

Atlassian Platform Architecture Overview
Este diagrama ilustra a arquitetura da plataforma Atlassian. No topo estão as soluções de negócios (Agile & DevOps, ITSM, etc.). Abaixo delas, temos os serviços compartilhados da plataforma (identidade, mídia) e a infraestrutura de nuvem fundamental. O ponto mais relevante para nós é o box '3rd party apps', que se integra à plataforma através de 'Forge' e 'Connect'.

Como você pode ver, a plataforma é projetada para ser extensível. O seu agente será uma dessas "3rd party apps" (ou, mais precisamente, um aplicativo privado para sua empresa). A maneira moderna e recomendada pela Atlassian para construir essas extensões é através do Forge.


2. Forge: A Plataforma de Extensibilidade Serverless

Para alguém com sua experiência em desenvolvimento backend e DevOps, o conceito por trás do Forge será bastante familiar. Forge é a plataforma de desenvolvimento de aplicativos FaaS (Function-as-a-Service) da Atlassian, construída sobre AWS Lambda. Isso significa que você pode escrever o código do seu agente (em JavaScript/TypeScript) e a Atlassian gerencia toda a infraestrutura, provisionamento, escalonamento e monitoramento para você.

O documento a seguir, da própria Atlassian, oferece uma excelente introdução à plataforma Forge.

The Forge platform

Para entender os componentes fundamentais do Forge, leia a introdução da documentação oficial.

Leia as seções 'The Forge platform', 'Forge runtime' e 'Events'. Preste especial atenção ao diagrama de arquitetura fornecido, pois ele visualiza como um aplicativo Forge interage com os produtos Atlassian. Não se preocupe com os detalhes sobre UI Kit ou Custom UI por enquanto; nosso foco inicial é na lógica de backend.

Com base na sua leitura e no seu conhecimento prévio de arquiteturas de software, vamos destacar os componentes mais relevantes para o seu projeto:

  • Forge Runtime: O coração da plataforma. Seu código é executado aqui em um ambiente serverless. Isso é análogo a escrever uma função Lambda na AWS ou uma Azure Function no ecossistema da Microsoft.
  • Events: Este é o mecanismo de gatilho para o seu agente. Você pode configurar seu aplicativo Forge para "ouvir" eventos específicos nos produtos Atlassian. No seu caso, o ponto de partida será um gatilho que dispara sua lógica quando um ticket no Jira é criado ou atualizado com uma tag específica (ex: code-agent-task). Isso se assemelha a configurar um webhook que chama uma API.
  • APIs: Um aplicativo Forge tem acesso autenticado às APIs REST dos produtos Atlassian (Jira, Confluence, etc.). É através dessas APIs que seu agente irá ler os detalhes da tarefa no Jira, adicionar comentários com o andamento do processo e, finalmente, atualizar o status do ticket.

Em resumo, Forge é o "corpo" do seu agente: o ambiente de execução onde a lógica reside e o sistema nervoso que o conecta ao Jira para receber estímulos (eventos) e realizar ações (chamadas de API).


3. A Camada de IA: Teamwork Graph, Atlassian Intelligence e Rovo

Agora que sabemos onde nosso agente vai rodar (no Forge), precisamos entender como ele vai pensar. É aqui que entra a camada de IA da Atlassian, que é composta por três componentes principais que trabalham em conjunto.

O artigo a seguir oferece uma visão clara e estruturada dessa arquitetura de IA. Ele é voltado para líderes de TI e desenvolvedores, então ele vai direto ao ponto.

Making sense of Atlassian's AI architecture: A guide for IT leaders and builders

Este artigo da Valiantys, 'Making sense of Atlassian's AI architecture', é um guia excelente que desmistifica os diferentes componentes de IA da Atlassian e como eles interagem.

Leia as seguintes seções para entender cada peça do quebra-cabeça: 'The semantic layer: what makes Atlassian’s AI different': Entenda o que é o Teamwork Graph. 'Atlassian Intelligence: built-in, invisible, grounded': Veja o papel da Atlassian Intelligence. 'Rovo: your AI teammate, not just a chatbot': Descubra o que é Rovo. 'Rovo for developers: agentic automation meets your terminal': Conecte Rovo ao seu objetivo de desenvolvimento. 'Summary for non-tech audiences': Revise a tabela no final, que oferece uma analogia útil para cada componente.

Vamos sintetizar esses conceitos, conectando-os ao que aprendemos no Módulo 2 sobre RAG e agentes.

  1. Teamwork Graph: Este é o componente fundamental que diferencia a IA da Atlassian. É um grafo de conhecimento que mapeia as entidades e seus relacionamentos dentro da sua organização: quem trabalha em quê, com quem, qual projeto está relacionado a qual documento, etc. Para o seu agente, o Teamwork Graph fornece o contexto que fundamenta o LLM, exatamente o mesmo princípio do RAG que estudamos. Ele ajuda a evitar alucinações, garantindo que a IA opere com base nos fatos da sua empresa.

  2. Atlassian Intelligence: Esta é a camada de funcionalidades de IA embutidas nos produtos. Pense nos recursos de "resumir texto", "gerar rascunho de e-mail" ou "pesquisar em linguagem natural" que aparecem diretamente na interface do Confluence ou Jira. Ela utiliza modelos de LLM externos (como GPT, Claude, etc.), mas sempre fundamentados pelo Teamwork Graph.

  3. Rovo: Este é o componente mais importante para você. Se o Atlassian Intelligence é um assistente passivo, Rovo é o seu "colega de equipe de IA" proativo e agente. Rovo é a plataforma que permite criar agentes que podem pesquisar informações em múltiplas fontes, sintetizá-las e, o mais importante, agir. Você poderá construir seu agente de código personalizado como um agente Rovo, usando o Forge para escrever a lógica das suas ferramentas (ex: create_pull_request, generate_migration_script).

O artigo menciona os Rovo Dev Agents (como o Code Planner), que transformam tickets do Jira em planos técnicos. Seu projeto visa levar essa ideia um passo adiante, não apenas planejando, mas executando o trabalho de ponta a ponta.


Colocando Tudo Junto: A Arquitetura do Seu Agente

Com base no que vimos, podemos agora desenhar a arquitetura de alto nível para o seu projeto:

Diagrama simplificado da arquitetura do agente proposto. Um evento no Jira dispara uma função no Forge. Essa função invoca um agente Rovo, que usa RAG para buscar contexto no Teamwork Graph, Google Drive e Git. Com base nesse contexto, o agente usa ferramentas (também definidas no Forge) para interagir com a API do GitHub e do Jira para completar a tarefa.

O fluxo de trabalho será:

  1. Um gatilho (por exemplo, a tag autocode em um ticket) em Jira ativa seu aplicativo.
  2. O aplicativo, rodando na plataforma Forge, recebe o evento.
  3. A lógica no Forge invoca seu agente Rovo personalizado, passando os detalhes do ticket.
  4. O agente Rovo usa seus recursos de RAG para buscar contexto relevante:
    • Do Teamwork Graph (para entender o projeto, o time, etc.).
    • Do Google Drive (para as regras de negócio).
    • Dos repositórios Git (para as regras de arquitetura e código existente).
  5. Com o contexto completo, o agente planeja e executa uma sequência de ações (tool use), como gerar código, criar branches, comitar arquivos e abrir Pull Requests através da API do GitHub.
  6. Finalmente, ele usa a API do Jira para atualizar o ticket com o resultado.

Conclusão

Nesta lição, você mapeou a arquitetura do ecossistema Atlassian e viu como seus componentes se conectam para viabilizar seu projeto de agente de código.

Principais Pontos:

  • A plataforma Atlassian é uma arquitetura em nuvem com camadas de serviços compartilhados, projetada para ser extensível.
  • Forge é a plataforma FaaS (serverless) da Atlassian, que permite construir aplicativos e automações usando JavaScript/TypeScript, tratando eventos e interagindo com APIs. Ele será o "corpo" do seu agente.
  • A camada de IA é composta pelo Teamwork Graph (o cérebro contextual), Atlassian Intelligence (recursos de IA passivos) e Rovo (a plataforma de agentes proativos).
  • Seu projeto será implementado como um agente Rovo personalizado, cuja lógica e ferramentas serão escritas na plataforma Forge, acionado por eventos do Jira.

Na Próxima Lição:

Agora que temos o mapa, vamos dar o primeiro passo prático. Na próxima lição, "Use a API REST do Jira para ler e analisar programaticamente os detalhes de um ticket", começaremos a construir a capacidade de "percepção" do nosso agente. Você aprenderá como autenticar e fazer chamadas à API do Jira para extrair as informações de que o agente precisará para iniciar seu trabalho.