Como implementar o Atlassian Jira + Confluence em uma corporação. Perguntas técnicas

Você está planejando implementar software Atlassian (Jira, Confluence)? Não quer cometer erros cruéis de design que terão de ser resolvidos no último momento?

Como implementar o Atlassian Jira + Confluence em uma corporação. Perguntas técnicas
Então este é o lugar para você - estamos considerando a implementação do Atlassian Jira + Confluence em corporações, levando em consideração diversos aspectos técnicos.
Olá, sou Product Owner na RSHB e sou responsável pelo desenvolvimento de um Sistema de Gerenciamento de Ciclo de Vida (LCMS) baseado nos produtos de software Atlassian Jira e Confluence.

Neste artigo descreverei os aspectos técnicos da construção de um sistema de gestão de vida. O artigo será útil para quem está planejando implementar ou desenvolver Atlassian Jira e Confluence em um ambiente corporativo. O artigo não requer conhecimentos especiais e destina-se a um nível inicial de familiaridade com os produtos Atlassian. O artigo será útil para administradores, proprietários de produtos, gerentes de projetos, arquitetos e qualquer pessoa que planeje implementar sistemas baseados em software Atlassian.

Introdução

O artigo discutirá questões técnicas de implementação de um Sistema de Gerenciamento do Ciclo de Vida (LCMS) em um ambiente corporativo. Vamos primeiro definir o que isso significa.

O que significa uma solução corporativa?

Isso significa a solução:

  1. Escalável. Se a carga aumentar, é tecnicamente possível aumentar a capacidade do sistema. Eles separam o dimensionamento horizontal e vertical - com o dimensionamento vertical, o poder dos servidores aumenta, com o dimensionamento horizontal, o número de servidores para o sistema aumenta.
  2. Tolerante a falhas. O sistema permanecerá disponível se um elemento falhar. Em geral, os sistemas corporativos não exigem tolerância a falhas, mas consideraremos exatamente essa solução. Planejamos ter centenas de usuários competitivos em nosso sistema e o tempo de inatividade será muito crítico.
  3. Suportado. A solução deve ser suportada pelo fornecedor. O software não suportado deve ser substituído por software proprietário ou outro software suportado.
  4. Instalação Autogerenciado (Na premissa). Autogerenciado é a capacidade de instalar software não na nuvem, mas em seus próprios servidores. Para ser mais preciso, todas essas opções de instalação não são SaaS. Neste artigo, consideraremos opções de instalação apenas para autogerenciado.
  5. Possibilidade de desenvolvimento e testes independentes. Para organizar mudanças previsíveis no sistema, são necessários um sistema separado para desenvolvimento (mudanças no próprio sistema), um sistema de teste (Staging) e um sistema produtivo para usuários.
  6. Другое. Suporta vários cenários de autenticação, suporta logs de auditoria, possui um modelo de função personalizável, etc.

Esses são os principais elementos das soluções empresariais e, infelizmente, muitas vezes são esquecidos na hora de projetar um sistema.

O que é um Sistema de Gerenciamento do Ciclo de Vida (LCMS)?

Resumindo, no nosso caso são Atlassian Jira e Atlassian Confluence - um sistema que fornece ferramentas para organizar o trabalho em equipe. O sistema não “impõe” regras para organizar o trabalho, mas fornece uma variedade de ferramentas de trabalho, incluindo Scrum, quadros Kanban, modelo em cascata, Scrum escalável, etc.
O nome LMS não é um termo da indústria ou um conceito comumente usado, é simplesmente o nome do sistema do nosso Banco. Para nós, o LMS não é um sistema de rastreamento de bugs, nem é um sistema de gerenciamento de incidentes ou de gerenciamento de mudanças.

O que a implementação inclui?

A implementação da solução consiste em muitas questões técnicas e organizacionais:

  • Atribuição de capacidade técnica.
  • Compra de software.
  • Criação de uma equipe para implementação da solução.
  • Instalação e configuração da solução.
  • Desenvolvimento de arquitetura de solução. Modelo.
  • Desenvolvimento de documentação operacional, incluindo instruções, regulamentos, projeto técnico, regulamentos, etc.
  • Mudando os processos da empresa.
  • Criando uma equipe de suporte. Desenvolvimento de SLA.
  • Treinamento de usuário.
  • Другое.

