Tópicos em Computação II
Computação em Nuvem
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL
Curso de Ciência da Computação
Ementa
● 1) Introdução
● 1.1) Introdução a Computação em Nuvem ● 1.2) Introdução a Datacenter e Virtualização
● 1.3) Introdução a Service Oriented Archictecture (SOA) ● 2) Princípios da Computação em Nuvem
● 3) Modelos de Negócios das Nuvens ● 3.1) IaaS
● 3.2) PaaS ● 3.3) SaaS
● 3.4) Papéis e Cenários das Nuvens ● 4) Provedores de Nuvens
● 4.1) Amazon ● 4.2) Google
● 4.3) Azure e Outros
● 5) Tecnologia de Computação em Nuvem ● 5.1) Hardware e Infraestrutura
● 5.2) Acesso à Nuvem
● 5.3) Armazenamento da Computação em Nuvem ● 6) Problemas e Segurança de Nuvem
2
Introdução
• A Computação em Nuvem está em toda parte;
• Atualmente presente em várias revistas de tecnologia ou blogs;
• Várias opiniões a respeito do conceito da Computação em Nuvem.
Visão Geral da Computação em Nuvem
• A Computação em Nuvem é uma metáfora da Internet;
• A Internet é representada em diagramas de rede como uma nuvem;
• O ícone representa o “tudo isso e muito mais”. É como o “etc”. 4
Visão Geral da Computação em Nuvem
• A função da Computação em Nuvem é cortar custos operacionais;
• Permitir que os departamentos de TI se concentrem em projetos estratégicos em vez de
Como Funciona a Nuvem
• A ideia é permitir a utilização das mais variadas aplicações via Internet, em qualquer lugar e independente de plataforma, sem precisar instalar em seu computador;
• A empresa hospeda sua aplicação (ou conjunto de aplicativos); • Minimiza custos com servidores, atualização de software;
• Não precisa comprar equipamento (servidores, datacenters); • Simplesmente conectar e utilizar seus aplicativos em qualquer
lugar.
6
Componentes e Infraestrutura
• Componentes:
• Clientes;
• Infraestrutura:
Componentes da Nuvem
• Clientes:
• Em uma arquitetura de Computação em Nuvem, simplesmente os
computadores que estão em sua mesa (antiga rede local);
• Dispositivos que os usuários finais interagem para gerenciar sua
informação na nuvem.
• Datacenter:
• É um conjunto de servidores onde o aplicativo é armazenado.
• Servidores Distribuídos
• Diversos servidores distribuídos em diferentes posições
geográficas;
• Maior flexibilidade e segurança. 8
Componentes e Infraestrutura
• Componentes:
• Clientes;
• Infraestrutura:
Infraestrutura da Nuvem
• Computação em Grade:
• Aplica os recursos de vários computadores em uma rede de
trabalho em um único problema ao mesmo tempo.
• Necessita do uso de software que pode se dividir e então enviar
partes do programa aos milhares de computadores;
• Maneira eficaz de utilizar a determinada quantidade de recursos
do computador;
• Maneira de resolver os problemas que necessitam de uma
quantidade enorme de potência do computador;
• Os recursos de diversos computadores podem ser
compartilhados cooperativamente, sem um computador controlando o outro.
10
Infraestrutura da Nuvem
• Virtualização
• É a tecnologia central de um Datacenter e essencialmente
transforma, obedecidas certas condições, um servidor físico em vários servidores virtuais;
• Os servidores virtuais criados com a Virtualização oferecem um
ambiente similar ao de um servidor físico e otimizam o uso de recursos, tornando as aplicações independentes do hardware.
• Serviços
• Na Computação em Nuvem, é o conceito de poder utilizar
componentes reutilizáveis, através da rede de vendas. Isto é conhecido como “as a service”.
Componentes e Infraestrutura
12 Dourados – MS - 30/06/15 • Componentes: • Clientes; • Datacenter; • Servidores distribuídos. • Infraestrutura: • Computação em Grade; • Virtualização; • Serviços.Datacenter
• É um conjunto integrado de componentes de alta tecnologia que permitem fornecer serviços de infraestrutura de TI de valor agregado;
• Processamento e armazenamento de dados em larga escala, para qualquer tipo de organização;
Datacenter
• É o elemento central de uma infraestrutura de TI;
• São alimentados por energia (utilities), possuem instalações (facilities) e servem a carga de TI;
• Em um projeto de DATACENTER a carga de TI define as instalações e a energia necessária.
14 Dourados – MS - 30/06/15 Energia Gerenciamento Instalações Refrigeração Carga de TI
Datacenter
• Principais serviços do Datacenter:
Serviços do Datacenter Rede Segurança Armazena mento Virtualizaç ão Automação e Gerenciamen to Aplicação Processa mento Alta Disponib e Rec de Desastres
Serviços Datacenter
• Serviços de Rede: envolvem a conexão entre os componentes internos e deles com o mundo exterior. As conexões são feitas mediante a arbitragem dos switches. Os switches são dispositivos importantes de um projeto de conectividade IP e são utilizados em várias camadas para definir a hierarquia do DATACENTER;
• Serviços de Segurança: envolvem os serviços de firewall, que permitem o controle da navegação do usuário, negando acesso a aplicações e sites desnecessários, além de incorporar um sistema que permite aos gestores monitorar as atividades de cada usuário.
16
Serviços Datacenter
• Serviços de Processamento: respondem diretamente pelo desempenho do DATACENTER. Os dispositivos envolvidos são os servidores, sistemas operacionais e processadores;
• Serviços de Armazenamento: envolvem o armazenamento de
dados em unidades de storage. Redes de armazenamento e dispositivos de conexão ao storage são partes importantes da arquitetura. Os níveis de disponibilidade e segurança são dependentes deste serviço.
Serviços Datacenter
18
Serviços Datacenter
• Serviços de Virtualização: permitem que os servidores físicos rodem
diversas aplicações em diferentes sistemas operacionais, otimizando a utilização dos recursos de processamento e memória;
• Serviços de Aplicação: envolvem load-balancing, secure socket layer (SSL),
offloading e caching.
• load-balancing: (balanceamento de carga) é uma técnica para distribuir a carga de
trabalho uniformemente entre dois ou mais computadores, enlaces de rede, UCPs, discos rígidos ou outros recursos, a fim de otimizar a utilização de recursos, maximizar o desempenho, minimizar o tempo de resposta e evitar sobrecarga;
• secure socket layer (SSL): padrão global em tecnologia de segurança desenvolvida
pela Netscape em 1994. Ele cria um canal criptografado entre um servidor web e um navegador (browser) para garantir que todos os dados transmitidos sejam sigilosos e seguros;
• offloading: "descarregar" em tecnologia da informação e ciência da computação
Serviços Datacenter
• Serviços de Alta Disponibilidade (High Availability - HA) e Recuperação a Desastres (Disaster Recovery –DR): tratam dos serviços para obtenção da alta disponibilidade e recuperação a desastres, seleção do site de contingência, interconectividade. Tratam também de políticas, software e dispositivos de backup restore e da replicação;
• Serviços de Automação e Gerenciamento: envolvem toda a malha de gerenciamento incluindo o NOC (networking operation center), desde o hardware até os aspectos de automação de patches (correções) de SO. O gerenciamento deve possibilitar uma operação assistida 24x7 e executada até remotamente.
• 24x7 (vinte e quatro horas, sete dias por semana)
20
Serviços Datacenter
• Os serviços do Datacenter e os de infraestrutura de TI se baseiam geralmente no ITIL;
• Os serviços do Datacenter são interdependentes e devem ser implementados de forma integrada para possibilitar o atingimento do SLA (Service Level Agreement) entregue à aplicação;
• O projeto de um Datacenter deve considerar todos estes serviços de forma a obter os níveis de serviço necessários às aplicações e consequentemente ao negócio.
• SLA: documento formal, negociado entre as partes, na contratação de um serviço de TI. Pode cobrir itens como qualidade do serviço, critérios de cobrança, provisionamento, processo de atendimento e
Serviços Datacenter
• O nível de serviço percebido pelo usuário do processo depende do nível de serviço da aplicação, que, por usa vez, depende do nível de infraestrutura, onde os serviços do Datacenter estão incluídos.
22
Tier Datacenter
• Enxergar a montagem de um Datacenter como um LEGO; • Pequenas partes ou blocos padronizados;
• A norma TIA-942 (Telecomunications Infrastructure for Datacenters), de 2005, define um padrão de classificação para aspectos básicos do Datacenter:
• Layout e espaço físico;
• Infraestrutura de cabeamento; • Condições ambientais;
Tier Datacenter
• A topologia básica de um Datacenter pode ser descrita de várias formas. A descrição baseada no TIA-942 é uma espécie de padrão;
Tier Datacenter
26
Dourados – MS - 30/06/15
Main Distribution Area (MDA): Área onde se encontra a conexão central do Datacenter e de onde se distribui o cabeamento estruturado. Inclui roteadores e o backbone;
Tier Datacenter
28
Dourados – MS - 30/06/15
Zone Distribution Area (ZDA): Ponto de interconexão opcional do cabeamento horizontal. Provê flexibilidade para o Datacenter. Fica entre o HDA e o EDA;
Tier Datacenter
30
Tier Datacenter
• A Norma TIA-942 define a classificação dos Datacenters em quatro níveis independentes, chamados de TIERS (camadas), considerando Arquitetura, Telecomunicações, Aspectos Elétricos e Mecânicos.
TIER 3
TIER 2
TIER 1
TIER 4
Tier Datacenter
• TIER 1: Básico, neste modelo não existe redundância nas rotas físicas e lógicas. Prevê a distribuição de energia elétrica para atender a carga sem redundância.
• TIER 2: Componentes Redundantes: os equipamentos de telecomunicações do Datacenter e da operadora de Telecomunicações e dispositivos de LAN-SAN devem ter módulos de energia redundantes. NO-BREAK redundantes. Sistema de gerador elétrico para suprir toda a carga. Sistema de ar com operação contínua.
32
Tier Datacenter
• TIER 3: Sistema Autossustentado. Deve ser atendido por, no mínimo 2 operadores de telecomunicações com cabeamentos distintos. 2 salas de entrada (ER) com, no mínimo 20m de separação. Não podem compartilhar equipamentos de telecomunicações. Caminhos redundantes entre as salas de ER, MDA e HDA. Solução de redundância para elementos ativos críticos, como o Storage.
• TIER 4: Sem Tolerância a Falhas. Todo cabeamento redundante. Dispositivos redundantes e alimentação de energia redundante. Comutação automática para dispositivos de backup. MDA secundárias em zonas de proteção contra incêndio. Disponibilidade elétrica. O prédio deve ter 2 alimentações de energia de empresas públicas de diferentes subestações. Sistema com múltiplas unidades de ar condicionado.
Tier Datacenter
34
Datacenter
36
Datacenter
38
Virtualização
40
Virtualização – Conceitos Centrais
• A virtualização é a tecnologia central de um Datacenter e essencialmente transforma, obedecidas certas condições, um servidor físico em vários servidores virtuais;
• Benefícios da virtualização nas grandes corporações:
• TI se tornou mais eficiente;
• A organização passou a ter um Time-to-Market mais adequado; • Os serviços de TI se tornaram mais previsíveis.
• Time-to-Market: Indicador chave de desempenho. Tempo de
Virtualização – Conceitos Centrais
42
Dourados – MS - 30/06/15
• Os servidores virtuais criados com a virtualização oferecem um ambiente similar ao de um servidor físico e otimizam o uso de recursos, tornando as aplicações independentes do
Virtualização – Conceitos Centrais
• Pode ser conceituada de duas principais formas:
• É o particionamento de um servidor físico em vários servidores
lógicos;
• É uma camada de abstração entre o hardware e o software que
protege o acesso direto do software aos recursos físicos do hardware. Ela permite que a camada de software (aplicações e SO) seja isolada da camada de hardware.
Virtualização – Conceitos Centrais
44
Dourados – MS - 30/06/15
• A Virtualização simplifica o gerenciamento e permite flexibilizar e ampliar o poder de processamento;
• Funcionalidades contidas nos softwares de virtualização também permitem melhorar a disponibilidade e a recuperação de desastras de ambiente de TI;
• A camada de Virtualização entrega para o SO convidado um conjunto de instruções de máquina equivalente ao processador físico;
• A camada de Virtualização de servidores é mais conhecida como HYPERVISOR ou MONITOR DE MÁQUINA VIRTUAL (Virtual Machine Monitor - VMM).
Virtualização – Conceitos Centrais
46
Dourados – MS - 30/06/15
• O servidor físico virtualizado pode então rodar vários servidores virtuais chamados de máquinas virtuais (Virtual
Machines - VMs);
• Com a Virtualização, diversas VMs podem coexistir no mesmo servidor físico.
Virtualização – Workload e Throughput
• O WORKLOAD e o THROUGHPUT são as unidades básicas utilizadas quanto o dimensionamento da infraestrutura virtualizada;
• WORKLOAD (carga de trabalho): constitui-se dos dados a serem processados e as instruções a serem executadas sobre estes dados e define a qualidade de serviço percebida pelo usuário na ponta;
• É definido pela demanda da aplicação (muitas vezes a demanda do
banco de dados gerencial, o SGDB)
• THROUGHPUT (taxa de transferência): define a capacidade do hardware/software para processar dados;
• É composto de velocidade de I/O, velocidade de CPU, capacidades de
Virtualização – Máquina Virtual
48
Dourados – MS - 30/06/15
• Uma maquina virtual é um CONTAINER de software isolado capaz de executar sistemas operacionais e aplicações próprias como se fosse um servidor físico.
Técnicas de Virtualização
Virtualização Total
Paravirtualização
Técnicas de Virtualização
50
Dourados – MS - 30/06/15
Virtualização Total
• Realiza a completa abstração do sistema físico e cria um sistema virtual completo. Facilita a migração de VMs entre servidores físicos, pois existe total independência das aplicações e dos recursos físicos do servidor;
• O SO convidado é completamente abstraído e isolado do
hardware e não precisa ser modificado para rodar sobre o
Técnicas de Virtualização
Virtualização Total
AP 1 AP N SO Original VM 1 AP 1 AP N SO2 Original VM 2 AP 1 AP N SO3 Original VM N HYPERVISOR SERVIDOR FÍSICOTécnicas de Virtualização
52
Dourados – MS - 30/06/15
Virtualização Total - Inconvenientes
• As instruções por não serem modificadas, precisam ser testadas pelo Hypervisor para saber se são sensíveis ou não. As instruções sensíveis devem ser interceptadas e emuladas no sistema nativo, para evitar que a VM altere o comportamento do sistema;
• A VM possui suporte de conjunto genérico de dispositivos devido à diversidade de dispositivos existentes. Pode-se ter subutilização de recursos quando comparado ao hardware real. Os dispositivos são genéricos e, portanto, perdem o desempenho;
• Existem alguns problemas técnicos relativos à implementação da gerência de memória.
Técnicas de Virtualização
Paravirtualização
• Surgiu como forma de contornar as desvantagens do uso da Virtualização Total, no que diz respeito ao processamento;
• A VM enxerga uma abstração do hardware que não é idêntico ao hardware físico;
• Os dispositivos são acessados por drivers de dispositivo do próprio Hypervisor, o que é interessante, por otimiza o desempenho;
• O Xen Open Source é um exemplo de sistema baseado na Paravirtualização que virtualiza o processador e a memória, usando o núcleo modificado do Linux e virtualizando o I/O
Técnicas de Virtualização
54 Dourados – MS - 30/06/15Paravirtualização
AP 1 AP N SO Modificado VM 1 AP 1 AP N SO2 Modificado VM 2 AP 1 AP N SO3 Modificado VM N HYPERVISOR SERVIDOR FÍSICOTécnicas de Virtualização
Virtualização Assistida por Hardware
• Muitos Hypervisores permitem a Virtualização Assistida por
Hardware, que nada mais é do que disponibilizar algum
recurso físico diretamente para a utilização da máquina virtual, como a placa de vídeo, placa de rede, etc;
• Os fabricantes da Intel e da AMD investiram em extensões na arquitetura x86 para suportar a Virtualização e melhorar o desempenho;
• Ela muda o próprio acesso ao SO. Os SO x86 são projetados para terem acesso direto aos recursos do sistema durante a
Virtualização – Benefícios
56
Dourados – MS - 30/06/15
• Redução de espaço físico;
• TI verde (redução no consumo de energia);
• Isolamento dos ambientes de testes, desenvolvimento e
produção;
• Flexibilidade na criação de novas máquinas virtuais; • Gerenciamento centralizado;
Virtualização – Principais Fornecedores
• Os principais fornecedores de software de virtualização para servidores empresariais são:
• Vmware: Vmware ESXi, ESX e Vmware vShhere;
• Microsoft: Hyper-V, Microsoft Windows Server com Hyper-V;
• Citrix: Xen Server, Citrix Essentials for Hyper-V e Citrix for Xen
Server.
• Existem outros fornecedores como Red Hat, Oracle, Novell, etc.
Virtualização – Limitações
58
Dourados – MS - 30/06/15
• Aplicativos de carga excessiva: aplicativos de carga excessiva, incluindo SGDBs, podem ser um fator limitante. Considerando que sempre existe uma perda de desempenho introduzida pelo Hyervisor, se uma AP ou SGDB já demanda boa parte dos recursos do servidor;
• Gerenciamento de licenciamento: o gerenciamento do licenciamento pode ser um fator limitante. É necessário saber exatamente a regra para cada aplicação e isto é feito de maneira diferente pelos diverso fabricantes. Em uma determinada situação de carga, o licenciamento é válido, em outro fabricante, pode não ser;
Virtualização – Limitações
• Falta de profissional especializado: como a Virtualização é relativamente nova, ainda existem poucos profissionais experientes que dominem a técnica e as opções comerciais disponíveis. Este aspecto deve ser considerado quando da escolha do software de Virtualização.
Service Oriented Archictecture
(SOA)
60
Service Oriented Archictecture (SOA)
• Com o surgimento da Internet, as empresas estão tentando, cada dia mais, disponibilizar seus negócios aos clientes através da rede;
• Nos últimos anos, houve um imenso crescimento desse novo paradigma e, um pesado investimento para atingi-lo;
• Uma das estratégias adotadas pelo setor de TI para auxiliar as companhias no seu crescimento é a decomposição dos sistemas em serviços e sua utilização para viabilizar a integração dos diferentes softwares isolados desenvolvidos no início da computação;
SOA
62
SOA - Introdução
• Service Oriented Architecture (SOA) é uma série de princípios e metodologias para o projeto e desenvolvimento de software na forma de serviços interoperáveis;
• Entre os principais benefícios do uso de SOA, temos:
• (i) encapsular a complexidade tecnológica de integrações entre as
mais diferentes plataformas da organização;
• (ii) permitir que a equipe de TI desenvolva serviços em
alinhamento às expectativas dos negócios;
• (iii) oferecer uma melhor produtividade, tanto para a área de
negócios como para a área de TI;
• (iv) segurança e controle de Service Level Agreement (SLA), e
SOA - Conceitos
64
Dourados – MS - 30/06/15
• SOA possui as seguintes definições, de acordo com grandes nomes existentes
no mercado:
• “SOA é uma arquitetura para construção de aplicações de negócio a partir de um conjunto de serviços com baixo acoplamento armazenados em uma 'caixa preta' e orquestrados de forma a entregar resultados alinhados com os objetivos de negócio de uma empresa.” (IBM, citado por MELO, 2012, p. 8)
• “É um estilo de arquitetura de software cujo princípio fundamental prega que as funcionalidades implementadas pelas aplicações devem ser disponibilizadas na forma de serviços. Frequentemente, estes serviços são conectados através de um "Barramento de Serviços" (Enterprise Service Bus, em inglês), que disponibiliza interfaces ou contratos, acessíveis através de webservices ou outra forma de comunicação entre aplicações”. (Wikipédia, citado por MELO, 2012, p. 8)
• “SOA é uma forma de tecnologia arquitetural que adere aos princípios de
orientação de serviços. Quando realizada através do uso de Web Services, SOA atinge o potencial para suporta e promover estes princípios através dos processos de negócio e automação dos domínios corporativo”. (ERL, 2005)
SOA - Serviços
66
Dourados – MS - 30/06/15
• Os principais conceitos técnicos de SOA são: • Serviços
• Interoperabilidade • Acoplamento fraco
SOA - Serviços
• Serviços
• Interoperabilidade • Acoplamento fraco
SOA - Serviços
68
Dourados – MS - 30/06/15
• Um serviço em SOA é um componente de software que possui uma forte relação com o processo de negócio (MULESOFT, 2013);
• “Serviços são unidades lógicas auto suficientes que realizam atividades específicas.”
• Graças a esse conceito, o serviço contém uma série de características que o diferenciam de componentes criados com outras abordagens. Algumas dessas características são:
• (i) possuir uma ou mais operações e pode ser descrito através de
um contrato;
• (ii) ter a capacidade de utilizar outros serviços que se completam
na execução de uma atividade, se tornando reutilizável. (ERL, 2005)
SOA - Serviços
70
Dourados – MS - 30/06/15
• Compartilham um Contrato Formal: • O que é:
• Contratos são documentos textuais que descrevem o que o serviço faz. Os
padrões WSDL (Web Service Description Language), UDDI (Universal
Description Discovery and Integration) e SOAP (Simple Object Access Protocol) são muito utilizados no dia-a-dia;
– O padrão SOAP é utilizado pelos Web Services e é responsável por
definir o modelo da troca de mensagens. Para isso utiliza um arquivo
XML que define envelopes e os nós intermediários da comunicação;
– O padrão WSDL é responsável por identificar o protocolo e o endereço
no qual um serviço está publicado, assim como seus parâmetros de entrada e saída;
– O padrão UDDI permite que os serviços sejam categorizados, porém
sem fornecer uma riqueza de textos para que as buscas por um serviço específico sejam feitas.
SOA – Serviços - WSDL
• Web Services Description Language (WSDL) é um documento proposto pela W3C a partir de Junho de 2007 escrito em XML que visa padronizar as descrições das funcionalidades oferecidas por web services de forma independente de plataforma ou linguagem. Possui basicamente três finalidades:
• Expor os métodos que determinado serviço disponibilizará; • Possibilitar a localização de determinado serviço;
• O WSDL trabalha em parceria com outras duas tecnologias, sendo
SOA – Serviços – WSDL
72
SOA - Serviços
74
SOA – Serviços – Interface e Contrato
• Tecnicamente falando, um serviço é uma interface para (múltiplas) mensagens que retornam informação e/ou alteram o estado de uma entidade associada;
• Essencialmente, SOA é uma arquitetura de software que começa com uma definição da interface e constrói a topologia da aplicação inteira com uma topologia de interfaces, implementações de interfaces e chamadas de interfaces.
SOA – Serviços – Independente
76
Dourados – MS - 30/06/15
• Todas definições de SOA concordam que é um objetivo da modelagem que os serviço sejam independentes (autônomos, autárquicos);
• O objetivo é minimizar as dependências de tal forma que SOA seja apropriada para sistemas distribuídos com diferentes proprietários.
SOA – Serviços – Granularidade Grossa
• Os serviços são abstrações que escondem detalhes dos consumidores;
• A granularidade grossa ajuda a separar a estrutura de dados interna de um fornecedor de serviço da sua interface externa.
SOA - Serviços
78
SOA - Serviços
• Serviços
• Interoperabilidade • Acoplamento fraco
SOA - Interoperabilidade
80
Dourados – MS - 30/06/15
• Com sistemas heterogêneos, o primeiro objetivo é ser capaz de conectar esses sistemas facilmente (alta interoperabilidade);
• É a base para implementar as funcionalidades de negócio (serviços) e que é espalhada em múltiplos sistemas distribuídos.
SOA – Interoperabilidade - Conceitos
• Quatro conceitos que fundamentam o entendimento do assunto:
• “Intercâmbio coerente de informações e serviços entre sistemas.
Deve possibilitar a substituição de qualquer componente ou produto usado nos pontos de interligação por outro de especificação similar, sem comprometimento das funcionalidades do sistema.” (governo do Reino Unido);
• “Habilidade de transferir e utilizar informações de maneira
uniforme e eficiente entre várias organizações e sistemas de informação.” (governo da Austrália);
SOA – Interoperabilidade - Conceitos
82
Dourados – MS - 30/06/15
• “Habilidade de dois ou mais sistemas (computadores, meios de
comunicação, redes, software e outros componentes de tecnologia da informação) de interagir e de intercambiar dados de acordo com um método definido, de forma a obter os resultados esperados.” (ISO);
• “Interoperabilidade define se dois componentes de um sistema,
desenvolvidos com ferramentas diferentes, de fornecedores diferentes, podem ou não atuar em conjunto.” (Lichun Wang, Instituto Europeu de Informática – CORBA Workshops);
SOA - Interoperabilidade
84
Dourados – MS - 30/06/15
SOA - Interoperabilidade
SOA – Interoperabilidade
86
Dourados – MS - 30/06/15
• Interoperabilidade não é somente Integração de Sistemas, não é somente Integração de Redes. Não referencia unicamente troca de dados entre sistemas. Não contempla simplesmente definição de tecnologia;
• É, na verdade, a soma de todos esses fatores, considerando, também, a existência de um legado de sistemas, de plataformas de Hardware e Software instaladas;
• Parte de princípios que tratam da diversidade de componentes, com a utilização de produtos diversos de fornecedores distintos;
• Tem por meta a consideração de todos os fatores para que os sistemas possam atuar cooperativamente, fixando as normas, as políticas e os padrões necessários para consecução esses objetivos.
SOA - Serviços
• Serviços
• Interoperabilidade • Acoplamento fraco
SOA – Acoplamento Fraco
88
Dourados – MS - 30/06/15
• O Baixo Acoplamento tem haver com a redução das dependências do sistema, minimizando os efeitos das modificações e falhas;
SOA – Acoplamento Fraco
• O Alto Acoplamento traz diversos problemas para um sistema, entre eles:
• Difícil entendimento: vamos imaginar uma situação em que você precisa fazer uma
reengenharia de um sistema que já está pronto, ou que necessita encontrar um erro que está lhe dando dor de cabeça no seu sistema, ao começar analisar as classes descobre que para entender essa classe, precisa estudar a próxima que está ligada a ela, para também entender esta, precisa estudar a próxima, e assim por diante, imagine o tempo que irá desperdiçar nisso;
• Difícil reutilização: vamos imaginar outra situação, digamos que seja necessário retirar uma
determinada parte do sistema, algo como um módulo de calcular folha de pagamento de um sistema financeiro, para ser levada e adequada a outro sistema financeiro, imagine que as classes responsáveis por isso, estejam ligadas ao módulo de RH, você vai levar o módulo de RH junto?
SOA – Acoplamento Fraco
90
SOA – Acoplamento Fraco
• A solução para isso seria minimizar o acoplamento entre as classes, ou seja, deixa-las com baixo acoplamento;
• Existem quatro tipos de acoplamento:
• Acoplamento de dados: quando uma classe conhece os dados da
outra;
• Acoplamento de controle: quando uma classe exerce controle sobre o
comportamento de outra.
• Acoplamento de dados globais: quando dois ou mais objetos
compartilham os mesmos dados.
• Acoplamento de dados internos: quando um objeto altera os dados
locais de outro objeto, isso em java não é difícil de evitar, é só utilizar variáveis private, ao invés de públicas.
SOA – Acoplamento Fraco
92 Dourados – MS - 30/06/15 Sistema A Sistema B Requisição RespostaSOA – Acoplamento Fraco
Sistema A
Sistema A
Mapeamento
Desacoplamento com uso de tipo de dados diferentes
Cliente firstName lastName address phone email Sistema B Sistema B Cliente name address taxNumber invoices
SOA
94
Pilares da Computação em Nuvem
Virtualização SOA
Princípios da Computação
em Nuvem
96
Princípios da Computação em Nuvem
• A função da Computação em Nuvem é cortar custos operacionais;
• Permitir que os departamentos de TI se concentrem em projetos
Princípios da Computação em Nuvem
98 Dourados – MS - 30/06/15 • Componentes: • Clientes; • Datacenter; • Servidores distribuídos. • Infraestrutura: • Computação em Grade; • Virtualização; • Serviços.Princípios da Computação em Nuvem
• Podemos dizer que a Computação em Nuvem faz referência a infraestrutura e serviços que são disponibilizados na rede através de virtualização e acessados via Internet.
• Neste ambiente, as aplicações são executadas em servidores hospedados como serviços.
Princípios da Computação em Nuvem
100
Dourados – MS - 30/06/15
• O uso da palavra "nuvem“ faz referência aos dois conceitos essenciais:
• Abstração: A Computação em Nuvem abstrai os detalhes de
implementação do sistema de usuários e desenvolvedores. Os aplicativos são executados em sistemas físicos que não estão especificados, os dados são armazenados em locais que são desconhecidas, a administração de sistemas é terceirizada por outros;
• Virtualização: A Computação em Nuvem virtualiza sistemas e
compartilha de recursos. Sistemas de armazenamento podem ser fornecidos conforme a necessidade de uma infraestrutura centralizada, os custos são avaliados em uma medida base e os recursos podem ser escalados com facilidade.
Princípios – Modelos de Serviço
• Diferentes tipos de infraestruturas de nuvens podem ser implantadas. Elas podem ser chamadas de modelos de serviço. • Os três principais modelos de serviço são:
Princípios – Modelo de Serviço
102
Dourados – MS - 30/06/15
• O Software-as-a-Service (SaaS) - É um ambiente operacional
completo, com aplicações, gerenciamento e interface do usuário. Desde o aplicativo até a infraestrutura, a responsabilidade é do fornecedor;
• A Platform-as-a-Service (PaaS) - Fornece máquinas virtuais, sistemas
operacionais, aplicativos, serviços, frameworks de desenvolvimento, operações e estruturas de controle. O cliente pode implantar suas aplicações na infraestrutura de nuvem ou usar aplicativos e ferramentas que são suportados pelo prestador de serviços PaaS;
• A Infrastructure-as-a-Service (IaaS) - Fornece máquinas virtuais,
armazenamento virtual, infraestrutura virtual e recursos de hardware. O prestador de serviços IaaS gerencia toda a infraestrutura.
Princípios – Modelos de Serviço
• Como exemplos de prestadores de serviços, de acordo com a infraestrutura oferecida pela nuvem, podemos citar:
• IaaS: Amazon (AWS), Eucalyptus, OpenStack;
• PaaS: Google App Engine (GAE), Windows Azure, OpenShift;
Princípios – Tipos de Nuvem
104
Princípios – Tipo de Nuvem
• Nuvens públicas – as atividades/funções de TI são fornecidas
“como um serviço,” através da Internet, permitindo o acesso a serviços com tecnologia integrada sem haver conhecimento,
especialização ou controle sobre a infraestrutura de tecnologia que apoia essas atividades. Também chamada de
Princípios – Tipo de Nuvem
106
Dourados – MS - 30/06/15
• Nuvens privadas – as atividades e funções são fornecidas
“como um serviço,” através da Intranet da empresa. Ela é desenvolvida por uma empresa para seus próprios usuários, tudo sendo fornecido dentro do firewall da organização (em vez da Internet). O proprietário da nuvem privada não compartilha recursos com nenhuma outra empresa. Também chamada de “nuvem interna”.
Princípios – Tipo de Nuvem
• Nuvens híbridas – os métodos externos e internos de
fornecimento de serviços são integrados. Regras e políticas
são estabelecidas pela empresa com base em fatores que incluem necessidades de segurança, criticalidade e arquitetura subjacente, de modo que atividades e tarefas são alocadas a nuvens externas e internas como apropriado.
Princípios – O que uma Nuvem deve ter
108
Princípios – 6 princípios básicos
• A mudança crescente para a Computação em Nuvem, pode agregar valor significativo, mas a maioria das empresas possui
pouco conhecimento sobre os perigos da transferência de tomada de decisões em relação a TI;
• Eliminando a parte de supervisão e governança das decisões de computação em nuvem, há a grande possibilidade de criar um
risco significativo para as organizações, efetivamente minando
os benefícios da mudança para a nuvem e, ao mesmo tempo, criando sérios problemas para as organizações;
Princípios – 6 princípios básicos
110
Dourados – MS - 30/06/15
• Entretanto, no intuito de ajudar as empresas a gerenciar os pontos de pressão potenciais, a ISACA delineou seis princípios-chave de computação em nuvem:
• O princípio da habilitação;
• O princípio do custo / benefício; • O princípio de risco da empresa; • O princípio da capacidade;
• O princípio responsabilidade; • O princípio confiança.
• ISACA é o acrônimo para Information Systems Audit and Control Association (Associação de Auditoria e Controle de Sistemas de
Princípios – 6 princípios básicos
• O princípio da habilitação: nesse cenário, existe um plano para
a computação em nuvem como um agente facilitador estratégico, ao invés de um acordo de subcontratação ou plataforma técnica;
• O princípio do custo / benefício: avaliar os benefícios da
aquisição de serviços de nuvem com base em uma compreensão completa dos custos de nuvem, em comparação com os custos de outras soluções de tecnologia de negócios da plataforma;
Princípios – 6 princípios básicos
112
Dourados – MS - 30/06/15
• O princípio da capacidade: está enfatizando a capacidade de
extensão total de recursos que os provedores de nuvem oferecem, com recursos internos para fornecer um suporte técnico e entregar uma abrangente solução.
• O princípio responsabilidade: gerenciar responsabilidades,
definindo claramente todas as responsabilidades internas e funções relacionadas ao provedor.
• O princípio confiança: é necessário que haja extrema confiança
em uma parte essencial de soluções de cloud computing; isso é o ponto de partida para a construção da confiança em todos os processos de negócios que dependem de computação em nuvem.
Princípios – O que um provedor deve ter
• Antes de contratar um provedor de serviços, existe a necessidade de verificar os seguintes pontos:
• A solução oferecida já foi testada?
• Há um documento ou planejamento da solução?
• Verifique se a solução oferecida pelo provedor tem integração
com os principais softwares do mercado.
Computação em Nuvem e Virtualização
114
Computação em Nuvem e Virtualização
• Há muita dúvida e confusão em definir Computação em Nuvem e Virtualização;
• Muitas pessoas tem dificuldades de diferenciar uma da outra e de definir onde cada uma delas pode se encaixar dentro do seu negócio.
Computação em Nuvem e Virtualização
116
Dourados – MS - 30/06/15
• Como a virtualização se difere da computação na nuvem?
• Essencialmente, a virtualização difere da computação na nuvem porque é um software que manipula o hardware, enquanto a computação na nuvem é o resultado dessa manipulação;
• A virtualização é um elemento fundamental à computação na nuvem";
• A computação na nuvem é a entrega de recursos, software ou dados de computadores compartilhados. É um serviço sob
Computação em Nuvem e Virtualização
• A Computação em Nuvem difere da virtualização ao ser definido como o resultado da manipulação do hardware por
parte de um software específico;
• A virtualização é, portanto, um elemento fundamental à
Computação em Nuvem e Virtualização
118
Dourados – MS - 30/06/15
• A confusão está no fato de que os dois conceitos se correacionam para oferecer serviços diferentes;
• Além disso, a virtualização é um produto, tendo em vista que é possível adquirir soluções através de softwares, enquanto a
Computação em Nuvem é um conceito de arquitetura de TI;
• No entanto, os serviços na nuvem são totalmente dependentes
da virtualização para oferecer soluções de softwares e hardwares.
Princípios – Modelos de Serviço
120
Dourados – MS - 01/07/15
Princípios – Modelos de Serviço
Princípios – Modelos de Serviço
122
Dourados – MS - 01/07/15
Princípios – Modelos de Serviço
124
Dourados – MS - 01/07/15
Princípios – Modelos de Serviço
Princípios – Modelos de Serviço
126
Dourados – MS - 01/07/15
Princípios – Modelos de Serviço
128
Dourados – MS - 01/07/15
Princípios – Modelos de Serviço
http://www.salesforce.com/br/?ir=1Princípios – Modelos de Serviço
130
Dourados – MS - 01/07/15
Bibliografia
- TANENBAUM, A. Sistemas Distribuídos: Princípios e Paradigmas. 2ª Edição. Prentice Hall, 2007.
Bibliografia Complementar:
- ERL T. el al. Cloud Computing: Concepts, Technology e Architecture. Prentice Hall, 2013.
- SOSINSKY, B. Cloud Computing: Bible. 1 edition . Wiley, 2011.
- BRIAN, J. et al. Computação em Nuvem, Tecnologias e Estratégias. São Paulo: M Books, 2013.
- VELTE, A. et al. Computação em Nuvem: Uma Abordagem Prática. Rio de Janeiro: Alta Books, 2011.
Bibliografia
132
Dourados – MS - 01/07/15
Bibliografia Complementar (sites e artigos):
- Olhar Digital. Princípios da computação em nuvem. Disponível em: http://
olhardigital.uol.com.br/noticia/principios_da_computacao_em_nuvem/18942 . Último acesso em: 12/05/2014.
- Master’s Thesis, UFMA, 2012. Oliveira J. B. Uma abordagem baseada em
engenharia dirigida por modelos para suportar testes de sistemas de software na plataforma de computação em nuvem. Disponível em: http://
www.tedebc.ufma.br/tde_arquivos/10/TDE-2013-04-03T163947Z-759/Publico/Dissertacao%20Jessica%20Bassani.pdf