Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Instalação de aplicações Web
Apresentação
Das fases de desenvolvimento de uma aplicação Web, a de implantação ou instalação é uma das 
que mais requer cuidados. Afinal, é a etapa em que o sistema passa a estar disponível ao usuário 
final, o chamado ambiente de produção. A grande vantagem é que nos dias atuais existem diversas 
tecnologias empregadas no trabalho de implantar e instalar aplicações em ambiente de servidor 
Web.
Como esse processo está presente desde o desenvolvimento da primeira aplicação, existem 
diferentes formas de implantação de aplicações Web, desde as mais tradicionais, com a submissão 
de arquivos via protocolo FTP, até opções mais modernas, que incluem o uso de técnicas de 
integração contínua e entrega contínua.
Nesta Unidade de Aprendizagem, você verá as abordagens de instalação de aplicações Web via 
protocolo FTP integração contínua e entrega contínua, a cultura DevOps e a evolução dos 
processos de instalação de aplicações Web.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Descrever o processo de instalação de aplicações Web: do FTP à integração contínua (CI/CD). •
Explicar a instalação de aplicações Web via FTP e comparar com o processo de integração 
contínua. 
•
Analisar a cultura DevOps e a evolução dos processos de instalação de aplicações Web. •
Desafio
Para controle de implantação e de manutenção de aplicações Web, o uso de técnicas de integração 
contínua e entrega contínua (CI/CD) tem-se tornado cada dia mais importante. Essa tem sido uma 
forma de acompanhar todos os processos envolvidos em times de desenvolvimento, na qual todos 
os envolvidos podem ter controle do que está sendo produzido e gerado ao fim de cada ciclo.
Suponha que você seja gerente de projetos de uma grande empresa de tecnologia.
Como um bom gerente, descreva quais ferramentas e/ou técnicas podem ser utilizadas em tal 
processo.
Infográfico
Manter uma aplicação Web moderna requer o uso de técnicas e ferramentas que não apenas 
auxiliem no processo em si, mas que tragam mais agilidade, otimização do tempo e do uso dos 
membros de uma equipe de desenvolvimento. O versionamento de código é uma técnica que 
auxilia muito na criação de aplicações sobre dinâmicas e de implantação em fluxo contínuo.
A principal técnica de versionamento é chamada de GIT. Com ela é possível, por meio do uso de 
ferramentas guiadas por comandos particulares, a submissão, a atualização e a manutenção de 
projetos e código-fonte de uma aplicação.
Veja, no Infográfico, os principais comandos GIT e sua aplicação prática.
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/634006c4-f4ac-483b-a6d0-62a40343de03/7ebf72f5-bcd8-430a-a8a4-9bfd122e1545.jpg
Conteúdo do Livro
A implantação de um sistema em servidor Web necessita do uso de protocolos de Internet. O uso 
de ferramentas próprias para isso também auxilia o processo, uma vez que diferentes técnicas, 
como a transferência via cliente FTP ou o método de integração contínua e entrega contínua, são 
formas de se utilizar a tecnologia da informação na implantação e na atualização de aplicações em 
servidores.
No capítulo Instalação de aplicações Web, do livro Ferramentas de desenvolvimento Web, você verá 
um detalhamento do uso dessas técnicas e ferramentas no processo de instalação de aplicações 
Web em servidores.
Boa leitura.
FERRAMENTAS DE 
DESENVOLVIMENTO 
WEB 
Daniel dos Santos Brandão
Instalação de 
aplicações web
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 � Descrever o processo de instalação de aplicações web: do FTP à in-
tegração contínua.
 � Explicar a instalação de aplicações web via FTP e comparar com o 
processo de integração contínua.
 � Analisar a cultura DevOps e a evolução dos processos de instalação 
