Entre Infraestrutura e Desenvolvimento existe uma camada onde se encontra a nova profissão que será (se ja não é) a mais requisitada no mercado. Mas o que é faz esse profissional? Quem precisa dele? Por que é tão importante hoje? Por que é tão difícil encontrar profissionais? Vamos entender nesta palestra do que se trata essa nova cultura na TI e por que vale a pena investir nela.
2. $ whoami
- Bacharel em Sistema de Informações
- Certificada ITIL®
- Tester de Software
- Programadora
- Administradora de Sistemas
- Entusiasta de Automação, Virtualização e Integração Contínua
- 5 anos de Experiência com Projetos Financeiros na 7COMm
- Colaboradora na Organização do Hackerspace MariaLab
- Ativista de Privacidade na Web
- Viciada em Café e Assassin’s Creed
3. O que dizem que é DevOps:
Administrador de sistemas(SysAdmin) que também é
Programador
Programador que também é SysAdmin
Um conjunto de Ferramentas para Integração
Contínua
O mesmo que Integração Contínua
O profissional responsável por todo o ciclo de vida da
programação (socorro!)
4. Vamos contratar um
DevOps!
Vamos comprar esse
Produto/Conjunto de
ferramentas DevOps
Vamos adotar esta Metodologia
Devops
Vamos chamar um consultor
DevOps
Vamos criar uma equipe de
DevOps
Vamos por um DevOps em cada
área
5. O que realmente é
DevOps
DevOps (anagrama de Desenvolvedor e
Operações) é uma metodologia de
desenvolvimento de software que explora
a comunicação, colaboração e integração
entre desenvolvedores de software e
profissionais de TI (Tecnologia da
Informação).
DevOps é a relação de interdependência
entre desenvolvimento de software e
operações de TI. Pretende ajudar as
organizações a produzir software e
serviços rapidamente e de forma
contínua.
6. O que realmente é DevOps
Profissional
O especialista em DevOps de hoje é, geralmente, alguém que conhece muito
de infra e tem uma base sólida de Desenvolvimento. Geralmente um
profissional que inicia em Infra e vai se especializando, entendendo a
necessidade do pessoal de Desenvolvimento, como a Operação pode
melhorar os processos e trabalhar com Cloud Computing.
Também pode ser alguém que veio de Desenvolvimento e que tem uma
base sólida de Infraestrutura.
8. Problemas que DevOps não resolve
- Processos Burocráticos
- Infraestrutura Engessada
- Testes X Entrega
- Ideias X Realidade
- Entrega Rápida X Aplicações Estáveis
- “Minha maquina funciona” X “La vem
mais um Rollback”
- “Se esta funcionando melhor não por a
mão”
- “Não é problema meu”
9.
10. Solução: Cultura DevOps
Adoção de Processos do ITIL
Adoção de Processos não-burocráticos
Gestão de Incidentes e Problemas
Testes Automatizados e abrangentes
Entrega Contínua
Integração Contínua
Derrubem as paredes!
11.
12. Desenvolvimento Ágil
TDD
Metodologias Ágeis
Reuniões com participação de 1 membro de cada área
Apoio da equipe de Operações <3
Equipe de Qualidade gerando Qualidade
Deploys (com testes) em um botão
Ferramentas disponíveis para as principais necessidades (criar, testar,
implantar e executar)
Gestão de Riscos
Gestão de Mudanças
13. Desenvolvimento Agíl
Testes Automatizados a cada Deploy (Selenium, JUnit, Sonar)
Controle de Dependências (Ivy, Maven)
Repositório de Artefatos (Artifactory, Chocolatey, Nexus, Maven)
Versionamento de Código (Git, Subversion)
Automação de Deploy (Jenkins, Lab Management)
Automação de Tarefas (Ant, Gradle, Maven, Shell Script, Power Shell,
Python)
Ambientes Segregados (Desenvolvimento, Testes, Homologação,
Produção)
Ambiente Confiável(Vagrant, Docker, Salt, Visual Studio TS)
Código Confiável (chega de “Na minha maquina funciona”)
15. Infraestrutura Ágil
Versionamento de Scripts e Configurações
Automação de Deploys
Provisionamento
Gerencia de Configuração
Gerenciamento de Mudança
Backups restauráveis
Infra resiliente, elástica e automatizada
16. Infraestrutura Agíl
Ambiente Virtualizado (vSphere, XEN, Proxmox, Hyper-V, etc)
Cloud (Amazon, Azure, Rackspace, Openstack, OpenShift, etc.)
Automação de Tarefas (Shell Script, Power Shell, Python)
Automação de Deploy (Jenkins, Team Foundation Build)
Infraestrutura como Código (Capistrano, Docker, Puppet, Powershell
DSC)
Provisionamento (Chef, Cloudbee, Salt, Vagrant)
Versionamento de Scripts e Configurações (Git, Subversion, etckeeper)
Monitoramento de Intrusão (Maltrail, OSSEC, Tripwire)
Monitoração de Rede e Aplicações (Zabbix, Nagios, Chef)
17.
18.
19. E o que fazem?? Abrem vaga para DevOps!
Criam uma equipe de DevOps (separada de
Desenvolvimento e Operações) ou profissionais “DevOps” na
equipe de Desenvolvimento ou Operações
Os colocam para Automatizar tudo;
Os transformam na própria Integração Contínua;
Os tornam responsáveis pelo Sistema, Scripts,
Documentação e Deploy;
E também pela Gestão de Riscos, Mudança e Incidente;
Acaba aproximado-os “demais” de produção (Combater
Incêndios > Alcançar Prazos)
20.
21. Vaga - SysAdmin
Atividades Desempenhadas:
- Responsável pelo direcionamento e gerenciamento técnico dos projetos de Infraestrutura;
- Definir os frameworks de desenvolvimento e apresentação de respostas aos questionamentos
formulados pelas equipes de negócio, desenvolvedores, fábricas de software e auditoria de sistema;
- Automatizar processos de tecnologia que atualmente são executados de forma manual;
- Planejar, implantar e monitorar soluções de arquitetura baseado em técnicas de análise e design
orientados a objetos, conjuntamente com modelagem de sistemas;
- Criar ambiente de gerenciamento do ciclo de vida e manutenção do portfólio de aplicações;
- Desenvolver ferramentas de automatização de ferramentas para ambientes de homologação e
produção;
- Desenvolver ferramentas de alta escalabilidade e disponibilidade para as plataformas.
22. Requisitos Desejáveis:
- Superior em Ciências da Computação, Analises de Sistemas.
Superior em Ciências da Computação, Analises de Sistemas.
- Experiência com ferramentas de gerencia de configurações puppet, chef, ansible, cfengine, salt;
- Domínio no Sistema Operacional Linux, Power Shell, Integrações de Redes e Serviços.
- Conhecimento em Sênior Linux Systems Administrator, Devops Engineer, Big Data Architect , DBA,
Cloud, SysAdmin, IT Manager
- Conhecimentos e vivencia com metodologias ágeis de implementação de projeto (SCRUM).
- Vivência em ambientes de desenvolvimento para E-Commerce, na implementação de Continuos
Integration e Continuos Deploy.
- Domínio em Cloud Computing e ferramentas de virtualização, como VMWare, KVM, Xen, e na criação
de ambientes de alta disponibilidade.
-Domínio nas principais tecnologias: Webserver Apache/NGINX, CDN, Cache-Proxy, Servidores de
Aplicação Weblogic, Tomcat e Jboss.
- Conhecimento multidisciplinar em linguagens e frameworks relacionados a tecnologias Java (J2EE,
Hibernate, EJB) para desenvolvimento web (HTML, JS, JQuery, XML, etc.)
- Experiência com automatização de processos usando Bash, Ruby, Python, Puppet e similares.
- Conhecimento em Linux, ferramentas de automação, Weblogic, Zabbix, NGINX.
- Conhecimento como DEVOPS
- Experiência com Ambiente Crítico.
23. Profissionais presentes nas vagas
Analista de Testes
Analista de Sistemas
Analista de Implantação
Arquiteto de Software
Administrador de Sistemas
DBA
Gerente de Tecnologia
Gerente de Projeto
Programador
27. Que profissionais você precisa
Desenvolvedores Multidisciplinares e SysAdmins Multidisciplinares e
especialistas
Testers de Software com experiência em Automação
Analistas e Gerentes experientes, que priorize o dialogo e não tenha
medo de mudanças
Administrativo comprometido com o bem estar dos colaboradores
28. Que investimentos são necessários
Infraestrutura
Treinamento de Pessoal para Metodologias Ágeis
Treinar equipes para as plataformas e ferramentas adotadas
Profissionais com certificação ITIL® em todas as áreas
Equipe de QA sendo QA
Monitoração para todos (que interessam)
Métricas
Já disse que tem que tirar as paredes?
29. Mudança de comportamento
Transparência, Respeito e Confiança
Postura Construtivista
Comunicação efetiva e dinâmica
Não crie inimigos imaginários (nem reais) - Saia da defensiva
Não - APENAS - aponte erros
Tornar as pessoas cientes e responsáveis por suas ações (Fim do Dev X
Ops)
Encorajar assumirem seus erros
Vestir a camisa do Projeto, não só do time
30. Ganhos para todos
Equipes organizadas e trabalhando juntas - Fim da Guerra!
Melhora no tempo de resolução de Incidentes e Problemas
Mais ações, menor tempo
Deploys rápidos e Seguros -> Agilidade na entrega
Soluções estáveis + Menos Incidentes + Menor Tempo de parada ->
Respeito ao SLA
Ambientes padronizados, adequado e sob-controle
Aumento do valor do negócio
Prazos cumpridos -> Novos Projetos
31. Dores e Lamentos
Não dá para acontecer de um dia pra outro
Algumas coisas vão funcionar de primeira (Outras não, try again)
Briga de egos podem ser inevitáveis, saiba lidar
Bugs, bugs everywhere
$$$ *sorry*
Notas do Editor
A função de DevOps é um pouco nova no mercado (pelo menos com este nome), é um profissional TI que fica como ponte entre a Operação e o Desenvolvimento. Geralmente um profissional que inicia em Infra e vai se especializando, entendendo a necessidade do pessoal de Desenvolvimento, como a Operação pode melhorar os processos, trabalha com Cloud Computing.
A função de DevOps é um pouco nova no mercado (pelo menos com este nome), é um profissional TI que fica como ponte entre a Operação e o Desenvolvimento. Geralmente um profissional que inicia em Infra e vai se especializando, entendendo a necessidade do pessoal de Desenvolvimento, como a Operação pode melhorar os processos, trabalha com Cloud Computing.