Baixe o app para aproveitar ainda mais
Prévia do material em texto
NATANAEL RIBEIRO DA SILVA APOSTILA – IFPI CARGO ANALISTA DE TECNOLOGIA DA INFORMAÇÃO ANO DE 2014 P á g i n a | 1 S U M Á R I O 1. SISTEMAS OPERACIONAIS WINDOWS E LINUX................................................................................................................ 03 1.1 Windows ......................................................................................................................................................................... 03 1.2 Linux ................................................................................................................................................................................ 02 1.3 Serviços de diretório: Active Directory e LDAP ............................................................................................................... 09 2. VIRTUALIZAÇÃO COM CITRIX XEN SERVER E VMWARE ESXI ........................................................................................... 12 2.1 Citrix XenServer ............................................................................................................................................................... 12 2.2 VMWare ESXi .................................................................................................................................................................. 12 2.3 Diferenças entre o Xen Server e VMware ESXi ............................................................................................................... 12 3. COMPUTAÇÃO EM NUVEM ............................................................................................................................................. 15 4. SERVIDORES HTTP APACHE ............................................................................................................................................. 19 5. LINGUAGEM DE PROGRAMAÇÃO PYTHON E FRAMEWORK DE DESENVOLVIMENTO WEB DJANGO ................................ 20 5.1 Framework de Desenvolvimento Web Django ............................................................................................................... 20 5.2 Linguagem Python ........................................................................................................................................................... 21 6. BANCO DE DADOS ORACLE, POSTGRESQL E MYSQL ....................................................................................................... 29 6.1 Oracle .............................................................................................................................................................................. 29 6.2 PostgreSQL ...................................................................................................................................................................... 31 6.3 MySQL ............................................................................................................................................................................. 32 7. SERVIDORES SMTP POSTFIX E ZIMBRA............................................................................................................................ 32 7.1 Servidor POSTFIX ............................................................................................................................................................. 32 7.2 Servidor ZIMBRA ............................................................................................................................................................. 33 8. TOPOLOGIA TÍPICA DE AMBIENTES COM ALTA DISPONIBILIDADE E ESCALABILIDADE ................................................... 34 8.1 Balanceamento de carga ................................................................................................................................................. 34 8.2 Fail-over........................................................................................................................................................................... 38 9. TECNOLOGIAS E ARQUITETURA DE DATA CENTER .......................................................................................................... 38 9.1 Conceitos básicos ............................................................................................................................................................ 38 9.2 Serviços de armazenamento, padrões de disco e de interfaces ..................................................................................... 44 9.3 RAID.............................................................................................................................................................................. 48 10. TECNOLOGIAS DE BACKUP ............................................................................................................................................ 53 10.1 Conceitos Básicos .......................................................................................................................................................... 53 10.2 Deduplicação ................................................................................................................................................................. 57 10.3 ILM - Information Lifecycle Management ..................................................................................................................... 58 10.4 Software Livre para backup pessoal e corporativo ....................................................................................................... 60 11. ADMINISTRAÇÃO, MONITORAMENTO E CONTROLE ..................................................................................................... 61 11.1 Ferramentas automatizadas de gestão de infra-estrutura ........................................................................................... 61 11.2 Administração de aplicação para monitoramento de servidores e serviços ................................................................ 62 11.3 Configuração, administração e gerenciamento de serviços de rede Windows e Linux ................................................ 63 11.3.1 Serviço de compartilhamento de arquivos SAMBA ................................................................................................... 63 11.3.2 Serviço de compartilhamento CIFS ............................................................................................................................ 68 11.3.3 Serviço de compartilhamento NFS ............................................................................................................................. 69 11.4 Autenticação, autorização e auditoria .......................................................................................................................... 70 11.4.1 Protocolos AAA .......................................................................................................................................................... 70 11.4.2 Controles de Acesso baseado em Papeis ................................................................................................................... 71 11.4.3 Autenticação .............................................................................................................................................................. 72 11.5 Single sign-on ................................................................................................................................................................ 74 11.6 Captive Portal ................................................................................................................................................................ 76 12. TECNOLOGIAS E PROTOCOLOS DE REDES LOCAIS .......................................................................................................... 76 12.1Padrões Ethernet .......................................................................................................................................................... 76 12.2 Endereçamento IP ......................................................................................................................................................... 86 12.3 Máscara de sub-rede ..................................................................................................................................................... 87 12.4 Protocolos de Rede ....................................................................................................................................................... 92 P á g i n a | 2 12.5 Cabeamento estruturado EIA/TIA 568 .......................................................................................................................... 105 12.6 Redes tipo campus ........................................................................................................................................................ 109 12.7 Modelo OSI .................................................................................................................................................................... 110 12.8 Redes de longa distância: PPP, ATM e MPLS ................................................................................................................ 113 12.8.1 Protocolo PPP ............................................................................................................................................................. 113 12.8.2 Protocolo ATM ........................................................................................................................................................... 115 12.8.3 Protocolo MPLS .......................................................................................................................................................... 116 12.9 Redes sem fio (wireless) ................................................................................................................................................ 119 12.10 Elementos de interconexão de redes de computadores ............................................................................................ 128 13. GERENCIAMENTO DE REDES DE COMPUTADORES ........................................................................................................ 132 13.1 Conceitos ....................................................................................................................................................................... 132 13.2 Qualidade de serviço (QoS) ........................................................................................................................................... 148 13.3 Voz sobre IP (VoIP): conceitos, arquiteturas e protocolos ............................................................................................ 155 13.4 Videoconferência: conceitos, arquiteturas e protocolos .............................................................................................. 161 13.5 Roteamento Multicast: conceitos e protocolos ............................................................................................................ 165 13.6 Instrução Normativa IN04 ............................................................................................................................................. 167 P á g i n a | 3 1. SISTEMAS OPERACIONAIS WINDOWS E LINUX 1.1 Windows Microsoft Windows é uma família de sistemas operacionais criados pela Microsoft, empresa fundada por Bill Gates e Paul Allen. Antes da versão NT, era uma interface gráfica para o sistema operacional MS-DOS. O Windows é um produto comercial, com preços diferenciados para cada uma de suas versões. É o sistema operacional mais utilizado em computadores pessoais no mundo. O impacto deste sistema no mundo atual é muito grande devido ao enorme número de cópias instaladas. Conhecimentos mínimos desse sistema, do seu funcionamento, da sua história e do seu contexto são, na visão de muitos, indispensáveis, mesmo para os leigos em informática. A atual versão estável do Windows para desktops é o Windows 8.1, lançado em 17 de outubro de 2013. Para servidores o Windows Server 2012 é a versão mais recente e estável. A palavra windows em português significa janelas. A sua interface gráfica é baseada no padrão WIMP e utiliza o conceito WYSIWYG, previamente desenvolvido em Xerox PARC: possui janelas que exibem informações e recebem respostas dos utilizadores através de um teclado ou de cliques do mouse. O registro da marca Windows foi legalmente complicado, pelo fato dessa palavra ser de uso corrente em inglês ("windows" significa "janelas"). A Microsoft começou a desenvolver o Microsoft Windows em setembro de 1981. O Windows 1.01 era uma interface gráfica bidimensional para o MS-DOS e foi lançado em 20 de Novembro de 1985. Era necessário o MS-DOS 2.0, 256 KB RAM e um disco rígido. Naquela altura, o MS-DOS só conseguia suportar 1 MB de aplicações. Era uma primeira tentativa de criar um sistema multitarefa. Nessa época, instalado em computadores XTs que tinham apenas 512Kb de memória, ocupava praticamente toda a memória disponível. O Windows 1.01 não foi nenhum grande sucesso comparado com seus sucessores da década de 1990, devido à limitação do hardware da época. Inicialmente, ele foi lançado em quatro disquetes de 5.25 polegadas de 360 KB cada um. Continha o Reversi (jogo), um calendário, bloco de notas, calculadora, relógio, prompt de comando (uma janela direta para o DOS), Write, Control Painel, Paint e programas de comunicação. Permite a utilização de mouse, janelas e ícones. Nesta versão ainda não havia sobreposição de janelas. A versão 1.02 foi lançada internacionalmente em maio de 1986 e ganhou edições em várias línguas europeias. A versão 1.03 foi lançada em agosto de 1986 internacionalmente. A versão 1.04 foi lançada em abril de 1987 e ganhou gráficos VGA. O Windows só começa a ser tecnicamente considerado como um SO a partir da versão Windows NT, lançada em Julho de 1993. O que havia antes eram sistemas gráficos sendo executados sobre alguma versão dos sistemas compatíveis com DOS, como MS-DOS, PC-DOS ou DR-DOS. Somente o MS-DOS era produzido pela própria Microsoft. O MS-DOS é um sistema operativo que não dispõe de interface gráfica, funciona através de comandos de texto introduzidos no teclado pelo utilizador. O Windows surgiu inicialmente como uma interface gráfica para MS-DOS, que permitia correr programas em modo gráfico, o que permitiu a utilização do mouse, que até à altura era considerado supérfluo em computadores de tipo IBM-PC. Os primeiros Windows, como o 1.0, 2.0, são compatíveis apenas com partições formatadas em sistema de ficheiros FAT, ou como é chamado, FAT 16. O 3.x poderia ser instalado em FAT 32, porém necessita ser instalado o MS-DOS 7.10, que era incluido nos disquetes de inicialização do Windows 95 OSR2 e Windows 98, necessitando modificar alguns arquivos para permitir seu funcionamento. Ao mudar do 3.1 para o 95B (Windows 95 OSR 2/OSR 2.1), os HD's poderiam ser formatados em FAT 32. Inicialmente lançado com o Windows NT, a tecnologia NTFS é agora o padrão de fato para esta classe. Com a convergência de ambos sistemas, o Windows XP passou também a preferir este formato. A principal linguagem de programação usada para escrever o código-fonte das várias versões do Windows é o C e algumas partes com C++ e Assembly. Até a versão 3.11, o sistema rodava em 16 bits (apesar de poder instalar um update chamado Win32s para adicionar suporte a programas 32 bits), daí em diante, em 32 bits. As versões a partir do XP e Server 2003 estão preparadas para a tecnologia 64 bits. P á g i n a| 4 Os sistemas de 64 bits não possuem mais suporte para rodar nativamente aplicativos de 16 bits, sendo necessário uso de emuladores/máquinas virtuais. Os bits são relacionados ao volume de dados que um microprocessador é capaz de lidar. Se um processador tem uma arquitetura de 64 bits, ele é capaz de lidar com dados na ordem de 2 64 , ou seja, 18446744073709552000. Só que para isso ser possível, é necessário que o sistema operacional seja de 64 bits, caso contrário ele trabalhará com somente com instruções de 32 bits (Se o sistema for de 32 bits). Sistemas operacionais de 64 bits também endereçam uma quantidade maior de RAM, suportando até 192GB (Windows 7 Ultimate) ou 128GB (Windows XP Professional), contra 3,2GB dos sistemas de 32 bits. Outra característica denominada de hearança maldita devido o fato de ter herdade essa regra do DOS é o fato de não se poder criar pastas com os determinado nomes: con, prn, aux, com1 e ltp1. Trata-se de uma antiga herança que os SOs Windows carregam do MS-DOS e são palavras reservadas para a comunicação interna do SO. Portanto, mesmo o mais recente sistema da Microsoft é incapaz de interpretar tais sentenças como simples nomes através do Windows Explorer. Através do Prompt de Comandos é possível criar pastas e arquivos com qualquer um dos nomes acima. Mas o sistema impede que os documentos sejam editado e excluídos pelo Windows Explorer. 1.2 Linux 1.2.1 História do Linux Linux é um termo utilizado para se referir a sistemas operacionais que utilizem o núcleo Linux. O núcleo Linux foi desenvolvido pelo programador finlandês Linus Torvalds, inspirado no sistema Minix. O seu código fonte está disponível sob a licença GPL (versão 2) para que qualquer pessoa o possa utilizar, estudar, modificar e distribuir livremente de acordo com os termos da licença. 1.2.2 Linux como Sistema Operacional Linux se refere ao Kernel. O conjunto de aplicativos que são executados no Kernel se chama distribuição. A função do Kernel (núcleo do sistema operacional) é ser a interface entre o Hardware e os sistemas de gerenciamento de tarefas e aplicativos. O Kernel do Linux é mais leve que o de outros sistemas operacionais para servidores. São 12 milhões de linhas de código, enquanto outras versões do Unix têm 30 milhões e o Windows NT, 50 milhões. ”Isso significa que o Linux é três vezes mais rápido que outros Unix e até cinco vezes mais rápido que o Windows NT”. 1.2.3 Principais características do Linux • É um Software Livre (Open Source). O Windows é considerado um software proprietário. • Licença de uso: GPL/GNU. GPL/GNU – significa Licença Pública geral, consiste na designação de licença para softwares livres. • É um sistema operacional Multitarefa, assim como o Windows. Multitarefa – o sistema multitarefa executar mais de um aplicativo ao mesmo tempo. • É um sistema operacional Multissessão, assim como o Windows. Multissessão – consiste em ter vários contas de usuários em um mesmo computador. • É Preemptivo – permite a interrupção de processos. (É também característica do Windows). Preemptivo é a ideia de ter vários programas sendo processados ao mesmo tempo, e com isso, conseguimos alternar de um para o outro, interrompendo desta forma, o processo de um para executar outro. • É um sistema Multiusuário. (também característica do Windows). Multiusuário é quando existe uma rede de computadores e um servidor (pode este ser usado tanto Linux como Windows), e com isso, os usuários podem ter acesso simultâneo ao sistema (vários usuários acessando o servidor ao mesmo tempo). • Multiprocessamento (também característica do Windows). Multiprocessamento é um computador com mais de um processador. P á g i n a | 5 • Sistema Monolítico (também característica do Windows). Sistema monolítico – todos processos em um só núcleo. • Compartilhamento de bibliotecas (também característica do Windows). É o compartilhamento de recursos com os softwares instalados no computador. Exemplo: as fontes instaladas no computador podem ser utilizadas em vários programas como Word, Excel, Power Point, Photoshop e etc. • Capacidade de processamento 32/ 64 bits (também característica do Windows) – Há versões de 32 e 64 bits. Pode ser instalado tanto em processadores de 32 bits, como de 64 bits. • # Superusuário (também presente no Windows, mas com o nome de Administrador) é o usuário com controle total do computador. • $ Usuário comum (também presente no Windows, mas com o nome de Usuário Limitado) é o usuário que não tem poder para manipular todos os recursos existentes no computador. • Interface gráfica e Prompt de comando (também existente no Windows) – É possível interagir com o Linux de duas maneiras: Pela Interface Gráfica ou Prompt de Comando (Shell, bash sh, etc). 1.2.4 Sistemas de arquivos do Linux A lista de sistemas de arquivos suportados pelo Linux é muito grande mas, será mostrado somente os mais comuns. Atualmente, uma importante característica dos atuais sistemas de arquivos é o "journaling". Sistemas de arquivos que possuem essa característica são preferidos em detrimento aos que não possuem. Journaling é um recurso que permite recuperar um sistema após um desastre no disco (ex.: quando um disco está sujo) em uma velocidade muito maior que nos sistemas de arquivos sem journaling. Segue abaixo uma breve descrição sobre os sistemas de arquivos mais comuns disponíveis para o Linux: • Ext2: O sistema de arquivos ext2 é conhecido como "Second Extended FileSystem". Foi desenvolvido para ser mais "eficiente" que o sistema de arquivos "Minix", seu antecessor. O Minix era muito utilizado nas primeiras versões do Linux, e foi utilizado por muitos anos. O sistema de arquivos ext2 não possui journaling e foi substituído pelo ext3. • Ext3: O sistema de arquivos ext3 é uma versão do ext2 com suporte a journaling. Portanto, o ext3 tem as mesmas características do ext2, mas com suporte journaling. Essa característica foi uma evolução e tornou o ext3 um sistema de arquivos muito estável e robusto. Como no ext3 só foi adicionado o suporte a journaling, podemos converter um sistema de arquivos ext2 para ext3, adicionado suporte a journaling, e também podemos converter um sistema de arquivos ext3 para ext2, removendo o suporte a journaling. • ReiserFS: O sistema de arquivos ReiserFS foi criado recentemente. Mas atualmente quase todas as distribuições Linux o suportam. Sua performance é muito boa, principalmente para um número muito grande de arquivos pequenos. ReiserFS também possui suporte a journaling. • XFS: O sistema de arquivos XFS também possui suporte a journaling. Foi desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o código fonte. O XFS é considerado um dos melhores sistemas de arquivos para banco de dados, pois é muito rápido na gravação. XFS utiliza muitos recursos de cache com memória RAM, e para utilizar XFS é recomendado utilizar sistemas que possuem redundância de energia. • SWAP: SWAP é um espaço reservado para troca de dados com a memória RAM. Em alguns lugares ele não é mencionado como um Sistema de Arquivos, mas resolvi descrever aqui pois faz parte deste artigo. • VFAT: O sistema de arquivos VFAT é também conhecido como FAT32 (M$ Windows). O sistema de arquivos VFAT não possui suporte a journaling. É utilizado normalmente para transferir dados entre sistemas M$ Windows e o Linux instalados no mesmo disco, pois pode ser lido e escrito por ambos os sistemas operacionais. O sistema de arquivos VFAT está longe de ser um sistema de arquivos utilizado para Sistemas Linux, exceto para compartilhamento/compatibilidade entre o M$ Windows e Linux. Se você utilizar VFAT no Linux, esteja certo de perder alguns atributos, tais como: permissão de execução, links simbólicos, entre outras coisas. Ambos ossistemas de arquivos ext3 e ReiserFS são maduros o bastante para serem utilizados como padrão no Linux. Esses dois são os mais utilizados pelas distribuições Linux. • Ext4: é a evolução do sistema de arquivos mais usados no Linux, o Ext3. De muitas maneiras, Ext4 é uma profunda melhoria sobre o Ext3, sendo o Ext3, com muitas melhorias frente o Ext2. No Ext3 foi principalmente a adição de Journaling sobre o Ext2, mas Ext4 teve mudanças importantes na estrutura do sistema de arquivos P á g i n a | 6 destinado ao armazenamento de dados. O resultado é um sistema de arquivos com um designer aperfeiçoado, melhor performance, confiável e com muitos recursos. 1.2.5 Estrutura do Linux Kernel - É o próprio sistema operacional (é o núcleo essencial do sistema); - É a parte mais próxima do nível físico; - Composta de chamadas ao sistema, de acesso aos dispositivos E/S e gerência dos recursos da máquina. Shell - Representa uma camada entre o Kernel do sistema operacional e o usuário; - É o interpretador de comandos digitados que passa para o kernel e vice-versa. Os mais conhecidos são o Bourne Shell (bsh), o C Shell (csh), o Korn Shell (ksh) e o Bourne Again Shell (bash). Aplicativos Demais recursos de software que compõem a distribuição do Linux. 1.2.6 Distribuições do Linux O que é uma distribuição Ao "kernel" é freqüentemente acrescentado uma série de aplicações, formando um sistema ou distribuição Linux. Distribuição nada mais é que um pacote do kernel do sistema operacional mais os programas que o acompanham. Este pacote, incluindo as ferramentas necessárias para sua instalação, é chamado de distribuição. Uma distribuição atende a uma determinada necessidade. As distribuições podem ser produzidas em diferentes versões do Kernel, podem incluir diferentes conjuntos de aplicativos, utilitários, ferramentas e módulos de driver, e podem oferecer diferentes programas de instalação e atualização para facilitar o gerenciamento do sistema. Existem várias distribuições no mercado. Citaremos algumas: • Red Hat: Famoso por suas ferramentas de instalação e atualização do sistema operacional e por seu sistema bem projetado de instalação, desinstalação e controle de pacotes de aplicativos de software. • Slackware: Era a distribuição mais popular. Não vem com RPM. Ganha em performance, mas peca na interatividade. Usado mais para servidores de rede. • Caldera OpenLink: O OpenLink 1.3 inclui o “K” Desktop Environment, uma licença não-comercial do StarOffice for Linux, Suporte Netware, uma licença do DR-DOS para compatibilidade DOS. • S.u.S.E Linux: É uma conhecida distribuição de Linux, disponível principalmente na Europa e oferecida nas versões em inglês e alemão. • Debian/GNU: Não possui uma organização comercial patrocinadora. É produzida por uma equipe de voluntários. Utiliza seu próprio sistema de gerenciamento de pacotes. 1.2.7 Gerenciadores de Inicialização São programas que permitem ao usuário gerenciar a inicialização dos SO's, podendo escolher qual deles carregar, caso haja mais de um em sua máquina. • LILO: Linux Loader é um gerenciador modo texto, que gerencia o setor de Boot da MBR (Master Boot Record - Primeiro setor de um HD que é lido na inicialização para dar partida no computador) do HD permitindo a P á g i n a | 7 inicialização seletiva do sistema operacional, ou seja, ele apresenta um menu de opções para que o usuário possa escolher um entre os sistemas operacionais disponpiveis para aquela inicialização. • GRUB: Grand Unified Bootloader é um loader que trabalha com interface gráfica, logo na inicialização do computador, antes de carregar o SO. 1.2.8 Estrutura de Diretórios É a forma como são organizados os arquivos e as pastas no SO. No Linux, o diretório raiz está tomado pelas pastas de sistemas, enquanto as pastas e arquivos pessoais devem ficar armazenadas no diretório /home. Há uma padronização para os diretórios Linux, o Filesystem Hierarchy Standard - FHS, que especifica como é a organização de arquivos e diretórios em sistemas Unix/Linux. Segue abaixo: Diretório Descrição dos arquivos contidos nesse diretório Diretório Descrição dos arquivos contidos nesse diretório / Diretório raiz do sistema de arquivos. É abaixo dele que se situam todos os outros. /bin Arquivos executáveis de comandos essenciais. Nele ficam os executáveis e bibliotecas dos sistemas. /boot Arquivos estáticos necessários a inicialização do sistema. /dev Arquivos de dispositivos de hardware do sistema – discos rígidos, impressoras e etc /etc Arquivos de configuração do sistema /home Lugar onde ficam os diretórios dos usuários /lib Arquivos de biblioteca essências do sistema, utilizados pelos programas em /bin. /mnt Usualmente é o ponto de montagem de dispositivos de máquinas. CDs, DVSs e etc. /proc Informações sobre o Kernel e os processos. /root Diretório local do superusuário /sbin Arquivos essências ao sistema. Normalmente só o superusuário tem acesso a estes arquivos. /tmp Diretório de arquivos temporários. /usr Arquivos pertencentes aos usuários. (É a segunda maior hierarquia de diretório do Linux, só perdendo para o diretório raiz.) /var Diretório onde são guardadas informações variáveis sobre o sistema. 1.2.9 Principais comandos do Linux O Linux possui uma infinidade de comandos que podem ser explorados. Segue abaixo os principais: • apropos: permite localizar programas por assunto; • info: é um sistema mais moderno de obtenção de ajuda sobre um comando; • help: permite obter uma lista dos principais comandos suportados diretamente pelo shell; • locate: localiza arquivos; • man: mostra uma ajuda de um comando; • whatis: exibe o que é determinando comando; • whereis: localizar a página de ajuda (man page), código fonte, ou ficheiros binários, de um determinado programa; • adduser: permite criação de novas contas de usuário; • arch: informa a arquitetura do computador; • exit: finaliza sessão atual. • free: informa a utilização da memória; • halt: utilizado pelo usuário root para desligar o sistema imediatamente; • init: pode ser usado para desligar (0) ou reiniciar (6); • last: informa o histórico de logs do usuário atual; P á g i n a | 8 • login: inicializa uma sessão; • logname: mostra o login de um usuário; • logout: finaliza a sessão atual; • passwd: utilizado para alterar a senha. Parâmetros: (-e: faz com que a senha do usuáro expire, forçando-o a fornecer uma nova senha no próximo login; -k: permite a alteração da senha somente s esta estive expirada; -i: deixa a conta inativa, caso a senha tenha expirado; -l: bloqueia a conta do usuário; -u: desbloqueia uma conta; - S: exibe o status da conta.); • shutdown: também é útil para desligar o sistema. Parâmetros: (-r: reinicializa o computador; -h now: desliga o sistema imediatamente; -r +15: reiniciar em 15 minutos; -h +60: desligar em 60 minutos.); • whoami: mostra o login do usuário atual; • useradd: adiciona usuários ao sistema; • userdel: apaga usuários do sistema; se for usada a tag "-f" até mesmo a pasta do usuário será removida. • alias: possibilita a criação de apelidos para os comandos desejados; • cal: exibe o calendário; • cat: concatena ou mostra o conteúdo de pequenos arquivos de texto; • cd: mudar o diretório; • chown: permite alterar o dono e o grupo de um determinado arquivo, a tag "-R" permite a aplicação em todos os arquivos e subdiretórios; • cp: copia arquivos e diretórios; • cron: executar comandos agendados; • du: informa o espaço ocupado pelos arquivos ou diretórios; • find: procura arquivos; • chmod: altera permissões de acesso de arquivos ou diretórios, o "+" acrescenta uma permissão e o "-" tira uma permissão. Parâmetros: (-u: referente ao dono; -g: referente ao grupo;-o: referenre a outros; -a: referente a todos; -r ou 4: leitura; -w ou 2: escrita/gravação; -x ou 1: execução; -0: sem permissão alguma.); • df: informa os dados de ocupação do sistema de arquivo, mostra as partições usadas ou livres do HD; • history: mostra os comandos que o usuário já digitou; • kill: encerra um ou mais processos em andamento; • ln: conecta arquivos e diretórios, ou seja, cria links para arquivos ou diretórios; • mkdir: cria diretório; • more: mostra conteúdo de um arquivo de texto; • mount: permite fazer a montagem dos dispositivos; • mv: move ou renomeia arquivos; • ps: exibe os processos em execução; • pwd: mostra o diretório atual; • rm: apaga arquivos. Parâmetros: (-r: apara diretórios nao vazios se utilizar; -rf: apaga o diretório sem mostrar as confirmações de exclusão de arquivos.); • rmdir: remove diretórios vazios; • ls: lista o conteúdo de uma diretório, semelhante ao comando dir no MS-DOS; • ipconfig: visualizar os ips da nossa máquina, entre outras funções relacionadas com IPs; • clock: define a hora do processador; • date: exibe a data e hora; • su: é usado geralmente para alternar entre diferentes usuários dentro de um terminal virtual. • tar: cria ou extrai arquivos, muito usado como programa de backup ou compressão de ficheiros; • vi: editor de texto full-screen; • vim: editor de texto full-screen melhorado; • file: determina o tipo de ficheiro • grep: procura um ficheiro por um padrão, sendo um filtro muito útil e usado, por exemplo um cat a.txt | grep ola irá mostrar-nos apenas as linhas do ficheiro a.txt que contenham a palavra “ola”. P á g i n a | 9 • sort: ordena, une ou compara texto, podendo ser usado para extrair informações dos ficheiros de texto ou mesmo para ordenar dados de outros comandos como por exemplo listar ficheiros ordenados pelo nome; • wc: conta linhas, palavras e mesmo caracteres num ficheiro; • tail: funciona de forma inversa ao comando head, mostra-nos as últimas linhas de um ficheiro ou mesmo do output de outro comando, quando usado como filtro; • bg: coloca um processo suspenso em background; • fg: ao contrário do comando bg, o fg traz de volta um processo ao foreground; • top: lista os processos que mais cpu usam, útil para verificar que processos estão a provocar um uso excessivo de memória, e quanta percentagem de cpu cada um usa em dado momento; • wget: permite-nos fazer o download completo de páginas web, com todos os ficheiros, de forma fácil e não interactiva. 1.3 Serviços de diretório: Active Directory e LDAP AD - Active Directory O Active Directory é um sistema baseado em banco de dados que fornece autenticação, diretório, política e outros serviços em um ambiente Windows. Ele armazena informações sobre usuários, computadores e outros dispositivos existentes na rede. O diretório do Active Directory é composto por Objetos. Um objeto representa qualquer recurso que possuímos na rede. Uma conta de usuário que existe no Active Directory é um objeto, um grupo é um objeto, até uma impressora pode ser um objeto para o AD. Objetos Quando criamos um objeto no AD, por exemplo uma conta de usuário, a mesma possui certas propriedades, como por exemplo seu nome, seu nome de logon, telefone, endereço, entre outras. Essas propriedades são o que chamamos de atributos dos objetos. Os principais tipos de objetos que o Active Directory no Windows 2003 nos disponibiliza são: − Contas de usuários − Grupos − Contas de computadores − Pastas Compartilhadas − Impressoras − Contatos. Domínio O Active Directory é composto por domínios. Um domínio é uma unidade administrativa do Active Directory, que irá armazenar seus objetos. Qualquer Windows Server poderá ser o Controlador de Domínio, com exceção da versão Web Edition. Árvores A definição de uma árvore é “um arranjamento hierárquivo de domínios”. Quando criamos o nosso domínio, criamos também uma árvore. O nome de nossa árvore será o mesmo nome que configuramos para o nosso domínio. Através da arvore é possível criarmos subdomínios. Um subdomínio é um domínio que está abaixo de outro domínio na hierarquia da árvore (usamos também o termo “child domain” para o subdomínio). Florestas Uma floresta Windows 2003 é composta de por uma ou mais árvores de domínios Windows 2003 que não compartilham um namespace comum. Uma floresta é o limite mais externo do Active Directory. Se tivermos uma árvore e dois domínios, todos participam da mesma floresta. Mas para ter uma floresta eu preciso de pelo menos uma árvore e um P á g i n a | 10 domínio certo? Sim! E quando a floresta é criada? Ela é criada quando criamos o nosso primeiro domínio. O nome da floresta é o nome do primeiro domínio criado, o qual também chamamos de “forest root domain”. Unidades Organizacionais Para podermos entender a utilização de Organizational Units, vamos pensar em um exemplo simples: você tem os seus arquivos, o qual você coloca em pastas para organizá-los melhor, certo? Você poderia colocá-los direto na raiz de sua unidade? (por exemplo, colocar todos os seus arquivos direto em C:) Sim, poderia. Isso iria funcionar? Sim, iria funcionar. Mas isso seria funcional? Com certeza não. Tudo bem, você saberia onde estão seus arquivos, mas e até você encontrar o que você precisa? Levaria muito mais tempo dessa maneira do que se eles estivesse organizados em pastas específicas. A idéia de Organizational Units, ou como são mais conhecidas “OUs”, é termos pastas para poder organizar melhor os objetos do domínio, poder aplicar configurações de segurança e delegar autoridade administrativa. Por exemplo, se na nossa empresa tivéssemos cinco departamentos com mais ou menos 70 funcionários em cada um deles. Poderíamos colocar todas as contas de usuários, grupos, impressoras, e computadores diretamente no domínio. Mas e se precisássemos aplicar um política de segurança só para os funcionários do departamento de vendas? Teríamos de aplicar a configuração no domínio e ela sobrecairia em todos os objetos do domínio, o que não era o desejado. Mas poderíamos criar uma OU para o departamento vendas, colocar todos os objetos respectivos ao departamento vendas na OU e aplicar a política de segurança na OU, o que nada afetaria os outros objetos do nosso domínio. Além disso, mesmo que não fosse necessário aplicar políticas de segurança específicas para os outros departamentos, poderíamos criar uma OU para cada departamento e colocar os objetos específicos nas OUs. Para visualizarmos as OU que existem em nosso domínio, utilizamos a feramente “Active Directory Users and Computers” que fica na pasta “Administrative Tools”. Resumindo... De forma resumida podemos dizer que os objetos são os usuários e os computadores cadastrados. As unidades organizacionais podem ser criadas para organizar estes usuários e computadores em estruturas para receber configurações da política de grupo (group policy). O domínio é a estrutura que centraliza as unidades organizacionais dentro da rede. As árvores de domínio reunem diversos controladores de domínio em uma estrutura empresarial. E as florestas organizam as árvores de domínios da empresa. Outros conceitos de AD RODC (Controladores de domínio somente leitura): um RODC (controlador de domínio somente leitura) é um novo tipo de controlador de domínio do sistema operacional Windows Server® 2008. Com um RODC, as organizações podem facilmente implantar um controlador de domínio em locais onde não é possível garantir a segurança física. Um RODC hospeda partições somente leitura do banco de dados dos Serviços de Domínio Active Directory® (AD DS). Função Active Directory Rights Management Services: o AD RMS, uma tecnologia agnóstica de aplicativo e formato, fornece serviços para permitir a criação de soluções de proteção de informações. O conteúdo que pode ser protegido pelouso do AD RMS inclui sites de intranet, mensagens de email e documentos. O AD RMS foi criado para ajudar a tornar o conteúdo mais seguro, independentemente de o conteúdo protegido por direitos poder ser movido. O AD RMS depende dos Serviços de Domínio Active Directory (AD DS) para verificar se o usuário que está tentando consumir conteúdo protegido por direitos está autorizado a fazer isso. Função Serviços AD LDS: A função de servidor AD LDS (Active Directory® Lightweight Directory Services) é um serviço de diretório do protocolo LDAP. Ela oferece armazenamento e recuperação de dados para aplicativos habilitados em diretório, sem as dependências necessárias aos Serviços de Domínio Active Directory (AD DS). O AD LDS oferece grande parte da mesma funcionalidade que o AD DS (na verdade, ele foi criado em cima da mesma base de código), mas não requer a implantação de domínios ou controladores de domínio. Como o AD LDS foi desenvolvido para ser um serviço de diretório para aplicativos, é esperado que os aplicativos irão criar, gerenciar e remover objetos de diretório. LDAP - Lightweight Directory Access Protocol P á g i n a | 11 O LDAP (Lightweight Directory Access Protocol) é um protocolo de aplicação para consultar e modificar itens de prestadores de serviços de diretório como o Active Directory, que suporta uma forma de LDAP. Sua função é atualizar e pesquisar diretórios rodando sobre TCP/IP. Ele foi criado como uma alternativa ao DAP (Directory Access Protocol) para navegar em diretórios no formato X.500. O LDAP permite manipular informações sobre pessoas, senhas, impressoras, recursos e serviços, unidades organizacionais, entre outros, e define as formas como essas informações podem ser consultadas, inseridas, removidas ou atualizadas. Uma versão segura desse protocolo, o LDAPS, também está disponível. O LDAP: • Centraliza, em um único local da rede, informações acerca de usuários, senhas e diretórios. • Permite acesso aos dados de forma segura usando SSL. • É independente de plataforma, podendo ser usado tanto no Active Directory do Windows como no Open LDAP do Linux. • Armazena as informações de forma hierárquica em uma estrutura de árvore. • Sofre mais consultas que atualizações. • Suporta tanto a autenticação por meio de certificados quanto o uso de TLS. Um cliente começa uma sessão de LDAP ligando-se a um servidor LDAP normalmente pela porta padrão TCP 389. Este envia requisições para o servidor, que devolve respostas das consultas e alterações. As operações básicas são divididas em três categorias, conforme a seguir: Categoria Operação Descrição Autenticação e controle Bind Autentica e especifica a versão do protocolo LDAP. Autenticação e controle Abandon Aborta uma requisição prévia. Autenticação e controle Unbind Fecha a conexão, não o inverso de Bind. Pesquisa e comparação Search Procura por e/ou recupera entradas dos diretórios. Pesquisa e comparação Compare Testa se uma entrada tem determinado valor como atributo. Atualização Add Adiciona uma nova entrada. Atualização Delete Apaga uma entrada. Atualização Modify Modifica uma entrada. Atualização Modify DN Move ou renomeia uma entrada. Start TLS Protege a conexão com a Transport Layer Security (TLS). Extended Operation Operação genérica para definir outras operações. A estrutura básica das informações LDAP é baseada em uma árvore conceitual, chamada de DIT (Directory Information Tree). Cada folha dessa árvore é um objeto identificado por um DN (Distinguished Name), que representa um endereço na estrutura LDAP sendo considerada. Os identificadores DN possuem uma utilização parecida com os sistemas de arquivo, com a diferença de que a parte mais significativa no LDAP aparece primeiro (ex: cn=Henrique,o=funcionário,ou=administrativo), enquanto nos endereços de arquivo acontece o contrário (ex: /home/user/arquivo). A identificação de elementos do LDAP é semelhante à estrutura utilizada no DNS, com a parte mais significativa aparecendo primeiro (mais à esquerda). Para cada objeto (folha da árvore) são definidos atributos. Alguns dos atributos que podem ser associados aos objetos são: Atributo Descrição c country (País) cn common name dc domainComponent dn distinguished name (define uma entrada sem ambigüidades. É o caminho de registros que fica entre o registro a ser especificado e a raiz) P á g i n a | 12 Givenname Primeiro nome ou organizationalUnitName rdn relative distinguished name (identifica um registro em seu nível) sn surname (sobrenome) uid user ID Registro: contém informações sobre o objeto armazenado (usuário, impressora, etc.). Object class: define quais atributos são obrigatórios e quais são opcionais em um registro. Um registro tem uma ou mais object class. Schema: conjunto de regras que define os tipos de dados possíveis (int, string, etc.) e organização desses dados. Busca manter a consistência dos dados no diretório LDAP. Modelos de abordagem do LDAP • Modelo de informações: define o tipo de informação que pode ser armazenada em um diretório LDAP. Trata dos atributos, das object class, dos schemas, etc. • Modelo de nomes: define como a informação no diretório LDAP pode ser organizada e referenciada. Trata da organização da DIT, como os RDNs e o DNs. • Modelo funcional: define o que pode ser feito com a informação no diretório LDAP e como ela pode ser acessada e alterada. Descreve o que fazer com o diretório e através de quais ferramentas, como por exemplo, fazer autenticação, buscar no diretório, modificar dados, etc. • Modelo de segurança: define como a informação no diretório LDAP pode ser protegida de acessos ou modificações não autorizadas. No LDAP, podemos ter vários usuários além do administrador. Na verdade, caso você deseje, o LDAP pode tratar cada registro da DIT como um usuário. Para dizer o que cada usuário terá permissão de fazer (ler ou modificar) e em quais registros ele poderá fazer isso (registros próprios dele ou dos outros), existem as ACLs (Access Control Lists). O modelo de segurança utiliza o TLS (criptografa a comunicação entre cliente e servidor) e a SASL – Simple Authentication and Secutiry Layer (método de negociação seguro de autenticação entre cliente e servidor para provar ao serviço que um cliente é válido). Resposta curta: AD é um banco de dados de serviços de diretório, e LDAP é um dos protocolos que você pode usar para falar com ele. 2. VIRTUALIZAÇÃO COM CITRIX XEN SERVER E VMWARE ESXI Virtualização de servidores é uma tecnologia que permite, através do compartilhamento de hardware, que múltiplos sistemas operacionais possam ser executadas em um único servidor físico. Utilizando-se do Citrix XenServer ou VMWare ESXi cada máquina virtual é completamente isolada das outras máquinas virtuais. Com a virtualização cada máquina virtual configurada neste processo comporta-se como servidor completo, seguro e totalmente isolado como se fosse um servidor independente. 2.1 Citrix XenServer O XenServer é uma solução de classe empresarial comprovada para computação em nuvem e virtualização de servidores, que reduz drasticamente os custos do datacenter ao transformar os ambientes de TI estáticos e complexos em datacenters virtuais dinâmicos e fáceis de gerenciar. Oferece capacidades de gerenciamento avançadas para integrar e automatizar os datacenters virtuais por uma fração do custo de outras soluções. Requerimentos para instalação XenServer é executado diretamente no seu hardware, então não haverá nada entre o hardware e o XenServer. Em outras palavras, o XenServer funcionará literalmente como o sistema operacional. Ele vai falar diretamente com o hardware, incluindo a interface de rede (NIC) e controlador de armazenamento. P á g i n a | 13 Ele requer uma CPU 64-bit com a tecnologia Intel VT ou AMD-V habilitado, isso é mais comouma especificação recomendada, não significa que XenServer não será instalado se o seu processador não possuir suporte a Intel VT ou AMD-V habilitado. Porém, ele terá seus recursos e funcionalidades bem limitadas. O XenServer é um hypervisor paravirtualizado, usa a técnica de paravirtualização. Portanto, requer que o processador existente em seu servidor físico possua suporte a tecnologia de virtualização para que você aproveite todas as funcionalidades e vantagens dessa tecnologia. É peciso de um mínimo de 2 GB de RAM só para instalar XenServer, mas o recomendado é de pelo menos 8 GB, especialmente se você pretende hospedar múltiplas máquinas virtuais. XenServer sozinho vai exigir 16 GB de espaço em disco. Mas, novamente, você vai precisar de mais para as máquinas virtuais caso deseje hospedá-las localmente. Pode-se instalar até 1 TB de RAM, 16 placas de rede, e 64 processadores lógicos em um host físico que executa o XenServer. Lembre-se que os processadores lógicos é uma combinação dos núcleos, o hyperthreading que está ativado, etc. Abaixo algumas características: • Console de gerenciamento Citrix XenCenter: O Citrix® XenCenter® oferece funções de monitoramento , gerenciamento e administração geral de VMs em uma única interface que permite à equipe de TI gerenciar facilmente centenas de máquinas virtuais a partir de um console de gerenciamento centralizado e altamente disponível, que pode ser instalado em qualquer desktop Windows®. • Virtual Switching Distribuído: O XenServer possui todas as ferramentas necessárias para criar uma estrutura de rede virtual multi-tenant, extremamente flexível e isolada. Esta estrutura baseada em política assegura que a configuração de rede das máquinas virtuais siga a VM quando migra dentro de um pool de recursos. As políticas são definidas no nível da rede virtual garantindo que os requisitos de segurança de rede sejam atendidos independente das configurações da VM convidada. • Balanceamento dinâmico da carga de trabalho: O XenServer aprimora o uso do sistema e a performance dos aplicativos ao balancear automaticamente as máquinas virtuais com base em políticas definidas pelos usuários dentro do pool de recursos, para colocação inicial e operações contínuas. • Alta disponibilidade: O XenServer move e reinicializa automaticamente as máquinas virtuais se houver uma falha na máquina virtual, no hypervisor ou no servidor. Esta capacidade de auto reinicialização permite aos administradores protegerem todos os aplicativos virtualizados e proporciona níveis mais altos de disponibilidade para a empresa. • Gerenciamento de energia: O XenServer aproveita os recursos do hardware para relocar VMs dinamicamente e ligar e desligar hosts conforme a demanda por recursos flutuar. • Recuperação de desastres: O XenServer possui recursos de recuperação de desastres com um planejamento de recuperação de desastres de site-to-site e serviços para ambientes virtuais. Estes recursos são fáceis para configurar, rápidos para recuperar e têm a habilidade de testar frequentemente os planos de recuperação de desastres para garantir que permanecem sempre válidos. • IntelliCache: O XenServer usa o armazenamento local como repositório para as imagens de boot e dados temporários reduzindo o volume de tráfego no Storage para instalações XenDesktop. • Otimização de memória: O XenServer reduz os custos e melhora a performance e a proteção de aplicativos ao compartilhar a memória de servidores sem uso entre as máquinas virtuais no servidor host. • Serviços de provisionamento: O Citrix Provisioning Services™ reduz os requisitos de armazenamento ao criar um conjunto de imagens padrão que podem ser transmitidas para servidores físicos e virtuais para que as instalações de aplicativos sejam mais rápidas, consistentes e confiáveis. • Administração baseada em funções: A administração baseada em funções do XenServer aumenta a segurança e permite acesso delegado, controle e uso dos recursos do pool ao manter uma estrutura de acesso em camadas com níveis de permissão variáveis. P á g i n a | 14 • Citrix StorageLink: O Citrix® StorageLink™ oferece integração com as plataformas líderes de armazenamento de rede, o que permite aos gerentes de armazenamento aproveitarem as ferramentas existentes de gerenciamento de dados para manter os processos de gerenciamento consistentes em ambientes físicos e virtuais. • Proteção e recuperação das máquinas virtuais: O XenServer protege contra a perda de dados em caso de falha nas máquinas virtuais ao tirar snapshots regularmente e arquivar as imagens em um local específico de armazenamento. 2.2 VMWare ESXi O VMware ESXi fornece a base para criação de uma infra estrutura de confiabilidade e dinamismo. Esta ferramenta abstrai os recursos de processador, memória, armazenamento e rede de uma só máquina passando para varias máquinas virtualizada,esta é a ferramenta de Virtualização mais implantada do mercado. O VMware ESXi é a ferramenta mais recente da VMware,ela possui grande arquitetura e não depende de um sistema operacional. O VMware ESXi criou um novo nível de segurança e confiabilidade, possui uma codificação menor, com menos código para corrigir menos erros , tornando esta ferramenta muito difícil de receber ataques. Este software pode ser integrado diretamente aos servidores x86, que é padrão do setor dos fabricantes líderes no mercado de fabricação , como Dell, IBM, HP e Fujitsu-Siemens. A ferramenta ESXi está disponível no site da fabricante gratuitamente para utilizações de servidores únicos. Assim,a área de Tecnologia da Informação utiliza de outra ferramenta gratuita, o VMware vShere client, para gerenciamento dos recursos. O VMware ESXi é instalado diretamente no hardware da máquina, inserindo a camada de Virtualização entre o hardware e o sistema operacional, com o controle geral da máquina, como os servidores que foram instalados, o armazenamento e a rede. As ferramentas VMware ESXi permitem que em um só espaço físico consigamos executar diversos aplicativos em diversas máquinas virtuais ao mesmo tempo. Abaixo algumas características: • Ocupa pouco espaço no disco após a instalação; • Suporta Storages (SAN, NAS,...); • Possibilita a criação de Redes Virtuais (switches virtuais); • Suporte a VLAN, Traffic Shapping; • Suporte a Paravirtualização; • Suporte a multiprocessadores; • Melhoria no gerenciamento de recursos( através da funcionalidade "Pool de Recursos"); • Upgrades(para versões pagas) sem precisar de reinstalação; • Snapshots do disco e da memória; • Downloads e Uploads de VMs (download pode ser "a quente"); • Priorização de I/O ao disco; • Ordem de Boot e Shutdown. 2.3 Diferenças entre o Xen Server e VMware ESXi Funcionalidades Citrix XenServer 6 VMware ESXi 5 Suporte a Vários Sockets (Processador Físico) Sem restrições Suporte a Somente 01 Socket (Processador Físico) Memória Ram no Host 1 TB RAM no Host 32 GB no Host Tamanho máximo de Memória RAM na VM 128 GB RAM 32 GB RAM Instalação Bare-metal Gratuito Gratuito P á g i n a | 15 Ferramentas de migração P2V e V2V Gratuitas Gratuito Gratuito Gerenciamento Múltiplo de Servidores Gratuito Não possui. Gerenciamento Comprar vCenter Server Pools de Recursos (Cluster) e Storage Compartilhado Gratuito. Para servidores com mesmo hardware Não possui Snapshots de máquinas virtuais (VM) Gratuito Não possui Monitoramento de performance em tempo Real Grauito Não possui Migração a Quente (XenMotion) e Backup de VMs Incluso Gratuito Não possui Quantidade de vCPU (Processador Virtual) por máquina Virtual Suporte a 16 vCPU para VMs Windows e suporte a 32 vCPU para VMs Linux 8 vCPU para cada VM Modo Manutenção Incluso Não possui Atualização do Hypervisor Facilitado com Assistentes dentro do XenCenter Linha de comando TemplatesVMs Gratuito Não Possui Clonar VMs Gratuito Não Possui Suporte a SNMP Gratuito Não Possui 3. COMPUTAÇÃO EM NUVEM O conceito de computação em nuvem (em inglês, cloud computing) refere-se à utilização da memória e das capacidades de armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade. O armazenamento de dados é feito em serviços que poderão ser acessados de qualquer lugar do mundo, a qualquer hora, não havendo necessidade de instalação de programas ou de armazenar dados. O acesso a programas, serviços e arquivos é remoto, através da Internet - daí a alusão à nuvem. O uso desse modelo (ambiente) é mais viável do que o uso de unidades físicas. Num sistema operacional disponível na Internet, a partir de qualquer computador e em qualquer lugar, pode-se ter acesso a informações, arquivos e programas num sistema único, independente de plataforma. O requisito mínimo é um computador compatível com os recursos disponíveis na Internet. O PC torna-se apenas um chip ligado à Internet — a "grande nuvem" de computadores — sendo necessários somente os dispositivos de entrada (teclado, mouse) e saída (monitor). Empresas como Amazon, Google, IBM e Microsoft foram as primeiras a iniciar uma grande ofensiva nessa "nuvem de informação" (information cloud), que especialistas consideram uma "nova fronteira da era digital". Aos poucos, essa tecnologia vai deixando de ser utilizada apenas em laboratórios para ingressar nas empresas e, em breve, em computadores domésticos. O primeiro serviço na Internet a oferecer um ambiente operacional para os usuários—antigamente, disponível no endereço www.webos.org—foi criado por um estudante sueco, Fredrik Malmer, utilizando as linguagens XHTML e Javascript. Atualmente, o termo AJAX é adotado para definir a utilização dessas duas linguagens na criação de serviços na Internet. Em 1999, foi criada nos EUA a empresa WebOS Inc., que comprou os direitos do sistema de Fredrik e licenciou uma série de tecnologias desenvolvidas nas universidades do Texas, Califórnia e Duke. O objetivo inicial era criar um ambiente operacional completo, inclusive com API para o desenvolvimento de outros aplicativos. Tipologia P á g i n a | 16 Atualmente, a computação em nuvem é dividida em sete tipos: • IaaS: Infrastructure as a Service ou Infraestrutura como Serviço (em português): quando se utiliza uma percentagem de um servidor, geralmente com configuração que se adeque à sua necessidade. • PaaS: Plataform as a Service ou Plataforma como Serviço (em português): utilizando-se apenas uma plataforma como um banco de dados, um web-service, etc. (p.ex.: Windows Azure e Jelastic). • DevaaS: Development as a Service ou Desenvolvimento como Serviço (em português): as ferramentas de desenvolvimento tomam forma na computação em nuvem como ferramentas compartilhadas, ferramentas de desenvolvimento web-based e serviços baseados em mashup. • SaaS: Software as a Service ou Software como Serviço (em português): uso de um software em regime de utilização web (p.ex.: Google Docs , Microsoft SharePoint Online). • CaaS: Communication as a Service ou Comunicação como Serviço (em português): uso de uma solução de Comunicação Unificada hospedada em Data Center do provedor ou fabricante (p.ex.: Microsoft Lync). • EaaS: Everything as a Service ou Tudo como Serviço (em português): quando se utiliza tudo, infraestrurura, plataformas, software, suporte, enfim, o que envolve T.I.C. (Tecnologia da Informação e Comunicação) como um Serviço. • DBaas: Data Base as a Service ou Banco de dados como Serviço (em português): quando utiliza a parte de servidores de banco de dados como serviço. Serviços oferecidos Os seguintes serviços atualmente são oferecidos por empresas: • Servidor Cloud • Hospedagem de Sites em Cloud • Load Balancer em Cloud • Email em Cloud Característica de computação em nuvem • Provisionamento dinâmico de recursos sob demanda, com mínimo de esforço; • Escalabilidade; • Uso de "utilility computing", onde a cobrança é baseada no uso do recurso ao invés de uma taxa fixa; • Visão única do sistema; • Distribuição geográfica dos recursos de forma transparente ao usuário. Modelo de implantação No modelo de implantação, dependemos das necessidades das aplicações que serão implementadas. A restrição ou abertura de acesso depende do processo de negócios, do tipo de informação e do nível de visão desejado. Percebemos que certas organizações não desejam que todos os usuários possam acessar e utilizar determinados recursos no seu ambiente de computação em nuvem. Segue abaixo a divisão dos diferentes tipos de implantação: • Privado: As nuvens privadas são aquelas construídas exclusivamente para um único usuário (uma empresa, por exemplo). Diferentemente de um data center privado virtual, a infraestrutura utilizada pertence ao usuário, e, portanto, ele possui total controle sobre como as aplicações são implementadas na nuvem. Uma nuvem privada é, em geral, construída sobre um data center privado. • Público: As nuvens públicas são aquelas que são executadas por terceiros. As aplicações de diversos usuários ficam misturadas nos sistemas de armazenamento, o que pode parecer ineficiente a princípio. Porém, se a implementação de uma nuvem pública considera questões fundamentais, como desempenho e segurança, a P á g i n a | 17 existência de outras aplicações sendo executadas na mesma nuvem permanece transparente tanto para os prestadores de serviços como para os usuários. • Comunidade: A infraestrutura de nuvem é compartilhada por diversas organizações e suporta uma comunidade específica que partilha as preocupações (por exemplo, a missão, os requisitos de segurança, política e considerações sobre o cumprimento). Pode ser administrado por organizações ou por um terceiro e pode existir localmente ou remotamente. • Híbrido: Nas nuvens híbridas temos uma composição dos modelos de nuvens públicas e privadas. Elas permitem que uma nuvem privada possa ter seus recursos ampliados a partir de uma reserva de recursos em uma nuvem pública. Essa característica possui a vantagem de manter os níveis de serviço mesmo que haja flutuações rápidas na necessidade dos recursos. A conexão entre as nuvens pública e privada pode ser usada até mesmo em tarefas periódicas que são mais facilmente implementadas nas nuvens públicas, por exemplo. O termo computação em ondas é, em geral, utilizado quando se refere às nuvens híbridas. Vantagens A maior vantagem da computação em nuvem é a possibilidade de utilizar softwares sem que estes estejam instalados no computador. Mas há outras vantagens: � Na maioria das vezes o usuário não precisa se preocupar com o sistema operacional e hardware que está usando em seu computador pessoal, podendo acessar seus dados na "nuvem computacional" independentemente disso; � As atualizações dos softwares são feitas de forma automática, sem necessidade de intervenção do usuário; � O trabalho corporativo e o compartilhamento de arquivos se tornam mais fáceis, uma vez que todas as informações se encontram no mesmo "lugar", ou seja, na "nuvem computacional"; � Os softwares e os dados podem ser acessados em qualquer lugar, basta apenas que haja acesso à Internet, não são mais restritos ao ambiente local de computação, nem dependem da sincronização de mídias removíveis. � O usuário tem um melhor controle de gastos ao usar aplicativos, pois a maioria dos sistemas de computação em nuvem fornece aplicações gratuitamente e, quando não gratuitas, são pagas somente pelo tempo de utilização dos recursos. Não é necessário pagar por uma licença integral de uso de software; � Diminui a necessidade de manutenção da infraestrutura física de redes locais cliente/servidor, bem como da instalação dossoftwares nos computadores corporativos, pois esta fica a cargo do provedor do software em nuvem, bastando que os computadores clientes tenham acesso à Internet; � A infraestrutura necessária para uma solução de computação em nuvem é bem mais enxuta do que uma solução tradicional de hospedagem ou alojamento, consumindo menos energia, refrigeração e espaço físico e consequentemente contribuindo para a preservação e o uso racional dos recursos naturais. Desvantagens A maior desvantagem da computação em nuvem vem fora do propósito desta, que é o acesso a internet. Caso você perca o acesso, comprometerá todos os sistemas embarcados. � Velocidade de processamento: caso seja necessário uma grande taxa de transferência, se a internet não tiver uma boa banda, o sistema pode ser comprometido. Um exemplo típico é com mídias digitais ou jogos; � Assim como todo tipo de serviço, ele é custeado. � Maior risco de comprometimento da privacidade do que em armazenamento off-line. Gerenciamento da segurança da informação na nuvem Sete princípios de segurança em uma rede em nuvem: • Acesso privilegiado de usuários: A sensibilidade de informações confidenciais nas empresas obriga um controle de acesso dos usuários e informação bem específica de quem terá privilégio de administrador, para então esse administrador controle os acessos P á g i n a | 18 • Compliance com regulamentação: As empresas são responsáveis pela segurança, integridade e a confidencialidade de seus próprios dados. Os fornecedores de computação em nuvem devem estar preparados para auditorias externas e certificações de segurança. • Localização dos dados: A empresa que usa cloud provavelmente não sabe exatamente onde os dados estão armazenados, talvez nem o país onde as informações estão guardadas. O fornecedor deve estar disposto a se comprometer a armazenar e a processar dados em jurisdições específicas, assumindo um compromisso em contrato de obedecer os requerimentos de privacidade que o país de origem da empresa pede. • Segregação dos dados: Geralmente uma empresa divide um ambiente com dados de diversos clientes. Procure entender o que é feito para a separação de dados, que tipo de criptografia é segura o suficiente para o funcionamento correto da aplicação. • Recuperação dos dados: O fornecedor em cloud deve saber onde estão os dados da empresa e o que acontece para recuperação de dados em caso de catástrofe. Qualquer aplicação que não replica os dados e a infra- estrutura em diversas localidades está vulnerável a falha completa. Importante ter um plano de recuperação completa e um tempo estimado para tal. • Apoio à investigação: A auditabilidade de atividades ilegais pode se tornar impossível na computação em nuvem uma vez que há uma variação de servidores conforme o tempo onde estão localizados os acessos e os dados dos usuários. Importante obter um compromisso contratual com a empresa fornecedora do serviço e uma evidência de sucesso no passado para esse tipo de investigação. • Viabilidade em longo prazo: No mundo ideal, o seu fornecedor de computação em nuvem jamais vai falir ou ser adquirido por uma empresa maior. A empresa precisa garantir que os seus dados estarão disponíveis caso o fornecedor de computação em nuvem deixe de existir ou seja migrado para uma empresa maior. Importante haver um plano de recuperação de dados e o formato para que possa ser utilizado em uma aplicação substituta. Sistemas atuais Os sistemas operacionais para Internet mais utilizados são: • Google Chrome OS: Desenvolvido pela Google, já incorporado nos Chromebooks, disponíveis desde 15 de junho de 2011. Trabalha com uma interface diferente, semelhante ao do Google Chrome, em que todas as aplicações ou arquivos são salvos na nuvem e sincronizados com sua conta do Google, sem necessidade de salvá-los no computador, já que o HD dos dois modelos de Chromebooks anunciados contam com apenas 16gb de HD. • Joli Os: desenvolvido por Tariq Krim, o ambiente de trabalho chamado jolicloud usa tanto aplicativos em nuvem quanto aplicativos offline, baseado no ubuntu notebook remix, já tem suporte a vários navegadores como google chrome, safari, firefox, e está sendo desenvolvido para funcionar no android. • YouOS: desenvolvido pela empresa WebShaka, cria um ambiente de trabalho inspirado nos sistemas operacionais modernos e utiliza a linguagem Javascript para executar as operações. Ele possui um recurso semelhante à hibernação no MS-Windows XP, em que o usuário pode salvar a área de trabalho com a configuração corrente, sair do sistema e recuperar a mesma configuração posteriormente. Esse sistema também permite o compartilhamento de arquivos entre os usuários. Além disso, possui uma API para o desenvolvimento de novos aplicativos, sendo que já existe uma lista de mais de 700 programas disponíveis. Fechado pelos desenvolvedores em 30 de julho de 2008; • DesktopTwo: desenvolvido pela empresa Sapotek, tem como pré-requisito a presença do utilitário Flash Player para ser utilizado. O sistema foi desenvolvido para prover todos os serviços necessários aos usuários, tornando a Internet o principal ambiente de trabalho. Utiliza a linguagem PHP como base para os aplicativos disponíveis e também possui uma API, chamada Sapodesk, para o desenvolvimento de novos aplicativos. Fechado para desenvolvedores; • G.ho.st: Esta sigla significa “Global Hosted Operating SysTem” (Sistema Operacional Disponível Globalmente), tem como diferencial em relação aos outros a possibilidade de integração com outros serviços como: Google Docs, Meebo, ThinkFree, entre outros, além de oferecer suporte a vários idiomas; • eyeOS: Este sistema está sendo desenvolvido por uma comunidade denominada EyeOS Team e possui o código fonte aberto ao público. O objetivo dos desenvolvedores é criar um ambiente com maior compatibilidade com os P á g i n a | 19 aplicativos atuais, MS-Office e OpenOffice. Possui um abrangente conjunto de aplicativos, e o seu desenvolvimento é feito principalmente com o uso da linguagem PHP. • iCloud: Sistema lançado pela Apple em 2011, é capaz de armazenar até 5 GB de fotos, músicas, documentos, livros e contatos gratuitamente, com a possibilidade de adquirir mais espaço em disco (pago). • Ubuntu One: Ubuntu One é o nome da suíte que a Canonical (Mantenedora da distribuição Linux Ubuntu) usa para seus serviços online. Atualmente com o Ubuntu One é possível fazer backups, armazenamento, sincronização e compartilhamento de arquivos e vários outros serviços que a Canonical adiciona para oferecer mais opções e conforto para os usuários. • IBM Smart Business: Sistema da IBM que engloba um conjunto de serviços e produtos integrados em nuvem voltados para a empresa. O portfólio incorpora sofisticada tecnologia de automação e autosserviço para tarefas tão diversas como desenvolvimento e teste de software, gerenciamento de computadores e dispositivos, e colaboração. Inclui o Servidor IBM CloudBurst server (US) com armazenamento, virtualização, redes integradas e sistemas de gerenciamento de serviço embutidos. • Dropbox: Dropbox é um sistema de armazenamento em nuvem que inicia-se gratuitamente com 2gb e conforme indica amigos o espaço para armazenamento de arquivos cresce até 18gb. Também tem opções pagas com maior espaço. • Skydrive: Serviço de armazenamento em nuvem da Microsoft com 7gb free e com a possibilidade de adquirir mais espaço. Tem serviços sicronizados com o windows 8, windows phone e Xbox. 4. SERVIDORES HTTP APACHE O servidor Apache (ou Servidor HTTP Apache, em inglês: Apache HTTP Server, ou simplesmente: Apache) é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications). Numa pesquisa realizada em dezembro de 2007, foi constatado que a utilização do Apache representa 47.20% dosservidores ativos no mundo. Em maio de 2010, o Apache serviu mais de 54,68% de todos os sites e mais de 66% dos milhões de sites mais movimentados. É a principal tecnologia da Apache Software Foundation, responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos. O servidor é compatível com o protocolo HTTP versão 1.1. Suas funcionalidades são mantidas através de uma estrutura de módulos, permitindo inclusive que o usuário escreva seus próprios módulos - utilizando a API do software. Sua porta padrão é a 80. É disponibilizado em versões para os sistemas Windows, Novell Netware, OS/2 e diversos outros do padrão POSIX (Unix, Linux, FreeBSD, etc.). Para garantir segurança nas transações HTTP, o servidor dispõe de um módulo chamado mod_ssl, o qual adiciona a capacidade do servidor atender requisições utilizando o protocolo HTTPS. Este protocolo utiliza uma camada SSL para criptografar todos os dados transferidos entre o cliente e o servidor, provendo maior grau de segurança, confidencialidade e confiabilidade dos dados. A camada SSL é compatível com certificados X.509, que são os certificados digitais fornecidos e assinados por grandes entidades certificadoras no mundo. O servidor é configurado por um arquivo mestre nomeado httpd.conf e opcionalmente pode haver configurações para cada diretório utilizando arquivos com o nome .htaccess, onde é possível utilizar autenticação de usuário pelo próprio protocolo HTTP utilizando uma combinação de arquivo .htaccess com um arquivo .htpasswd, que guardará os usuários e senhas (criptografadas). Características do servidor Apache O Apache Server é um software livre, o que significa que qualquer um pode estudar ou alterar seu código-fonte, além de poder utilizá-lo gratuitamente. É graças a essa característica que o software foi (e continua sendo) melhorado ao passar dos anos. Graças ao trabalho muitas vezes voluntário de vários desenvolvedores, o Apache continua sendo o servidor Web mais usado no mundo. Além de estar disponível para o Linux (e para outros sistemas operacionais baseados no P á g i n a | 20 Unix), o Apachetambém conta com versões para o Windows, para o Novell Netwar e para o OS/2, o que o torna uma ótima opção para rodar em computadores obsoletos (desde que este atenda aos requisitos mínimos de hardware). O servidor Apache é capaz de executa código em PHP, Perl, Shell Script e até em ASP e pode atuar como servidor FTP, HTTP, entre outros. Sua utilização mais conhecida é a que combina o Apache com a linguagem PHP e o banco de dados MySQL (combinação usada aqui no InfoWester, por exemplo). A exigência de hardware do Apache depende de sua aplicação, mas um PC Pentium com 64 MB de memória RAM é capaz de executá-lo tranqüilamente em um ambiente corporativo pequeno. No entanto, quando se trata de um site na internet, é interessante ter máquinas tão poderosas quanto o que exige o nível de acesso. Abaixo, segue um resumo com as principais características (extraído do Guia Foca Linux): • Possui suporte a scripts cgi usando linguagens como Perl, PHP, Shell Script, ASP, etc; • Suporte a autorização de acesso podendo ser especificadas restrições de acesso separadamente • para cada endereço/arquivo/diretório acessado no servidor; • Autenticação requerendo um nome de usuário e senha válidos para acesso a alguma página/sub- diretório/arquivo (suportando criptografia via Crypto e MD5); • Negociação de conteúdo, permitindo a exibição da página Web no idioma requisitado pelo Cliente Navegador; • Suporte a tipos mime; • Personalização de logs; • Mensagens de erro; • Suporte a virtual hosting (é possível servir 2 ou mais páginas com endereços/ portas diferentes através do mesmo processo ou usar mais de um processo para controlar mais de um endereço); • Suporte a IP virtual hosting; • Suporte a name virtual hosting; • Suporte a servidor Proxy ftp e http, com limite de acesso, caching (todas flexivelmente configuráveis); • Suporte a proxy e redirecionamentos baseados em URLs para endereços Internos; • Suporte a criptografia via SSL,Certificados digitais; • Módulos DSO (Dynamic Shared Objects) permitem adicionar/remover funcionalidades e recursos sem necessidade de recompilação do programa. 5. LINGUAGEM DE PROGRAMAÇÃO PYTHON E FRAMEWORK DE DESENVOLVIMENTO WEB DJANGO 5.1 Framework de Desenvolvimento Web Django Django é um framework para desenvolvimento rápido para web, escrito em Python, que utiliza o padrão MTV (model - template - view). Foi criado originalmente como sistema para gerenciar um site jornalístico na cidade de Lawrence, no Kansas. Tornou-se um projeto de código aberto e foi publicado sob a licença BSD em 2005. O nome Django foi inspirado no músico de jazz Django Reinhardt. Django utiliza o princípio DRY (Don't Repeat Yourself), onde faz com que o desenvolvedor aproveite ao máximo o código já feito, evitando a repetição. Principais características: • Mapeamento Objeto-Relacional (ORM): com o ORM do Django você define a modelagem de dados através de classes em Python. Com isso é possível gerar suas tabelas no banco de dados e manipulá-las sem necessidade de utilizar SQL (o que também é possível). • Interface Administrativa: no Django é possível gerar automaticamente uma interface para administração para os modelos criados através do ORM. • Formulários: é possível gerar formulários automaticamente através dos modelos de dados. • URLs Amigáveis: no Django não há limitações para criação de URLs amigáveis e de maneira simples. P á g i n a | 21 • Sistema de Templates: o Django tem uma linguagem de templates poderosa, extensível e amigável. Com ela você pode separar design, conteúdo e código em Python. • Sistema de Cache: o Django possui um sistema de cache que se integra ao memcached ou em outros frameworks de cache. • Internacionalização: Django tem total suporte para aplicações multi-idioma, deixando você especificar strings de tradução e fornecendo ganchos para funcionalidades específicas do idioma. 5.2 Linguagem Python Python é uma linguagem de programação de alto nível , interpretada, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. Foi lançada por Guido van Rossum em 1991. Atualmente possui um modelo de desenvolvimento comunitário, aberto e gerenciado pela organização sem fins lucrativos Python Software Foundation. Apesar de várias partes da linguagem possuírem padrões e especificações formais, a linguagem como um todo não é formalmente especificada. O padrão de facto é a implementação CPython. A linguagem foi projetada com a filosofia de enfatizar a importância do esforço do programador sobre o esforço computacional. Prioriza a legibilidade do código sobre a velocidade ou expressividade. Combina uma sintaxe concisa e clara com os recursos poderosos de sua biblioteca padrão e por módulos e frameworks desenvolvidos por terceiros. O nome Python teve a sua origem no grupo humorístico britânico Monty Python, criador do programa Monty Python's Flying Circus, embora muitas pessoas façam associação com o réptil do mesmo nome (em português, píton ou pitão). Construções Construções de Python incluem: estrutura de seleção (if, else, elif); estrutura de repetição (for, while), que itera por um container, capturando cada elemento em uma variável local dada; construção de classes (class); construção de subrotinas (def); construção de escopo (with), como por exemplo para adquirir um recurso. Tipos de dado A tipagem de Python é forte, pois os valores e objetos têm tipos bem definidos e não sofrem coerções como em C ou Perl. São disponibilizados diversos tipos de dados nativos: Tipo de dado Descrição Exemplo da sintaxe
Compartilhar