Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Indaial – 2020
Fundamentos ao 
Cloud Computing e 
deploy na nuvem
Prof. Airan Arinê Possamai
Prof. Marcio Poffo
Prof. Nader Ghoddosi
Prof.ª Neli Miglioli Sabadin
Prof. Pedro Sidnei Zanchett
Prof.ª Simone Erbs da Costa
1a Edição
Copyright © UNIASSELVI 2020
Elaboração:
Prof. Airan Arinê Possamai
Prof. Marcio Poffo
Prof. Nader Ghoddosi
Prof.ª Neli Miglioli Sabadin
Prof. Pedro Sidnei Zanchett
Prof.ª Simone Erbs da Costa
Revisão, Diagramação e Produção:
Centro Universitário Leonardo da Vinci – UNIASSELVI
Ficha catalográfica elaborada na fonte pela Biblioteca Dante Alighieri 
UNIASSELVI – Indaial.
Impresso por:
P856f
 Possamai, Airan Arinê
 Fundamentos ao cloud computing e deploy na nuvem. / Airan Arinê 
Possamai et.al. – Indaial: UNIASSELVI, 2020.
 227 p.; il.
 ISBN 978-65-5663-329-9
 ISBN Digital 978-65-5663-330-5
1. Computação em nuvem. – Brasil. I. Possamai, Airan Arinê. II. Poffo, 
Marcio. III. Ghoddosi, Nader. IV. Zanchett, Pedro Sidnei. V. Costa, Simone Erbs da. 
VI. Sabadin, Neli Miglioli. VII. Centro Universitário Leonardo Da Vinci.
CDD 006.78
apresentação
Atualmente, a computação em nuvem está sendo cada vez mais 
utilizada, sobretudo na prática conhecida como “sob demanda”, isto é, o 
pagamento pelo uso de recursos é realizado somente para a quantidade de 
recursos utilizada. Os serviços fornecidos, as APIs e os aplicativos que podem 
ser hospedados por estes provedores de nuvem substituíram a utilização de 
servidores locais, podendo ser citados os provedores comerciais Amazon e 
Google, dentro outros.
Neste sentido, existem três modelos de serviços baseados em nuvem, 
sendo um deles o Software as a Service (SaaS), em que o consumidor utiliza 
um aplicativo sem controle do sistema, hardware e infraestrutura de rede. 
Outro modelo é a Plataforma como Serviço (PaaS), no qual os usuários 
controlam os aplicativos, mas não controlam sistema operacional, hardware 
e infraestrutura de rede. E por fim, existe o modelo de Infraestrutura como 
Serviço (IaaS), em que o usuário acessa recursos de computação fundamentais, 
como CPU, memória, middleware e armazenamento, mas o consumidor não 
controla a infraestrutura de nuvem abaixo deles.
Existe também o conceito de nuvem chamado BaaS (Back-end as 
Service), o qual é ideal para abstrair algumas das tarefas repetitivas em 
aplicações, mobile ou web, como login e storage de arquivos, por exemplo, 
não se preocupando com a infraestrutura envolvida. Além disso, com 
a utilização deste modelo de serviço, se reduz os custos e se obtém a 
escalabilidade elástica.
Um dos conceitos de computação em nuvem é o serverless computing, 
ou computação sem servidores, também conhecida por Function as a Service 
(FaaS), em que o provedor de nuvem possui o gerenciamento completo do 
contêiner onde as funções são executadas, para atendimento às solicitações, e, 
com isso, a necessidade de executar sistemas pode ser extinguida, passando 
a execução baseada em eventos, aumentando a possibilidade de criação de 
aplicações escalonáveis.
Lembrando que estes tipos de serviços em nuvem são baseados na 
banda que um usuário possui de Internet e, portanto, bandas ruins significam 
que a utilização de recursos baseados em nuvem não é viável. Além disso, 
existe a questão de que usuários e organizações não se sentem confortáveis 
com o armazenamento de seus dados e aplicativos em uma infraestrutura 
que eles não controlam, sendo que a migração para uma infraestrutura 
compartilhada pode aumentar o potencial risco de acesso não autorizado, 
além de exposição de dados confidenciais. Neste sentido, sistemas 
baseados em nuvem precisam ser consistentes com relação à autenticação, 
o gerenciamento de identidade, conformidade e tecnologias relacionadas ao 
acesso, sendo estas imprescindíveis. 
A computação em nuvem possui uma das vantagens em diminuir 
o gasto de capital com compra de hardware e software, instalações e 
configurações em datacenters locais, eletricidade, além de especialistas de 
TI para o gerenciamento da infraestrutura. Além disso, dependendo modelo 
utilizado, normalmente o desenvolvedor não precisará se preocupar e ocupar 
seu tempo com configuração de infraestrutura para executar suas aplicações, 
reservando seu tempo unicamente com seu trabalho de desenvolvimento, 
melhorando com isso a produtividade. Outro benefício da computação 
em nuvem é a possibilidade de disponibilização de grandes quantidades 
de recursos de computação em minutos, muitas vezes com apenas alguns 
cliques, fornecendo flexibilidade e aliviando a pressão do planejamento de 
capacidade.
Neste sentido, existem vários modelos de serviços, cada um com 
suas características, vantagens e desvantagens, se tornando mais ou menos 
produtiva ou barata para uma determinada organização ou equipe.
Este livro fornece uma exploração de conceitos de computação em 
nuvem, como ela funciona, quais os tipos de serviços e plataformas, além 
do conceito serverless, containers e versionamento de deploy de aplicações 
para aprofundamento e entendimento de como se utilizar a computação em 
nuvem.
Bons estudos!
Prof. Airan Arinê Possamai.
Prof. Marcio Poffo.
Prof. Nader Ghoddosi.
Prof. Pedro Sidnei Zanchett.
Prof.ª Simone Erbs da Costa.
Você já me conhece das outras disciplinas? Não? É calouro? Enfim, tanto para 
você que está chegando agora à UNIASSELVI quanto para você que já é veterano, há novi-
dades em nosso material.
Na Educação a Distância, o livro impresso, entregue a todos os acadêmicos desde 2005, é 
o material base da disciplina. A partir de 2017, nossos livros estão de visual novo, com um 
formato mais prático, que cabe na bolsa e facilita a leitura. 
O conteúdo continua na íntegra, mas a estrutura interna foi aperfeiçoada com nova diagra-
mação no texto, aproveitando ao máximo o espaço da página, o que também contribui 
para diminuir a extração de árvores para produção de folhas de papel, por exemplo.
Assim, a UNIASSELVI, preocupando-se com o impacto de nossas ações sobre o ambiente, 
apresenta também este livro no formato digital. Assim, você, acadêmico, tem a possibilida-
de de estudá-lo com versatilidade nas telas do celular, tablet ou computador. 
 
Eu mesmo, UNI, ganhei um novo layout, você me verá frequentemente e surgirei para 
apresentar dicas de vídeos e outras fontes de conhecimento que complementam o assun-
to em questão. 
Todos esses ajustes foram pensados a partir de relatos que recebemos nas pesquisas 
institucionais sobre os materiais impressos, para que você, nossa maior prioridade, possa 
continuar seus estudos com um material de qualidade.
Aproveito o momento para convidá-lo para um bate-papo sobre o Exame Nacional de 
Desempenho de Estudantes – ENADE. 
 
Bons estudos!
NOTA
Olá, acadêmico! Iniciamos agora mais uma disciplina e com ela 
um novo conhecimento. 
Com o objetivo de enriquecer seu conhecimento, construímos, além do livro 
que está em suas mãos, uma rica trilha de aprendizagem, por meio dela você 
terá contato com o vídeo da disciplina, o objeto de aprendizagem, materiais complemen-
tares, entre outros, todos pensados e construídos na intenção de auxiliar seu crescimento.
Acesse o QR Code, que levará ao AVA, e veja as novidades que preparamos para seu estudo.
Conte conosco, estaremos juntos nesta caminhada!
LEMBRETE
sumário
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING .................................................... 1
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO ......................... 3
1 INTRODUÇÃO .................................................................................................................................... 3
2 CONCEITOS DE CLOUD COMPUTING ...................................................................................... 4
2.1 ELASTICIDADE .............................................................................................................................. 7
2.2 DISPONIBILIDADE .......................................................................................................................7
2.3 ESCALABILIDADE ........................................................................................................................ 7
3 A NUVEM E O COTIDIANO ............................................................................................................ 8
3.1 SERVIÇOS DE ARMAZENAMENTO ......................................................................................... 9
3.2 SERVIÇOS DE COMUNICAÇÃO .............................................................................................. 10
3.2.1 Plataforma como um serviço (PaaS) .................................................................................. 12
3.2.1 Software como um serviço (SaaS)...................................................................................... 12
3.3 SERVIÇOS DE TRANSMISSÃO AO VIVO ............................................................................... 13
3.4 DEMAIS EXEMPLOS NO COTIDIANO ................................................................................... 15
4 A NUVEM E BIG DATA ................................................................................................................... 16
5 INFRAESTRUTURA COMO UM SERVIÇO (IAAS) ................................................................. 18
5.1 PLATAFORMAS DE IAAS .......................................................................................................... 20
5.1.1 DigitalOcean ......................................................................................................................... 20
5.1.2 Linode .................................................................................................................................... 21
5.1.3 Rackspace .............................................................................................................................. 22
5.1.4 Amazon Web Services (AWS) ............................................................................................ 22
5.1.5 Cisco Metapod...................................................................................................................... 23
5.1.6 Microsoft Azure ................................................................................................................... 24
5.1.7 Google Compute Engine (GCE) ........................................................................................ 25
RESUMO DO TÓPICO 1..................................................................................................................... 26
AUTOATIVIDADE .............................................................................................................................. 27
TÓPICO 2 — SOFTWARE COMO SERVIÇO - SAAS .................................................................. 29
1 INTRODUÇÃO .................................................................................................................................. 29
2 CONCEITO DE SAAS ...................................................................................................................... 30
3 CARACTERÍSTICAS DO SAAS .................................................................................................... 33
4 APLICAÇÕES SAAS EM CENÁRIOS DE BIG DATA ............................................................... 35
5 PLATAFORMAS DE SAAS.............................................................................................................. 37
5.1 GOOGLE APPS ............................................................................................................................. 37
5.2 ONEDRIVE .................................................................................................................................... 38
5.3 DROPBOX ...................................................................................................................................... 39
5.4 SALESFORCE ................................................................................................................................ 40
5.5 CISCO WEBEX .............................................................................................................................. 40
5.6 CONCUR........................................................................................................................................ 41
5.7 GOTOMEETING ........................................................................................................................... 41
5.8 GOOGLE BIGQUERY ................................................................................................................. 42
5.9 O GOOGLE DRIVE ...................................................................................................................... 43
RESUMO DO TÓPICO 2..................................................................................................................... 44
AUTOATIVIDADE .............................................................................................................................. 46
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS ............................................................... 47
1 INTRODUÇÃO .................................................................................................................................. 47
2 CONCEITOS DE PAAS .................................................................................................................... 47
4 VANTAGENS E DESVANTAGENS DO USO DE PAAS .......................................................... 54
5 APLICAÇÕES PAAS EM CENÁRIOS DE BIG DATA ............................................................... 55
6 PLATAFORMAS DE PAAS .............................................................................................................. 57
6.1 AWS ELASTIC BEANSTALK .............................................................................................. 57
6.2 WINDOWS AZURE PLATFORM (WAP) .................................................................................. 58
6.3 HEROKU ........................................................................................................................................ 60
6.4 FORCE.COM ................................................................................................................................. 61
6.5 GOOGLE APP ENGINE .............................................................................................................. 62
6.6 APACHE STRATOS ...................................................................................................................... 63
6.7 OPENSHIFT ................................................................................................................................... 64
6.7.1 Red Hat OpenShift............................................................................................................... 65
6.8 IBM .................................................................................................................................................. 66
6.9 JELASTIC ....................................................................................................................................... 67
LEITURA COMPLEMENTAR ............................................................................................................ 68
RESUMO DO TÓPICO 3..................................................................................................................... 72
AUTOATIVIDADE .............................................................................................................................. 74
REFERÊNCIAS ...................................................................................................................................... 76
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO 
SERVIÇO (FAAS) .................................................................................................................................. 83
TÓPICO 1 — SERVERLESS .................................................................................................................85
1 INTRODUÇÃO .................................................................................................................................. 85
2 CONCEITOS DE SERVERLESS ...................................................................................................... 86
2.1 SERVERLESS COMO COMPUTAÇÃO ORIENTADA A EVENTOS .................................... 87
2.2 ESTRUTURA DA ARQUITETURA SERVERLESS ................................................................... 88
2.3 SERVERLESS: FUNÇÃO COMO UM SERVIÇO ..................................................................... 90
3 FUNÇÕES E OBJETIVOS ................................................................................................................ 90
4 SERVERLESS E CLOUD COMPUTING ......................................................................................... 92
4.1 PRINCIPAIS DIFERENÇAS ENTRE COMPUTAÇÃO SERVERLESS E CONSTRUIR A 
INFRAESTRUTURA DO ZERO .................................................................................................. 93
4.1.1 Desenvolvimento de aplicações......................................................................................... 93
4.1.2 Processos independentes .................................................................................................... 94
5 POR QUE USAR SERVERLESS ....................................................................................................... 97
5.1 DESENVOLVIMENTO E IMPLANTAÇÃO RÁPIDA............................................................. 97
5.2 BAIXO CUSTO .............................................................................................................................. 98
5.3 ESCALONABILIDADE SOB DEMANDA ................................................................................ 98
5.4 REDUZIR O TEMPO DE ATIVAÇÃO DA APLICAÇÃO ....................................................... 99
5.5 ALTA DISPONIBILIDADE DA APLICAÇÃO ......................................................................... 99
5.6 SEPARAÇÃO DE PREOCUPAÇÕES POR COMPONENTES ............................................... 99
RESUMO DO TÓPICO 1................................................................................................................... 100
AUTOATIVIDADE ............................................................................................................................ 102
TÓPICO 2 — BACK-END AS SERVICE - BAAS............................................................................ 105
1 INTRODUÇÃO ................................................................................................................................ 105
2 APLICAÇÕES ................................................................................................................................... 106
3 CONCEITOS DE BACK-END AS A SERVICE - BAAS ............................................................. 106
4 ARQUITETURA DE BAAS ............................................................................................................ 108
5 DIFERENÇA ENTRE FRONT-END E BACK-END .................................................................... 108
6 RAZÕES PARA USAR BAAS ........................................................................................................ 110
6.1 RAZÕES COMERCIAIS ............................................................................................................. 110
6.2 RAZÕES TÉCNICAS ................................................................................................................. 111
7 QUANDO UTILIZAR UM BAAS? ............................................................................................... 111
7.1 VANTAGENS DE UM BAAS .................................................................................................... 112
7.2 DESVANTAGENS DE UM BAAS ............................................................................................ 112
8 BAAS E SEUS RECURSOS ............................................................................................................ 113
8.1 IAAS X PAAS X BAAS ............................................................................................................... 113
8.1.1 Azure Mobile Apps ........................................................................................................... 115
8.1.2 Back4App ............................................................................................................................ 115
8.1.3 Firebase................................................................................................................................ 116
8.1.4 Parse ..................................................................................................................................... 116
8.1.5 CloudKit .............................................................................................................................. 117
8.1.6 Kinvey ................................................................................................................................. 117
8.1.7 AWS Ampify ....................................................................................................................... 118
8.1.8 Kii ......................................................................................................................................... 118
8.1.9 Kumulos .............................................................................................................................. 118
9 MERCADO ........................................................................................................................................ 119
RESUMO DO TÓPICO 2................................................................................................................... 120
AUTOATIVIDADE ............................................................................................................................ 121
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS) ..................................................................... 123
1 INTRODUÇÃO ................................................................................................................................ 123
2 CONCEITOS ..................................................................................................................................... 124
3 FUNÇÕES COMO SERVIÇO ........................................................................................................ 126
4 ESCALABILIDADE ......................................................................................................................... 128
5 SEGURANÇA ................................................................................................................................... 128
6 CUSTOS RELACIONADOS.......................................................................................................... 128
7 CASOS DE APLICAÇÕES ............................................................................................................. 129
8 APLICAÇÕES EM CENÁRIOS DE BIG DATA ......................................................................... 130
9 DESVANTAGENS ........................................................................................................................... 131
10 PLATAFORMAS DE FAAS .......................................................................................................... 131
10.1 AWS LAMBDA .......................................................................................................................... 131
10.2 GOOGLE CLOUD FUNCTIONS ............................................................................................. 136
10.3 MICROSOFT AZURE FUNCTIONS ...................................................................................... 140
10.4 IBM CLOUD FUNCTIONS ...................................................................................................... 142
LEITURA COMPLEMENTAR ..........................................................................................................145
RESUMO DO TÓPICO 3................................................................................................................... 147
AUTOATIVIDADE ............................................................................................................................ 149
REFERÊNCIAS .................................................................................................................................... 151
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO ................ 153
TÓPICO 1 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO .................... 155
1 INTRODUÇÃO ................................................................................................................................ 155
2 CONCEITOS ..................................................................................................................................... 155
2.1 INTRODUÇÃO AOS CONTÊINERES .................................................................................... 156
2.2 QUANDO USAR DOCKER ...................................................................................................... 158
3 TRABALHANDO COM OS CONTÊINERES ............................................................................ 159
RESUMO DO TÓPICO 1................................................................................................................... 172
AUTOATIVIDADE ............................................................................................................................ 173
TÓPICO 2 — CONTÊINER COMO SERVIÇO (CAAS) ............................................................. 175
1 INTRODUÇÃO ............................................................................................................................... 175
2 CONCEITOS .................................................................................................................................... 175
3 CASOS DE APLICAÇÕES ............................................................................................................ 178
4 O FUNCIONAMENTO ................................................................................................................. 178
5 DESVANTAGENS .......................................................................................................................... 180
6 PLATAFORMAS DE CAAS .......................................................................................................... 180
6.1 AMAZON EC2 CONTAINER SERVICE (ECS) ..................................................................... 181
6.2 GOOGLE CONTÊINER ENGINE (GKE) .............................................................................. 191
6.3 SERVIÇO DE CONTÊINER DO AZURE (ACS) .................................................................... 192
RESUMO DO TÓPICO 2................................................................................................................... 195
AUTOATIVIDADE ............................................................................................................................ 196
TÓPICO 3 — VERSIONAMENTO E DEPLOY EM NUVEM .................................................... 197
1 INTRODUÇÃO ................................................................................................................................ 197
2 CONCEITOS DE VERSIONAMENTO ....................................................................................... 197
2.1 O SISTEMA DISTRIBUÍDO GIT ............................................................................................... 202
2.2 FERRAMENTAS ......................................................................................................................... 206
3 CONCEITOS DE DEPLOY ............................................................................................................ 210
4 AUTOMAÇÃO DO DEPLOY EM NUVEM ............................................................................... 212
LEITURA COMPLEMENTAR .......................................................................................................... 214
RESUMO DO TÓPICO 3................................................................................................................... 222
AUTOATIVIDADE ............................................................................................................................ 223
REFERÊNCIAS .................................................................................................................................... 224
1
UNIDADE 1 — 
FUNDAMENTOS DE CLOUD 
COMPUTING
OBJETIVOS DE APRENDIZAGEM
PLANO DE ESTUDOS
A partir do estudo desta unidade, você deverá ser capaz de:
• conhecer os fundamentos de cloud computing;
• compreender e introduzir a computação em nuvem;
• conhecer exemplos de computação em nuvem no cotidiano;
• conhecer quais os principais recursos disponibilizados em nuvem;
• conhecer os três grandes modelos de serviços em nuvem.
Esta unidade está dividida em três tópicos. No decorrer da unidade, 
você encontrará autoatividades com o objetivo de reforçar o conteúdo 
apresentado.
TÓPICO 1 - INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
TÓPICO 2 - SOFTWARE COMO SERVIÇO – SAAS
TÓPICO 3 - PLATAFORMA COMO SERVIÇO – PAAS
Preparado para ampliar seus conhecimentos? Respire e vamos 
em frente! Procure um ambiente que facilite a concentração, assim absorverá 
melhor as informações.
CHAMADA
2
3
TÓPICO 1 — 
UNIDADE 1
INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
1 INTRODUÇÃO
Você que é profissional ou estudante de Tecnologia da Informação (TI) 
sabe que muitos termos da área foram muito instigados, sendo um deles o cloud 
computing, muito utilizado no mundo das corporações. Neste sentido, muitas 
empresas utilizam esta tecnologia, as quais percebem as vantagens que ela retorna.
Em agosto de 1962, foi publicado o artigo, um dos mais famosos, chamado 
On-line ManC-Computer Communication, no qual foi escrito um dos conceitos 
iniciais do futuro da internet, sendo descrito como pessoas podem interagir 
com computador para desenvolvimento de diversas tarefas (BAI, 2015). Ainda 
segundo Bai (2015), neste artigo foi descrito como compartilhar o armazenamento 
de dados e também como os computadores podem auxiliar as pessoas para o 
desenvolvimento de tarefas complicadas através de colaboração on-line.
O termo cloud computing está sendo analisado por executivos de 
Tecnologia de Informação, para que se tenha uma investigação desta tecnologia e 
de seus benefícios, dentre os quais a utilização de recursos ociosos de computadores 
sem a preocupação com investimentos em hardware (TAURION, 2009). Ainda 
segundo Taurion (2009), esta tecnologia está sendo estudada em vários artigos 
científicos, além de publicações e eventos da área, o que induz ser uma inovação 
com vantagens para as empresas.
Durante muitos anos, equipes de desenvolvimento de software, assim 
como administradores de redes de computadores, têm usado uma abstração de 
nuvem para representar detalhes a comunicação de mensagens enviadas entre 
computadores na internet (JAMSA, 2013). Esta abstração de nuvem foi expandida 
através da inclusão de utilização tanto física quanto virtual de processadores, 
discos rígidos, serviços de software e aplicações mobiles (JAMSA, 2013).
Aplicações baseadas em nuvem possuem novos recursos, os quais se pode 
pagar por uso de determinada velocidade de processador, quantidade de disco 
ou de memória RAM por exemplo, mas por outro lado, com recursos em nuvem, 
muitos são os desafios para a questão de segurança (JAMSA, 2013). Existem 
muitas definições diferentes para a computação em nuvem, sendo que muitas 
das definições não são claras, ressaltando que o termo nuvem se originou da área 
de telefonia (TAURION, 2009).
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
4
Neste sentido, o termo computação em nuvem surgiu da indústria de 
TI, na qual vários fornecedores de TI começaram a disponibilizar recursos de 
computação,como armazenamento e serviço de hospedagem de aplicações com 
alcance em todo o mundo (BUYYA; BROBERG; GOSCINSKI, 2011). Este tipo de 
computação em nuvem teve sua evolução com os data centers, nos quais eram 
disponibilizados serviços pela rede ou pela internet, cujos clientes poderiam 
pagar pela sua utilização, ou seja, a alocação de recurso é baseada na utilização do 
cliente (BUYYA; BROBERG; GOSCINSKI, 2011). Com isso, se um cliente precisar 
de 1 GB de armazenamento de dados, é o valor referente a este espaço que ele 
paga, ou se precisar de um servidor de hospedagem para um site, será pago ao 
data center apenas os recursos necessários que sejam suficientes para manter o 
site funcional.
Com a evolução destes serviços, a interoperabilidade e a usabilidade 
foi aumentando, e consequentemente o custo da computação em nuvem foi 
diminuindo (BUYYA; BROBERG; GOSCINSKI, 2011). Desenvolvedores mais 
avançados, fornecedores de recursos de TI e pesquisadores estão trabalhando para 
disseminar informações e conhecimentos a respeito das vantagens da utilização 
de recursos em nuvem (BUYYA; BROBERG; GOSCINSKI, 2011).
2 CONCEITOS DE CLOUD COMPUTING
Cloud computing, ou computação em nuvem, pode ser compreendido 
pelo armazenamento de dados, assim como seu acesso, além de permitir a 
disponibilização de serviços pela Internet a partir de um computador remoto, 
em vez do disco rígido de um computador local (CHANDRASEKARAN, 
2015). Segundo Chandrasekaran (2015), dentre as vantagens destes serviços 
remotos, podem ser citadas a escalabilidade e a elasticidade, por exemplo, 
sendo diferentes de uma simples máquina remota, e o termo nuvem, conforme 
entendido anteriormente, é uma metáfora utilizada na internet. Ainda segundo 
Chandrasekaran (2015), o armazenamento de dados em um disco rígido de um 
computador local é chamado de armazenamento local, assim como a execução de 
alguma aplicação, seja um programa ou um serviço, rodando em um computador 
local, o qual é denominado de computação local.
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
5
FIGURA 1 – EXEMPLO DE COMPUTAÇÃO EM NUVEM
FONTE: Chandrasekaran (2015, p. 11)
Com estas definições, é fácil compreender a diferença com a computação em 
nuvem, em que neste caso, é necessário acessar os dados ou executar uma aplicação 
ou serviço pela Internet, conforme ilustrado na Figura 1 (CHANDRASEKARAN, 
2015).
Ainda segundo Chandrasekaran (2015), o termo computação em nuvem 
foi originado do Instituto Nacional de Padrões e Tecnologia (NIST), que designa 
computação em nuvem como um modelo sob demanda para uso de recursos 
de computação configuráveis. Esta disponibilização de recursos computacionais, 
como servidores, armazenamento de dados, aplicações e serviços, podem ser 
rápida e facilmente liberados para os clientes, com pequeno esforço do provedor 
de serviços (CHANDRASEKARAN, 2015).
Computação em nuvem se refere a aplicações desenvolvidas e 
disponibilizadas como serviços por provedores em data centers, oferecendo 
diferentes modelos de serviços para usuários finais (PATHAN; MONOWAR; 
FADLULLAH, 2013). A computação em nuvem, por possuir uma infraestrutura 
expansível, isto é, se precisar de mais recursos, basta adicionar novos, permite 
a disponibilização de serviços de streaming de vídeo, podendo oferecer 
programações ao vivo (PATHAN; MONOWAR; FADLULLAH, 2013). 
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
6
Segundo Taurion (2009, p. 2), cloud computing, ou computação em 
nuvem, pode ser definido como “um conjunto de recursos como capacidade 
de processamento, armazenamento, conectividade, plataformas, aplicações e 
serviços disponibilizados na internet”. Neste sentido, computação em nuvem 
pode ser descrita como sendo a virtualização de um data center, pois os recursos 
de servidores são disponibilizados através da internet para os clientes (TAURION, 
2009).
Computação em nuvem foi criado para descrever a sofisticada 
tecnologia de serviços e recursos de computação sob demanda, os quais foram 
disponibilizados inicialmente por provedores comerciais como Microsoft, Google 
e Amazon (BUYYA; BROBERG; GOSCINSKI, 2011). Estes provedores comerciais, 
assim como muitos outros, possuem parques computacionais com milhares de 
máquinas, assim como vários data centers espalhados pelo mundo (TAURION, 
2009).
Segundo Taurion (2009), algumas das características principais da 
computação em nuvem são:
• a computação em nuvem pode criar ilusão de que os recursos em nuvem sejam 
infinitos;
• com a computação em nuvem, não é necessário adquirir recursos 
antecipadamente;
• a computação em nuvem permite que empresas usem apenas a quantidade de 
recursos necessários, podendo aumentar ou diminuir a quantidade;
• a computação em nuvem permite que se pague os serviços utilizados pelo que 
se utiliza.
De certa forma, pode ser considerado o retorno da centralização, pois 
computadores pessoais, neste cenário, podem ser utilizados apenas como 
forma de acesso a aplicações, serviços ou armazenamento de dados que rodam 
em servidores remotos (TAURION, 2009). Ainda segundo Taurion (2009), com 
a computação em nuvem, usuários que utilizam computadores pessoais com 
poucos recursos, podem ter acesso a ilimitados espaços de armazenamentos, 
em servidores remotos, ou ainda executar aplicações em servidores remotos que 
requisitam grande capacidade de processamento.
Serviços que rodam em nuvem podem ser chamados de Cloud Services, 
podendo pertencer a duas categorias: computação em nuvem (cloud computing) 
e armazenamento em nuvem (cloud storage) (BAI, 2015). Ainda segundo Bai (2015), 
a computação em nuvem possui algumas vantagens em relação à arquitetura 
local, as quais são: elasticidade, disponibilidade e escalabilidade.
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
7
2.1 ELASTICIDADE
A elasticidade significa o cliente de um serviço poder aumentar ou 
diminuir a demanda por um serviço, isto é, o cliente de um serviço pode, por 
exemplo, solicitar o aumento do espaço de armazenamento em nuvem, ou 
diminuir a capacidade de armazenamento (BAI, 2015). 
Outro exemplo para a elasticidade é um site que está hospedado em um 
servidor na nuvem, por um determinado período de tempo precisar rodar em 
mais servidores do que a quantidade normal, como por exemplo durante o Black 
Friday, para suportar a quantidade de usuários, mantendo uma resposta aceitável 
(BAI, 2015). Em um data center tradicional, esta característica de elasticidade é 
mais difícil, pois normalmente depende de aprovação, aquisição, instalação e 
testes de novos equipamentos de hardware, para permitir atender a demanda, 
havendo, normalmente, demora ou impossibilidade (BAI, 2015).
2.2 DISPONIBILIDADE
A característica disponibilidade é a possibilidade de usuários poderem 
acessar serviços hospedados na nuvem em qualquer momento (dia, hora) e de 
qualquer lugar do mundo, e estando os serviços disponíveis, significa que estes 
estão funcionando perfeitamente (BAI, 2015). Normalmente, serviços na nuvem 
possuem redundância de servidores além de backups, garantindo que se um 
servidor cair, outro pode assumir no lugar para manter os serviços em perfeito 
funcionamento (BAI, 2015).
2.3 ESCALABILIDADE
O termo escalabilidade pode ser compreendido em como um sistema 
suporta o aumento do número de usuários, mantendo a sua qualidade e eficiência, 
sendo que, neste caso, o aumento da capacidade de trabalho é o número que 
indica a quantidade (BAI, 2015). Em data centers tradicionais, a escalabilidade 
é alcançada melhorando os equipamentos de hardware, e uma situação para 
exemplificar, é um banco de dados estar com o uso de memória RAM no limite, e 
para resolver, basta adicionar mais memória, sendo conhecido por escalabilidade 
vertical (BAI, 2015). Escalabilidade vertical não possui limites, ao não ser alguns 
servidores físicos que possuem limites de memória RAM ou processadores, por 
exemplo, assim como máquinas virtuais também possuírem algumas limitações, 
mas geralmente, os provedoresde servidores em nuvem disponibilizam vários 
tamanhos ou configurações diferentes para que os clientes possam optar pelo 
mais adequado para seu uso (BAI, 2015).
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
8
Se a escalabilidade vertical não resolver alguma determinada demanda 
para um cliente, é possível aplicar outro tipo de escalabilidade, a horizontal (BAI, 
2015). A escalabilidade horizontal não altera as configurações dos servidores, mas 
ajusta a capacidade do sistema para permitir aumentar ou diminuir o número 
de servidores (BAI, 2015). Ainda segundo Bai (2015), a escalabilidade horizontal 
possui a vantagem de não limitar o espaço em disco de um servidor ou máquina 
virtual.
3 A NUVEM E O COTIDIANO
Além da Amazon e Google, as quais possuem vários data centers pelo 
mundo, disponibilizando inúmeros recursos computacionais, assim como a IBM, 
a qual também entra nessa lista de provedores de serviços em nuvem, sendo um 
exemplo o seu portal de inovação chamado de Technology Adoption Program (TAP) 
(TAURION, 2009). Este portal permite que softwares experimentais desenvolvidos 
pela IBM sejam analisados e testados por seus próprios funcionários, quanto ao 
quesito de qualidade, funcionalidade e desempenho, e, para que estes testes fossem 
possíveis rodando em computadores locais, seria necessário a implementação de 
uma infraestrutura para cada funcionário (TAURION, 2009). Neste sentido, com 
a computação em nuvem, a equipe responsável pelo software apenas configura os 
recursos necessários no servidor e, disponibiliza facilmente e em poucos minutos 
para os funcionários testarem (TAURION, 2009).
Outro exemplo de computação em nuvem foi uma incubadora de software 
criada na cidade de Wuxi, na China, tendo em vista que empresas incubadas não 
possuem muitos recursos financeiros, foi criada uma estrutura em nuvem para 
alocação de recursos conforme a necessidade (TAURION, 2009). Neste sentido, a 
computação em nuvem permite que se ocorrer uma alta demanda por recursos 
computacionais, basta alocar mais recursos, e, se a demanda diminuir, basta 
liberar estes recursos ociosos (TAURION, 2009).
Ao invés de uma empresa perder tempo e recursos para montar um 
data center físico, ou ampliar seus recursos, como incluir mais espaço de 
armazenamento, por exemplo, com a computação em nuvem basta acessar o site 
de um provedor de serviços em nuvem e pagar pela ampliação dos recursos, o que 
pode estar disponível em poucos minutos (TAURION, 2009). Com isso, segundo 
Taurion (2009), a empresa não precisa alocar funcionários para a montagem de 
hardware, instalação de software, além de pagar por estes três recursos, fora a 
economia em energia elétrica.
Outra vantagem da computação em nuvem é a questão das evoluções 
tecnológicas, em que equipamentos que são deteriorados com o tempo e precisam 
ser substituídos, ou mesmo uma nova necessidade em que se necessite de um 
determinado hardware mais moderno, em que neste modelo, a organização ou 
empresa não permanece refém dos equipamentos que possui no data center 
físico, podendo apenas alocar o recurso desejado (TAURION, 2009).
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
9
3.1 SERVIÇOS DE ARMAZENAMENTO
Um dos tipos de virtualização é a utilizada para armazenamento de 
dados, na qual inúmeros discos rígidos físicos podem ser combinados, formando 
um único sistema de armazenamento virtualizado, podendo aumentar a 
capacidade ou até a velocidade de gravação (CHANDRASEKARAN, 2015). 
Este tipo de virtualização, chamado de armazenamento em nuvem, pode ser 
concebido pelo armazenamento privado, disponibilizado o serviço por uma 
empresa, ou ainda por armazenamento público, como o DropBox, por exemplo, 
em que o armazenamento ocorre fora da empresa, mas também pode ser uma 
abordagem mista, isto é, privado e público (CHANDRASEKARAN, 2015). 
Ainda segundo Chandrasekaran (2015), na virtualização de armazenamento, os 
discos utilizados no armazenamento físico são considerados como uma única 
mídia de armazenamento virtual, sendo que este conceito de virtualização de 
armazenamento é preparado com técnicas de armazenamento como Storage Area 
Network (SAN) e Network Attached Storage (NAS).
O termo SAN (Storage Area Network) pode ser melhor compreendido em 
http://www.infortrendbrasil.com.br/storage-san/ e em http://www.infortrendbrasil.com.
br/dicas/diferencas-entre-nas-das-e-san/, assim como o termo NAS (Network Attached 
Storage).
NOTA
A virtualização de data centers permite um caminho para reduzir o uso 
ineficiente de recursos de computação, assim como a redução de energia elétrica, 
sabendo que um data center físico de uma organização atende a somente esta, e um 
data center virtual pode atender a várias organizações ou clientes (FAYNBERG; 
LU; SKULER, 2016). É possível que uma organização tenha um data center 
virtual, terceirizado e um outro data center físico, sendo os dois unidos por uma 
rede virtual privada (FAYNBERG; LU; SKULER, 2016).
Uma das principais necessidades de um data center é o uso para 
armazenamento de dados, sendo que o tráfego na rede deve ter um bom 
desempenho para evitar que sistemas se tornem lentos (FAYNBERG; LU; 
SKULER, 2016).
Com máquinas virtuais é possível realizar a alocação e desalocação fácil e 
rápida, o que permite alocação eficiente de recursos de computação, mas muitos 
processamentos executados nestes servidores podem gerar dados, os quais devem 
ser armazenados (SULLIVAN, 2010). Gerar dados localmente em um servidor 
que realizou o processamento pode ser útil quando os dados são temporários, 
http://www.infortrendbrasil.com.br/storage-san/
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
10
porém se o servidor for desalocado, estes dados serão perdidos, e é por este 
motivo que o armazenamento em nuvem é útil (SULLIVAN, 2010). Através do 
armazenamento em nuvem, os dados antigos, assim como os novos, gerados 
recentemente, são armazenados de forma que possam ser disponibilizados em 
qualquer servidor em nuvem, levando em consideração restrições de controle 
de acesso (SULLIVAN, 2010). Com o provisionamento rápido de hardware e a 
utilização de armazenamento em nuvem, consequentemente é desencadeada a 
escalabilidade massiva (SULLIVAN, 2010).
Com o acesso à internet disponibilizado cada vez para mais pessoas, o 
número de usuários e dispositivos conectados na grande rede está crescendo e, 
consequentemente, a quantidade de dados trafegada e armazenada também está 
aumentando (FAYNBERG; LU; SKULER, 2016). Segundo Faynberg, Lu e Skuler 
(2016), diariamente são trafegados mais de 1 exabyte de dados e, em 2011, mais 
de 1.8 exabyte de dados foram criados no mundo, e como a quantidade de dados 
está crescendo rapidamente, o armazenamento em nuvem deve avançar para 
suprir estas necessidades.
3.2 SERVIÇOS DE COMUNICAÇÃO
A Web 2.0 permitiu que simples usuários da internet realizassem 
publicações sem a utilização de HTML, diretamente, sendo que ferramentas ou 
aplicações permitiram esta funcionalidade (JAMSA, 2013). 
FIGURA 2 – FERRAMENTAS DA WEB 2.0
FONTE: Jamsa (2013, p. 4)
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
11
A Figura 2 apresenta algumas das ferramentas que permitem usuários 
publicarem diretamente os conteúdos em nuvem, as quais estão descritas a 
seguir, conforme Jamsa (2013):
• Blog: permite usuário publicar conteúdo na web.
• Wiki: aplicação web que permite usuários colaborarem com o compartilhamento 
de documentos e assuntos.
• Twitter: um mini blog que permite usuários enviarem mensagens para os seus 
seguidores.
• Facebook: rede social que permite usuários postarem textos, fotos, vídeos.
• Youtube: site que permite usuários realizarem upload de vídeos, sendo 
compartilhados com outros usuários da rede.
As aplicações baseadas em nuvem disponibilizam aos usuários uma 
variedade de soluções, sendo que para análise e descrição destas aplicações, 
normalmente são utilizadas referências pelo seu modelo de implantação e 
modelos de serviço, conforme Figura 3 (JAMSA,2013).
FIGURA 3 – MODELOS DE IMPLANTAÇÃO E SERVIÇOS DA NUVEM
FONTE: Buyya, Broberg e Goscinski (2011, p. 14)
Um modelo de implementação define como serviços são compartilhados 
em nuvem, e a interação de clientes (usuários e sistemas) pode ocorrer por 
diversas formas diferentes, como pelas chamadas de serviços, por exemplo 
(JAMSA, 2013). Conforme Jamsa (2013), os serviços da web podem ser divididos 
em até três grandes modelos ou tipos, sendo:
• Software as a Service (SaaS): plataforma de aplicação com interface para o 
usuário, como redes sociais, por exemplo.
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
12
• Platform as a Service (PaaS): plataforma com a qual desenvolvedores podem 
implementar suas aplicações, como linguagens de programação, hardware 
(servidores, discos), sistema operacional, ferramentas de desenvolvimento etc.
• Infraesrtucture as a Service (IaaS): fornecimento de computadores servidores, 
armazenamento de dados, Firewall, recursos de internet, entre outros.
Os modelos SaaS e PaaS são brevemente introduzidos nos dois subtópicos 
a seguir, cujo estudo é mais aprofundado nos tópicos seguintes deste livro. O 
modelo IaaS está descrito na seção 5 deste tópico.
3.2.1 Software como um serviço (SaaS)
Normalmente, o SaaS (Software as a Service) é baseado em uma aplicação 
para a qual o usuário terá acesso, e é necessária a utilização de um navegador 
de internet, sendo que a aplicação é hospedada em nuvem (JAMSA, 2013). 
Neste modelo, a vantagem é o usuário necessitar apenas de um dispositivo com 
acesso à internet e um navegador de internet (browser), porém, a desvantagem 
é a percepção do usuário quanto a segurança, pois os dados da empresa são 
armazenados em nuvem (JAMSA, 2013).
FIGURA 4 – EXEMPLO DO MODELO SAAS
FONTE: Jamsa (2013, p. 7)
3.2.2 Plataforma como um serviço (PaaS)
O modelo de plataforma como serviço, ou PaaS (Platform as a Service), 
fornece recursos de hardware, podendo ser servidor físico ou virtual (VMs), 
sistemas operacionais, ferramentas para bancos de dados, assim como 
ferramentas de desenvolvimento e recursos de internet, tudo para permitir que 
desenvolvedores implantem suas soluções (JAMSA, 2013). Ainda segundo Jamsa 
(2013), estes recursos do PaaS, são gerenciados pelo provedor da plataforma, 
e desenvolvedores não precisam se preocupar com estes recursos, como 
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
13
atualizações do sistema operacional, por exemplo, mas sim, focar no seu trabalho 
de desenvolvimento. A Figura 5 apresenta um exemplo do PaaS, na qual é possível 
analisar dois computadores usuários acessando serviços em nuvem.
FIGURA 5 – EXEMPLO DO MODELO PAAS
FONTE: Jamsa (2013, p. 7)
3.3 SERVIÇOS DE TRANSMISSÃO AO VIVO
Streaming pode ser compreendido por ser um modo de transmissão de 
vídeo contínuo, enviando dados do provedor (fonte) diretamente para o receptor, 
assistindo o vídeo em tempo de execução, porém, a ação de um cliente baixar 
(download) um arquivo de vídeo para depois assistir, não é streaming, sendo 
conhecida por mídia não streaming (KANNAN et al., 2016). Neste sentido, televisão 
ou rádio pertencem a categoria streaming e Compact Discs (CDs) pertencem à 
categoria mídia não streaming ou non-streaming (KANNAN et al., 2016). No início 
dos anos 1990, o streaming existia, porém, era muito lento devido ao buffer, isto 
é, o vídeo iniciava e então logo parava para carregar mais uma parte do vídeo 
(buffering), tornando monótono para o cliente (KANNAN et al., 2016). Todavia, 
com o passar dos anos, e principalmente nos dias atuais, com a evolução dos 
equipamentos de hardware, com recursos cada vez melhores, além da banda 
de internet e com o aumento da capacidade de armazenamento, inclusive em 
nuvem, o streaming se tornou muito utilizado (KANNAN et al., 2016).
O conceito de streaming é velho e pode ser exemplificado quando uma 
pessoa fala algo e o som é transportado até o ouvido de outra pessoa, e a partir 
daqui o cérebro decodifica a mensagem para ser compreendida (KANNAN et al., 
2016). Este exemplo é parecido com o que ocorre com televisão ou rádio, situação 
em que o sinal é enviado por cabo, antena ou satélite para o receptor, o qual 
decodifica os sinais elétricos em pixels de imagens ou ondas sonoras, conforme 
ilustrado na Figura 6 (KANNAN et al., 2016).
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
14
FIGURA 6 – ARQUITETURA DE STREAMING DO SERVIDOR PARA O CLIENTE
FONTE: Kannan et al. (2016, p. 75)
Vídeo pode ser compreendido por uma fita de imagens fixas que são 
apresentadas uma após a outra e FPS (Frame Per Second), sendo a quantidade de 
frames que um reprodutor de vídeo possui de capacidade para apresentar um após 
o outro (KANNAN et al., 2016). Neste sentido, com FPS mais baixo, a quantidade 
de dados necessária para rodar um vídeo é menor, mas o vídeo terá uma qualidade 
menor, sendo que um projeto utiliza entre 24 até 48 FPS para exibição de filmes 
em cinemas (KANNAN et al., 2016). Existe o software conhecido por codec, 
utilizado para comprimir o tamanho de vídeos, isto é, diminui a resolução de um 
vídeo, evitando dados desnecessários reduzindo consequentemente o tráfego de 
vídeos pela rede (KANNAN et al., 2016). A transferência de dados por streaming 
necessita que dados sejam rapidamente enviados e na ordem correta, sendo que 
protocolos especiais como o RTSP (Real-Time Streaming Protocol), RTP (Real-Time 
Transfer Protocol) e o RTCP (Real-Time Transport Control Protocol) (KANNAN et 
al., 2016). Ainda segundo Kannan et al. (2016), estes três protocolos trabalham em 
conjunto com TCP/IP, o qual converte os grandes arquivos de dados em pacotes 
enviando-os para rotas da rede (KANNAN et al., 2016).
A arquitetura Peer-to-Peer (P2P) streaming tem sido muito utilizada para 
distribuir conteúdo multimídia ao vivo para inúmeros usuários da internet, 
permitindo a visualização a qualquer momento (KANNAN et al., 2016). Alguns 
serviços de streaming de vídeo integram os benefícios da tecnologia P2P e 
de computação em nuvem (PATHAN; MONOWAR; FADLULLAH, 2013). A 
arquitetura cloud-P2P pode ser analisada na Figura 6, pela qual pode ser notada 
uma nuvem que possui servidores que disponibilizam streaming de vídeo como 
multimídia, em que os clientes são identificados por C1, C2, C3 e C4, sendo o 
primeiro nível (PATHAN; MONOWAR; FADLULLAH, 2013). O alto nível de 
clientes é composto pelos identificadores HP11, HP12, HP21, HP31, HP32 e HP41, 
os quais podem ter contato com o primeiro ou com o alto nível de clientes, mas 
não conseguem contato diretamente com o provedor de streaming (PATHAN; 
MONOWAR; FADLULLAH, 2013). Os primeiros níveis de clientes escolhem 
um dos três serviços de pacotes disponibilizados, sendo que cada um possui um 
preço, atribuído dependendo da banda de velocidade por exemplo (PATHAN; 
MONOWAR; FADLULLAH, 2013). Os clientes de alto nível que quiserem oferecer 
seus serviços grátis, podem se conectar através dos pontos (P111, P112, P121, 
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
15
P122, P212 etc.). Resumindo, a rede de streaming em nuvem é organizada em 
uma estrutura de camadas, em que o provedor de serviço possui o gerenciamento 
centralizado do contrato de políticas de uso dos serviços (PATHAN; MONOWAR; 
FADLULLAH, 2013).
FIGURA 6 – ARQUITETURA CLOUD-P2P
FONTE: Pathan, Monowar e Fadlullah (2013, p. 83)
Existe também o serviço chamado de OTT (Over-The-Top), outro tipo 
de transmissão ao vivo, no qual emissoras de televisão utilizam o serviço de 
transmissão de seus programas ao vivo pela internet, (FONSECA; BOUTABA, 
2015). Este serviço de compartilhamento de dados de imagens de televisão 
possibilita atingir uma grande parcela da população que utiliza mais a internet 
para uma infinidade de atividades, incluindo assistir jornais, filmes, séries, entre 
outros (FONSECA; BOUTABA, 2015). Uma consequência do serviço de OTT TV 
é qualquer pessoa pode se tornar um provedor de televisão pela internet, isto é, 
usuários de internet podem se tornargrandes fontes de informação, e uma das 
ferramentas que possibilitam isso é o Youtube (FONSECA; BOUTABA, 2015).
3.4 DEMAIS EXEMPLOS NO COTIDIANO
Máquina virtual pode ser compreendida por ser um programa que 
permite rodar outro sistema operacional dentro dele e, este programa roda dentro 
do sistema operacional principal do computador, isto é, dentro de um software 
específico de virtualização é possível instalar um outro sistema operacional 
(KANNAN et al., 2016). Isso pode ser útil na situação em que se necessite instalar 
um software incompatível com o sistema operacional instalado no computador. 
Por exemplo, o sistema operacional principal do computador ser Linux e houver 
a necessidade de utilizar o Microsoft Office, situação na qual pode ser instalado o 
sistema operacional Windows na máquina virtual para então instalar o Microsoft 
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
16
Office (KANNAN et al., 2016). Ainda segundo Kannan et al. (2016), com máquina 
virtual, os recursos de hardware são compartilhados entre o sistema operacional 
do computador e com o sistema operacional da máquina virtual.
Na computação em nuvem, uma das principais tecnologias emergindo 
é a virtualização, a qual auxilia na criação de um ambiente em nuvem, onde os 
recursos são otimizados através do compartilhamento (CHANDRASEKARAN, 
2015). Neste sentido, a virtualização permite que a infraestrutura física de um 
servidor (provedor de serviços) seja compartilhada entre diferentes clientes, 
evitando ociosidade e ampliando o uso de recursos, o que retorna com mais 
eficiência os investimentos realizados (ROI) (CHANDRASEKARAN, 2015). 
No entanto, como nem todo sistema seja infalível, a virtualização possui a 
desvantagem de ter um ponto de falha do software, o que pode atingir toda 
a virtualização e, consequentemente, afetando aos clientes, isto é, se uma 
virtualização disponibiliza algum serviço para vários clientes, e nesta máquina 
ocorrer falha, afetará a todos (CHANDRASEKARAN, 2015).
Um exemplo para a nuvem é o Microsoft Azure, mais detalhado ainda 
neste tópico, o qual pode ser descrito como um ambiente de desenvolvimento e 
também servidor de hospedagem para soluções SaaS, sendo confiável e flexível, 
sendo que este ambiente possui três níveis: IaaS, PaaS e o SaaS (BAI, 2015).
Outro exemplo é o Google Cloud Platform, o qual permite que 
desenvolvedores implementem aplicativos em sua infraestrutura escalável e 
confiável, sendo suas infraestruturas de software o MapReduce, BigTable e 
Dremel, inovações para desenvolvimento industrial (CHANDRASEKARAN, 
2015). Uma das características do Google Cloud Platform são suas máquinas 
virtuais, seu armazenamento em bloco, armazenamento de dados NoSQL além de 
análise de Big Data, fornecendo uma variedade de serviços de armazenamento e 
permitindo fácil manutenção e rápido acesso aos dados (CHANDRASEKARAN, 
2015).
4 A NUVEM E BIG DATA
O armazenamento de dados em nuvem permite realizar a análise de 
dados, processo de análise de dados brutos ou não processados que permite obter 
conclusões, o qual pode realizado em nuvem pública ou privada, cujo resultado 
pode ser um ou vários valores ou ainda um gráfico (CHANDRASEKARAN, 2015). 
Esta técnica de obtenção de resultados está sendo utilizada por pesquisadores de 
todo o mundo, que com base em seus resultados, são tomadas decisões importantes 
para os negócios de organizações (CHANDRASEKARAN, 2015). Neste sentido, 
se uma análise destas é realizada com grande quantidade de dados, terabytes ou 
petabytes por exemplo, chamada de análise de Big Data, termo recente utilizado 
na computação, sendo que um exemplo de onde pode ser gerada essa enorme 
quantidade de dados é a internet (CHANDRASEKARAN, 2015).
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
17
Para exemplificar o uso de Big Data na internet, pode ser tomado como 
exemplo uma rede social, em que o administrador deste site deseja saber algo 
de um usuário, como o tipo de postagem que ele mais possui interesse, e para 
chegar a essa informação, pode ser realizada análise de todos os dados deste 
usuário. Outro exemplo é uma companhia de seguros, a qual deseja fazer um 
ranking dos melhores clientes no sentido de bons pagadores, se baseando em seus 
pagamentos mensais, podendo chegar a esse resultado fazendo uso de análise de 
dados (CHANDRASEKARAN, 2015).
As vantagens da computação em nuvem, como popularidade, 
disponibilidade e escalabilidade sem limites, com uma estrutura robusta com 
várias camadas, têm levado a utilização do serviço de armazenamento na nuvem 
para o Big Data (MISTRIK et al., 2017). 
Armazenar Big Data em nuvem pública é mais econômico, existindo uma 
enorme redução de recursos financeiros tanto através da infraestrutura física 
quanto na questão do gerenciamento de sistemas (KAVIS, 2014). Neste sentido, 
o armazenamento tradicional (físico) envolve vários recursos de infraestrutura e 
de software, como dispositivos em fita ou disco para realizar backups, podendo 
haver vários tipos de mídia para armazenamento, assim como outros serviços que 
complementam o uso em data center físico (KAVIS, 2014). Com o armazenamento 
em nuvem, as empresas podem eliminar o data center físico e partir para o 
armazenamento em nuvem, os quais podem ser automatizados através da 
utilização de scripts, cujo custo é muito mais barato que o armazenamento físico, 
além dos processos de recuperação de dados serem mais fáceis (KAVIS, 2014).
Para a análise de terabytes ou petabytes de dados, isto é, Big Data, é necessário 
alto poder de processamento e memória, com recursos pesados em back-end, sendo 
que isso custa muito caro para as empresas ou organizações, podendo ser um 
grande problema para organizações que não possuem recursos financeiros para 
isso (KAVIS, 2014). Nesse caso, a solução é o aluguel dos recursos necessários, o 
que pode ser exemplificado pelo Large Hadron Collider (LHC), o qual registrava 
petabytes de dados semanalmente e havia a necessidade de processa-los, sendo que 
os cientistas não possuíam seus próprios recursos (CHANDRASEKARAN, 2015). 
Foi utilizado o modelo de computação em grade, a qual pode ser entendida por 
ser uma das tecnologias que permite o usuário utilizar recursos de computação 
pagando por eles, tecnologia direcionada principalmente para aplicações 
científicas com Big Data, usando em áreas de astronomia, física, bioinformática, 
entre outros (CHANDRASEKARAN, 2015).
A diferença entre computação em grade e em nuvem é os serviços em 
nuvem serem divididos em vários tipos, sendo os dois principais os privados e 
os públicos, conforme já mencionado (CHANDRASEKARAN, 2015). A nuvem 
pública possui a característica de oferecer serviços para usuários em todo o 
mundo, enquanto que a nuvem privada é considerada restrita e pode apenas 
ser utilizada por uma organização ou indivíduo (CHANDRASEKARAN, 2015). 
Neste sentido, análise em nuvem é o termo utilizado para definir a nuvem 
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
18
pública ou privada, sendo utilizada para análise de dados e possui a vantagem 
em relação à plataforma de grade, de qualquer pessoa no mundo poder utilizar 
essa plataforma para realizar análises de dados (CHANDRASEKARAN, 2015).
Com estes serviços de análise de Big Data em nuvem pública ou privada, 
não é necessário comprar nenhum recurso de computação, permitindo que apenas 
se aloque quando e o quanto for necessário de recursos (KAVIS, 2014). Segundo 
Chandrasekaran (2015), a análise em nuvem permite que ao invés de utilizar 
recursos de processamento diretamente, seja possível utilizar os aplicativos 
em nuvem projetados especificamente para análise de Big Data, criados pelo 
provedor, sendo este modelo chamado SaaS. A Figura 8 apresenta a classificação 
da análise em nuvem. 
FIGURA 8 – ANÁLISE EM NUVEM
FONTE: Chandrasekaran (2015, p. 366)
5 INFRAESTRUTURA COMO UM SERVIÇO (IAAS)
A infraestrutura como serviço (IaaS) fornece data center em nuvem, como 
servidores físicos e virtualizados,armazenamento de dados em nuvem, os quais 
podem ser acessados de qualquer local (JAMSA, 2013). Neste modelo de serviço, 
desenvolvedores precisam instalar sistema operacional, sistema gerenciador 
de banco de dados e os softwares necessários, e então, os desenvolvedores, ou 
administradores, precisam gerenciar o hardware e o software (JAMSA, 2013).
A Figura 9 apresenta um exemplo do modelo IaaS, o que também pode 
ser exemplificado pelo Amazon Elastic Compute Cloud (Amazon EC2).
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
19
FIGURA 9 – EXEMPLO DO MODELO IAAS
FONTE: Jamsa (2013, p. 8)
O Instituto Nacional de Padrões e Tecnologia (NIST - National Institute of 
Standards and Technology) define IaaS como sendo o fornecimento de processamento, 
armazenamento, redes e outros recursos de computação para o consumidor poder 
implantar e executar operações de sistemas ou executar aplicações (VACCA, 
2017). Neste caso, o consumidor não controla a infraestrutura da nuvem, mas 
possui controle de sistemas operacionais, do armazenamento e de aplicativos 
implantados e, em alguns casos, possui certos controles de componentes de rede, 
como firewall, por exemplo (VACCA, 2017). 
A CSA (Cloud Security Alliance) ou Aliança de Segurança em Nuvem 
pode ser compreendida por ser uma organização que se remete a padrões 
de segurança na nuvem e define que o IaaS disponibilize infraestrutura de 
computador como um serviço, como ambiente de virtualização, por exemplo, 
assim como armazenamento e rede (VACCA, 2017). Neste sentido, ao invés de 
comprar servidores, software, espaço para armazenamento em data center ou 
equipamentos de rede, é mais vantajoso para o cliente adquirir estes recursos 
como um serviço terceirizado (VACCA, 2017).
Através do IaaS, muitos dos recursos que são necessários em um data 
center físico para tarefas de gerenciamento e manutenção, assim como para 
infraestrutura física de servidores, como discos de armazenamento, manutenção 
de rede, entre outros, não são necessários na nuvem (VACCA, 2017). Todos os 
recursos disponibilizados na nuvem são disponibilizados como uma coleção 
de serviços, os quais podem ser acessados inclusive através de automatização, 
com scripts ou ainda a partir de aplicações de web services (VACCA, 2017). Neste 
sentido, os desenvolvedores possuem a tarefa de implementar os aplicativos 
necessários, assim como os administradores precisam realizar a instalação 
e gerenciamento de aplicações utilizadas de terceiros, e com isso não existe 
mais o ciclo de compra de hardware, em que teria que realizar a solicitação de 
compra, aguardar a chegada dos equipamentos, e então o trabalho de instalação 
e configuração (VACCA, 2017). 
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
20
Utilizando o modelo IaaS, toda a infraestrutura virtual necessária sob 
demanda pode ser disponibilizada em minutos, através da chamada de uma 
API (Application Programming Interface) ou ainda acessando um console de 
gerenciamento, cujo custo pode ser medido e é apenas aplicado se recursos 
estiverem sendo utilizados (VACCA, 2017). Com estas explicações, se pode dizer 
que o IaaS oferece recursos de data center virtual para atender a necessidades 
de consumidores, os quais podem se concentrar mais no desenvolvimento 
e gerenciamento de aplicativos e menos no gerenciamento de recursos de 
infraestrutura (JAMSA, 2013).
Agora que você compreendeu o que é o IaaS, você pode avançar o estudo 
conhecendo alguns dos vários fornecedores de IaaS existentes no mercado. Um 
deles é o provedor de serviços em nuvem Amazon Web Services (AWS), assim 
como o Rackspace e GoGrid que também são pioneiros neste segmento. Outro 
fornecedor é o OpenStack, o qual é um projeto de código aberto que fornece 
recursos de IaaS para consumidores que desejam construir seu próprio IaaS com 
recursos internos, chamados de nuvem privada (VACCA, 2017).
5.1 PLATAFORMAS DE IAAS
Existem vários e grandes provedores de serviços no mercado de tecnologia, 
sendo que muitos deles oferecem serviços de infraestrutura em nuvem. Como 
existem vários destes provedores de serviços IaaS, focaremos em alguns dos mais 
utilizados, os quais estão descritos a seguir. 
5.1.1 DigitalOcean
DigitalOcean é um provedor de serviços de computação em nuvem que 
obteve uma reputação positiva de muitas comunidades de desenvolvimento de 
software por ser rápido, confiável, além de ter um preço acessível para instâncias 
de máquinas virtuais (THOMPSON, 2015).
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
21
FIGURA 10 – CONSOLE DO DIGITALOCEAN
FONTE: Thompson (2015, p. 297)
A plataforma DigitalOcean possui uma API eficaz e simples para acesso 
às instâncias computacionais, o que torna a integração com o DigitalOcean mais 
simplificada, assim como seu console fácil de se utilizar, ilustrado na Figura 10 
(THOMPSON, 2015).
É uma plataforma de hospedagem de sites, a qual pode ser acessada pela 
URL https://www.digitalocean.com, sendo muito fácil de se utilizar, pois com 
a realização do cadastro, automaticamente são disponibilizados os nomes dos 
servidores, os quais devem ser configurados no domínio (BROWN, 2020).
Assim como outros provedores de hospedagem, o internauta acessa o 
domínio, como www.uniasselvi.com.br por exemplo, e através da resolução do 
DNS, é chamado um dos servidores do DiditalOcean, onde está hospedado o site 
(BROWN, 2020).
5.1.2 Linode
O Linode é um provedor de serviços IaaS que disponibiliza serviços 
parecidos com muitos dos serviços da Amazon, iste é, oferece diferentes níveis 
de servidores, sendo eles de 512 MB até 20 GB de RAM (MITCHELL, 2013). A 
diferença é que a Amazon cobra os serviços por hora, enquanto que o Linecode 
realiza a cobrança mensal de seus serviços, e, além disso, as instâncias dos 
computadores possuem recursos específicos para capacidade de armazenamento 
e recursos de CPU, possuindo data center nos Estados Unidos, Grã Bretanha e 
Japão (MITCHELL, 2013).
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
22
Este provedor utiliza uma personalizada linguagem para implantação 
e gerenciamento de servidores, utilizando a plataforma de virtualização Xen 
(MITCHELL, 2013). Todos os recursos de serviços de computação disponibilizados 
pelo Linode possuem serviço de suporte premium, e oferecem backup automático 
e serviços de restauração, diferente de outros provedores, sendo que para estes 
serviços de backup e restauração, o Linode disponibiliza um fácil aprendizado 
para os usuários usufruírem de forma mais eficiente destes serviços (MITCHELL, 
2013). Além de backups, o Linode oferece serviços adicionais com recursos extras, 
como RAM, espaço em disco, banda de velocidade da rede ou endereço IP, além 
de permitir clonagem de recursos internos dos servidores, como de configurações, 
permitindo ajudar no gerenciamento (MITCHELL, 2013).
O Linode permite que vários usuários utilizem a mesma conta, permitindo 
que vários usuários utilizem a mesma conta, além de suportar várias versões 
de Linux, como Debian, Fedora, Ubuntu e CentOS (MITCHELL, 2013). Além 
disso, diferente de outros serviços IaaS, o Linode oferece a vantagem de permitir 
inicialização do Sistema Operacional em modo de recuperação, além de outros 
métodos, o que facilita o gerenciamento de máquinas (MITCHELL, 2013).
5.1.3 Rackspace
O provedor Rackspace disponibiliza vários serviços de hospedagem dos 
modelos PaaS e IaaS, sendo que o Rackspace suporta algumas plataformas de 
servidores, como Windows e Linux, assim como a Amazon (MITCHELL, 2013). 
No Rackspace, podem ser alocados servidores de 256 MB até 30 GB de RAM, 
e espaço em disco de 256 MB até 10GB, os quais são pagos por hora, diferente 
do Linode que é mensal (MITCHELL, 2013). Outra característica do Rackspace 
é o oferecimento de instâncias de servidores gerenciáveis e não gerenciáveis, 
com serviços de suporte de TI premium, incluindo serviços PaaS de e-mail e 
hospedagem de sites, além de serviços em nuvem privados (MITCHELL, 2013).
Além destas características,a questão de personalização, assim como no 
Linode, o Rackspace também oferece opções parecidas, assim como interface 
gráfica para gerenciamento e configuração de backup (MITCHELL, 2013).
5.1.4 Amazon Web Services (AWS)
Amazon Web Services (AWS) é um dos provedores IaaS mais conhecidos, 
o qual suporta uma grande variedade de serviços em nuvem, como servidor 
de hospedagem (EC2), armazenamento em nuvem (S3, EBS), serviços de 
monitoramento, serviços de notificações (SES, SQS), serviços de banco de dados 
relacional (RDS), assim como serviço de DNS (Route 53) (MITCHELL, 2013). 
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
23
O Amazon disponibiliza serviços em ambientes públicos, privados ou em 
comunidades através de serviço VPC, serviço GovCloud e instâncias de VPC 
dedicados (MITCHELL, 2013).
O serviço EC2 suporta as plataformas Windows e Linux, assim como o 
serviço de importação e exportação de imagem do Sistema Operacional, além 
disso, os recursos disponibilizados de empresas parceiras, como Microsoft 
Windows, RedHat Linux e Oracle, por exemplo, são licenciados e são pagos por 
hora de utilização (MITCHELL, 2013). Amazon possui servidores em quase todos 
os continentes, como Ásia, Europa e Estados Unidos da América, liderando os 
servidores de infraestrutura em nuvem, além de permitir a integração com outras 
plataformas, como a Heroku que pode ser integrada a Amazon RDS, por exemplo 
(MITCHELL, 2013).
A Amazon oferece várias opções de tamanhos de recursos de máquinas, 
várias funções para gerenciamento de servidores, serviços de banco de dados 
assim como serviço de armazenamento, oferecendo serviços públicos, privados, 
gratuitos e licenciados, incluindo uma comunidade completa para suporte 
(MITCHELL, 2013). Oferecendo pequenos servidores de 1.7 GB de RAM e 1 
CPU, ou então os maiores servidores que são de 7.4 GB de RAM e até 4 CPUs 
(MITCHELL, 2013).
Assim como outros provedores disponibilizam serviços gratuitos para 
novos usuários, a Amazon também oferece, sendo um recurso com micro EC2 e 
armazenamento para utilizar durante um ano (MITCHELL, 2013). O Amazon Web 
Services oferece várias configurações diferentes de configurações de servidores, 
isto é, várias capacidades de memória RAM e recursos de CPU para as várias 
necessidades dos clientes, mas os pequenos servidores, ou instâncias, servem 
para realizar testes na plataforma, e não para colocar aplicações em produção 
(MITCHELL, 2013).
5.1.5 Cisco Metapod
De acordo com Santana (2016), devido à necessidade de algumas 
organizações, alguns provedores de nuvem disponibilizaram um serviço 
conhecido por PCaaS (Private Cloud as a Service), em que neste cenário, o provedor:
• Disponibiliza uma nuvem privada e local em uma organização, utilizando 
operações automatizadas pré-testadas;
• Opera, gerencia e disponibiliza suporte para nuvem privada;
• Realiza a cobrança da organização de acordo com sua utilização de recursos.
Neste sentido, a Cisco oferece PCaaS através da plataforma Cisco 
Metapod, a qual pode ser entendida por ser uma solução de plataforma aberta 
sendo remotamente instalada e opera 24 horas por dia durante o ano inteiro 
(SANTANA, 2016). O Cisco Metapod possui fácil e rápida instalação, sendo um 
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
24
provedor de nuvem privada que possui alta disponibilidade e um catálogo pré-
construído de servidores virtuais e desktops quase prontos para utilização, além 
de permitir integração com outras organizações e suporte para APIs do AWS 
(SANTANA, 2016).
5.1.6 Microsoft Azure
Outra plataforma deste modelo é o Microsoft Azure, o qual é desenvolvido 
pela Microsoft, e fornece uma variedade de serviços que se pode utilizar sem 
pagar, permitindo o desenvolvimento de soluções para realizar tarefas que não 
podem ser realizadas em um ambiente local de hardware, isso é, fazendo elas no 
servidor e não no computador do desenvolvedor (COPELAND et al., 2015). Neste 
sentido, o Microsoft Azure pode ser descrito como um servidor de processamento 
e armazenamento em nuvem, possibilitando ao desenvolvedor se preocupar 
com sua tarefa principal de implementar as aplicações, não sendo necessário se 
preocupar com instalação e configuração de infraestrutura (COPELAND et al., 
2015).
A plataforma Microsoft Azure oferece suporte para nuvem pública, 
privada, e híbrida, sendo que o Windows Azure Pack permite adicionar muitos 
dos serviços do Azure em data centers, oferecendo a experiência destes serviços 
aos usuários do servidor, podendo realizar esta integração através de uma rede 
virtual privada (COLLIER; SHAHAN, 2015). O Microsoft Azure possui data 
centers em 19 regiões do planeta, e com esta plataforma, podem ser adicionados 
novos servidores para satisfazer a necessidade de desempenho de uma 
determinada solução, além de facilitar para Startups, permitindo estas iniciarem 
com baixo custo (COLLIER; SHAHAN, 2015).
O Microsoft Azure fornece serviços IaaS através de execução e 
gerenciamento de servidores com virtualização de software, permitindo criar 
VMs (Virtual Machines), ou máquinas virtuais, as quais rodam na infraestrutura 
de servidores e, dependendo do servidor, é possível rodar Sistema Operacional 
Windows ou Linux (COLLIER; SHAHAN, 2015). Nestas VMs, é possível 
configurar redes virtuais, balanceadores de carga de rede, armazenamento, assim 
como outros serviços que rodam nesta arquitetura, porém não se possui controle 
do hardware e do software de virtualização (COLLIER; SHAHAN, 2015).
A migração de serviços para VMs do Microsoft Azure é facilitada, pois 
é possível criar VMs com mesmas configurações da infraestrutura atual dos 
serviços que se deseja migrar, podendo serem realizados ajustes quanto a URLs 
por exemplo, mas muitas aplicações poderão ser migradas desta forma e sem 
maiores problemas (COLLIER; SHAHAN, 2015).
TÓPICO 1 — INTRODUÇÃO AO CLOUD COMPUTING E O COTIDIANO
25
5.1.7 Google Compute Engine (GCE)
A plataforma Google Compute Engine (GCE) disponibiliza serviços 
em VMs, as quais rodam nos data centers do Google, podendo serem criadas 
VMs com as mais diversas configurações, conforme a necessidade, possuindo 
redundância e replicação dos dados armazenados, além de permitir que haja 
comunicação entre a rede privada interna com a rede da VM (COHEN; HURLEY; 
NEWSON, 2015).
O Google Compute Engine disponibiliza várias ferramentas que facilitam 
o gerenciamento e configuração das instâncias das VMs, como por exemplo 
atribuir discos de armazenamento, configurar a rede de acesso às VMs, entre 
outros (COHEN; HURLEY; NEWSON, 2015). Segundo Cohen, Hurley e Newson 
(2015), dentre as ferramentas disponibilizadas, citam-se:
• Google Developers Console: Interface web (UI);
• GCloud Compute: Ferramenta em linha de comando que permite desenvolver 
scripts de automação;
• Compute Engine API: API RESTFul que permite a integração e interação em 
código fonte para gerenciamento de aplicações.
Para começar a utilizar o Google Compute Engine, é necessário criar um 
projeto Engine Compute na ferramenta Developers Console (COHEN; HURLEY; 
NEWSON, 2015). Um projeto do Engine Compute é uma coleção de recursos e 
configurações do projeto, como um container de recursos, no qual, disco, firewall, 
rede e todas as instâncias estão associadas ao projeto (COHEN; HURLEY; 
NEWSON, 2015). Uma característica interessante é nessa plataforma ser possível 
adicionar membros para a equipe do projeto, especificando determinadas 
permissões para acesso a determinados recursos (COHEN; HURLEY; NEWSON, 
2015).
26
Neste tópico, você aprendeu que:
• A computação em nuvem (cloud computing) pode ser entendida pela utilização 
de recursos de computação em um provedor na internet, isto é, quando se 
precisa de um servidor, por exemplo, é possível utilizar uma máquina virtual 
(virtual machine) que é disponibilizada por vários provedores na internet.
• A computação em nuvem pode ser exemplificada também pelo armazenamento 
em nuvem, isto é, armazenar dados ou arquivos emum servidor na internet, 
permitindo que estes estejam disponíveis de qualquer local.
• Com a utilização da computação em nuvem, recursos são melhores utilizados, 
deixando de existir recursos ociosos, como discos com grandes capacidades 
não sendo utilizados por exemplo, podendo ser alocado um disco com a 
capacidade necessária. O mesmo exemplo serve para processamento.
• Dentre as vantagens da computação em nuvem, a escalabilidade, disponibilidade 
e a elasticidade são as principais.
• O termo elasticidade para computação em nuvem indica que o cliente de um 
serviço pode aumentar ou diminuir a demanda por um serviço.
• O termo disponibilidade para computação em nuvem indica que um serviço 
está disponível a qualquer momento do dia.
• O termo escalabilidade para computação em nuvem significa que um serviço 
suporta o aumento da quantidade de usuários, sem perder eficiência.
• No cotidiano, a computação em nuvem é largamente utilizada, atualmente, 
como para empresas incubadoras que possuem menos recursos e pagam estes 
serviços pelo que que utilizam.
• A virtualização de data centers permite evitar uso ineficiente de recursos, 
como por exemplo ter um processador com alto poder de processamento, sem 
precisar utilizá-lo sempre.
• A Big Data é muito utilizada na computação em nuvem para armazenamento 
desta quantidade enorme de dados, seno terabytes ou petabytes, cujo 
processamento é mais rápido na nuvem.
• O modelo IaaS disponibiliza servidores físicos e virtualizados, assim como 
armazenamento de dados em nuvem, em que desenvolvedores instalam o 
sistema operacional, sistema gerenciador de banco de dados e os softwares 
necessários, podendo realizar o acesso de qualquer lugar.
RESUMO DO TÓPICO 1
27
1 Algumas empresas possuem um setor de Tecnologia de Informação 
internamente, para sanar muitos problemas e apresentar soluções para 
o dia a dia dos negócios. Neste sentido, assinale a alternativa CORRETA 
referente à computação em nuvem:
a) ( ) Computação em nuvem, ou cloud computing, é uma solução viável 
apenas para empresas que precisam hospedar sites e disponibilizar na 
internet.
b) ( ) Computação em nuvem, ou cloud computing, é uma solução para uso 
de recursos na internet que existe a menos de três anos.
c) ( ) Computação em nuvem, ou cloud computing, facilita o uso de recursos 
de computação, através da internet, aumentando a ociosidade dos recursos.
d) ( ) Computação em nuvem, ou cloud computing, permite que recursos 
de computação sejam disponibilizados pela internet, e evita ociosidade 
destes.
2 Em data centers físicos, muitos recursos podem permanecer ociosos por 
horas ou dias, até alguma aplicação utilizá-lo conforme a necessidade. 
Neste sentido, assinale a alternativa CORRETA referente à computação em 
nuvem.
a) ( ) A computação em nuvem começou a ser utilizada por volta da década 
de 1960, logo após ter sido publicado o primeiro artigo a respeito do tema.
b) ( ) A computação em nuvem começou a ser utilizada com a disponibilização 
de armazenamento e hospedagem na internet.
c) ( ) A computação em nuvem começou a ser utilizada com o recurso de 
armazenamento local de dados e arquivos.
d) ( ) A computação em nuvem, para o NIST, significa o recurso 
computacional de processamento, armazenamento e disponibilização de 
serviços locais.
3 Com um pequeno esforço de provedores de serviços da internet, muitos 
recursos são disponibilizados para seus clientes. Referente à computação 
em nuvem, assinale a alternativa CORRETA:
a) ( ) Uma das vantagens da computação em nuvem é a possibilidade de 
aumento da capacidade de armazenamento de um disco rapidamente, 
porém o custo deste serviço é mais caro que em um data center físico.
b) ( ) Uma das desvantagens da computação em nuvem é a exigência 
de pilhas de equipamentos e implementações, como configuração de 
hardware, instalação de software e outras tarefas demoradas, as quais são 
de responsabilidade do cliente.
AUTOATIVIDADE
28
c) ( ) Uma das desvantagens da computação em nuvem é a demora em 
solicitar um recurso novo, como aumento da capacidade de armazenamento, 
por exemplo.
d) ( ) A computação em nuvem auxilia na economia financeira evitando 
compra de hardware e software, além de recursos para configuração e de 
data centers locais.
4 A virtualização de data center pode ser compreendida pela computação em 
nuvem, a qual disponibiliza qualquer recurso computacional pela internet. 
Referente à computação em nuvem, assinale a alternativa CORRETA que 
cita todas as vantagens deste tipo de computação:
a) ( ) Aumento da ociosidade dos recursos, redução de custos para 
armazenamento e disponibilização dos recursos computacionais em 
qualquer local do planeta.
b) ( ) Aumento da ociosidade dos recursos e redução de custos destes para 
o cliente.
c) ( ) Armazenamento de Big Data, assim como o processamento destes 
dados de forma ociosa.
d) ( ) São a elasticidade, disponibilidade e a escalabilidade.
5 O modelo IaaS (Infraesrtucture as a Service) pode ser compreendido pelo 
fornecimento de um data center em nuvem, como servidores físicos e 
virtualizados, por exemplo, os quais podem ser acessados de qualquer local 
do planeta. Referente ao modelo IaaS, assinale a alternativa CORRETA:
a) ( ) Os desenvolvedores ou administradores precisam gerenciar o 
hardware e o software.
b) ( ) O gerenciamento de recursos como hardware e software, assim como 
a instalação de software, não é necessário neste modelo.
c) ( ) No modelo IaaS, não é possível realizar automatização para 
disponibilização de recursos.
d) ( ) Dentre as plataformas que disponibilizam computação em nuvem, o 
Linode é um exemplo para o IaaS, diferente do Amazon Web Services e 
Rackspace que disponibilizam apenas serviços no modelo PaaS.
29
TÓPICO 2 — 
UNIDADE 1
SOFTWARE COMO SERVIÇO - SAAS
1 INTRODUÇÃO
Entre os três modelos de Serviços, Software como um Serviço (SaaS), 
Plataforma como um Serviço (PaaS) e Infraestrutura como um Serviço (IaaS) 
apresentado no Tópico 1 desta unidade, o SaaS está no topo da pilha dos serviços, 
é um aplicativo completo entregue como um serviço aos consumidores. De acordo 
com Kavis (2014), no SaaS o consumidor do serviço precisa apenas configurar 
alguns parâmetros específicos do aplicativo e gerenciar os usuários, e por outro 
lado o provedor de serviços lida com toda a infraestrutura, toda a lógica do 
aplicativo, todas as implantações e tudo relacionado à entrega do produto ou 
serviço. 
Segundo Chandrasekaran (2015), o provedor SaaS oferece diferentes 
serviços como os serviços comerciais incluindo ERP (Enterprise Resource Planning), 
CRM (Customer Relationship Management), cobrança, vendas, recursos humanos, 
as redes sociais, para o gerenciamento de documentos eletrônicos, nos quais os 
provedores SaaS começaram a oferecer serviços para criar, gerenciar e rastrear 
esse tipo de documento e serviços eletrônicos como e-mail. Enfim, existem várias 
soluções SaaS que lidam com segurança, monitoramento, registro em log, testes e 
assim por diante como também na categoria de dados inclui business intelligence, 
banco de dados como serviço, visualização de dados, dashboards, data mining e 
muito mais (KAVIS, 2014).
Segundo Chandrasekaran (2015), o SaaS muda a maneira como o software 
é entregue aos clientes. No modelo de software tradicional, o software é entregue 
como um produto baseado em licença que precisa ser instalado no dispositivo 
do usuário final. Como o SaaS é entregue como um serviço sob demanda pela 
nuvem, não há necessidade de instalar o software nos dispositivos do usuário 
final. Seus serviços podem ser acessados ou desconectados a qualquer momento, 
com base nas necessidades do usuário final a partir de qualquer navegador leve 
em qualquer dispositivo, como laptops, tablets e smartphones. 
Uma empresa deve usar o SaaS para terceirizar todos os aplicativos, 
recursos e serviços que não são sua competência essencial, assumindo que atenda 
às suas necessidadese seja acessível. Por exemplo, se uma empresa não está 
envolvida na elaboração de software de RH, folha de pagamento, gerenciamento 
de relacionamento com cliente (CRM) e contabilidade, não deve criar esses 
aplicativos. Comprar esses aplicativos e executá-los no local não é rentável com o 
30
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
surgimento de alternativas SaaS. Enfim, no SaaS a parte da categoria produtividade 
inclui ferramentas de colaboração, ferramentas de desenvolvimento, pesquisas, 
ferramentas de campanha por e-mail e muito mais. 
Um dos exemplos mais comuns e utilizados de uma aplicação SaaS é o 
e-mail, ou seja, a maioria das pessoas utiliza aplicações nesse modelo sem ter 
conhecimento disso. Um exemplo bem simples desse tipo de aplicação é o Gmail, 
o gerenciamento de e-mail do Google, em que basta o usuário acessar o site, inserir 
seu login e senha para se conectar com todas as suas informações ali guardadas 
(SOARES, 2020). 
Outro exemplo clássico de SaaS é a Netflix, que oferece diversas séries e 
filmes. O usuário paga um plano para assistir e, conforme for seu plano, um ou 
mais equipamentos podem ser acessados simultaneamente na casa do usuário, 
podendo o usuário alterar a qualquer momento, de maneira simples e rápida 
configurando sua conta. Como o Netflix é um aplicativo SaaS, o usuário final não 
é responsável por sua manutenção, e qualquer problema relacionado à aplicação 
é de responsabilidade exclusiva do provedor do serviço a solução ao problema. 
O SaaS vem em um crescimento no Brasil e no mundo, por ser adaptável 
às necessidades da empresa e/ou usuário final. Nos dias atuais as empresas e 
usuários tem uma necessidade cada vez maior de agilidade nos processos, 
exigindo que o usuário esteja conectado praticamente em tempo integral, desta 
forma, o modelo SaaS vem para facilitar esse processo (SOARES, 2020).
Este mesmo autor nos traz que informações levantadas pela consultoria 
Gartner mostram que, nos últimos anos, cerca de 71% das empresas no mundo 
começaram a utilizar o SaaS. Enfim, o modelo SaaS é o modelo mais utilizado 
para entregar serviços para nuvem no Brasil, com 92% das empresas adotando 
pelo menos uma solução SaaS. A previsão de 2019 foi atingir US$ 113,1 bilhões 
em 2021 com crescimento de 32,9% em apenas dois anos.
2 CONCEITO DE SAAS
Segundo Silva (2017), o modelo de entrega de serviço SaaS tem potencial 
para revolucionar a forma de como as empresas vão investir em sistemas 
de informação. Na perspectiva de adoção, esse modelo é ideal para empresas 
iniciantes, que não têm capital para entregar sistemas de grande porte, caso em 
que é necessário investir altas taxas em implantação e manutenção dos sistemas. 
Enfatiza o autor que com o SaaS, a pequena empresa poderá contratar 
sistemas de informação robustos e consagrados no mercado pagando apenas 
uma fatura mensal referente ao uso. Muitas vezes, será possível a utilização de 
software de diversos dispositivos ou locais pagando-se apenas um único contrato. 
Na perspectiva de venda de serviços computacionais e software, empresas que 
possuem sistemas de alto custo poderão se inserir em um novo segmento de 
TÓPICO 2 — SOFTWARE COMO SERVIÇO - SAAS
31
mercado, na medida em que poderão vender seus serviços de acordo com o volume 
de utilização. Os aplicativos SaaS também são chamados de softwares baseados 
na web, softwares sob demanda ou softwares hospedados (SALESFORCE, 2020). 
Para Furht e Escalante (2010), o SaaS é baseado no uso de software de 
licenciamento sob demanda que pode ter sido desenvolvido e implantado na 
camada PaaS ou IaaS de uma plataforma em nuvem. O SaaS substitui o uso 
tradicional de software por um modelo de aluguel, reduzindo os custos de 
implantação e gerenciamento de equipamentos físicos do usuário. As nuvens 
SaaS também podem permitir aos usuários compor serviços existentes para 
atender aos seus requisitos. 
As organizações optam por utilizar soluções SaaS para funções não 
essenciais, ou seja, tarefas que não fazem parte de seu escopo ou produto de 
desenvolvimento para que não precisem oferecer suporte à infraestrutura de 
aplicativos, fornecer manutenção e contratar pessoal para gerenciar tudo. Em vez 
disso, eles pagam uma taxa de assinatura e simplesmente usam o serviço pela 
rede da Internet como um serviço baseado em nuvem (KAVIS, 2014).
O provedor SaaS pode fornecer serviços de negócios, redes sociais, 
gerenciamento de documentos e serviços de correio, como mostra a Figura 11. 
Segundo Chandrasekaran (2015), os Serviços Comerciais que incluem ERP, 
CRM, cobrança, vendas e recursos humanos, as Redes sociais que adotaram o 
SaaS por sua sustentabilidade, os gerenciamentos de documentos usados para 
criar, gerenciar e rastrear documentos eletrônicos e por fim os serviços de e-mail 
pessoais e organizacionais. 
FIGURA 11 – SERVIÇOS FORNECIDOS PELOS PROVEDORES SAAS
FONTE: Chandrasekaran (2015, p. 86)
32
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
Para Kavis (2014), os provedores de SaaS controlam totalmente a 
infraestrutura, o desempenho, a segurança, a escalabilidade, a privacidade e 
muito mais, e os fornecedores de SaaS geralmente oferecem duas maneiras para 
seus clientes usarem seus aplicativos. A primeira maneira é provê acesso em 
qualquer dispositivo que possa se conectar à Internet através uma interface de 
usuário baseada na Web amigável e a outra maneira é fornecer APIs para seus 
clientes, para que os consumidores de serviços possam integrar recursos aos 
aplicativos existentes ou com outras soluções SaaS.
Do ponto de vista do desenvolvimento de sistemas, para Silva (2017), para 
adotar SaaS a equipe de desenvolvimento deve criar aplicações fazendo uso de 
PaaS e as implantam na IaaS da nuvem, ou seja, pensar em que tipo de modelo 
de serviço (IaaS, PaaS, SaaS) o arquiteto deve usar a solução e também detalhar 
conforme os requisitos de negócios qual tipo de modelo de implantação em 
nuvem (público, privado, híbrido) deve ser utilizado.
Segundo Kavin (2014), se uma empresa estiver criando sites voltados 
para o consumidor, nos quais os usuários trocam voluntariamente seus dados 
pessoais por um serviço gratuito (Facebook, Twitter, Instagram etc.), a empresa 
pode facilmente justificar colocar tudo em uma nuvem pública. Se uma empresa 
está vendendo para outras empresas como estabelecimentos de varejo, hospitais 
e agências governamentais, há uma chance muito boa de alguns clientes exigirem 
que pelo menos alguns dos dados estejam em uma nuvem privada ou não saiam 
de suas instalações. Portanto para desenvolver um SaaS levando em consideração 
os requisitos de negócios e requisitos de sistemas, Kavin (2014) nos apresenta as 
seguintes recomendações: 
• Compreenda os requisitos de negócios e as expectativas dos clientes da 
computação em nuvem antes de selecionar modelos de serviço e tipos de 
nuvem.
• Obter clareza da definição e os requisitos do produto, fazendo uma avaliação 
regulatória e de segurança dos requisitos e adicione o código mais importante 
em todo o log de produto.
• Tenha à mão uma lista de perguntas frequentes que responde a todas as 
perguntas e preocupações que o cliente típico terá para a solução baseada em 
nuvem.
Bhowmik (2017) define serviço como a abstração de muitas funcionalidades 
complexas, quanto mais acima a camada, maior o nível de abstração. O SaaS fica 
na primeira camada onde seu grau de abstração ainda é mais elevado, ou seja, os 
consumidores podem usar aplicativos sem se preocupar com nada subjacente, 
tendo sua responsabilidade limitada à utilização do aplicativo, visto que a 
infraestrutura, a plataforma, o desenvolvimento e o gerenciamento do aplicativo 
cabem aos fornecedores.
TÓPICO 2 — SOFTWARE COMO SERVIÇO - SAAS
33
3 CARACTERÍSTICAS DO SAAS
Os serviços SaaS são diferentes e oferecem mais benefícios aos 
usuários finais do que o software tradicional. A seguir, são apresentadas por 
Chandrasekaran (2015) às características essenciais dos serviços SaaS que o 
tornamúnico em relação ao software tradicional:
• Um para muitos: os serviços SaaS são entregues como um modelo para muitos, 
no qual uma única instância do aplicativo pode ser compartilhada por vários 
ou múltiplos locatários ou clientes.
• Acesso à Web: os serviços SaaS fornecem acesso à Web ao software, no qual 
o usuário final acessa o aplicativo a partir de qualquer local, se o dispositivo 
estiver conectado à Internet. 
• Gerenciamento centralizado: como os serviços SaaS são hospedados e 
gerenciados a partir do local central, o gerenciamento do aplicativo SaaS se 
torna mais fácil. Normalmente, os provedores de SaaS executam as atualizações 
automáticas que garantem que cada locatário esteja acessando a versão mais 
recente do aplicativo sem nenhuma atualização do lado do usuário. 
• Suporte a vários dispositivos: os serviços SaaS podem ser acessados a partir 
de qualquer dispositivo do usuário final, como desktops, laptops, tablets, 
smartphones e fino cliente (thin client).
• Melhor escalabilidade: como a maioria dos serviços SaaS utiliza PaaS e 
IaaS para seu desenvolvimento e implantação, ela garante uma melhor 
escalabilidade do que o software tradicional. O dimensionamento dinâmico 
dos recursos subjacentes da nuvem faz com que os aplicativos SaaS funcionem 
com eficiência, mesmo com cargas variadas.
• Alta disponibilidade: os serviços SaaS garantem a disponibilidade de 99,99% 
dos dados do usuário, à medida que os mecanismos adequados de backup e 
recuperação são implementados no back-end. 
• Integração de API: os serviços SaaS têm a capacidade de integração com outro 
software ou serviço por meio de APIs padrão.
Destaca o portal SoftLine (2017) que qualquer um conhece o SaaS porque 
sites como o Facebook e o Twitter ou aplicativos como o Skype, OneDrive, Google 
Docs e o Office 365 funcionam dessa maneira. Então, o SoftLine enfatiza que o 
SaaS é bastante recomendado para pequenas empresas, que não podem gastar 
com a compra de licenças, trabalhos que durem apenas um curto período de 
tempo, quando tem a necessidade de acesso remoto aos aplicativos, como no caso 
de softwares de CRM ou de gestão de redes sociais.
Vale destacar que só paga pelo que sua dos aplicativos SaaS, ou seja, 
consumido sob demanda e necessidade de cada empresa ou usuário. Para 
Chandrasekaran (2015), além dos benefícios relacionados aos custos, os serviços 
SaaS oferecem os seguintes benefícios:
34
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
• Nenhuma instalação no lado do cliente: os serviços SaaS não exigem a 
instalação do software no lado do cliente. Os usuários finais podem acessar os 
serviços diretamente do centro de dados do provedor de serviços sem nenhuma 
instalação. Não há necessidade de hardware de ponta para consumir SaaS.
• Serviços: Ele pode ser acessado a partir de qualquer dispositivo portátil, 
reduzindo assim o gasto inicial na compra de hardware de última geração.
• Economia de custos: como os serviços SaaS seguem o faturamento com base 
em serviços públicos ou com o pagamento conforme o uso, é necessário que os 
usuários finais paguem pelo que usaram. A maioria dos provedores de SaaS 
oferece planos de assinatura diferentes para beneficiar clientes diferentes. Às 
vezes, os serviços SaaS genéricos, como processadores de texto, são oferecidos 
gratuitamente aos usuários finais.
• Menos manutenção: os serviços SaaS eliminam a sobrecarga adicional de 
manter o software do lado do cliente. Por exemplo, no software tradicional, o 
usuário final é responsável por executar atualizações em massa. No entanto, 
no SaaS, o próprio provedor de serviços mantém as atualizações automáticas, 
o monitoramento e outras atividades de manutenção dos aplicativos.
• Facilidade de acesso: os serviços SaaS podem ser acessados a partir de qualquer 
dispositivo, se estiver conectado à Internet. A acessibilidade dos serviços SaaS 
não se restringe a dispositivos específicos. É adaptável a todos os dispositivos, 
pois usa a interface de usuário da web responsiva.
• Escala dinâmica: os serviços SaaS são conhecidos popularmente pela escala 
dinâmica elástica. É muito difícil para o software local fornecer capacidade 
de dimensionamento dinâmico, pois requer hardware adicional. Como os 
serviços SaaS aproveitam os recursos elásticos fornecidos pela computação em 
nuvem, ele pode lidar com qualquer tipo de carga variável sem interromper o 
comportamento normal do aplicativo.
• Recuperação de desastres: com mecanismos adequados de backup e 
recuperação, as réplicas são mantidas para todos os serviços SaaS. As réplicas 
são distribuídas por muitos servidores. Se algum servidor falhar, o usuário 
final poderá acessar o SaaS de outros servidores. Elimina o problema do ponto 
único de falha. Também garante a alta disponibilidade do aplicativo.
• Multilocação: Múltiplo Locatário é a capacidade dada aos usuários finais de 
compartilhar uma única instância do aplicativo. A multilocação aumenta a 
utilização de recursos do lado do provedor de serviços.
Segundo Chandrasekaran (2015), o principal problema com os serviços 
SaaS é a segurança dos dados. Todas as empresas estão preocupadas com a 
segurança de seus dados hospedados no data center do provedor de serviços. A 
seguir, estão os principais problemas com os serviços SaaS de acordo com este 
autor:
• Segurança: a segurança é a principal preocupação na migração para o aplicativo 
SaaS. Como o aplicativo SaaS é compartilhado entre muitos usuários finais, 
existe a possibilidade de vazamento de dados. Aqui, os dados são armazenados 
TÓPICO 2 — SOFTWARE COMO SERVIÇO - SAAS
35
no centro de dados do provedor de serviços. Não podemos simplesmente 
confiar em algum provedor de serviços terceirizado para armazenar nossos 
dados confidenciais e sensíveis à empresa. O usuário final deve ter cuidado ao 
selecionar o provedor SaaS para evitar perda de dados desnecessária.
• Requisitos de conectividade: os aplicativos SaaS requerem conectividade com 
a Internet para acessá-lo. Às vezes, a conectividade com a Internet do usuário 
final pode ser muito lenta. Em tais situações, o usuário não pode acessar os 
serviços com facilidade. A dependência da conexão à Internet de alta velocidade 
é um grande problema nos aplicativos SaaS.
• Perda de controle: como os dados são armazenados em um local externo e 
externo, o usuário final não tem controle dos dados. O grau de controle do 
aplicativo SaaS e os dados é menor que o aplicativo local.
 
4 APLICAÇÕES SAAS EM CENÁRIOS DE BIG DATA
Perez (2018) explica que as plataformas de dados convencionais e as 
soluções de Big Data se esforçam para cumprir seu propósito fundamental que é 
de permitir que qualquer usuário trabalhe com quaisquer dados, sem limites de 
escala, desempenho ou flexibilidade. Percebendo que a realidade é bem outra, 
Perez nos faz o seguinte questionamento: A maioria dos dados da sua empresa, 
senão todos, já residem na nuvem? 
Neste caso, vamos supor que uma porcentagem considerável de 
seus dados esteja em sua solução de CRM. Há anos você utiliza um 
CRM baseado em nuvem, o que significa que seus dados de cliente, 
oportunidade e engajamento já estão armazenados on-line. Nesse 
cenário, faz pouco sentido extrair esses dados da nuvem para um 
sistema local - especialmente quando você considera que os dados têm 
massa, o que significa que também têm inércia e gravidade. Quanto 
mais os dados residem em um sistema em silos, menos viável a 
consulta cruzada se torna. Enfim, conclui o autor que uma abordagem 
melhor seria contar com uma ferramenta de análise SaaS construída 
para a nuvem, ou seja, uma solução SaaS moderna e instantaneamente 
elástica pode fazer flutuações em computação e armazenamento - por 
hora, minuto ou segundo - prática padrão e uma oportunidade viável 
para seu negócio (PEREZ 2018, s. p.).
O uso de soluções SaaS envolvendo Big Data são utilizados para que 
todo o potencial de dados das empresas seja utilizado a favor delas. Através das 
técnicas em Big Data é possível entendendoo comportamento do consumidor e 
buscar entender de formas inteligentes as melhorias dos serviços e produtos. O 
conceito de amarrar SaaS com Big Data busca a revolução na produção de dados, 
na qual os dados passam a serem gerados em diversos formatos diferentes, sem 
estrutura ou associação entre eles, em alta velocidade, basicamente o tempo todo, 
em fontes como a internet e sistemas internos. 
https://www.snowflake.com/product/
36
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
Guerreiro (2020) destaca que as empresas Gainsight e Keen.io possuem 
uma ferramenta analíticas de Big Data que podem ser incorporadas e entregues 
no aplicativo SaaS a fim de ajudar a gerenciar os serviços do consumidor. Tem 
também o “Muoro”, uma ferramenta de ciência de dados que ajuda a gerar 
análises avançadas usando IA e aprendizado de máquina por meio do algoritmo 
proprietário do DataShelter. Seu foco é tornar o trabalho do SaaS colaborativo 
como uma tarefa contínua entre cientistas de dados e gerentes de negócios, 
tornando a análise avançada um processo sem complicações na organização. 
Big Data faz parte dos serviços do Google Cloud mais utilizados nas 
empresas para análise de dados, seus serviços permitem processar e consultar 
Big Data na nuvem para receber respostas rápidas para perguntas complicadas 
(GOOGLE CLOUD, 2020a). O Google BigQuery oferece serviços de “análise de 
dado”, em que se permite (GOOGLE CLOUD, 2020b):
• Criar esquemas personalizados que organizam os dados em conjuntos de 
dados e tabela.
• Carregar dados de uma grande variedade de fontes, como dados de streaming.
• Usar comandos semelhantes aos do SQL para consultar conjuntos de dados 
enormes em um instante. O BigQuery foi projetado e otimizado para oferecer 
velocidade.
• Usar a IU da Web, a interface de linha de comando ou a API.
• Carregar, consultar, exportar e copiar dados usando Jobs.
• Gerenciar e proteger dados usando permissões.
Já o Dataflow oferece um serviço gerenciado e um conjunto de SDKs 
que você pode usar para realizar tarefas de processamento de dados em lote e 
streaming. É um recurso que funciona bem para computação de alto volume, 
especialmente quando as tarefas de processamento podem divididas facilmente 
e de forma clara em cargas de trabalho em paralelo. É excelente para tarefas de 
extração, transformação e carga, que são úteis para migrar dados entre diferentes 
mídias de armazenamento, fazer a transformação de dados para um formato mais 
desejável ou carregar dados em um novo sistema de armazenamento (GOOGLE 
CLOUD, 2020c). 
Por fim, o Pub/Sub é um “serviço de mensagens assíncronas”. O 
aplicativo pode enviar mensagens no formato de estruturas de dados JSON para 
uma unidade de publicação, chamada tópico. Como os tópicos do Pub/Sub são 
um recurso global, outros aplicativos nos seus projetos podem se inscrever no 
tópico para receber as mensagens na solicitação HTTP ou nos corpos de resposta. 
A utilidade de Pub/Sub não se limita ao Big Data. É possível usar o Pub/Sub 
em muitas situações em que um serviço de mensagens assíncrono é necessário. 
Para conferir um exemplo que usa Pub/Sub para coordenar o App Engine e o 
Compute Engine, consulte Programação de tarefas confiável no Compute Engine 
(GOOGLE CLOUD, 2020c).
TÓPICO 2 — SOFTWARE COMO SERVIÇO - SAAS
37
Neste viés das possibilidades de aplicar Big Data para SaaS, devido ao 
fato de que como o aparato tecnológico se tornou mais robusto e também há uma 
constante diminuição de custos, com fornecedores de ferramentas e computação 
em nuvem cada vez mais especializados, as empresas começam a fazer um uso 
mais inteligente das informações de que dispõem. Estruturar, analisar e tomar 
decisões com dados gerados pelos clientes fica cada vez mais possível e, com isso, 
também fica mais fácil inovar em relacionamentos, produtos e serviços. Portanto, 
a interpretação rápida de informações para pautar a equipe de vendas ou para 
criar peças de comunicação mais assertivas só é possível graças às ferramentas 
criadas para lidar com o Big Data e com a infraestrutura oferecida por Cloud. 
Os gestores de TI agora passam a ter sob sua responsabilidade este domínio 
das possibilidades tecnológicas, tornando-se executivos que formam grandes 
parcerias e administram pessoas capazes de lidar com as demandas e as ambições 
corporativas (UDELCIO, 2014).
O modelo de cobrança do SaaS funciona como um aluguel, sendo cobrado 
de diferentes formas, com semanais, mensais, semestrais, anuais ou apenas de 
acordo com seu uso. São vendidos em forma de assinaturas, nas quais a empresa 
ou o usuário paga uma taxa contínua, mas há casos de SaaS que disponibilizam 
uma versão gratuita com funcionalidades mais básicas contendo propagandas de 
anunciantes que mantêm essa versão. Soares (2020) explica que o cliente paga por 
um pacote, pelo que usar ou pela versão desejada para ter acesso a determinados 
recursos, números de logins, volume de tráfego suportado etc.
5 PLATAFORMAS DE SAAS
Uma empresa deve usar o SaaS para terceirizar todos os aplicativos, 
recursos e serviços que não são sua competência essencial, assumindo que atenda 
às suas necessidades e seja acessível. São diversos os modelos de aplicação de 
SaaS. Nesta seção, apresentaremos alguns dos principais provedores de SaaS:
5.1 GOOGLE APPS
Concorrendo diretamente com empresas como a Microsoft e seu Office, o 
Google App lançado em 2006 um pacote de aplicativos que oferece soluções para 
e-mail, calendário, armazenamento na nuvem, reuniões ou treinamentos pelo 
Meet e edição de arquivos (texto, planilhas e apresentações). Segundo o portal 
do Google Cloud (2020d), o SaaS é parte do seu DNA da Google App oferecendo 
soluções inovadoras que transformam as organizações. Seus produtos SaaS 
destacam-se da concorrência devido à moderna tecnologia de análise de dados 
e de recursos do machine learning. Soluções que permitem gerenciar usuários 
e realiza implantação de ferramentas integradas utilizando nuvem híbrida/
de várias nuvens como por exemplo a ferramenta Anthos (GOOGLE CLOUD, 
2020d). 
38
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
Ao escolher o Google App é possível utilizar uma infraestrutura 
moderna que permite que o Google mostre bilhões de resultados de 
pesquisa em milissegundos, forneça 6 bilhões de horas de vídeo no 
YouTube por mês e disponibilize armazenamento para 1 bilhão de 
usuários do Gmail (GOOGLE CLOUD, 2020d, s.p.).
Segundo Furht e Escalante (2010), o Google Apps fornece vários aplicativos 
da Web com funcionalidade semelhante ao software de escritório tradicional 
(processamento de texto, planilhas etc.), mas também permite comunicar, criar 
e colaborar com facilidade e eficiência. Esclarecem os autores que como todos 
os aplicativos são mantidos on-line e acessados por meio de um navegador da 
Web, os usuários podem acessar suas contas a partir de qualquer computador 
conectado à Internet sem a necessidade de instalação extra local. 
O Google Apps possui vários componentes. Os componentes de 
comunicação consistem no e-mail do Google e no Google Talk, que permitem 
a comunicação por e-mail, mensagens instantâneas e chamadas de voz. Os 
componentes do escritório incluem documentos e planilhas, através dos quais 
os usuários podem criar documentos on-line que também facilitam a pesquisa 
e a colaboração, pelo Google Agenda que é um aplicativo de calendário flexível 
para organizar reuniões e eventos e por fim outro recurso é as as páginas da web 
do Google App, os administradores podem publicar facilmente as informações 
fornecendo aos usuários uma rica variedade de conteúdo e aplicativos que podem 
ser personalizados (FURHT, ESCALANTE, 2010).
O Google Apps possui vários recursos significativos (FURHT, 
ESCALANTE, 2010). Primeiro, ele fornece um painel de controle fácil de usar 
que facilita as tarefas administrativas mais comuns, como ativar / desativar 
aplicativos, gerenciar contas e personalizar interfaces. Segundo, embora 
hospedado no Google, o usuário pode controlar a marcaem todas as interfaces, 
ou seja, inclui e-mail profissional personalizado (completo com proteção contra 
spam), agendas compartilhadas e videoconferências (meet) ao lado do Google 
Drive, no qual os usuários poderão personalizar sua interface Web, layouts e 
cores das páginas. Terceiro, os administradores podem integrar-se às plataformas 
existentes e estender a funcionalidade dos principais aplicativos do Google Apps 
com as Interfaces de programação de aplicativos (APIs) oferecidas. Existem 
várias APIs disponíveis para provisionamento, reportar e migração, bem como 
de manipulação de dados de agenda e nas planilhas do Google integrado com 
sistemas Single Sign On (SSO) (FURHT, ESCALANTE, 2010).
5.2 ONEDRIVE
 
OneDrive é um serviço de armazenamento em nuvem da Microsoft, uma 
plataforma suportada em iOS, Android e Windows, na qual todos os usuários 
do Office 365 têm direito a utilizar o serviço de armazenamento de forma 
ilimitada é totalmente gratuito. Serve para salvar fotos, vídeos, documentos, 
PDFs, apresentações em PowerPoint e outros arquivos. Nele, o usuário pode 
TÓPICO 2 — SOFTWARE COMO SERVIÇO - SAAS
39
definir arquivos públicos, para qualquer pessoa acessar e alterar os arquivos, 
ou privados, nos quais somente o próprio usuário que hospedou o arquivo tem 
direito de alteração. 
Segundo Strategic SaaS (2020), os benefícios para uma organização 
utilizar o armazenamento OneDrive é de manter o controle, a integridade e o 
desempenho dos dados; aumentar a utilização do armazenamento e o acesso aos 
dados; fornece uma plataforma central para velocidade e eficácia com backup 
mais rápido; e por fim, expandir a capacidade para atender aos crescentes 
requisitos de armazenamento. 
As dez vantagens de usar um serviço de armazenamento OnDrive 
apresentados por Celular Direto (2019) são: economia de espaço no seu 
computador; armazenamento mais seguro; liberdade de acesso; versão para 
computador e smartphones; senha no aplicativo; compartilhamento e edição 
colaborativa de arquivos e pastas; recuperar arquivos apagados; busca por 
palavras em documentos, imagens e arquivos em PDF; acesso off-line aos arquivos 
e inserir apresentações em PowerPoint em sites.
Uma vantagem de trabalhar com OneDrive é a possibilidade de salvar 
uma pasta no seu computador e sincronizar automaticamente seus arquivos com 
a versão da nuvem, trabalhando de forma local (off-line) ou remota (on-line) 
com seus arquivos. O explorer de seu computador sinaliza se os seus arquivos 
já foram sincronizados com a versão on-line ou não, e para atualizar basta clicar 
com o botão direito do mouse sobre o arquivo e sincronizar. 
Para acessar o OneDrive, utilize o seguinte link: https://onedrive.live.com/
DICAS
5.3 DROPBOX
O DropBox foi um dos primeiros serviços de hospedagem de arquivos 
em cloud mais popular da web e que nos últimos anos perdeu espaço para os 
serviços da Microsoft e Google. Segundo Tutida (2019), a grande vantagem do 
Dropbox é a sua acessibilidade em vários dispositivos e plataformas, é suportado 
pelas plataformas do Windows, iOS, Android e Linux. Funciona em um algoritmo 
de transferência de arquivos em nível de bloco, sincronizando com a nuvem no 
momento em que é alterado. Quanto ao aspecto de segurança, ele criptografa 
os dados em trânsito e em repouso e para não ocorrer invasão de hackers o 
Dropbox ativa um recurso de autenticação de dois fatores para efetuar login. Está 
disponível pelo endereço: https://www.dropbox.com/.
40
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
5.4 SALESFORCE
Segundo Furht e Escalante (2010), o Salesforce é uma plataforma em nuvem 
SaaS comercial que fornece aplicativos personalizáveis, principalmente serviços 
de Gerenciamento de Relacionamento com o Cliente (Customer Relationship 
Management (CRM)), para os consumidores. 
Existem dois produtos principais apresentados pelo Salesforce. O Sales 
Cloud é um grupo de aplicativos abrangentes para melhorar a conveniência e a 
eficiência das atividades de negócios; e a Service Cloud é fornecida para integrar 
aplicativos de redes sociais como Facebook e Twitter, para construir a comunidade 
de atendimento ao cliente de um usuário (FURHT, ESCALANTE (2010).
Esta mesma referência nos esclarece que os serviços do Salesforce CRM 
são implantados na plataforma em nuvem Force.com, que opera uma arquitetura 
orientada por metadados orientada para multilocação. A multilocação permite 
compartilhar a mesma versão de um aplicativo entre muitos usuários, mas cada 
usuário pode acessar apenas seus próprios dados privados, o que mantém suas 
atividades isoladas. Todas as funcionalidades e configurações dos aplicativos 
são descritas com metadados, para que os usuários possam personalizar os 
aplicativos como desejarem. Embora o modelo de aplicativo compartilhado 
possa causar interferência entre os usuários, a nuvem do Salesforce SaaS tem as 
seguintes vantagens (FURHT, ESCALANTE (2010): 
• Os provedores de serviços podem desenvolver apenas uma versão do aplicativo 
e não precisam se preocupar com ambientes de execução heterogêneos; 
• O compartilhamento do recurso de computação física, sistema operacional e 
ambiente de tempo de execução reduz o custo do serviço de aplicativo; e 
• Os consumidores de serviços são livres para escolher sua versão preferida do 
aplicativo e personalizá-lo para se adequar aos seus negócios.
5.5 CISCO WEBEX
 
O Cisco WebEx e uma plataforma de comunicação que fornece aplicativos 
para realização de reunião on-line e aplicações de videoconferência. Segundo Lima 
(2019), o Cisco WebEx permite reunir funcionários ou clientes que se encontram 
geograficamente distantes, para discussões e colaborações no ambiente digital, 
em tempo real como se estivessem presentes na mesma sala.
As duas principais ferramentas são o Cisco WebEx Meetings e o Cisco 
WeBex Teams. As principais vantagens estão em permitir muita colaboração nos 
negócios, melhorando seus processos empresariais e melhorarem os resultados 
das equipes de vendas, marketing, treinamento, gerenciamento de projeto e 
suporte. 
TÓPICO 2 — SOFTWARE COMO SERVIÇO - SAAS
41
Quanto ao aspecto de segurança, Lima (2019) destaca que a ferramenta 
oferece diversos recursos que tornam a sua implantação, a sua manutenção (rede, 
plataforma, entre outros) e o seu uso (do agendamento da reunião, autenticação 
de participantes, compartilhamento de documentos etc.) mais seguros. Destaca 
também que o Cisco Webex Meeting possui versões para os sistemas operacionais 
Windows, Mac Osx e sistemas operacionais mobile IOS e Android e que o 
aplicativo versão desktop permite que você realize agendamentos, inicie e entre 
em reuniões de forma rápida e fácil. 
Enfim, para Lima (2019), dentro da sua sala de reunião pessoal do Webex 
é possível utilizar diversos recursos dos quais os principais são a interação com os 
participantes via áudio e vídeo, a interação com os participantes via mensagem de 
texto, o compartilhamento de tela, a gravação da sua reunião no Webex e também 
disponibiliza seu endereço da empresa no Portal Webex onde o link sempre é 
disponível da seguinte forma: https://NOME_DA_SUA_EMPRESA.webex.com. 
5.6 CONCUR
Segundo Shapiro (2018), a partir de 2018, a Concur se tornou um produto 
da família SAP, agora é SAP Concur. É um SaaS utilizado para o gerenciamento 
de despesas, viagens e faturas para maior visibilidade e controle.
Segundo Google Play (2020b), com o aplicativo SAP Concur, o usuário 
pode gerenciar todo o processo de viagem e despesa de negócios de onde 
estiver, pode tirar fotos dos recibos para nunca mais perdê-los, pode analisar e 
aprovar rapidamente relatórios, faturas e solicitações de viagem, também pode 
adicionar participantes a reuniões ou refeições de negócios, pode importar dados 
dos cartões de crédito, reservar um voo/hotel/automóvel rápida e facilmente 
de qualquer lugar, também pode visualizar sugestões de hotel personalizadas, 
especificar encargos de hotel por item, acessar e gerenciar seu itinerário enquantoviaja, pode integrar seu itinerário ao aplicativo TripIt, pode acompanhar e enviar 
facilmente a quilometragem do automóvel e muito mais.
5.7 GOTOMEETING
Segundo o Google Play (2020a), no GoToMeeting permite-se: 
• Participar de uma reunião ou organize-a em qualquer telefone ou tablet com 
Android.
• Áudio de VoIP de banda completa, totalmente claro, ou chamada telefônica.
• Conferência de vídeo face a face, em que parte do mundo você estiver.
• Compartilhar a tela completa do seu dispositivo com todos os que estão na 
reunião.
• Transferir o controle da apresentação para outros participantes para ver 
apresentações, simulações, relatórios etc.
42
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
• Ver todas as próximas reuniões e entre com um simples toque.
• Receber alertas quando uma reunião estiver prestes a começar.
• Usar o chat com cada participante em separado ou com todos os presentes na 
reunião.
5.8 GOOGLE BIGQUERY 
BigQuery é uma plataforma de armazenamento de dados corporativo que 
realiza consultas SQL super-rápidas utilizando a capacidade de processamento 
da infraestrutura do Google para facilitar e integrar a análise de uma quantidade 
muito grande de dados. Ou seja, é uma poderosa ferramenta de Big Data que ajuda 
as empresas em suas estratégias de negócio que permite acesso às informações 
em tempo real com o streaming e obter análises avançadas, preditivas e assertivas 
(SANTODIGITAL, 2020).
Segundo Google Cloud (2020b), o BigQuery é totalmente gerenciado e 
acessado pelo Console do Cloud, pela UI clássica da Web, por uma ferramenta de 
linha de comando ou fazendo chamadas à API REST do BigQuery com diversas 
bibliotecas de cliente, como Java, .NET ou Python. 
O sistema de armazenado é baseado em NoSQL e não permite a remoção 
ou renomeação dos arquivos, além de não criar outros links para o mesmo 
projeto. A interação é feita por meio de navegador web próprio, uma linha de 
comando ou por chamadas para API do REST utilizando linguagens JAVA, .NET 
ou Phyton. Também é possível acessar cópias dos projetos na plataforma Google 
Cloud. O sistema permite o total gerenciamento de acesso de acordo com o perfil 
da empresa (GOOGLE CLOUD, 2020a).
Recomendamos a leitura do artigo Entenda as principais técnicas para 
otimização de custos do BigQuery, disponível em: https://www.santodigital.com.br/
bigquery-entenda-as-principais-tecnicas-para-otimizacao-de-custos/. 
DICAS
TÓPICO 2 — SOFTWARE COMO SERVIÇO - SAAS
43
5.9 O GOOGLE DRIVE 
O Google Drive é um exemplo de uma aplicação SaaS muito popular e 
utilizado para hospedar e compartilhar arquivos. Geralmente, esses serviços já 
incluem o gerenciamento de licenças, possíveis manutenções, atualizações e todo 
o suporte de que o usuário precisa (SOARES, 2020). 
O Google Drive é suportado pelas plataformas Windows, iOS e Android, 
porém segundo Tutida (2019), ele não oferece armazenamento ilimitado, vem com 
15 GB de espaço de armazenamento de dados gratuito dividido em diferentes 
aplicativos do Google, como o Google Fotos, o e-mail e os semelhantes. O Google 
Drive está disponível em: https://www.google.com/drive/.
Google Drive é simples e fácil de usar. Por exemplo, utilizando o Gmail, o 
usuário pode enviar arquivos grandes anexos pelo Google Drive disponibilizando 
o link para fazer o upload. Quanto ao aspecto de segurança, o Google criptografa 
seus arquivos em trânsito seguindo o protocolo criptográfico TLS. Assim como o 
Dropbox, o Google Drive também apresenta um sistema de verificação em duas 
etapas. Sobre os centros de dados, o Google Drive usa grades de laser e scanners 
biométricos para garantir segurança completa. Assim, seus dados ficarão bem 
seguros e protegidos (TUTIDA, 2019). 
44
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu que:
• No SaaS o consumidor do serviço precisa apenas configurar alguns parâmetros 
específicos do aplicativo e gerenciar os usuários.
• No SaaS o provedor de serviços lida com toda a infraestrutura, toda a lógica do 
aplicativo, todas as implantações e tudo relacionado à entrega do produto ou 
serviço.
• Alguns exemplos de SaaS são os serviços comerciais, incluindo ERP (Enterprise 
Resource Planning), CRM (Customer Relationship Management), cobrança, vendas, 
recursos humanos, as redes sociais, para o gerenciamento de documentos 
eletrônicos, videoconferências, entre outros.
• O Netflix é um exemplo clássico de SaaS, em que o usuário paga um plano para 
assistir séries e filmes, não se responsabilizando por sua manutenção, ficando 
o provedor responsável pela solução do problema. 
• Existem várias soluções SaaS que lidam com segurança, monitoramento, 
registro em log, testes e assim por diante como também na categoria de dados 
inclui business intelligence, banco de dados como serviço, visualização de 
dados, dashboards, data mining e muito mais bem como controlam totalmente 
a infraestrutura, o desempenho, a segurança, a escalabilidade, a privacidade e 
muito mais.
• Às características essenciais dos serviços SaaS que os tornam único em relação 
ao software tradicional são que os serviços SaaS são entregues como um modelo 
para muitos, no qual uma única instância do aplicativo pode ser compartilhada 
por vários ou múltiplos locatários ou clientes com acesso a qualquer lugar e 
com gerenciamento centralizado suportado por vários dispositivas, com 
melhor escalabilidade e com alta disponibilidade e como integração de API. 
• Os principais benefícios dos serviços SaaS oferecidos são: Nenhuma instalação 
no lado do cliente, economia de custos, menos manutenção, facilidade de 
acesso, escala dinâmica, recuperação de desastres e multilocação.
• Os principais problemas com os serviços SaaS são: segurança, requisitos de 
conectividade e perda de controle.
• O uso de soluções SaaS envolvendo grande quantidade de dados são utilizados para 
que todo o potencial de dados das empresas seja utilizado a favor delas. Através das 
técnicas em Big Data, é possível entendendo o comportamento do consumidor e 
buscar entender de formas inteligentes as melhorias dos serviços e produtos.
45
• O modelo de cobrança do SaaS funciona como um aluguel, sendo cobrado de 
diferentes formas, com semanais, mensais, semestrais, anuais ou apenas de 
acordo com seu uso e assinatura obtida.
• Os principais provedores de SaaS são: Google Apps, OneDrive, Dropbox, 
Salesforce, Cisco WebEx, Concur, GoToMeeting, Google BigQuery e Google 
Drive.
46
1 Na área de desenvolvimento de software, existem muitas tarefas que as equipes 
de desenvolvimento são responsáveis, sendo uma delas a infraestrutura de 
servidores para manter ou hospedar os serviços e aplicações desenvolvidas, 
trabalho este que pode ser evitado com uso de serviços em nuvem. Defina o 
que é e como funciona Software como um Serviço (SaaS).
2 Uma das preocupações de equipes de desenvolvimento de software é a 
configuração, acompanhamento e controle de infraestrutura de servidores 
para hospedar as aplicações desenvolvidas, assim como os dados em 
Sistemas Gerenciadores de Bancos de Dados. Qual é a importância da SaaS 
no cenário de Big Data?
3 Os SaaS são modelos de fornecimentos de algum software por meio da 
internet sem necessidade de algum download ou fidelidade. Cite três 
exemplos práticos de provedores SaaS e que serviços cada um oferecem.
4 O Software as a Service (SaaS) surgiu por volta de 1999 e suas aplicações são 
licenciadas como um serviço sob demanda com um modelo de distribuição do 
serviço. Com base no Software as a Service (SaaS), analise as sentenças a seguir.
I- No SaaS os aplicativos rodam diretamente nos servidores do fornecedor.
II- Os aplicativos são instalados na máquina do cliente e ficam disponíveis 
permanentemente. 
III- As aplicações SaaS são atualizadas com frequência pois são hospedadas 
em um único local em um servidor, o que evita que os clientes tenham que 
instalar as novas versões.
Assinale a alternativa CORRETA:
a) ( ) As sentenças I e II estão corretas.
b) ( ) Somente a sentençaII está correta.
c) ( ) As sentenças I e III estão corretas.
d) ( ) Somente a sentença III está correta.
 
5 Os provedores SaaS oferecem serviços para criar, gerenciar e rastrear 
documento e serviços eletrônicos sendo utilizado para designar uma nova 
maneira de distribuição e comercialização de software, que possui como 
uma das suas características:
a) ( ) Fornece serviço de suporte ao software no computador do cliente.
b) ( ) Os serviços são hospedados e gerenciados a partir de vários locais na nuvem.
c) ( ) Não precisar de licença para ser utilizado.
d) ( ) Executam as atualizações automáticas garantindo que cada cliente 
acesse a versão mais recente do aplicativo sem nenhuma atualização do 
lado do usuário.
AUTOATIVIDADE
47
TÓPICO 3 — 
UNIDADE 1
PLATAFORMA COMO SERVIÇO PAAS
1 INTRODUÇÃO
Plataforma como um Serviço (PaaS), Software como um Serviço (SaaS) e 
Infraestrutura como um Serviço (IaaS) são os três principais modelos de serviços 
utilizados no ambiente de computação em nuvem. Através destes modelos, as 
empresas e usuários podem alugar sob demanda a capacidade de computação e 
armazenamento dos dados e informações de forma transparente para acessá-los 
a qualquer momento e em qualquer lugar independente de localização. 
Oliveira (2020) informa que atualmente muitas empresas desejam oferecer 
um nível maior de atendimento e suporte ao cliente usando aplicativos e soluções 
desenvolvidas na Web e nesse contexto, o PaaS torna-se atrativo e existem duas 
maneiras de se beneficiar de toda sua estrutura: utilizando PaaS público ou do 
tipo privado. 
O PaaS público é entregue por um provedor de serviços para a criação 
de aplicativos, enquanto o PaaS corporativo (privado) é fornecido pela TI 
central de uma organização para desenvolvedores e, possivelmente parceiros e 
clientes comerciais. Dessa forma, o PaaS permite que os desenvolvedores criem e 
implementem seus aplicativos de maneira on-line, não precisando se preocupar 
com a instalação de hardwares e softwares internos (OLIVEIRA, 2020).
Enfim, podemos destacar que a computação em nuvem aumentou 
ainda mais o nível de eficiência e agilidade atingido pela virtualização dos data 
centers. Segundo Silva (2017), por meio da disponibilização de recursos em pool, 
diversidade geográfica e conectividade universal, a computação em nuvem 
facilita o fornecimento de software hospedados, plataformas e infraestruturas 
como um serviço e se tornarão cada vez mais comuns. Nesse modelo de nuvem, 
contrata-se um ambiente completo de desenvolvimento, no qual é possível criar, 
modificar e otimizar softwares e aplicações.
2 CONCEITOS DE PAAS
O serviço da PaaS (Platform as a Service), ou Plataforma como Serviço, 
foi definido pelo Instituto Nacional de Padrões e Tecnologias (National Institute 
of Standards and Technology - NIST) como um modelo de serviço básico, assim 
como as tecnologias de IaaS (infraestrutura como serviço) e SaaS (software 
como serviço) (OLIVEIRA, 2020). Trata-se de uma plataforma para desenvolver 
48
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
aplicações sem que seja preciso instalar qualquer ferramenta de desenvolvimento 
e bibliotecas. Inclui ambientação, compreendendo o ciclo de desenvolvimento, 
teste e implementação, e até mesmo hospedagem de aplicações web como um 
serviço entregue por uma base em nuvem.
Sousa et al. (2020) explicam que o modelo de PaaS fornece sistema 
operacional, linguagens de programação e ambientes de desenvolvimento para 
as aplicações, auxiliando a implementação de sistemas de software. Nele o 
usuário não administra ou controla a infraestrutura subjacente, mas tem controle 
das aplicações implantadas e, possivelmente, as configurações de aplicações 
hospedadas nesta infraestrutura. Ela é, ao mesmo tempo, uma nova plataforma 
tecnológica e uma nova arquitetura de TI (SILVA, 2017). 
A Figura 12, criada por Oliveira (2020), apresenta as características que 
compõem a PaaS, em que se pode notar três entidades, de cima para baixo: 
IaaS, PaaS e a interface de acesso ao PaaS, além de outros elementos, como 
escalabilidade, gerenciamento de recursos, gerenciamento de aplicação e 
qualidade de serviço (QoS). A PaaS na nuvem oferece um modelo de computação, 
armazenamento e comunicação para as aplicações acessado pelos clientes via 
navegador, por exemplo, App Engine do Goole, Azure da Microsoft, Force.com, 
Red Hal OpenShift, Heroku e Engine Yard.
FIGURA 12 – MODELO DE REFERÊNCIA DA PLATAFORMA COMO SERVIÇO (PAAS)
FONTE: Adaptada de Buyya, Vecchiola e Selvi (2013, p. 117)
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
49
Através do PaaS, os clientes (empresas ou usuários) conseguem 
facilmente realizar a implementação de serviços web com menor custo, gestão e 
complexidade. O cliente não precisa manipular a infraestrutura necessária para 
que uma aplicação seja desenvolvida, como servidores, sistemas operacionais, 
sistemas de armazenamento de dados e rede. Seu foco passa a ser apenas o 
desenvolvimento da aplicação, salvo uma ou outra configuração no ambiente 
em que está hospedada. Portanto, o PaaS está em cima do IaaS e abstrai muitas 
das funções padrões no nível de aplicativos fornecendo essas funções como um 
serviço para que os desenvolvedores possam concentrar na lógica de negócio e 
não reinventar a roda, pois, são serviços e ferramentas suportadas pelo provedor 
sem que o cliente gerencie ou controle a infraestrutura da nuvem subjacente.
Os provedores de PaaS fornecem uma ampla variedade de linguagens 
de programação para os desenvolvedores de aplicativos, um framework de 
aplicativos, a comunicação dos aplicativos por bancos de dados e muitas outras 
ferramentas necessárias para desenvolver, testar e implantar um aplicativo como 
um serviço pela Internet. 
FIGURA 13 – SERVIÇOS FORNECIDOS POR PROVEDORES DE PAAS
FONTE: Adaptada de Chandrasekaran (2015)
As plataformas de desenvolvimento PaaS são diferentes das plataformas de 
desenvolvimento de aplicativos tradicionais. Portanto, segundo Chandrasekaran 
(2015) as principais características do PaaS está em:
• Prover todos os serviços em um único local para se desenvolver, testar, 
implantar, hospedar e manter aplicativos no mesmo IDE.
• Ter acesso da Web à plataforma de desenvolvimento.
• Ter acesso off-line quando poderá sincronizar seu IDE local com os serviços de 
PaaS quando a internet estiver ativa.
• Pela escalabilidade integrada e dinâmica para qualquer aplicativo desenvolvido 
para que seja capaz de lidar eficientemente com cargas variadas.
• Plataforma colaborativa para que possamos trabalham em diferentes locais e 
coletivamente.
• Fornecendo uma ampla variedade de ferramentas de cliente para ajudar o 
desenvolvedor.
http://introduceti.com.br/blog/ti-na-gestao-de-empresas/?utm_source=blog&utm_campaign=rc_blogpost
50
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
Nos destaca ArtSoft (2018) que o PaaS oferece toda uma plataforma 
completa para a hospedagem, criação e controle de um software, disponível em 
diversos provedores que estão na nuvem, no qual suas principais características 
são:
• Ferramentas simples para lidar com gerenciamento e faturamento de 
assinaturas.
• Integração de serviços web e com outras bases de dados sem conflitos no 
sistema.
• Segurança.
• Vários usuários podem utilizar o mesmo aplicativo (mesmo tipo de nuvem), 
sem quaisquer tipos de prejuízo ou lentidão nos serviços.
Para Silva (2017), o público-alvo principal da PaaS são os desenvolvedores 
de sistemas, os quais adotam uma plataforma oferecida por alguma empresa e 
seguem suas tecnologias e padrões para criar seus sistemas. Nesse ambiente, 
comumente é disponibilizado um conjunto de bibliotecas que os desenvolvedores 
podem utilizar para desenvolver e hospedar suas aplicações. Inicialmente, a 
adoção de PaaS pode exigir algum treinamento dos desenvolvedores que irão 
trabalhar com a plataforma. No entanto, em um segundo momento tais tecnologias 
podem reduzir o tempo de desenvolvimento por prover funcionalidades,facilitar 
o desenvolvimento e distribuição de aplicações por nuvem (SILVA; LUCRÉDIO, 
2012). Por exemplo: o Google App Engine (GAE) atualmente provê muitas 
funcionalidades, dentre elas API para processamento de imagens, armazenamento 
de dados de maneira não relacional, entre outros.
Quando a organização adotar o uso da PaaS, sua equipe de desenvolvimento 
só precisa se preocupar com a programação do software, pois o gerenciamento, 
manutenção e atualização da infraestrutura ficam a cargo do fornecedor bem como 
oferece na plataforma web várias ferramentas de desenvolvimento de software 
dessa maneira, ela se torna completa, robusta, escalável e totalmente disponível 
em uma nuvem pública ou privada. O ideal é usar o PaaS quando a empresa 
tem um time de desenvolvedores disponíveis para trabalhar simultaneamente e 
precisa executar as tarefas ou se houver uma grande integração com o banco de 
dados (SOFTLINE, 2017). 
Segundo Veras (2015), a PaaS está vinculada ao uso de ferramentas de 
desenvolvimento de terceiros, nas quais rodam os aplicativos e se armazenam os 
dados. A grande diferença com relação a um modelo convencional de terceirização 
é que a plataforma roda em data centers de provedores externos como a Microsoft 
com seu Azure e é acessada via web. Os desenvolvedores estão do lado da rede. 
A Figura 14 ilustra a ideia de PaaS.
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
51
FIGURA 14 – PAAS DE NUVEM
FONTE: Veras (2015, p. 150)
Veras (2015) afirma que os servidores físicos apresentam altos custos de 
operação devido ao mau aproveitamento dos recursos e devido ao gerenciamento 
complexo. Máquinas ou servidores virtuais através da computação em nuvem 
surgiram como solução. A possibilidade de fazer várias máquinas virtuais rodarem 
em um mesmo servidor físico otimiza o uso de recursos, mas também pode 
causar problemas se as instâncias virtuais forem criadas de forma desordenada. 
Os custos de operação e gerenciamento nessa situação também são altos. A 
abstração no nível da nuvem permite melhorar o gerenciamento dos ambientes 
virtualizados. No caso de IaaS, ela permite que os usuários aloquem máquinas 
virtuais precisando assim estruturar e configurar estas máquinas virtuais quanto 
ao armazenamento de redes. Com PaaS, isso já está resolvido.
Portanto, segundo Furht e Escalante (2010), os dois aspectos a serem 
considerados nas soluções PaaS são a abstração de recursos físicos e API de 
programação para dar suporte a novos serviços. Na Abstração de recursos físicos a 
camada da infraestrutura fornece aos usuários acesso isolado e direto à infraestrutura 
subjacente de forma que permita que os desenvolvedores criem novos softwares que 
não sejam suscetíveis ao número de máquinas provisionadas ou à sua configuração 
de rede, por exemplo. E referente a API de programação são bibliotecas de 
componentes para dar suporte a novos serviços que permite que os desenvolvedores 
construam/programem um novo software aproveitando os recursos disponíveis e 
compartilhados com o middleware (FURHT; ESCALANTE, 2010). 
3 CARACTERÍSTICAS DO PAAS
As plataformas de desenvolvimento PaaS são diferentes das plataformas 
de desenvolvimento de aplicativos tradicionais. A seguir, são apresentadas 
as características essenciais que tornam o PaaS exclusivo das plataformas de 
52
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
desenvolvimento tradicionais, segundo Chandrasekaran (2015):
1. Tudo em um: a maioria dos provedores de PaaS oferece serviços para 
desenvolver, testar, implantar, hospedar e manter aplicativos no mesmo IDE. 
Além disso, muitos provedores de serviços fornecem todas as linguagens de 
programação, frameworks, bancos de dados e outros serviços relacionados ao 
desenvolvimento que fazem os desenvolvedores escolher entre uma ampla 
variedade de plataformas de desenvolvimento (CHANDRASEKARAN, 2015).
2. Acesso da Web à plataforma de desenvolvimento: Uma plataforma de 
desenvolvimento típica usa quaisquer IDEs para desenvolver aplicativos. 
Normalmente, o IDE será instalado nas máquinas do desenvolvedor. O 
PaaS fornece acesso da web à plataforma de desenvolvimento. Usando a 
interface da web, qualquer desenvolvedor pode obter acesso à plataforma 
de desenvolvimento. A interface do usuário baseada na Web ajuda os 
desenvolvedores a criar, modificar, testar e implantar aplicativos diferentes na 
mesma plataforma (CHANDRASEKARAN, 2015).
3.	Acesso	off-line: um desenvolvedor pode não conseguir se conectar à Internet 
por um dia inteiro para acessar os serviços PaaS. Quando não há conectividade 
com a Internet, os desenvolvedores devem ter permissão para trabalhar off-
line. Para habilitar o desenvolvimento off-line, alguns dos provedores de PaaS 
permitem que o desenvolvedor sincronize seu IDE local com os serviços de PaaS. 
Os desenvolvedores podem desenvolver um aplicativo localmente e implantá-
lo on-line sempre que estiverem conectados à Internet (CHANDRASEKARAN, 
2015).
4. Escalabilidade integrada: a escalabilidade é um requisito importante para 
os aplicativos da web ou SaaS da nova geração. É muito difícil habilitar a 
escalabilidade dinâmica para qualquer aplicativo desenvolvido usando 
plataformas de desenvolvimento tradicionais. No entanto, os serviços PaaS 
fornece escalabilidade interna para um aplicativo desenvolvido usando 
qualquer PaaS específico. Isso garante que o aplicativo seja capaz de lidar com 
cargas variadas com eficiência (CHANDRASEKARAN, 2015).
5. Plataforma colaborativa: Atualmente, a equipe de desenvolvimento é 
composta por desenvolvedores que trabalham em diferentes locais. Há uma 
necessidade de uma plataforma comum em que os desenvolvedores possam 
trabalhar em conjunto no mesmo projeto. A maioria dos serviços PaaS fornece 
suporte ao desenvolvimento colaborativo. Para permitir a colaboração entre 
desenvolvedores, a maioria dos provedores de PaaS fornece ferramentas para 
o planejamento e a comunicação do projeto (CHANDRASEKARAN, 2015).
6. Diversas ferramentas de cliente: Para facilitar o desenvolvimento, os 
provedores de PaaS fornecem uma ampla variedade de ferramentas de cliente 
para ajudar o desenvolvedor. As ferramentas do cliente incluem CLI, web 
CLI, web UI, REST API e IDE. Os desenvolvedores podem escolher qualquer 
ferramenta de sua escolha. Essas ferramentas clientes também são capazes de 
lidar com o gerenciamento de cobrança e assinatura (CHANDRASEKARAN, 
2015).
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
53
Para Chandrasekaran (2015), além dos benefícios relacionados aos custos, 
os serviços PaaS são uma opção adequada para as seguintes situações:
1. Desenvolvimento colaborativo: para aumentar o tempo de comercialização 
e a eficiência do desenvolvimento, é necessário um local comum em que 
a equipe de desenvolvimento e outras partes interessadas do aplicativo 
possam colaborar entre si. Como os serviços PaaS fornecem um ambiente de 
desenvolvimento colaborativo, é uma opção adequada para aplicativos que 
precisam de colaboração entre desenvolvedores e outros terceiros para executar 
o processo de desenvolvimento (CHANDRASEKARAN, 2015).
2. Teste e implantação automatizados: o teste e a criação automatizados de um 
aplicativo são muito úteis ao desenvolver aplicativos em um período muito 
curto. As ferramentas de teste automatizadas reduzem o tempo gasto nas 
ferramentas de teste manual. A maioria dos serviços de PaaS oferece recursos 
automatizados de teste e implantação. A equipe de desenvolvimento precisa se 
concentrar mais no desenvolvimento, em vez de testar e implantar. Assim, os 
serviços de PaaS são a melhor opção onde há necessidade de teste e implantação 
automatizados dos aplicativos (CHANDRASEKARAN, 2015).
3. Tempo de lançamento no mercado: Os serviços de PaaS seguem as 
metodologias de desenvolvimento iterativas e incrementais que garantem que 
o aplicativo esteja no mercado conforme o prazo especificado. Por exemplo, os 
serviços PaaS são a melhor opção para o desenvolvimento de aplicativos que 
usa metodologias de desenvolvimentoágil. Se o fornecedor do software deseja 
que seu aplicativo esteja no mercado o mais rápido possível, os serviços PaaS 
são a melhor opção para o desenvolvimento (CHANDRASEKARAN, 2015).
Conforme Raj e Sharma (2017 apud OLIVEIRA, 2020), as plataformas PaaS 
fornecem ambientes bem definidos, arquitetados, contínuos, sempre disponíveis, 
resilientes e escalonáveis, ajustados para as necessidades específicas de seus 
aplicativos e serviços. Para utilizá-la, o usuário paga conforme o uso, no entanto, 
alguns provedores cobram uma taxa mensal fixa pelo acesso à plataforma e aos 
seus aplicativos, em um modelo de pagamento baseado com frequência nas 
especificações do servidor, do número de projetos e do tempo de utilização. 
Enfim, parâmetros como a utilização de CPU, o uso de disco para transação e a 
largura de banda da rede podem determinar o custo do PaaS, sendo os principais 
parâmetros que definem o seu faturamento (RAJ; RAMAN, 2018), ou seja, o uso 
de CPU por hora; disponibilidade de serviço; cobrança por serviço utilizado e a 
largura da banda de rede de entrada e saída.
Para estes autores, uma das métricas mais usadas para definir a cobrança 
do PaaS é a largura de banda consumida, e a dificuldade encontrada para este 
parâmetro se dá pela dificuldade de calcular exatamente qual usuário de transação 
está consumindo uma quantidade específica de recursos de utilização da CPU 
por solicitação. Uma alternativa é então cobrar calculando a quantidade de dados 
armazenados que um usuário específico está consumindo e realizar a cobrança 
adequada do serviço. Enfim, ainda existe uma forma mais simples de cobrar, cujo 
único critério reside no fato de ter requisitos de código seguros e sem transações 
54
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
demoradas na CPU. Ao levar estes fatores em consideração poderá cobrar o uso 
de PaaS de duas modos: conforme o uso de cada usuário e os serviços utilizados; 
e a partir de uma taxa mensal fixa pelo acesso à plataforma e seus aplicativos, 
independente da quantidade de serviço utilizada. 
4 VANTAGENS E DESVANTAGENS DO USO DE PAAS
Podemos destacar como vantagem da utilização da PaaS o fato de as 
suas plataformas se integrarem a inúmeras soluções de software de terceiros 
integradas através de uma arquitetura orientada a serviços (SOA), geralmente 
chamadas de plugins, complementos ou extensões. Portanto, diversos são os 
benefícios e contraindicações no uso de PaaS, conforme destacado no Quadro 1.
Vantagens Desvantagens
Fácil desenvolvimento e implantação 
(deployment) e após o desenvolvimento 
a maioria dos serviços executará 
automaticamente o processo de teste e 
implantação.
Bloqueio de fornecedores pela falta 
de padrões, comum entre diferentes 
provedores de PaaS e as tecnologias 
proprietárias usadas pelos provedores 
de PaaS, que impedem de migração 
dos aplicativos de um provedor PaaS 
a outro.
Custo reduzido: não é necessário 
a compra de ferramentas de 
desenvolvimento e teste se os serviços 
de PaaS foram selecionados. Basta 
alugar estes recursos, reduzindo o 
custo total de propriedade da empresa 
de desenvolvimento.
Segurança: é um dos principais 
problemas, pois, normalmente os 
dados são armazenados em servidores 
de terceiros. Ao selecionar o provedor 
de PaaS, o desenvolvedor deve revisar 
as políticas de uso, de conformidade e 
de segurança do provedor de PaaS em 
relação aos seus próprios requisitos de 
segurança.
Suporte a desenvolvimento ágil: a 
maioria dos aplicativos desenvolvidos 
na nova geração usa metodologias 
ágeis, cenários em que os provedores 
de PaaS se destacam.
Pouca flexibilidade: infelizmente, os 
provedores de PaaS não fornecem aos 
desenvolvedores sua própria pilha 
de ferramentas. Em sua maioria, é 
oferecido suporte a várias linguagens 
de programação, além de serviços 
de banco de dados e ferramentas de 
suporte à programação.
Trabalho em conjunto: os serviços PaaS 
oferecem suporte a desenvolvedores 
de diferentes locais para trabalharem 
juntos no mesmo projeto.
QUADRO 1 – VANTAGENS E DESVANTAGENS DA PAAS
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
55
Fácil uso: alguns desenvolvedores 
podem não estar familiarizados com as 
interfaces fornecidas pela plataforma 
de desenvolvimento de aplicativos, o 
que dificulta o trabalho. Contudo, o 
PaaS fornece uma ampla variedade de 
ferramentas clientes, como CLI, CLI 
da web, UI da web, API e IDE.
Despesas de manutenção: em 
aplicativos locais, empresas de 
desenvolvimento ou fornecedores 
de software são responsáveis por 
manter o hardware subjacente, 
criando a necessidade de ter 
administradores qualificados para 
manter os servidores. Essa sobrecarga 
é eliminada pelos serviços PaaS, pois 
a infraestrutura subjacente é mantida 
pelos provedores de infraestrutura. 
Isso dá liberdade aos desenvolvedores 
para trabalhar no desenvolvimento de 
aplicativos.
Aplicativos escaláveis: a maioria 
dos aplicativos desenvolvidos 
usando serviços de PaaS são de web 
ou SaaS, com boa flexibilidade de 
acesso a recursos extras (conforme 
solicitado). Os serviços PaaS fornecem 
escalabilidade integrada ao aplicativo 
desenvolvido, usando a própria 
plataforma de PaaS.
FONTE: Adaptado de Chandrasekaran (2015)
5 APLICAÇÕES PAAS EM CENÁRIOS DE BIG DATA
 
As soluções da PaaS que causam um grande impacto são aquelas que se 
concentram em dispositivos móveis e Big Data. Segundo Silva (2020), quando se 
pensa em computação em nuvem, imagina-se grandes servidores em data centers 
de última tecnologia com grande quantidade de dados (Big Data) que vem 
provendo os mais variados serviços, como e-mail, armazenamento de arquivos e 
soluções em gerais. Contudo, objetivamente, a base da computação em nuvem é o 
fato de existir algum serviço disponível na internet, por meio de um computador 
interligado a outros pela internet para realizar um ou vários tipos de serviços.
56
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
 Construir aplicativos é uma tarefa desafiadora. Atualmente, muitas 
empresas surgiram oferecendo serviços de Big Data baseados em nuvem para 
ajudar outras empresas e organizações a resolver seus dilemas relacionados 
a dados. Existem muitos smartphones e celulares, além de tablets, com 
recursos que requerem personalizações para que a interface do usuário seja 
renderizada corretamente. As empresas e usuários costumam pagar para que 
os desenvolvedores criem uma versão para iOS, outra para Android, outra para 
iPad e assim por diante. 
Segundo Kavis (2014), com a Big Data, agora somos capazes de processar 
enormes quantidades de dados e produzir resultados acionáveis mais rapidamente 
do que nunca. Os avanços nessa área estão produzindo melhor conhecimento a 
respeito dos clientes e informações em tempo real dos dispositivos conectados 
à Internet, como a saúde de um carro ou um motor de avião, e facilitando a 
descoberta de padrões em dados como nunca antes. 
O desafio é que é bastante complicado configurar e gerenciar os bancos 
de dados e a infraestrutura necessários para solucionar problemas de Big Data. 
Estão surgindo soluções PaaS de Big Data que tiram a ciência da configuração e 
gerenciamento desses ambientes complexos. À medida que essas soluções da PaaS 
começam a amadurecer, qualquer empresa poderá implementar uma solução de 
Big Data aproveitando um serviço de nuvem pré-pago, em vez de investir muito 
tempo, dinheiro e recursos tentando descobrir por si próprios (KAVIS, 2014).
Justifica então este mesmo autor que são essas soluções da PaaS que 
automatizam problemas específicos e complexos que farão uma enorme diferença 
no tempo de colocação no mercado no futuro. As empresas poderão aproveitar 
várias soluções de PaaS para criar rapidamente novos produtos e serviços com 
recursos limitados de funcionários e ilimitados. Portanto, o PaaS ainda está na 
fase de maturidade e ainda não é amplamente adotado. 
Cresce o número de empresas que utilizam PaaS disponibilizando 
aplicativos da nuvem e executando análises de Big Data. Por exemplo, naT-Systems (2020), o produto PaaS Big Data coleta e filtra dados de diferentes 
origens, como: 
[...] das redes sociais, Internet das Coisas, Internet Industrial, 
comunicação entre máquinas ou processos. Para o gerenciamento de 
dados, o AppAgile aposta em plataformas de Big Data como Hadoop, 
NoSQL ou In-Memory. Quantidades grandes de dados são agregadas 
em um Data Lake. A avaliação dos dados é realizada por meio de 
análises avançadas e preditivas, análise estatística ou mineração. 
PaaS Big Data está disponível na Open Telekom Cloud, DSI vCloud 
(VMware), assim como na plataforma Microsoft Azure. Dessa maneira, 
também é possível implementar cenários híbridos na área de Big Data.
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
57
[...]
Com base na plataforma de contêiner Red Hat OpenShift, a plataforma 
como serviço gerenciada Azure Hybrid da T-System está disponível a 
partir da Microsoft Cloud da Alemanha e globalmente como oferta 
modular de plataforma como serviço. Na Microsoft Cloud Alemanha, 
os serviços Azure são disponibilizados de data centers alemães e os 
dados dos clientes são processados e armazenados exclusivamente no 
país. O acesso aos dados dos clientes fica nas mãos do administrador 
de dados de confiança, a T-Systems. Sem a autorização da empresa 
ou do cliente, a Microsoft não obtém acesso. Por meio da abordagem 
híbrida do AppAgile, os clientes podem combinar aplicativos privados 
e de dados críticos com ofertas da nuvem pública e, mesmo assim, 
manter o controle total sobre seus dados (T-SYSTEMS, 2020, s.p.).
Assim como a Plataforma como um Serviço (PaaS), Software como um 
Serviço (SaaS) e Infraestrutura como um Serviço (IaaS) cresceram ao longo dos 
anos, o Big Data como Serviço (BDaaS) também cresceu nas empresas devido aos 
desafios envolvendo o aumento da geração de dados e a necessidade de fazer 
análises precisas para a tomada de decisão. Segundo 2Cloud (2018), algumas 
vantagens de adotar o Big Data as a Service além da simplicidade, segurança 
e produtividade está o baixo custo de implementação e gerenciamento e a 
escalabilidade que adapte a capacidade de armazenamento e processamento 
facilmente. 
6 PLATAFORMAS DE PAAS
O fornecedor de um PaaS, em geral, oferece uma variedade de ferramentas 
e utilitários para dar suporte ao design, à integração, ao teste, ao monitoramento 
e à implantação do aplicativo. Dão suporte para colaboração entre pessoas, 
gerenciamento de dados, teste, pilhas de serviços, autenticação, monitoramento 
de performance, serviços de mensagens e componentes de interface, tudo de forma 
on-line com uma mega infraestrutura tecnológica e de maneira transparente e 
flexível (OLIVEIRA, 2020). Em alguns casos, o provedor de PaaS é executado em 
cima da infraestrutura de outro provedor, por exemplo, Heroku e Engine Yard 
são executados na Amazon Web Services - AWS. 
Exemplos de serviços fornecidos como plataformas: são 1) Arcabouços 
de execução; 2) Gerenciadores de bancos de dados; 3) Servidores Web e 4) 
Ferramentas de desenvolvimento etc. Nesta seção, apresentaremos alguns 
exemplos de plataformas como Serviços utilizadas no mercado.
6.1 AWS ELASTIC BEANSTALK
Segundo a Amazon Web Services (AWS), o AWS Elastic Beanstalk é um 
serviço de fácil utilização para implantação e escalabilidade de aplicações e 
serviços da web desenvolvidos com Java, .NET, PHP, Node.js, Python, Ruby, Go 
e Docker em servidores familiares como Apache, Nginx, Passenger e IIS. 
58
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
Os custos de manter um website utilizando Elastic Beanstalk podem 
variar de acordo com diversos fatores, tais como o número de instâncias 
do Amazon EC2 necessárias para controlar o tráfego de seu website, 
a largura de banda utilizada por seu aplicativo e qual banco de dados 
ou opções de armazenamento seu aplicativo utiliza (AWS, 2020a, s.p.). 
O AWS Elastic Beanstalk é um serviço que oferece ampla seleção de 
plataformas de aplicativos com uma variedade de opções de implantação do seu 
código por meio do Console de Gerenciamento da AWS, da interface da linha de 
comando do Elastic Beanstalk, do Visual Studio e do Eclipse (AWS, 2020b). Ele 
realiza monitoramento através de diversas métricas e atributos garantindo sua 
integridade, escalabilidade, personalização e conformidade com diversas normas 
internacionais a ISSO, entre outras.
Recomendamos a leitura no tutorial completo com perguntas frequentes 
a respeito do AWS Elastic Beanstalk, disponível no endereço: https://aws.amazon.com/
pt/elasticbeanstalk/faqs/, bem como o Guia do desenvolvedor do AWS Elastic Beanstalk, 
disponível em: https://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/awseb-dg.
pdf#GettingStarted.
DICAS
6.2 WINDOWS AZURE PLATFORM (WAP)
A plataforma Windows Azure (WAP) da Microsoft foi apresentada em 
2008, lançada em 2010 e renomeada para Microsoft Azure em 2014. É composto 
por um sistema operacional, um conjunto de serviços de suporte e integração 
com outros serviços como Dropbox, Google Apps e Salesforce. Esta plataforma 
fornece dimensionamento, balanceamento de carga e vários serviços de suporte, 
como identidade e autenticação, criptografia de mensagens, monitoramento e 
gerenciamento (OLIVEIRA, 2020).
Segundo Oliveira (2020), o WAP é desenvolvido como um PaaS primário, 
no qual os usuários gerenciam suas hospedagens e a escala de aplicações web em 
data centers da corporação, o que inclui algumas características do módulo de 
IaaS. Ele utiliza uma combinação de tecnologia web, como REST, HTTP E XML, 
integrada à ferramenta Visual Studio, o que possibilita que os desenvolvedores 
criem serviços que contenham a framework .NET.
Existem dois modelos de assinatura, um pré-pago e outro pós-pago, 
pagando somente pelo serviço que precisa, baseado na sua demanda de 
computação e armazenamento, além da capacidade de investimento que o cliente 
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3.html
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3.html
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/dotnet-toolkit.html
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-eclipsetoolkit.html
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
59
quer fazer. Seus principais serviços são: máquinas virtuais, gerenciamento de redes, 
aplicações em nuvem, armazenamento e backup, storSimple (armazenamento 
simplificado), automatização de processos, Streamings de vídeo, ao vivo ou 
sob demanda, Contêineres, Bancos de dados SQL, Análise de dados com IA e 
Machine Learning, IoT (SOFTLINE, 2017).
A WAP funciona como um apoio tecnológico ao negócio e sua estrutura 
serve para coleta e gerenciamento de dados, sendo uma fonte inesgotável de 
insights para novas estratégias. Segundo Softline (2017), sua capacidade de lidar 
com Big Data, data mining e data lake cria oportunidades de incluir Business 
Intelligence tanto no atendimento ao cliente quanto na otimização de custos e 
gestão financeira da empresa.
O Azure possui várias opções para deploy de aplicações para 
desenvolvedores, incluindo App Services, Cloud Services, Service Fabric, 
Container Service, Functions, Batch, WebJobs e muito mais. Independentemente 
do tipo de aplicação que se está desenvolvendo, a Microsoft possui excelentes 
ferramentas para ajudar a implementá-lo e dimensioná-lo (COSTA, 2017).
Para obter maiores informações das soluções e produtos de Azure, favor 
acessar o portal da Microsoft Azure pelo link: https://azure.microsoft.com/pt-br/.
Recomendamos acessar o guia completo de tudo que você precisa saber 
sobre o WAP. Disponível no endereço: https://brasil.softlinegroup.com/sobre-a-empresa/
blog/microsoft-azure-o-guia-completo-de-tudo-que-voce-precisa-saber.
DICAS
DICAS
60
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
6.3 HEROKU
Segundo Pacheco (2020, s.p.): “A Heroku é uma plataforma na nuvem 
que faz deploy de várias aplicações back-end seja para hospedagem, testes em 
produção ou escalar as suas aplicações, tem integração com o GitHub, deixando 
o uso maisfácil e com containers denominados Dyno”. 
É uma solução que abstrai o desenvolvedor dos detalhes de infraestrutura 
ao disponibilizar containers para instalação das aplicações, facilitando a 
manutenção, extensão e escalabilidade, além de oferecer maior agilidade para 
disponibilizar uma aplicação na web, com menor custo inicial. Atualmente, o 
Heroku suporta Ruby, Java, Clojure, Python, Scala e Node e possui um parque de 
mais de três milhões de aplicações instaladas (STORI, 2013).
O Heroku é composto por mais de 140 complementos, que vão desde 
alertas e notificações a bancos de dados, ferramentas de análise ou serviços 
de segurança para monitoramento, cache, e-mail ou rede. Muitos desses 
complementos, inclusive, são hospedados na AWS (COSTA, 2017). Ele é muito 
prático, ele elimina toda a complexidade de preparação e configuração de 
infraestrutura e disponibiliza de forma prática tudo o que um desenvolvedor 
necessita, o desenvolvedor precisa apenas se preocupar em fazer o que foi 
contratado, ou seja, código.
Segundo Costa (2017), a plataforma do Heroku remove todo o trabalho de 
instalar qualquer software disponível em seu ecossistema, não há preocupações 
por parte do desenvolvedor com aspectos relacionados à manutenibilidade, 
monitoramento e atualizações de versões necessárias para as tecnologias 
utilizadas em um projeto. Este é um dos motivos pelo qual o Heroku é sugerido 
em muitos tutoriais e artigos disponíveis na Internet. Ele simplesmente funciona 
e permite que tenhamos rapidamente uma aplicação web disponível para o 
mundo em poucos minutos. E eles também oferecem uma cota gratuita, com 
claras limitações, tornando-se uma ótima opção para testar seu aplicativo. 
Quer saber o que é e como funciona o Keruko? Acesse o endereço: https://
blog.geekhunter.com.br/heroku/.
DICAS
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
61
Para não ficar apenas na teoria, acesse o site que demonstra como criar uma 
aplicação Java simples sem o auxílio de plugins, e como instalar, no Heroku, usando o 
Heroku Toolbelt baseado em templates e um plugin para o Eclipse. Disponível em: https://
www.devmedia.com.br/primeiros-passos-em-paas-com-heroku/29465
DICAS
6.4 FORCE.COM
O Force.com é uma plataforma corporativa oferecida pelo Salesforce para 
ajuda os fornecedores de serviços a desenvolver e fornecer aplicativos estáveis, 
seguros e escaláveis. Duas principais tecnologias ativadoras do Force.com são 
multilocação e metadados (FURHT; ESCALANTE, 2010). 
Explicam estes autores que a abordagem de multilocação permite 
que diferentes usuários compartilhem modelos de aplicativos em um pool de 
recursos de computação física pública, enquanto as instâncias de aplicativos são 
independentes umas das outras. Para aplicativos personalizados, existe uma 
arquitetura orientada a metadados que gera componentes de aplicativos. Outras 
tecnologias e serviços da plataforma Force.com incluem infraestrutura de entrega 
de serviços, banco de dados, serviços lógicos, interfaces de usuário e ferramentas 
de desenvolvedor.
Segundo Veras (2015), o Force.com foi a primeira plataforma PaaS 
desenvolvida para criar aplicações SaaS multilocação. Aplicações dedicadas 
único local requerem um conjunto de recursos para satisfazer a uma organização. 
Aplicações multilocação podem satisfazer às necessidades de múltiplos locatários 
(companhias, ou mesmo departamentos dentro das companhias) usando recursos 
de hardware e funcionários necessários para gerenciar uma instância única de 
software. 
Operar só uma instância da aplicação para múltiplas organizações dá uma 
grande economia de escala para o provedor. Somente um conjunto de hardware é 
necessário para atender às necessidades dos usuários. Um conjunto de hardware 
pode atender a todos os usuários, em um staff experimentado mais reduzido 
pode gerenciar todo montante de software. Os desenvolvedores podem construir 
um único código em uma só plataforma (VERAS, 2015).
62
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
6.5 GOOGLE APP ENGINE
O Google App Engine (GAE) é uma PaaS que permite que sejam executados 
serviços na infraestrutura do Google. Possui ambiente de desenvolvimento para 
as linguagens Java™, PHP, Node.js, Python, C#, .Net, Ruby e Go em entre várias 
bibliotecas e frameworks conhecidos que fornecem uma máquina virtual, uma 
interface Servlets e serviços de armazenamento de dados (SILVA, 2017). 
O GAE mantém um ambiente de programação runtime (em tempo de 
execução), além de algumas APIs simples para acessar os serviços do Google onde 
os front-ends espalham solicitações HTTP com estratégias de balanceamento de 
carga e roteamento com base no conteúdo. Os sistemas runtime em execução 
nos servidores de aplicativos lidam com o processamento lógico dos aplicativos 
e fornecem conteúdo dinâmico da Web, enquanto as páginas estáticas são 
atendidas pela infraestrutura compartilhada do Google. Para dissociar os dados 
persistentes dos servidores de aplicativos, o GAE os coloca no armazenamento de 
dados em vez de em um sistema de arquivos local (FURHT; ESCALANTE, 2010). 
O portal Google Cloud (2020a) destaca que pelo GAE é possível criar 
aplicativos altamente escalonáveis em uma plataforma totalmente gerenciada 
e sem servidor, o que significa que faz o escalonamento sem interrupções em 
pequena ou grande escala sem se preocupar com o gerenciamento da infraestrutura 
subjacente utilizando linguagens e ferramentas open source conhecidas. O GAE 
permite criar e depurar o código-fonte na produção e executar, o back-ends de 
API com facilidade por meio das ferramentas mais usadas do setor, como o SDK 
do Cloud, Cloud Source Repositories, IntelliJ IDEA, Visual Studio e PowerShell. 
Proteja seus aplicativos contra ameaças usando os recursos de firewall do App 
Engine, regras de gerenciamento de identidade e acesso (IAM) e certificados 
gerenciador SSL/TLS. E por fim só pagando os serviços e recursos utilizados 
(GOOGLE CLOUD, 2020a).
Sugiro uma boa leitura no artigo O que é o App Engine e como publicar uma 
aplicação nele disponível no endereço: https://www.treinaweb.com.br/blog/o--e-o-app-
engine-e-como-publicar-uma-aplicacao-nele/ contendo uma boa explicação além dé 
ótimos vídeos de sua utilização.
DICAS
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
63
No portal da DevMedia há um artigo que traz uma rápida introdução à cloud 
computing e as possibilidades de desenvolvimento neste modelo utilizando o Google App 
Engine e que apresenta um guia como fazer a criação de um aplicativo Java na “nuvem” 
utilizando esta plataforma. Disponível em: https://www.devmedia.com.br/introducao-ao-
google-app-engine/24552.
DICAS
6.6 APACHE STRATOS
 
O Apache Stratos é uma estrutura PaaS altamente extensível que pode 
executar aplicativos Apache Tomcat, PHP e MySQL, oferece serviço, governança, 
segurança e desempenho de nível corporativo para nuvens privadas, públicas 
e híbridas (VAUGHAN-NICHOLS, 2014). A Apache afirma que "pode ser 
estendida para oferecer suporte a muito mais ambientes em todas as principais 
infraestruturas de nuvem. Para os desenvolvedores, fornece um ambiente baseado 
em nuvem para desenvolvimento, teste e execução de aplicativos escaláveis. 
Os provedores de TI se beneficiam de altas taxas de utilização, gerenciamento 
automatizado de recursos e informações em toda a plataforma, incluindo 
monitoramento e cobrança (VAUGHAN-NICHOLS, 2014). 
Segundo Haddad (2014), o Apache Stratos é usado pelas principais 
organizações que constroem ecossistemas conectados nas indústrias aeroespacial, 
de telecomunicações e de construção. Por exemplo, a iniciativa de linha aérea 
digital da Boeing, que está reinventando a logística da cadeia de suprimentos, 
é alimentada por Apache Stratos (incubadora). Os principais fornecedores de 
infraestrutura de rede estão integrando o Apache Stratos e fornecendo serviços 
avançados de telecomunicações à sua base de clientes, mantendo a confiabilidade 
e a disponibilidade da classe de telecomunicações sob carga máxima. Um 
fornecedorde equipamentos de construção e engenharia está construindo uma 
solução em nuvem com vários inquilinos que pode adaptar políticas e regras a 
nichos de mercado específicos (VAUGHAN-NICHOLS, 2014).
A arquitetura Apache Stratos nativa da nuvem fornece técnicas e negócios 
exclusivos, incluindo, de acordo com Haddad (2014):
• Modelo do cartucho: traz infraestrutura herdada para a nuvem e cria contêineres 
com reconhecimento de nuvem que hospedam serviços de infraestrutura e 
lógica de negócios. Criando um cartucho ou escolhendo opções pré-construídas, 
as equipes podem implantar facilmente o software tradicional da plataforma de 
aplicativos em um ambiente PaaS gerenciado. O modelo de cartucho permite 
a extensibilidade do tempo de execução e o suporte poliglota para qualquer 
linguagem de programação, estrutura de plataforma ou servidor desejado.
64
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
• Multilocação no contêiner: o Apache Stratos oferece suporte à multilocação 
dentro do contêiner, que otimiza a utilização de recursos, reduz a área ocupada 
por inquilinos e oferece suporte eficiente às implantações de PaaS que atendem 
a bases de clientes em larga escala (centenas de milhares ou milhões de 
inquilinos).
•	 Escalonamento	automático	de	carga	com	base	no	tráfego	http	e	não	http: A 
arquitetura Apache Stratos suporta o dimensionamento automático baseado 
em http e não http. O Apache Stratos PaaS monitora a integridade da nuvem, 
analisa tendências de uso e provisiona dinamicamente os recursos da nuvem 
com base na carga atual e futura.
• Integração personalizada do Load Balancer e roteamento de nuvem híbrida: 
O Apache Stratos (incubação) inclui um balanceador de carga nativo da nuvem 
e algoritmos de balanceamento de carga com reconhecimento de política que 
analisam o tráfego por inquilino, serviço e partição. A estrutura PaaS também 
se integrará a qualquer balanceador de carga de terceiros e balanceadores 
de tráfego em nuvem híbridos externos por meio de um componente do 
intermediário de mensagens. A estrutura PaaS escalará automaticamente 
as instâncias da nuvem em um ambiente híbrido diversificado, enquanto as 
respectivas políticas de qualidade de serviço.
6.7 OPENSHIFT
Segundo Oveo (2020), o container Cloud OpenShift é uma solução PaaS 
baseada em Docker, na qual você contrata recursos computacionais e distribui 
em containers, selecionando as linguagens e bancos de dados necessários para 
a aplicação e escalando conforme a demanda de acessos de forma manual ou 
automatizada. Oferece suporte para Node.js, Ruby, Python, PHP, Perl e Java 
realiza solução mais inteligente para automatizar deploys de aplicações que 
rodam em máquinas (gears) compostas de serviços chamados de cartuchos 
(cartridges). É uma plataforma de utilização simples, poupando tempo e esforço 
de desenvolvimento em um ambiente virtual isolado para testar, distribuir, 
desenvolver e escalar aplicações (OVEO, 2020).
Nextios (2017) afirma que containers são uma nova forma de abstração de 
infraestrutura que está conquistando muito espaço na comunidade desenvolvedora 
graças a sua praticidade, portabilidade e, especialmente, economia de recurso, 
ou seja, um container é semelhante a uma VM, sigla do inglês Virtual Machine, 
ou máquina virtual: uma abstração para encapsular aplicações em ambientes 
isolados. 
Nextios reforça ainda que uma grande vantagem dos containers no 
OpenShift é a portabilidade, que trata do serviço é encapsulado com tudo 
necessário para sua execução e, com isso, rodará tão bem no notebook do 
desenvolvedor quanto no ambiente de produção da empresa. Essa característica 
reduz o trabalho de reconfigurações e elimina incompatibilidades inconvenientes 
que poderiam retardar o lançamento de uma aplicação. 
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
65
Muitas vezes durante o desenvolvimento de uma aplicação, os seus 
criadores utilizam tecnologias diferentes para os múltiplos serviços dela, 
especialmente quando é adotada uma arquitetura de microsserviços. Um exemplo 
prático é um site em PHP com base em MySQL. Do ponto de vista técnico, integrar 
essas duas tecnologias até que não é tão difícil assim, mas no OpenShift basta 
executar um conteiner com uma imagem com PHP e MySQL e pronto. Nenhum 
problema de compatibilidade, nenhuma configuração extra. Surgiu a necessidade 
de incluir algo como phpMyAdmin, por exemplo? Só carregar mais um conteiner 
(NEXTIOS, 2017).
E para acelerar ainda mais o começo do desenvolvimento de um projeto, 
o OpenShift oferece uma ampla gama de Web Framework Quickstart Templates, 
que permitem que os desenvolvedores, em um clique, instalem frameworks como 
o cakePHP, o Rails, Django entre outros (NEXTIOS, 2017).
Para saber O que é OpenShift e como ele funciona, acesse o endereço: http://
blog.locawebcorp.com.br/solucoes/o-que-e-openshift-e-como-ele-funciona/.
NOTA
6.7.1 Red Hat OpenShift
Segundo RedHat (2020), o Red Hat OpenShift é uma plataforma de 
aplicações em container que inclui um sistema operacional Linux para empresas, 
um ambiente de execução em container, rede, monitoramento, registros e soluções 
de autenticação e autorização. Clientes como a rede de hotéis Hilton, usam o Red 
Hat OpenShift para configurar soluções de PaaS para o uso por desenvolvedores 
internos. 
Enfim, o PaaS mais pesquisado no mercado é o Red Hat OpenShift, 
que combina os poderes do Docker e Kubernetes com um sistema de controle 
prático próprio para empresas. O Red Hat OpenShift no Azure oferece uma 
implantação de autoatendimento flexível de clusters OpenShift totalmente 
gerenciados. Mantenha a conformidade regulatória e o foco no desenvolvimento 
de aplicativos, enquanto o patch dos seus nós mestres, de infraestrutura e de 
aplicativo é aplicado e eles são atualizados e monitorados pela Microsoft e pela 
Red Hat. Permite escolher seu próprio Registro, rede, armazenamento ou soluções 
CI/CD. Ou comecar imediatamente usando soluções internas com gerenciamento 
de código-fonte automatizado, builds de contêiner e de aplicativo, implantações, 
dimensionamento, gerenciamento de integridade e mais (MICROSOFT AZURE, 
2020). 
66
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
Com esta PaaS você pode automatizar o gerenciamento do ciclo de vida 
para ter mais segurança, soluções operacionais personalizadas e portabilidade de 
aplicações. Você também pode padronizar os fluxos de trabalho de desenvolvedor, 
otimizar a entrega, oferecer compatibilidade com vários ambientes e viabilizar a 
integração contínua com controle automático de versões. O Red Hat Marketplace 
oferece implantação automatizada de aplicações certificadas em qualquer cluster 
do Red Hat OpenShift. Além disso, o Red Hat OpenShift prioriza a segurança, 
conta com uma plataforma de Kubernetes com suporte e inclui consultoria e 
treinamento oferecidos por especialistas para os clientes que precisam de mais 
ajuda (REDHAT, 2020).
Para saber mais a respeito do Red Hat OpenShift, disponibilizado no Azure da 
Microsoft acesse: https://www.infoq.com/br/news/2018/07/azure-openshift-managed-k8s/
DICAS
6.8 IBM
Para Shinya (2018), a plataforma cloud da IBM une Platform-as-a-
Service (PaaS), Infrastructure-as-a-Service (IaaS), Software-as-a-Service (SaaS) e 
Function-as-a-Service (FaaS) em um catálogo com mais de 170 serviços, da IBM e 
terceiros. Atualmente o serviço de Serverless na IBM Cloud suporta as seguintes 
linguagens: Node.js, Swift, Java, Python, Ruby, Golang, PHP, .NET e qualquer 
outra linguagem suportada pelo Docker (como Rust, C, C++ e outros).
Os únicos pré-requisitos para obter este PaaS é ter uma conta na IBM 
Cloud e baixar e instalar como usuário Windows. Segundo IBM (2020), o IBM 
Cloud™ oferece suporte a mais de 1.000 clientes corporativos e mais de 19.000 
clusters de produção que usam Kubernetes. É fácil de se conectar e migrar por 
meio da implementação sob demanda de um ambiente gerenciado Red Hat® 
OpenShift® e com o nosso comprometimento com o ecossistema Red Hat. 
A IBM Cloud Education (2019)informa que a PaaS oferecida pela IBM é rica 
e escalável para desenvolver aplicativos nativos de nuvem do zero ou modernizar 
aplicativos existentes para se beneficiar da flexibilidade e escalabilidade da 
nuvem. Os serviços incluem o IBM Cloud Kubernetes Service, uma solução de 
orquestração de contêiner totalmente gerenciada; Red Hat OpenShift no IBM 
Cloud; IBM Cloudant e IBM Cloud Databases para PostgreSQL; e muito mais. O 
IBM Cloud Foundry é a versão da IBM do PaaS de código aberto para construção, 
teste, implementação e dimensionamento de aplicativos. E a plataforma IBM 
Watson permite implantar aplicativos de IA onde quer que seus dados residam - 
em qualquer nuvem ou em sua própria plataforma de nuvem privada.
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
67
6.9 JELASTIC
 Segundo Oliveira (2020), a solução de hospedagem Jelastic compete 
diretamente com a Amazon, a Google e a Microsoft com uma plataforma 
sofisticada que fornece aos usuários finais uma poderosa PaaS com recursos que 
ultrapassaram os da concorrência. O Jalastc fornece aos desenvolvedores suporte 
à linguagem em Java, PHP, Ruby, Node.js e Python. 
O Jelastic é uma plataforma de fácil implementação com automação 
devOps para unificar e automatizar o gerenciamento da infraestrutura em 
nuvem sendo altamente escalável sob demanda das empresas e clientes. Possui 
capacidade de implantar e gerenciar cargas de trabalho em nuvem pública, 
privada e híbrida ou multi-nuvem em mais de 70 data centers locais e no topo 
de nuvens de hiperescala como AWS, Google Cloud, Azure ou Digital Ocean, 
portanto com alta disponibilidade nos níveis de aplicativos e infra bem como alta 
interoperabilidade multi-nuvem de fácil migração e digitalização para a nuvem.
68
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
LEITURA COMPLEMENTAR
CLOUD COMPUTING E SUA UTILIDADE PARA EMPRESAS EM TEMPOS 
DE PANDEMIA
Adentro
Por conta das medidas sanitárias recomendadas pela OMS, muitas 
empresas estão de portas fechadas por tempo indeterminado. Nesse contexto, o 
uso de tecnologias que permitam o trabalho remoto é fundamental. Uma delas é 
a cloud computing. 
De fato, o número de postos de trabalho em home office aumentou 
exponencialmente, levando a uma maior demanda de serviços de cloud. Somente 
a Microsoft relata um aumento de 775% na procura pelo serviço. 
Com o intuito de falar mais desse assunto, explicamos como a cloud 
computing para empresas pode ser útil no contexto da pandemia de COVID-19. 
Mais acessibilidade às informações com cloud computing 
Uma das utilidades mais evidentes da cloud computing para as empresas 
que aderiram ao home office durante a pandemia é a acessibilidade remota às 
informações, como contatos de clientes e fornecedores. 
Em um único local, todos os colaboradores podem acessar os dados que 
precisam para realizar suas rotinas e manter as atividades da empresa.
Sem a cloud computing isso seria impossível, haja vista que as informações 
estariam centralizadas na empresa, não possibilitando o trabalho remoto. 
Ademais, os dados em cloud podem ser acessados a qualquer momento, 
de qualquer dispositivo conectado à internet.
 
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
69
Mais integração entre as equipes durante a pandemia 
Quando as ferramentas de comunicação via web começaram a surgir, 
muitos viram com maus olhos o que viria a ser um fator que contribuiria para a 
desumanização e o distanciamento das relações. 
Hoje em dia, vemos que é justamente o contrário. Por exemplo, as soluções 
de videoconferência em cloud computing permitem que sejam feitas reuniões 
com as equipes de trabalho, mantendo o contato entre os colaboradores.
Dessa forma, torna-se possível comunicar novas orientações, dar feedbacks 
e compartilhar resultados, sem perder de vista a comunicação visual. 
Durante a pandemia, com a imposição do isolamento social, essa 
ferramenta se tornou fundamental. 
Por isso mesmo, houve um crescimento abrupto da procura por esse 
serviço. Para se ter uma ideia da adesão às ferramentas de videoconferência, 
somente o Google registrou um aumento de 60% do uso diário do Google Meet.
 
Redução de custos com TI 
Manter uma estrutura de informações na empresa não somente 
impossibilita o trabalho remoto, como também pode ser muito oneroso. 
No contexto pelo qual passamos, isso significa, ainda, ter que manter os 
altos custos com TI, mesmo com a empresa de portas fechadas.
Ao contrário, ao adotar a cloud computing, é possível cortar os gastos 
com a manutenção das estruturas e hardwares, além de evitar os custos com a 
contratação de equipes de TI. 
De acordo com uma pesquisa realizada pela IDC, 77% das empresas que 
investiram em cloud conseguiram diminuir os custos com sua estrutura de TI.
“É importante dizer que uma das vantagens da cloud computing é o 
fato de a contratação desse serviço ter um custo bastante acessível, mesmo para 
empresas de menor porte”. 
Além disso, a manutenção de data center, hardware e equipe passam a ser 
de responsabilidade do serviço contratado. 
Cloud:	mais	flexibilidade	para	se	adaptar	a	novas	situações
70
UNIDADE 1 — FUNDAMENTOS DE CLOUD COMPUTING
Escalabilidade
Com certeza, as empresas que adotaram aplicações de cloud computing 
antes da pandemia saíram na frente quando a questão é adaptação ao novo 
contexto. 
De fato, sabemos que muitos empreendimentos podem ter sofrido com a 
diminuição da demanda e, consequentemente, das receitas. 
Nesse caso, a contração de um serviço de cloud possibilita a adaptação à 
estrutura utilizada em apenas alguns minutos.
Redução	de	custos	com	flexibilização	de	estrutura
Além disso, é possível reduzir ou aumentar a estrutura sem a necessidade 
de mobilizar uma equipe e investir em novos componentes de hardware. 
Em outras palavras, usar a cloud computing evita os custos da realização 
dessa operação pelos meios tradicionais, a qual exige dinheiro, tempo e um 
planejamento prévio.
Planos sob medida
A maioria dos serviços de cloud computing conta com planos que atendem 
a empresas de diversos portes. 
Há, ainda, alguns serviços de cloud que oferecem a seus clientes a 
possibilidade de personalizar pacotes, de maneira a pagar somente pelas soluções 
que desejam utilizar.
 
Utilizando softwares na pandemia por meio de cloud computing
A utilização de um software é fundamental para que se possa manter as 
operações de uma empresa por meio do trabalho remoto. 
Nesse sentido, a cloud computing permite o uso de softwares sem a 
necessidade de se adquirir uma licença.
Explicando de outra forma, com o SaaS (“Software como Serviço”), é 
possível usar um software on-line, sem a necessidade de se fazer configurações 
ou instalações de programas.
 
Cloud computing: uma tecnologia fundamental para empresas na pandemia
Como você mesmo pôde perceber a partir da leitura desse artigo, contratar 
esse tipo de serviço têm diversas utilidades para as empresas que foram obrigadas 
a interromper suas atividades e adotar o home office. 
TÓPICO 3 — PLATAFORMA COMO SERVIÇO PAAS
71
Isso porque a cloud computing permite o acesso remoto a informações da 
empresa, além de possibilitar o contato com as equipes e a utilização de softwares 
para a realização das operações.
FONTE: <https://adentrocloud.com.br/cloud-computing-utilidade-na-pandemia/>. Acesso em: 
18 set. 2020.
https://adentrocloud.com.br/cloud-computing-utilidade-na-pandemia/
72
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu que:
• A PaaS trata-se de uma plataforma de computação integrada para 
desenvolver aplicações sem que seja preciso instalar qualquer ferramenta de 
desenvolvimento e bibliotecas. 
• Oferece um conjunto de soluções como um serviço, compreendendo o ciclo de 
desenvolvimento, teste, implantação, e até mesmo hospedagem de aplicações 
na nuvem.
• Fornece uma ampla variedade de linguagens de programação para os 
desenvolvedores de aplicativos, um framework de aplicativos, a comunicação 
dos aplicativos por bancos de dados e muitas outras ferramentas. 
• O clientenão precisa manipular a infraestrutura necessária para que uma 
aplicação seja desenvolvida, como servidores, sistemas operacionais, sistemas 
de armazenamento de dados e rede. 
• As características essenciais que tornam o PaaS exclusivo são obter todos 
os recursos de em um só lugar, obter acesso da web à plataforma de 
desenvolvimento, obter acesso off-line, obter escalabilidade integrada, 
plataforma colaborativa e diversas ferramentas de cliente.
• As três principais desvantagens da PaaS são o bloqueio de fornecedores pela 
falta de padrões comum entre diferentes provedores de PaaS, a falta de política 
de segurança em servidores de terceiros e a pouca flexibilidade e suporte a 
serviços de banco de dados e ferramentas de suporte à programação.
• Uma das métricas mais usadas para definir a cobrança do PaaS é a largura de 
banda consumida, quantidade específica de recursos de utilização da CPU por 
solicitação e a quantidade de dados armazenados que um usuário específico 
está consumindo.
73
Ficou alguma dúvida? Construímos uma trilha de aprendizagem 
pensando em facilitar sua compreensão. Acesse o QR Code, que levará ao 
AVA, e veja as novidades que preparamos para seu estudo.
CHAMADA
• As soluções da PaaS que causam um grande impacto são aquelas que se 
concentram em dispositivos móveis e Big Data realizando a análises dos dados. 
• Os principais exemplos de Plataformas de PaaS são: AWS Elastic Beanstalk, 
Windows Azure Plataform (WAP), Heroku, Force.com, Google App Engine, 
Apache Stratos, OpenShift, IBM e Jelastic.
74
1 A Cloud Computing, ou computação em nuvem, pode ser entendida como 
um serviço, em que empresas não precisam possuir uma infraestrutura de 
datacenter local, podendo utilizar plataformas em nuvem. Defina o que é e 
como funciona Plataforma como um Serviço (PaaS). 
2 A computação em nuvem permite que empresas deixem de possuir um 
datacenter para manter armazenar seus dados, evitando gastos com 
infraestrutura de servidor, permitindo que faça o mesmo com custo mais 
baixo. Qual é a importância da PaaS no cenário de Big Data?
3 A PaaS na nuvem oferece um modelo de computação, armazenamento e 
comunicação para as aplicações acessado pelos clientes na nuvem. Cite três 
exemplos práticos de provedores PaaS e que serviços cada um oferecem.
4 Entre os modelos de computação em nuvem, a PaaS é o mais indicado, 
pois, inclui infraestrutura de armazenamento e de rede e ferramentas de 
desenvolvimento. No que tange às definições de PaaS, analise as sentenças 
a seguir. 
I- Permite que uma aplicação seja implantada e distribuída sem que seja 
preciso se preocupar com as camadas de hardware e software necessárias.
II- Seu ambiente de execução é controlado somente pelo fornecedor do serviço 
sem a colaboração entre desenvolvedores do cliente. 
III- Oferece um modelo arquitetural padronizado para as aplicações.
IV- Não fornece um sistema operacional, linguagens de programação e 
ambientes de desenvolvimento para as aplicações.
Referente à Plataforma como um serviço (PaaS), assinale a alternativa 
CORRETA:
a) ( ) As sentenças II e III estão corretas.
b) ( ) As sentenças I, II e IV estão corretas.
c) ( ) As sentenças I e III estão corretas.
d) ( ) As sentenças II, III e IV estão corretas.
5 A PaaS trata-se de uma plataforma para desenvolver aplicações sem que 
seja preciso instalar qualquer ferramenta de desenvolvimento e bibliotecas. 
Referente a computação em nuvem, analise as sentenças a seguir:
I- O cliente não precisa manipular a infraestrutura necessária para que uma 
aplicação seja desenvolvida, como servidores, sistemas operacionais, 
sistemas de armazenamento de dados e rede.
II- A falta de padrões comum entre diferentes provedores de PaaS e as 
tecnologias proprietárias usadas pelos provedores de PaaS não são motivos 
de bloqueio de fornecedores PaaS.
AUTOATIVIDADE
75
III- A maioria dos serviços de PaaS não oferece recursos automatizados de 
teste e implantação.
Assinale a alternativa CORRETA:
a) ( ) As sentenças I e II estão corretas.
b) ( ) As sentenças I e III estão corretas.
c) ( ) Somente a sentença II está correta.
d) ( ) Somente a sentença III está correta.
76
REFERÊNCIAS
2CLOUD. Big data e analytics: como a computação em nuvem pode ajudar? 
c2018. Disponível em: https://www.2cloud.com.br/big-data-e-analytics-como-a-
computacao-em-nuvem-pode-ajudar/. Acesso em: 20 jul. 2020.
APACHE STRATOS. Apache Stratos. c2017. Disponível: https://stratos.apache.
org/. Acesso em: 22 jul. 2020.
ARTSOFT SISTEMAS. IaaS, SaaS e PaaS no conceito de cloud computing. 
2018. Disponível em: https://www.artsoftsistemas.com.br/blog/iaas-saas-e-paas-
no-conceito-de-cloud-computing/. Acesso em: 13 jul. 2020.
AWS. Definição	de	preço	do	AWS	Elastic	Beanstalk. c2020a. Disponível em: 
https://aws.amazon.com/pt/elasticbeanstalk/pricing/#:~:text=Os%20custos%20
de%20manter%20um,op%C3%A7%C3%B5es%20de%20armazenamento%20
seu%20aplicativo. Acesso em: 13 jul. 2020.
AWS. Recursos	do	AWS	Elastic	Beanstalk. c2020b. Disponível em: https://aws.
amazon.com/pt/elasticbeanstalk/details/. Acesso em: 13 jul. 2020.
BAI, H. Zen of cloud: learning cloud computing by examples on microsoft 
azure. Boca Raton, FL: CRC Press, 2015. ISBN-13: 978-1-4822-1581-6.
BHOWMIK, S. Cloud computing. Cabridge: Cambridge Univesity, 2017.
BROWN, E. Programação	web	com	node	e	express: beneficiando-se da stack 
JavaScript. São Paulo: Novatec Editora Ltda, 2020. ISBN: 978-65-86057-09-6.
BUYYA, R.; VECCHIOLA, C.; SELVI, S. T. Mastering cloud computing: 
foundation and applications programming. Waltham: Morgan Kaufmann, 
2013. Disponível em: https://1library.net/document/ozl74rry-mastering-cloud-
computing-rajkumar-buyya-pdf.html. Acesso em: 13 ago. 2020.
BUYYA, R.; BROBERG, J.; GOSCINSKI, A. Cloud computing: principles and 
paradigms. Hoboken: John Wiley & Sons, 2011. ISBN: 978-0-470-88799-8. 
Disponível em: http://dhoto.lecturer.pens.ac.id/lecture_notes/internet_of_things/
CLOUD%20COMPUTING%20Principles%20and%20Paradigms.pdf. Acesso em: 
28 set. 2020.
CELULAR DIRETO. 10 funções do OneDrive que vão facilitar seus trabalhos. 
Celular Direto, Saquarema, 13 fev. 2019. Disponível em: https://www.
celulardireto.com.br/10-funcoes-do-onedrive-que-vao-facilitar-seus-trabalhos/. 
Acesso em: 13 ago. 2020.
77
CHANDRASEKARAN, K. Essentials of cloud computing. Boca Raton: CRC 
Press, 2015. seus-trabalhos/. Acesso em: 13 ago. 2020. Disponível em: https://
keyhannet.com/wp-content/uploads/2018/11/K.-Chandrasekaran-Essentials-of-
Cloud-Computing-2014-Chapman-and-Hall_CRC.pdf. Acesso em: 13 ago. 2020.
COHEN, M.; HURLEY, K.; NEWSON, P. Google compute engine: managing 
secure and scalable cloud computing. Sebastopol, USA: O’Relly Media Inc, 2015. 
ISBN: 978-1-449-36088-7.
COLLIER, M.; SHAHAN, R. Essentials of cloud computing. Washington, USA: 
Microsoft Press, 2015. ISBN: 978-0-7356-9722-5.
COPELAND, M. et al. Microsoft azure: planning, deploying, and managing 
your data center in the cloud. New York, USA: Springer Science+Business Media 
Network, 2015. ISBN-13: 978-1-4842-1043-7.
HADDAD, C. Why to use apache stratos. DZone, Durham, 15 maio 2014. 
Disponível em: https://dzone.com/articles/why-use-apache-stratos. Acesso em: 
22 jul. 2020.
FAYNBERG, I.; LU, H.; SKULER, D. Cloud computing: business trends and 
technologies. Hoboken: John Wiley & Sons, 2016. ISBN: 9781118501214.
FONSECA, N. L. S. da; BOUTABA, R. Cloud	services,	networking,	and	
management. Hoboken: John Wiley & Sons, 2015. ISBN: 978-1-118-84594-3.
FURHT, B.; ESCALANTE, A.	Handbook	of	cloud	computing. Miami, USA.: 
Springer Science & Business Media, 2010.
GOOGLE CLOUD. App engine. c2020a. Disponível em: https://cutt.ly/wf0nSGi. 
Acesso em: 15 jul. 2020.
GOOGLE CLOUD. Introdução ao BigQuery. c2020b. Disponível em: https://
cloud.google.com/bigquery/what-is-bigquery?hl=pt-br. Acesso em: 13 ago. 2020.
GOOGLE CLOUD. Sobre os serviços do Google Cloud. c2020c. Disponível em: 
https://cloud.google.com/docs/overview/cloud-platform-services?hl=pt-br#big-data. Acesso em: 7 ago. 2020.
GOOGLE CLOUD. Software as a service. c2020d. Disponível em: https://cloud.
google.com/saas?hl=pt-br. Acesso em: 31 jul. 2020.
GOOGLE PLAY. GoToMeeting. c2020a. Disponível em: https://play.google.
com/store/apps/details?id=com.gotomeeting&hl=pt_BR. Acesso em: 13 ago. 
2020.
78
GOOGLE PLAY. SAP Concur. c2020b. Disponível em: https://play.google.com/
store/apps/details?id=com.concur.breeze&hl=pt_BR. Acesso em: 13 ago. 2020.
GUERREIRO, C. Top 20+ ferramentas de Big Data para se tornar cientista de 
dados (mesmo sem saber programar). Blog Tecnologia que interessa, [S. l.], 
mar. 2020. Disponível em: https://blog.tecnologiaqueinteressa.com/2020/03/top-
20-ferramentas-de-big-data-para-cientistas-de-dados-programadores-ou-nao/. 
Acesso em: 7 ago. 2020.
IBM CLOUD. Nuvem Pública. c2020. Disponível em: https://www.ibm.com/br-
pt/cloud/public. Acesso em: 7 jul. 2020.
IBM CLOUD Education. PaaS (plataforma como serviço). IBM Cloud Learn 
Hub, New York, 29 out. 2019. Disponível em: https://www.ibm.com/cloud/
learn/paas. Acesso em: 7 ago. 2020.
COSTA, M. Computação em nuvem - parte 1: o que contratar? InfoQ, São 
Paulo, 8 ago. 2017. Disponível em: https://www.infoq.com/br/articles/contratar-
computacao-nuvem/. Acesso em: 22 jul. 2020.
JAMSA, K. Cloud computing: SaaS, PaaS, IaaS, virtualization, business models, 
mobile, security, and more. Burlington, MA: Jones & Barlett Learning, 2013.
JELASTIC. Jamazing	PaaS	Experience. c2020. Disponível em: https://jelastic.
com/. Acesso em: 12 ago. 2020.
KANNAN, R.; et al. Managing and processing Big Data in cloud computing. 
Hershey, PA: Information Science Reference, 2016. ISBN: 978-1-4666-9868-3.
KAVIS, M. J. Architecting the cloud: designs decisions for cloud computing 
service models (SaaS, PaaS and IaaS). Hoboken: John Wiley & Sons, 2014. ISBN: 
978-1-118-82627-0.
KAVIS; M. J. Architecting the cloud: design decisions for cloud computing 
service models (SaaS, PaaS and IaaS). Hoboken: John Wiley & Sons, 2014.
LIMA, L. O que é o Cisco Webex? Any Consulting, Belo Horizonte, 15 fev. 2019. 
Disponível em: https://www.anyconsulting.com.br/o-que-e-o-cisco-webex/. 
Disponível em: 13 ago. 2020.
MICROSOFT AZURE, Red Hat OpenShift no Azure: serviço OpenShift 
totalmente gerenciado, operado conjuntamente com a Red Hat. c2020. 
Disponível em: https://azure.microsoft.com/pt-br/services/openshift/. Acesso 
em: 7 ago. 2020.
79
MARTINS, R. Computação em nuvem: entenda o que é e como aplicar na sua 
empresa. Microtel It Solutions, Curitiba, 15 jan. 2018. Disponível em: https://
www.microtelit.com.br/computacao-em-nuvem-entenda-o-que-e-e-como-
aplicar-na-sua-empresa/. Acesso em: 14 jul. 2020.
MISTRIK, I. et al. Software architecture for Big Data and the cloud. Cambridge, 
MA, USA: Elsevier Inc., 2017. ISBN: 978-0-12-805467-3.
MITCHELL, E. T. Cloud-based	services	for	your	library. Chicago, US: 
American Library Association, 2013. ISBN: 978-1-55570-900-6.
NEXTIOS. O que é OpenShift e como ele funciona? Blog Locaweb Corp, [S. l.], 
6 jun. 2017. Disponível em: http://blog.locawebcorp.com.br/solucoes/o-que-e-
openshift-e-como-ele-funciona/. Acesso em: 7 ago. 2020.
OLIVEIRA, H. S. de. Infraestrutura de TI. Porto Alegre: SAGAH, 2020. 
Disponível em: https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/
impressao_ua/20655717. Acesso em: 10 ago. 2020.
OVEO. Container Cloud OpenShift. c2020. Disponível em: https://www.eveo.
com.br/container-cloud/?gclid=CjwKCAjw97P5BRBQEiwAGflV6U85RwHHa
wV8enyGgz617ggb8XvmRya4iyLYCDXBVN5u1ENmfDW6nxoCZQYQAvD_
BwE. Acesso em: 7 ago. 2020.
PACHECO, R. A. F. Heroku: o que é e como funciona. Geekhunter, 
Florianópolis, 28 fev. 2020. Disponível em: https://sagahcm.sagah.com.br/
sagahcm/sagah_ua_dinamica/impressao_ua/20655717. Acesso em: 10 ago. 2020.
PATHAN, A.; MONOWAR, M. M.; FADLULLAH, Z. M. Building	next-
generation	converged	networks: theory and practice. Boca Raton, FL: CRC 
Press. 2013. ISBN-13: 978-1-4665-0764-7.
PEREZ, R. Is SaaS data analytics right for you? Snowflake, San Mateo, 26 jun. 
2018. Disponível em: https://www.snowflake.com/blog/is-saas-data-analytics-
right-for-you/. Acesso em: 7 ago. 2020.
QUERINO FILHO, L. C. Introdução ao Google App Engine. Devmedia, Marília, 
2012. Disponível em: https://www.devmedia.com.br/introducao-ao-google-app-
engine/24552#modulo-mvp. Acesso em: 15 jul. 2020. 
RAJ, P.; RAMAN, A. Software-defined	cloud	centers: operational and 
management technologies and tools. London: Springer, 2018. 242 p.
REDHAT. Cloud computing: O que é a PaaS? c2020. Disponível em: https://
www.redhat.com/pt-br/topics/cloud-computing/what-is-paas. Acesso em: 7 ago. 
2020.
80
SALESFORCE. O que é SaaS? c2020. Disponível em: https://www.salesforce.
com/br/saas/. Acesso em: 12 ago. 2020.
SANTANA, G. A. A. CCNA	Cloud	CLDFND	210-451	official	cert	guide. 
Indianapolis, IN, USA: Pearson Education. 2016. ISBN-13: 978-1-58714-700-5.
SANTODIGITAL. BigQuery: entenda as principais técnicas para otimização 
de custos. Santo Digital, São Paulo, 10 jan. 2020. Disponível em: https://www.
santodigital.com.br/bigquery-entenda-as-principais-tecnicas-para-otimizacao-
de-custos/. Acesso em: 13 ago. 2020.
SHAPIRO, J. Concur agora é SAP Concur. SAP Brasil, [S. l.], 4 jan. 2018. 
Disponível em: https://news.sap.com/brazil/2018/01/concur-agora-e-sap-concur/. 
Acesso em: 13 ago. 2020.
SHARMA, S. The	DevOps	adoption	playbook: a guide to adopting devops in a 
multispeed IT enterprise. Hoboken: John Wiley & Sons, 2017. 416 p.
SHINYA, V. O que é a IBM Cloud e como subir a sua primeira aplicação 
na nuvem. IBM Developer Brasil, [S. l.], 7 nov. 2018. Disponível em: https://
medium.com/ibmdeveloperbr/o-que-%C3%A9-o-ibm-cloud-e-como-subir-a-
sua-primeira-aplica%C3%A7%C3%A3o-na-nuvem-41bfd260a2b7. Acesso em: 6 
ago. 2020.
SILVA, K. C. N. da. Sistemas de Informações Gerenciais: Computação na 
Nuvem. Porto Alegre: SAGAH, 2020. 
SILVA, E. A. N. da. Uma abordagem dirigida por modelos para 
desenvolvimento	de	aplicações	multi-paas. 2017, 178f. Tese (Doutorado em em 
Ciência de Computação e Matemática Computacional) – Instituto de Ciências 
Matemáticas e de Computação. Universidade de São Paulo, 2017. Disponível 
em: https://teses.usp.br/teses/disponiveis/55/55134/tde-08022018-103528/publico/
EliasAdrianoNogueiradaSilva_revisada.pdf. Acesso em: 7 ago. 2020.
SILVA, E. A. N. da; LUCRÉDIO, D. Software engineering for the cloud: 
a research roadmap. In: BRAZILIAN SYMPOSIUM ON SOFTWARE 
ENGINEERING. 26., 2012, São Carlos. Anais […]. São Carlos: IEEE, Brazil; 
UFSCar, 2012. p. 71-80. Disponível em: https://www.researchgate.net/
publication/261039376_Software_Engineering_for_the_Cloud_A_Research_
Roadmap. Acesso em: 6 ago. 2020.
SIQUEIRA, C. O que é o Red Hat OpenShift? Blog 4 Partner, [S. l.], 7 ago. 2017. 
Disponível em: https://blog.4partner.com.br/red-hat-openshift/. Acesso em: 7 
ago. 2020.
SOARES, J. A. Infraestrutura de TI. Porto Alegre: SAGAH, 2020.
81
SOFTLINE. IaaS, PaaS e SaaS: entenda os modelos de nuvem e suas finalidades. 
SoftLine, São Paulo, 31 out. 2017. Disponível em: https://brasil.softlinegroup.
com/sobre-a-empresa/blog/iaas-paas-saas-nuvem. Acesso em: 13 jul. 2020.
SOUSA, F. R. C. et al. Gerenciamento de dados em nuvem: conceitos, sistemas 
e desafios. In: SIMPÓSIO BRASILEIRO DE BANCO DE DADOS, 25., 2010. Belo 
Horizonte. Anais [...]. Belo Horizonte: UFMG, 2010.Disponível em: https://sol.
sbc.org.br/livros/index.php/sbc/catalog/download/18/81/167-1?inline=1. Acesso 
em: 13 jul. 2020.
STORI, D. Primeiros passos em PaaS com Heroku. Devmedia, Santo André, 
2013. Disponível em: https://www.devmedia.com.br/primeiros-passos-em-paas-
com-heroku/29465. Acesso em: 20 jul. 2020. 
STRATEGIC SAAS. Por que consolidar com armazenamento OneDrive é 
uma estratégia de negócios inteligente. c2020. Disponível em: https://www.
strategicsaas.com/onedrive-storage-better-than-a-free-for-all/. Acesso em: 13 
ago. 2020.
SULLIVAN, D. The	definitive	guide	to	cloud	computing. US: Realtime 
Publishers, 2010.
T-SYSTEMS.Desenvolvimento de aplicativos com a plataforma como 
serviço. c2020. Disponível em: https://www.t-systems.com/br/pt/cloud-and-
infrastructure/new-business-models/managed-paas-and-big-data. Acesso em: 28 
set. 2020.
TALBOT, C. Apache elevates stratos paas to top-level project. Channel Futures, 
Londres, 5 jun. 2014. Disponível em: https://www.channelfutures.com/cloud-2/
apache-elevates-stratos-paas-to-top-level-project. Acesso em: 22 jul. 2020.
TAURION, C. Computação em nuvem: transformando o mundo da tecnologia 
da informação. Rio de Janeiro: Brasport, 2009. ISBN: 978-85-7452-423-8.
THOMPSON, C. Vagrant	virtual	development	environment	cookbook. 
Birminghan: Packt Publishing Ltd., 2015. ISBN: 978-1-78439-374-8.
TUTIDA, D. OneDrive, Google Drive ou Dropbox: 4 coisas a considerar ao fazer 
sua escolha. Encontre um Nerd, São Paulo, 18 set. 2019. Disponível em: https://
encontreumnerd.com.br/blog/onedrive-google-drive-ou-dropbox. Acesso em: 13 
ago. 2020.
UDELCIO. Cloud computing x Big Data: o que um tem a ver com o outro. 
Grupo Meta, [S. l.], 15 out. 2014. Disponível em: https://www.grupometa.com/
cloud-computing/cloud-computing-big-data/. Acesso em: 7 ago. 2020.
82
VACCA, John R. Computer	and	Information	Security	Handbook. US: Elsevier, 
2017.
VERAS, M. Computação em nuvem: novas arquiteturas de TI. Rio de Janeiro: 
Editora Brasport, 2015. Disponível em: https://docero.com.br/doc/n050c. Acesso 
em: 7 ago. 2020.
VLADIMIRSKY, V. 10 exemplos populares de software como serviço (SaaS). 
Nerdio, [S. l.], 20 out. 2016. Disponível em: https://getnerdio.com/academy/10-
popular-software-service-examples/. Acesso: 31 jul. 2020.
VAUGHAN-NICHOLS, S. J. Apache makes Stratos PaaS cloud a top-level 
project. ZDNet, 3 jun. 2014. Disponível em: https://www.zdnet.com/article/
apache-makes-stratos-paas-cloud-a-top-level-project/. Acesso em: 22 jul. 2020.
83
UNIDADE 2 — 
SERVERLESS, BACK-END AS SERVICE 
(BAAS) E FUNÇÃO COMO SERVIÇO 
(FAAS)
OBJETIVOS DE APRENDIZAGEM
PLANO DE ESTUDOS
A partir do estudo desta unidade, você deverá ser capaz de:
• conhecer os fundamentos de Serverless;
• compreender a utilização do Serverless como computação orientada a 
eventos;
• compreender a diferença entre a arquitetura monolítica e uma arquitetu-
ra de micro serviços;
• conhecer os fundamentos de Back-end as a Service (BaaS);
• conhecer os fundamentos de Function as a Service (FaaS).
Esta unidade está dividida em três tópicos. No decorrer da unidade, 
você encontrará autoatividades com o objetivo de reforçar o conteúdo 
apresentado.
TÓPICO 1 - SERVERLESS 
TÓPICO 2 - BACK-END AS SERVICE (BAAS) 
TÓPICO 3 - FUNÇÃO COMO SERVIÇO (FAAS)
Preparado para ampliar seus conhecimentos? Respire e vamos 
em frente! Procure um ambiente que facilite a concentração, assim absorverá 
melhor as informações.
CHAMADA
84
85
UNIDADE 2
1 INTRODUÇÃO
Agora que você conhece o cloud computing ou computação em nuvem, 
assim como seus modelos de serviços, chegou o momento de conhecer mais um 
termo muito utilizado na área de computação, o serverless.
Assim como muitos conceitos da computação, o serverless precisa ser bem 
compreendido antes de ser aplicado na prática, pois este conceito engloba muitas 
coisas e, nesse sentido, é importante entender seu conceito, como ele funciona, em 
quais casos pode ser aplicado, assim como quais os benefícios de sua utilização 
(STIGLER, 2018).
Normalmente, quando se fala em serverless, na computação, as pessoas 
pensam que se trata apenas de back-ends que rodam em serviços de terceiros 
ou em contêiner temporário (STIGLER, 2018). Além disso, muitas pessoas que 
ingressam na computação serverless, terão a percepção de que são aplicações 
simplesmente hospedadas na nuvem (STIGLER, 2018). Aplicações serverless 
podem ser exemplificadas pelo Amazon Web Services (AWS) Lambda e pelas 
funções do Azure, por exemplo.
Antes, vamos a um exemplo de um cenário utilizado, normalmente, no 
qual uma aplicação é desenvolvida e o próprio desenvolvedor realiza o deploy da 
aplicação, possuindo, neste caso, um determinado nível de controle de requisições 
Hypertext Transfer Protocol (HTTP) realizadas para o servidor (STIGLER, 2018). 
Neste cenário, com aplicações que rodam em um servidor, os desenvolvedores, 
ou algum administrador da empresa, se torna responsável pelo gerenciamento de 
recursos da máquina, mas, neste caso, existem alguns problemas, como:
• a empresa ou organização possui a despesa do serviço de hospedagem do 
servidor, e seu gerenciamento, mesmo que o software não estiver sendo 
executado;
• a empresa ou organização precisa manter recursos para a manutenção de 
servidores, assim como manter o servidor funcionando (on-line);
• a empresa ou organização deste cenário, possui responsabilidade por manter e 
gerenciar a segurança do servidor.
Ainda no cenário da empresa possuir um servidor para hospedagem 
de aplicações, caso a demanda para uso de aplicações aumentar, os recursos 
do servidor também devem ser expandidos, e caso diminuir a quantidade de 
demanda do servidor, recursos ficarão ociosos, consumindo energia elétrica.
TÓPICO 1 — 
SERVERLESS
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
86
De acordo com o cenário de servidor local comentado, esse gerenciamento 
de servidor pode se tornar caro, trabalhoso e ocupar muito tempo, principalmente 
se tratando de pequenas empresas, diferente de uma empresa grande que 
normalmente possui uma equipe de suporte de Tecnologia de Informação (TI) 
para realizar estas tarefas de servidor. No entanto, de qualquer forma, se for 
uma empresa de grande porte com uma equipe de suporte de TI para gerenciar o 
servidor, o desenvolvedor terá de ocupar um pouco de seu tempo para repassar 
processos e manuais para a equipe de suporte. Para resolver a este problema, 
atualmente, temos a arquitetura Serverless.
2 CONCEITOS DE SERVERLESS
Serverless computing, ou computação sem servidores, pode ser 
compreendida por ser uma tecnologia, a qual também é conhecida por Function as 
a Service (FaaS), em que o provedor de nuvem possui o gerenciamento completo 
do contêiner no qual as funções são executadas, conforme necessário para atender 
às solicitações (STIGLER, 2018). Com o modelo dessa arquitetura, a necessidade 
de continuar executando sistemas pode ser extinguida, passando a execução a 
ser baseada em eventos, e, com isso, se aumenta a possibilidade de criação de 
aplicações escalonáveis dentro desta arquitetura (STIGLER, 2018).
Arquitetura serverless pode ser descrita como uma arquitetura de 
computação orientada a eventos, sendo sua principal finalidade permitir que 
empresas de desenvolvimento de software realizem a criação e possam manter 
suas aplicações web sem se preocupar com infraestrutura de servidores (MISHRA, 
2020).
Nesse sentido, o trabalho de desenvolvimento de software pode ser 
simplificado, sendo apenas escrito o código fonte da aplicação, sem se preocupar 
no entendimento e trabalho de instalação, configuração, assim como manutenção 
da infraestrutura do servidor para rodar a aplicação (STIGLER, 2018). Dessa 
forma, o trabalho de desenvolvimento de software possui a vantagem de se 
tornar mais rápido, se levando a metade do tempo para implementação de uma 
aplicação, ao ser utilizada a arquitetura serverless (STIGLER, 2018).
Computação serverless é uma das tecnologias de hospedagem na nuvem 
mais recentes disponibilizadas por provedores, sendo altamente recomendado e 
adaptado para o desenvolvimento de soluções altamente escalonáveis (MISHRA, 
2020). 
Ainda segundo Mishra (2020), esse modelo de computação em nuvem 
é barato e disponibiliza vários recursos úteis que não são disponibilizados na 
computação em nuvem normal, sendo o Serverless computing utilizado por 
gigantes do mundo da nuvem para construir suas soluções, como a Microsoft e 
Amazon.
TÓPICO 1 — SERVERLESS
87
2.1 SERVERLESS COMO COMPUTAÇÃO ORIENTADA A 
EVENTOS
O serverless como computação orientada a eventos pode ser compreendidopor ser um padrão de arquitetura baseada na ação de resposta ou ainda de 
recepção de eventos, além disso, esse padrão de arquitetura serve para garantir 
que uma função seja executada somente quando for disparada (STIGLER, 2018). 
Por isso esse modelo de arquitetura induz os desenvolvedores de software a 
pensar antecipadamente nos tipos de eventos e respostas que serão necessários 
para uma solução antes de começar a programar (STIGLER, 2018).
Nesse modelo de computação orientada a eventos, as funções de um 
software são consideradas consumidoras, pois aguardam quando um evento 
ocorre e são responsáveis pelo seu processamento (STIGLER, 2018). Ainda 
segundo Stigler (2018), seguem alguns exemplos disparados por funções serverless:
• Requisições por Application Programming Interface (API).
• Envios e recuperações de objetos no repositório.
• Alterações em bancos de dados.
• Agendamentos de cronogramas de eventos.
• Comandos de voz.
• Robôs com processamento de linguagem natural.
A Figura 1 apresenta um exemplo de computação orientada a eventos, em 
que a Amazon Lambda é um método invocado pela API Gateway.
FIGURA 1 – REQUISIÇÃO REALIZADA PARA API GATEWAY
FONTE: Stigler (2018, p. 2)
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
88
No exemplo apresentado na Figura 1, um dispositivo móvel, como um 
smartphone, realiza uma requisição para a API Gateway, sendo esta última 
um serviço da API Amazon, a qual permite facilmente realizar uma requisição 
RESTful HTTP. Por sua vez, a API Gateway possui uma função Lambda que a 
trata como um ponto de integração, sendo a função Lambda configurada para 
receber eventos da API Gateway. Nesse sentido, quando uma requisição é 
realizada, a função Lambda é disparada e a função executada (STIGLER, 2018).
É possível exemplificar com a situação de um usuário que, ao clicar em um 
botão em uma tela, o qual realiza a requisição para buscar filmes de um determinado ator, 
cuja requisição é a chamada para a API Gateway, sendo que esta dispara a função Lambda, 
retornando a lista de todos os filmes cadastrados no banco de dados (STIGLER, 2018).
IMPORTANT
E
Na arquitetura serverless, uma função Lambda pode ser criada 
separadamente para realizar uma função de atualizar uma informação no banco, 
por exemplo, sendo, neste caso, criada uma simples função para um único evento, 
mantendo assim, uma aplicação leve, de fácil manutenção e escalável (MISHRA, 
2020).
2.2 ESTRUTURA DA ARQUITETURA SERVERLESS
De maneira geral, serverless pode ser descrito como um modelo de 
execução, em que o provedor da computação em nuvem, como AWS, Microsoft 
Azure ou Google Cloud por exemplo, é o responsável pela execução de algum 
pedaço de código ou uma função, cujos recursos são alocados dinamicamente, e 
sendo cobrados desta forma (MISHRA, 2020). Nesse sentido, o código (aplicação 
no servidor) é executado dentro de containers stateless, os quais podem ser ativados 
de várias maneiras, como exemplificado pela Figura 2.
TÓPICO 1 — SERVERLESS
89
 FIGURA 2 – MANEIRAS DE ATIVAÇÃO
FONTE: O autor
Conforme já mencionado, na arquitetura serverless o código fonte 
é executado sem a necessidade de um usuário criar, manter e entender a 
infraestrutura de servidor, sendo que geralmente, o código enviado ao provedor 
é implementado em forma de função (MISHRA, 2020). Devido ao código no 
servidor ser normalmente uma função, a arquitetura serverless é referenciada por 
Function as a Service (FaaS) ou Funções como Serviço (STIGLER, 2018).
O Microsoft Azure é uma das plataformas que disponibiliza soluções 
fáceis e rápidas de se implementar serverless, disponibilizando uma lista de 
classes, permitindo facilmente integração de serviços de mensagem, auxiliando 
componentes serverless a conseguirem interagir com outros (MISHRA, 2020).
No serverless, o código de uma aplicação é executado em um servidor na 
nuvem, mas a questão de infraestrutura do servidor não é mais responsabilidade 
da equipe de desenvolvimento da aplicação, sendo construído o código fonte da 
aplicação e este, é enviado para o servidor (deploy), sendo realizado o build e 
execução da aplicação (STIGLER, 2018). 
Nesse caso, a aplicação hospedada na arquitetura serverless, é executada 
sob demanda, em que algum evento dispara a execução, para que a aplicação 
rode no ambiente de servidores serverless, sendo a cobrança realizada enquanto a 
aplicação estiver rodando no servidor e os recursos que ela consumiu (MISHRA, 
2020). Além disso, aplicações serverless podem ser escalonadas sob demanda, 
sendo responsabilidade do provedor de hospedagem este recurso, sendo assim, 
se tem menos controle dos serviços do servidor neste modelo de arquitetura.
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
90
2.3 SERVERLESS: FUNÇÃO COMO UM SERVIÇO 
Conforme foi mencionado que a arquitetura serverless segue o modelo 
FaaS, é interessante compreender o básico desse tipo de modelo, que envolve 
executar códigos de aplicações back-end sem o trabalho de desenvolver e realizar 
o deploy da aplicação no próprio servidor, mas sim utilizando um servidor de 
terceiros, na nuvem (MISHRA, 2020).
Na Figura 3, você pode analisar as configurações ou recursos que são 
gerenciáveis pelo cliente do provedor de computação em nuvem, sendo a cor 
alaranjada, gerenciáveis pelo cliente e, azul, não gerenciáveis pelo cliente. Note 
que a última coluna da Figura 3 é o FaaS, o qual permite gerência apenas da 
aplicação pelo cliente.
FONTE: Stigler (2018, p. 3)
FIGURA 3 – DIFERENÇAS ENTRE OS MODELOS DE SERVIÇOS NA NUVEM
3 FUNÇÕES E OBJETIVOS
Conforme já mencionado, uma das grandes mudanças com relação 
a outras metodologias de desenvolvimento de software é o fato de aplicações 
serem executadas em forma de funções, as quais são disparadas por eventos, 
porém, neste modelo de arquitetura serverless, são utilizados micro serviços. 
Nesse sentido, quanto menor for desenvolvida a função e menos operações esta 
função realizar, melhor será, visando as boas práticas (STIGLER, 2018).
As funções, na computação serverless, são executadas dentro de contêineres 
serverless, conforme já mencionado, o que significa que não é possível realizar a 
execução de funções que estejam sendo executadas, depois que o principal evento 
for concluído, assim como também não é possível utilizar uma execução anterior 
TÓPICO 1 — SERVERLESS
91
para atendimento de uma requisição. Isso porque, após a função ser executada, 
isto é, a requisição estar completa, o contêiner serverless, no qual ela foi hospedada, 
será eliminado (STIGLER, 2018).
Para que você possa compreender melhor vamos exemplificar. Usaremos 
um exemplo de sistema tradicional de três camadas com lógica do lado do 
servidor e mostraremos como seria diferente usando a arquitetura sem servidor. 
Digamos que temos um site, no qual podemos pesquisar e comprar livros 
didáticos. Em uma arquitetura tradicional, você pode ter um cliente, um servidor 
com balanceamento de carga e um banco de dados para livros didáticos. A Figura 
4 ilustra essa arquitetura tradicional para uma loja on-line de livros didáticos 
(STIGLER, 2017).
FIGURA 4 – ARQUITETURA TRADICIONAL PARA UMA LOJA ON-LINE DE LIVROS DIDÁTICOS
FIGURA 5 – ARQUITETURA SERVERLESS PARA UMA LOJA ON-LINE DE LIVROS DIDÁTICOS
FONTE: Stigler (2017, p. 337)
FONTE: Stigler (2017, p. 348)
A configuração de uma arquitetura tradicional na qual o servidor é 
provisionado e gerenciado pelo desenvolvedor. Em uma arquitetura computação 
serverless, podemos mudar várias características, incluindo o servidor e o banco 
de dados. Um exemplo dessa mudança seria a criação de uma API provisionada 
em nuvem e o mapeamento de solicitações de métodos específicos para funções 
diferentes. 
Em vez de ter um servidor, as aplicações agora têm funções para cada 
parte da funcionalidade e servidores provisionados em nuvem que são criados 
com base na demanda. Poderíamos ter uma função para pesquisar um livro e 
uma funçãopara comprar um livro. Ainda podemos escolher dividir nosso banco 
de dados em dois bancos de dados separados, correspondendo às duas funções. 
A Figura 5 ilustra uma arquitetura sem servidor para uma loja on-line de livros 
didáticos (STIGLER, 2017).
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
92
A configuração de uma arquitetura tradicional na qual o servidor é 
provisionado e gerenciado pelo desenvolvedor. Já a configuração de uma 
arquitetura serverless em que os servidores aumentam e diminuem de acordo com 
a demanda. Existem algumas diferenças entre os dois diagramas de arquitetura 
para a livraria on-line apresentado na Figura 4 e na Figura 5 (STIGLER, 2017).
A Figura 4 traz a arquitetura tradicional, na qual temos um servidor 
que precisa ter balanceamento de carga com escalonamento automático pelo 
desenvolvedor. Já no exemplo apresentado na Figura 5, com a solução em nuvem, 
a aplicação é executada em contêineres, em que são colocados sem estado, e são 
ativados e desativados por funções acionadas. Outra diferença é a separação dos 
servidores apresentados na Figura 5 (STIGLER, 2017).
4 SERVERLESS E CLOUD COMPUTING
Os termos serverless computing e cloud computing, são muito próximos, 
pois cloud computing, ou computação em nuvem, pode ser compreendido pela 
disponibilização de serviços na Internet a partir de um computador remoto, em 
vez do disco rígido de um computador local (CHANDRASEKARAN, 2015). Além 
disso, computação em nuvem pode ser descrita pelos recursos na nuvem, como 
armazenamento, processamento ou disponibilização de serviços, como APIs, em 
um provedor de serviços na internet.
Nesse sentido, o serverless computing pode ser compreendido como sendo 
a evolução do cloud computing, na qual, para determinados serviços, como APIs 
ou processamentos de funções, utilizando a infraestrutura na nuvem, embora 
ainda possa existir servidores internos na empresa para determinados serviços.
No serverless computing, esta nomenclatura – computação sem servidor – é 
utilizada devido à gerência e planejamento da infraestrutura de servidor serem 
ocultadas para a equipe de desenvolvimento de software, o que já foi comentado 
que é Back-end as a Service. Se os desenvolvedores não precisam se preocupar com 
gerenciamento, provisionamento e manutenção de infraestrutura de servidores, 
ao ter que implantar ou realizar o deploy de algum código-fonte ou serviço, estes 
podem apoiar mais seu tempo ao trabalho de desenvolvimento. 
Serverless computing pode ser ainda compreendido por ser um modelo de 
execução de computação em nuvem, no qual o provedor de nuvem mantém o 
servidor e realiza o gerenciamento dinâmico de alocação de recursos de servidores 
(STIGLER, 2018). 
Sendo assim, o valor cobrado nesse modelo, se baseia na quantidade 
de recursos consumidos pela aplicação, e não a quantidade de recursos pré-
alocadas como no modelo cloud computing. De acordo com Stigler (2018) e Mishra 
(2020) existem algumas diferenças entre os modelos Cloud computing e Serverless 
computing (Quadro 1), apesar deste último ser a evolução do primeiro modelo.
TÓPICO 1 — SERVERLESS
93
Cloud 
computing
• Modelo de computação em nuvem no qual a gerência e 
alocação de recursos normalmente é realizada pelo cliente 
(organização, empresa) do provedor de recursos em nuvem.
• Muitas vezes, a equipe de desenvolvedores precisa 
disponibilizar um certo tempo para questões de infraestrutura, 
assim como configurações de recursos no provedor de 
recursos em nuvem.
• Garante, desta forma, que sempre que necessário, existirá 
disponibilidade de recursos de computação, mas podendo 
haver necessidade de se preocupar com infraestrutura 
(configuração).
Serverless 
computing
• Modelo de computação em nuvem mais maduro, no qual a 
gerência e alocação de recursos é realizada pelo provedor de 
recursos em nuvem.
• Permite que equipe de desenvolvedores ocupe seu tempo com 
sua principal atividade: o desenvolvimento de aplicações.
• Garante, desta forma, que sempre que necessário, existirá 
disponibilidade de recursos de computação, sem preocupação 
com infraestrutura (manutenção e configuração).
QUADRO 1 – PRINCIPAIS DIFERENÇAS DE CLOUD COMPUTING E SERVERLESS COMPUTING
FONTE: O autor
Você pode estar se perguntando qual a diferença entre computação 
serverless e construir uma infraestrutura a partir do zero. Sabemos que a principal 
diferença é depender de fornecedores terceirizados para manter seus servidores, 
mas como isso faz diferença no processo de desenvolvimento de sua aplicação? 
4.1 PRINCIPAIS DIFERENÇAS ENTRE COMPUTAÇÃO 
SERVERLESS E CONSTRUIR A INFRAESTRUTURA DO ZERO
As duas principais diferenças que você provavelmente verá estão no 
desenvolvimento de aplicações e nos processos independentes que são usados 
para criá-los (STIGLER, 2017).
4.1.1 Desenvolvimento de aplicações
O processo de desenvolvimento da computação serverless muda 
consideravelmente em relação à maneira como se desenvolveria um sistema 
tradicional. Para Stigler (2017), aspectos do ambiente do desenvolvimento, 
incluindo Integrated Development Environment (IDEs), controle de código 
fonte, controle de versão e opções de implantação podem ser utilizados pelo 
desenvolvedor de forma local ou na nuvem.
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
94
Ao se trabalhar com desenvolvimento contínuo é comum escrever funções 
na computação serverless utilizando um IDE, como Visual Studio, Eclipse e IntelliJ. 
A implantação é realizada em entregas menores que são disponibilizadas 
na nuvem, fazendo uso de uma interface de linha de comando do próprio 
provedor de nuvem, também conhecida como Comand-Line Interface (CLI). 
Se as funções forem pequenas o suficiente, elas podem ser desenvolvidas 
dentro do portal do provedor de nuvem real. Entretanto, a maioria tem um limite 
no tamanho da função antes que de fato seja realizado o upload compactado, em 
zip, do projeto. 
A CLI é uma ferramenta de desenvolvimento dita como “poderosa” porque 
possibilita que funções computação serverless e seus serviços seja implantado de maneira 
fácil e deixa livre a escolha das ferramentas para escrever e gerar o código. A ferramenta 
Serverless Framework é outra opção de desenvolvimento que pode ser instalada usando o 
Node Package Manager (NPM), que é o gerenciador de pacotes do Node.
NOTA
4.1.2 Processos independentes
Outra maneira de pensar em funções na computação serverless é como 
micro serviços. Aqui, cada função atende a seu propósito e completa um processo 
independentemente das outras funções. A computação serverless é sem estado 
e baseada em eventos, portanto, é assim que as funções também devem ser 
desenvolvidas.
Por exemplo, em uma arquitetura tradicional com operações de API 
Create, Read, Update and Delete (CRUD) básicas, ou seja, as operações envolvendo 
GET, POST, PUT, DELETE. Portanto, você pode ter modelos baseados em objetos 
com esses métodos definidos em cada objeto. A ideia de manter a modularidade 
também se aplica na computação serverless. Cada função pode representar um 
método API e executar um processo (STIGLER, 2017).
As funções devem ser leves, escalonáveis e servir a um único propósito. 
Para ajudar a explicar por que a ideia de processos independentes é preferida, 
apresentaremos diferentes estilos arquitetônicos e as mudanças que foram feitas 
a eles ao longo do tempo. Agora, veja a Figura 6 que apresenta o projeto de uma 
arquitetura monolítica.
TÓPICO 1 — SERVERLESS
95
FONTE: Stigler (2017, p. 377)
FIGURA 6 – ARQUITETURA MONOLÍTICA
A Figura 6 demonstra a dependência existente dos aspectos de 
funcionalidades. Portanto, uma aplicação monolítica é construída como uma 
única unidade entrelaçada com uma aplicação do lado do servidor que lida com 
todas as solicitações e lógicas associadas a aplicação. 
Existem várias preocupações com esse modelo de arquitetura. Uma das 
preocupações existentes se refere que, durante o período dedesenvolvimento, 
pode ser que nenhum desenvolvedor tenha uma compreensão completa do 
sistema, porque todas as funcionalidades são empacotadas em uma unidade. 
Cabe destacar também as preocupações referentes a incapacidade de escalar, a 
reutilização limitada e a dificuldade de implantação repetida.
Na abordagem de micro serviços, se rompe o padrão de arquitetura 
monolítica separando os serviços em componentes independentes que são 
criados, implantados e mantidos separados uns dos outros. A Figura 7 
exemplifica a arquitetura de micro serviços, sendo possível observar os serviços 
independentes que compõem uma arquitetura de micro serviços. Muitas das 
preocupações existentes na arquitetura monolítica são abordadas por meio desta 
solução. Os serviços são construídos como componentes individuais com um 
único propósito. Isso permite que a aplicação seja consumida e usada por outros 
serviços de maneira eficiente e fácil. Além disso, é mais fácil tratar a escalabilidade 
na arquitetura de micro serviços. 
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
96
FONTE: Stigler (2017, p. 385)
FIGURA 7 – ARQUITETURA DE MICRO SERVIÇOS
Cabe destacarmos que, na arquitetura de micro serviços, se diminui 
a chance de ter um único ponto de falha em seu código. Esses micros serviços 
também são mais rápidos de construir e implantar, pois é possível o fazer de 
maneira independente, sem construir a aplicação por inteiro. Isso torna o tempo de 
desenvolvimento mais rápido e eficiente e permite que tanto o desenvolvimento 
quando os testes sejam realizados de forma rápida e fácil. 
A cultura DevOps surgiu com o intuito de aproximar a equipe de 
desenvolvimento com a equipe de operações. Os profissionais de DevOps estão cada vez 
mais gerenciando vários servidores, cada um executando diversos sistemas operacionais, 
aplicações, versões e requisitos dos mais variados. Para lidar com as tarefas específicas 
de cada aplicação e projeto, a indústria e a comunidade propuseram um conjunto de 
ferramentas de gestão. Com o advento desse conceito, diversas ferramentas de automação, 
configuração e gerenciamento de ambientes foram propostas.
IMPORTANT
E
TÓPICO 1 — SERVERLESS
97
• Recursos de DevOps da AWS. Confira, no link a seguir, informações das 
soluções da Amazon AWS para a área de DevOps. Navegue na página que se encontra 
disponível em: https://aws.amazon.com/pt/devops/resources/#guides.
• O que é o Azure DevOps? Aqui você verá o que é o Azure DevOps, como criar sua 
conta e os primeiros passos para utilizar o provedor de serviços. Acesse o seguinte link: 
https://www.youtube.com/embed/4BYlkYtHNus.
• Quais são os benefícios do DevOps na nuvem? A discussão aqui é sobre quais são os 
benefícios que a cultura DevOps pode trazer para clientes de nuvem. Navegue no link: 
https://blogbrasil.westcon.com/quais-os-beneficios-do-devops-na-nuvem.
DICAS
5 POR QUE USAR SERVERLESS
Dentre os benefícios da serverless computing, podem ser citados 
desenvolvimento e implantação rápida, baixo custo, escalabilidade sob demanda, 
redução de recursos utilizados pela aplicação não estar utilizando recursos, 
aplicação sempre disponível, separação de preocupações, os quais serão descritos 
a seguir (MISHRA, 2020).
5.1 DESENVOLVIMENTO E IMPLANTAÇÃO RÁPIDA
Como toda a infraestrutura, manutenção e escalonamento automático são 
gerenciados pelo provedor de nuvem, com isso, o tempo de desenvolvimento é 
muito mais rápido e a implantação mais fácil do que na cloud computing normal. 
Aqui, no serverless computing, o desenvolvedor é responsável somente pelo 
desenvolvimento da própria aplicação, eliminando a necessidade de planejar o 
tempo a ser gasto na configuração do servidor. Assim como outros provedores de 
nuvem, podem ser citados o AWS, o Azure e o Google, os quais também fornecem 
modelos de função, isto é, permitem que seus recursos possam utilizados para a 
criação de funções executáveis que rodam imediatamente (STIGLER, 2017).
Stigler (2017) também destaca que a implantação se torna muito mais 
simples, tornando o processo mais rápido. Esses provedores de nuvem possuem 
um ambiente integrado para os desenvolvedores usarem para trabalhar e 
implantar em diferentes ambientes.
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
98
5.2 BAIXO CUSTO
Provedores de nuvem alugam infraestrutura barata na nuvem para 
hospedar aplicações ou códigos fonte e executá-los, sendo cobrado o ambiente 
utilizado. 
No modelo serverless computing, conforme já mencionado, o cliente paga 
apenas pelos recursos que suas aplicações consumiram, e não pela alocação 
antecipada de recursos de computação, ou pela quantidade de aplicações, isto 
é, sendo pago exatamente o que se está utilizando, sem ociosidade de recursos 
(MISHRA, 2020).
Com isso, os recursos de servidores de aplicações são gerenciados, 
alocados e desalocados, conforme necessidades das aplicações, pelos provedores 
de nuvem, sendo mais baratos do que se fossem servidores locais (STIGLER, 
2018). Veja no Quadro 2 os preços cobrados por três provedores de nuvem que 
fornecem serverless computing, de acordo com Stigler (2018).
AWS Lambda Azure Functions Google Cloud Functions
Primeiro milhão de 
requisições por um mês 
grátis
Primeiro milhão de 
requisições por um mês 
grátis
Primeiros dois milhões de 
requisições por um mês 
grátis
$ 0,20 por milhão de 
requisições
$ 0,20 por milhão de 
requisições
$ 0,40 por milhão de 
requisições
$ 0,00001667 para cada 
GB-segundo usado
$ 0,000016 para cada GB-
segundo usado
$ 0,000025 para cada GB-
segundo usado
FONTE: Stigler (2018, p. 7)
QUADRO 2 – PREÇOS DE EXECUÇÃO DE FUNÇÃO POR PROVEDOR DE NUVEM A PARTIR DA 
PUBLICAÇÃO
5.3 ESCALONABILIDADE SOB DEMANDA
No serverless computing, conforme aumentam as demandas de requisições 
para as aplicações, automaticamente se aumentam os recursos para suportar a 
demanda, da mesma forma que caso caia a demanda, automaticamente recursos 
de servidor são desalocados, gerenciado pelos provedores de nuvem (STIGLER, 
2018).
Nesse sentido, as aplicações desse modelo de computação, podem sofrer 
massivamente uma sobrecarga de requisições sem afetar no seu funcionamento, 
pois recursos são alocados automaticamente, para que não seja prejudicada 
a eficiência da aplicação, ocorrendo um balanceamento de requisições por 
servidores, por exemplo (MISHRA, 2020).
TÓPICO 1 — SERVERLESS
99
Para compreender melhor esta característica, saiba que as soluções 
serverless são distribuídas de forma automática e consistem em vários componentes 
que podem ter escalonamento independente (MISHRA, 2020). Nesse contexto, se 
um determinado serverless receber uma carga pesada de tráfico, então este terá 
escalonamento independente.
5.4 REDUZIR O TEMPO DE ATIVAÇÃO DA APLICAÇÃO
Com esse modelo de serverless, não é necessário adquirir uma infraestrutura 
interna de servidores ou ambiente de hospedagem para hospedar o código fonte, 
podendo utilizar, ao invés disso, recursos de serverless, algo realizado em poucos 
minutos, e a aplicação já pode estar sendo executada (MISHRA, 2020).
No serverless computing, desenvolvedores focam na implementação das 
aplicações, isto é, o trabalho de codificação, e não necessita focar seu tempo na 
análise da infraestrutura do ambiente de hospedagem. Ainda sobre esse modelo 
de computação, as aplicações, assim que jogadas no serverless, são executadas 
muito mais rapidamente do que em outros modelos de computação (MISHRA, 
2020).
5.5 ALTA DISPONIBILIDADE DA APLICAÇÃO
Aplicações ou funções hospedadas em serverless computing possuem alta 
disponibilidade, sendo que os provedores de nuvem realizam acordo em contrato 
que garantem esta característica e benefício (MISHRA, 2020). Com isso, não 
importa quantas requisições a aplicação receberá, nesse modelo, a disponibilidade 
está garantida.
5.6 SEPARAÇÃO DE PREOCUPAÇÕES POR COMPONENTES
As aplicações estão livres de as preocupações de um serviço afetar 
outro, devidoao simples padrão de responsabilidade existente no serverless 
(MISHRA, 2020). Para compreender melhor, você deve ter em mente que uma 
solução serverless é composta por vários componentes serverless, e cada um deles 
é responsável por uma tarefa de curta duração, sendo uma tarefa com uma única 
responsabilidade. 
Nesse sentido, um dos componentes realiza a leitura do banco de dados, 
outro componente prepara os dados e os envia para uma fila, e um terceiro 
componente processa os dados (MISHRA, 2020). Esses componentes não executam 
várias tarefas, realizando apenas a única tarefa que são responsáveis, sendo ela 
um simples padrão de responsabilidade que torna a separação de preocupações 
por componentes mais um dos benefícios do serverless.
100
Neste tópico, você aprendeu que: 
• Existem problemas ao se ter aplicações rodando em servidores, sendo elas: 
(i) a empresa ou organização possui a despesa do serviço de hospedagem 
do servidor, e seu gerenciamento, mesmo que o software não estiver sendo 
executado; (ii) a empresa ou organização precisa manter recursos para a 
manutenção de servidores, assim como manter o servidor funcionando (on-
line); (iii) a empresa ou organização deste cenário, possui responsabilidade por 
manter e gerenciar a segurança do servidor.
• Serverless computing, ou computação sem servidores, também é conhecida por 
Function as a Service (FaaS).
• Em serverless computing, o provedor de nuvem possui o gerenciamento 
completo do contêiner no qual as funções são executadas, conforme necessário 
para atender às solicitações.
• Com o modelo da arquitetura serverless computing, a necessidade de continuar 
executando sistemas pode ser extinguida, passando a execução baseada em 
eventos, e, com isso, se aumenta a possibilidade de criação de aplicações 
escalonáveis dentro desta arquitetura.
• Arquitetura serverless pode ser descrita como uma arquitetura de computação 
orientada a eventos, sendo sua principal finalidade, permitir que empresas 
de desenvolvimento de software realizem a criação e possam manter suas 
aplicações web sem se preocupar com infraestrutura de servidores.
• Serverless como computação orientada a eventos pode ser compreendido por 
ser um padrão de arquitetura baseada na ação de resposta ou ainda de recepção 
de eventos.
• Serverless computing é a evolução do cloud computing;
• Diferente do cloud computing, no modelo serverless computing, a gerência e 
alocação de recursos é realizada pelo provedor de nuvem, poupando o tempo 
de trabalho da equipe de desenvolvimento.
• Alguns exemplos disparados por funções serverless são: requisições por 
Application Programming Interface (API), envios e recuperações de objetos no 
repositório, alterações em bancos de dados, agendamentos de cronogramas de 
eventos, comandos de voz e robôs com processamento de linguagem natural.
RESUMO DO TÓPICO 1
101
• O surgimento da cultura DevOps surgiu com o intuito de aproximar a equipe 
de desenvolvimento com a equipe de operações. 
• Os profissionais de DevOps estão cada vez mais gerenciando vários servidores, 
cada um executando diversos sistemas operacionais, aplicações, versões e 
requisitos dos mais variados. 
• Tanto o desenvolvimento quanto a implantação são rápidos devido a toda 
infraestrutura, manutenção e escalonamento automático gerenciados pelo 
provedor de nuvem, com isso, o tempo de desenvolvimento é muito mais 
rápido e a implantação mais fácil do que antes.
• As aplicações no serverless computing, podem sofrer massivamente uma 
sobrecarga de requisições sem afetar no seu funcionamento, pois recursos 
são alocados automaticamente, para que não seja prejudicada a eficiência da 
aplicação, ocorrendo um balanceamento de requisições por servidores, por 
exemplo.
• As aplicações, ou funções hospedadas em serverless computing, possuem alta 
disponibilidade, sendo que os provedores de nuvem realizam acordo em 
contrato que garantem esta característica e benefício, não importa quantas 
requisições a aplicação receberá, nesse modelo, a disponibilidade está garantida. 
• Um dos componentes realiza a leitura do banco de dados, outro componente 
prepara os dados e os envia para uma fila, e um terceiro componente processa 
os dados. Esses componentes não executam várias tarefas, realizando 
apenas a única tarefa que são responsáveis, sendo este simples padrão de 
responsabilidade que torna a separação de preocupações por componentes 
mais um dos benefícios do serverless.
102
1 A computação sem servidor (serverless computing) diz respeito a toda 
a infraestrutura, manutenção e escalonamento automático, os quais 
são gerenciados pelo provedor de nuvem e, com isso, o tempo de 
desenvolvimento é muito mais rápido e a implantação mais fácil do que 
antes. Aqui, o desenvolvedor é responsável somente pela própria aplicação, 
eliminando a necessidade de planejar o tempo a ser gasto na configuração do 
servidor. A qual benefício da computação serverless estamos nos referindo?
a) ( ) Desenvolvimento e implantação rápida.
b) ( ) Baixo custo.
c) ( ) Escalabilidade sob demanda.
d) ( ) Separação de preocupações por componentes.
2 Na computação sem servidor (serverless computing) um dos benefícios está 
relacionado aos provedores de nuvem que alugam infraestrutura barata 
para hospedar aplicações ou códigos fonte e executá-los, sendo cobrado 
o ambiente utilizado. Aqui, o cliente paga apenas pelos recursos que 
suas aplicações consumiram, e não pela alocação antecipada de recursos 
de computação ou pela quantidade de aplicações, isto é, sendo pago 
exatamente o que se está utilizando, sem ociosidade de recursos. A qual 
benefício da computação serverless estamos nos referindo?
a) ( ) Desenvolvimento e implantação rápida.
b) ( ) Baixo custo.
c) ( ) Escalabilidade sob demanda.
d) ( ) Separação de preocupações por componentes.
3 Na computação sem servidor (serverless computing) um dos benefícios 
se refere às aplicações neste modelo de computação, as quais podem 
sofrer massivamente uma sobrecarga de requisições sem afetar no seu 
funcionamento, pois recursos são alocados automaticamente para que não 
seja prejudicada a eficiência da aplicação, ocorrendo um balanceamento de 
requisições por servidores, por exemplo. A qual benefício da computação 
serverless estamos nos referindo?
a) ( ) Desenvolvimento e implantação rápida.
b) ( ) Baixo custo.
c) ( ) Escalabilidade sob demanda.
d) ( ) Separação de preocupações por componentes.
AUTOATIVIDADE
103
4 As aplicações ou funções hospedadas em serverless computing possuem 
alta disponibilidade, sendo que os provedores de nuvem realizam acordo 
em contrato que garantem esta característica e benefício, não importando 
quantas requisições a aplicação receberá. A qual benefício da computação 
serverless estamos nos referindo?
a) ( ) Alta disponibilidade da aplicação.
b) ( ) Baixo custo.
c) ( ) Escalabilidade sob demanda.
d) ( ) Separação de preocupações por componentes.
5 Um dos componentes realiza a leitura do banco de dados, outro 
componente prepara os dados e os envia para uma fila, e um terceiro 
componente processa os dados. Esses componentes não executam várias 
tarefas, realizando apenas a única tarefa que são responsáveis, sendo este 
simples padrão de responsabilidade que torna a separação de preocupações 
por componentes mais um dos benefícios do serverless computing. A qual 
benefício do serverless computing estamos nos referindo?
a) ( ) Desenvolvimento e implantação rápida.
b) ( ) Baixo custo.
c) ( ) Escalabilidade sob demanda.
d) ( ) Separação de preocupações por componentes.
104
105
UNIDADE 2
1 INTRODUÇÃO
O aumento crescente do uso de aplicativos causa uma procura, bem como 
uma exigência no processo de implementação e desenvolvimento com qualidade 
e na distribuição ágil (WU, 2008). 
O efeito disso é o aumento na complexidade dos aplicativos em relação 
aos custos da sua implementação e no número de funcionalidades, sendo preciso 
infraestrutura que suportemessas funcionalidades (NG, 2017). 
Portanto, de acordo com Wu (2008) e Creese (2011), uma infraestrutura 
mal projetada cria diversos obstáculos, tais como: 
• usabilidade limitado;
• escalabilidade e evolução;
• custos elevados.
O que se percebe é que atualmente é cada vez menos frequente que as 
empresas tenham sua própria infraestrutura antes de conquistas um alto número 
de usuários e transações (WU, 2008; CREESE, 2011). Isso ocorre já que a oferta de 
serviços de infraestrutura disponível em nuvem se tornou confiável.
Consequentemente, a implementação e o design das aplicações se tornam 
o foco principal, e, com isso, se tornou primordial ter um serviço de back-end 
(CREESE, 2011). Todavia, esse tipo de serviço causa custos de criação, tanto 
financeiro quanto de tempo. 
TÓPICO 2 — 
BACK-END AS SERVICE - BAAS
Back-end consiste na lógica de negócio da aplicação e no processamento e 
gestão de dados dela.
NOTA
106
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
Desse modo, cada vez mais são analisadas soluções que possibilitam 
direcionar o foco do desenvolvimento para o design da aplicação. Isso significa 
encontrar soluções que diminuam o esforço na implementação e desenvolvimento. 
De modo a solucionar esta necessidade, uma abordagem possível passa 
por ignorar o desenvolvimento do back-end e focar no esforço do desenvolvimento 
no front-end das aplicações, originando o conceito MBaaS-Mobile Back-end as a 
Service ou somente BaaS - Back-end as a Service (TAURION, 2009; BATSCHINSKI, 
2016).
Agora vamos compreender o cenário atual e o que é necessário no 
momento de selecionar o melhor modelo para seu projeto (GODSE e MULIK, 
2009). 
2 APLICAÇÕES
Com relação a aplicações de BaaS, vejamos um exemplo. Vamos supor 
que você tenha um aplicativo de corrida de carros, e ele implementa muitas 
funcionalidades, tais como: velocidade, distância percorrida, rotas, entre outros. 
E ainda, seu aplicativo poderá mostrar o mapa com o trajeto percorrido. O 
aplicativo desenvolvido teria um alto custo para ter uma base de dados de mapas 
e ainda mantê-la atualizada, por isso, esses aplicativos utilizam serviços que 
estão disponíveis na nuvem para atender a essa demanda (WU, 2008; GODSE e 
MULIK, 2009; CREESE, 2011).
No entanto, você pode não querer que seu aplicativo calcule a velocidade 
utilizando os recursos do usuário, então, algumas empresas começaram a 
disponibilizar o BaaS (Back-end as a Service). Desse modo, existe a possibilidade 
de transferir para a nuvem qualquer processamento que for preciso para executar 
as funcionalidades do seu aplicativo. 
Muitas empresas estão apostando nesse mercado, o que denota uma 
tendência em investir na arquitetura que use Back-end as a Service (MULIK, 2009; 
CREESE, 2011). Então, agora vamos entender os conceitos sobre BaaS e mBaaS.
3 CONCEITOS DE BACK-END AS A SERVICE - BAAS
Um Back-end como Serviço – BaaS ou mBaaS – é considerada uma 
plataforma que automatiza o desenvolvimento de back-end, bem como atende à 
infraestrutura de nuvem. Isso significa que Back-end as a Service é um modelo 
de arquitetura em que o desenvolvedor implementa a interface e possibilita 
que uma parte ou todo o processamento seja atendido por meio de um serviço 
disponível na nuvem (cloud computing) (WU, 2008; GODSE e MULIK, 2009; 
CREESE, 2011). Isso acarreta a simplificação dos aplicativos (WU, 2008; CREESE, 
TÓPICO 2 — BACK-END AS SERVICE - BAAS
107
2011). A utilização de um BaaS possibilita a terceirização das responsabilidades 
vinculadas à manutenção e ao gerenciamento de servidores para um terceiro, e 
com isso consegue focar no desenvolvimento do front-end (FIGURA 8). 
Ainda, um BaaS provê as ferramentas para auxiliá-lo a desenvolver um 
código de back-end e acelerar o processo de desenvolvimento (TAURION, 2009; 
BATSCHINSKI, 2016). 
FIGURA 8 – NÍVEL DE APLICAÇÃO BaaS
FONTE: https://www.linkedin.com/pulse/iaas-vs-PaaS-saas-BaaS-vaquar-khan-/. Acesso em: 24 
set. 2020.
Nesse sentido, BaaS e MBaaS são praticamente as mesmas coisas, já que 
você pode utilizar um back-end como um serviço para projetos web ou projetos para 
dispositivos móveis (MBaaS) (TAURION, 2009; CREESE, 2011; BATSCHINSKI, 
2016). 
Outro ponto importante é que o BaaS é considerado como um modelo 
mais abrangente, já que oferece soluções modulares para as funções mais 
usuais que necessitam estar disponíveis na infraestrutura. Alguns exemplos 
são: autenticação, armazenamento, push notifications (serviço de notificações), 
integração com serviços externos, escalabilidade automática e analytics estão entre 
os básicos. Cada provedor de infraestrutura BaaS pode oferecer estes e muitos 
outros serviços (BATSCHINSKI, 2016).
A estrutura BaaS pode auxiliar na solução de problemas, tais como: 
gerenciar e dimensionar a infraestrutura em nuvem, e acelerar o desenvolvimento 
de back-end. Portanto, uma plataforma BaaS é considerada como um serviço 
técnico e criado para desenvolvedores.
Isso significa que um usuário sem habilidades terá dificuldades para usá-
lo, sendo os usuários mais comuns, de acordo com Batschinski (2016); Batschinski 
(2019):
https://www.linkedin.com/pulse/iaas-vs-paas-saas-baas-vaquar-khan-/
108
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
• Engenheiros de front-end com pouco conhecimento em desenvolvimento de 
back-end.
• Engenheiros de back-end que querem acelerar o desenvolvimento.
• Engenheiros que precisam terceirizar tarefas de repetitivas ou de baixo valor. 
Alguns exemplos de recursos BaaS (Back-end as a Service): autenticação, 
banco de dados, blockchain e API Gateways – neste modelo, o fornecimento e a gestão 
destes serviços são automáticos e imperceptíveis para o desenvolvedor que os usa em suas 
aplicações.
ATENCAO
Agora vamos compreender a arquitetura BaaS, os conceitos de front-end e 
back-end e qual a diferença entre estes dois conceitos.
4 ARQUITETURA DE BAAS
Um back-end, de um modo geral, é considerado como um serviço 
segmentado em três camadas (BATSCHINSKI, 2016), sendo:
• Primeira camada: possui os servidores de banco de dados, sendo que um 
cluster de banco de dados terá ao menos dois servidores para replicar dados e 
uma rotina de backup para possibilitar que os dados possam ser recuperados. 
• Segunda camada: possui muitos servidores para processar as solicitações. 
A quantidade de servidores muda ao longo do dia, e os procedimentos 
de escalonamento automático são essenciais para atender o grupo com a 
quantidade adequada de servidores. 
• Terceira camada: conecta os servidores de aplicativos à Internet e é composto 
por balanceadores de carga e CDNs.
5 DIFERENÇA ENTRE FRONT-END E BACK-END
De modo geral, os aplicativos possuem uma parte que o usuário 
visualiza, denominada de front-end, já o back-end, representa a parte que o usuário 
não vê (FIGURA 9). Sendo que as duas partes se combinam através de APIs. 
Um dos primeiros modos de aplicação da arquitetura em nuvem é o back-end 
como serviço. Ele faz parte da evolução da aplicação da arquitetura serverless, 
sobretudo por estas aplicações estarem conectadas a algum banco de dados em 
TÓPICO 2 — BACK-END AS SERVICE - BAAS
109
nuvem e serem hospedadas em determinados serviço cloud. Considerando o 
BaaS, não existe preocupação com o Back-end, somente é consumido esse serviço 
através do provedor de computação em nuvem (TAURION, 2009; CREESE, 2011; 
BATSCHINSKI, 2016; BATSCHINSKI, 2019).
FIGURA 9 – BAAS X BACK-END CUSTOMIZADO
FONTE: <https://blog.back4app.com/wp-content/uploads/2019/07/backend-frontend-768x384.
png>. Acesso em: 29 set. 2020.
Vamos analisar dois exemplos para você compreender as diferenças entre o 
código personalizado e o uso de um BaaS, sendo eles: 
BaaS x AWS EC2: imagine que você precise criar um projeto de software e não utilizará 
um BaaS. O primeiro passo para começar a desenvolver um back-end é configurar os ser-
vidores, depois:
Faça o login na AWS ou em qualquer outra nuvem.
Vápara instâncias.
Inicie uma Instância.
Selecione o sistema operacional.
Selecione o tamanho da instância.
Configure detalhes da instância.
Número de instâncias.
Rede
IP.
Monitoramento.
Outras configurações como Auto Scaling, IAM etc.
Adicionar armazenamento.
Configurações de segurança.
IMPORTANT
E
https://blog.onedaytesting.com.br/backend-as-a-service/
https://blog.back4app.com/wp-content/uploads/2019/07/backend-frontend-768x384.png
https://blog.back4app.com/wp-content/uploads/2019/07/backend-frontend-768x384.png
110
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
Tudo bem, sua instância está funcionando e agora você pode iniciar a codificação! Na 
verdade, não! Esta é somente a primeira etapa do processo, e você ainda precisará instalar 
o servidor da Web, o banco de dados, a estrutura etc. Depois você poderá iniciar a codifi-
cação. O tempo para executar esse processo pode variar de algumas horas até dias para 
ambientes grandes. Este mesmo processo utilizando um back-end como um serviço será 
realizado com alguns cliques e não levará mais do que alguns minutos.
Configurações de segurança do LGPD ou GDPR: os requisitos de privacidade da LGPD 
– Lei Geral Brasileira de Dados ou da GDPR (Genereal Data Privacy Requirements) – são 
bastante complexos e a implementação exigirá muito esforço de engenharia. Os requisitos 
vão desde a implementação de HTTPS para dados de trânsito como criptografar dados do 
lado do servidor em repouso (e várias outras condições). A quantidade exata de horas de 
engenharia para atender a todos os elementos dependerá do tamanho e complexidade do 
projeto, mas pode facilmente ultrapassar 100 horas de implementação. Terceirizar esta im-
plementação para uma empresa de back-end como serviço faz muito sentido em especial 
para projetos pequenos e de médio porte. Digo isto, visto que as plataformas de back-end 
podem diluir o investimento feito para implementar configurações de LGBD ou GDPR entre 
centenas ou milhares de aplicativos, e o custo por aplicativo será mínimo. Uma empresa 
com um único projeto terá que compensar todo o investimento em apenas uma aplicação. 
Mesmo que o aplicativo seja bem-sucedido, ele demandará muito mais tempo para ter o 
retorno do investimento.
FONTE: <https://blog.back4app.com/pt/backend-as-a-service/>. Acesso em: 28 jul. 2020.
6 RAZÕES PARA USAR BAAS
As razões para utilizar uma plataforma de Back-end as Service podem ser 
comerciais ou técnicas. Agora vamos entender cada uma delas!
6.1 RAZÕES COMERCIAIS
As vantagens de um back-end como serviço estão atreladas aos ganhos 
de produtividade e terceirização de responsabilidades de gerenciamento de 
servidores. Considerando projetos de pequeno a médio porte, existe mais 
benefícios utilizando uma plataforma de back-end com serviço (BATSCHINSKI, 
2016; BATSCHINSKI, 2019). Outra vantagem é a redução do Time to Market de 
um projeto de software, já que a espera de meses para fornecer um produto de 
software pode acabar com a oportunidade de mercado ou fazer com que a empresa 
tenha mais concorrência (TAURION, 2009; CREESE, 2011; BATSCHINSKI, 2016). 
Sendo assim, as vantagens de um BaaS são:
• Reduzir o Tempo entre a análise de um produto e sua disponibilização para o 
mercado.
• Reduzir o custo de desenvolvimento.
• Utilizar menos desenvolvedores de back-end.
• Terceirizar o gerenciamento da infraestrutura de nuvem.
%3c
TÓPICO 2 — BACK-END AS SERVICE - BAAS
111
6.2 RAZÕES TÉCNICAS 
Os desenvolvedores capacitados de back-end são complicados de se achar 
disponíveis no mercado. Por isso, se a empresa tiver um profissional com essas 
qualificações é preciso utilizar seu tempo com sabedoria. Então, atividades 
repetitivas e boiler plate code é um desperdício de recursos (TAURION, 2009; 
CREESE, 2011; BATSCHINSKI, 2016). 
Além disso, um serviço de back-end permite que os desenvolvedores de 
front-end se concentrem em atividades produtivas. Então, as vantagens técnicas 
são:
• Foco no desenvolvimento de front-end.
• Exclui stack redundante de código.
• Padronização do código fonte.
• Permitir que o desenvolvedor de back-end programar código de alto valor.
• Permitem clonar aplicativos e executar ambientes de teste de modo 
automatizado.
• Configurações de segurança e procedimentos de backup pré-configurados.
7 QUANDO UTILIZAR UM BAAS?
Conforme Batschinski (2016), existem casos mais usuais para se usar Back-
end as a Service, sendo:
• Criação de um MVP (Produto Mínimo Viável).
• Aplicativos que exigem um pequeno número de integrações.
• Aplicações corporativos que não são de missão crítica.
• Para os presentes casos de uso, é uma boa escolha e economizará muito dinheiro 
e tempo.
O MVP (Minimum Viable Product), que traduzindo significa “produto mínimo 
viável”, é a versão simplificada de um produto final de um startup. Através desta versão, o 
empreendedor vai oferecer o mínimo de funcionalidades do produto com o objetivo de 
testar o produto para o mercado.
NOTA
112
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
7.1 VANTAGENS DE UM BAAS
O benefício é a redução do investimento de tempo e recursos financeiros 
na infraestrutura da aplicação. Os SDKs e APIs fornecidos podem ser mais 
simples de uso e bem documentados. As soluções de autenticação, notificações 
push multiplataforma e analytics representam uma vantagem considerável do 
serviço.
A maioria dos BaaS que estão disponíveis no mercado trabalham com 
o modelo freemium. Isso significa que permitem a utilização limitada, mas sem 
custo por usuários ou acessos. Esse acesso sem custos pode ser suficiente para 
pequenas empresas por alguns meses. 
Os aplicativos possuem um front-end, um back-end e APIs conectando 
ambos os lados. Um back-end como um serviço – BaaS ou mBaaS – auxilia o 
desenvolvedor a automatizar parte do trabalho de desenvolvimento de código 
de back-end. Os back-end as a Service terão, ainda, a responsabilidade de implantar, 
gerenciar e escalar aplicativos. Portanto, as vantagens primordiais para utilizar 
um back-end como serviço são: 
• Redução do tempo de lançamento de um aplicativo, em função da velocidade 
de desenvolvimento.
• Redução de custos de desenvolvimento, maior velocidade de desenvolvimento 
reduzindo custo de hora de profissionais. 
• Muito importante, em especial, para startups.
• Terceirização do gerenciamento da infraestrutura.
• É serverless e não é necessário gerenciar a infraestrutura.
• Esforço de desenvolvimento, já que um desenvolvedor pode economizar 
semanas em relação à criação de um back-end. 
• Escalabilidade, a quantidade de usuários pode ser escalada sem interrupções 
ou perda de performance.
• Segurança, as empresas de BaaS fornecem protocolos de segurança de 
qualidade.
7.2 DESVANTAGENS DE UM BAAS
As desvantagens de um BaaS, conforme Batschinski (2016), são:
 
• Menor flexibilidade em comparação com a codificação customizada.
• Menor grau de personalização em comparação com um back-end personalizado.
• Os desenvolvedores apresentam menor controle do código fonte e o acesso ao 
back-end é mais restrito.
• O usuário deve ser cauteloso e avaliar os fornecedores, sendo uma decisão de 
longo prazo e deve ter cuidado em selecionar fornecedores que permitam a 
migração de dados.
TÓPICO 2 — BACK-END AS SERVICE - BAAS
113
8 BAAS E SEUS RECURSOS
Um back-end é considerado um serviço que fornece recursos que podem 
ser implantados em aplicativos de vários segmentos, sendo: 
• Gestão de dados.
• Autenticação de usuário.
• Integração Social (Facebook, LinkedIn, Twitter etc.).
• Verificar de e-mail.
• Notificações.
• Funções de código de nuvem.
• Geolocalização.
• Logs.
• Cache.
• Infraestrutura (configurações de segurança, dimensionamento automático, 
backup de dados, otimização de banco de dados).
8.1 IAAS X PAAS X BAAS
De acordo com Batschinski (2016) e Batschinski (2019), quando um 
desenvolvedor passa de IaaS para PaaS e de PaaS para BaaS, este irá adicionar 
camadas de serviço a seu aplicativo.Vamos analisar da seguinte maneira, conforme a Figura 10. 
• IaaS = Data Center + Servidores + Armazenamento + Rede.
• PaaS = IaaS + Implantar + Gerenciar + Escalar.
• BaaS = PaaS + Recursos para construir back-end.
114
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
FIGURA 10 – IAAS X PAAS X BAAS
FONTE: <https://miro.medium.com/max/268/0*MvwMIGaAgfx0jgwS.png>. Acesso em: 29 set. 2020.
Segundo Batschinski (2019), o maior representante BaaS até 2016 era o 
“Parse.com” com mais de um milhão de aplicativos instalados em sua plataforma, 
e ainda com mais de 600 mil usuários. 
O Parse foi adquirido pelo Facebook em 2013, porém, em 2016, a rede social 
tomou a decisão de fi nalizar as operações. Com isso, milhões de aplicações tiveram que 
buscar alternativas de migração (BATSCHINSKI, 2016).
INTERESSA
NTE
TÓPICO 2 — BACK-END AS SERVICE - BAAS
115
De acordo com Godse e Mulik (2009), Taurion (2009), Creese (2011), 
Batschinski (2016) e Batschinski (2019), estas são algumas opções de BaaS:
8.1.1 Azure Mobile Apps
A Azure Mobile Apps A Microsoft integra-se ao Xaramim (front-end cross-
platform) e ao Azure. As vantagens são:
• Protocolos de segurança: fornece segurança de nível corporativo para criar 
aplicativos.
• Sincronização off-line: permite que os usuários sincronizem dados 
automaticamente.
• Integrações AD: permite o login da empresa.
8.1.2 Back4App
O Back4App possui banco de dados em tempo real, graphQL, notificações 
push, autenticação, integração de SDK, gerenciamento de usuários, entre outros. 
Essa tecnologia é baseada em código aberto, então isso significa que envolve Parse 
Server, MongoDB ou Postgrees e NodeJS. Outro ponto relevante que precisa 
ser comentado é que essa plataforma cuida da escala, já que possui aplicativos 
consideravelmente grandes rodando e, ainda, tem uma arquitetura bem projetada 
que oferece desempenho e confiabilidade. 
Os planos iniciam com uma camada gratuita indicada para aplicações em 
desenvolvimento. O nível gratuito foi planejado para fins de desenvolvimento 
e aprendizado, já os aplicativos em produção precisam de um plano pago. As 
vantagens de utilizar o Back4App são:
• Facilidade de utilização: a plataforma é simples de utilizar, e em apenas poucos 
minutos pode se iniciar a codificação de um aplicativo simples.
• Flexibilidade: gerencia as versões de código-fonte, e o código-fonte pode ser 
alterado conforme a necessidade da empresa. 
• Hospedagem: muitas opções de hospedagem disponíveis, e ainda é um serviço 
confiável. 
• Content Delivery Network (CDN): os aplicativos hospedados no Back4App 
distribuirão automaticamente o conteúdo de modo global. 
• GraphQL: nova implementação e fornece a linguagem de consulta mais 
avançada. 
• Suporte: suporte 24/7. Os diferentes níveis de suporte disponíveis de acordo 
com o orçamento do cliente.
116
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
8.1.3 Firebase
O Firebase é uma plataforma de código fechado adquirida pelo Google, 
em 2014. O Firebase possui recursos como análise, autenticação, banco de dados 
em tempo real e hospedagem. O Firebase abrange três pilares:
• Recursos de desenvolvimento: contempla ferramentas para aumentar o 
desenvolvimento de aplicativos móveis, e ainda possui autenticação do usuário, 
armazenamento, banco de dados em tempo real, aprendizado de máquina e 
funções de nuvem. 
• Serviços do analytics: fornece um conjunto de serviços de análise para 
dispositivos móveis que melhoraram o desempenho do aplicativo.
• Crescimento: integra um serviço chamado Ad Mob, que possibilita a veiculação 
de anúncios no aplicativo. 
As vantagens de utilizar o Firebase são:
• Banco de dados em tempo real: permite a criação de aplicativos de mensagens 
como o WhatsApp, que usa dados em dispositivos quase que instantaneamente.
• Aprendizado de máquina: recurso disponível no Firebase e não disponível em 
outros back-ends como serviço. 
• Ad Mob: permite gerar receita com seu aplicativo e integrá-lo a uma rede 
global de anúncios gerenciada pelo Google.
8.1.4 Parse
O Parse é um framework de código aberto suportado por uma grande 
comunidade de desenvolvedores, tendo mais de 30k estrelas e 15 forks no Github. 
O Parse proporciona aos desenvolvedores uma maneira de elaborar aplicativos 
ágeis. A estrutura fornece aos desenvolvedores uma stack tecnológica que 
abrange um módulo de servidor de API para o Node.JS, um painel para gerenciar 
aplicativos, SDK e bibliotecas, adaptadores e documentação.
As alternativas ao self-hosting do Parse são os provedores de nuvem, como 
AWS, Azure ou Digital Ocean. O Parse é gratuito, sendo que o único custo está 
atrelado à hospedagem. As vantagens de utilizar o Parse são:
• Gerenciamento de dados: armazena tipos de dados essenciais, consultas, locais, 
imagens com algumas linhas de código. 
• Simplicidade: o framework é simples e a curva de aprendizado é menos de 
uma hora, considerando pequenos projetos.
• Flexibilidade: trabalha com uma estrutura de código aberto leva a versatilidade 
para o próximo nível. 
• Código personalizado: o Parse fornece um recurso chamado Cloud Code. 
• Multiplataforma: há muitos SDKs disponíveis, podendo utilizar o Parse em 
quase todas as plataformas. 
TÓPICO 2 — BACK-END AS SERVICE - BAAS
117
• GraphQL: fornece a linguagem de consulta mais avançada. 
8.1.5 CloudKit
A CloudKit é considerada uma plataforma de back-end de código 
fechado e gerenciada pela Apple. Sua utilização é para desenvolver aplicativos 
para iOS e possui SDK nativo. A plataforma disponibiliza serviços de banco de 
dados, autenticação e armazenamento. Isso permite que os desenvolvedores se 
concentrem no desenvolvimento necessário ao cliente. Desse modo, o CloudKit 
é considerado como um repositório de dados com suporte de autenticação de 
identificação iCloud essencial e uma API na frente dele. Quando comparado com 
outros serviços, ele apresenta menos recursos, sendo a principal vantagem de 
usar o CloudKit é o SDK nativo para iOS. 
Os back-endless são considerados um dos primeiros players disponíveis 
no mercado e atuam sem investimento de fundos de capital de risco. A empresa 
pode utilizar o serviço on-line ou rodar a estrutura de modo local. Existe um 
nível gratuito limitado para hospedagem on-line, bem como planos pagos. As 
vantagens de usar são:
• Versão local: executa esta versão de modo local em seu servidor ou em qualquer 
outra plataforma de nuvem.
• Recurso de cache: disponível em hospedagem local ou em nuvem.
• Suporte: fornecem suporte 24/7 aos usuários.
8.1.6 Kinvey
O Kinvey é um back-end direcionado em grandes corporações, permitindo 
a operação em aplicativos corporativos utilizando um ambiente serverless. Nos 
planos estão inclusas hospedagem e operação, e a versão grátis tem um limite de 
100 usuários. As vantagens são:
• Integrações empresariais populares: adequada para grandes empresas. O 
serviço abrange integrações como Salesforce, SAP, Workday, Microsoft Active 
Directory e Oracle.
• Ferramentas de inteligência operacional: relatórios de conformidade e análise. 
Ele fornece aplicativos compatíveis com HIPAA para empresas de saúde.
• Suporte: 24/7 disponível.
118
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
8.1.7 AWS Ampify
O AWS Ampify é considerado uma biblioteca de código aberto 
funcionando em conjunto com o Amazon Web Services. Ele disponibiliza suporte 
a desenvolvedores para elaborar aplicativos escalonáveis sem servidor, e ainda 
integra de modo suave com iOS, Android, React Native e outros front-ends da 
web. 
Os recursos disponíveis englobam o Google Analytics, Notificações, 
AR/VR, armazenamento e APIs. O serviço possui um plano Pay as You Go para 
ambientes de produção. As vantagens são:
• CDN (Content Delivery Network): fácil de integrar com o CloudFront e implantar 
conteúdo globalmente.
• GraphQL: o Amplify fornece um recurso chamado GraphQL Transform, que 
auxilia noprocesso de desenvolvimento.
• Implantações atômicas: permite que seu aplicativo continue funcionando 
mesmo se o processo de construção falhar em novos lançamentos.
8.1.8 Kii
O Kii é considerado como uma plataforma de desenvolvimento de back-
end para jogos, IoT e aplicativos de modo geral. O seu funcionamento é tanto 
em nuvens públicas quanto privadas. Os recursos possuem notificações push, 
gerenciamento de dados e usuários, testes A/B, geolocalização e análises. As 
vantagens são:
• Várias opções de implantação: executa a solução em qualquer nuvem ou 
localmente.
• Internet of Things (IoT): usa recursos para interações de IoT.
• Soluções de nicho: possui soluções específicas para agricultura, gestão de 
ativos, beacons, entre outros.
8.1.9 Kumulos
O Kumulos é uma definida como plataforma de back-end desenvolvida 
para empresas de desenvolvimento de aplicativos móveis e agências digitais. 
Auxilia essas empresas a criar aplicativos para seus clientes. Os valores são 
diferenciados conforme os níveis das empresas, sendo: startups, agências digitais 
e empresas. As vantagens são:
TÓPICO 2 — BACK-END AS SERVICE - BAAS
119
• Relatórios e diagnósticos de falhas: auxilia os desenvolvedores a encontrar 
problemas de modo rápido e a tomar medidas para solucionar.
• Otimização de App Store: uma característica única entre todos os BaaS e 
disponível apenas na Kumulos.
• Console da agência: permite que uma empresa de desenvolvimento de software 
gerencie vários aplicativos em uma conta corporativa.
Conforme Taurion (2009), alguns outros provedores de back-end como 
serviços, são:
• Playfab. 
• Appcelerator.
• BaaSBox.
• MongoDB Stich.
• Oracle Mobile Hub.
• Game Sparks. 
• Baqend.
• Convertigo.
• Kuzzle.
• Hoodie. 
ATENCAO
9 MERCADO
Conforme Batschinski (2019), o mercado de BaaS tem previsão de 
crescimento superior a 80% ao ano, podendo atingir 28 bilhões de dólares agora 
em 2020. Esse crescimento é motivado em função das economias orientadas a 
aplicativos ao redor do mundo (WU 2008; GODSE; MULIK, 2009; NG, 2017)
O impacto dos aplicativos também é sentido nas indústrias, trazendo 
mudanças disruptivas tanto nos negócios quanto nos processos. Isso é em 
decorrência da mobilidade empresarial que gira em torno de aplicativos, e, 
ainda, as organizações estão investindo em aplicações mobile para ampliar a 
mobilidade (CREESE, 2011; NG, 2017). A previsão é de que, em 2020, poderão 
existir aproximadamente 20 milhões de desenvolvedores ao redor do mundo, 
sendo este o profissional que mais será requisitado (BATSCHINSKI, 2019).
120
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu que:
• A utilização de um BaaS possibilita a terceirização das responsabilidades 
vinculadas à manutenção e ao gerenciamento de servidores para um terceiro. 
• MBaaS se refere ao back-end como um serviço para projetos web ou projetos 
para dispositivos móveis.
• Uma plataforma BaaS é considerada como um serviço técnico e criado para 
desenvolvedores.
• Um back-end é considerado como um serviço segmentado em três camadas.
• As razões para utilizar uma plataforma de Back-end as Service podem ser: 
comerciais ou técnicas. 
• Algumas opções de plataforma BaaS são: Azure Mobile Apps, Back4App, 
Firebase, Parse, CloudKit, Kinvey, AWS Ampify, Kii, Kumulos.
121
1 Back-end como Serviço (BaaS ou mBaaS) é considerada uma plataforma 
que automatiza o desenvolvimento de back-end, bem como atende a 
infraestrutura de nuvem (WU, 2008; GODSE; MULIK, 2009; CREESE, 2011). 
Então, sobre o ato de jogar, assinale a alternativa CORRETA:
a) ( ) Back-end as a Service é um modelo de arquitetura em que o desenvolvedor 
implementa a interface.
b) ( ) Back-end as a Service possibilita que somente uma parte do 
processamento seja atendido por meio de um serviço disponível na nuvem.
c) ( ) BaaS possui as ferramentas para garantir desenvolver um código fonte 
e reduzir o processo de implementação.
d) ( ) A utilização de um BaaS não possibilita a terceirização das 
responsabilidades vinculadas a manutenção e ao gerenciamento de 
servidores para um terceiro.
2 Um dos primeiros modos de aplicação da arquitetura em nuvem é o Back-
end como Serviço. Ele faz parte da evolução da aplicação da arquitetura 
Serverless, sobretudo por estas aplicações estarem conectadas a algum banco 
de dados em nuvem e serem hospedadas em determinados serviço cloud. 
Considerando o BaaS não existe preocupação com o Back-end, somente é 
consumido esse serviço através do provedor de computação em nuvem 
(TAURION, 2009; CREESE, 2011; BATSCHINSKI, 2016; BATSCHINSKI, 
2019). Considerando esta afirmação, assinale a alternativa CORRETA:
a) ( ) As vantagens de um back-end como serviço estão atreladas somente à 
terceirização de responsabilidades de gerenciamento de servidores.
b) ( ) A vantagem é gerenciar a infraestrutura de nuvem.
c) ( ) A vantagem de um BaaS é utilizar mais desenvolvedores de back-end.
d) ( ) A vantagem de um BaaS é reduzir o tempo entre a análise de um 
produto e sua disponibilização para o mercado.
3 Ao se utilizar uma estrutura BaaS, dividido em algumas camadas, é possível 
resolver alguns problemas, como o gerenciamento e dimensionamento da 
infraestrutura em nuvem, assim como a aceleração do desenvolvimento de 
back-end. Considerando esta afirmação, assinale a alternativa CORRETA:
a) ( ) BaaS é segmentado em duas camadas, sendo uma a que possui 
servidores de bancos de dados e a outra a que possui servidores para 
processamento de requisições.
b) ( ) BaaS é segmentado em três camadas e oferece vários serviços 
disponíveis na própria infraestrutura.
AUTOATIVIDADE
122
c) ( ) BaaS é considerada uma plataforma exclusiva para administradores 
de servidores.
d) ( ) BaaS disponibiliza muitos serviços, exceto autenticação e push 
notifications.
4 Plataformas BaaS oferecem muitos benefícios para equipes de 
desenvolvimento de software, permitindo que mais tempo seja voltado para 
atividades do projeto de software, e não para infraestrutura de servidores. 
Considerando esta afirmação, assinale a alternativa CORRETA:
a) ( ) São muitas as vantagens de se utilizar uma plataforma BaaS, a qual é 
indicada apenas para projetos de grande porte.
b) ( ) Uma desvantagem de se utilizar o BaaS é o aumento do time to market 
de um projeto de software.
c) ( ) O BaaS pode reduzir o tempo de análise de um projeto de software.
d) ( ) Apesar da aceleração do processo de desenvolvimento de software, 
uma das desvantagens de se utilizar o BaaS é o aumento do número de 
desenvolvedores.
5 O BaaS pode ser definido por uma plataforma que acelera o desenvolvimento 
de back-end de uma aplicação, atendendo a infraestrutura de nuvem. 
Nesse sentido, o Back-end as a Service pode ser considerado um modelo de 
arquitetura no qual o desenvolvedor implementa a interface e possibilita 
que o processamento seja atendido por meio de um serviço disponível na 
nuvem. Considerando esta afirmação, assinale a alternativa CORRETA:
a) ( ) A minoria dos BaaS que estão disponíveis no mercado trabalha com o 
modelo freemium.
b) ( ) Modelo freemium de BaaS significa que permite uma utilização 
limitada, porém sem custo por usuários ou acessos.
c) ( ) Aplicativos possuem um front-end, um back-end e APIs, sendo o front-
end, a parte da aplicação que lida diretamente com regras de negócios e 
com o banco de dados.
d) ( ) Uma das vantagens principais do BaaS é o menor grau de personalização 
em comparação com um back-end personalizado.
123
UNIDADE 2
TÓPICO 3 — 
FUNÇÃO COMO SERVIÇO (FAAS)
1 INTRODUÇÃO
As Funções como Serviço (FaaS) podem ser descritas como um modelo de 
execução computacional orientado a eventos. As funções gerenciam a lógica e o 
estado no lado do servidor usado como serviços (REDHAT, 2020).
 É um serviço de computação em nuvem que permite executar código 
em resposta a eventos sem a infraestrutura complexa, normalmente associada à 
criação e publicação de softwares (IBM, 2019).
Usualmente, a publicaçãode um software na internet requer 
provisionamento e gerenciamento de um servidor virtual ou físico, gerenciamento 
de processos de hospedagem de sistemas operacionais e servidores da web. Com 
a utilização do FaaS, o hardware físico, o sistema operacional da máquina virtual 
e o gerenciamento de software do servidor são gerenciados pelo provedor da 
nuvem (IBM, 2019).
A implantação de funções como serviço são muito diferentes das formas 
tradicionais e com reserva de recurso, pois não temos aplicações de servidor para 
executar por conta própria. Em um ambiente FaaS, carregamos o código da função 
no provedor e ele faz todo o necessário para provisionar recursos, instanciar as 
máquinas virtuais e gerenciar os processos, por exemplo (ROBERTS, 2018).
A computação sem servidor é um contexto em que os desenvolvedores 
escrevem a lógica de negócios, que é executada em contêineres Linux, totalmente 
gerenciados por uma plataforma, por exemplo na Amazon Web Services ou 
Microsoft Azure. As funções estão na nuvem, no entanto, algumas implementações 
on-premise e híbridas podem ser concebidas (REDHAT, 2020). 
Por que ficar sem servidor para a minha aplicação? As vantagens começam 
por garantir que não haja nenhuma sobrecarga de infraestrutura, atividades de 
manutenção reduzidas, o custo eficiente mais adequado à real necessidade do 
negócio, e, por fim, a escala é facilmente e rapidamente implementada, permitindo 
que o produto seja amplamente distribuído, gerando resultados financeiros mais 
rápido para o negócio (IBM, 2020a).
124
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
A função dentro de uma estrutura FaaS, normalmente concebida sob a 
lógica de um micro serviço, é um algoritmo que entrega uma lógica de negócios, 
o que faz com que normalmente as aplicações sejam compostas de muitas funções 
(REDHAT, 2020).
A utilização do FaaS traz alguns benefícios para o desenvolvimento de 
software, seja para o desenvolvedor, principal beneficiado, seja para o usuário, que 
vai ter uma experiência mais fluida e com maior disponibilidade e produtividade 
(REDHAT, 2020). 
Em um primeiro momento, pode-se destacar o aumento da produtividade 
dos desenvolvedores e do tempo de desenvolvimento, assim os programadores 
de software colhem os benefícios do FaaS (REDHAT, 2020).
Outro aspecto positivo é não ter a responsabilidade pelo gerenciamento 
de servidores, pois a solução está nas plataformas dos provedores, assim, os 
analistas de infraestrutura saem, também, beneficiados (REDHAT, 2020).
Do ponto de vista do usuário, a possibilidade de a aplicação ser 
escalada facilmente e escalada horizontalmente de forma gerenciada pela 
própria plataforma provedora do serviço, faz com que o software tenha melhor 
desempenho e disponibilidade (REDHAT, 2020).
E o melhor do FaaS é que quase qualquer software pode ir para a 
estrutura de função como serviço, pois estas podem ser escritas em quase todas 
as linguagens de programação (REDHAT, 2020). Por exemplo, as funções do 
AWS Lambda podem ser implementadas em JavaScript, Python, Go, qualquer 
linguagem JVM ou .NET (ROBERTS, 2018).
Assim como os serviços de computação em nuvem, a infraestrutura pode 
se comportar de forma inteligente. Logo, em tendo a demanda de solicitação de 
função caindo, a aplicação reduz a escala da infra automaticamente. O (REDHAT, 
2020).
2 CONCEITOS
Podemos simplificar a definição do conceito de FaaS como sendo a 
execução de código de back-end sem gerenciar seus próprios sistemas de servidor 
ou aplicativos de servidor de longa duração, o qual possui a principal diferença 
quando comparada com outras tendências da arquitetura moderna, como os 
Platform as a Service (PaaS), que o desenvolvedor precisa alocar o servidor por um 
longo período, mesmo que não tenha toda essa necessidade (ROBERTS, 2018).
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS)
125
Na Figura 11 são apresentadas as camadas que são gerenciadas de acordo 
com cada tipo de serviço de computação em nuvem, sendo possível perceber a 
tendência de diminuição da responsabilidade de manutenção da infraestrutura 
conforme a evolução da esquerda para a direita vai ocorrendo, ou seja, de 
totalmente gerenciável até nada gerenciável.
FIGURA 11 – CAMADAS GERENCIAIS POR TIPO DE SERVIÇOS
FONTE: <https://www.smartspate.com/deploy-an-apps-in-aws-serverless/>. Acesso em: 29 set. 2020.
As infraestruturas on premise, conforme Figura 11, necessitam de total 
controle por parte da equipe de desenvolvimento de software, até mesmo do 
hardware. Na IaaS, a preocupação passa a ser apenas das questões de sistemas 
operacionais e seus níveis superiores, simplifi cando as questões de hardware, redes, 
armazenamento e virtualização. Na coluna seguinte, os PaaS simplifi cam ainda 
mais, delegando ao desenvolvedor apenas a necessidade de gerenciar aspectos 
relacionados a recursos que precisam servir a aplicação e ao código propriamente 
dito. Na sequência, o FaaS simplifi ca ao máximo, fazendo o desenvolvedor se 
preocupar apenas com código fonte. Os SaaS já são considerados, do ponto de 
vista do usuário, onde não há preocupação com codifi cação, mas apenas com o 
uso do software propriamente dito.
O FaaS pode substituir um servidor de processamento de cliques, por 
exemplo, que seja possivelmente uma máquina física, mas defi nitivamente um 
aplicativo específi co, por algo que não precisa de um servidor provisionado, nem 
um aplicativo que esteja executando 24/7 (ROBERTS, 2018).
126
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
A computação sem servidor e as funções como serviço são normalmente 
vistas como análogas, mas o FaaS é uma parte da computação serverless, o qual é 
focado em qualquer categoria de serviço, seja computação, armazenamento, banco 
de dados, mensagens, gateways da API, dentre outros, nos quais o gerenciamento 
é transparente para o usuário final. 
O FaaS, por outro lado, talvez seja a tecnologia mais central em arquiteturas 
sem servidor, concentra-se no paradigma da computação orientada a eventos em que o 
código do software é executado apenas em resposta a eventos ou solicitações (IBM, 2019).
De acordo com a IBM (2019) o FaaS se difere de outros modelos comuns 
de computação no mercado:
• Tempo de provisionamento: milissegundos, comparado a minutos e horas para 
os outros modelos.
• Administração contínua: nenhuma, comparada a uma escala móvel de fácil a 
difícil para PaaS, contêineres e VMs.
• Escala elástica: cada ação é sempre instantânea e escalada, em comparação com 
outros modelos que oferecem escalonamento automático, mas lento, os quais 
requerem ajustes cuidadosos das regras de escalonamento automático.
• Planejamento de capacidade: não é necessário no FaaS, em comparação 
com outros modelos que exigem uma mistura de alguns dimensionamentos 
automáticos e algum planejamento de capacidade.
• Manutenção: toda a manutenção é gerenciada pelo provedor FaaS. No entanto, 
o PaaS, contêineres e VMs requerem manutenção significativa, que inclui a 
atualização e gerenciamento de sistemas operacionais, imagens de contêineres, 
conexões, dentre outros.
• Alta disponibilidade e recuperação de desastre: a alta disponibilidade é inerente 
ao modelo FaaS sem esforço ou custo extra. Os outros modelos exigem custos 
adicionais e esforço de gerenciamento.
• Utilização de recursos: os recursos nunca estão ociosos, são invocados somente 
mediante solicitação. Todos os outros modelos apresentam pelo menos algum 
grau de capacidade ociosa.
• Limites de recursos: o FaaS é o único modelo que possui limites de recursos em 
tamanho de código, ativações simultâneas, memória e duração da execução, 
por exemplo.
• Granularidade e cobrança de carregamento: por blocos de 100 milissegundos, 
comparados à hora e, as vezes, aos minutos de outros modelos.
3 FUNÇÕES COMO SERVIÇO
Em uma arquitetura orientada, as funções, ou eventos, como vimos 
anteriormente, é preciso se atentar a alguns aspectos críticos para queos benefícios 
da FaaS sejam possíveis de serem alcançados. Por exemplo, o limite de tempo de 
execução de uma função, sendo necessário que uma função seja algo que possa 
ser iniciado e executado rapidamente (REDHAT, 2020).
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS)
127
 Por parte do provedor do serviço em nuvem, as funções iniciam em 
questão de milissegundos e processam solicitações individuais. 
O ponto de destaque para essa arquitetura é, caso haja várias solicitações 
simultâneas por parte da aplicação solicitante a serem processadas por uma função, 
o sistema criará um número de cópias suficientes da instância de processamento 
das funções para atender à demanda (REDHAT, 2020).
As funções são normalmente acionadas por eventos definidos pelo 
provedor, no caso da Amazon Web Services, esses acionamentos podem ser 
atualizações no servidor de arquivos S3, passagem de tempo, como tarefas 
agendadas, e mensagens adicionadas a um barramento de mensagens (ROBERTS, 
2018).
Quando existem transações de alto volume, ou seja, cargas de trabalho que 
ocorrem de tempos em tempos, os FaaS são muito adequados. Em caso de geração 
de relatórios, processamento de imagens ou quaisquer tarefas programadas, por 
exemplo (REDHAT, 2020).
No entanto, as funções normalmente são limitadas em quanto tempo 
cada chamada é executada. Segundo Roberts (2018), o tempo limite para uma 
função do AWS Lambda – serviço FaaS da AWS – responder a um evento é de no 
máximo cinco minutos. O Microsoft Azure e o Google Cloud Functions têm limites 
semelhantes (ROBERTS, 2018).
Contudo, certas tarefas – as de longa duração – não são adequadas a serem 
desenvolvidas no modelo FaaS. É necessário criar várias funções coordenadas, 
enquanto, em um ambiente tradicional você pode ter uma tarefa de longa duração 
executando coordenação e execução (ROBERTS, 2018).
A implementação e eficácia dos FaaS depende de algumas práticas 
recomendadas, por exemplo, cada função deve executar apenas uma ação, as 
funções do FaaS devem ser projetadas para executar uma única lógica em resposta 
a um evento. Torne seu escopo de código limitado, eficiente e leve, para que as 
funções sejam carregadas e executadas rapidamente. 
Não é aconselhável que as funções chamem outras funções, o grande 
diferencial do FaaS está no isolamento de funções. Evitar a utilização de bibliotecas 
em funções é altamente benéfico, pois o uso de muitas bibliotecas pode diminuir 
a velocidade das funções e torná-las mais difíceis de dimensionar (IBM, 2019).
128
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
4 ESCALABILIDADE
A escala horizontal é totalmente automática, elástica e gerenciada pelo 
provedor. Se o seu sistema precisar processar 100 solicitações em paralelo, 
o provedor cuidará disso sem nenhuma configuração extra de sua parte. Os 
“contêineres de computação” que executam suas funções são efêmeros, com o 
provedor FaaS criando e destruindo-os puramente orientados pela necessidade 
de tempo de execução. Com o FaaS, o fornecedor lida com todo o provisionamento 
e alocação de recursos subjacentes – nenhum gerenciamento de cluster ou VM é 
necessário para o usuário (ROBERTS, 2018).
A escalabilidade é fundamental do ponto de vista de negócios. Digamos 
que estávamos tendo um bom dia de vendas em uma loja virtual, e os clientes 
estavam clicando em dez vezes mais anúncios do que o costumeiro para a loja 
em questão. Em uma arquitetura tradicional, o sistema on-line da loja teria 
que ser capaz de lidar com isso. Por exemplo, o site teria que saber lidar com 
várias mensagens ao mesmo tempo, provisionando recursos para crescimentos 
esporádicos. 
Com a abordagem do FaaS, todas essas dificuldades são resolvidas de 
princípio, é necessário apenas escrever a função para que entenda o paralelismo 
em escala horizontal, mas, a partir desse momento, o provedor do FaaS lida 
automaticamente com todas as necessidades de dimensionamento (ROBERTS, 
2018).
5 SEGURANÇA
A aplicação em FaaS exige uma análise profunda na questão de segurança, 
cada caso deve ser explorado da forma mais adequada ao que diz respeito ao 
projeto. Cada fornecedor sem servidor que você usa, aumenta o número de 
diferentes implementações de segurança adotadas. Essa situação aumenta 
potencialmente a área para ataques maliciosos (ROBERTS, 2018).
6 CUSTOS RELACIONADOS
A empresa que desenvolve o software paga pelo que consumir do 
provedor, sendo a cobrança apenas do uso de recursos efetivamente entregues 
ao usuário, por exemplo, não pagando por servidor quando em sua ociosidade 
(REDHAT, 2020). 
Além disso, o usuário não paga, nem se preocupa, com a memória, CPU 
e demais recursos relacionados. E, ainda, não se preocupa com instalação e 
configuração, muito menos com administração contínua da infraestrutura (IBM, 
2020c).
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS)
129
Não se preocupar com a infraestrutura inclui não precisar fazer o 
planejamento da capacidade, pois o FaaS fornece automaticamente a capacidade 
adequada de acordo com a demanda da função (IBM, 2020c). 
Quando o FaaS não está em uso, ele não custa nada. O código somente é 
executado quando há uma requisição ao serviço, mudança de estado do banco de 
dados ou outro tipo de evento que aciona a execução do código. No caso da IBM, 
o faturamento é por milissegundo de tempo de execução arredondado até o 100 
MS mais próximos (IBM, 2020a).
7 CASOS DE APLICAÇÕES
Os micros serviços ainda necessitam de grande complexidade na concepção 
da infraestrutura usando tecnologias de nuvem tradicionais, as quais necessitam 
uma variedade de controles relacionados a ferramentas complexas e pipelines de 
construção e operações. Equipes pequenas e ágeis utilizam muito tempo criando 
infraestruturas complexas e operacionais, com recursos de tolerância a falhas, 
balanceamento de carga, ajustes automáticos de escala e criação de logs (IBM, 
2020b). 
A capacidade modular e escalável dos FaaS fazem com que ele se torne 
ideal para implementar lógicas de ações, as ações são independentes uma das 
outras e podem ser implementadas usando várias linguagens diferentes que são 
suportadas pelo provedor, tendo a capacidade de acessar vários sistemas back-
end. As ações podem ser implementadas e gerenciadas independentemente, além 
de ser escalada de forma separada de outras ações (IBM, 2020b).
Até mesmo aplicações web voltadas para usuário final podem ter os 
benefícios das FaaS, nas quais as requisições do navegador do usuário servem 
como eventos. As solicitações são processadas apenas a partir da interação do 
usuário, não existindo tempo de espera, tornando o FaaS menos caro quando 
comparado com contêineres tradicionais (IBM, 2020b).
Aplicações voltadas para internet das coisas também podem usufruir 
dos benefícios dos eventos disparados ao FaaS. Por exemplo, uma ação poderá 
ser acionada quando precisar reagir a um sensor que excede uma temperatura 
específica. As interações IoT são geralmente sem estado e com o potencial de alta 
carga em grandes eventos espontâneos, como desastres naturais, tempestades 
climáticas significativas ou engarrafamentos. Uma necessidade é criada para um 
sistema elástico em que a carga de trabalho normal pode ser pequena, mas precisa 
escalar rapidamente com tempo de resposta previsível. 
130
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
Portanto, a capacidade de manipular vários eventos simultâneos sem 
aviso prévio no sistema é desejável. É difícil construir um sistema para atender 
esses requisitos que usam arquiteturas de computação em nuvem com servidores 
tradicionais. Essas infraestruturas tendem a ser subdesenvolvidas e incapazes 
de manipular a carga de pico no tráfego ou ser excessivamente provisionados e 
altamente custosos (IBM, 2020b).
Uma aplicação prática e adequada à estrutura de FaaS é a montagem de 
APIs sem servidores. O FaaS pode chamar uma ação com métodos do HTTP. Esse 
recurso é útil não apenas para expor APIs a consumidoresexternos, mas também 
para construir aplicativos de micro serviços (IBM, 2020b).
8 APLICAÇÕES EM CENÁRIOS DE BIG DATA
As arquiteturas sem servidor, como FaaS, tem um grande potencial 
em auxiliar as aplicações de software que trabalham com big data. A alta 
disponibilidade das funções e alta tolerância a falhas e disponibilidade permitem 
que o desenvolvimento se concentre mais no desenvolvimento da solução big 
data. O tempo de colocação no mercado reduzido é essencial para as soluções de 
big data, pois levam apenas alguns minutos para iniciar. 
No entanto, antes de implementar sua solução de big data na arquitetura 
sem servidor, há algumas coisas que precisam ser consideradas, pois nenhuma 
solução é perfeita. É necessário descobrir se o servidor está sendo uma solução 
barata para o sistema de big data ou não. Em segundo lugar, se a equipe é capaz de 
implementá-la ou será obrigada a contratar novos profissionais para a concepção 
dessa solução específica. Além disso, precisa-se descobrir se a estratégia para 
o gerenciamento de pipelines de big data. A segurança dos dados também é 
uma grande preocupação quando avança para as soluções centradas em dados 
(AKIWATKAR, 2018). 
Um aspecto negativo é que os dados são buscados em várias fontes, o 
que aumenta significativamente o tempo de execução. E como as funções sem 
servidor têm vida curta, isso entra em conflito com as melhores práticas. É viável 
fazer a implementação neste modelo, contudo, foge dos padrões e boas práticas, 
e também aumentará o custo geral da solução de big data (AKIWATKAR, 2018).
Se trata de tecnologia em plena evolução, logo as possíveis soluções para 
os problemas apresentados estarão dispostas para a comunidade. Contudo, 
o a computação sem servidor entregará bons benefícios quando os problemas 
forem compreendidos completamente e o software for construído de acordo com 
normas e boas práticas (AKIWATKAR, 2018).
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS)
131
9 DESVANTAGENS
Assim como a maioria das tecnologias, principalmente as que estão em 
fases mais iniciais, os FaaS possuem algumas desvantagens, e estão associadas à 
forma pela qual as plataformas são implementadas. Alguns exemplos são a duração 
de execução, latência de inicialização e limites de função cruzada. A latência de 
inicialização pode ser possivelmente atenuada, permitindo que um cliente solicite 
ao provedor que duas instâncias de uma função FaaS estejam sempre disponíveis 
em baixa latência, com o cliente pagando por essa disponibilidade (ROBERTS, 
2018). 
10 PLATAFORMAS DE FAAS
As plataformas são responsáveis por entregar o serviço ao desenvolvedor 
e gerenciar toda a infraestrutura necessária para o desenvolvedor ter um ambiente 
pronto e apenas implementar e focar na regra de negócio da solução que busca 
implementar. Um provedor de nuvem torna uma função sempre disponível e 
gerencia a alocação de recursos. Como as funções são orientadas a eventos, e não 
a recursos, elas podem ser escaladas com facilidade.
10.1 AWS LAMBDA
O principal provedor de computação em nuvem entrega sua ferramenta 
de função como serviço já consolidada e muito utilizada por grandes corporações.
FIGURA 12 – AMAZON WEB SERVICES
FONTE: <https://aws.amazon.com/pt/lambda/>. Acesso em: 29 set. 2020.
O serviço Lambda da AWS entrega as funcionalidades do FaaS, permitindo 
a execução de código sem provisionar ou gerenciar servidores, bem como as 
facilidades de pagar apenas pelo tempo de execução consumido pelas funções. 
Com o Lambda é possível executar o código para variados tipos de aplicativo ou 
serviços de back-end, tudo sem precisar de administração da infraestrutura. 
A quase que única tarefa é fazer a inserção do código, que o Lambda 
se encarrega de todos os procedimentos necessários para executar e alterar a 
escala do código e deixar a infraestrutura com alta disponibilidade. Você pode 
132
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
confi gurar seu código para que ele seja acionado automaticamente por outros 
serviços da AWS ou chamá-lo diretamente usando qualquer aplicação móvel ou 
da web (AWS, 2020).
A Figura 13 apresenta como funciona passo-a-passo o serviço de FaaS da 
AWS, do upload do código ao pagamento do serviço.
FIGURA 13 – COMO FUNCIONA O AWS LAMBDA
FONTE: <http://twixar.me/Xrlm>. Acesso em: 29 set. 2020.
Após estar logado no painel dos serviços de computação da Amazon, basta 
acessar o Lambda e fazer o upload do código dentro do próprio editor de códigos 
da AWS. Posteriormente, é necessário confi gurar como a função será disparada, 
podendo ser disparada por outros serviços da AWS ou APIs HTTP e atividades 
do usuário dentro de softwares. Feito isso, a AWS irá executar o código apenas 
quando for disparado o evento e você pagará apenas pelas frações de tempo de 
execuções da sua função, torando o aplicativo altamente disponível.
Um exemplo de uso é no caso de um fotógrafo, quando retira uma foto 
e precisa redimensionar a imagem para ser distribuída em desktop, tablets e 
smartphones.
FIGURA 14 – CASO DE USO PARA REDIMENSIONAMENTO DE IMAGEM
FONTE: <http://twixar.me/trlm>. Acesso em: 29 set. 2020.
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS)
133
Quando a imagem é enviada ao repositório de arquivos da AWS, o Amazon 
S3, automaticamente é disparado um evento ao Lambda para que recupere essa 
imagem e faça seu redimensionamento deixando a imagem disponível e adequada 
para ser exibida em quaisquer dispositivos.
Utilizar o Lambda para aplicativos web é uma abordagem muito 
interessante, pois pode aumentar a performance do serviço e até mesmo reduzir 
custos. Assim, sua API Rest terá a infraestrutura totalmente supervisionada pela 
equipe de engenharia da AWS. Veja a Figura 15 como acontece o passo a passo 
para executar um aplicativo na Web usando Lambda.
FIGURA 15 – APLICATIVO WEB UTILIZANDO LAMBDA
FONTE: <http://twixar.me/8rlm>. Acesso em: 29 set. 2020.
A Figura 15 apresenta o fl uxo desde a interação do usuário no front-end
da aplicação, neste caso, hospedada nos serviços Amazon S3 até a consulta dos 
dados persistidos no DynamoDB, também da Amazon. 
Quando o usuário interage com a interface para recuperar as informações 
da temperatura, imediatamente após este momento é requisitada a API da 
aplicação que dispara um evento para o Lambda acessar a base de dados no 
DynamoDB e retornar para a própria a API as informações do clima, a qual exibe 
na interface do usuário a informação completa.
Para colocar em prática a criação de uma função Lambda na AWS você 
pode criar uma conta gratuita, mas sempre prestando atenção ao seu painel de 
faturamento para evitar a utilização de recursos que estejam fora da camada 
gratuita.
Na Figura 16 está o painel inicial do AWS Lambda, sendo, dentro dele, 
que você pode começar a criação de funções. Perceba que não existe a necessidade 
de confi guração de nenhuma infraestrutura de servidor, apenas da criação da 
função.
134
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
FIGURA 16 – TELA INICIAL PARA CRIAÇÃO DE FUNÇÕES NA AWS
FONTE: O autor
Ao clicar em “Criar função” é possível avançar para a tela da Figura 17, em 
que você pode criar suas funções de diversas maneiras, seja criar uma função do 
zero, utilizar um esquema a partir de um exemplo da AWS com base em casos de 
uso comum e, por fi m, utilizar algum repositório criado por terceiros. Na Figura 
17 você pode ver a tela que é utilizada para escolher estas opções.
FIGURA 17 – CRIANDO UMA FUNÇÃO NA AWS
FONTE: O autor
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS)
135
Ao escolher a opção “Explorar o repositório de aplicativos sem servidor” 
você vai ter uma série de opções, conforme exemplo na Figura 18. São exemplos 
que vão de um “hello world” básico até mais complexos, nos quais o FaaS chega 
a ter interações e tarefas junto à Alexa®, a assistente virtual da Amazon.
FIGURA 18 – EXPLORANDO O REPOSITÓRIO DE FAAS DA AWS
FONTE: O autor
Grandes corporações, como aCoca Cola, Thomson Reuters, Netfl ix e 
T-Mobile utilizam o FaaS da Amazon, e você também pode utilizar. 
• A AWS possui uma camada gratuita, e você pode consultar os serviços gra-
tuitos no link a seguir: https://aws.amazon.com/pt/free/?all-free-tier.sort-by=item.additio-
nalFields.SortRank&all-free-tier.sort-order=asc.
• No caso do AWS Lambda, você tem 1 milhão de solicitações gratuitas por mês, durante 1 
ano, veja no link a seguir: https://aws.amazon.com/pt/lambda/?did=ft_card&trk=ft_card.
• Conheça todos os recursos do AWS Lambda no link a seguir: https://aws.amazon.com/
pt/lambda/resources/.
• Que tal criar a sua primeira função no Lambda com um tutorial desenvolvido pela 
própria AWS? Veja o link a seguir: https://aws.amazon.com/pt/getting-started/hands-on/
run-serverless-code/.
DICAS
136
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
10.2 GOOGLE CLOUD FUNCTIONS
O Google oferece uma série de funcionalidades de computação em nuvem, 
e oferece também o serviço função como serviço.
FIGURA 19 – GOOGLE CLOUD
FONTE: <http://twixar.me/Prlm>. Acesso em: 29 set. 2020.
A forma Google de desenvolver suas tecnologias favorece o aprendizado 
e a facilidade de uso, como a própria empresa se defi ne: a maneira mais simples 
de executar seu código. O Cloud Functions é a plataforma. 
A possibilidade de iniciar diretamente da etapa de código até implantação 
com entrega contínua e ferramentas de monitoramento. O Google oferece a 
possibilidade de conectar-se a serviços do Google Cloud, ou de terceiros, para 
criar cenários de desenvolvimento complexos com facilidade.
Conforme mencionado anteriormente, a experiência simplifi cada do 
Google confere maior velocidade para o desenvolvedor, o Cloud Functions, o 
qual oferece uma experiência de desenvolvedor simples e intuitiva. Seguindo as 
bases do FaaS, basta escrever o código e deixar que o Google Cloud gerencia a 
infraestrutura operacional. Inferindo num desenvolvimento com mais rapidez, 
basta escrever e executar snippets de código pequenos que respondam a eventos 
(GOOGLE, 2020).
Empresas consolidadas, como a Natura, Hurb, Resultados Digitais, 
Mercado Livre e SBT utilizam a nuvem do Google para potencializar seus 
negócios. Podemos utilizar as mesmas estruturas que essas grandes corporações 
utilizam, podendo levar soluções em software para a nuvem em até quatro meses.
Alguns casos de uso comuns que podem-se aplicar a estrutura do Google 
Cloud são apresentados a seguir. Por exemplo, back-ends de aplicativos, nos quais 
é possível executar o código dentro do Google Cloud ou diretamente de qualquer 
aplicativo web, móvel ou de back-end. 
O Cloud Functions fornece uma camada de lógica conectiva que permite 
integrar e estender os serviços do Google Cloud e de terceiros, possibilitando a 
criação rápida de aplicativos sem servidor altamente disponíveis, seguros e com 
boa relação custo-benefício (GOOGLE, 2020).
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS)
137
A integração com serviços e APIs de terceiros também pode ser 
implementada com o Cloud Functions, seja para publicar microsserviços por meio 
de APIs HTTP ou integrar a serviços de terceiros que oferecem integrações de 
webhook para estender rapidamente o aplicativo com recursos efi cientes, seja 
para enviar e-mail de confi rmação ou responder a eventos de mensagem. 
Na Figura 20, é apresentado o fl uxo de execução após um commit no 
Github, gerando um evento no serviço FaaS do Google.
FIGURA 20 – DISPARO DE EVENTO APÓS COMMIT
FONTE: <https://cloud.google.com/images/products/functions/third-party-services-graphic.
svg?hl=fr>. Acesso Em: 29 set. 2020.
Na Figura 20, após ser efetuado um push num repositório GitHub, integrado 
com o Cloud Functions do Google por intermédio dos webhoocks do GitHub, é 
possível disparar uma função que envie uma mensagem automaticamente para 
uma equipe de desenvolvimento em um grupo do aplicativo Slack. 
A vantagem disso é que os push no GitHub não são constantes, o que não 
justifi ca possuir uma infraestrutura disponível 24/7 para esse tipo de situação, 
o que acabaria resultando numa grande ociosidade de computação e um custo 
elevado e constante desnecessário.
A simplicidade das interfaces do Google é perceptível também na 
ferramenta de nuvem da empresa. A criação de funções como serviço dentro 
da plataforma é orientada passo a passo dentro de telas que facilitam muito a 
conceber funções. 
Na Figura 21, é apresentado o painel do Google, no qual basta escolher um 
nome da função, selecionar a memória adequada a ser alocada para a execução 
do código, apresentar a forma como será disparada a função, neste caso por 
requisições HTTP. 
Depois disso, escolhe a forma em que o código será inserido no provedor, 
a facilidade é tão grande que pode ser editado dentro do painel mesmo, ou um 
ZIP, ou até mesmo um repositório específi co. Ao fi nal, basta escolher a linguagem 
de programação que vai ser utilizada e colocar a função no ar.
138
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
FIGURA 21 – CRIAR FUNÇÕES NO GOOGLE CLOUD
FONTE: O autor
A função “function-1”, criada anteriormente, já pode ser visualizada na 
tela de listagem das funções. Conforme a Figura 22, é possível ver as informações 
mais relevantes.
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS)
139
FONTE: O autor
FONTE: O autor
FIGURA 22 – LISTAR FUNÇÕES NO GOOGLE CLOUD
FIGURA 23 – TESTAR FUNÇÃO NO GOOGLE CLOUD
A simplicidade para fazer a publicação de uma função como serviço pode 
ser traduzida pela Figura 23, em que, após o cadastro, é possível, através do 
menu de contexto, executar um teste da função por dentro da própria plataforma. 
Nesse menu, também é possível verifi car a execução e resultados por meio da 
opção de logs da função.
Além da facilidade das funções como serviço, ganhamos agilidade e 
redução de custos. Agora que já conhecemos plataformas intuitivas para a criação 
dela, basta escrever o código e enviar para a plataforma. É fundamental destacar 
que o Google possui uma camada gratuita.
No link htt ps://cloud.google.com/functions/pricing, você pode consultar 
o preço atualizado dos serviços do Google Cloud Functions, sendo que, assim 
como em outros provedores, é possível criar uma conta e ter 12 meses de acesso 
a uma camada gratuita, na qual você ganha 300 dólares em créditos, sendo, desta 
forma, possível testar a plataforma e compreender se a demanda atenderá as 
necessidades do software.
140
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
Para colocar um FaaS do Google no ar é simples e prático. Veja como, 
acessando o link: https://cloud.google.com/functions/docs/quickstart-console.
DICAS
10.3 MICROSOFT AZURE FUNCTIONS
A Microsoft oferece seus serviços de FaaS pelo Azure Functions, permitindo 
acelerar e simplifi car o desenvolvimento de software com a computação sem 
servidor orientada a eventos que também pode resolver problemas complexos 
de orquestração. É possível criar e depurar localmente e sem confi gurações 
adicionais, implantar e operar em escala na nuvem e integrar serviços usando 
acionadores e associações (MICROSOFT, 2020).
FONTE: <https://ocaradoti.com.br/wp-content/uploads/2020/01/logo-transparente-Microsoft-
-Azure.png>. Acesso em: 29 set. 2020.
FIGURA 24 – MICROSOFT AZURE
A Azure Functions possui uma experiência de desenvolvimento, indo 
desde a criação e a depuração local nos principais sistemas operacionais, seja 
Windows, macOS ou Linux, até a implantação e o monitoramento na nuvem. 
É possível utilizar as extensões e modelos do Functions no Visual Studio e no 
Visual Studio Code, editor de código amplamente utilizado pela comunidade, 
para obter um desenvolvimento mais rápido e efi ciente em seu computador local, 
mas completamente integrado com a plataforma do Azure (MICROSOFT, 2020). 
No entanto, é possível desenvolver utilizando o editor de código favorito 
do desenvolvedor e o Azure Functions Core Tools. Para agilizar aindamais o 
desenvolvimento é possível confi gurar a CI/CD (integração contínua e entrega 
contínua) com o Azure Pipelines e obter sugestões proativas e inteligentes do 
desempenho de aplicativos na produção pelo Azure Monitor (MICROSOFT, 
2020).
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS)
141
O Azure possui um painel de monitoramento completo, no qual você 
pode verifi car a quantidade de vezes que a função foi executada com ou sem 
sucesso, bem como um log de todas as execuções com seu respectivo sucesso 
e duração da execução dela. Na Figura 25, é possível perceber a execução de 
uma determinada tarefa, clicando no botão Refresh, o painel é atualizado com as 
possíveis novas execuções da função, que neste caso se chama “Htt pTrigger1” e 
pertence ao aplicativo “myfunctionaap”.
FONTE: O autor
FIGURA 25 – AZURE FUNCTION MONITOR
O Azure Functions permite que você escreva funções com as linguagens 
C#, JavaScript, F#, Java, PowerShell, Python e TypeScript. 
Você pode consultar os preços do Azure Functions no link https://azure.
microsoft.com/pt-br/pricing/details/functions/. A Microsoft também possui um nível 
gratuito. Então, você pode criar sua conta Azure e começar hoje mesmo a testar o Functions. 
Aproveite e escreva sua primeira função na Microsoft seguindo o roteiro a seguir, utilizando 
a linguagem de programação Java Script. Acesse: https://docs.microsoft.com/pt-br/azure/
azure-functions/functions-create-fi rst-function-vs-code?pivots=programming-language-
javascript.
DICAS
142
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
10.4 IBM CLOUD FUNCTIONS
A IBM tem sua tecnologia FaaS com base no Apache OpenWhisk, que 
é uma plataforma sem servidor distribuída de código aberto, ele gerencia a 
infraestrutura, os servidores e o dimensionamento usando contêineres para que 
seja possível focar na construção do software (IBM, 2020b). 
FONTE: <https://cloud.ibm.com/functions/>. Acesso em: 29 set. 2020.
FIGURA 26 – IBM CLOUD FUNCTIONS
A IBM destaca o potencial do FaaS com a possibilidade de executar código 
sem servidores, a possibilidade de escalar sem complicação e automaticamente e 
não pagar nada quando não estiver usando os recursos (IBM, 2020b).
Aplicar esse conceito na prática para back-end de aplicativos móveis é 
interessante. Diante disso, a IBM apresenta um caso de uso da empresa Weather 
Gods. Conforme a Figura 27, o cliente faz uma requisição ao Gateway de API 
do provedor e logo após acessa o Cloud Functions para executar o código fonte e 
enviar uma notifi cação ao dispositivo móvel do usuário. 
FONTE: <https://cloud.ibm.com/functions/>. Acesso em: 29 set. 2020.
FIGURA 27 – FLUXO DE USO DO IBM FAAS EM PRA BACK-END MÓVEL
O painel da IBM é bem completo para a criação das funções como serviço, 
veja na Figura 28 com é possível cadastrar uma função, basta escolher o nome da 
função, o pacote e o ambiente em que o código vai rodar.
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS)
143
FONTE: <https://www.codechain.com.br/wp-content/uploads/2019/02/image-42.png>. Acesso 
em: 29 set. 2020.
FONTE: <https://www.codechain.com.br/wp-content/uploads/2019/02/image-43.png>. Acesso 
em: 29 set. 2020.
FIGURA 28 – CADASTRANDO UMA FUNÇÃO NO IBM CLOUD FUNCTIONS
FIGURA 29 – CODIFICANDO UMA FUNÇÃO NO IBM CLOUD FUNCTIONS
Na Figura 29 é apresentada a tela com a codifi cação de uma função node.
js em uma função que envia uma mensagem via WhatsApp. A simplifi cação do 
processo de construção da infraestrutura é muito relevante.
144
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
Ao criar uma conta na IBM Cloud você tem acesso ao recurso de FaaS. A 
precificação pode ser consultada no link a seguir: https://cloud.ibm.com/functions/learn/
pricing. E adocumentação completa você pode consultar no link: https://cloud.ibm.com/
docs/openwhisk.
DICAS
https://cloud.ibm.com/functions/learn/pricing
https://cloud.ibm.com/functions/learn/pricing
TÓPICO 3 — FUNÇÃO COMO SERVIÇO (FAAS)
145
LEITURA COMPLEMENTAR
SAAS, BAAS, FAAS… O QUE VEM A SEGUIR?
Henrique Augusto
Como parte das ações que integram a transformação digital, grandes 
empresas buscam diminuir os gastos com infraestrutura migrando a que 
possuem localmente (on-premise) para aquela que é entendida como um serviço - 
realidade proporcionada pela computação em nuvem. Como consultor na área, é 
possível afirmar que esse processo elimina toda a ociosidade dos sistemas locais, 
que normalmente costuma ser de 30% a 50% da capacidade instalada. A cloud 
computing que me refiro não é a mais comumente conhecida e adotada, embarcada 
em um servidor.
Uma nova tendência para otimizar ainda mais a base tecnológica, 
principalmente para empresas que possuem oscilação no uso - como é o caso 
de grandes redes de e-commerce e startups que precisam de escalabilidade 
global - é a adoção do serverless (sem servidor, em inglês). Em 2017, a novidade já 
tinha sido destacada em pesquisas do Gartner como uma das realidades a serem 
empregadas no segmento enterprise na próxima década. O futuro chegou mais 
rápido do que se esperava e hoje grandes organizações já adotam esse tipo de 
estrutura, como Snapchat, Netflix e Spotify.
A evolução da nuvem não é só a de Infrastructure as a Service (IaaS), 
mas Back-end as a Service (BaaS) e Function as a Service (FaaS). Ao adotar esses 
dois últimos conceitos, conseguimos otimizar ao extremo a base tecnológica 
de empresas que estão em processo de escalabilidade e veem a demanda por 
recursos oscilar bastante.
Se sua empresa for iniciar hoje o desenvolvimento de uma solução nova, 
não há dúvida que o conceito serverless é a melhor alternativa, inclusive se ela 
não precisa de escalabilidade nem sofre variação de consumo. Dessa forma, 
o desenvolvimento sem servidor é mais rápido, já que os programadores só 
precisam focar em codificar sua solução, e não mais com infraestrutura.
Um ponto muito importante de ressaltar é que estamos falando de 
desenvolvimento serverless, mas entre a "antiga" virtualização on-premise e o 
serverless ainda existe um grande passo: o de migrar a infraestrutura virtualizada 
para a nuvem. Em seguida avançamos para automatização da gestão dessa 
infra virtualizada, ou seja, ao mesmo tempo que já temos novas tecnologias 
totalmente automatizadas 95% da infraestrutura das grandes empresas ainda 
estão virtualizadas on-premise.
146
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
Se a sua organização já desenvolveu o produto com tecnologia antiga, 
ela precisará ser redesenhada para possuir o conceito serverless. Ou seja: 
invariavelmente haverá, no futuro, um investimento de recursos financeiros e 
humanos que ficarão dedicados a refactory (refazer) sua solução com essa nova 
tecnologia.
FONTE: <https://administradores.com.br/noticias/iaas-baas-faas-o-que-vem-a-seguir>. Acesso 
em: 24 set. 2020.
147
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu que: 
• As Funções como Serviço (FaaS) podem ser compreendidas como sendo um 
modelo de execução computacional orientado a eventos, no qual, funções 
gerenciam a lógica e o estado no lado do servidor, utilizado como serviços. 
• FaaS é um modelo de serviço de computação em nuvem, o qual permite a 
execução de código em resposta a eventos, sem necessidade da infraestrutura 
que normalmente é utilizada para criação e publicação de softwares.
• No modelo do FaaS, o hardware físico, o sistema operacional da VM e o 
gerenciamento de software do servidor são todos gerenciados pelo provedor 
da nuvem e não pelo cliente (desenvolvedor).
• O desenvolvimento de lógica de negócios, sem servidor, é realizado através da 
execução em contêineres Linux gerenciados pela plataforma, como a Amazon 
Web Services (AWS) ou Microsoft Azure, por exemplo.
• A possibilidade de as aplicações serem escaladas horizontalmente e 
gerenciadas pela própria plataforma provedora de serviço possibilita um 
melhor desempenho e disponibilidade do software.
• Na arquitetura orientadaa funções ou eventos, é importante analisar o limite 
de tempo de execução de uma função, pois é necessário que uma função seja 
algo que possa ser iniciado e executado rapidamente.
• Na arquitetura FaaS, caso existam várias solicitações simultâneas por parte 
da aplicação solicitante a serem processadas por uma determinada função, 
automaticamente são criadas novas instâncias para processamento das funções, 
atendendo à demanda.
148
Ficou alguma dúvida? Construímos uma trilha de aprendizagem 
pensando em facilitar sua compreensão. Acesse o QR Code, que levará ao 
AVA, e veja as novidades que preparamos para seu estudo.
CHAMADA
• Um dos benefícios da arquitetura FaaS é a escalabilidade, em que caso o 
sistema necessite executar 100 solicitações em paralelo, quem cuidará disso é o 
provedor, sem nenhuma configuração por parte do desenvolvedor.
• Outro benefício da arquitetura FaaS é a empresa que desenvolve o software 
pagar apenas pelo que consumir do provedor, não sendo pago recursos ociosos 
de servidor. 
149
1 O desenvolvimento de software possui muitos requisitos e trabalho por 
parte da equipe de desenvolvimento, porém, existem tecnologias que 
facilitam o trabalho. Uma destas tecnologias é a arquitetura FaaS, modelo 
de execução computacional orientado a eventos. Referente a Funções como 
Serviço (FaaS), assinale a alternativa CORRETA:
a) ( ) Através da utilização de FaaS, o hardware físico, o sistema operacional 
da máquina virtual e o software do servidor são gerenciados pelo provedor 
da nuvem.
b) ( ) É um serviço de computação física que permite a execução de código 
em resposta a eventos com infraestrutura de servidor física, a qual fica sob 
gerenciamento da equipe de desenvolvimento.
c) ( ) É um serviço de computação física que permite a execução de código 
em resposta a requisições de softwares de terceiros, no qual existe a 
exigência de infraestrutura de servidor física para publicação de softwares.
d) ( ) Através da arquitetura FaaS, é possível realizar a execução de código 
fonte no servidor, sem necessidade de gerenciamento de software do 
servidor pelo desenvolvedor, porém não existe escalabilidade automática 
para altas demandas do software.
2 Através da computação sem servidor, desenvolvedores escrevem a lógica 
de negócios, que é executada em contêineres Linux, gerenciados por uma 
plataforma, como Amazon Web Services (AWS) ou o Microsoft Azure, por 
exemplo. Nesse sentido, assinale a alternativa CORRETA:
a) ( ) Uma das desvantagens da arquitetura FaaS é a empresa desenvolvedora 
pagar o custo de recursos ociosos, não utilizados por suas aplicações.
b) ( ) Uma das principais vantagens da arquitetura FaaS é garantir que não 
haja sobrecarga por altas demandas de requisições.
c) ( ) Uma das desvantagens da arquitetura FaaS é a não existência de alta 
escalabilidade.
d) ( ) Apesar das várias vantagens em se utilizar a arquitetura FaaS, a 
desvantagem é a redução da produtividade gerada por parte da equipe 
de desenvolvimento de software, pois esta precisa gerenciar softwares no 
servidor em nuvem.
3 O desenvolvimento de software possui várias tarefas e, em muitos casos, 
uma delas é a configuração e gerenciamento de softwares no servidor, 
para acompanhamento dos softwares desenvolvidos. A arquitetura FaaS 
facilita o trabalho da equipe de desenvolvimento. Nesse sentido, assinale a 
alternativa CORRETA:
AUTOATIVIDADE
150
a) ( ) No FaaS, com a demanda de solicitações para a aplicação sendo 
reduzida, os recursos de infraestrutura de servidor permanecem em uso, 
isto é, não são reduzidos.
b) ( ) O escalamento dinâmico não é um benefício do FaaS, mas provedores 
de nuvem podem oferecer serviços deste tipo e cobrar por eles.
c) ( ) O FaaS permite o escalamento horizontal, promovendo eficiência para 
as aplicações.
d) ( ) Com o FaaS, a equipe de desenvolvimento se preocupa apenas com os 
softwares do servidor, os quais executam as aplicações.
4 Na arquitetura em nuvem de computação, muitos recursos que, no 
desenvolvimento de software, dependiam de uma infraestrutura de 
servidor local, não são mais necessários, assim como o gerenciamento 
desses recursos por parte da equipe de desenvolvimento. Nesse sentido, 
assinale a alternativa CORRETA:
a) ( ) Nos modelos de arquitetura IaaS e PaaS, a equipe de desenvolvimento 
de software é apenas na questão de sistemas operacionais e questões de 
armazenamento e virtualização.
b) ( ) No modelo de arquitetura IaaS, a equipe de desenvolvimento de 
software é responsável apenas pelo código fonte da aplicação, não sendo 
responsável por gerenciamento de recursos de servidor.
c) ( ) No modelo de arquitetura PaaS, a equipe de desenvolvimento 
de software é responsável apenas pelo código fonte da aplicação e pelo 
gerenciamento de sistema operacional e questões de armazenamento.
d) ( ) No modelo de arquitetura FaaS, a equipe de desenvolvimento de 
software é responsável apenas pelo código fonte da aplicação, não sendo 
responsável por gerenciamento de recursos de servidor.
5 Através do FaaS, a plataforma de nuvem disponibiliza todos os recursos 
necessários para que a equipe de desenvolvimento de software tenha 
um ambiente pronto, focando apenas nas regras de negócio da solução 
a ser desenvolvida. Apesar disso, assim como outras arquiteturas de 
computação, existem vantagens e desvantagens. Nesse sentido, assinale a 
alternativa CORRETA:
a) ( ) Dentre as desvantagens da utilização do FaaS, podem ser citadas a 
duração do tempo de execução, a falta de escalabilidade e a latência de 
inicialização.
b) ( ) Dentre as vantagens da utilização do FaaS, podem ser citadas a 
escalabilidade e os custos de servidor, sendo pagos apenas os recursos 
utilizados, não havendo pagamento de recursos ociosos.
c) ( ) Dentre as desvantagens da utilização do FaaS, podem ser citadas a 
duração do tempo de execução, a falta de escalabilidade e a falta de recursos 
de segurança.
d) ( ) Dentre as vantagens da utilização do FaaS, podem ser citadas a 
duração do tempo de execução, a escalabilidade, embora a desvantagem 
seja a falta de recursos de segurança.
151
REFERÊNCIAS
AKIWATKAR, R. How serverless will facilitate the growth of big data 
applications? Datafloq, Haia, 12 dez. 2018. Disponível em: https://datafloq.com/
read/how-serverless-will-facilitate-growth-big-data/5824. Acesso em: 31jul. 2020.
AWS. AWS lambda. c2020. Disponível em: https://aws.amazon.com/pt/lambda/. 
Acesso em: 31 jul. 2020.
BATSCHINSKI, G. Back-end as a service: prós e contras. InfoQ, São Paulo, jul. 
2016. Disponível em: https://www.infoq.com/br/news/2016/07/backend-pros-e-
contras/. Acesso em: 25 set. 2020.
BATSCHINSKI, G. BaaS vs PaaS: qual é a melhor opção? Back4App Blog, [S. l.], 
3 nov. 2019. Disponível em: https://medium.com/@george_51059/BaaS-vs-PaaS-
bce0079232ec. Acesso em: 25 set. 2020.
CHANDRASEKARAN, K. Essentials of cloud computing. Boca Raton: CRC 
Press, 2015. seus-trabalhos/. Acesso em: 13 ago. 2020. Disponível em: https://
keyhannet.com/wp-content/uploads/2018/11/K.-Chandrasekaran-Essentials-of-
Cloud-Computing-2014-Chapman-and-Hall_CRC.pdf. Acesso em: 13 ago. 2020.
CREESE, G. SaaS vs. software: the release cycle for saas is usually (not always) 
faster. Gartner Blog, [S. l.], 18 maio 2010. Disponível em: https://blogs.gartner.
com/guy-creese/2010/05/18/saas-vs-software-the-development-cycle-for-saas-is-
usually-not-always-faster/. Acesso em: 13 ago. 2020.
GODSE, M., MULIK, S. An approach for selecting software-as-a-service 
(SaaS) product. In: IEEE INTERNATIONAL CONFERENCE ON CLOUD 
COMPUTING, 2., 2009, Bangalore. Proceedings […]. Bangalore: IEEE Computer 
society, 2009. Disponível em: http://barbie.uta.edu/~hdfeng/CloudComputing/
cloud/cloud29.pdf. Acesso em: 13 ago. 2020.
GOOGLE. Cloud Functions. c2020. Disponível em: https://cloud.google.com/
functions. Acesso em: 31 jul. 2020.
IBM. Introdução ao IBM Cloud Functions. IBM, [S. l.], 23 jun. 2020a. Disponível 
em: https://cloud.ibm.com/docs/openwhisk.Acesso em: 31 jul. 2020.
IBM. IBM Cloud Functions. c2020. Disponível em: https://cloud.ibm.com/
functions/. Acesso em: 31 jul. 2020.
IBM Cloud Education. FaaS (function-as-a-service). IBM Cloud Learn Hub, 
New York, 30 jul. 2019. Disponível em: https://www.ibm.com/cloud/learn/faas. 
Acesso em: 14 ago. 2020.
https://datafloq.com/read/how-serverless-will-facilitate-growth-big-data/5824
https://datafloq.com/read/how-serverless-will-facilitate-growth-big-data/5824
https://cloud.google.com/functions
https://cloud.google.com/functions
https://cloud.ibm.com/docs/openwhisk?topic=openwhisk-faas&locale=pt-BR
https://www.ibm.com/cloud/learn/faas
152
UNIDADE 2 — SERVERLESS, BACK-END AS SERVICE (BAAS) E FUNÇÃO COMO SERVIÇO (FAAS)
JUNIOR, C. V. Whatsapp com Twilio e IBM Functions – parte 1. Codechain, 
Rio de Janeiro, 20 fev. 2019. Disponível em: https://www.codechain.com.
br/2019/02/20/ibm-cloud-alem-do-watson-whatsapp-gateway-100-serverless/. 
Acesso em: 31 jul. 2020.
MAISON, A. How to deploy an apps in AWS serverless infrastructure with 
FaaS? SMARTSPATE, [S. l.], 30 ago. 2018. Disponível em: https://www.
smartspate.com/deploy-an-apps-in-aws-serverless/. Acesso em: 31 jul. 2020.
MICROSOFT. Funções do Azure. c2020. Disponível em: https://azure.microsoft.
com/pt-br/services/functions/. Acesso em: 31 jul. 2020.
MISHRA, A. Mastering azure serverless computing: design and implement end-
to-end highly scalable azure serverless solutions with ease. New Delhi, India: 
BPB Publications. 2020. ISBN: 978-93-89898-163.
NG, D. SaaS, PaaS and IaaS explained in one graphic. Oursky, [S. l.], 12 jul. 
2017. Disponível em: https://m.oursky.com/saas-PaaS-and-iaas-explained-in-
one-graphic-d56c3e6f4606. Acesso em: 25 set. 2020.
REDHAT. O que é função como serviço (FaaS). Red Hat, Aplicações Nativas 
em nuvens, [S. l.], c2020. Disponível em: https://www.redhat.com/pt-br/topics/
cloud-native-apps/what-is-faas. Acesso em: 31 jul. 2020.
ROBERTS, M. Serverless architectures. MartinFowler.com, Boston, 22 maio 
2018. Disponível em: https://martinfowler.com/articles/serverless.html. Acesso 
em: 31 jul. 2020.
STIGLER, M. Beginning serverless computing: developing with amazon web 
services, microsoft azure, and google cloud. Virginia, USA: Springer Science, 
2018. ISBN: 978-1-4842-3084-8.
STIGLER, M. Beginning serverless computing: developing with amazon web 
services, microsoft azure, and google cloud. Virginia, USA: Springer Science, 
2017. 
TAURION, C. Computação em nuvem: transformando o mundo da tecnologia 
da informação. Rio de Janeiro: Brasport, 2009.
WU, C. Web services: software-as-a-service (SaaS), communication, and beyond. 
In: CONGRESS ON SERVICES, 2., 2008, Beijing. Proceedings […]. Beijing: IEEE, 
Computer Society, 2008.
https://www.smartspate.com/deploy-an-apps-in-aws-serverless/
https://www.smartspate.com/deploy-an-apps-in-aws-serverless/
153
UNIDADE 3 — 
CONTÊINERES COMO SUPORTE AO 
DESENVOLVIMENTO
OBJETIVOS DE APRENDIZAGEM
PLANO DE ESTUDOS
A partir do estudo desta unidade, você deverá ser capaz de:
• expressar a diferença entre contêiner e imagem;
• avaliar as vantagens em utilizar um contêiner em seu projeto;
• conhecer o conceito das plataformas de CaaS;
• entender o conceito de versionamento e sua aplicação em desenvolvi-
mento e recursos em nuvem.
Esta unidade está dividida em três tópicos. No decorrer da unidade 
você encontrará autoatividades com o objetivo de reforçar o conteúdo 
apresentado.
TÓPICO 1 – CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
TÓPICO 2 - CONTÊINER COMO SERVIÇO - (CAAS)
TÓPICO 3 – VERSIONAMENTO E DEPLOY EM NUVEM
Preparado para ampliar seus conhecimentos? Respire e vamos 
em frente! Procure um ambiente que facilite a concentração, assim absorverá 
melhor as informações.
CHAMADA
154
155
UNIDADE 3
1 INTRODUÇÃO
Dando continuidade aos nossos estudos, vamos apresentar o conceito 
de Contêiner e como ele suporta o desenvolvimento de aplicações, bem como a 
ferramenta Docker e boas práticas para a criação de contêineres.
Talvez, poucas áreas de estudos tenham tanta evolução em tão pouco 
tempo quanto a área de tecnologia. Essas mudanças acabam ditando o ritmo 
de trabalho em diversos setores. Graças a essas evoluções, foram permitidas 
mudanças nas formas de trabalho, como a mudança para o cenário de trabalho 
remoto, conhecido como home office. 
Agora, imagine quanto trabalho o setor de tecnologia das organizações 
teria para configurar as máquinas de todos os funcionários que tiveram que se 
adequar a essa nova realidade, ou baixar uma nova versão de um produto que 
acabou de ser desenvolvido. Vamos conhecer algumas ferramentas que podem 
auxiliar nessa tarefa, começando com os contêineres.
2 CONCEITOS
É bem provável que você já tenha visto um contêiner, eles são uma caixa de 
metal bastante resistente, utilizados, normalmente, para transporte de produtos 
em navios ou em caminhões. Semelhante aos contêineres que são utilizados para 
transporte de produtos, os contêineres na área de tecnologia agem como uma 
unidade de software padrão, e que, segundo a Microsoft (2018, s.p.), “pode conter 
diferentes dependências e códigos”. Inserir o software em contêineres permite 
que desenvolvedores e profissionais de TI os implantem em diferentes ambientes 
com pouca ou sem nenhuma modificação.
TÓPICO 1 — 
CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
Na literatura existe o uso das duas formas, do inglês container ou do português 
contêiner.
ATENCAO
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
156
2.1 INTRODUÇÃO AOS CONTÊINERES
Você pode estar curioso e se perguntando, por que o nome Contêiner? 
Se Contêiner nada mais é do que um ambiente isolado contido em um servidor 
que, diferentemente das máquinas virtuais, divide um único host de controle. 
Para contextualizar melhor, vamos imaginar um navio cargueiro com vários 
contêineres dentro. Se um dos recipientes se danificar, não afetará os outros ou o 
navio, pois cada um está isolado e protegido.
FIGURA 1 - CONTÊINER
FONTE: Adaptado de <https://m.media-amazon.com/images/I/51M7z3fWLTL.jpg>. Acesso em: 
20 out. 2020.
Esse isolamento de contêiner, trazendo de volta para o mundo do 
desenvolvimento, possibilita uma utilização limitada do HD, memória RAM e 
processador. Ao utilizar um tipo de compartilhamento de kernel, os contêineres 
apresentam uma capacidade de economia de recursos maior do que as máquinas 
virtuais.
 
Apenas para lembrar como era o trabalho desenvolvido pelas equipes 
de tecnologia, antes das máquinas virtuais, o processo era um pouco mais 
complicado: 
Por muitos anos, o software corporativo tem sido implantado em “bare 
metal” (instalado em um sistema operacional que possui controle total 
sobre o hardware subjacente) ou em uma máquina virtual (instalada 
em um sistema operacional que compartilha o hardware subjacente 
com outros sistemas operacionais “guest”). Naturalmente, instalar 
em hardware simples tornou o software dolorosamente difícil de 
movimentar e difícil de atualizar - duas restrições que dificultaram 
que a TI reagisse com agilidade às mudanças nas necessidades de 
negócios (YEGULALP, 2018, s.p.).
https://m.media-amazon.com/images/I/51M7z3fWLTL.jpg
TÓPICO 1 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
157
FIGURA 2 - MÁQUINAS VIRTUAIS X CONTÊINER
QUADRO 1 - COMPONENTES DA ARQUITETURA DOCKER
FONTE: <http://javaquan.com/file/image/20190321/2019032110000878710908.PNG>. Acesso 
em: 20 out. 2020.
Agora que vimos um breve comparativo entre os Dockers e as máquinas 
virtuais, vamos conhecer alguns componentes que fazem parte da sua arquitetura.
Componente Utilização
Docker para Mac, 
Linux e Windows
Versões que permitem instalar e executar contêineres nos 
sistemas operacionais de forma isolada.
Docker Daemon
Software que roda na máquina onde o Docker está 
instalado. Usuário não interage diretamente com o 
daemon.
Docker Client CLI ou REST API que aceita comandos do usuário e repassa estes comandos ao Docker daemon.
Docker Image
É um template. Uma imagemcontém todos os dados e 
metadados necessários para executar contêineres a partir 
de uma imagem.
Docker Contêiner
Detém tudo que é necessário para uma aplicação ser 
executada. Cada contêiner é criado a partir de uma 
imagem. Cada contêiner é uma aplicação isolada 
independente.
Docker Engine Usado para criar imagens e contêineres.
Docker Registry
Uma coleção de imagens hospedadas e rotuladas que 
juntas permitem a criação do sistema de arquivos de um 
contêiner. Um registro pode ser público ou privado.
http://javaquan.com/file/image/20190321/2019032110000878710908.PNG
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
158
Docker Hub
Este é um registro usado para hospedar e baixar diversas 
imagens. Pode ser visto como uma plataforma SAAS de 
compartilhamento e gerenciamento de imagens.
Dockerfile Um arquivo texto contendo uma sintax simples para criação de novas imagens.
Docker Compose Usado para definir aplicações usando diversos contêineres.
Docker Swarm É uma ferramenta que permite o agrupamento (clustering) de Contêineres Docker
FONTE: Adaptado de Moll (2019)
Moll (2019) apresenta é um breve resumo do que pode ser realizado. Para 
conhecer melhor cada um deles, acesse: https://docs.docker.com/engine/.
DICAS
2.2 QUANDO USAR DOCKER
Semelhante a todas as áreas de sistemas, não existe uma bala de prata que 
irá resolver todos os problemas. Gomes (2020) aponta alguns bons motivos para 
sua utilização.
Como no caso de ambientes semelhantes, Gomes (2020, p. 11) afirma que 
“uma vez que sua aplicação seja transformada em uma imagem Docker, ela pode 
ser instanciada como contêiner em qualquer ambiente que desejar”. Ou seja, ela 
poderá ser utilizada tanto em notebook do desenvolvedor ou no servidor de 
produção. Outra indicação de uso é no caso da aplicação como pacote completo, 
conforme define Gomes (2020, p. 11):
Utilizando as imagens Docker é possível empacotar toda sua 
aplicação e dependências, facilitando a distribuição, pois não será 
mais necessário enviar uma extensa documentação explicando como 
configurar a infraestrutura necessária para permitir a execução, basta 
disponibilizar a imagem em repositório e liberar o acesso para o 
usuário e, ele mesmo pode baixar o pacote, que será executado sem 
problemas.
Essa vantagem, não se aplica somente no momento da aplicação ou 
instalação, ela também pode ser vantajosa na atualização, “pois a estrutura de 
camadas do Docker viabiliza que, em caso de mudança, apenas a parte modificada 
seja transferida e assim o ambiente pode ser alterado de forma mais rápida e 
simples” (GOMES, 2020, p. 12).
TÓPICO 1 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
159
Conheça mais a respeito do termo bala de prata, muito utilizado em 
engenharia de software, em: https://iopub.org/n%C3%A3o-h%C3%A1-bala-de-prata-para-
o-desenvolvimento-de-software-5c6e73ecd28c.
DICAS
3 TRABALHANDO COM OS CONTÊINERES
Como vimos, existem inúmeras vantagens para trabalharmos com 
contêiner, e você já deve estar ansioso para pôr a mão na massa. Antes de 
começar, é importante ressaltar que para a execução do modelo apresentado 
são necessárias algumas confi gurações mínimas, e que isso pode variar e mudar 
conforme as versões dos produtos evoluem.
Segundo Damaceno (2019), para a execução desse exemplo precisamos 
do Windows 10, versão Pro, Enterprise ou Education e X64. Você também precisa 
que a Virtualização da sua máquina esteja habilitada, para isso você deve ir ao 
gerenciador de tarefas, clicar na aba “desempenho”, que por padrão já aparece 
habilitada, conforme vemos na Figura 3, indicado pelas setas.
FIGURA 3 - CONFIGURANDO
FONTE: O autor
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
160
Veja como criar no Ubuntu: https://woliveiras.com.br/posts/Criando-uma-
imagem-Docker-personalizada.
Para o download do Docker para Windows, acesse o endereço: https://
download.docker.com/win/beta/InstallDocker.msi.
DICAS
DICAS
Você pode estar curioso com relação às diferenças entre um e outro. 
Damaceno (2019, s.p.) explica a diferença entre o “Docker for Windows” e o 
“Docker toolbox”:
 É que, no primeiro caso, utilizamos o terminal nativo do Windows. Já 
no segundo, ele instalará o Docker machine que deverá ser utilizado 
no lugar do terminal nativo. Para instalar, é necessário criar uma 
conta no docker hub e seguir os passos para a instalação, autorize o 
instalador. Depois de fazer o login, habilite o Hyper-v clicando em 
“Ok” e, com isso, o computador será reiniciado.
Continuando com nosso exemplo, após a instalação do seu Docker, vamos 
confirmar se está mesmo instalado, abra seu terminal do windows (powershell 
ou cmd) e escreva o seguinte comando: 
docker - -version
Depois de entender a arquitetura e ter realizada a instalação, vamos 
entender como funciona a estrutura da linha de comando. Para utilizar o docker, 
deve-se informar a ele as opções e argumentos da seguinte forma:
$ docker [option] [command] [arguments]
E para conhecer as opções adicionais com relação a um comando específico, 
basta digitar: 
$ docker subcomando –help
Vejamos a lista dos comandos mais utilizados:
https://download.docker.com/win/beta/InstallDocker.msi
https://download.docker.com/win/beta/InstallDocker.msi
TÓPICO 1 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
161
Comando O que executa
info Exibir informações de todo o sistema
inspect Retorne informações de baixo nível sobre um contêiner ou imagem
kill Mate um contêiner em execução
load Carregar uma imagem de um arquivo tar ou STDIN
login Faça login em um registro do Docker
logout Saia de um registro do Docker
logs Buscar os registros de um contêiner
network Gerenciar redes Docker
pause Pausar todos os processos em um contêiner
port Listar mapeamentos de portas ou um mapeamento específico para o CONTÊINER
ps Contêineres de lista
pull Extraia uma imagem ou repositório de um registro
push Envie uma imagem ou repositório para um registro
rename Renomear um contêiner
restart Reinicie um contêiner
rm Remova um ou mais recipientes
rmi Remova uma ou mais imagens
run Execute um comando em um novo contêiner
save Salve uma ou mais imagens em um arquivo tar
search Pesquise imagens no Docker Hub
start Inicie um ou mais contêineres parados
stats Exibir uma transmissão ao vivo de estatísticas de uso de recursos de contêineres
stop Pare um contêiner em execução
tag Marque uma imagem em um repositório
top Exibir os processos em execução de um contêiner
unpause Retome todos os processos em um contêiner
update Atualizar configuração de um ou mais contêineres
version Mostra as informações da versão do Docker
volume Gerenciar volumes Docker
wait Bloqueie até que um contêiner pare e imprima seu código de saída
attach Anexar a um contêiner em execução
build Construir uma imagem de um Dockerfile
commit Crie uma nova imagem a partir das alterações de um contêiner
cp Copie arquivos / pastas entre um contêiner e o sistema de arquivos local
create Crie um novo contêiner
diff Inspecione as alterações no sistema de arquivos de um contêiner
QUADRO 2 - LISTA DE COMANDOS
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
162
events Obtenha eventos em tempo real do servidor
exec Execute um comando em um contêiner em execução
export Exportar o sistema de arquivos de um contêiner como um arquivo tar
history Mostra a história de uma imagem
images Listar imagens
import Importe o conteúdo de um tarball para criar uma imagem do sistema de arquivos
FONTE: Adaptado de Moll (2019)
É importante lembrarmos, antes de prosseguir com a criação do nosso 
primeiro contêiner, que, conforme Damaceno (2019, s.p.) explica, “o Docker 
utiliza uma ‘receita de bolo’, sendo chamada de ‘imagem’, ou seja, uma série 
de instruções que o Docker faz para criar um contêiner”. Caso você queira uma 
pronta, pode acessar o repositório open source chamado Docker hub. Continuando 
com o exemplo, sempre que formos criar um contêiner, utilizaremos a sintaxe: 
docker run imagem (imagem que queremos que ele utilize)
Exemplo,se eu quiser criar um contêiner com Node:
>> docker run node
Depois, podemos conferir se ele foi criado com sucesso:
>> docker ps -a
Além disso, existem dois tipos de comandos que podem ser utilizados 
para listar os contêineres:
• docker ps: que irá exibir todos os contêineres ativos; 
• docker ps -a: que irá exibir todos os contêineres criados.
Chegou o momento, e vamos começar a criar uma aplicação, segundo 
modelo proposto por Moll (2019).
Suponhamos que você queira criar uma aplicação que possua todas as 
dependências do Node.js já instalados, sem instalar as dependências manualmente 
ou diretamente em sua máquina.
Usando Docker, você pode fazer isso de maneira isolada com alguns 
comandos declarados no arquivo de configuração. Isso se chama “Dockerfile”. 
TÓPICO 1 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
163
Leia o artigo O que é Kubernets?Tudo o que você precisa aprender sobre!. 
Disponível em: https://blog.geekhunter.com.br/kubernetes-a-arquitetura-de-um-cluster/.
DICAS
Vamos começar vendo o exemplo de conteúdo de um Dockerfile:
FIGURA 4 - DOCKFILE
FIGURA 5 - ARQUIVO APP.JS
FONTE: Moll (2019, s.p.).
FONTE: Moll (2019, s.p.).
Se olharmos para o arquivo app.js que define uma aplicação básica em 
Node.js e express, nós teremos:
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
164
Agora que já defi nimos nossa aplicação em app.js e já temos nosso 
Dockerfi le, vamos criar uma imagem para poder rodar nossa aplicação e realizar 
o deploy na imagem que será carregada no contêiner. Vamos criar uma imagem 
executando o comando, em que a opção -t serve para informarmos uma tag para 
a imagem que estamos criando:
$ docker build -t vmoll/nodejs-image-demo
Feito isso, seguindo o modelo proposto por Moll (2019), já será possível 
rodar a aplicação utilizando o seguinte comando:
$ docker run -it -p 3000:3000 -h instance-hostname --rm --name nodejs-
image-demo vmoll/nodejs-image-demo:latest
Perceba que no comando que acabamos de executar informamos -p . 
3000:3000. Esse comando, segundo Moll (2019, s.p.), “é responsável por realizar 
o bind ou vinculação da porta local para uma porta externa do serviço, que será 
disponibilizado na máquina que está hospedando a aplicação”. Agora já podemos 
ver a aplicação funcionando, basta inserir htt p://localhost:3000 e receberá a 
mensagem “Hello Geeks!”, conforme Figura 6:
FIGURA 6 - PRIMEIRO EXEMPLO
FONTE: Moll (2019, s.p.).
Você pode criar uma conta no GitHub e ter acesso a vários outros exemplos, 
como o código da aplicação de exemplo, juntamente ao seu Dockerfi le. Acesse: 
• https://github.com/vmoll/geekhunter-docker-nodejsapp; 
• https://github.com/docker/labs;
DICAS
TÓPICO 1 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
165
O exemplo apresentado por Moll (2019) é uma aplicação bem simples, 
para ilustrar como é possível realizar o deploy na imagem que criamos. Agora, 
vamos ao nosso foco principal, que é a criação e execução de contêineres usando 
Docker. Se você deseja criar uma aplicação completa, você pode utilizar algum 
gerador, como o express-generator. Para isso, execute os seguintes comandos e 
após abra uma janela do browser em: http://localhost:3000.
$ npm install express-generator -g
$ express minhaAplicacao
$ cd minhaAplicacao
$ npm install
$ npm start 
Como todo desenvolvimento, é necessário seguirmos algumas dicas de 
boas práticas para aumentar a qualidade do nosso trabalho. Vejamos algumas 
propostas pelo site Docker (2020).
BOAS PRÁTICAS NA CONSTRUÇÃO
O Docker constrói imagens automaticamente lendo as instruções de um 
Dockerfile, que nada mais é do que um arquivo de texto que irá armazenar 
todos os comandos necessários para a criação da determinada imagem. Um 
Dockerfile segue um formato específico e um conjunto de instruções que você 
pode encontrar na referência do Dockerfile.
Detalhando um Dockerfile
Comando Significado
FROM ubuntu:18.04 FROM cria uma camada da ubuntu:18.04imagem Docker.
COPY. /app COPY adiciona arquivos do diretório atual do seu cliente Docker.
RUN make /app RUN constrói seu aplicativo com make.
CMD python /app/app.py CMD especifica qual comando executar dentro do contêiner.
QUADRO – ANALISANDO UM DOCKERFILE
FONTE: Adaptado de Docker (2020)
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
166
Ao executar uma imagem e gerar um contêiner, você adiciona uma 
nova camada gravável (a “camada do contêiner”) no topo das camadas 
subjacentes. Todas as alterações feitas no contêiner em execução, como gravar 
novos arquivos, modificar arquivos existentes e excluir arquivos, são gravadas 
nesta camada de contêiner gravável. Por isso, a imagem definida por seu 
Dockerfile deve gerar contêineres tão efêmeros quanto possível. Por "efêmero", 
queremos dizer que o contêiner pode ser interrompido e destruído e, em 
seguida, reconstruído e substituído com um mínimo absoluto de instalação e 
configuração.
Essas recomendações foram elaboradas para ajudá-lo a criar um 
ambiente eficiente e sustentável Dockerfile.
FROM: sempre que possível, use imagens oficiais atuais como base para 
suas imagens. Recomendamos a imagem Alpine (https://hub.docker.com/_/
alpine/) porque é rigidamente controlada e pequena em tamanho (atualmente 
menos de 5 MB), embora ainda seja uma distribuição Linux completa.
LABEL: você pode adicionar rótulos a sua imagem para ajudar a 
organizar imagens por projeto, registrar informações de licenciamento, para 
auxiliar na automação ou por outros motivos. Para cada rótulo, adicione uma 
linha começando com LABEL e com um ou mais pares de valores-chave. Os 
exemplos a seguir mostram os diferentes formatos aceitáveis. Como as Strings 
com espaços, que devem ser colocados entre aspas ou os espaços devem ser 
escapados. Caracteres de aspas internas (“) também devem ser escapados. 
Vejamos os exemplos:
Com um ou vários Labels simples:
LABEL com.example.version="0.0.1-beta"
LABEL vendor1="ACME Incorporated"
LABEL vendor2=ZENITH\ Incorporated
LABEL com.example.release-date="2015-02-12"
LABEL com.example.version.is-production="" 
A imagem pode ter mais de um rótulo composto, pode ser feito de duas 
formas, sendo que a primeira era obrigatória até a versão 1.1: 
LABEL com.example.version="0.0.1-beta" com.example.release-
date="2015-02-12"
Nas novas versões, o texto citado também pode ser escrito com a 
utilização de quebras de linha:
https://hub.docker.com/_/alpine/
https://hub.docker.com/_/alpine/
TÓPICO 1 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
167
LABEL vendor=ACME\ Incorporated \
 com.example.is-beta= \
 com.example.is-production="" \
 com.example.version="0.0.1-beta" \
 com.example.release-date="2015-02-12"
RUN: ele serve para dividir instruções longas ou complexas em várias 
linhas separadas por barras invertidas, o que servirá para deixar o Dockerfile 
mais legíveis, compreensíveis e fáceis de manter.
APT-GET: provavelmente, o caso de uso mais comum para RUN é um 
aplicativo de apt-get para a instalação de pacotes. Entretanto, o comando tem 
várias dicas a serem observadas, como evitar o uso de RUN apt-get upgrade 
e dist-upgrade. Esso acontece porque muitos dos pacotes "essenciais" das 
imagens pai não podem atualizar dentro de um contêiner sem privilégios. Se 
um pacote contido na imagem pai estiver desatualizado, entre em contato com 
o responsável. Se você souber que existe um pacote específico foo, que precisa 
ser atualizado, use apt-get install -y foo para atualizar automaticamente. Outra 
dica é sempre combine RUN apt-get update com apt-get install na mesma 
RUN, como no exemplo:
RUN apt-get update && apt-get install -y \
 package-bar \
 package-baz \
 package-foo
Usar apt-get update sozinho em uma instrução RUN causa problemas 
de cache e as instruções apt-get install subsequentes falham. Por exemplo, 
digamos que você tenha um Dockerfile:
FROM ubuntu:18.04
RUN apt-get update
RUN apt-get install -y curl
USANDO PIPES
Alguns comandos RUN dependem da capacidade de canalizar a saída 
deum comando para outro, usando a barra vertical ( | ), como no exemplo a 
seguir:
RUN wget -O - https://some.site | wc -l > /number
O Docker executa esses comandos usando o interpretador /bin/
sh -c, que avalia apenas o código de saída da última operação no pipe para 
determinar o sucesso. No exemplo, essa etapa de construção é bem-sucedida 
e produz uma nova imagem, desde que o comando wc -l seja bem-sucedido, 
mesmo se o comando wget falhar.
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
168
Se você quer que o comando falhe devido a um erro em qualquer 
estágio do pipe, inclua o prefixo set -o pipefail &&. Isso irá garantir que um 
erro inesperado evite que a construção seja acidentalmente concluída. Vejamos 
o exemplo: 
RUN set -o pipefail && wget -O - https://some.site | wc -l > /number
CMD: a instrução CMD deve ser usada para executar o software contido 
em sua imagem, junto a quaisquer argumentos. Esse comando quase sempre 
deve ser usado na forma de CMD ["executable", "param1", "param2"…]. 
Portanto, se a imagem for para um serviço, como Apache e Rails, você executaria 
algo como CMD ["apache2","-DFOREGROUND"]. Na verdade, essa forma de 
instrução é recomendada para qualquer imagem baseada em serviço.
Na maioria dos outros casos, o CMD deve ser recebido um shell 
interativo, como bash, python e perl. Por exemplo, CMD ["perl", "-de0"], CMD 
["python"], ou CMD ["php", "-a"]. Ao utilizar desta forma, significa que, ao 
executar algo como docker run -it python, você será colocado em um shell 
utilizável, pronto para usar. Os CMD raramente deve ser usado na forma de 
CMD ["param", "param"] em conjunto com o ENTRYPOINT, a menos que 
você e seus usuários esperados já estejam bastante familiarizados com o 
funcionamento ENTRYPOINT.
EXPOSE: A instrução EXPOSE indica as portas nas quais um contêiner 
escuta as conexões. Por exemplo, uma imagem contendo o servidor da web Apache 
usaria EXPOSE 80, enquanto uma imagem contendo MongoDB usaria EXPOSE 
27017 e assim por diante. Já para acesso externo, os usuários podem executar 
docker run com um sinalizador indicando como mapear a porta especificada 
para a porta de sua escolha. Para a vinculação do contêiner, o Docker fornece 
variáveis de ambiente para o caminho do contêiner do destinatário de volta à 
origem (ou seja, MYSQL_PORT_3306_TCP).
ENV: para tornar o novo software mais fácil de ser executado, você 
pode usar ENV para atualizar a variável de ambiente PATH para o software que 
seu contêiner instala. Por exemplo, ENV PATH /usr/local/nginx/bin:$PATH 
garante que CMD ["nginx"] simplesmente funcione.
A instrução ENV também é útil para fornecer variáveis de ambiente 
específicas exigidas para serviços que você deseja armazenar em contêiner, 
como Postgres PGDATA. Por último, o ENV também pode ser usado para 
definir os números de versão que comumente são usados para que as variações 
de versão sejam mais fáceis de manter, conforme visto no exemplo a seguir:
TÓPICO 1 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
169
ENV PG_MAJOR 9.3
ENV PG_VERSION 9.3.4
RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz | tar 
-xJC /usr/src/postgress && …
ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH
Semelhante a ter variáveis constantes em um programa, ao invés de 
ter os valores definidos no código, essa abordagem permite alterar uma única 
instrução ENV, e com isso alterar automaticamente a versão do software em 
seu contêiner, onde cada linha ENV cria uma nova camada intermediária, 
assim como os comandos RUN. Isso significa que mesmo se você remover 
a configuração da variável de ambiente em uma camada futura, ela ainda 
persistirá nessa camada e seu valor não poderá ser descarregado. Você pode 
testar isso criando um Dockerfile como o seguinte e, em seguida, compilando-o.
FROM alpine
ENV ADMIN_USER="mark"
RUN echo $ADMIN_USER > ./mark
RUN unset ADMIN_USER
$ docker run --rm test sh -c 'echo $ADMIN_USER'
Mark
Para evitar isso e realmente remover a definição da variável de ambiente, 
use um comando RUN com comandos shell para definir, usar e remover a 
definição da variável, tudo em uma única camada. Você pode separar seus 
comandos com ; ou &&. Se você usar o segundo método e um dos comandos 
falhar, o docker build também falhará. Geralmente é uma boa ideia usar \ como 
um caractere de continuação de linha para Dockerfiles Linux, isso melhora a 
legibilidade. Você também pode colocar todos os comandos em um script de 
shell e fazer com que o comando RUN apenas execute esse script de shell.
FROM alpine
RUN export ADMIN_USER="mark" \
 && echo $ADMIN_USER > ./mark \
 && unset ADMIN_USER
CMD sh
$ docker run --rm test sh -c 'echo $ADMIN_USER'
ADD ou COPY: ADICIONE ou COPIE embora esses comandos sejam 
funcionalmente semelhantes, em geral, COPY é o preferido. Isso porque é 
mais transparente do que ADD. O comando COPY suporta apenas a cópia 
básica de arquivos locais no contêiner, embora ADD tenha alguns recursos. 
Consequentemente, o melhor uso para ADD é a extração automática do 
arquivo tar local para a imagem, como em ADD rootfs.tar.xz /.
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
170
Se você tiver várias etapas no seu Dockerfile que usam arquivos 
diferentes do seu contexto, use o COPY individualmente, em vez de todos de 
uma vez. Isso garante que o cache de construção de cada etapa só seja invalidado 
(forçando a etapa a ser executada novamente) se os arquivos especificamente 
necessários forem alterados. Como no exemplo:
COPY requirements.txt /tmp/
RUN pip install --requirement /tmp/requirements.txt
COPY . /tmp/
Isso resulta em menos invalidações de cache para a etapa RUN, do que 
se você colocasse o COPY . /tmp/ antes dela.
Como o tamanho da imagem é importante, usar ADD para buscar 
pacotes de URLs remotos é desaconselhado. Você deve usar curl ou wget em 
vez disso. Dessa forma, você pode excluir os arquivos de que não precisa mais 
depois de extraídos e não precisa adicionar outra camada à imagem. Veja o 
exemplo do que evitar e o que preferir:
Evite Prefira
ADD http://example.com/big.tar.xz 
/usr/src/things/ 
RUN tar -xJf /usr/src/things/big.tar.
xz -C /usr/src/things 
RUN make -C /usr/src/things all
RUN mkdir -p /usr/src/things \ 
 && curl -SL http://example.com/
big.tar.xz \ 
 | tar -xJC /usr/src/things \ 
 && make -C /usr/src/things all
Para outros itens (arquivos, diretórios) que não requerem ADD o 
recurso de extração automática do tar, você deve sempre usar COPY.
VOLUME: a instrução VOLUME deve ser usada para expor qualquer 
área de armazenamento de banco de dados, armazenamento de configuração 
ou arquivos/pastas criados por seu contêiner docker. É muito recomendado 
que se use VOLUME para quaisquer partes mutáveis e/ou que possam ser 
reparadas pelo usuário de sua imagem.
USER: se um serviço puder ser executado sem privilégios, utilize USER 
para mudar para um usuário não root. Comece criando o usuário e o grupo no 
Dockerfile, como o exemplo: 
RUN groupadd -r postgres && useradd --no-log-init -r -g postgres 
postgres.
TÓPICO 1 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
171
Considere um UID / GID explícito: Usuários e grupos em uma imagem 
são atribuídos a um UID / GID não determinístico em que o “próximo” UID / 
GID é atribuído independentemente das reconstruções da imagem. Portanto, 
se for crítico, você deve atribuir um UID / GID explícito.
WORKDIR: Para maior clareza e confiabilidade, você deve sempre usar 
caminhos absolutos para o seu WORKDIR. Além disso, você deve usar em vez 
WORKDIR de proliferar instruções como RUN cd … && do-something, que 
são difíceis de ler.
ONBUILD: esse comando é executado após a conclusão da compliação 
do Dockerfile atual. Ele executa em qualquer imagem filha derivada da imagem 
FROM atual. Pense no comando ONBUILD como uma instrução que o pai 
Dockerfile dá ao filho Dockerfile.
Uma compilação do Docker executa comandos ONBUILD antes de 
qualquer comando em um filho Dockerfile. Ele é útil para imagens que serãoconstruídas a partir de FROM em uma determinada imagem. Por exemplo, 
você usaria ONBUILD para uma imagem de pilha de linguagem que constrói 
software de usuário arbitrário escrito nessa linguagem dentro do Dockerfile. 
As imagens criadas com ONBUILD devem receber uma tag separada, por 
exemplo: ruby:1.9-onbuild ou ruby:2.0-onbuild.
Tenha cuidado ao colocar ADD ou COPY em ONBUILD. A imagem 
“onbuild” falhará catastroficamente se o contexto da nova construção não incluir 
o recurso adicionado. Adicionar uma tag separada, conforme recomendado, 
ajuda a mitigar isso, permitindo que o autor do Dockerfile faça uma escolha.
FONTE: Adaptado de <https://docs.docker.com/develop/develop-images/dockerfile_best-
-practices/#dockerfile-instructions>. Acesso em: 14 out. 2020.
Veja mais dicas de como usar o RUN em: https://docs.docker.com/develop/
develop-images/dockerfile_best-practices/#dockerfile-instructions.
DICAS
172
Neste tópico, você aprendeu que:
• Contêiner nada mais é do que um ambiente isolado contido em um servidor, 
diferentemente das máquinas virtuais.
• O isolamento de contêiner possibilita uma utilização limitada do HD, memória 
RAM e processador.
• Os componentes de uma arquitetura Docker são: Docker para Mac, Linux e 
Windows; Docker Daemon; Docker Client; Docker Image; Docker Contêiner; 
Docker Engine; Docker Registry; Docker Hub; Dockerfile; Docker Compose; 
Docker Swarm.
RESUMO DO TÓPICO 1
173
1 (DPE-RS, 2017) Considere, por hipótese, que a equipe de analistas da 
Defensoria Pública tenha optado pelo uso do Docker. Essa decisão foi 
motivada por qual fato apresentado pelo Docker?
FONTE: <https://www.qconcursos.com/questoes-de-concursos/questoes/56657761-a0>. 
Acesso em: 20 out. 2020. 
a) ( ) Estar ganhando espaço como um gerenciador de máquinas virtuais 
no ambiente GNU/Linux e não ter bibliotecas próprias, mantendo as 
bibliotecas nativas utilizadas para gerenciar o LXC.
b) ( ) Não utilizar Namespaces do Linux, o que permite prover espaços de 
trabalho isolados para os contêineres. Desta forma, quando um contêiner é 
criado, automaticamente é criada uma camada de isolamento para grupos 
de processos.
c) ( ) Permitir portabilidade de contêineres. É possível criar uma imagem de 
toda a configuração e aplicativos instalados em um contêiner e transferi-lo 
para outro host que tenha um Docker previamente instalado.
d) ( ) Obter o mesmo desempenho da virtualização baseada em hypervisor, 
em que cada contêiner é executado em seu próprio sistema operacional, o 
que reduz a utilização de recursos de disco, embora os contêineres utilizem 
mais memória.
2 (PRODEB, 2018) Atualmente, várias empresas têm utilizado a contêinerização 
de aplicações. Dentro dessa plataforma, como pode ser definido o termo 
contêiner?
FONTE: <https://www.qconcursos.com/questoes-de-concursos/questoes/c0069605-8f>. 
Acesso em: 20 out. 2020. 
a) ( ) É uma estrutura para armazenamento de dados não estruturados.
b) ( ) É uma forma de virtualização a nível de sistema operacional, que 
proporciona a capacidade de executar múltiplas aplicações (sistemas) 
isoladas em um único sistema operacional real.
c) ( ) É uma linguagem de programação que proporciona a aplicabilidade 
da plataforma Docker dentro de um sistema.
d) ( ) Pode ser definido como uma estrutura secundária para armazenamento 
das redundâncias dentro do processo de desenvolvimento de software.
e) ( ) É uma estrutura de banco de dados relacionais, utilizado para o 
armazenamento de informações que são compartilhadas entre os projetos 
de uma mesma equipe.
3 (TJ-RN, 2020) Uma imagem de contêiner do Docker é um pacote de 
software leve, independente e executável que inclui tudo o que é necessário 
para executar uma aplicação. Na criação de um arquivo Dockerfile, o que 
faz a instrução EXPOSE?
FONTE: <https://www.qconcursos.com/questoes-de-concursos/questoes/f51c785a-c6>. 
Acesso em: 20 out. 2020. 
AUTOATIVIDADE
174
a) ( ) Mapeia uma porta externa para uma porta interna à rede Docker.
b) ( ) Divulga uma porta (TCP ou UDP) para os hosts externos à rede 
Docker.
c) ( ) Expõe um serviço do contêiner para a rede Docker default.
d) ( ) Documenta quais portas se pretende publicar.
4 (UFC, 2019) Dockerfile é um arquivo de texto que contém todos os 
comandos, em ordem, necessários para construir uma determinada 
imagem Docker. Sobre as instruções contidas em um Dockerfile, assinale a 
alternativa CORRETA:
FONTE: <https://www.qconcursos.com/questoes-de-concursos/questoes/2f4ea7a3-7e>. 
Acesso em: 20 out. 2020. 
a) ( ) A instrução ENV adiciona metadados para uma imagem.
b) ( ) A instrução WORKDIR permite a criação de um diretório no host em 
que ficam armazenados os dados do contêiner.
c) ( ) A instrução EXPOSE informa ao Docker que o contêiner escuta nas 
portas de rede especificadas em tempo de execução.
d) ( ) A instrução FROM configura qual será a aplicação principal do 
contêiner, sendo executada após a inicialização do contêiner.
175
UNIDADE 3
1 INTRODUÇÃO 
 
Os Containers as a Service (CaaS) são serviços em nuvem que permitem 
desenvolvedores de software construir, organizar, executar, dimensionar e 
gerenciar contêineres usando virtualização com base em contêiner (BUCHANAN, 
2020). 
Esse tipo de serviço tem a hospedagem e implantação automatizadas 
de software em contêineres. Quando não é utilizado o CaaS, as equipes de 
desenvolvimento de software precisam implantar, gerenciar e monitorar 
a infraestrutura em que os contêineres são executados (BUCHANAN, 
2020). É muito caro configurar e executar um PaaS ou IaaS para entrega profissional 
de sistemas. Eles são grandes ferramentas para evitar o custo e o tempo necessários 
para configurar um servidor dedicado. É realmente um pesadelo administrar um 
servidor dedicado não gerenciado (GHOSH, 2018). 
Os CaaS permitem que as equipes de desenvolvimento pensem em mais 
alto nível, em vez de se preocupar com o gerenciamento de infraestrutura básica. 
Isso proporciona às equipes de desenvolvimento mais clareza para o produto 
final e permite um desenvolvimento mais ágil e com maior valor entregue ao 
cliente (BUCHANAN, 2020). 
 
2 CONCEITOS 
 
Um contêiner é um software empacotado com as dependências de código, 
tempo de execução, configuração e bibliotecas do sistema para que possa ser 
executado em qualquer ferramenta de hospedagem. O CaaS permite que as equipes 
de software implantem e escalonem rapidamente aplicativos em contêineres para 
infraestruturas de nuvem de alta disponibilidade (BUCHANAN, 2020). 
Os CaaS se diferem das Platform as a Service (PaaS), pois dependem do uso de 
contêineres. No entanto, o PaaS se preocupa com implantações da linguagem de 
programação explícita, como JAVA ou C#, enquanto os CaaS podem implantar várias 
pilhas por contêiner, sendo independente de amarrações técnicas (BUCHANAN, 
2020). 
Vejamos, na Figura 7, as camadas que cada tipo de serviço oferece e a 
diferença entre cada uma delas. 
TÓPICO 2 — 
CONTÊINER COMO SERVIÇO (CAAS)
176
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
FIGURA 7 – CAMADAS POR TIPO DE SERVIÇOS 
FONTE: <https://thecustomizewindows.com/wp-content/uploads/2018/04/PaaS-Versus-Contai-
ner-Docker-CaaS.png>. Acesso em: 20 out. 2020.
O PaaS é um serviço de hospedagem em nuvem que se concentra na 
implantação de código com possibilidade de confi guração a nível codifi cação do 
software. Os provedores de PaaS oferecem ambientes hospedados automatizados 
que se concentram em dependências de infraestrutura de aplicativos de 
nível superior, como tempos de execução de linguagem e bancos de dados 
(BUCHANAN, 2020). 
Estruturas como Docker e PaaS resolvem problemas diferentes. O PaaS 
é uma boa opção para desenvolvimento em equipes menores. A implantação 
de microsserviços é fácil em uma plataforma de gerenciamento de contêiner 
como o Kubernetes, mas nem sempre é necessária para o desenvolvimento de 
software web (GHOSH, 2018). 
As Plataformas como Serviço (PaaS), que jáestudamos na disciplina, 
preocupam-se com infraestrutura de nível de pilha de código. Ao usar um PaaS, 
um projeto não tem controle do sistema operacional em que está rodando. Os 
tempos de execução do contêiner oferecem confi guração e virtualização do sistema 
operacional, permitindo personalização e controles muito mais avançados. Os 
contêineres podem ser essenciais para o desenvolvimento de software altamente 
personalizado e especializado (BUCHANAN, 2020). 
Os CaaS tendem a serem mais adequados para microsserviços, pois 
cada contêiner implantado no CaaS pode ter seu próprio sistema operacional 
encapsulado e pilha de idiomas. O PaaS ainda sofre do problema de depender do 
ambiente local de cada máquina. Pode haver pequenas diferenças entre o ambiente 
TÓPICO 2 — CONTÊINER COMO SERVIÇO (CAAS)
177
de desenvolvimento e o ambiente de produção de um sistema PaaS. O objetivo 
principal de um sistema de contêiner é evitar e garantir um comportamento 
consistente em ambientes de implantação e de produção (BUCHANAN, 2020). 
Os contêineres tornam muito mais fácil o desenvolvimento de sistemas 
distribuídos ou arquiteturas de microsserviços. Durante o desenvolvimento, 
um conjunto de contêineres pode gerenciar diferentes responsabilidades ou 
diferentes ecossistemas de linguagem de código. A promessa do CaaS é que essas 
arquiteturas de contêiner definidas e comprometidas podem ser implementadas 
rapidamente para hospedagem em nuvem (BUCHANAN, 2020). 
O objetivo de uma abordagem orientada a serviços para fornecer 
recursos de software é ajudar os usuários a se concentrarem completamente nas 
funcionalidades do sistema. Um desenvolvedor que usa PaaS para testar 
softwares, por exemplo, só precisa carregar seu próprio código na nuvem. Todos 
os requisitos técnicos para o processo de construção, bem como o gerenciamento 
e implantação do aplicativo, são fornecidos pelo provedor da plataforma PaaS 
(IONOS, 2019). 
Para seguir o modelo clássico de computação em nuvem, o CaaS pode 
ser colocado entre IaaS e PaaS. No entanto, desses modelos de serviço, o CaaS se 
distingue por uma abordagem fundamentalmente diferente da virtualização, que 
é o uso da tecnologia de contêiner (IONOS, 2019). 
 O CaaS também fornece aos usuários o gerenciamento completo do ciclo 
de vida do software. Ao contrário de IaaS e PaaS, o fornecimento de recursos 
virtualizados não se baseia na virtualização de máquinas separadas com seu 
próprio sistema operacional. Em vez disso, as funções nativas dos kernels Linux 
são usadas, o que permite o isolamento de processos individuais dentro do 
mesmo sistema operacional. A tecnologia de contêiner cria um nível abstrato, que 
encapsula aplicativos, incluindo o sistema de arquivos, do sistema subjacente, 
permitindo assim a operação em qualquer plataforma que suporte a tecnologia 
de contêiner (IONOS, 2019). 
 Os desenvolvedores de software que desejam fazer uso de um ambiente 
de desenvolvimento baseado em nuvem devem contar com as tecnologias 
fornecidas pelo fornecedor, como linguagens de programação restritas ou 
estruturas no modelo PaaS. 
O Container as a Service, por outro lado, fornece aos usuários uma 
plataforma de programação relativamente livre, na qual aplicativos encapsulados 
em contêineres podem ser escalados em infraestruturas de TI heterogêneas, 
independentemente de seus requisitos técnicos (IONOS, 2019). 
 
178
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
3 CASOS DE APLICAÇÕES 
 
Vamos imaginar um software organizado em uma arquitetura 
de microsserviços, em que o sistema de serviços é estruturado pela propriedade 
do domínio de negócios. Os domínios dos serviços podem ser os de pagamentos, 
autenticação e carrinho de compras. Cada um desses serviços possui sua própria 
base de código e são armazenados em contêineres. Usando CaaS, esses contêineres 
de serviço podem ser implantados instantaneamente em um sistema sem requerer 
configurações específicas (BUCHANAN, 2020). 
A implantação de softwares em contêineres permite a transparência 
no desempenho de um sistema por meio de ferramentas como agregação de 
log e monitoramento. O CaaS também inclui funcionalidade integrada para 
escalonamento automático e gerenciamento de orquestração. 
Ele permite que as equipes criem rapidamente sistemas distribuídos de alta 
disponibilidade. Além disso, o CaaS aumenta a velocidade de desenvolvimento 
da equipe, permitindo implementações rápidas. O uso de contêineres garante 
um objetivo de implantação consistente, enquanto o CaaS pode reduzir os custos 
operacionais de engenharia, reduzindo os recursos DevOps necessários para 
gerenciar uma implantação (BUCHANAN, 2020). 
 
4 O FUNCIONAMENTO 
 
O Container as a Service é um grupo de computadores que está disponível 
por meio da nuvem e é usado por usuários para fazer upload, criar, gerenciar 
centralmente e executar aplicativos baseados em contêiner na plataforma de 
nuvem. A interação com o ambiente de contêiner baseado em nuvem ocorre por 
meio da interface gráfica com o usuário (GUI) ou na forma de chamadas de API. 
O provedor determina quais tecnologias de contêiner estão disponíveis para os 
usuários (IONOS, 2019). 
No entanto, o núcleo de cada plataforma CaaS é uma ferramenta de 
orquestração, também conhecida como orquestrador, que permite o gerenciamento 
de arquiteturas de contêiner complexas (IONOS, 2019). 
Os aplicativos de contêiner usados em ambientes produtivos geralmente 
consistem em um cluster de vários contêineres distribuídos em diferentes 
sistemas físicos e virtuais, isso é conhecido como um sistema de vários 
contêineres. Usar ferramentas de orquestração é uma boa opção, pois organizam 
a interação entre os contêineres executados e permitem funções de operação 
automatizada. Segundo Ionos (2019), as seguintes funções são importantes: 
TÓPICO 2 — CONTÊINER COMO SERVIÇO (CAAS)
179
• distribuição de contêineres em vários hosts; 
• agrupando contêineres em unidades lógicas; 
• dimensionamento de contêineres; 
• balanceamento de carga; 
• alocação de capacidade de armazenamento; 
• interface de comunicação entre contêineres; 
• descoberta de serviço. 
 
O orquestrador usado na estrutura CaaS tem uma influência direta nas 
funções disponibilizadas aos usuários do serviço em nuvem. O mercado de 
virtualização baseada em contêiner é atualmente dominado por três ferramentas 
de orquestração: Docker Swarm, Kubernetes e Mesosphere DC/OS (IONOS, 
2019). 
 O Docker Swarm é uma ferramenta de gerenciamento e orquestração 
de cluster de código aberto projetada por Docker como uma ferramenta nativa 
para gerenciar clusters Docker e operações de contêiner. O orquestrador é a base 
para Docker On-Premises CaaS Product Docker Datacenter (DDC), permitindo que 
as empresas usem um ambiente de contêiner como serviço autogerenciado em 
seu próprio data center, como parte do Docker Enterprise Edition (EE) Nuvens 
privadas (Docker Datacenter em AWS/Azure).
 O autodesenvolvimento do Docker é conhecido por sua fácil instalação 
e manuseio e é totalmente integrado ao ambiente de tempo de execução do 
contêiner do líder. A ferramenta de orquestração usa a API Docker padrão, 
fornecendo compatibilidade com outras ferramentas Docker que se comunicam 
usando a API Docker. A administração de clusters e contêineres é feita usando 
comandos clássicos do Docker (IONOS, 2019). 
O Kubernetes é uma ferramenta de código aberto para provisionamento, 
dimensionamento e administração automatizados de aplicativos de contêiner em 
infraestruturas de TI distribuídas. A ferramenta foi desenvolvida originalmente 
pelo Google e agora está sob os auspícios da Cloud Native Computer Foundation 
(CNCF). 
Em contraste com o Swarm, o Kubernetes não oferece suporte apenas a 
contêineres Docker. Por meio de uma interface de tempo de execução de contêiner 
(CRI), o orquestrador faz interface com vários ambientes de tempo de execução 
de contêiner em conformidade com OCI e baseados em hipervisor, bem como 
com concorrentescomo CoreOS. Comparado ao Docker Swarm, a instalação e 
configuração do Kubernetes é significativamente mais complexa (IONOS, 2019). 
O DC/OS (Sistema Operacional de Data Center) é um desenvolvimento 
adicional de um gerenciador de cluster de código aberto chamado Apache Mesos, 
que é fornecido pela Mesosphere, uma inicialização do Vale do Silício, como um 
sistema operacional para data centers sob uma licença de código aberto (IONOS, 
2019).
 
180
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
5 DESVANTAGENS 
 
Os contêineres da Docker e de outros fornecedores são soluções excelentes, 
mas eles não são a solução perfeita para todo tipo de desafio de infraestrutura de 
servidores. Como qualquer outra tecnologia, eles têm suas desvantagens (TOZZI, 
2016). 
Os contêineres podem parecer a resposta perfeita para todos os problemas. 
Porém, como a nuvem, os contêineres vêm com alguns aspectos negativos. Não 
são considerados uma tecnologia nova, mas só recentemente eles se tornaram 
populares. Poucos desenvolvedores aprenderam a usar contêineres em cursos ou 
afins, e as certificações de contêiner ainda são raras. 
Como resultado, nem todas as equipes estão preparadas para implantar e 
gerenciar infraestrutura em contêineres. Se não estiver preparado, é interessante 
pensar em ignorar os contêineres até que tenha profissionais que estejam prontos 
para eles, mas uma solução de Contêiner como Serviço (CaaS) pode terceirizar 
a maior parte do gerenciamento e facilitar a implantação dos mesmos (TOZZI, 
2016). 
A necessidade segurança fez com que os contêineres ficassem mais seguros 
do que costumavam ser. Se existem necessidades muito altas de conformidade de 
segurança ou privacidade de dados, os contêineres provavelmente ainda não são 
uma boa ideia (TOZZI, 2016). 
Quando existe a necessidade da virtualização tradicional, poder pegar um 
aplicativo e colocá-lo em um contêiner é legal e torna as implantações portáteis e 
escalonáveis. Entretanto, simplesmente, não há substituto para o VMware. Rede 
e armazenamento persistentes são mais complicados em contêineres do que em 
máquinas virtuais completas, por exemplo (TOZZI, 2016). 
 
6 PLATAFORMAS DE CAAS 
 
Um serviço de contêiner é fornecido por um provedor de computação em 
nuvem e permite que os usuários desenvolvam, testem, executem ou distribuam 
software nos chamados contêineres de aplicativos em infraestruturas de TI. 
Os contêineres de software são um conceito da região do Linux. A tecnologia 
permite a virtualização no nível do sistema operacional. Sistemas de informação 
individuais, incluindo todas as dependências, como bibliotecas, arquivos de 
configuração, entre outros, são executados como instâncias encapsuladas. Isso 
permite a operação paralela de vários aplicativos com requisitos diferentes 
no mesmo sistema operacional, bem como a implantação em sistemas 
diferentes (IONOS, 2019). 
TÓPICO 2 — CONTÊINER COMO SERVIÇO (CAAS)
181
A tecnologia de contêineres está crescendo, tornando a variedade de 
serviços CaaS correspondentes grande. Os serviços de virtualização no nível do 
sistema operacional são encontrados em quase todos os portfólios de provedores 
de nuvem pública. 
Amazon, Microsoft e Google – que estão atualmente entre os jogadores 
mais infl uentes no mercado de CaaS – expandiram suas plataformas em nuvem 
com uma solução de contêiner baseada em Docker nos últimos dois anos (IONOS, 
2019). 
Ao escolher um serviço CaaS para uso na empresa, os usuários devem 
levar em consideração as seguintes questões: 
• Quais ferramentas de orquestração estão disponíveis? 
• Quais formatos de arquivo os aplicativos de contêiner suportam? 
• É possível operar aplicativos com vários contêineres? 
• Como os clusters são gerenciados ao operar um contêiner? 
• Quais redes e funções de armazenamento são suportadas? 
• O provedor emite um registro privado para imagens de contêiner? 
• O ambiente de tempo de execução do contêiner está bem integrado a outros 
serviços em nuvem? 
• Quais modelos de faturamento estão disponíveis? 
6.1 AMAZON EC2 CONTAINER SERVICE (ECS) 
O principal provedor de computação em nuvem entrega sua ferramenta 
de função como serviço já consolidada e muito utilizada por grandes corporações. 
FONTE: <https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Amazon_Web_Servi-
ces_Logo.svg/150px-Amazon_Web_Services_Logo.svg.png>. Acesso em: 20 out. 2020.
FIGURA 8 – AMAZON WEB SERVICES
Desde abril de 2015, a Amazon fornece soluções para virtualização 
baseada em contêiner sob o nome Amazon EC2 Container Service, como parte 
do framework da plataforma de computação em nuvem AWS (Amazon Web 
Service). 
182
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
FIGURA 9 – SITE AMAZON ELASTIC CONTAINER SERVICE 
FONTE: <https://aws.amazon.com/pt/ecs/>. Acesso em: 20 out. 2020.
O Amazon ECS fornece aos usuários várias interfaces que permitem 
aplicativos isolados no Amazon Elastic Compute Cloud (EC2) em contêineres 
Docker. O serviço CaaS é tecnicamente baseado nos recursos de nuvem a seguir 
(IONOS, 2019).
Amazon EC2 (instâncias de nuvem do Amazon Elastic Compute 
Cloud): Amazon EC2 é a capacidade de computação escalonável do serviço de 
computação em nuvem da Amazon, que é alugado na forma das chamadas 
“instâncias”. 
Amazon S3 (Amazon Simple Storage): Amazon S3 é uma plataforma de 
armazenamento de objetos baseada em nuvem. 
Amazon EBS (Amazon Elastic Block Store): o Amazon EBS fornece volumes 
de armazenamento em bloco de alta disponibilidade para instâncias EC2. 
Amazon RDS (Amazon Relational Database Service): Amazon RDS é um 
serviço de banco de dados para gerenciar os mecanismos de banco de dados 
relacional Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle e Microsoft 
SQL Server. 
O gerenciamento de contêineres é feito pelo ECS por padrão, usando 
um orquestrador proprietário, que atua como mestre e se comunica com um 
agente em cada nó do cluster que precisa ser gerenciado. Como alternativa, 
um módulo de código aberto é oferecido com o Blox, o que torna possível 
conectar “agendadores” desenvolvidos por eles mesmos, bem como ferramentas 
de terceiros como o Mesos no ECS (IONOS, 2019). 
TÓPICO 2 — CONTÊINER COMO SERVIÇO (CAAS)
183
 A Amazon fornece aos usuários da AWS repositórios Docker privados 
como parte do EC2 Container Registry (ECR) para realizar uma administração 
central de suas imagens de contêiner. O acesso ao registro pode ser gerenciado 
usando AWS IAM no nível do recurso (IONOS, 2019). 
Uma desvantagem do serviço de contêiner Amazon EC2 é que ele 
restringe as instâncias do EC2. O serviço CaaS da Amazon não fornece suporte 
para infraestruturas de TI fora da AWS – nem fi sicamente, nem virtualmente. 
Os cenários de nuvem híbrida, em que vários aplicativos de contêiner 
às vezes são operados no local, são, portanto, tão impossíveis de executar como 
uma combinação dos recursos de tecnologia de diferentes provedores de nuvem 
pública. Isso, provavelmente, se deve ao modelo de negócios da Amazon para o 
serviço CaaS é essencialmente gratuito por meio da AWS. 
Os usuários pagam apenas pelo fornecimento da infraestrutura em 
nuvem, como grupos de instâncias EC2, que formam a base para a operação de 
aplicativos de contêiner (IONOS, 2019). 
FIGURA 10 – PAINEL AMAZON ELASTIC CONTAINER SERVICE
FONTE: O autor
Vamos ver como é o passo a passo para implantação de contêineres 
na Amazon utilizando apenas a camada gratuita dos serviços do provedor. 
184
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
Iniciamos confi gurando o Amazon ECS. Para isso, o assistente de 
primeira execução do Amazon ECS orientará durante a criação de um cluster e 
a execução de um sistema web de exemplo. Nesta etapa, é só acessar o console 
do Amazon ECS e executar o assistente. Para isso, é só acessar este link: htt ps://
console.aws.amazon.com/ecs/home#/fi rstRun. 
Após ter criado o Amazon ECS, você pode usar o Amazon Elastic Container 
Registry (Amazon ECR) conseguindo criarum repositório de imagens e enviar 
uma imagem para ele como parte do assistente de primeira execução. 
FIGURA 11 – INICIANDO AMAZON ELASTIC CONTAINER SERVICE
FONTE: O autor
Depois disso, cria-se uma defi nição de tarefa, que é uma espécie de 
esquema do seu aplicativo. Será especifi cada uma defi nição de tarefa para que 
o Amazon ECS saiba qual imagem de Docker usar para os contêineres, quantos 
contêineres usar na tarefa e a alocação de recursos para cada contêiner. A defi nição 
de tarefa vem pré-carregada com valores de confi guração padrão. Revise os 
valores padrão e selecione o comando para a próxima etapa. Se preferir modifi car 
as confi gurações ou quiser saber mais, consulte os parâmetros de defi nição de 
tarefa. 
TÓPICO 2 — CONTÊINER COMO SERVIÇO (CAAS)
185
FIGURA 12 – CRIANDO O AMAZON ELASTIC CONTAINER SERVICE
FONTE: O autor
Nesse momento precisa ser confi gurado o serviço. Após a criação de uma 
defi nição de tarefa, confi gure o serviço do Amazon ECS. Um serviço executa 
e mantém cópias da defi nição de tarefa no cluster. Por exemplo, ao executar 
um aplicativo como um serviço, o Amazon ECS recuperará automaticamente 
qualquer tarefa interrompida e manterá o número de cópias que for especifi cada.
 
Após isso, confi gure as opções de serviço. Primeiro o nome do serviço, 
que é o valor padrão sample-webapp, um aplicativo de exemplo com base na web 
disponibilizado pela AWS. Ele foi projetado para ser executado indefi nidamente, 
portanto, quando executado como um serviço, ele será reinicializado caso a tarefa 
apresente problemas de integridade ou caso seja interrompida inesperadamente. O 
número desejado de tarefas, para permanecer no nível gratuito da AWS, mantenha 
o valor padrão 1. Isso criará uma cópia da sua tarefa. 
186
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
FIGURA 13 – CONFIGURANDO O AMAZON ELASTIC CONTAINER SERVICE
FONTE: O autor
Logo após, é necessário confi gurar o Elastic load balancing, tendo a opção 
de usar um load balancer com seu serviço. 
O Amazon ECS pode criar um load balancer do Elastic Load Balancing (ELB) 
para distribuir o tráfego entre as instâncias de contêiner onde sua tarefa está 
sendo executada. No nome do contêiner e porta do host selecione Simple-
app:80. Os valores padrão de ELB listener protocol (protocolo do listener do ELB), 
ELB listener port (porta do listener do ELB) e de ELB health check (verifi cação de 
saúde do ELB) são confi gurados para o sistema de exemplo. 
TÓPICO 2 — CONTÊINER COMO SERVIÇO (CAAS)
187
FIGURA 14 – CONFIGURANDO O ELASTIC LOAD BALANCING
FONTE: O autor
Antes de poder anexar um load balancer a um Amazon ECS Service, é 
necessário criar uma função do Identity and Access Management (IAM) a ser usada 
pelos serviços. Isso permitirá que o Amazon ECS faça chamadas para as APIs 
do Amazon EC2 e do Elastic Load Balancing para registrar e cancelar o registro de 
instâncias nos load balancers. Depois de tudo confi gurado, selecione a próxima 
etapa. 
188
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
FIGURA 15 – CONFIGURANDO O ELASTIC LOAD BALANCING
FONTE: O autor
Agora é necessário confi gurar o cluster. As defi nições de confi guração 
para um sistema web de exemplo devem seguir com o nome do cluster sendo 
sample-cluster, o tipo de instância do EC2 será padrão t2.micro para fi car no nível 
gratuito. 
Os tipos de instância com mais recursos de CPU e memória podem 
realizar mais tarefas. O número de instâncias fi ca com o valor padrão 1 para 
executar uma instância do Amazon EC2 no cluster, no qual as tarefas serão 
inseridas. Será necessário usar um par de chaves para utilizar o SSH nas 
instâncias mais tarde, podendo manter a seleção padrão de nenhuma — não 
habilitado para SSH, selecionar um par de chaves existente ou criar um par no 
console do Amazon EC2. No security group, deixar o valor padrão. Selecionar 
o seu container instance IAM role. Depois disso, é só revisar e executar. 
TÓPICO 2 — CONTÊINER COMO SERVIÇO (CAAS)
189
FIGURA 16 – INICIANDO O AMAZON ECS
FONTE: O autor
Na tela seguinte deverá ser iniciado o serviço. 
190
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
FIGURA 17 – INICIANDO O AMAZON ECS
FONTE: O autor
Para abrir o sistema de exemplo, é só ir até a página do aplicativo web de 
exemplo (sample-webapp), clicar no nome do Load Balancer e copiar o DNS ou o 
endereço do Load Balancer e colar na URL do navegador. 
Pronto, depois disso seu ECS está rodando. Na Amazon é sempre 
aconselhável estar atento aos recursos que estão sendo escolhidos e excluir os 
recursos criados para não gerar nenhuma cobrança indesejada. CUIDADO! 
Sempre exclua todos os recursos que criou nos provedores após ter realizado 
seus estudos.
ATENCAO
TÓPICO 2 — CONTÊINER COMO SERVIÇO (CAAS)
191
6.2 GOOGLE CONTÊINER ENGINE (GKE) 
O Google oferece uma série de funcionalidades de computação em nuvem 
e oferece também o serviço de CaaS. 
FIGURA 18 – GOOGLE CLOUD
FONTE: <http://twixar.me/Ffbm>. Acesso em: 20 out. 2020.
O Google também integrou um serviço de contêiner hospedado 
com o Google Container Engine (GKE) na nuvem. O principal componente do 
serviço CaaS são as ferramentas de orquestração Kubernetes. 
FIGURA 19 – SITE GOOGLE KUBERNETS ENGINE
FONTE: <https://cloud.google.com/kubernetes-engine?hl=pt-br>. Acesso em: 20 out. 2020.
O GKE depende dos recursos do Google Compute Engine (GCE) e permite 
que os usuários executem aplicativos baseados em contêiner em clusters do 
Google Cloud Platform (GCP). No entanto, os usuários que têm GKE não estão 
limitados apenas à infraestrutura do Google Cloud: o sistema de federação de 
cluster do Kubernetes possibilita combinar diferentes recursos de cluster de 
computador em uma federação de computação lógica e, se necessário, criar 
ambientes híbridos de várias nuvens (IONOS, 2019). 
Cada cluster criado com o GKE consiste em um endpoint mestre 
do Kubernetes no qual o servidor da API do Kubernetes é executado e qualquer 
número de nós de trabalho que atendem às solicitações REST para os servidores 
da API, que oferecem suporte a contêineres Docker (IONOS, 2019). 
192
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
Enquanto o nó mestre monitora como os recursos são usados e o status 
do cluster, os aplicativos contidos são executados no nó de trabalho. Se um nó 
de trabalho falhar, o mestre distribui as tarefas necessárias para a operação do 
aplicativo para outros nós (IONOS, 2019). 
 O GKE também oferece suporte ao formato de contêiner Docker 
amplamente usado. Para fornecer imagens Docker, os usuários têm um registro 
de contêiner privado. Uma sintaxe baseada em JSON oferece a opção de defi nir 
serviços de contêiner como modelos (IONOS, 2019). 
 Semelhante ao ECS na AWS, o GKE é integrado diretamente à plataforma 
Google Cloud para que os usuários do contêiner tenham acesso a vários recursos 
da nuvem pública, além do intervalo de funções de orquestração (IONOS, 2019). 
 Google e Amazon têm planos diferentes em termos de preços de seus 
serviços CaaS. Um gerenciamento de contêiner para clusters com até cinco 
instâncias de mecanismo de computador (nós) está disponível para os usuários 
gratuitamente. 
Existem apenas custos para fornecer serviços em nuvem (CPU, memória 
etc.). Se os usuários desejam executar contêineres em clusters maiores (seis ou 
mais instâncias), o Google também cobra uma taxa de uso para o mecanismo de 
contêiner: o preço é por hora para um cluster (IONOS, 2019).
FIGURA 20 – PAINEL GOOGLE KUBERNETS ENGINE
FONTE: O autor
6.3 SERVIÇO DE CONTÊINER DO AZURE (ACS) 
A Microsoft possui na plataforma Azure um serviço de Contêineres. 
TÓPICO 2 — CONTÊINER COMO SERVIÇO (CAAS)
193
FIGURA 21 – MICROSOFT AZURE
FONTE: <https://ocaradoti.com.br/wp-content/uploads/2020/01/logo-transparente-Microsoft-
-Azure.png>. Acesso em: 20 out. 2020.
O Azure Container Service (ACS) é um ambiente de hospedagem 
preparado para a plataforma de computação em nuvem da Microsoft Azure,que 
permite aos usuários desenvolver aplicativos baseados em contêiner e implantá-
los em clusters de computador escalonáveis. 
O ACS depende de uma versão otimizada do Azure das ferramentas de 
contêiner carregadas na origem e permite a operação de contêineres Linux no 
formato Docker. Os contêineres do Windows são atualmente suportados apenas 
em uma versão de visualização (IONOS, 2019). 
O principal componente do serviço CaaS da Microsoft é o Azure 
Contêiner Engine, cujo código-fonte está disponível sob a licença de código aberto 
no GitHub. O Azure Container Engine atua como um gerador de modelos que cria 
modelos para o Azure Resource Manager (ARM). Eles podem ser gerenciados usando 
uma API com uma das seguintes ferramentas de orquestração: Docker Swarm, 
DC / OS e Kubernetes (IONOS, 2019). 
FIGURA 22 – SITE MICROSOFT AZURE CONTAINER SERVICES
FONTE: <https://azure.microsoft.com/pt-br/product-categories/containers/>. Acesso em: 20 
out. 2020.
194
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
A escolha do orquestrador depende principalmente dos recursos 
disponíveis para usuários ACS ao operar aplicativos de contenção na nuvem do 
Azure. 
FIGURA 23 – PAINEL MICROSOFT AZURE CONTAINER SERVICES
FONTE: O autor
A Microsoft Azure possui muitos recursos que podem agilizar o 
desenvolvimento de CaaS para o seu sistema de informação. 
195
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu que: 
• Os CaaS diferem das Platform as a Service (PaaS), pois dependem do uso de 
contêineres. 
• O objetivo de uma abordagem orientada a serviços para fornecer recursos 
de software é ajudar os usuários a se concentrarem completamente em seus 
negócios. 
• O CaaS fornece aos usuários o gerenciamento completo do “ciclo de vida” de 
um software.
• Os principais provedores de CaaS são a Amazon, a Microsoft e o Google.
196
1 (TRT-PE, 2018) Para organizar os diferentes tipos de serviço disponibilizados 
na nuvem, foram estabelecidas algumas categorias de serviços como o 
SaaS, IaaS, PaaS, CaaS, dentre outros. Qual dos itens a seguir é um exemplo 
de CaaS?
FONTE: <https://www.qconcursos.com/questoes-de-concursos/questoes/b11360d0-4f>. 
Acesso em: 20 out. 2020.
a) ( ) Google Docs. 
b) ( ) Amazon ECS. 
c) ( ) Amazon Beanstalk. 
d) ( ) Google App Engine. 
 
2 O Amazon Elastic Container Service (Amazon ECS) é um serviço gerenciado 
de orquestração de contêineres na nuvem da Amazon Web Services (AWS). 
Assinale a alternativa CORRETA que apresenta o nome da ferramenta 
que precisamos utilizar juntamente ao ECS no serviço da AWS. 
 
a) ( ) Elastic Compute Cloud. 
b) ( ) Elastic load balancing. 
c) ( ) Simple Storage Service. 
d) ( ) Elastic Beanstalk.
AUTOATIVIDADE
197
UNIDADE 3
1 INTRODUÇÃO
A evolução tecnológica vem auxiliando a humanidade em suas tarefas 
diárias, através das comodidades e proporcionando agilidade e entretenimento 
(ARMBRUST et al., 2009; CORRÊA; ARAUJO; MEDINA, 2016). No entanto, 
todos esses aplicativos possuem em comum um código-fonte independente da 
linguagem de programação ou plataforma usada. 
O surgimento da tecnologia e a necessidade de transmitir a informação de 
modo simultâneo exige o desenvolvimento de um sistema de transmissão ágil, 
e a plataforma em nuvem é um grande aliado neste processo (CAETANO, 2004; 
CORRÊA; ARAUJO; MEDINA, 2016). Desse modo, o processo de controle das 
versões (versionamento) e o deploy (disponibilização do aplicativo) em nuvem se 
tornou essencial no processo de desenvolvimento e disponibilização de sistema 
para usuário. 
Atualmente, existem sistemas de controle de versões que auxiliam na 
segurança e na qualidade do código-fonte. As empresas de software geralmente 
usam um sistema de controle de versão para controlar seus softwares. Com isso, 
rastreiam as alterações efetuadas. Agora, vamos conhecer os principais conceitos 
do controle de versão e detalhar os principais modelos presente no mercado. 
2 CONCEITOS DE VERSIONAMENTO
A gerência de configuração de software é responsável pelo controle da 
evolução de sistemas de software e ainda abrange técnicas de versionamento 
usadas em grandes projetos de desenvolvimento de software (CAETANO, 2004; 
DIAS, 2009; FARLEY; HUMBLE, 2014). As vantagens do gerenciamento de 
software são:
• Facilitar as mudanças.
• Controlar os produtos.
• Economizar o tempo no desenvolvimento.
• Facilitar a geração de versões diferenciadas.
• Manter o histórico do software.
• Facilitar a recuperação das versões anteriores. 
TÓPICO 3 — 
VERSIONAMENTO E DEPLOY EM NUVEM
198
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
Durante o processo de desenvolvimento é essencial que haja o 
gerenciamento de configuração, que conforme Farley e Humble (2014, p. 90) é 
definido como “a gerência de configuração se refere ao processo pelo qual todos 
os artefatos relevantes ao seu projeto e as relações entre eles são armazenados, 
recuperados, modificados e identificados de maneira única”. 
Em 1972, nos Estados Unidos, no laboratório Bell Labs, foi criado, por Marc. 
J. Rochkind, o primeiro sistema de controle de versões. Esse sistema foi chamado de 
Source Code Control System (SCCS) e foi o principal sistema de controle de versão. A sua 
contribuição foi a técnica de armazenamento interleaved deltas, que é considerada como 
precursora para o surgimento de técnicas de junção (HOFFMAN, 2002).
IMPORTANT
E
O controle de versão é definido como uma prática da Engenharia de 
Software, que atua no gerenciamento de distintas versões de um documento. 
Atualmente, há inúmeras equipes de trabalho atuando em diferentes locais 
ao mesmo tempo, então, nestes casos, o controle de versões é visualizado como 
uma extensão natural do processo de desenvolvimento colaborativo (HOFFMAN, 
2002; DIAS, 2009; FARLEY; HUMBLE, 2014). Entretanto, para garantir o controle 
do processo existem três métodos, conforme o Quadro 3. 
MÉTODO DESCRIÇÃO
BLOQUEIO Possibilita que a operação de entrega de um arquivo 
torne restrita ao usuário que efetuou o bloqueio 
(“admin”). Com isso, impedindo que outros usuários 
façam modificações deste mesmo arquivo ao 
repositório, enquanto ele estiver em alteração. 
BLOQUEIO FRACO Utilizado para observar um arquivo (“watch”), ou 
seja, o usuário que estiver vigiando o arquivo será 
comunicado quando o arquivo tiver alguma alteração. 
No entanto, quando outro usuário retirar o arquivo, ele 
será somente para leitura, evidenciado desta forma que 
o arquivo não pode ser alterado. Mas, caso ele deseje 
alterar o arquivo, poderá fazê-lo (“edit”).
SINCRONIZAÇÃO O método mais usado para aceitar alterações paralelas 
em um mesmo arquivo. É efetuada através de uma 
operação de atualização (“update”), que confirma se 
alguma outra atualização foi realizada ao repositório.
QUADRO 3 – TIPOS DE MÉTODOS
FONTE: Adaptado de Hoffman (2002)
TÓPICO 3 — VERSIONAMENTO E DEPLOY EM NUVEM
199
O controle de versões está ligado às técnicas e ferramentas usadas para 
controle da evolução de arquivos de computador, isso significa que concede 
a recuperação de dados históricos, semelhanças e diferenças entre versões, e 
ainda detalhes da evolução de algum conteúdo controlado (HOFFMAN, 2002; 
FARLEY; HUMBLE, 2014). Portanto, o controle de versões é uma ferramenta de 
gerenciamento de configuração de software que facilita as empresas a dominarem 
ou controlarem os problemas existentes nas equipes de desenvolvimento 
(FARLEY; HUMBLE, 2014). Então, para finalizar, o sistema de controle de versões 
engloba:
• Obtenção de uma cópia de um repositório remoto.
• Realização de alterações nos arquivos do repositório.
• Realização de um commit.
• Confirmação das alterações e inserção de uma mensagem.
• Envio de suas alterações de volta para o servidor remoto. 
Um modelo de versão determina os objetos a serem versionados, 
identificação da versão e organização, e ainda as operações para recuperação 
de versões atuais e a elaboração de novas versões (HOFFMAN, 2002; FARLEY; 
HUMBLE, 2014). Segundo Farleye Humble (2014), um controle de versão tem os 
seguintes objetivos:
• Guardar cada versão de cada arquivo garantindo o acesso a ele.
• Fornecer uma maneira de associar metadados.
• Permitir a colaboração de equipes distribuídas no tempo e no espaço. 
Agora, vamos compreender os principais conceitos do funcionamento do 
controle de versões (Quadro 4).
Commit (ou check-in) Criação de uma versão nova.
Check-out Recuperação de uma determinada versão do 
arquivo.
Repositório de versões Armazenamento de todas as versões dos arquivos 
sob controle de versões.
Repositório de versões 
centralizados
Cada área de trabalho local contém apenas 
uma versão específica da árvore de versões do 
repositório central e todos os usuários realizam 
as operações de controle de versões no repositório 
central.
QUADRO 4 – CONCEITOS PRINCIPAIS
200
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
Repositório de versões 
distribuídos
Cada área local possui um repositório acoplado, de 
forma que o usuário tem um repositório próprio 
para realizar o controle de versões. As operações 
realizadas a respeito dos arquivos são feitas no 
repositório local do usuário, e operações específi cas 
dos repositórios distribuídos são utilizadas para 
sincronizar repositórios diferentes.
Árvore de revisões ou de 
versões
Estrutura lógica que mapeia todas as versões 
armazenadas no repositório para determinado 
arquivo ou conjunto de arquivos.
FONTE: Adaptado de Junqueira (2007)
Os sistemas de controle de versão podem ser divididos em dois modelos, 
sendo o modelo centralizado e o modelo distribuído (HOFFMAN, 2002; 
JUNQUEIRA, 2007; FARLEY; HUMBLE, 2014). Agora, vamos descrever estes 
dois modelos.
No modelo centralizado há somente um repositório central e muitas cópias 
de trabalho (Figura 24). Isso signifi ca que existe um servidor central responsável 
pelo versionamento, sendo, deste servidor, que os outros computadores acessarão 
os arquivos e suas versões (JUNQUEIRA, 2007; FREITAS, 2010). Nesse sentido, as 
operações de commit e update são responsáveis por consolidar as modifi cações e 
atualização da cópia local que estão entre o cliente e o servidor (FREITAS, 2010). 
FONTE: Adaptado de Dias (2009)
FIGURA 24 – MODELO VERSÃO CENTRALIZADO
TÓPICO 3 — VERSIONAMENTO E DEPLOY EM NUVEM
201
O Subversion é um sistema de controle de versão centralizado, tanto o cliente 
como o servidor trabalham com os principais sistemas operacionais: Unix, Windows e Mac 
OS X, e sua portabilidade se deve ao subversion abstrair todas as diferenças entre os Sistemas 
operacionais para que sua utilização seja homogênea em todos eles (JUNQUEIRA, 2007).
NOTA
No modelo de versão distribuído (ou descentralizado), há inúmeros 
repositórios autônomos e independentes, sendo um para cada colaborador, e 
cada um desses repositórios tem uma área de trabalho conectada a ele (Figura 
25) (JUNQUEIRA, 2007; FREITAS, 2010). No modelo distribuído as operações de 
“commit” e “update” ocorrem de maneira local. Esse modelo é considerado mais 
avançado, sendo recomendado para grandes equipes e projetos de grande porte 
(JUNQUEIRA, 2007; DIAS, 2009; FREITAS, 2010). As vantagens desse sistema são:
• Facilitar o compartilhamento de dados e dispositivos.
• Melhorar e facilitar a comunicação das equipes.
• Melhora na distribuição de tarefas.
Entretanto, como desvantagens têm o alto custo devido à melhoria da 
rede e proteção de dados sigilosos. 
FONTE: <https://blog.pronus.io/images/controle_versao/conceitos_basicos/repositorio_desen-
volvedor.png>. Acesso em: 20 out. 2020.
FIGURA 25 – SISTEMA DE CONTROLE DISTRIBUÍDO
https://blog.pronus.io/images/controle_versao/conceitos_basicos/repositorio_desenvolvedor.png
https://blog.pronus.io/images/controle_versao/conceitos_basicos/repositorio_desenvolvedor.png
202
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
Os modelos distribuídos são adotados para o desenvolvimento do kernel 
do sistema operacional Linux, projeto Mozilla e os sistemas GIT. Os sistemas de 
controle de versão Bazaar e o Mercurial também são exemplos de sistemas de 
controle de versão distribuídos (JUNQUEIRA, 2007; DIAS, 2009; FREITAS, 2010; 
MORAES, 2013). 
O sistema de controle de versão distribuído GIT possui como características: 
velocidade, simples design, suporte robusto a desenvolvimento não linear e capacidade de 
lidar de maneira eficiente com grandes projetos como o kernel do Linux (MORAES, 2013).
IMPORTANT
E
2.1 O SISTEMA DISTRIBUÍDO GIT
O GIT é considerado um software livre open source que utiliza a linguagem 
C, Shell Script e Perl, sendo distribuído sob a licença GNU GPLv2. Portanto, o 
GIT é definido como um sistema de controle de versão distribuído tendo como 
características: velocidade, simples design, suporte robusto e capacidade de 
atuar de modo eficiente com projetos de grande porte (exemplo: kernel do Linux) 
(JUNQUEIRA, 2007; DIAS, 2009; FREITAS, 2010; MORAES, 2013).
O modo distribuído do GIT possibilita maior flexibilidade no modo como 
os desenvolvedores colaboram em projetos. Desse modo, cada desenvolvedor 
contribui para outros repositórios, e ainda pode ter um repositório público 
para que outros desenvolvedores possam se basear em seu trabalho e com a 
possibilidade de contribuir com informações (JUNQUEIRA, 2007; DIAS, 2009; 
FREITAS, 2010; MORAES, 2013; CORRÊA; ARAUJO; MEDINA, 2016).
Portanto, a utilização do GIT possibilita um fluxo de trabalho para equipes 
com perfil colaborativo. O GIT pode ainda ser usado para registrar o histórico de 
edições de vários tipos de arquivo, isso significa que cada alteração no arquivo 
estará registrada e ainda será possível identificar o autor da alteração. Portanto, 
o GIT auxilia na resolução de problemas independentemente da quantidade 
de envolvidos no processo, já que é considerado um sistema inteligente sendo 
responsável em notificar e unir as informações adicionadas do arquivo (FREITAS, 
2010; MORAES, 2013; CORRÊA; ARAUJO; MEDINA, 2016).
A realização do controle dessas permissões ocorre através do protocolo 
ssh, que permite a criação de chaves para controle da autenticação ou por 
meio do protocolo HTTP, que define as permissões de escrita e leitura para 
cada arquivo ou diretório (CORRÊA; ARAUJO; MEDINA, 2016). Um ponto 
importante é que no GIT a operação de commit é atômica, ou sejam quando uma 
TÓPICO 3 — VERSIONAMENTO E DEPLOY EM NUVEM
203
operação é interrompida, ela é desprezada e o repositório não mantem em um 
estado inconsistente (MOTAHARI-NEZHAD; STEPHENSON; SINGHAL, 2009; 
MORAES, 2013).
Uma outra característica importante do GIT é a sua capacidade de garantir 
a ordem impedindo problemas para os desenvolvedores. Desse modo, no GIT 
existe a possibilidade de elaborar muitos snapshots do projeto. Isso signifi ca que 
a cada ação de salvar o projeto ( “commit”), é como se fosse tirado uma foto 
(snapshots) dos seus arquivos naquele momento e ainda, armazenasse uma 
referência para essa captura (JUNQUEIRA, 2007; DIAS, 2009; FREITAS, 2010; 
MORAES, 2013; CORRÊA; ARAUJO; MEDINA, 2016). Entretanto, se nenhum 
arquivo foi modifi cado, a informação não será armazenada (Figura 26). 
FONTE: Palestino (2015, p. 43)
FIGURA 26 – TRATAMENTO DOS DADOS GIT
As principais seções de um projeto GIT são (Figura 27):
• diretório do GIT (GIT directory, repository);
• diretório de trabalho (working directory);
• área de preparação (staging area). 
De modo resumido, o workfl ow do GIT é do seguinte modo (PALESTINO, 
2015):
• Modifi car os arquivos em um diretório de trabalho. 
• Selecionar os arquivos, adicionando snapshots deles para uma área de preparação. 
• Commit que leva os arquivos, como eles estão, na área de preparação e os armazena 
permanentemente no diretório GIT.
ATENCAO
204
UNIDADE 3 — CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO
FONTE: Palestino (2015, p. 44)
FIGURA 27– SEÇÕES PRINCIPAIS DE UM PROJETO GIT
De acordo com Palestino (2015), os principais comandos do GIT estão 
atrelados ao seu fl uxo básico de trabalho que pode

Mais conteúdos dessa disciplina