55
Startups e DevOps PhD José Bringel Filho Lagoas Digitais / CUIA

Startups e DevOps

Embed Size (px)

Citation preview

Page 1: Startups e DevOps

Startups e DevOps

PhD José Bringel FilhoLagoas Digitais / CUIA

Page 2: Startups e DevOps

Por que DevOps? Qual a relação com a minha Startup? Por que eu preciso disso?

2

Page 3: Startups e DevOps

Startup Enxuta - Lean Startup

3

Aprende Construir

Ideia

Dados Produto

Medir

MVP

Devo Contruir

MVPs

Page 4: Startups e DevOps

4

PRODUTO

Na verdade, várias versões de MVP conforme a validação e aprendizado do negócio

Page 5: Startups e DevOps

5

Utilizando metodologia ágil para entregar valor ao cliente rapidamente

Page 6: Startups e DevOps

6

MVP

De forma alinhada com a validação/descoberta de clientes – Startup Enxuta

Page 7: Startups e DevOps

7

CONSUMIDOR

Mas precisamos manter o foco no cliente!!!

Page 8: Startups e DevOps

8

Conhecendo bem os seus problemas e necessidades que mudam continuamente

Page 9: Startups e DevOps

9

Então precisamos construir MVPs rapidamente, continuamente e sem interrupções/falhas

Page 10: Startups e DevOps

10

Como então responder rapidamente as demandas dos nossos consumidores, aliando entregas rápidas e com infraestrutura dimensionada para atender?

Page 11: Startups e DevOps

11

Surge então em 2008/2009 o movimento DevOps, recebendo influencia do movimento ágil e propondo eficiencia na entrega de infraestrutura/operacional para os desenvolvedores

Page 12: Startups e DevOps

A união de 2 mundos até então separados por cultura, mas que devem caminhar juntos em busca do atendimento rápido as mudanças do mercado

Page 13: Startups e DevOps

13

DevOps está em constante evolução e com terminologia em mutação contínua

Page 14: Startups e DevOps

14

É cada vez mais comum a aproximação e trabalho colaborativo de profissionais de desenvolvimento com os de infraestrutura, em busca de objetivos comuns de negócio

Page 15: Startups e DevOps

15

Colaboração

Comunicação

Integração

Melhorando a comunicação, colaboração e integração, em prol de produtos confiáveis, com maior qualidade e menor taxa de erros/falhas de disponibilidade

Page 16: Startups e DevOps

DevOps possui 4 eixos principais: Cultura, Automação, Avaliação e Compartilhamento

16

Page 17: Startups e DevOps

17

Page 18: Startups e DevOps

Beleza, entendi o que é DevOps. Agora, o que eu devo fazer?

1º Entender as características de um ambiente DevOps

18

Page 19: Startups e DevOps

Como é um ambiente com características DevOps?• Infraestrutura como código

• Orquestração de servidores

• Deploy Automatizado

• Gerência de configurações

• Provisionamento dinâmico e automatizado de ambientes

• Controle de versões compartilhado entre infraestrutura e desenvolvimento

• Múltiplos ambiente para sistemas - desenvolvimento, teste, produção

• Ambientes de entrega e integração contínua

19

Page 20: Startups e DevOps

Como é um ambiente com características DevOps?• Publicação de novas versões de software passando por um pipeline

de testes automatizados que aceitam ou não a versão

• Coleta, Processamento, Armazenamento e visualização de dados dos serviços e sistemas

• Monitoramento do ponto de vista do negócio com processamento adequado dos eventos e métricas

• Capacidade de resposta rápida a incidentes e problemas utilizando automação

• Backup e restauração confiáveis

20

Page 21: Startups e DevOps

Entendi como é um ambiente e vejo que já usava ferramentas DevOps na empresa, mas não tinha a cultura. O que fazer agora?

2º Inserir a cultura nos novos projetos

21

Page 22: Startups e DevOps

Minha empresa iniciará 1 novo projeto, o que fazer?• Equipe da Infraestrutura deve participar do

desenvolvimento desde o início• Quem irá garantir disponibilidade, segurança, desempenho e

monitoração?

• Quanto mais falhas forem resolvidas durante o período de desenvolvimento do projeto menor é a possibilidade de problemas serem expostos aos clientes

• Quando os times trabalham juntos o produto tem maior qualidade e desempenho pois ambos agregam valor e conhecimento ao projeto

22

Page 23: Startups e DevOps

DevOps para a equipe de Infraestrutura

• Infraestrutura deve participar das reuniões de desenvolvimento

• A infraestrutura também precisa observar quais são as metas da empresa a longo prazo, principalmente aquelas ligadas ao desenvolvedor

• Ao entender onde o setor de desenvolvimento quer chegar, ela pode se programar melhor para ter certeza que a infraestrutura tecnológica estará preparada para atendê-los quando necessário

23

Page 24: Startups e DevOps