de aplicações web.
Introdução
As aplicações web evoluíram muito desde o surgimento da web como a 
conhecemos. Dos primórdios da troca de informação por browsers como 
Netscape, AOL Explorer e Internet Explorer até o uso de interfaces por 
meio de smartphones e tablets, com telas sensíveis ao toque e sistemas 
operacionais mobile, houve um enorme salto tanto de qualidade de 
conteúdo quanto de quantidade de tecnologias empregadas por trás 
de tudo isso.
Com o avanço das tecnologias envolvidas na troca de mensagens da 
web, as aplicações e softwares para esse ambiente precisaram avançar e, 
com isso, o modo como as equipes de desenvolvimento e os programa-
dores full stack criam e disponibilizam essas aplicações na grande rede 
também precisou evoluir. As linguagens de programação deixaram de ser 
puro código e passaram a ter uma grande base por trás, com frameworks 
e servidores próprios para executar aquele código. Com essa estrutura, 
a forma como se enviam os arquivos para um servidor web precisou 
acompanhar tudo isso, evoluindo do uso simples do protocolo FTP (file 
transfer protocol, ou “protocolo de transferência de arquivo”) para o CD 
(continuous delivery, ou “entrega contínua”) e CI (continuous integration, 
ou “integração contínua”).
Neste capítulo, você vai estudar as convenções e formas de instalação 
de aplicações em servidores web. Também vai ver a cultura DevOps, 
com exemplos de aplicações e modelos aplicados para ambiente de 
desenvolvimento de software para web.
1 Aplicações web
Um projeto web requer diferentes olhares, desde sua fase de ideação, na pro-
totipação inicial, passando por levantamento de requisitos, refinamento desses 
requisitos, construção de modelos de banco de dados até o desenvolvimento em 
si, testes e mais testes. Uma das fases finais é a entrega do projeto, conhecida 
como deploy (do inglês, “implantar”). É nessa última fase que o sistema passa 
a estar em um servidor web e a estar habilitado para testes e, posteriormente, 
para ser colocado no chamado ambiente de produção.
Esse ambiente é como chamamos o estado de uso do sistema por seus 
usuários. É o ambiente onde o sistema está em execução de fato. Com o sistema 
em produção, o que pode ocorrer após isso são as eventuais manutenções ou 
melhorias, lançamento de novas versões e trabalhos do gênero. Para Lopes et 
al. (2019, documento on-line):
Cada etapa do processo não envolve somente o desenvolvedor e a linguagem, 
mas também o ambiente aonde os processos estão ocorrendo, de forma que um 
mesmo produto de software assume comportamentos diferentes de acordo com 
seu ambiente de desenvolvimento. Isso porque durante seu desenvolvimento 
um sistema precisa passar por uma série de testes, mudanças e adequações […].
Com base nessa afirmação, perceba que a etapa de entrega é precedida 
de outras que também são de total importância. A entrega ou implantação 
de uma aplicação também necessita de cuidados especiais e deve contar com 
especialistas no processo, de acordo com o grau de complexidade da estrutura 
de servidor empregada, das tecnologias utilizadas no desenvolvimento e da 
quantidade de entregas necessárias ao longo do processo de deploy.
Instalação de aplicações web2
Diferentes formas de implantação
Assim como um sistema não é criado apenas de uma forma, com uma só 
linguagem de programação e um mesmo banco de dados sempre, o modo 
de criar projetos também tem diferentes vertentes. “Os Métodos Ágeis de 
desenvolvimento de software surgiram no final da década de 1990 propondo 
uma nova abordagem para organizar tais atividades” (SATO, 2013, p. 2). 
Esse método não trabalha apenas com a ideia da programação em si, mas de 
todos os aspectos de um projeto, incluindo as entregas. Até então, as tarefas 
de desenvolvimento e a parte operacional do sistema eram bem divididas em 
times ou funções distintas. Enquanto um tinha o interesse apenas de pensar no 
desenvolvimento em si, visando ao código-limpo e aos requisitos satisfeitos, 
o outro prezava pela estabilidade do serviço e pela persistência da aplicação,sempre disponível ao usuário final.
Na tentativa de agilizar o processo e de não ter um abismo entre a equipe 
ou pessoa responsável pela programação em si e quem irá testar e, posterior-
mente, implantar a aplicação em servidor de produção, foram surgindo novas 
visões e técnicas de trabalho entre os processos. Dessa necessidade surgiu o 
conceito de CI/CD. 
A técnica de CI/CD diminui o tempo entre cada deploy e passa a ter mais 
entregáveis ao longo do processo. Sato (2013, p. 5) afirma que “[...] o aumento 
da frequência de deploys faz com que a quantidade de mudanças em cada 
deploy diminua, reduzindo também o risco associado a ele.” Logo, com mais 
entregas, menos trabalho de correção poderá ser apresentado, fazendo com 
que a equipe consiga entregar um produto de mais qualidade e com riscos 
bem baixo de grandes manutenções futuras.
A Figura 1 demostra o chamado ciclo vicioso entre desenvolvimento e 
operações, segundo Sato (2013).
3Instalação de aplicações web
Figura 1. Ciclo vicioso entre desenvolvimento e operações.
Fonte: Adaptada de Sato (2013). 
Frequência de
deploy
Processo Quantidade
de mudanças
Risco
– +
++
Nesse ciclo, quanto menor a frequência de deploys, mais retrabalhos e 
maior quantidade de mudanças poderão surgir, com o risco de não conclusão 
ou não cumprimento de prazos do projeto iminentes.
Conceito de entrega contínua
CD é o processo de entrega constante de uma aplicação, feita assim que peque-
nos artefatos são desenvolvidos. No desenvolvimento de sistemas modulares, 
por exemplo, cada módulo é uma parte do sistema. A aplicação é constituída 
de partes menores, e cada uma delas representa um módulo, que pode ser 
dividido em cadastro de clientes, catálogo de produtos, controle financeiro, 
recursos humanos e assim por diante. Na técnica de entrega contínua, em vez 
de ser submetida apenas parte da aplicação ou a aplicação inteira de uma vez, 
ao final do processo, as entregas ou submissões da aplicação são feitas em 
pequenas etapas, que podem ser diárias, semanais ou em outra periodicidade.
A AWS (Amazon Web Services) define CD como “[…] uma prática de 
desenvolvimento de software na qual as alterações de código são automati-
camente preparadas para uma liberação para produção” (AWS, 2019a, docu-
mento on-line). A empresa apresenta a prática como uma solução moderna 
de desenvolvimento de sistemas, visto que, com o desenvolvimento orientado 
a entregas, ao final de cada entrega o programador tem mais segurança de 
que o que ele está criando passa por testes de execução tanto em ambiente de 
desenvolvimento quanto no ambiente de produção. “Com a entrega contínua, 
Instalação de aplicações web4
cada alteração de código é criada, testada e enviada para um ambiente de teste 
ou preparação, que não pertence à produção” (AWS, 2019a, documento on-line).
Esse processo é compreendido quando se utiliza o versionamento de código. 
Ao se utilizar técnicas e ferramentas de controle de versão, há uma segurança 
de que, caso algum erro ocorra durante o processo de deploy ou se alguma 
das entregas feitas apresente defeito, a aplicação pode retornar a um estágio 
anterior ao da entrega defeituosa, fazendo com que o erro seja reparado de 
maneira mais rápida e prática. Muitas vezes isso é detectado tão de pressa 
que o usuário do sistema em si nem percebe que houve um downgrade da 
aplicação (voltar a um estado anterior).
Segundo a AWS (2019), alguns dos benefícios da CD são os seguintes:
 � automatização do processo de deploy de uma aplicação;
 � melhora na produtividade do time de desenvolvimento;
 � encontro e correções de bugs mais rapidamente;
 � distribuição de atualizações também mais rapidamente.
