Escolar Documentos
Profissional Documentos
Cultura Documentos
CAMPUS CAMPOS-CENTRO
CURSO DE PS-GRADUAO LATO SENSU EM
ANLISE E GESTO DE SISTEMAS DE INFORMAO
CDD 658.4038
PATREZZE DE ALVARENGA SILVA
RAFAEL NASCIMENTO GOMES
Banca Avaliadora:
.......................................................................................................................................................
Prof. D.r Breno Fabrcio Terra Azevedo
Doutor em Informtica na Educao - UFRGS
Instituto Federal de Educao, Cincia e Tecnologia Fluminense Campus Campos-Centro
.......................................................................................................................................................
Profa. D.ra Simone Vasconcelos Silva
Doutora em Computao - UFF
Instituto Federal de Educao, Cincia e Tecnologia Fluminense Campus Campos-Centro
.......................................................................................................................................................
Prof. M.e Fernando Luiz de Carvalho e Silva (Orientador)
Mestre em Engenharia de Produo - UENF
Instituto Federal de Educao, Cincia e Tecnologia Fluminense Campus Campos-Centro
Dedico a meus familiares e minha esposa
Gislaine, os quais sempre me apoiaram em todas
as decises difceis. Compartilho com eles a
alegria dessa conquista.
Patrezze de Alvarenga Silva
A Deus, por ter nos dado sade e fora para superar as dificuldades. A esta instituio
de ensino, seu corpo docente e discente, que proveram os meios e a estrutura necessria para
alcanar o to sonhado ttulo. Ao nosso orientador, Fernando Carvalho, pelo apoio no pouco
tempo que lhe coube, pelas suas correes e incentivos. Aos nossos pais, pelo incentivo e
apoio incondicional, e a nossas companheiras, pelo amor e presena, nos confortando nas
dificuldades. E a todos que direta ou indiretamente fizeram parte da nossa jornada, nosso
muito obrigado.
s vezes, quando voc inova, comete erros.
melhor admiti-los rapidamente e continuar a
melhorar suas outras inovaes.
Steve Jobs
RESUMO
The objective of this work is demonstrate the effectiveness of using DevOps concepts
in accordance with the best practices described in the ITIL framework. Mainly in the IT
service continuity management, regarding the ability to restore considered high risk to
business services. For this reason, a case study was designed to evaluate the automation of a
system provisioning process in a public institution, compared to the support model runs
through manual procedures. The work stands out in bringing a simple solution to reduce the
problems of IT services continuity. Also, ensure the efficiency and flexibility of the IT
infrastructure to attend large demands and manage complex scenarios.
TI Tecnologia da Informao
SUMRIO
1 INTRODUO ................................................................................................................... 11
1.1 Objetivo ........................................................................................................................... 11
1.2 Justificativa ..................................................................................................................... 12
1.3 Metodologia .................................................................................................................... 12
1.4 Estrutura do Trabalho ...................................................................................................... 12
2 REFERENCIAL TERICO ................................................................................................ 14
2.1 Governaa de TI .............................................................................................................. 14
2.2 Framework ITIL.............................................................................................................. 15
2.2.1 Gerenciamento de continuidade de servios de TI ......................................................... 17
2.2.2 Gerenciamento de Configuraes e Ativos de Servio ................................................... 18
2.3 DevOps ............................................................................................................................ 19
2.3.1 Automatizao de Processos de Infraestrutura de TI ...................................................... 20
3 ESTUDO DE CASO ............................................................................................................ 23
3.1 Ambiente do estudo de caso ............................................................................................ 23
3.2 Sobre o problema ............................................................................................................ 24
3.3 Procedimentos ................................................................................................................. 25
3.4 Soluo Implementada .................................................................................................... 26
3.5 Resultados ....................................................................................................................... 27
4 CONCLUSO ..................................................................................................................... 30
REFERNCIAS ....................................................................................................................... 31
APNDICE A Cdigo fonte de implementao do Puppet .................................................. 34
11
1 INTRODUO
1.1 Objetivo
1.2 Justificativa
A relevncia deste trabalho que a rea de TI possui o desafio de manter as suas aes
e tomadas de decises sempre de acordo com o planejamento estratgico das instituies e
clientes, bem como diminuir o prejuzo e o custo com tecnologia, de modo que seja possvel
garantir o retorno sobre os investimentos.
Cabe acrescentar tambm que o tema deste trabalho no mbito do servio pblico
ainda no muito difundida. Sendo assim, o projeto aborda questes que visam melhorar os
servios de TI oferecidos por instituies pblicas para a sociedade.
A fim de solucionar as questes levantadas na introduo deste documento, foi
necessrio conduzir uma investigao sobre as tcnicas e teorias utilizadas nesta pesquisa.
1.3 Metodologia
desenvolvido para dar resposta s necessidades de governana. Alm disso, ele nativamente
aborda a problemtica da continuidade de servios de TI, oferecendo direcionamentos para
minimizar seus impactos. Houve ainda a necessidade de conceituar o gerenciamento de
configuraes e ativos de servio, j que se trata de uma gerncia que controla diretamente os
componentes fsicos e abstratos da infraestrutura de TI, os quais podem ser acometidos por
algum desastre e consequentemente afetar a continuidade do negcio de uma instituio.
No captulo 2.3 feito o levantamento dos conceitos DevOps, mostrando sua
relevncia para agilizar tarefas e aumentar a coeso dos trabalhos em equipe. No captulo
2.3.1 abordada a importncia da automatizao dos processos de infraestrutura para garantir
a padronizao dos servios prestados e rapidez na realizao das aes operacionais. Esse
tpico ainda descreve e exemplifica ferramentas DevOps com as caractersticas de facilitar a
automatizao da gerncia de configurao.
O captulo 3 trata do estudo de caso montado para avaliar a integrao do ITIL com o
DevOps, a fim de agilizar o processo de retomada dos servios interrompidos por algum
sinistro e que o ambiente recuperado atenda a continuidade do negcio. So descritos em seus
subcaptulos a descrio do ambiente estudado, os problemas encontrados, a metodologia
aplicada, as solues implementadas e os resultados encontrados.
14
2 REFERENCIAL TERICO
2.1 Governaa de TI
Observando a estrutura organizacional das empresas atuais, seja ela pequena, mdia ou
grande, possvel afirmar que elas so totalmente dependentes de tecnologia para se
manterem vivas frente a um mercado to exigente por qualidade nos produtos e servios que
so ofertados. (LUNARDI, 2008). Historicamente, a competio sempre levou as instituies
a se aprimorarem e, consequentemente, as fizeram buscar incessantemente instrumentos que
alavancassem a produtividade. Diante dessa necessidade, as empresas passaram a se
preocupar com a eficincia das suas rotinas de trabalho, revelando o setor de TI como pea
chave, visto que, muitas rotinas poderiam ser facilmente mapeadas e simplificadas em
sistemas.
Perante a esse cenrio to exigente, no qual o mercado seleciona os melhores e a
complexidade de gerir posta a prova, uma mudana estrutural passou a ocorrer dentro das
organizaes. Esta restruturao foi a capacitao da TI para os moldes de gesto, com o
intuito de ajudar na formulao de estratgias para obter vantagem competitiva.
15
Em muitas organizaes, a TI vista como mais um setor independente das aes que
so realizadas dentro da empresa, mas os seus gestores muitas vezes no compreendem que a
TI indispensvel para tomar qualquer atitude estratgica. Isso porque ela, metaforicamente,
passou a ser a espinha dorsal que interliga todas as reas, direcionando e tratando os estmulos
provenientes de todos os setores e tambm os regulamentando com os direcionamentos da
gesto. A Governana atua fornecendo informao a Gesto para a tomada de deciso e
auxilia na delegao das responsabilidades garantindo maior eficincia.
Segundo FILHO (2012, p.2),
Dentro do tema proposto a governana nortear o trabalho, j que ela fornece a base
para garantir a qualidade nas atividades desempenhadas por qualquer equipe de TI.
Para atender aos critrios estabelecidos pela governana, faz-se necessrio o uso de
um framework de boas prticas como, por exemplo, o ITIL.
Office of Government Commerce (OGC), rgo do governo britnico responsvel por manter
os livros que compem o seu framework. Atualmente est em sua terceira verso, agrupados
em cinco volumes (FILHO, 2012, p. 3-4).
O ITIL tem um paradigma orientado a servios, o que significa que toda a relao de
TI com as reas de negcio podem ser mapeadas, definindo polticas, estratgias e aplicando
melhorias contnuas (FILHO, 2012, p. 9). Neste contexto, o gerenciamento da TI baseado
em um conjunto de processos (boas prticas), que sero responsveis pelo bom
funcionamento da TI e das atividades na qual do suporte.
O objetivo do uso do ITIL est em aumentar a eficincia da rea de TI dentro do
negcio, maximizando a produtividade e consequentemente garantindo o Return On
Investment (ROI). Alm disso, a aplicao do padro na organizao traz consigo o Value On
Investimento (VOI), pois acaba impactando na melhoria dos processos que envolvem toda a
organizao. Para isso ele conta com algumas tcnicas de controle, que so as mensuraes e
auditorias gerenciais, guiando as operaes a andarem no ritmo que a organizao necessita
(OGC, 2007a, p. 132-140).
Uma caracterstica intrnseca que qualifica o uso do ITIL nesta pesquisa que ele pode
realizar a rastreabilidade dos processos que so gerenciados por ele. Isso assegura que o
mesmo pode sofrer uma otimizao para se adequar a necessidade da organizao, podendo
at mesmo, restaurar formas anteriores de trabalho caso se identifique alguma falha posterior.
Rastreabilidade, segundo a norma NBR ISO 8402 , [...] capacidade de recuperao
do histrico, da aplicao ou da localizao de uma entidade [...] por meio de identificaes
registradas. (ABNT, 1994, p. 7). o poder de identificar todos os passos que foram
realizados at o estado atual, de forma que o processo possa ser restaurado a partir de
qualquer ponto de restaurao previamente identificado.
fundamental garantir o funcionamento de uma infraestrutura de TI confivel e mais
adaptvel as necessidades da empresa, atravs dos modelos de processos do framework ITIL.
Eles ainda enfatizam que o ITIL possui uma excelente orientao para o ciclo de vida de um
servio de TI. Porm, sua implementao nas organizaes acaba se tornando uma tarefa
rdua, sendo necessrio desenvolver procedimentos e ferramentas que se encaixam na
aplicao do processo, tornando-o prtico e eficaz (AIELLO; SACHS, 2014).
Como o foco do trabalho est na definio de um mtodo que garanta, de forma
padronizada e gil, a recuperao de servios de TI acometidos por um evento desastroso, se
fez necessrio explorar as definies e recomendaes, que so encontradas na Gerncia de
Continuidade de Servio de TI. Tambm foram avaliados os conceitos contidos na Gerncia
17
negcio, com as aes que devem ser tomadas mediante o acontecimento do desastre,
garantindo os requisitos mnimos de operao. Em outras palavras essas etapas vo definir o
plano de ao que deve ser seguido para retomar as operaes (OGC, 2007b, p. 128-137).
A implementao das medidas para minimizar os impactos devem seguir a orientao
do plano de ao e realizar testes simulados para evitar que os servios restaurados no
deixem de atender os requisitos mnimos para o seu funcionamento. Outro enfoque que deve
ser feito a otimizao do tempo de recuperao. Quanto menor o prazo de retorno, menos a
empresa arcar com prejuzos. Indiretamente isso pode levantar a necessidade de rever os
prazos acordados nos nveis de servio (SLA).
Uma das sadas que podem ser encontradas para auxiliar a retomada de operaes
descritas na continuidade de servio e que so abordadas por esse trabalho, so os processos
automatizados.
2.3 DevOps
O termo DevOps, nada mais do que uma fuso das palavras Desenvolvedor e
Operaes e foi popularizado atravs de uma srie de eventos chamados DevOps Days,
iniciados na Blgica em 2009. Seus idealizadores prope uma nova abordagem de trabalho,
buscando automatizar o mximo possvel os processos e quebrar as barreiras existentes entre
os setores de uma mesma empresa. Garantindo o aumento da colaborao entre as equipes na
troca de experincias e no compartilhamento de ferramentas. A ideia no perder tempo com
questes operacionais e rotineiras, dessa forma, os profissionais estaro focados na busca de
solues em suas respectivas reas, promovendo o papel que os gestores e demais colegas
realmente esperam que eles desenvolvam (DEVOPS, 2010).
Sua necessidade se mostrou mais aparente com o surgimento e aplicao das
Metodologias geis no trabalho das equipes de desenvolvimento, na qual aumentou a
demanda por deploys, que passaram a ser mais frequentes (entrega contnua). O que acabou
revelando um gargalo na publicao, rea essa de responsabilidade da equipe de
infraestrutura. Isso mostra claramente que as equipes evoluem em ritmos diferentes e a falta
de comunicao e contribuio entre elas muito grande. Com essa viso de integrao dos
times, o DevOps auxilia no gerenciamento e lanamento de novos produtos, isso porque o
processo pode ser totalmente automatizado e existe suporte maior para publicao. Existe
ainda o benefcio do processo ter que ser padronizado para que um nmero maior de
envolvidos interajam (SATO, 2013, p. 4-6).
Metodologia gil [...] uma nova forma de gesto e desenvolvimento de software que
usa uma abordagem de planejamento e execuo iterativa e incremental voltado para
processos empricos [...] (STEFFEN, 2012), aproximando o time de desenvolvimento ao de
negcios e que separa o produto em pequenos problemas, de modo que, seja possvel entregar
continuamente partes funcionais. Possui outras caractersticas como: a comunicao face-to-
face; reduo dos riscos associados s incertezas dos projetos; abraar e responder s
mudanas de forma mais rpida e natural, com intuito de atender da melhor forma as
expectativas dos clientes, por meio da adoo de prticas de gesto e de Engenharia de
20
Software com foco nos valores e princpios do Lean (sistema Toyota de produo)
(STEFFEN, 2012). Seu principal objetivo entregar um produto que o cliente realmente
deseja, usvel (mesmo que a entrega seja de uma pequena parte) e que tenha garantia de
qualidade.
Com DevOps os eventos podem ser monitorados com maior clareza, do mesmo modo
que facilita a gerncia dos processos e gerao de relatrios granulares. O desenvolvedor
ganha maior autonomia em relao ao ambiente que hospeda os servios, e a infraestrutura
maior compreenso sobre as aplicaes que ele administra. Mesmo que j exista previamente
alguma parte do processo j automatizado, essas rotinas muitas vezes no tem uma
flexibilidade desejada, pois possuem implementaes muito amarradas e dependentes de
outras estruturas.
Empresas que aplicaram essas prticas de DevOps com sucesso no enxergam mais
o departamento de TI como um gargalo, mas sim como um agente de capacitao do
negcio. (SATO, 2013, p. 6).
Os principais fundamentos DevOps extrados de seu manifesto podem ser expressos
de forma resumida (DEVOPS, 2010):
Avaliao: so as mtricas, medies, verificao de performance, logs e
integrao;
Automao: facilitar os processos repetitivos no deploy, controle, monitorao,
gerncia de configurao e orquestrao;
Compartilhamento: assuntos relacionados a feedback e comunicao entre a
equipe.
Cultura: envolve colaborao, fim das divises, relao saudvel entre as reas e
mudana de comportamento;
Dentre as caractersticas citadas, as de comunicao entre a equipe, colaborao e
automao foram as mais utilizadas na aplicao do estudo de caso.
instrues utilizando sua linguagem especfica de domnio (DSL). Por ser muito intuitiva, ela
acaba sendo de fcil interpretao para os administradores de sistema, sendo diferente, por
exemplo, da utilizada pelo Chef (outra ferramenta similar), na qual sua escrita mais
apropriada para programadores.
O Puppet foi escrito em Ruby e distribudo como um software livre sob a Licena
Pblica Geral (GPL) pelos seus criadores. Nele possvel automatizar todos os passos do
processo de entrega de software, desde o provisionamento de mquinas fsicas e virtuais para
orquestrao at relatrios (PUPPET, 2016).
Resumidamente, o Puppet uma ferramenta de automatizao de gerncia de
configurao. Funciona utilizando um servidor principal (Puppet Master), que centraliza as
configuraes (facts) entre os servidores (nodes) e os organiza pelo tipo no seu repositrio
(catalog). O seu agente (Puppet Agent) executado como um processo independente nos
clientes, permitido implementar mudanas de infraestrutura em vrios ns ao mesmo tempo.
O fato que mais marcou com a chegada das ferramentas trazidas com o movimento
gil foi, literalmente, tratar a infraestrutura como um cdigo. Como se trata de textos e
instrues similares aos escritos para desenvolver qualquer programa de computador, eles
podem ser editados, versionados, testados e otimizadas a qualquer momento (COYNE;
SHARMA, 2015, p. 25). Criar um servidor, desde a instalao do sistema operacional,
passando pela configurao dos seus servios, at sua publicao, um trabalho muito
dispendioso, ainda mais sendo feito manualmente, inserindo mdias, copiando arquivos e
executando instrues. Em contra partida, criar o mesmo servidor, com as mesmas
caractersticas atravs de uma chamada por linha de comando ou automaticamente ativadas
por algum evento, torna o trabalho muito mais eficiente. Desta maneira a infraestrutura se
torna muito mais flexvel, escalvel e sem a necessidade de acrscimos de pessoal.
De maneira geral o objetivo dessas ferramentas liberar tempo para os profissionais se
dediquem em projetos que oferecem mais valor de negcio, garantir a coerncia, fiabilidade e
estabilidade e Facilitar a colaborao mais estreita entre os administradores de sistemas e
desenvolvedores.
23
3 ESTUDO DE CASO
Neste captulo ser descrito o ambiente do estudo de caso, o processo atual e a soluo
encontrada, provando que a implementao mais confivel e eficaz.
O estudo analisou o processo de trabalho que realizado em uma instituio municipal
governamental que prov servios de tecnologia para os demais rgos ligados a sua
organizao. A fim de mapear os processos mais crticos de provisionamento de ambientes e
aplicar conceitos e ferramentas DevOps para otimizar a produtividade na recuperao de um
servio.
com a linguagem dentro da instituio e que frequentemente so lanadas novas verses para
as aplicaes, alm de envolver o uso de 5 servidores em sua infraestrutura de funcionamento.
3.3 Procedimentos
Este trabalho no seria possvel sem a unio das concepes de governana e DevOps,
sendo que a parte que cabe governana : o que fazer, e para o DevOps a incumbncia :
como fazer.
Os procedimentos aplicados ao estudo de caso para alcanar os objetivos deste
trabalho so descritos seguindo a metodologia:
(I) Inicialmente foi feito a escolha do ambiente. Foram selecionados ambientes que
sofrem frequentes modificaes nas configuraes e que geram risco ao negcio em caso de
falhas. Outro fator levantado em conta foi a verificao da frequncia com que ocorre a
indisponibilidade. A avaliao foi executada em conformidade com o framework ITIL no que
se diz respeito a continuidade de servio.
(II) A prxima etapa teve como objetivo contabilizar o tempo mdio gasto para
concluir as configuraes e o perodo de indisponibilidade dos servios escolhidos no item
anterior. A contagem considerou o tempo total para preparar e restabelecer um ambiente da
forma habitual.
(III) No terceiro passo foi aplicado o mtodo dedutivo com auxlio do framework ITL
para identificar a existncia de rastreabilidade das mudanas que foram realizadas no
ambiente produtivo. Foi verificado tambm se era possvel restaurar um servio no mesmo
estado em que se encontrava antes de ocorrer a indisponibilidade ou catstrofe. A execuo
desta etapa foi importante para descrever com mais preciso o estudo de caso.
(IV) Aps a identificao da rastreabilidade foi selecionado as caractersticas da
cultura DevOps que melhor se adequam aos objetivos propostos nesta temtica. Foi escolhida
uma ferramenta, que proporcionasse maior facilidade e velocidade na adoo da metodologia,
de modo que, pudesse interagir diretamente com a infraestrutura de servios de TI.
(V) A quinta etapa se caracterizou em contabilizar o tempo gasto para instalar ou
restaurar um servio aps aplicar a metodologia. Este procedimento foi executado mais de
uma vez em um servio construdo para simular a queda do ambiente produtivo, o qual foi
selecionado nas etapas anteriores.
(VI) De posse de todas as informaes coletadas foi verificado se a forma de trabalho
sugerida pelo DevOps garantiu a continuidade do servio. Analisaram-se os resultados
26
Na simulao, a mquina alvo, que possui o servio Rails implementado, teve sua
instncia destruda para emular os efeitos de um desastre. A partir deste momento, foi iniciado
o processo de restaurao, aguardando o servidor Puppet aplicar automaticamente as
configuraes pr-estabelecidas. Esta ao foi realizada diversas vezes para analisar o
ambiente resultante e coletar informaes sobre a aplicabilidade do mtodo e seu tempo de
resposta.
Uma vez que a prova de conceito de uma recuperao e provisionamento automtico
foi desenvolvida atravs da ferramenta, avaliou-se a contribuio das caractersticas da
metodologia DevOps, que foram citadas no incio deste tpico, para alcanar os objetivos do
gerenciamento de continuidade de servio descritos neste trabalho. Os resultados obtidos pela
soluo so explicados na prxima seo.
3.5 Resultados
4 CONCLUSO
REFERNCIAS
ABNT. NBR ISO 8402: Gesto da qualidade e garantia da qualidade - Terminologia. Rio de
Janeiro: ABNT, 1994.
AIELLO, Bob; SACHS, Leslie. DevOps best practices: Part 3 Implement ITIL with DevOps.
IBM: DevelopersWorks. Feb. 2014. Disponvel em: <http://www.ibm.com/developerworks
/library/d-implement-itil-devops>. Acesso em: 15 nov. 2015.
CHEF. All about Chef. 2016. Disponvel em: <https://docs.chef.io>. Acesso em: 10 jan. 2016.
COYNE, Bernie; SHARMA, Sanjeev. DevOps for Dummies: IBM Limeted Edition. 2. ed.
Hoboken: John Wiley & Sons, Inc., 2015.
DEVOPS. What is devops? The agile admin. Out. 2010. Disponvel em: <http://theagile
admin.com/what-is-devops/>. Acesso em: 10 jul. 2015.
FILHO, Felcio Cestari. ITIL v3 Fundamentos. Escola Superior de Redes: Rio de Janeiro,
2012. Disponvel em: <http://pt.scribd.com/doc/50809607/ITIL-v3-Fundamentos>. Acesso:
19 dez. 2015.
GALUP, S.; QUAN, J.J.; DATTERO, R. & Conger, S. Information technology service
management: an emerging area for academic research and pedagogical development
Proceeding do SIGMIS CPR '07. Conference on Computer personnel research: The global
information technology workforce. ACM New York, NY, USA. p. 46-52. 2007.
KOSMIN, Adam. Puppet and nagios: a roadmap to advanced configuration. Linux Journal,
v. 2012, n. 216. 2012.
MUELLER, Ernest. A DevOps Manifesto. The agile admin. Out. 2010. Disponvel em:
<http://theagileadmin.com/2010/10/15/a-devops-manifesto>. Acesso em: 10 jul. 2015.
RUBY ON RAILS. Rails. Disponvel em: <http://rubyonrails.org>. Acesso em: 15 fev. 2016.
33
service { 'monit':
ensure => 'running',
enable => true,
35
file { 'rails.conf':
path => '/etc/monit/conf.d/rails.conf',
owner => 'root',
group => 'root',
mode => '0700',
content => 'include /home/deployer/apps/*/shared/
config/monit',
require => Package['monit'],
notify => Service['monit'],
}
file { '/home/deployer/apps':
ensure => 'directory',
owner => 'deployer',
group => 'deployer',
mode => '0755',
require => User['deployer'],
}
36
# Instalando o rvm
exec { 'rvm-gpg-import':
command => 'curl -sSL https://rvm.io/mpapis.asc |
gpg --import -',
path => '/usr/local/sbin:/usr/local/bin:/usr/
sbin:/usr/bin:/sbin:/bin',
user => 'deployer',
environment => ['HOME=/home/deployer'],
logoutput => true,
}
exec { 'rvm-install':
command => 'curl -L https://get.rvm.io | bash s
stable',
path => '/usr/local/sbin:/usr/local/bin:/usr/
sbin:/usr/bin:/sbin:/bin',
user => 'deployer',
environment => ['HOME=/home/deployer'],
logoutput => true,
require => Exec['rvm-gpg-import'],
}
# Instalando nginx
package { 'nginx':
ensure => 'present',
}
service { 'nginx':
ensure => 'running',
enable => true,
require => Package['nginx'],
}