Neste artigo veremos os aspectos técnicos da implementação, sem detalhes sobre o componente organizacional.

Recursos do Atlassian

A Atlassian é líder em muitos segmentos:

Os produtos Atlassian oferecem todos os recursos empresariais de que você precisa. Observarei os seguintes recursos:

  1. As soluções Atlassian são baseadas no servidor web Java Tomcat. O software Apache Tomcat está incluído no software Atlassian como parte da instalação; você não pode alterar a versão do Apache Tomcat instalada como parte do software Atlassian, mesmo que a versão esteja desatualizada e contenha vulnerabilidades. A única opção é aguardar uma atualização do Atlassian, com uma versão mais recente do Apache Tomcat. Agora, por exemplo, as versões atuais do Jira possuem o Apache Tomcat 8.5.42 e o Confluence possui o Apache Tomcat 9.0.33.
  2. Interface amigável, são implementadas as melhores práticas disponíveis no mercado para esta classe de software.
  3. Solução totalmente personalizável. Com modificações, você pode implementar qualquer alteração na funcionalidade básica para o usuário.
  4. Ecossistema desenvolvido. Existem várias centenas de parceiros: https://partnerdirectory.atlassian.com, incluindo 16 parceiros na Rússia. É por meio de parceiros na Rússia que você pode comprar software, plug-ins da Atlassian e receber treinamento. São os parceiros que desenvolvem e suportam a maioria dos plugins.
  5. Loja de aplicativos (plug-ins): https://marketplace.atlassian.com. Os plug-ins expandem significativamente a funcionalidade do software Atlassian. A funcionalidade básica do software Atlassian é bastante modesta; para quase todas as tarefas, é necessário instalar plug-ins adicionais gratuitamente ou por dinheiro adicional. Portanto, os custos de software podem revelar-se significativamente superiores aos inicialmente estimados.
    Atualmente, vários milhares de plugins foram publicados na loja, quase mil deles foram testados e validados no programa de aplicativos aprovados para Data Center. Esses plug-ins podem ser considerados estáveis ​​e adequados para uso em sistemas ocupados.
    Aconselho você a abordar com cuidado a questão do planejamento de plugins, isso afeta muito o custo da solução, muitos dos plugins podem levar à instabilidade do sistema e o fabricante do plugin não fornece suporte para resolver o problema.
  6. Treinamentos e certificações: https://www.atlassian.com/university
  7. Os mecanismos SSO e SAML 2.0 são suportados.
  8. O suporte para escalabilidade e tolerância a falhas está disponível apenas nas edições Data Center. Esta edição apareceu pela primeira vez em 2014 (Jira 6.3). A funcionalidade das edições Data Center está em constante expansão e aprimoramento (por exemplo, a possibilidade de instalação de nó único apareceu apenas em 2020). A abordagem dos plug-ins para as edições do Data Center mudou muito em 2018 com a introdução de aplicativos aprovados para o Data Center.
  9. Custo do suporte. O custo do suporte do fornecedor é quase igual ao custo total das licenças de software. Um exemplo de cálculo do custo das licenças é dado abaixo.
  10. Falta de lançamentos de longo prazo. Existem os chamados Versões empresariais, mas elas, como todas as outras versões, têm suporte por 2 anos. Com a diferença que para as versões Enterprise são lançadas apenas correções, sem adição de novas funcionalidades.
  11. Opções de suporte estendido (com custo extra). https://www.atlassian.com/enterprise/support-services
  12. Várias opções de DBMS são suportadas. O software Atlassian vem com um SGBD H2 gratuito; este SGBD não é recomendado para uso produtivo. Os seguintes SGBDs são compatíveis para uso produtivo: Amazon Aurora (somente Data Center) PostgreSQL, Azure SQL, MySQL, Oracle DB, PostgreSQL, MS SQL Server. Existem restrições nas versões suportadas e muitas vezes apenas versões mais antigas são suportadas, mas para cada SGBD existe uma versão com suporte do fornecedor:
    Plataformas compatíveis com Jira,
    Plataformas suportadas pelo Confluence.