Podemos dizer que essas são as principais características do uso de CI/CD 
no desenvolvimento e na instalação de uma aplicação em servidor web. Uma 
tarefa geralmente ligada à CD é o provisionamento de servidor. Segundo 
Sato (2013, p. 63): 
O termo provisionamento é comumente usado por empresas de telecomunica-
ções e por equipes de operações para se referir às etapas de preparação iniciais 
de configuração de um novo recurso. Por exemplo: provisionar um aparelho 
celular, provisionar acesso à internet, provisionar um servidor, provisionar 
uma nova conta de usuário, e assim por diante. 
Em outras palavras, provisionar é prover previamente um ambiente ou 
configuração inicial de algum serviço para que o usuário possa utilizar sem 
ter mais esse trabalho a cada novo aparelho. No caso de aplicações web, já é 
comum utilizar servidores em nuvem ou servidores dedicados em empresas 
terceirizadas. Nesse caso, o nível de provisionamento vai variar, podendo ser 
utilizado o conceito de virtualização, com máquinas virtuais atuando em um 
mesmo servidor, no qual toda a estrutura necessária em nível de software 
pode ser feita ainda em ambiente de desenvolvimento e, posteriormente, 
ser submetida completamente, já pronta e configurada, para o ambiente de 
produção em servidor web. 
5Instalação de aplicações web
Conceito de instalação via FTP
Por mais que o conceito de entrega contínua esteja bastante difundido, ainda 
existem as formas de implantação e instalação de aplicações web de modo 
tradicional. A instalação via serviço FTP é utilizada para envio de arquivos 
fonte de aplicações, do ambiente de desenvolvimento ao ambiente de produção. 
O FTP é utilizado para transferência de arquivos de um ambiente ou máquina 
local para outra máquina. Quando falamos de aplicações web, a transferência 
será entre uma máquina ou servidor local e o servidor web, o servidor de 
produção onde a aplicação será realmente executada e utilizada.
A transferência por FTP é a forma mais tradicional e, por assim dizer, 
simples de submeter uma aplicação a um servidor. É uma forma de copiar, 
de maneira mais manual, arquivos locais para um outro local remoto. Para 
realizar essa cópia ou submissão de arquivos é necessário o uso de ferramentas 
chamadas de clientes FTP. Essas aplicações são softwares que podem ser 
instalados na máquina local do desenvolvedor e configurados para se conectar 
com o servidor ou máquina de destino, a URL (uniform resource locator), 
o usuário, a senha e a porta de comunicação, requisitos do protocolo FTP.
Com o uso do protocolo FTP, a árvore de diretórios pode ser manipulada 
manualmente, com o próprio usuário desenvolvedor podendo escolher as 
pastas onde ficarão os arquivos. O protocolo FTP permite a transferência de 
arquivos tanto como download (baixar um arquivo) como upload (subir um 
arquivo). De acordo com Comer (2016), o FTP pode ser caracterizado a partir 
de aspectos como os seguintes:
 � Conteúdos arbitrários de arquivo: o FTP pode transferir qualquer 
tipo de dados, incluindo documentos, imagens, músicas ou vídeos 
armazenados.
 � Transferência bidirecional: o FTP pode ser usado para baixar (do-
wnload) arquivos (transferir do servidor para o cliente) ou carregar 
(upload) arquivos (transferir do cliente para o servidor). 
 � Suporte para autenticação e propriedade: o FTP permite que cada 
arquivo tenha propriedade e restrições de acesso. 
 � Habilidade para navegar em pastas: o FTP permite que um cliente 
navegue nos conteúdos de um diretório (ou seja, uma pasta). 
 � Mensagens de controle textual: como muitos outros serviços aplica-
tivos da internet, as mensagens de controle trocadas entre um cliente 
e um servidor FTP são enviadas como texto ASCII. 
Instalação de aplicações web6
 � Acomodação de heterogeneidade: o FTP esconde os detalhes dos 
