História dos Sistemas - 3a Semana de SI

456
-1

Published on

Versão da Palestra apresentada na 3a Semana de SI da EACH USP Leste

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
456
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • 09/22/11
  • História dos Sistemas - 3a Semana de SI

    1. 1. História dos SistemasPorque estamos fazendo desse jeitosob uma perspectiva da web moderna lorieri@ google mail dot com
    2. 2. Agenda Presente Passado Futuro
    3. 3. A Web MudouCom ajuda do passado De olho no futuro
    4. 4. Quem eu NÃO Sou- não sou programador- não sou cientista- não sou professor de português- não sou historiadorSou apenas um “velho” sysadmin - "Surge" pode significar "se tornou popular em dado momento" ou "agora é hora de falar sobre isso na apresentação" - "Hacker" aqui é o Cracker, o malvado - A sequencia dos fatos não são precisas
    5. 5. 1 - Começo, primeiro computador elétrico- Computadores para propósitos gerais- Caros $$$$ ... e fracos (CPU, memória, I/O)- Sem Disco- Somente linguagem de máquina- Somente cientistas, só para governos e grandes instituições- Bugs: insetos de verdade Sem rede !!!
    6. 6. 2 – Era Comercial, computadores corporativosEmpresas: Menos CPU e Mais Armanezamento- Tecnologia de teares de 1795 para entrada de dados, armazenamento e processamento- Tempo de CPU muito caro, programadores não tinham acesso aos computadores- Programação em lote (Batch) = aproveitamento de tempo de CPU- Mais simples = Mão de obra- Menores Preços = Mais fornecedores comerciais- Surge o LEO, o primeiro computador corporativo, meu nome ;) Primeira "modinha": Batch vs Multiprogramação (Cpu vs Pessoas)
    7. 7. Empresas e CiênciaProcessamento de Dados Cálculos
    8. 8. 3 - InterpretadoresAbstração de linguagem, melhorar produtividade 1 - Carrega o interpretador dos cartões para a memória 2 - Carrega o código dos cartões 3 - Executa o código na memória 4 - Imprime (na impressora) os resultados 5 – Remove/Limpa a memória para o próximo lote- Surgimento de fitas magnéticas- Começo da abstração de hardware (System Calls) primórdio dos “frameworks”- Mão de obra de estudantes
    9. 9. from Tanenbaums bookfrom Tanenbaums book
    10. 10. 4 - Circuito IntegradoComeço da Lei de Moore- Redução do tamanho- Mais poder de processamento !!!- Mais memória !!!- Mais armazenamento !!!- Mais I/O (velocidade de transferência de dados)- Componentes menores = Mais fáceis de produzir = Maior Quantidade = Custo Menor = Menores Preços- Popularização = Mão de obra
    11. 11. E o que fazer com tanto poder ?- Multi-tarefa virtual, divisão do tempo
    12. 12. 5 - Multi-programaçãoModinha virou realidade- "THE Multiprogramming System", muti-tarefa - THE introduziu bugs e a coexistência com eles - THE introduziu os níveis de execução - THE introduziu a paginação de memória- Surge a camada de abstração do sistema de arquivos, pedaços de memória viraram arquivos persistentes- Surge a comunicação inter-processos (IPC)- Conceitos de manipulação de erro amadurecem
    13. 13. System Levels +Access Control +Bugs +Complexity=HACKERS !!!
    14. 14. 6 - RedesMulti-programming necessitava de multi terminais- Mais acesso = mais mão-de-obra- Popularização entre universidades- Mais criatividade e colaboração- Mais Hackers- Mais Bugs
    15. 15. 7 - MainframesPilhas de CPUs- Tempo é dinheiro: hardware tolerante a falhas- Redes escassas contribuíram para centralização- Custos centralizados de manutenção- Começo da Virtualização- Surgem os hypervisors- Mão de obra super especializada
    16. 16. 8 - PCTerminal crescido- Necessidades básicas de empresas- Jogos !- Podia ser conectado em um computador central- Sem time-sharing, sem multi-tasking- Surge o DBM, banco de dados de chave-valor, para persistir memória no disco. Configurações, ranking dos jogos, etc.- Microsoft lança seu popular e barato Sistema Operacional para pequenas máquinas
    17. 17. 9 - CaosConhecimento + Redes + Bugs + Popularização = Segurança no Hardware a MMU MMU mapeia a memória para criar/traduzir endereços virtuais de memória de modo que os programas não consigam roubar espaços um dos outros... e a lei era: computadores reduzem a duplicação de dados (armazenamento era caro...)RAM ainda uma fração do armazenamento permanente
    18. 18. 10 - Popularização- Redes mais longas e melhores- Mais RAM, Mais Storage- Mais Bugs e mais hackers- Conhecimento = Mais mão-de-obra- Melhores preços !! Surge o banco de dados relacional (SQL) Surgem os softwares livres e de código fonte aberto
    19. 19. 11 - Cliente/Servidor (era da latência) Máquinas pequenas realizando taredas específicas de modo centralizado - Parte do Processamento local - Decadência dos Mainframes - Surge o roteador: INTERNET virou realidade! - Websites pequenos e estáticos - Arquitetura mais simples, mais fornecedores - Internet = fácil acesso ao conhecimento - Mão de obra mais cara que o tempo de CPU = maior foco em produtividade
    20. 20. EmpresasMainframes Client/Server
    21. 21. 12 - Web dinâmica$$$$$$$$- Apache inventa os Virtual Hosts: 1 computador = vários sites- Surge o PHP: programação simples para internet Estilo Abre-roda-morre*milhões = Alta escalabilidade- Surge o RPC = Comunicação Remota de Processos- O conceito da MMU para virtualizar IPs: Ip Masq 1 IP = diversos computadores conectados- Muita mão-de-obra criando milhões de pequenos e simples sistemas web- Mais bugs, mais hackers
    22. 22. Shopping = Dinheiro Tempo é Dinheiro Tempo = Alta DisponibilidadeShopping = Experiência do Usuário
    23. 23. Pessoas começaram aescrever a resposta emcima dos e-mails
    24. 24. 13 - Caos FísicoMorte da Lei de Moore- Solução: inovações no software- Discos maiores, porém lentos, não acompanham velocidade do CPU Porém, RAMs maiores, mais rápidas e mais baratas!- Nomes sofisticados e estranhos para especialistas em informática: - Engenheiro - Arquiteto - "Operador" agora é "System Administrator” - “Governança em TI”- Lei de Moore virou um Objetivo, e ter objetivos é muito bom
    25. 25. 14 - Paralelismo crucialÚnico jeito de aumentar o poder de processamento- Sistemas Multi CPUs, CPUs multi core, Cores multi threaded- Real multi-tasking popular !!! (Multi-tarefa real)- Muitos, muitos, muitos bugs- Memórias pra todo lado, como buffers e caches: - File systems buffers and caches - CPU cache - HD buffers and caches - Disc controllers buffers and cachesLei de Amdahl: "...se 95% do programa pode ser paralelizado, o aumentoteórico de performance máximo atingido usando paralelismo será de 20x...não importa quantos processadores serão usados."
    26. 26. ... e depois de tanto tempo, o Windows aprendeu comousar os níveis de execução, a memória virtual e conseguiudiminuir os travamentos do sistema :)
    27. 27. 15 - Virtualização- Multi-processamento = Popularização de Virtualização - Consolidação de vários sistemas em uma única máquina- Fácil de rodar testes e POCs- Facilidade de criar ambientes de contingênciaPorém: I/O de computador comum e dividido em várias máquinas virtuais :(
    28. 28. EmpresasMainframes Client/Server
    29. 29. Mainframes trabalham com paralelismo, caches dehardware, virtualização, multi-core e multi-cpus há 50 anos, pelos menos motivos. (porém com latência de I/O menor )
    30. 30. 16 - Situação atualQuantidade de dados crescendo absurdamente- Poder de processamento não é suficientemente- Armazenamento e largura de banda crescendo, porém latência diminuindo em taxas muito baixasSignificando: Banco de dados central é o gargalo e atual vilão. Largura de banda = tamanho total de operações em um espaço de tempo Latência = tempo mínimo de uma operação Banco de dados fazem ~ milhares de pequenas operações de I/O por segundo. E muitas operações que não deveriam ser colocadas em caches e buffers
    31. 31. 17 - Como os softwares podem ajudar? - Separando os acessos a disco? - Ajustar tudo na memória? - Quebrar a lei de não duplicar dados para evitar acessos a disco ? Tudo isso + camada de rede em tudo (Federation) - Estilo PHP clássico ficando obsoleto - sem fácil/barato compartilhamento de memória - sem fácil/barata comunicação entre processos - sem fácil/barato controle de “lock” - Distribuição de dados e tarefas, mais componentes no backend Surgem Software Loadbalancer mais simples e baratos !!! Lembra do IPC e RPC ? Evoluíram para ser a API, "Comunicação inter-Aplicações” - Use massivo de Soap e REST
    32. 32. 18 - Acessos mais lentos (I/O)Mais latência, recursos fora das máquinas- Caches saíram da máquina local, viram sistemas dedicados- Tempo de resposta mais lentos levaram à abordagens Assíncronas- Filas e Message Brokers- Manipulação de error mais importante que nunca (Design for failures)Lembra do DBM ? Saiu do computador, ganhou uma camada de rede e virou Sistemas NoSqlLembra do MMU ? Teve um neto chamado: Hash Partitioning (DHT - Distributed hash table) = ShardingAcesso a dados mais complicados: 2 entre 3: consistência, disponibilidade e distribuição de dados (CAP)
    33. 33. Topologia do Netflix
    34. 34. 1 ns = .000000001 segundo pior para multi-cpu ou virtual machines “Pipelines”quantos pedaços de hardware pode falhar entre EUA e Europa? http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf
    35. 35. 19 - Muitos desafiosMais complexo = mais falhas = tolerância a falhas (Design for failures)- Complexidade requer maior abstração = mar de FrameworksLembra do níveis de execução? Saíram do computador: - Development Environment - Testing Environment - Staging Environment - Production EnvironmentRollbacks não são mais triviaisComplexidade = processos e automaçãoUm grande problema: controle de acesso agora é mundial
    36. 36. Ter mais ambientes antes do ambiente de produção não é burocracia, É liberdade
    37. 37. 20 - SSD ?- No começo eram bugados, tempo de vida curto- SSD foram bem vindos, mas para se juntar a festa... ...pq desafios trouxeram motivação- Ainda são muito caros- Muito usados como grandes buffers e caches, mais rápidos discos porém mais lentos que a memória
    38. 38. 21 - *aaS Era *aaS = * as a Service Mainframe ? Evoluiu para ser a nuvem - Mesmo modelo Pay-per-use, assim como eletricidade e telefonia - Serviço aaS: "Me dê um login e uma senha” - Hardware aaS: system call ? Tornou-se "cloud call”, chamada para uma instância de hardware completo. - redução de desperdícios - capacidade para picos - Software (ou Platform) aaS: Abstração de Hardware - Deploy tornando-se “commodity”
    39. 39. 22 - Nova ordem mundial- Updates constantes (especialmente Github)- Sistemas nascem distribuídos- Programação orientada a eventos agora na web (Erlang, Nginx, NodeJS)- Linguagens funcionais na Web (stateless, de fácil distribuição)- Browser para gravar, processar e cachear- Uso massivo de comunicação JSON- Serem humanos se comunicando no estilo IPC (Twitter)- Diversos Dispositivos- Ao contrário dos tempos dos Mainframes, os dados são maiores do que um único computador sequer imagina em processar - Map-reduce para todos esses dados
    40. 40. Troca de mensagens e programação orientada a eventos é exatamente o que o kernel vem fazendo por 40 anos
    41. 41. Y U NOPARALLELIZE EASILY !?!?!?!
    42. 42. 23 - Por que web devs não paralelizam ?"Entretanto, novas tecnologias são sempre difíceis de usar no começo, mas tornam-se invariavelmente Is Parallel Programming Hard, And, If mais simples com o passar do tempo. Por exemplo, So,What Can You Do About It? havia um tempo em que a habilidade de dirigir um Edited by: carro era para poucos, porém em vários países em Paul E. McKenney desenvolvimento, essa habilidade agora é comum. Linux Technology Center Essa mudança dramática aconteceu por razões bá- IBM Beaverton sicas: (1) carros ficaram mais baratos e mais paulmck@linux.vnet.ibm.com fáceis de possuir, dando mais oportunidade para mais January 2, 2011 pessoas aprender, e (2) carros tornaram-se mais simples de operar, em razão de transmissões automáticas, injeções eletrônicas, ignição automática, melhora significativa na confiança do sistema e a inclusão de diversas melhorias vinda de outras tecnologias.http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.2011.01.02a.pdfSignifica: Empresas! Produtividade e baixos riscos, coisas acontecem mais devagar
    43. 43. 24 - AceitaçãoDouglas Crockford thoughts (http://yuiblog.com/crockford/):"As pessoas que deveriam ser as primeiras a reconhecer o valor de uma inovação são geralmente as últimas."E ele tá falando de desenvolvedoresCorrida dos 16 bits: "Intel foi para um outra direção..." "...desastre total" "...voltou paraos 8 bits... tentando capturar o mercado de 8 bits fazendo uma máquina que fossecompatível com assembly antigo..."Está fazendo o mesmo desde então"Estamos em um grande momento para ser um programador, temos diversas escolhas, eprecisamos ser espertos fazendo essas escolhas se sermos abertos a aceitar novasidéias porque existes muitas idéias por aí, não devemos rejeitá-las somente porquenão são familiares ou não vemos nenhum necessidade pra elas”
    44. 44. 25 - Manutenção-”ability”"You are not Google, Amazon or Facebook” - Ivan Ribeiro, na apresentação "You shall Not Get Excited”, sobre a jornada de 2-3 anos para usar Erlang em produçãohttp://slideshare.net/x697272/you-shall-not-get-excited-5851097Em empresas, não basta somente aceitação... mas toda a adaptação necessária- ter ferramentas suficientes- bibliotecas suficientes- integrar com os processos existentes e automações (de testes e segurançacolaboração de colegas- comunidade com bom suporte- comprovação de ótima utilização de recursos
    45. 45. 26 - Novas LinguagensChegando na WebPara quebrar o tradicional “LAMP”Porém... as 4 linguagens mais populares são: C, Java, Php, JavaScript, todas baseadas na mesma sintaxeLembre-se da Intel, perder produtividade sem justificativa não é legal
    46. 46. 27 - ORM, agora nãoAbstrações requerem poder- POO na web, só 40 anos depois- templatização de sites, só com multi-coreSQL não é só abstração, é também paralelizaçãoBancos de dados têm ótimo cache interno e um ótimo otimizador de queriesNão é hora!Aceitação de NoSql foi rápida, motivo: necessidade imediataSistemas web = poucas queriesfáceis de empacotar dentro de funções e classes... que podem tirar melhor proveito de caches e buffers especializados(Memcached)
    47. 47. Matt Yonkovit - at Percona Live NYC 2011http://www.percona.com/files/presentations/percona-live/nyc-2011/PerconaLiveNYC2011-How-MySQL-and-NoSQL-Coexist.pdf
    48. 48. Lesprit de lescalier - Gleicon Moraes e John D. Rowell @NoSQL:br v2 2011http://www.slideshare.net/gleicon/lesprit-de-lescalier
    49. 49. 28 - E a ciência?Últimas palavras em computação científica: GPU: Graphic CPU, nasceu paralela e distribuída FPGA: Trazendo o software mais próximo do hardware GRID: Rede Internacional e Compartilhada http://www.opensciencegrid.org/Dá pra ter em casa ou na nuvem !!!!!!
    50. 50. 29 - Futuro ?Pare de pensar serial e sequêncial"Compute Local, Act Global. Otherwise the Overhead will kill you”- Carlos Bueno, um amigoJuntar disco e memória,sistemas que não precisam de boot2012 - Fim do mundo ? Se não: Parar de fazer “brute force”, computação quântica From GWANs website
    51. 51. "A new vogue for the now generation A new profit in the same old game We got new thoughts, new ideas its all so groovy Its just a shame that we all seen the same old movies " The Saints - Private Affairstwitter: @againstty0 Referências: “Romances” do Tanenbaum, Manuscritos do EWD, Wikipedia, Busca de imagens do Google, Minhas experiências e de meus amigos.

    ×