Arquitetura técnica

Como implementar o Atlassian Jira + Confluence em uma corporação. Perguntas técnicas

Explicações para o diagrama:

  • O diagrama mostra a implementação em nosso Banco; esta configuração é dada como exemplo e não é recomendada.
  • O nginx fornece funcionalidade de proxy reverso para Jira e Confluence.
  • A tolerância a falhas do SGBD é implementada por meio do SGBD.
  • As alterações são transferidas entre ambientes usando o plugin Configuration Manager for Jira.
  • O AppSrv no diagrama é um servidor de aplicativos proprietário para geração de relatórios e não usa software Atlassian.
  • O banco de dados EasyBI foi criado para construção de cubos e relatórios usando o plugin eazyBI Reports and Charts for Jira.
  • O serviço Confluence Synchrony (componente que permite a edição simultânea de documentos) não é separado em uma instalação separada e é iniciado junto com o Confluence, no mesmo servidor.

Licenciamento

As questões de licenciamento da Atlassian merecem um artigo separado; aqui mencionarei apenas princípios gerais.
Os principais problemas que encontramos foram problemas de licenciamento para edições do Data Center. Recursos de licenciamento para edições Server e Data Center:

  1. A licença da edição Server é perpétua e o comprador pode usar o software mesmo após a licença expirar. Porém, após o vencimento da licença, o comprador fica privado do direito de receber suporte para o produto e atualizar o software para as versões mais recentes.
  2. O licenciamento é baseado no número de usuários no sistema de permissão global 'Usuários JIRA'. Não importa se eles usam o sistema ou não - mesmo que os usuários nunca tenham feito login no sistema, todos os usuários serão levados em conta para a licença. Caso o número de usuários licenciados seja ultrapassado, a solução seria remover a permissão ‘Usuários JIRA’ de alguns usuários.
  3. Uma licença de Data Center é efetivamente uma assinatura. É necessária uma taxa de licença anual. Se o período expirar, o trabalho com o sistema será bloqueado.
  4. Os preços das licenças podem mudar com o tempo. Como mostra a prática, em maior medida e, talvez, de forma significativa. Portanto, se suas licenças custarem o mesmo valor este ano, no próximo ano o custo das licenças poderá aumentar.
  5. O licenciamento é realizado por usuário por nível (por exemplo, usuários de nível 1001-2000). É possível fazer upgrade para um nível superior, mediante pagamento adicional.
  6. Se o número de usuários licenciados for excedido, novos usuários serão criados sem direito de login (permissão global 'Usuários JIRA').
  7. Os plug-ins só podem ser licenciados para o mesmo número de usuários que o software principal.
  8. Apenas instalações produtivas precisam ser licenciadas; para o resto você pode obter uma licença de desenvolvedor: https://confluence.atlassian.com/jirakb/get-a-developer-license-for-jira-server-744526918.html.
  9. Para adquirir manutenção, você precisa adquirir a manutenção Renew Software - o custo é de aproximadamente 50% do custo do software original. Este recurso não está disponível para Data Center e não se aplica a plugins; para suportá-los, você terá que pagar o preço total anualmente.
    Assim, o suporte anual de software custa mais de 50% do custo total do software no caso da edição Server e 100% no caso da edição Data Center - isto é significativamente mais do que a maioria dos outros fornecedores. Na minha opinião, esta é uma desvantagem significativa do modelo de negócios da Atlassian.