sistemas operacionais dos computadores individuais e pode transferir 
uma cópia de um arquivo entre dois computadores quaisquer.
Com o uso do FTP, a transferência de arquivos pode ser feita indepen-
dentemente de os computadores utilizarem diferentes sistemas operacionais, 
embora alguns arquivos possam apresentar problemas de leitura, dependendo 
do modo de escrita e leitura que esteja salvo. Sistemas como Windows e Linux, 
por exemplo, têm diferentes modos de sistema de arquivos, mas,de modo 
geral, a transferência entre máquina local e servidor é semelhante para todos.
2 Implantação de aplicações web
Existem diferentes formas de instalar uma aplicação em um servidor. Utili-
zando diferentes protocolos e modos de operação, é possível ter diferentes 
resultados, e cada equipe de desenvolvimento ou profissional desenvolvedor 
pode optar pelo modo que melhor se encaixe em sua metodologia de trabalho. 
Como exemplo simples, para manter uma aplicação web modular, cada mó-
dulo sendo desenvolvido é testado em ambiente de desenvolvimento e, assim 
que estiver homologado localmente, é submetido ao servidor web. Esse é um 
processo natural de implantação de uma aplicação web. Nesse procedimento, 
testes precisarão ser feitos e então teremos a aplicação propriamente dita em 
ambiente de produção. 
Como vimos anteriormente, o ambiente de produção é como chamamos 
o ambiente de servidor web em que a aplicação está em execução e, em 
consequência, é utilizada pelo usuário final. Após a submissão e as devidas 
parametrizações do servidor, a aplicação deverá estar pronta para uso. Mas, 
como submeter os arquivos da aplicação ao servidor? É isso que veremos a 
seguir, com duas formas distintas de fazer a tarefa: com entregas contínuas 
ou um deploy único.
Implantação de uma aplicação web 
com entregas contínuas
Segundo a AWS (2019b, documento on-line), “[...] a integração contínua é uma 
prática de desenvolvimento de software de DevOps em que os desenvolvedores, 
com frequência, juntam suas alterações de código em um repositório central.” 
Geralmente ligada a um processo automatizado, as entregas e integrações 
7Instalação de aplicações web
contínuas permitem que a equipe de desenvolvimento se preocupe menos com 
as entregas em si e mais com sua tarefa principal, a de criar as aplicações e 
seus testes. Essa metodologia permite ter equipes mais focadas em programar 
propriamente, deixando algumas tarefas mais autônomas e menos burocráticas, 
dando mais liberdade aos desenvolvedores.
Essa integração e entregas contínuas estão diretamente ligadas ao versiona-
mento e controle de código. O método mais comum de criar versões de código 
é o uso do Git. Serviços como GitHub e GitLab são os mais conhecidos que 
utilizam a metodologia da criação de versões de arquivos em ambiente web. 
Essa prática significa que, para cada arquivo criado e submetido a um servidor, 
é armazenada uma cópia de seu estado atual, permitindo assim que um arquivo 
criado e alterado tenha a possibilidade de ser revertido a um estado anterior.
O controle de versões ou de código-fonte é uma forma de gerenciamento 
na alteração de códigos em arquivos de uma aplicação. É como você ter um 
site na web já funcionando e sendo utilizado pelos usuários, mas precisar 
adicionar mais uma opção ao menu. Você pode alterar o arquivo com o menu 
localmente e, após a alteração, submetê-lo ao servidor web. Com isso, o site 
será atualizado e a nova opção de menu estará disponível. Em um processo 
de transferência de arquivo comum via FTP, por exemplo, o arquivo que 
contém o menu originalmente será substituído pela nova versão. Com uso 
do versionamento de código, tanto a nova versão do arquivo como a anterior 
estão disponíveis, daí vem a ideia de versão de código.
Git
Git é “um sistema de gerenciamento de código-fonte distribuído de código 
aberto” (AWS, 2019c). Esse sistema foi criado por Linus Torvalds, o mesmo 
criador do núcleo do sistema operacional Linux. A ideia do Git é ter diferen-
tes versões de um mesmo arquivo, de maneira independente um do outro, 
podendo reverter o arquivo a um estado anterior sempre que necessário. 
Cada atualização de arquivo é chamada de confirmação. “É possível extrair 
confirmações de outros colaboradores para o repositório, enviar confirmações 
para outras pessoas e mesclar confirmações de volta para a versão principal 
do repositório” (AWS, 2019c). É geralmente utilizado como uma aplicação 
por shell script ou prompt de comando, com comandos básicos como pull, 
commit, split e merge.
Os maiores benefícios apresentados pelo uso do versionamento via Git 
são estes (AWS, 2019d):
Instalação de aplicações web8
 � Acompanhamento histórico de alterações: é possível revisar como as 
confirmações foram alteradas ao longo do tempo, ver quando e por quem 
as alterações foram feitas e reverter para uma confirmação anterior, se 
necessário. Esse histórico facilita a identificação e a correção de bugs.
 � Trabalho em equipe: você pode compartilhar seu código com colegas 
de equipe para revisão antes de confirmar ou fazer mescla de arquivo. 
Além disso, os recursos de ramificação e revisão permitem o desen-
volvimento simultâneo. Várias pessoas podem trabalhar no mesmo 
arquivo e resolver as diferenças nele posteriormente.
 � Melhora na velocidade e produtividade da equipe: o Git facilita o 
rastreamento de alterações no código. O desenvolvedor pode se concen-
trar em escrever código, em vez de gastar tempo rastreando e mesclando 
versões diferentes de sua equipe. Além disso, o Git executa cálculos e 
armazena seu repositório principal localmente, tornando-o mais rápido 
na maioria das operações.
 � Disponibilidade e redundância: o Git trabalha de maneira distribuída, 
