Agile Brazil 2016 - Scaling without Expanding: a DevOps Story

download Agile Brazil 2016 - Scaling without Expanding: a DevOps Story

If you can't read please download the document

Transcript of Agile Brazil 2016 - Scaling without Expanding: a DevOps Story

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!