Características da transição da edição Server para o Data Center:

  1. Há uma taxa para atualizar da edição Server para o Data Center. O custo pode ser encontrado aqui https://www.atlassian.com/licensing/data-center.
  2. Ao mudar da edição Server para Data Center, você não precisa pagar pela alteração da edição dos plugins - os plugins da edição Server continuarão funcionando. Mas será necessária a renovação das licenças dos plugins da edição Data Center.
  3. Você pode usar plug-ins que não possuem uma versão para uso com as edições do Data Center. No entanto, é claro, esses plug-ins podem não funcionar corretamente e é melhor fornecer uma alternativa a esses plug-ins com antecedência.
  4. A transição para a edição Data Center é realizada através da instalação de uma nova licença. No entanto, a licença da edição Server ainda permanece disponível.
  5. Não há diferenças funcionais entre as edições Data Center e Server para os usuários; todas as diferenças estão apenas nas funções administrativas e nos recursos técnicos de instalação.
  6. O custo do software e dos plug-ins varia de acordo com as edições Server e Data Center. A diferença no custo é frequentemente inferior a 5% (não significativa). Um exemplo de cálculo de custos é dado abaixo.

Escopo funcional de implementação

O pacote básico de software Atlassian inclui uma enorme quantidade de recursos, mas muitas vezes os recursos fornecidos pelo sistema são gravemente deficientes. Às vezes, mesmo as funções mais simples não estão disponíveis no pacote básico, então os plugins são indispensáveis ​​para quase qualquer implementação. Para o sistema Jira usamos os seguintes plugins (clicáveis ​​na imagem):
Como implementar o Atlassian Jira + Confluence em uma corporação. Perguntas técnicas

Para o sistema Confluence usamos os seguintes plugins (clicáveis ​​na imagem):
Como implementar o Atlassian Jira + Confluence em uma corporação. Perguntas técnicas

Comentários sobre tabelas com plugins:

  • Todos os preços são baseados em 2000 usuários;
  • Os preços apresentados são baseados nos preços listados https://marketplace.atlassian.com, o custo real (com descontos) é menor;
  • Como você pode ver, o valor total é praticamente o mesmo para as edições Data Center e Server;
  • Somente plug-ins que suportam a edição Data Center são selecionados para uso. Excluímos os plugins restantes dos planos de estabilidade do sistema.

A funcionalidade é descrita resumidamente na coluna Comentário. Plug-ins adicionais expandiram a funcionalidade do sistema:

  • Adicionadas diversas ferramentas visuais;
  • Os mecanismos de integração foram melhorados;
  • Adicionadas ferramentas para projetos de modelo em cascata;
  • Adicionadas ferramentas para Scrum escalável, para organização do trabalho de grandes equipes de projetos;
  • Adicionada funcionalidade para controle de tempo;
  • Adicionadas ferramentas para automatizar operações e configurar a solução;
  • Adicionada funcionalidade para simplificar e automatizar a administração da solução.

Além disso usamos Aplicativo Atlassian Companion. Este aplicativo permite editar arquivos em aplicativos externos (MS Office) e devolvê-los ao Confluence (check-in).
Aplicativo para estações de trabalho de usuários (thick client) Cliente Jira do ALM Works https://marketplace.atlassian.com/apps/7070 decidiu não usá-lo devido ao suporte insuficiente do fornecedor e às críticas negativas.
Para integração com MS Project Usamos um aplicativo escrito por você mesmo que permite atualizar os status dos problemas no MS Project a partir do Jira e vice-versa. No futuro, para os mesmos fins, planejamos usar um plugin pago Septah Bridge - Plug-in do projeto JIRA MS, que é instalado como um complemento do MS Project.
Integração com aplicativos externos implementado por meio de links de aplicativos. Ao mesmo tempo, para aplicativos Atlassian, as integrações são pré-configuradas e funcionam imediatamente após a configuração, por exemplo, você pode exibir informações sobre problemas no Jira em uma página no Confluence.
Para acessar os servidores Jira e Confluence, é utilizada a API REST: https://developer.atlassian.com/server/jira/platform/rest-apis.
API SOAP e XML-RPC estão obsoletas e não estão disponíveis para uso em versões mais recentes.

Conclusão

Assim, analisamos as características técnicas da implementação de um sistema baseado em produtos Atlassian. A solução proposta representa uma solução possível e é adequada para um ambiente empresarial

A solução proposta é escalável, tolerante a falhas, contém três ambientes para organização de desenvolvimento e teste, contém todos os elementos necessários para colaboração no sistema e oferece uma ampla gama de ferramentas para gerenciamento de projetos.

Terei prazer em responder perguntas nos comentários.

Fonte: habr.com