o que significa que não existe um local central e único onde tudo esteja 
armazenado. Em um sistema distribuído, existem vários backups no 
caso de você precisar de um. Essa abordagem também significa que 
você pode trabalhar off-line e confirmar suas alterações quando estiver 
tudo pronto.
 � Git é o padrão do setor: devido à sua popularidade, o Git se trans-
formou no padrão de muitos ambientes de desenvolvimento integrado 
(IDEs, integrated development environment) e por muitas ferramentas 
populares de desenvolvedor, incluindo AWS CodeCommit, Jenkins e 
Travis. Existem muitos recursos gratuitos do Git disponíveis.
Durante a criação do sistema operacional do pinguim, Linus permitiu que diversos cola-
boradores ajudassem no código-fonte do sistema, realizando um trabalho colaborativo. 
Para isso, era preciso que várias pessoas pudessem trabalhar nos arquivos ao mesmo 
tempo. Para não haver problemas nos arquivos, foi utilizada a ideia de versionamento. 
Como a ferramenta usada à época era proprietária e não possuía o código-fonte aberto 
(open source), Linus decidiu criar sua própria aplicação de versionamento, nascendo 
assim a ferramenta Git. Após isso, foram criadas outras dezenas delas, como GitHub, 
GitLab, entre outras.
9Instalação de aplicações web
Existem diferentes formas de utilizar o versionamento de código com 
Git. Serviços como GitHub são bastante utilizados; com eles é possível criar 
repositórios para diferentes projetos, convidando usuários para compartilhar 
de seu código. Uma equipe pode ter vários projetos, que podem ser públicos 
ou privados. Em repositórios privados, apenas convidados podem alterar ou 
submeter novos arquivos; já os públicos são de livre acesso, tanto para download 
de arquivos quanto para submissão e criação de novas versões de arquivos.
Implantação de uma aplicação web com entrega única
Além da metodologia de entregas contínuas, também é possível realizar a cha-
mada “entrega única”. Este tipo de deploy é realizado, em geral, para aplicações 
mais simples, com grau menor de tecnologias e com baixo acoplamento em 
relação ao próprio servidor — ou seja, uma aplicação criada em uma única 
linguagem, ou criada por uma só pessoa, de maneira simples, com páginas 
web estáticas ou até dinâmicas, mas sem maiores complexidades.
Esse tipo de implantação pode ser considerado mais simples, porém, se 
não for feito da maneira correta, poderá apresentar falhas que comprometem 
a execução de maneira correta. Mesmo sendo um método mais fácil de im-
plantação, requer alguns cuidados e também que a aplicação seja submetida 
a testes após seu deploy. Quer dizer, independentemente de ser considerado 
mais simples, requer cuidados semelhantes ao da entrega contínua, porém sem 
a necessidade de maisde um profissional envolvido no processo.
Para realizar uma implantação de sistema nesse método, é necessária uma 
ferramenta chamada cliente FTP no processo. Esse método nada mais é do 
que transferir arquivos de um servidor ou máquina local para outra máquina 
ou servidor. No caso de uma aplicação web, o envio é para um servidor web. 
Existem vários softwares que auxiliam na transferência de arquivos nesse 
processo, podendo ser utilizadas tanto IDEs quanto programas específicos de 
cliente FTP, como FileZilla, SmartFTP, Transmit, Free FTP, entre outros. Há 
opções para sistemas operacionais Windows, Linux, MAC OS, entre outros. 
A Figura 2, a seguir, apresenta um exemplo de cliente FTP, o FileZilla.
Instalação de aplicações web10
Figura 2. Cliente FTP FileZilla.
Na Figura 2 você pode ver o FileZilla aberto e suas opções básicas. De 
modo geral, o protocolo FTP requer alguns argumentos para conectar uma 
máquina local até um servidor ou outra máquina, que são os seguintes:
 � Host: é a URL ou o domínio do servidor, que pode ser representado 
pelo IP no formato http://0.0.0.0, por exemplo, ou http://dominio.com.br.
 � Nome do usuário: é o nome de usuário criado no servidor que dá acesso 
a um diretório ou ao diretório raiz de um servidor web.
 � Senha: a senha do usuário cadastrado no servidor.
 � Porta: é a liberação de acesso ou conexão. Para cada tipo de conexão 