DevOps para a equipe de desenvolvimento

• Desenvolvimento deve participar das reuniões de infraestrutura• A infraestrutura precisa envolver o desenvolvimento em suas reuniões, deve

haver sempre um representante acompanhando as reuniões técnicas para que o desenvolvedor entenda e tenha ciência da realidade de infraestrutura

• Dessa maneira, é possível enxergar suas qualidades, atribuições, planos de melhorias, atualizações programadas e agendas de manutenção, além de conhecer os recursos disponíveis e as limitações da equipe

• Além disto, o desenvolvedor pode ser um grande aliado da infraestrutura na solução de problemas, afinal o conhecimento que o desenvolvedor traz pode ajudá-los a melhorar a forma com que administram seu ambiente, tornando o processo mais eficiente, principalmente na parte de automação

24

Page 25: Startups e DevOps

Vantagens para Infraestrutura

• Infraestrutura como código• equipe para de administrar e passa a desenvolver a infraestrutura

• Infraestrutura mais eficiente e rápida usando métodos ágeis

• Equipe de infraestrutura mais organizada

• Equipe de infraestrutura se comunica melhor

• Infraestrutura fazendo mais em menos tempo com menos gente

• Ambientes de gerência de configuração, orquestração e provisionamento implantados

• Implementações de infraestrutura (novos ambientes) mais rápidos e seguros => entrega rápida

• Ambiente padronizado e sob controle

• Feedback rápido em todas as atividades de infraestrutura

25

Page 26: Startups e DevOps

Vantagens para Desenvolvimento

• Desenvolvimento tem ambiente mais adequado para trabalhar (dev/teste/prod)

• Desenvolvimento passa a contar com ambiente de entrega e integração contínua

• Desenvolvimento passa a contar com testes automatizados

• Desenvolvimento de apps (novas versões) mais rápidos e seguros => entrega rápida

• Feedback rápido em todas as fases de desenvolvimento

26

Page 27: Startups e DevOps

Benefícios mútuos

• Acaba a divisão Infraestrutura vs Desenvolvimento

• Infraestrutura participa dos projetos e acompanha de perto tudo o que acontece

• Infraestrutura participando resulta em melhor planejamento do ambiente de produção

• A participação da infraestrutura resulta em monitoramento mais eficaz da aplicação

• Desenvolvimento começa a compreender melhor a infra e isso resulta em um produto melhor

• Equipes trabalhando em conjunto para aumentar o valor do negócio

27

Page 28: Startups e DevOps

Para a empresa

• Melhor comunicação entre desenvolvimento e infraestrutura• Diminuição de conflitos

• As soluções funcionam com maior estabilidade e desempenho

• Entregas mais rápidas

• Menor tempo de paradas

• Diminuição de incidentes

• Diminuição de custos

• Diminuição de riscos

• Aumento do valor do negócio

28

Page 29: Startups e DevOps

29

Page 30: Startups e DevOps

30

Page 31: Startups e DevOps

31

Ciclo de evolução de produtos em uma infra DevOps

Page 32: Startups e DevOps

32

1) Desenvolvedores

2) Repositório de código 3) Construção 4) Testes 5) Implantação - Nuvem

6) Monitorar e melhorar

Macro-etapas de operação DevOps

Page 33: Startups e DevOps

Existem muitas empresas que fornecem serviços DevOps?

Veja o cenário apenas no ecossistema de Israel

33

Page 34: Startups e DevOps

34

Page 35: Startups e DevOps

A minha startup já está com a cultura, veja as vantagens e o que utilizamos

35

Page 36: Startups e DevOps

Vantagens de DevOps para Startups

• Melhoria na frequência de implantações - Deployments• Menor tempo para ir ao mercado - Time to Market

• Baixa taxa de falhas - failures

• Tempo de espera menor - Lead time

• Tempo de recuperação menor - Faster recovery

36

Page 37: Startups e DevOps

Estudo de Caso – DevOps na Startup CONTRIB (Contrib.vc)

37

Page 38: Startups e DevOps

38

Page 39: Startups e DevOps

Ferramentas utilizadas na CONTRIB

• Gerenciamento da Cadeia de Suprimentos - Supply Chain Management (SCM)

• GitHub: para controle de versão de projetos que a Contrib tenha interesse em tornar públicos para que a comunidade em geral possa reutilizar e contribuir com melhorias

• Reutilizamos libs e pacotes open sources nos projetos da Contrib

• GITLAB: Para controle de versão de projetos privados e naqueles que a equipe precisa de mais facilidade na integração de código

• GIT: Utilizamos o Git como ferramenta para controle de versão de repositórios locais, e para integrar com repositórios remotos

39

Page 40: Startups e DevOps

Sistema de Automação de Compilação - Build

• GRADLE• Utilizamos o Gradle para automatizar a compilação dos projetos

