Você está na página 1de 3

Revisão

Infraestrutura para Sistemas de Software: Redes e Nuvem


Nesta revisão abordaremos os principais tópicos relativos ao conteúdo da disciplina
Infraestrutura para Sistemas de Software: Redes e Nuvem, para cada semana de
aula que foi ministrada. Esta revisão deve ser utilizada para ser um guia para ajudá-
lo(a) a rever os principais assuntos discutidos na disciplina. Espera-se que você tenha
realizado as leituras dos textos-base sugeridos, feito as atividades propostas no
decorrer de cada aula, bem como, sempre que possível, tenha assistido aos vídeos de
apoio e colocado em prática os conceitos aprendidos com o material prático
disponibilizado semanalmente. Com os guias práticos, creio que você, ainda que pela
primeira vez, tenha colocado em prática diversos conceitos acerca da instalação,
configuração e desenvolvimento de códigos utilizando uma infraestrutura
computacional, seja ela local ou em grandes nuvens, como a Google Cloud, Azure e
AWS. O sucesso na avaliação final da disciplina está relacionado ao seu
comprometimento em estudar o conteúdo organizado semanalmente.
Na primeira semana o objetivo foi apresentar as bases da infraestrutura computacional
necessária para que clientes, servidores, aplicações e usuários possam utilizar
recursos computacionais como serviços usando a WWW e a Internet. Nesse caso,
fizemos uma revisão das redes de computadores, tipos, protocolos, e como a
comunicação de dados, ainda que tenha toda a complexidade abstraída, é fundamental
para e economia mundial, pois dela dependemos para usarmos bancos on-line, acessar
lojas na Web e aprender os mais variados assuntos utilizando de ferramentas on-line
de ensino.
Na segunda semana, apresentamos os elementos que fazem parte de uma
infraestrutura computacional e como eles variam em relação a tipos de hardware,
elementos de armazenamento de dados, segurança física e lógica, filtros de pacotes,
autenticação e consumo de dados por meio de protocolos padronizados da WWW.
Conhecemos um pouco sobre servidores Web, firewalls e proxies, bem como alguns
mecanismos para autenticação de usuários. Vimos também que todos esses
componentes também fazem parte de grandes infraestruturas de data centers.
Na terceira semana discutimos sobre o fornecimento de serviços de computação,
incluindo servidores, armazenamento, bancos de dados, rede, software, análise e
inteligência pela Internet, com o intuito de oferecer inovações mais rápidas, recursos
flexíveis e economias de escala. Aprendemos que a importância da computação em
nuvem para as empresas está na agilidade e na praticidade que ela confere, com
vantagens como redução de custos, pois há menos gasto com hardware e mão de obra
para instalar e manter softwares e servidores. Vimos também que a infraestrutura
interconectada pode melhorar a estabilidade dos negócios e acelerar o processo de
transformação digital para se tornar flexível e escalável. Reconhecemos os conceitos e
características da computação em nuvem, os modelos de serviço, atores, exemplos de
provedores e modelos de implantação e as principais ferramentas/middlewares para
IaaS, SaaS e PaaS no contexto atual e suas características.
Na quarta semana, o assunto proposto foi a virtualização, tecnologia que permite que
diversas aplicações e sistemas operacionais sejam processados em uma mesma
máquina (hardware). Além disso, ela permite, de forma eficiente, acessar recursos
utilizando o máximo que o hardware disponibiliza. Destacamos também os ambientes
especializados para hospedagem de recursos computacionais e identificamos algumas
tecnologias de virtualização, as quais permitem abstrair um conjunto de recursos (por
exemplo, computacionais ou de comunicação). Compreendemos, também,
fundamentos, tipos e capacidades da virtualização, e abordamos as diferenças entre
emulação e virtualização, além de conceitos básicos sobre contêineres.
As máquinas virtuais e hipervisores abstraem o hardware e permitem que você
execute sistemas operacionais. Contêineres (tecnicamente mecanismos de contêiner)
abstraem os sistemas operacionais e permitem que você execute aplicações.
Agora que estabelecemos o que são as máquinas virtuais, podemos mergulhar nos
benefícios. Em um alto nível, os principais benefícios da virtualização (em relação à
execução em bare metal, ou seja, direta no hardware) são:
• Uso mais eficiente de hardware. Ser capaz de virtualizar servidores significa
ser capaz de executar mais sistemas operacionais em seu hardware. Isso leva
à eficiência em tudo, desde a manutenção até os custos de energia e espaço no
data center até o resfriamento. Em grande escala, as eficiências da virtualização
ajudaram a contribuir para as economias de escala associadas à nuvem.
• Gerenciamento e provisionamento mais fáceis e rápidos. É muito mais fácil
e rápido ativar e desativar servidores virtuais do que provisionar novo hardware.
Criar backups instantâneos de servidor também é muito mais simples.
• Recuperação de desastres aprimorada. Como é fácil criar backups e
recuperar imagens instantâneas, a recuperação de desastres é mais fácil e
rápida.
• Teste simplificado. Testar em produção não é uma boa ideia. Dedicar um
servidor para teste não é muito eficiente se você tiver que testar muitos sistemas
operacionais diferentes. Com as VMs, você pode executar um sistema
operacional isolado logicamente que permite fazer testes com mais liberdade.
Os contêineres cresceram em popularidade porque eles habilitam as metodologias de
DevOps. As principais vantagens dos contêineres (em relação às VMs) incluem:
• Os contêineres são leves. Eles usam apenas os binários e as bibliotecas de
que precisam. Isso significa que eles inicializam significativamente mais rápido
do que as VMs. Nas aplicações Web, o tempo de inicialização em segundos
versus o tempo de inicialização em minutos pode fazer uma grande diferença.
Ser mais leve também significa menos hardware e menos sistemas operacionais
necessários.
• Os recipientes são portáteis. Em qualquer lugar em que você possa executar
um mecanismo de contêiner, você pode executar um contêiner. Isso significa que
as discussões sobre um ambiente ser a causa de um problema com uma
aplicação devem ser reduzidas. Se ela foi executada para desenvolvimento no
contêiner, ela deve ser executada para controle de qualidade e na produção.
• Os contêineres permitem microsserviços. Resumindo, microsserviços são
pequenos serviços que se comunicam entre si para criar uma aplicação ou
serviço maior. Ao desacoplar, o teste de microsserviços individuais se torna mais
fácil, pontos únicos de falha são reduzidos e a velocidade de desenvolvimento é
aumentada.
Na quinta semana aprendemos o que é uma Service Oriented Architectures (SOA),
isto é, um conceito de arquitetura que busca disponibilizar as funcionalidades de um
sistema como um serviço, de tal forma que essas funcionalidades podem ser
compartilhadas e reutilizadas entre aplicações. Aprendemos que as soluções baseadas
em SOA possuem uma arquitetura baseada em padrões para a criação de uma
infraestrutura de tecnologia com o objetivo de simplificar as relações entre diferentes
sistemas, o que permite que estes possam ser aperfeiçoados e novos elementos
possam ser incorporados. Discutimos também as vantagens e desvantagens,
semelhanças e diferenças entre SOA e REST.
Na sexta semana o assunto foi a arquitetura de microsserviços e como ela é utilizada
para desenvolver uma aplicação, como um conjunto de pequenos serviços.
Aprendemos que cada serviço é desenvolvido em torno de um conjunto de regras de
negócio específicas, sendo implementado de forma independente. Entendemos o
funcionamento da arquitetura de microsserviços e o ambiente operacional para
executar os pacotes de software em contêineres, bem como um conjunto de produtos
de plataforma como serviço que utiliza virtualização no nível do sistema operacional,
ou seja, os dockers.
Para finalizar, na última semana do curso discutimos sobre os principais provedores
de serviços em nuvem: AWS, Microsoft Azure e Google Cloud Platform. Entendemos
que eles oferecem serviços de infraestrutura de TI para empresas por meio da Internet
e apresentam como vantagem inicial a redução de gastos com infraestrutura, além de
permitir escolher serviços, como selecionar um sistema operacional, a linguagem de
programação, a plataforma de aplicativos da Web, banco de dados etc. Organizamos a
aplicação desenvolvida nas semanas anteriores e implantamos nossa imagem com
Ubuntu em um contêiner docker nas nuvens discutidas anteriormente.
De modo geral, uma sugestão para você é revisar as Atividades Avaliativas, bem como
os textos-base, códigos disponibilizados, vídeos e ferramentas que foram solicitadas
que você interagisse durante as semanas. Tais materiais contêm informações
importantes cujo entendimento é primordial e que podem aparecer na prova.
Como docente responsável pela disciplina, espero que os assuntos tratados possam
complementar a sua formação profissional e que você tenha sucesso no decorrer da
sua carreira, que está apenas começando. Acredite na educação, pois todo o esforço
que teve para aprender o conteúdo disponibilizado nesta importante disciplina muito em
breve lhe trará benefícios profissionais.
Desejo sucesso e uma boa prova!

Prof. Dr. Júlio Cézar Estrella

Você também pode gostar