pode ser usada uma porta. A porta padrão da web é a 21, mas ela pode 
ser parametrizada de maneira personalizada.
A Figura 3 apresenta o detalhe da parte superior do aplicativo FileZilla, 
contendo os campos a serem preenchidos com host, nome de usuário, senha 
e porta.
11Instalação de aplicações web
Figura 3. Detalhe do cliente FTP FileZilla.
Uma vez preenchidos os campos com os dados corretos, basta clicar no 
botão Conexão rápida ou na setinha ao lado dele para escolher outra opção, 
com alguma outra conta já utilizada. Estando conectado, basta utilizar a árvore 
de diretórios ao lado para acessar os arquivos locais e arrastar os arquivos para 
a aba ao lado, definindo onde ficarão os arquivos no servidor.
Com o FileZilla o processo é realmente simples. Você escolhe um arquivo 
ou pasta, arrasta para o lado servidor e, assim que o upload for concluído, o 
arquivo estará acessível no endereço o qual foi submetido — por exemplo, 
http:// 0.0.0.0/arquivos. Ao término do envio, ficarão listados os 
diretórios (pastas) e os arquivos enviados, à direita. O FileZilla mostra detalhes 
de log como tamanho do arquivo, tipo do arquivo, data de modificação, entre 
outros detalhes.
Com a aplicação devidamente configurada com banco de dados e outros 
detalhes necessários, ela estará disponível para ser acessada via browser, 
por exemplo, ou por outro meio. Após isso, caso necessite submeter alguma 
alteração da aplicação, basta conectar novamente e submeter o arquivo alterado 
ou o novo arquivo de código-fonte criado. O cliente FTP irá perguntar se você 
quer substituir o arquivo que já existe no servidor e seu arquivo ou aplicação 
estarão atualizados e/ou carregados no servidor ou máquina remota. Sim, o 
processo é realmente simples assim.
3 Cultura DevOps
Entregas contínuas e de qualidade com tempo de ciclo curto precisam de um 
alto grau de automação. Da necessidade de diminuir a distância entre equipe 
de desenvolvimento e equipe operacional surgiu a cultura DevOps. A escolha 
das ferramentas certas para o ambiente ou projeto é importante quando você 
muda para a cultura DevOps. 
Instalação de aplicações web12
Baseado em práticas enxutas e ágeis, o DevOps busca automação de pro-
cessos no desenvolvimento e fornecimento de software. É quase impossível 
descrever essa abordagem no estilo “receita de bolo”, mas, de modo geral, 
podemos dizer que essa metodologia acaba por beneficiar a maioria dos de-
senvolvedores com melhoria na conexão entre desenvolvedores e a parte 
operacional, antes mantidos isolados. Existem muitas ferramentas de DevOps 
que podem auxiliar no processo de implantação dessa cultura.
O termo DevOps vem da junção de Development (desenvolvimento) e Operations 
(operações). É uma derivação da engenharia de software moderna cuja função é 
realmente juntar essas duas atividades (FRUHLINGER, 2019). Um engenheiro DevOps 
é um profissional que entende todo o processo de desenvolvimento e seu ciclo de 
vida, aliado à experiência de operar e administrar o sistema. Na verdade, se você parar 
para analisar o início da prática de desenvolvimento web, os primeiros profissionais 
considerados “analistas” ou “desenvolvedores web” tinham essa prática atual, de dominar 
tanto a parte de codificação (de programação em si) quanto a de configuração e 
manutenção de uma aplicação em servidor web.
Segundo a AWS (2019e), há várias vantagens no uso da cultura DevOps 
no processo de implantação e deploy de aplicações web. Entre eles estão os 
seguintes:
 � Velocidade: operação em alta velocidade na inovação e entrega de 
novas funcionalidades de sistemas.
 � Entrega rápida: aumento da frequência e ritmo de novos lançamen-
tos, tanto para novas aplicações quanto para correções de problemas 
apresentados na execução da aplicação.
 � Confiabilidade: garante entregas mais rápidas e contínuas, gerando 
confiança e passando segurança ao usuário final.
 � Escalabilidade: a aplicação pode crescer sem que o serviço tenha que 
ficar indisponível, utilizando também a arquitetura por microsserviços.
 � Colaboração melhorada: equipes de desenvolvimento e operação 
trabalham mais próximas e de maneira colaborativa, compartilhando 
responsabilidades e combinando fluxos de trabalho.
13Instalação de aplicações web
 � Segurança: operando rapidamente e utilizando controles de versões, a 
