agile brazil 2016 - scaling without expanding: a devops story
TRANSCRIPT
VINICIUS LINCK SOFTWARE ARCHITECT E-CORE @VINNYLINCKScaling Without Expanding:A DevOps Story
Introduo - evangelista(joke)Tema (perguntar)
Somos o principal parceiro Atlassian da Amrica Latina e uma das principais empresas brasileiras na exportao de servios de desenvolvimento de software para o mercado americano.
Automation is the driving force of DevOps
ask about toolsautomao o principal pilar do DevOps (mencionar Kaizen) automao e escalabilidade apresenta desafios.mix de pessoas certas ajuda a espalhar a cultura na organizao
AutomationChatOpsTrackingSupportThe heart Of DevOpsBuild Your Command CentreCreate an Army of SentinelsProtect Your Project Work
Automao: ajuda a manter o foco no propsito do time de vocsChatOps: no perder tempo procurando informaoTracking: foco nas mudanas de maior impactoSupport: como alguns generalistas ajudam a resolver rpido
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 informationTracking: Allows you to focus on the places where changes will make the biggest impactSupport: 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, lets have a quick look at my team
MandateBuild and maintain the platform required by Atlasssians developers to build, test and release their productsBuild Engineerings
Clientes so developers e profissionais qualificados com foco em melhorar o ALM.
OPERATIONSBuild Engineering
SUPPORT
DEVELOPMENT
BET: time de ops com as melhores prticas de DEV e Support
1.8x the number of customers
O que motivou essa talk?Escalabilidade: 1.8 em 2 anos. E o time?
E o time?
AutomationChatOpsTrackingSupportThe heart Of DevOpsBuild Your Command CentreCreate an Army of SentinelsProtect Your Project Work
Como? Tudo iniciou com automao.
Automate every facet of your work
Para alcanar a verdadeira escalabilidade, voc precisa automatizar ao mximo.
Installing new infrastructureConfiguring your serversDeploying a new releaseStuff you actually want to get done
Pq? Automao deixa que o seu time foque nas coisas que voc realmente precisa fazer.
Scenario: startup XXXgrande releasetrabalharam por meses e testaramno dia da release um dos deploys falharam.
Continuous IntegrationThe starting point of every projectBring visibility to your automation
Aonde h fumaa, h fogo. E o melhor bombeiro para todas as releases o CI.* automatiza os deploys, ajuda a construir um pipeline. Torna visivel.* Ns usamos Bamboo para esse tipo de tarefa
Know whats runningin each environment
ele ajuda a sabermos o que est sendo executado em cada ambiente. Startup notou que algum fez deploy da release (com bug). Se eles usassem uma ferramenta de CI e CD, isso poderia ser evitado.
Continuous testing = more frequent releases
Uma ferramenta como de CI/CD tambm ajudaria a quebrar as releases em pequenos pedals testados constantemente. Diminuindo o risco das releases. (linha verde).
full bleed imageconstruction?farming?lego?
Configuring Servers
Configuration as Code
* Startup CI/CD okcom a popularidade, deploy em 20 servidores. Verso de JREhumanos so ruins nessas atividades. H uma forma melhor?
Building SoftwareBuilding Infrastructure
Big step: pets vs cattle (Bill Parker - Microsoft)* Eliminate Configuration Drift* Faster Deploys* The benefits of configuration as code cant be understated.
file { /etc/cron.daily/clean_m2_local': source => puppet:///modules/bamboo_agent_support_maven /etc/cron.daily/clean_m2_local', owner => 'root', group => 'root', mode => '0755',}Configuration as Code
ldally@ip-172-30-97-250:~$ ls -la /etc/cron.daily/clean_m2_local-rwxr-xr-x 1 root root 352 Sep 18 00:38 /etc/cron.daily/clean_m2_local
puppet labsarquivo de configurao com permisses
PuppetBamboo
* Puppet timo, mas a startup percebeu que o grande benefcio que eles podiam aplicar todo o known-how que eles tiverem com o CI/CD para a configurao dos seus servidores. rollbackcollaboration (pr reviews on config changes)
full bleed imagemeasuring something (olympics)?science?
Test
Virtualization and Behavioural Testing
arquivo no puppet com permisses erradaspor sorte, a startup pode e deve testar tambm as configuraes.
Spin up an instanceApply your configuration management and deploy your appRun your testsThe Testing Process
Simples:iniciar uma instncia do serviofazer deployexecutar testes
Testing ToolsVagrantCucumber
VirtualizationBehavioral Testing
Ferramentas que podem auxiliar no processo
Spin up an exact mirror of your serverSpin up exactly the environment you want~/s/buildeng-puppet vagrant statusCurrent 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)
* Vagrant integra com puppets. (ansible e docker)server com as configuraespronto para testes
Easy to understand expectationsQuick to write
Testes com foco no comportamento executando na instncia do servidor.* Bamboo agent test precisa de um home directory
full bleed imageshipping crates?military drop from plane?ice road trucker?
Configuring HardwareInfrastructure as Code
Startup conseguiu automatizar a configurao dos servidores. A vida boa. Mas e o hardware? Com a popularidade, precisam de mais capacidade. Com sorte, h uma soluo para infraestrutura.
Building SoftwareConfiguring Hardware
* Infrastructure as code (explicar) - build deploy HWstartup vendeu seu hardware antigo e foi para a cloud.Jira precisava de mais CPU. E agora?
# Create an instance for our JIRA serverresource "aws_instance" fried_fritter_jira { instance_type = "m4.2xlarge" ami = "ami-dfb0e7b5" disable_api_termination = "true" ebs_optimized = "true" subnet_id = ${aws_subnet.ff_us_east_1b.id} vpc_security_group_ids = [ ${aws_security_group.fried_fritter_jira.id} ] provider = "aws.{{ vpc.provider }}"}Infrastructure as Code
Essa a descrio do Jira server da nossa startup em uma ferramenta chamada Terraform. Da mesma forma como no Puppet, mas para HW.
BambooTerraform
Nossa startup possui um excelente pipeline, colaborativo e que permite que configurao e infra possam ser trabalhadas como cdigo. Benefits:rollbackcollaboration (pr reviews on hardware changes!)rastreabilidade.
Everything=
AutomatedStuff you actually want to get done
Recap (facebook):CI com BambooConfiguraes com Puppet e testes com VagrantTerraform para cdigo
AutomationChatOpsTrackingSupportThe Heart Of DevOpsBuild Your Command CentreCreate an Army of SentinelsProtect Your Project Work
ChatOps (coined recently) - no perder informao.
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
TUDO em uma ferramenta.
full bleed imagenasa ops room??
The Command Centre
hip chat a primeira coisa na manh e a ltima no dia.monitor dedicado para overview alto nivelse voc no puder resolver, pode ajudarno more wasted time searching for information
PublicOur HipChat Rooms
Private
Alerts
The FIGHT channel
Como usamos? (explicar)
Pull Request approvals
Green builds
No open tasks
Pull request um bom exemplo.
See which builds are (or arent) passing
Know what needs to be done to get your PR merged
Em breve ser disponibilizado como um plugin opensource.
You have an amazing knowledge base!but no one knows where it is :(
Difcil encontrar informaes tecnicas.Perguntar sobre Wiki
Inline access to a knowledge base
Hipchat - integraesaskbotbuscar do confluence x reports
excesso de alertas tornam-se inteis.
soluo? enviar para o hip chat
I heard you like botsSo I put bots in your bot So you can scale while they bot
Automao da automao
googleexecuo de scriptslogs
Automatize as principais tarefas no sala/canal do teu time.Agora, uma pequena histria.
pessoas confortveis.DevOps cultural e nada mais forte na mudana de uma cultura que a comunicao.ChatOps o melhor disso.Alguns times pensam que esto falando para grandes audincias.
ChatOps helps youSpreadyour DevOps culture
Espalhar a cultura pois os times copiam as melhores prticas.
AutomationChatOpsTrackingSupportThe Heart Of DevOpsBuild Your Command CentreCreate an Army of SentinelsProtect Your Project Work
Tracking: como construir sentinelas para cuidar dos servios.
Everything you seek to improveyou must track
Faa tracking de tudo que possvel.
Tracking remove a barreira dos sentimentos e permite que as decises possam ser tomadas em dados. (seno sua opinio)
I have no idea what Im doing
Incidentes de performance so difceis. Mapear pode ser doloroso.
Keep an eye on known causes of performance issues
Alongside the systems resources
(datadog)* colete o mximo de informaes possvel. Infra, servios, tudo.* configure alertas para tomar a ao ANTES do problema.
agent smith SS
The most important details of each instance
Cruze as informaes com outras fontes de dados, como Wallboards. (Bamboo)
Most of the time your deployments will succeed! but sometimes they wont
Mais uma vez, o hip chat Celebrar os deploys.
Can you see the forest for the trees?
Quais alertas so relevantes?
Whats sending the most alerts?
Faa algo sobre os alertas!
Remove a barreira e que separa voc dos demais times e do seu cliente. Status page.
Expose the critical stats to your users
Poder ao usurio: herokuStatusPage
Dar poder ao usurio uma forma de automao.
If you track your serviceshouldnt you track how people use your service?
Contact Rate Tracking
contatos/pessoas por periodo
Count and categorise your contacts
h ferramentas para isso.
Contact Analysis
Utilizao do MAVEN um timo exemplo.
Case Study: M.A.S.H
The Maven Self Help: Maven Atlassian Self Help Tool
go/mash
The most important details about an artefact summarised
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 cantInvest in usability sometimes youll be locked into providing something that just doesnt work the way you need it to, so spend the time describe go/mash
** splash page on Fix was you can, abstract what you cant
Shareyour tracking
Um dos goals do DevOps quebrar as paredes entre times. Inicialmente DEV, mas tambm para clientes. Compartilhar algumas informaes com o client cria um ambiente de confiana e transp. E sem trabalho para o seu time.
AutomationChatOpsTrackingSupportThe Heart Of DevOpsBuild Your Command CentreCreate an Army of SentinelsProtect Your Project Work
E o suporte? Bem ele pode proteger o seu projeto de ser interrompido, mantendo a produtividade e foco.
OPERATIONSBuild Engineering
SUPPORT
DEVELOPMENT
proxima fase: trazer o suportesuporte tradicional no proativo e nem reativo.Para ns, as mesmas prticas de DEV tem sido aplicadas para o suporte. Vamos ver
OPERATIONSMaintenance
SUPPORT
DEVELOPMENT
Shields
explicar.
OPERATIONSMaintenance
SUPPORT
DEVELOPMENT
Shields
Rotao ajuda a criar generalistas e deixar os especialistas focados nas suas especialidades.
MaintenanceShieldsDevelopment / OperationsHipChatConfluenceQuestionsServiceDesk
ShieldsInfrastructure specialistsDevelopment specialists
Explicar (wizard of the week)
go/buildengfull bleed of go/buildeng
Unificar os contatos
Building ChampionsPublic ForumUser GroupsBootcamps
Nosso trabalho complicado e os nmeros de use cases so muitos. Para escalar, precisamos construir experts que ajudam os novatos a entrarem no ritmo.
Getting proactive: Pipeline Consulting
muito fcil para o os times entrarem em um buraco. Ns precisamos entender as necessidades antes. (pipeline)
PC - Criteria
What makes a pipeline hard to work with?
(explicar o retry de builds)focar no mais importante.
Support your customersproactively
A proxima fase do DevOps essa. Proteger o projeto com um suporte pr-ativo permitindo entregas mais rapidas.
Tooling Summary
Atlasssian StackThird Party Tooling
Bamboo (CI), HC (Chatops), Bitbucket, Confluence (KB), Jira.Amamos integrar com outras ferramentas.
MonitoringHostingDeploymentConfigurationTestingDependencyAnalytics + SecuritySomething for everybody
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 automao permitindo escalabilidade massiva sem aumentar os custom do time de forma sign. Vo e dem essa chance para empresa de vocs e automatizem, focando novamente no futuro.
Thank you!