SlideShare uma empresa Scribd logo
DevOps: desenvolvedores e
sysadmins cooperando na
prática
Ari Stopassola Junior
Bacharel em Informática com ênfase em Análise de
Sistemas pela Unisinos, cursou mestrado em Engenharia
Informática e de Computadores pelo Instituto Superior
Técnico da Universidade Técnica de Lisboa (Portugal),
perito judicial ad hoc especializado em TI (mantenedor do
site PERITO.inf.br), Zend Certified Engineer (PHP 5.3), Zend
Certified PHP Engineer (PHP 5.5) e Zend Framework 2
Certified Architect (ZFCA) #ZEND004019, Certified
ScrumMaster pela Scrum Alliance #203613, Microsoft
Certified Professional (MCP), idealizador do projeto
Certificamp, consultor web e PHP evangelist.
Ari Stopassola Junior
SlideShare
DevOps: desenvolvedores e sysadmins cooperando na prática
Realidade
• Estruturada x Orientada à Objetos
• Relacional x NoSQL
• Waterfall x Agile
• FTP x git push
• Equipes remotas
• Virtualização
• Curriculum Vitae x GitHub | Stack
Overflow
• Cloud
"A harmonia do mundo depende da
retificação dos nomes."
Confúcio
551-479 a.C.
Introdução
• Termo "DevOps" foi cunhado em
2009 por Patrick Debois
• Movimento que enfatiza a comunicação
entre desenvolvedores e administradores
de sistema
• Desenvolvedores adicionam novos
recursos enquanto que Administradores
mantém o sistema estável, seguro e
performático
• Diminiur riscos de implantação através da
cultura + ferramental
Foto:https://www.linkedin.com/in/patrickdebois
Desenvolvedor
X
Administrador de Sistemas
http://www.hbo.com/silicon-valley
"Na
minha
máquina
funciona!"
em.pa.ti.a
Ação de se colocar no
lugar de outra pessoa,
buscando agir ou pensar
da forma como ela
pensaria ou agiria nas
mesmas circunstâncias.
Cultura
• Interesses da companhia são
superiores aos EGOs de
sysadmins e desenvolvedores
• DevOps são práticas
• Através da automação, tem-se
como resultado a melhoria
contínua
• Postura amistosa: respeito,
jamais esconda o problema,
evite dizer não, confiança, seja
transparente, evite
fingerpointing.
Foto: http://cshr.cmb.ac.lk/?page_id=1678
Fonte: http://www.gohorseprocess.com.br
Full-stack developer
Fonte: https://flic.kr/p/4RyRRW
Imagem inspirada no curso "DevOps: The Big Picture" da PluralSight por Richard Seroter:
http://www.pluralsight.com/courses/devops-big-picture
Collaboration
Slack
https://slack.com
Gitter
www.gitter.im
Planning
Trello
www.trello.com
Issue tracking
Bugzilla
https://www.bugzilla.org
Jira
https://www.atlassian.com/software/jira
Monitoring
ISO 8601
New Relic
http://newrelic.com
• LogStash
https://www.elastic.co/products/logstash
• Microsoft System Center
http://www.microsoft.com/en-us/server-
cloud/products/system-center-2012-r2/
• Kibana
https://www.elastic.co/products/kibana
Configuration Management
Pet
x
Cattle
Foto: https://steakbuenosaires.files.wordpress.com/2014/02/herding-sheep.jpg
Pet
10.0.0.11 "Poseidon"
poseidon.empresa.com.br
Compaq Proliant ML330
Foto:https://flic.kr/p/bF4xXY
Cattle
ec2-54-91-213-25.compute-1.amazonaws.com
ec2-54-91-213-26.compute-1.amazonaws.com
ec2-54-91-213-27.compute-1.amazonaws.com
ec2-54-91-213-28.compute-1.amazonaws.com
ec2-54-91-213-29.compute-1.amazonaws.com
Foto:https://prezi.com/nftldtcqniju/recursos-biologicos/
Infrastructure as code
Puppet, Chef e Ansible
package "ntpd" do
action :install
end
template "/etc/ntpd.conf" do
source "ntpd.conf.erb"
owner "0755"
notifies :restart, "service[ntpd]"
end
service "ntpd" do
action [:start, :enable]
end
["site1", "site2", "site3"].each do |dir|
directory "/srv/vhosts/#{dir}" do
mode 0775
owner "root"
group "root"
action :create
recursive true
end
end
Provisionamento
• SaltStack
www.saltstack.com
• Phansible (focado em PHP)
www.phansible.com
• PuPHPet
https://puphpet.com
• Windows PowerShell Desired State
Configuration
https://technet.microsoft.com/en-
us/library/dn249912.aspx
Controle de versão
GNU/Linux Distro Timeline
http://futurist.se/gldt/
Controle de versão
• Concurrent Version System –
CVS
• Subversion
• BitKeeper (características
híbridas)
• Microsoft Visual SourceSafe
• Git
• Mercurial
Modelo descentralizado
Repositório central
Hospedado
• GitHub
• BitBucket
• Atlassian
Stash
Servidor próprio
• Gitosis
• Gitorious
• GitLab
• GitBlit
Hooks
Fonte: https://enterprise.github.com/features
P.J. Hyett Tom Preston-Werner Chris Wanstrath
Environment
Vagrant
www.vagrantup.com
Docker
www.docker.com
Foto: https://flic.kr/p/9Wwj79
Foto:https://flic.kr/p/qSBYah
Orquestração
Continuous Integration
By Martin Fowler
"Continuous Integration is a software
development practice where members of a
team integrate their work frequently, usually
each person integrates at least daily -
leading to multiple integrations per day.
Each integration is verified by an
automated build (including test) to detect
integration errors as quickly as possible.
Many teams find that this approach leads
to significantly reduced integration
Foto: https://www.flickr.com/photos/adewale_oshineye/2933030620/
Travis CI
www.travis-ci.org
.travis.yml
Jenkins
www.jenkins-ci.org
Fonte:https://ci.openshift.redhat.com/jenkins/
java -jar jenkins.war
Quem precisa de SaaS?
IaaS
PaaS
SaaS
OpenShift, Heroku, Google App Engine (Google Cloud), AppFog, Pagoda Box,
Fortrabbit, Laravel Forge
Digital Ocean, AWS, Linode, Azure, Rackspace, Open Stack
QA: quality assurance
http://phpqatools.org
Code Climate
https://codeclimate.com
Deployment
O que seria um build no PHP?
• Submeter aos testes (unitário, comportamento e
integração)
• Executar as migrations
• Concatenar e minificar arquivos JavaScript e CSS
• Comprimir imagens
• Compilar Sass e LESS
• Atribuir permissões em arquivos/pastas
• Produzir arquivos estáticos, como HTMLs
• Agendamentos na CRON
• php.ini local x php.ini do servidor x php.ini do CLI
• Transformar código de ECMA6 para ECMA5
Padronização de código: PSR
http://www.php-fig.org
Abordagem rudimentar…
DevOps: desenvolvedores e sysadmins cooperando na prática
Zero Downtime Deployment
(implantação atômica)
Fonte: https://leanpub.com/deploying-php-applications
Migrations: Phinx
https://phinx.org
Quem nunca…
Foto:https://flic.kr/p/6mNHcj
Simples, previsível e
//Carrega o Gulp e seus plug-ins
var gulp = require('gulp');
var jshint = require('gulp-jshint');
var sass = require('gulp-sass');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
//Analisa o código
gulp.task('lint', function() {
return gulp.src('src/js/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
//Compila o Sass
gulp.task('sass', function() {
return gulp.src('scss/*.scss')
.pipe(sass())
.pipe(gulp.dest('css'));
});
//Concatena e minifica o JavaScript
gulp.task('scripts', function() {
return gulp.src('src/js/*.js')
.pipe(concat('src/js/all.js'))
.pipe(gulp.dest('dist'))
.pipe(rename('src/js/all.min.js'))
.pipe(uglify())
.pipe(gulp.dest('dist'));
});
// Default Task
gulp.task('default', ['lint', 'sass', 'scripts']);
Grunt e Gulp
Lock-in
• Banco de dados específico daquela
hospedagem
• Mecanismo de filas exclusivo
• Replica em diferentes data-centers
(worldwide) e troca automática de DNS
• S3 criptografado, gera token para acesso
ao documento que usa UMA vez e expira
Foto: https://flic.kr/p/bAUx5j
• DevOps é habilidade
• Trata-se de gestão de
configuração
• Outsourced é
impraticável
• Focado em sistemas
modernos
• DevOps é ideologia
• Trata-se de
comunicação
• Outsourced é
totalmente viável
• Para qualquer tipo de
sistema
Fonte:http://theimitationgamemovie.com
Setup
DevOps: desenvolvedores e sysadmins cooperando na prática
DevOps: desenvolvedores e sysadmins cooperando na prática
E-mail:
arijunior@gmail.com
Twitter: @stopassola
Skype: stopassola
LinkedIn:
http://pt.linkedin.com/in/stopassola
Facebook:
http://www.facebook.com/arijunior
Sites:
http://www.perito.inf.br
http://www.certificamp.com
http://www.rumoacertificacaophp.com
Contatos
Obrigado!
[ tem brinde ]

Mais conteúdo relacionado

PPTX
Como começar com Amazon EKS
PPTX
Automatize seu processo de entrega de software com CI/CD na AWS
PDF
ArcServe in the AWS Cloud - part II
PDF
Apresentação na PHP Conference Brasil 2012
PDF
Introdução ao docker
PPT
PDF
JavaME - Aula 1
PDF
Jboss eap 6
Como começar com Amazon EKS
Automatize seu processo de entrega de software com CI/CD na AWS
ArcServe in the AWS Cloud - part II
Apresentação na PHP Conference Brasil 2012
Introdução ao docker
JavaME - Aula 1
Jboss eap 6

Mais procurados (20)

PDF
PDF
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
PDF
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
PDF
Treinamento Android Nooclix
PDF
Webinar: Introdução à Distribuição Contínua na AWS
PDF
Webinar: Como obter valor comercial com Big Data
PPTX
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
PPTX
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
PPTX
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
PDF
Segurança de ponta a ponta na AWS
PDF
Webinar: Serviço de Distribuição de Conteúdo da AWS
PPTX
Construindo APIs com Amazon API Gateway e AWS Lambda
PPTX
AWS Webinar Series Brasil: Modernize seus Workloads Windows na AWS
PPTX
O que uma enterprise deveria fazer nos primeiros 90 dias
PPTX
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
PPTX
Construindo APIs com Amazon API Gateway e AWS Lambda
PPTX
3. apresentacao rp tec com 2018 gustavo bernardes
PPTX
Bibliotecas de interface rica no jsf 2
PDF
Aumentando a produtividade e Automatizando Processos com Jira
PDF
Falando sobre DevOps no azure
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
Treinamento Android Nooclix
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Como obter valor comercial com Big Data
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
Segurança de ponta a ponta na AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS
Construindo APIs com Amazon API Gateway e AWS Lambda
AWS Webinar Series Brasil: Modernize seus Workloads Windows na AWS
O que uma enterprise deveria fazer nos primeiros 90 dias
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
Construindo APIs com Amazon API Gateway e AWS Lambda
3. apresentacao rp tec com 2018 gustavo bernardes
Bibliotecas de interface rica no jsf 2
Aumentando a produtividade e Automatizando Processos com Jira
Falando sobre DevOps no azure
Anúncio

Semelhante a DevOps: desenvolvedores e sysadmins cooperando na prática (20)

PPTX
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
KEY
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
PPTX
PDF
Construindo aplicações Cloud Native em Go
PDF
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
PDF
Slide Aula - Curso CakePHP
PPTX
[DevOps Summit Brasil] Procura-se: DevOps!
PPTX
IoTizando com JavaScript
PDF
Keynote nuvem estaleiro_ics
PPTX
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
PPTX
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
PDF
Container revolucao
PDF
Semana Acadêmica ICET - Feevale - 12/04/2014
PDF
Primeiros passos com o framework Sencha Ext JS
PDF
Site estático + Hospedagem Gratuita.pdf
PDF
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
PDF
TDC2016SP - Trilha DevOps Java
ODP
Ruby on Rails 100% na cloud com heroku e outros serviços
ODP
Construindo Aplicações PHP com Twelve-Factor App
PPTX
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
Construindo aplicações Cloud Native em Go
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Slide Aula - Curso CakePHP
[DevOps Summit Brasil] Procura-se: DevOps!
IoTizando com JavaScript
Keynote nuvem estaleiro_ics
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Container revolucao
Semana Acadêmica ICET - Feevale - 12/04/2014
Primeiros passos com o framework Sencha Ext JS
Site estático + Hospedagem Gratuita.pdf
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
TDC2016SP - Trilha DevOps Java
Ruby on Rails 100% na cloud com heroku e outros serviços
Construindo Aplicações PHP com Twelve-Factor App
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Anúncio

Mais de Ari Stopassola Junior (11)

PPTX
Doctrine for dummies
PDF
PHP Community Spirit
PPTX
Doctrine for Dummies
PPTX
MongoDB + PHP
PPTX
Rumo à Certificação PHP
PPTX
Desenvolvimento de aplicações PHP com MongoDB
PPTX
Ti na Stopassola Advocacia
PPTX
Workshop Magento
PPTX
Typo3 - instalação e template
PPTX
Missao Portugal
PPT
Treinamento PHP: Strings & Patterns
Doctrine for dummies
PHP Community Spirit
Doctrine for Dummies
MongoDB + PHP
Rumo à Certificação PHP
Desenvolvimento de aplicações PHP com MongoDB
Ti na Stopassola Advocacia
Workshop Magento
Typo3 - instalação e template
Missao Portugal
Treinamento PHP: Strings & Patterns

Último (20)

PDF
Processos na gestão de transportes, TM100 Col18
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Aula sobre banco de dados com firebase db
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Aula sobre desenvolvimento de aplicativos
Processos na gestão de transportes, TM100 Col18
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Curso de Java 9 - (Threads) Multitarefas.pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Aula 18 - Manipulacao De Arquivos python
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Custos e liquidação no SAP Transportation Management, TM130 Col18
Émile Durkheim slide elaborado muito bom
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Apple Pippin Uma breve introdução. - David Glotz
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Aula sobre banco de dados com firebase db
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
COBITxITIL-Entenda as diferença em uso governança TI
Aula sobre desenvolvimento de aplicativos

DevOps: desenvolvedores e sysadmins cooperando na prática

Notas do Editor

  • #2: Administradores leia-se: administradores de sistema, administradores de rede, sysadmin, infraestrutura, segurança e outros.
  • #6: Workers (mecanismo de filas como ActiveMQ), Querys SQL x MapReduce. Recomenda-se autenticar via par de chaves, ao invés de login/senha. Karma Level. Arquitetura de cloud: IaaS x Paas - Exexmplos de IaaS: Digital Ocean, AWS, Linode, Azure, Rackspace e Open Stack - Exemplos de PaaS: OpenShift, Heroku, Google App Engine (Google Cloud), AppFog, Pagoda Box, Fortrabbit, Laravel Forge
  • #10: Estereótipos: Cena do seriado Silicon Valley da HBO numa das eternas brigas do Dinesh (desenvolvedor) e Gilfoyle (administrador de sistemas).
  • #11: Não é minha máquina, é o seu código! Não é meu código, é o seu servidor.
  • #12: Palestra "Empathy Gives You Superpowers" por Matt Stauffer [ Laracon EU 2015 ] https://www.youtube.com/watch?v=fMFjO2szDnk
  • #13: Dê acesso aos desenvolvedores. Atualmente estão surgindo cargos de DevOps, que antes não existia. Perde-se o medo de errar.
  • #16: Qual administrador daqui já abriu código para averiguar o que estava acontecento? Certamente poucos… Há tempos existe demanda para desenvolvedores full stack, então muitos já estão familiarizados com SO, plataforma, banco, servidor de aplicação e linguagem (pilha completa). Voltando a serem mais generalistas com equipes multifuncionais. LAMP stack está dando lugar ao NGINX, MongoDB e outras versões de PHP (HHVM e Hack).
  • #20: Geralmente criam-se canais # onde cada canal é um projeto. Cada commit pode aparecer na interface do Slack e com um clique é possível enxergar as mudanças, ver se (por acaso) alguém mexeu no mesmo código que você está trabalhando etc. O Laravel integra de forma nativa os warnings e todo o tipo de erro gerado. A RedHat usa IRC.
  • #21: Totalmente integrado ao GitHub. Gitter tem um setup mais fácil.
  • #23: Compartilhar a visão
  • #24: Visibilidade, transparência, o que está acontecendo agora, quem está trabalhando e onde, compartilhar código, rastrear tarefas, gerenciar o backlog (Scrum). O MSProject perdeu mercado em função da sua complexidade e pela falta de integração com os repositórios. Cada pessoa tem um perfil: alguns preferem papel e artefatos "físicos". https://trello.com/atomicopenshift No Trello é possível "votar" para aprovar ou mensurar alguma demanda.
  • #25: Da 37signals (dos autores do Ruby On Rails), que agora tornaram-se Basecamp. O ambiente de HomeOffce foi muito beneficiado com esse tipo de software, pois é possível ter um acompanhamento global remotamente.
  • #27: Resposta rápida, triagem de solicitações, prioridades. Mais pertinente no contexto onde há necessidade de feedback ao cliente, onde ele possa acompanhar o desenvolvimento das demandas. BugZilla, Trac, Mantis e o próprio issues do GitHub.
  • #28: https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=MODIFIED&bug_status=ON_DEV&classification=Red%20Hat&list_id=3982480&order=bug_severity%2Cpriority%2Cassigned_to%20DESC%2Cbug_id%20DESC&product=OpenShift%20Origin&query_format=advanced&short_desc=\[fork\]&short_desc_type=notregexp&version=3.x É possível parametrizar de modo que o ticket só seja fechado pelo time de QA. Permite também upload privado, em caso de dados sigilosos que necessitem serem enviados para o desenvolvedor.
  • #29: One time now (da Axosoft), porém mais focado em Scrum. Ele não permitia dois responsável por uma tarefa (princípio fundamental do Pair programming – XP). Target Process, Mantis, Bugzilla
  • #31: Alarmes, verificação periódica da saúde das máquinas, tempo de resposta, obtém as exceções – quando o aplicativo já está online.
  • #32: https://pt.wikipedia.org/wiki/ISO_8601
  • #33: Coletar, extrair, parsing, explorar logs Analisa UM log é fácil. Analisar milhares é muito complicado. ISO 8601.
  • #34: Nagios também tem esse propósito, embora seja mais "old school". GitHub Status também é um indício interessante, embora menos preciso e com um certo delay. ZendServer tem uma solução muito robusta para trabalhar com PHP. New relic, além de monitoramento, é considerado uma ferramenta bastante poderosa como Analytics.
  • #35: Manter o estado consistente
  • #36: Animal de estimação x rebanho
  • #39: Preparar um servidor pode levar dois dias de trabalho, ou mais. E se forem 200 servidores? Chef salva tempo e a sanidade mental. Preparar a Stack para servir a aplicação. Chef e Puppet são os precursores. Quando a aplicação cresce demais, é necessário apelar para Chef e Puppet. Puppet, Chef, PuPHPet e Ansible/Phansible Possuem mecanismos de failover, lidam com problemas que possam ocorrer na instalação DECLARATIVA
  • #40: Provisionamento é uma arte. SaltStack tem programa de certificação Puppet promove conferências em todo o mundo (também tem certificação). Powershell DSC permite mexer no registro do Windows e muitas outras tarefas. Salt e Ansible são mais focados nos desenvolvedores. Salt utiliza YAML, enquanto que Ansible usa SSH (não requer instalação de recursos na máquina client) Phansible é uma solução mais voltada para o desenvolvimento (não em produção). Homestead do Laravel.
  • #41: Rastrear mudanças
  • #43: Era pré-Git os administradores eram os "inimigos".
  • #44: Gitosis e Gitorious pode-se baixar e instalar num servidor local. Através de um servidor, é possível ter maior controle sobre os dados. Existe também o Garrit e outros...
  • #45: Hook é no sentido de interceptar. Existem hooks no lado do cliente e outros no servidor. touch .git/hooks/pre-commit chmod +x .git/hooks/pre-commit É agnóstico do ponto de vista de linguagem.
  • #46: Mashup
  • #47: Tudo isso foi possível com o advento do GitHub (SaaS), lembrando que Git é apenas o versionamento – enquanto que o GitHub é a plataforma social de código. Cada pull request dispara Hooks (ganchos) para outros aplicativos, fazendo com que o processo seja automático. Através de Single SignOn (OAuth2) é possível se habilitar em qualquer outro serviço
  • #48: Replicar toda a stack do servidor de aplicação
  • #49: Espelhamento de ambientes. Qual a imagem usar, que script Chef executar, habilitar rede, pastas compartilhadas. Com uma linha é possível testar em diferentes versões de sistema operacional e combinações de configuração. Usa Hyper-V (Microsoft), VirtualBox (Oracle), KVM, VMWare etc. Orientado a ambientes de desenvolvimento, pois utilizam uma camada de vitualização – prejudicando a performance. Criar um ambiente que possa ser reproduzido, quando se precisa de algo que fuja do LAMP, compatibilidade cross-platform, time trabalhando em diferentes SO. Provisionamento: setup automatizado, quanto tempo para subir uma máquina, maximizar dev/prod parity, isolamento de ambientes,
  • #50: Docker não usa virtualização. Ele sobe uma instância do kernel, monta um filesystem criptografado, isola num processo – formando um "container", que pode ser facilmente portado em uma cloud como OpenShift, AWS, DigitalOcean etc. Muito mais performático que o Vagrant. A montagem da configuração da máquina de produção é feita uma única vez e depois é distribuída entre os desenvolvedores. Usa a técnica de kernel namespaces. Em https://hub.docker.com é possível baixar uma imagem Docker (definição) e executando-a transforma-se em "container". Vantagens são segurança, velocidade e granularidade. Ex.: docker pull nome | docker run nome O Docker ganhou destaque (com relação ao LXC), pois utiliza os "Docker file". Lembre-se que ele não guarda estados, portanto é necessário montar um volume externo para persistir algum dado.
  • #51: Kubernetes, Mesos e Docker Swarm
  • #52: Social development onde você pode praticar Pair programming com outro desenvolvedor remoto. Enxerga as mudanças no código em tempo real.
  • #53: Integração Contínua é teste! Jenkins, Travis, GitLab CI, Bamboo, Liquibase, TeamCity e Code Climate.
  • #55: Antecipar gargalos e problemas ANTES de colocar em produção. Progresso incremental. É possível realizar o commit e evitar o disparo do CI. Ex.: git commit –m "mensagem [CI SKIP]" http://docs.travis-ci.com/user/languages/php/
  • #57: E o SaaS (Software as a Service)?
  • #59: Garantia de qualidade
  • #60: Inspeção
  • #61: Ele confronta o código com uma série de ferramentas de QA: http://phpqatools.org Sumariza a saida das principais ferramentas de qualidade. Roda uma série de análises. Métricas. Faz revisão do código, atribui badges (selos) onde a nota 4 é a máxima,
  • #62: Automatização de forma simples, previsível e reversível. Compacta, transfere, descompacta, executa as migrations etc. É mais fácil realizar um Hot Deploy (atômico) em PHP, comparado ao Java – pois os binários do Java estão em memória, enquanto que os bytecodes PHP são gerados em tempo de execução. Booking fazem várias entregas DIÁRIAS (releases). GlassFish e Jboss possuem mecanismos de hotdeploy incorporados no servidor de aplicação. Na nuvem, é possível fazer a implantação horizontal: sobe um servidor com a versão nova do software e desce um com a versão antiga, e vai fazendo o shift gradativamente. Capistrano, Deployer, Magallanes, Rocketeer, Juju, Envoyer e Phing (manual)
  • #63: Habilitar SSL (Certificação digital) nos servidores, gerar documentação, Stress test: Apache Bench e Seige ECMAScript 5 é mais compatível.
  • #64: Proposed Standards Recommendation
  • #65: Phing é baseado no Apache Ant.
  • #67: Workflow bastante utilizado
  • #70: Integração contínua x Entrega contínua
  • #71: Siga esse mantra Simples: procure concentrar o processo de implantação e dispará-lo em apenas UM comando. Previsível : saber o que está acontecendo. Se houver efeitos colaterais, mantenha a versão corrente. Reversível: UM comando e o sistema volta ao que era.
  • #72: Implementados em Node.js Usa o gerenciador de pacotes NPM. Grunt e Gulp são mais focados em FrontEnd. Extraído de: https://travismaynard.com/writing/getting-started-with-gulp 1) Instale o Node.js https://nodejs.org 2) Crie um diretório, entre nele e execute: npm init [ preencha as perguntas que ele for perguntando ] 3) sudo npm install --global gulp [ para habilitar o utilitário gulp por linha de comando ] 4) npm install --save-dev gulp 5) instale os complementos npm install gulp-jshint gulp-sass gulp-concat gulp-uglify gulp-rename --save-dev 5) Crie o arquivo gulpfile.js e coloque: var gulp = require('gulp'); gulp.task('default', function() { // place code for your default task here }); 6) Execute: gulp
  • #73: CloudFormation usa o conceito de template (em JSON) onde é possível especificar os requisitos desejados (ou até mesmo usar um templete pré-pronto), então ele será criado na cloud. Definir número de instâncias etc. Capistrano, Deployer, Magallanes, Rocketeer e Juju. Envoyer vende a possibilidade de "Zero Downtime", caso contrário execute php artisan down (para suspender o serviço temporariamente).
  • #76: Por força bruta é possível quebrar uma senha.
  • #77: Ou "vendor lock-in" geralmente afeta o sysadmin (infraestrutura) Google Cloud restringe demais a migração para outra plataforma.
  • #78: Testes de aceitação (Codeception) são mais proveitosos para times pequenos. Emulam a navegação no site/sistema, experimentando o funcionamento como um todo.
  • #84: entregar adesivos!
  • #85: Brinde