cultura DevOps ajuda a manter uma aplicação sempre atualizada com 
o uso de técnicas que garantam o acesso contínuo por profissionais 
capacitados.
Ferramentas DevOps
Para uma boa prática DevOps, é altamente indicado o uso de ferramentas que 
auxiliem na produtividade da função. Existem algumas delas no mercado, 
que têm por objetivo eliminar algumas práticas mais trabalhosas, como a de 
configurações extensas de servidores, indo desde o cuidado com o sistema 
operacional, as variáveis de ambientes e os sistemas de arquivos até a confi-
guração de servidor web e de aplicação, banco de dados, entre outros.
Docker
Uma ferramenta bastante comum é o Docker. Ela é uma tecnologia que permite 
a criação de containers, em que o objetivo é você criar um container local, 
configurado com todas as variantes citadas anteriormente, que preparem um 
ambiente propício para a execução da aplicação criada (LOPES et al., 2019). 
Esse container pode ser criado em uma máquina ou servidor local e, após a 
criação da aplicação, ele pode ser submetido ao servidor web e ali será execu-
tado como um nó de um servidor, sem precisar de praticamente nenhuma outra 
configuração. Isso faz com que a aplicação web dentro do container funcione 
independentemente do sistema operacional do servidor web.
Jenkins
Segundo seu site oficial, o Jenkins é o principal servidor de automação de 
código aberto, que fornece centenas de plug-ins para dar suporte à constru-
ção, implantação e automação de qualquer projeto. (JENKINS, 2020). Com 
grande apelo de uso em projetos e utilizada por equipes que adotam a prática 
de entregas e integrações contínuas, esta ferramenta é capaz de automatizar 
processos repetitivos, sendo um apoio ao processo contínuo de atualizar e 
manter aplicações em ambiente web.
Instalação de aplicações web14
A documentação do Jenkins explica bem como integrar a ferramenta a 
uma aplicação de acordo com cada linguagem de programação. Na verdade, 
você pode utilizar ferramentas de cada linguagem para integrar o processo de 
entrega contínua do Jenkins. Com a ferramenta, o fluxo de entrega contínua 
mais básico terá, no mínimo, três estágios, que devem ser definidos em um 
arquivo Jenkins: compilar, testar e implantar. O último estágio, também cha-
mado de deploy,precisa ser devidamente precedido pelos estágios de compilar 
e testar, para garantir que a versão estável está sendo utilizada na atividade 
de implantação de uma aplicação.
Para utilizar o Jenkins como serviço não há maiores complicações. Basta 
baixar o instalador a partir do site oficial e ter como requisito básico pelo 
menos 512 MB de memória RAM e um espaço em disco de 10 GB (requisitos 
mínimos para a versão 1.4). 
O site oficial do Jenkins disponibiliza as opções de download e também uma documenta-
ção repleta de exemplos de uso. No link a seguir você encontra um tutorial passo a passo 
guiado que vai desde o download do Jenkins até as primeiras configurações de uso. 
https://jenkins.io
Diversas empresas, de todos os portes, utilizam o Jenkins como forma 
oficial de automatizar seu fluxo de entregas contínuas — desde gigantes como 
Microsoft, Red Hat, GitHub, Rackspace, até empresas locais de desenvolvi-
mento de sistemas e aplicações, principalmente sistemas para web.
Controle de logs
Uma tarefa importante no fluxo de trabalho DevOps é o controle de logs. Com 
um fluxo contínuo de atualizações e novas submissões de arquivos, vários logs 
são gerados e precisam ser mantidos para um controle inteiro do processo. 
Afinal, um log diz muito sobre o uso de um servidor, pois discrimina detalhes 
de trabalhos em um ambiente. Para o trabalho DevOps, algumas ferramentas 
são indicadas para esse controle, como as listadas a seguir:
15Instalação de aplicações web
 � Flume: ferramenta sob a licença da Fundação Apache. 
 � ELK: stack que inclui o uso das ferramentas Elasticsearch, Logstash 
e Kibana, todas pertencentes à empresa Elastic.
 � Fluentd: projeto de software criado pela empresa Treasure Data que, 