• É útil pois alguns processos de compilação demoram de 2 a 10 minutos, e a ferramenta ajuda a compilar apenas o necessário

• Também é útil na importação e gerenciamento de dependências

• MAVEN• A Contrib utiliza o maven em projetos JSF para automatizar a

compilação e gerir as dependências.

40

Page 41: Startups e DevOps

Testes - tests

• SELENIUM• A Contrib está implantando a prática de testes de software antes

do lançamento de releases• O que é uma prática pouco frequente aqui em Teresina

• E a ferramenta Selenium tem nos ajudado pois reduz o envolvimento humano em tarefas manuais e repetitivas a cada lançamento de versão de software

• JUNIT• A Contrib também utiliza JUNIT para testes unitários, e assim

verificar se as alterações realizadas não vão quebrar regras de negócios

41

Page 42: Startups e DevOps

Máquinas Virtuais Automatizadas

• VAGRANT• A Contrib planeja implantar o uso da ferramenta Vagrant

para criarmos rapidamente ambientes virtuais para fazermos testes, desenvolvimento ou provisionamento de versões de softwares minimamente funcionais e assim poupar tempo em configuração de ambientes.

42

Page 43: Startups e DevOps

Nuvem - Cloud

• HEROKU• A Contrib adotou o Heroku para distribuir todas as

aplicações• Ela foi uma das primeiras plataformas de nuvem, já está

em desenvolvimento desde junho de 2007, e hoje já aceita aplicações criadas em Java, Ruby, Node.js, Scala, Python e PHP

• E não só pela diversidade, mas pela facilidade em implantar e escalar

43

Page 44: Startups e DevOps

Colaboração

•TRELLO•A ferramenta TRELLO é mais uma ferramenta que nos auxilia quando trabalhamos em equipe

•Por ser baseada no “kanban” nos proporciona a organização, manejo de prazos e tarefas que precisamos

44

Page 45: Startups e DevOps

Será que iremos parar no DevOps? O que virá pela frente?

45

Page 46: Startups e DevOps

46

Page 47: Startups e DevOps

“NoOps é uma evolução lógica de DevOps com a filosofia: Humanos

devem resolver novos problemas e as máquinas resolver problemas

conhecidos!”

47

Botmetric CEO Vijay Rayapati

Page 48: Startups e DevOps

Principais tendências: DevOps -> NoOps

• Programação sem servidor - Serverless Programming• Este paradigma de programação e implantação eliminará

significativamente o requisito do DevOps para o gerenciamento de provisionamento e configuração

• O mundo da nuvem só verá uma trajetória de crescimento para o movimento NoOps, já que todos os fornecedores de nuvem amadurecem suas ofertas sem servidor

• Contêinerização – Containerization• Os contêineres, como o Docker, irão resumir ainda mais as

dependências e o compartilhamento de recursos entre diferentes componentes, alavancando soluções de gerenciamento de cluster e orquestração como Kubernetes, Mesos, ECS, Nomad, etc., para fornecer uma visão comum da infra-estrutura subjacente

48

Page 49: Startups e DevOps

Principais tendências: DevOps -> NoOps

• Arquitectura de Microserviços• ajudará os engenheiros e as empresas a desacoplar

a complexidade dos sistemas monolíticos em componentes pequenos e gerenciáveis que lidam com responsabilidade específica

• Como a conteinerização se torna uma maneira padrão de implantar componentes na nuvem, ele verá uma adoção rápida

49

Page 50: Startups e DevOps

Principais tendências: DevOps -> NoOps

• Operações inteligentes e unificadas• Ferramentas estáticas com (ou sem inteligência)

estão crescendo lentamente para os engenheiros

• Para este fim, houve um aumento no uso da inteligência de máquina e uma maior adoção de técnicas de aprendizado

• Consequentemente, a indústria verá mais adoção de ferramentas que dinamicamente podem ajudá-las nas operações do dia-a-dia

50

Page 51: Startups e DevOps

Principais tendências: DevOps -> NoOps

•Auto-cura e remediação automática• O mundo DevOps estava limitado a construir,

implementar e provisionar enquanto as operações do dia-a-dia são tratadas de forma manual ou semi-automatizada

• No NoOps as máquinas podem resolver problemas conhecidos e repetitivos e os engenheiros podem resolver novos problemas

51

Page 52: Startups e DevOps

Bom, preciso correr e melhorar a cultura DevOps da minha empresa. Irei mapear as ferramentas, criar o pipeline, executar o sequenciamento de MVPs, ... São muitos ingredientes para essa “formula”

52

Page 53: Startups e DevOps

Preciso de uma verdadeira “tabela periódica” de ferramentas para montar/implantar o DevOps na minha empresa. Ainda bem que ...

53

Page 54: Startups e DevOps

https://xebialabs.com/periodic-table-of-devops-tools/

Page 55: Startups e DevOps

55

Vamos trabalhar!

José Bringel [email protected]