This document discusses how Atlasssian's Build Engineering team scaled their operations without expanding their team size through the use of DevOps practices like automation, ChatOps, tracking, and support. Some key points:
- The team built automation around tasks like infrastructure provisioning and application deployment. This included using configuration management tools like Puppet and infrastructure as code with Terraform.
- They created a "command centre" in HipChat to centralize communications, monitoring, and knowledge sharing. This included bots, alerts from monitoring tools, and access to documentation.
- Extensive use of tracking tools like Grafana and custom solutions provided visibility into deployments, builds, and service usage. Contact rate tracking in particular
23. Spin up an exact
mirror of your server
~/s/buildeng-puppet ❯❯❯ vagrant status
Current machine states:
aptly not created (aws)
consul not created (aws)
bambooagent not created (aws)
bambooserver running (aws)
efs not created (aws)
bambooserver_rds not created (aws)
dns not created (aws)
basebox not created (aws)
gnomes not created (aws)
status not created (aws)
graphite not created (aws)
31. …software and IT teams evolved from email
to chat. They also replaced repetitive tasks
with automation, and replaced annual
change control meetings with devops’
continuous collaboration. And they pulled it
all together into a central tool like HipChat.
SEAN REGAN, HIPCHAT EVANGELIST, ATLASSIAN
“
”
Somos o principal parceiro Atlassian da América Latina e uma das principais empresas brasileiras na exportação de serviços de desenvolvimento de software para o mercado americano.
ask about tools
automação é o principal pilar do DevOps (mencionar Kaizen)
automação e escalabilidade apresenta desafios.
mix de pessoas certas ajuda a espalhar a cultura na organização
Automação: ajuda a manter o foco no propósito do time de vocês
ChatOps: não perder tempo procurando informação
Tracking: foco nas mudanças de maior impacto
Support: como alguns generalistas ajudam a resolver rápido
Automation: allows you to focus on the core value proposition of your team via automating out the repetitive bits.
ChatOps: Helps you scale by eliminating wasted time searching for information
Tracking: Allows you to focus on the places where changes will make the biggest impact
Support: Will discuss how a few generalists can solve problems a lot faster than a team of specialists, allowing those specialists to focus on their speciality
but first, let’s have a quick look at my team
Clientes são developers e profissionais qualificados com foco em melhorar o ALM.
BET: time de ops com as melhores práticas de DEV e Support
O que motivou essa talk?Escalabilidade: 1.8 em 2 anos. E o time?
E o time?
Como? Tudo iniciou com automação.
Para alcançar a verdadeira escalabilidade, você precisa automatizar ao máximo.
Pq? Automação deixa que o seu time foque nas coisas que você realmente precisa fazer.
Scenario: startup XXX
grande release
trabalharam por meses e testaram
no dia da release… um dos deploys falharam.
Aonde há fumaça, há fogo. E o melhor bombeiro para todas as releases é o CI.
* automatiza os deploys, ajuda a construir um pipeline. Torna visivel.* Nós usamos Bamboo para esse tipo de tarefa…
ele ajuda a sabermos o que está sendo executado em cada ambiente. Startup notou que alguém fez deploy da release (com bug). Se eles usassem uma ferramenta de CI e CD, isso poderia ser evitado.
Uma ferramenta como de CI/CD também ajudaria a quebrar as releases em pequenos pedals testados constantemente. Diminuindo o risco das releases. (linha verde).
* Startup CI/CD ok
com a popularidade, deploy em 20 servidores. Versão de JRE
humanos são ruins nessas atividades. Há uma forma melhor?
Big step: pets vs cattle (Bill Parker - Microsoft)
* Eliminate Configuration Drift
* Faster Deploys
* The benefits of configuration as code can’t be understated.
puppet labs
arquivo de configuração com permissões
* Puppet é ótimo, mas a startup percebeu que o grande benefício é que eles podiam aplicar todo o known-how que eles tiverem com o CI/CD para a configuração dos seus servidores.
rollback
collaboration (pr reviews on config changes)
arquivo no puppet com permissões erradas
por sorte, a startup pode e deve testar também as configurações.
Simples:
iniciar uma instância do serviço
fazer deploy
executar testes
Ferramentas que podem auxiliar no processo
* Vagrant integra com puppets. (ansible e docker)
server com as configurações
pronto para testes
Testes com foco no comportamento executando na instância do servidor.
* Bamboo agent test precisa de um home directory
Startup conseguiu automatizar a configuração dos servidores. A vida é boa. Mas e o hardware? Com a popularidade, precisam de mais capacidade. Com sorte, há uma solução para infraestrutura.
* Infrastructure as code (explicar) - build deploy HW
startup vendeu seu hardware antigo e foi para a cloud.
Jira precisava de mais CPU. E agora?
Essa é a descrição do Jira server da nossa startup em uma ferramenta chamada Terraform. Da mesma forma como no Puppet, mas para HW.
Nossa startup possui um excelente pipeline, colaborativo e que permite que configuração e infra possam ser trabalhadas como código.
Benefits:
rollback
collaboration (pr reviews on hardware changes!)
rastreabilidade.
Recap (facebook):
CI com Bamboo
Configurações com Puppet e testes com Vagrant
Terraform para código
ChatOps (coined recently) - não perder informação.
TUDO em uma ferramenta.
hip chat é a primeira coisa na manhã e a última no dia.
monitor dedicado para overview alto nivel
se você não puder resolver, pode ajudar
no more wasted time searching for information
Como usamos? (explicar)
Pull request é um bom exemplo.
Em breve será disponibilizado como um plugin opensource.
Difícil encontrar informações tecnicas.
Perguntar sobre Wiki
Hipchat - integrações
askbot
buscar do confluence x reports
excesso de alertas tornam-se inúteis.
solução? enviar para o hip chat
Automação da automação
google
execução de scripts
logs
Automatize as principais tarefas no sala/canal do teu time.
Agora, uma pequena história.
pessoas confortáveis.
DevOps é cultural e nada é mais forte na mudança de uma cultura que a comunicação.
ChatOps é o melhor disso.
Alguns times pensam que estão falando para grandes audiências.
Espalhar a cultura pois os times copiam as melhores práticas.
Tracking: como construir sentinelas para cuidar dos serviços.
Faça tracking de tudo que é possível.
Tracking remove a barreira dos sentimentos e permite que as decisões possam ser tomadas em dados. (senão é sua opinião)
Incidentes de performance são difíceis. Mapear pode ser doloroso.
(datadog)* colete o máximo de informações possível. Infra, serviços, tudo.* configure alertas para tomar a ação ANTES do problema.
Cruze as informações com outras fontes de dados, como Wallboards. (Bamboo)
Mais uma vez, o hip chat… Celebrar os deploys.
Quais alertas são relevantes?
Faça algo sobre os alertas!
Remove a barreira e que separa você dos demais times e do seu cliente.
Status page.
Poder ao usuário: heroku
StatusPage
Dar poder ao usuário é uma forma de automação.
contatos/pessoas por periodo
há ferramentas para isso.
Utilização do MAVEN é um ótimo exemplo.
The Maven Self Help: Maven Atlassian Self Help Tool
Maven is a 3rd party tool and we can change it.
So we build an abstract layer on top of it which provides the most relevant information in a searchable place.
Another way you can improve your service is by:
Fix was you can, abstract what you can’t
Invest in usability
sometimes you’ll be locked into providing something that just doesn’t work the way you need it to, so spend the time
describe go/mash
** splash page on “Fix was you can, abstract what you can’t”
Um dos goals do DevOps é quebrar as paredes entre times. Inicialmente DEV, mas também para clientes. Compartilhar algumas informações com o client cria um ambiente de confiança e transp. E sem trabalho para o seu time.
E o suporte? Bem… ele pode proteger o seu projeto de ser interrompido, mantendo a produtividade e foco.
proxima fase: trazer o suporte
suporte tradicional não é proativo e nem reativo.
Para nós, as mesmas práticas de DEV tem sido aplicadas para o suporte. Vamos ver…
explicar….
Rotação ajuda a criar generalistas e deixar os especialistas focados nas suas especialidades.
Explicar (wizard of the week)
Unificar os contatos
Nosso trabalho é complicado e os números de use cases são muitos. Para escalar, precisamos construir experts que ajudam os novatos a entrarem no ritmo.
É muito fácil para o os times entrarem em um buraco. Nós precisamos entender as necessidades antes. (pipeline)
(explicar o retry de builds)
focar no mais importante.
A proxima fase do DevOps é essa. Proteger o projeto com um suporte pró-ativo permitindo entregas mais rapidas.
Bamboo (CI), HC (Chatops), Bitbucket, Confluence (KB), Jira.
Amamos integrar com outras ferramentas.
One of the great things about the Atlassian Stack is that there are tonnes of integrations with other tooling that will help you scale your DevOps team.
DevOps é uma queer cultural sue acontece quango o time abrade a automação permitindo escalabilidade massiva sem aumentar os custom do time de forma sign. Vão e dêem essa chance para empresa de vocês e automatizem, focando novamente no futuro.