além de manipular logs, serve como um coletor de dados de modo geral, 
podendo ser utilizado para diversos fins.
AWS. O que significa distribuição contínua? [S. l.], 2019a. Disponível em: https://aws.
amazon.com/pt/devops/continuous-delivery/. Acesso em: 28 jan. 2020.
AWS. O que significa integração contínua? [S. l.], 2019b. Disponível em: https://aws.amazon.
com/pt/devops/continuous-integration/. Acesso em: 28 jan. 2020.
AWS. O que é o controle do código-fonte? [S. l.], 2019c. Disponível em: https://aws.amazon.
com/pt/devops/source-control/. Acesso em: 28 jan. 2020.
AWS. O que é o DevOps? [S. l.], 2019e. Disponível em: https://aws.amazon.com/pt/devops/
what-is-devops/. Acesso em: 28 jan. 2020.
AWS. What is Git? [S. l.], 2019d. Disponível em: https://aws.amazon.com/pt/devops/
source-control/git/. Acesso em: 28 jan. 2020.
COMER, D. E. Redes de computadores e internet. 6. ed. Porto Alegre: Bookman, 2016.
FRUHLINGER, J. O que é um engenheiro DevOps e como você pode se tornar um? [S. l.], 
2019. Disponível em: https://cio.com.br/o-que-e-um-engenheiro-devops-e-como-
-voce-pode-se-tornar-um/. Acesso em: 28 jan. 2020.
JENKINS. [S. l.], 2020. Disponível em: https://jenkins.io/. Acesso em: 28 jan. 2020.
LOPES, K. E. et al. O processo de deploy automático em ambientes de computação na 
nuvem: exemplo de utilização da plataforma Jenkins. Interface Tecnológica, v. 16, n. 1, 
p. 43–55, 2019. Disponível em: https://revista.fatectq.edu.br/index.php/interfacetec-
nologica/article/view/545/361. Acesso em: 28 jan. 2020. 
SATO, D. DevOps na prática: entrega de software confiável e automatizada. São Paulo: 
Casa do Código, 2013.
Instalação de aplicações web16
Os links para sites da web fornecidos neste capítulo foram todos testados, e seu fun-
cionamento foi comprovado no momento da publicação do material. No entanto, a 
rede é extremamente dinâmica; suas páginas estão constantemente mudando de 
local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade 
sobre qualidade, precisão ou integralidade das informações referidas em tais links.
17Instalação de aplicações web
Dica do Professor
A transferência de arquivos entre computadores é o que move a Web desde seu início. Foi 
exatamente para poder compartilhar arquivos e conhecimento que a World Wide Web surgiu e 
ganhou tanta força.
Protocolos como HTTP e FTP são os precursores de tudo isso, pois por meio deles é possível enviar 
dados, mídias digitais e arquivos de um dispositivo conectado a outro. Nesse processo, o protocolo 
FTP surgiu como um padrão para o envio de arquivos de computador a computador e também para 
servidores Web.
Nesta Dica do Professor, veja o processo de transferência de arquivos via FTP.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/61e3a928d42069fb2af329e62a3672b5
Exercícios
1) As aplicações Web já não são mais tão simples como no início. Com os recursos avançados a 
começar da evolução das próprias linguagens de programação, os requisitos de servidor de 
hospedagem aumentaram consideravelmente. A respeito das técnicas modernas para 
hospedagem de sites da Web, é correto afirmar:
A) DevOps é um sistema de arquivos distribuídos.
B) Entrega contínua é o envio de aplicações por FTP.
C) HTTP é o protocolo utilizado em aplicações para transferência padrão de arquivos.
D) Integração contínua e entrega contínua são técnias que trabalham em conjunto.
E) Um desenvolvedor Full Stack é um programador que também atua como DevOps.
2) Um projeto Web passa por diferentes fases, em que cada uma delas é o complemento da 
outra: da ideia inicial, passando por levantamento de requisitos, desenvolvimento, testes e a 
implantação do sistema em si no servidor Web. A fase final de instalação e implantação do 
sistema é conhecida por:
A) análise.
B) development.
C) DevOps.
D) branch.
E) deploy.
3) Entrega contínua é uma prática comum no desenvolvimento de sistemas Web e reconhecida 
como boa prática por acompanhar alterações de código automaticamente e verificar se 
estão prontos a serem submetidos ao ambiente de produção. Sobre os benefícios do uso 
dessa prática, está correto o que se afirma em:
A) Automatização do processo de bugs de uma aplicação.
B) Aumento da produtividade do usuário final.
C) Encontro e correções de deploys mais rapidamente.
D) Entrega de atualizações mais rapidamente.
E) Versionamento de código via FTP.
4) O versionamento de código via GIT é uma forma de gerenciar código-fonte ou arquivos de 
maneira a criar instâncias deles. Com esse sistema, é possível compartilhar arquivos entre 
vários autores e colaboradores sob a segurança de estar criando cópias de cada versão de 
arquivo. Sobre os benefícios de se utilizar o versionamento via GIT, analise as afirmações a 
seguir:
I. Acompanhamento do histórico de alterações do arquivo
II. Redundância e backup dos arquivos
III. Aumento na velocidade e na produtividade no desenvolvimento
IV. Menor acoplamento entre equipes de desenvolvimento e produção
Estão corretas as afirmativas:
A) I e II.
B) I e III.
C) I, II e III.
D) II, III e IV.
E) I, II e IV.
DevOps é uma cultura implementada em equipes de criação de aplicações cujo objetivo 
principal é trazer uma aproximação entre os times de desenvolvimento (programação) e 
produção (infra e manutenção de servidor e serviços). Com DevOps, o uso de algumas 
ferramentas traz mais agilidade ao processo de desenvolvimento, do projeto ao deploy. 
Sobre as ferramentas mais utilizadas, analise as afirmações a seguir:
I. Docker é uma plataforma para criação de containers.
II. Jenkins realiza a automatização de entregas e integrações contínuas.
5) 
III. Flume realiza um controle de repositórios GIT.
IV. ELK é uma ferramenta Apache para controle de versionamento de código.
Está correto o que se afirma em:
A) I e II.
B) II e III.
C) III e IV.
D) I, II e III.
E) II, III e IV.
Na prática
Uma empresa pode se tornar mais ágil com a adoção da cultura DevOps. Com as ferramentas e o 
uso correto de técnicas consagradas no mercado, além da formação e participação de 
colaboradores experientes, o processo de desenvolvimento e implantaçãode aplicações pode ser 
ainda mais aprimorado.
Conheça a história de Gabriel, um diretor de TI que teve o desafio de diminuir a distância entre 
suas equipes de desenvolvimento e operações em servidores.
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/dafa1847-876e-45a4-a30d-8d825f92d64d/5e3e50e3-5255-4a6f-8f3a-335c09e3c48d.jpg
 
Saiba mais
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Processo de conformidade arquitetural em integração contínua
Neste artigo, o autor apresenta as formas de acoplamento dentro de uma arquitetura Web com uso 
de testes, controle de versão e integração contínua de processos.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Sistema Gerenciador de Projetos Ágeis (SGPA)
Esta publicação trata do desenvolvimento de um sistema para uma empresa pública com o uso de 
técnicas de metodologias ágeis. O trabalho apresenta a implementação de um sistema utilizando 
SCRUM como metodologia de trabalho e desenvolvimento, partindo de aspectos técnicos como o 
levantamento de requisitos até a configuração e a instalação dos softwares.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
O processo de deploy automático em ambientes de computação 
na nuvem: exemplo de utilização da plataforma Jenkins
Este artigo relata as qualidades de se trabalhar com deploy (entregas) automáticas utilizando 
técnicas de DevOps e ferramentas para isso, como Docker e Jenkins.
http://professores.dcc.ufla.br/~terra/publications_files/students/2015_ufla_pinto.pdf
https://repositorio.uniceub.br/jspui/handle/235/6425
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://revista.fatectq.edu.br/index.php/interfacetecnologica/article/view/545/361

Mais conteúdos dessa disciplina