Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
História dos SistemasPorque estamos fazendo desse jeitosob uma perspectiva da web moderna          lorieri@ google mail do...
Agenda                 Presente  Passado            Futuro
A Web MudouCom ajuda do passado  De olho no futuro
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 ...
1 - Começo, primeiro computador elétrico- Computadores para propósitos gerais- Caros $$$$ ... e fracos (CPU, memória, I/O)...
2 – Era Comercial, computadores corporativosEmpresas: Menos CPU e Mais Armanezamento- Tecnologia de teares de 1795 para en...
Empresas e CiênciaProcessamento de Dados   Cálculos
3 - InterpretadoresAbstração de linguagem, melhorar produtividade  1 - Carrega o interpretador dos cartões para a memória ...
from Tanenbaums bookfrom Tanenbaums book
4 - Circuito IntegradoComeço da Lei de Moore- Redução do tamanho- Mais poder de processamento !!!- Mais memória !!!- Mais ...
E o que fazer com tanto        poder ?- Multi-tarefa virtual, divisão do tempo
5 - Multi-programaçãoModinha virou realidade- "THE Multiprogramming System", muti-tarefa  - THE introduziu bugs e a coexis...
System Levels   +Access Control       +Bugs    +Complexity=HACKERS !!!
6 - RedesMulti-programming necessitava de multi terminais- Mais acesso = mais mão-de-obra- Popularização entre universidad...
7 - MainframesPilhas de CPUs- Tempo é dinheiro:             hardware tolerante a falhas- Redes escassas contribuíram para ...
8 - PCTerminal crescido- Necessidades básicas de empresas- Jogos !- Podia ser conectado em um computador central- Sem time...
9 - CaosConhecimento + Redes + Bugs + Popularização = Segurança no Hardware        a MMU MMU mapeia a memória para criar/t...
10 - Popularização- Redes mais longas e melhores- Mais RAM, Mais Storage- Mais Bugs e mais hackers- Conhecimento = Mais mã...
11 - Cliente/Servidor (era da latência) Máquinas pequenas realizando taredas específicas de modo centralizado - Parte do P...
EmpresasMainframes              Client/Server
12 - Web dinâmica$$$$$$$$- Apache inventa os Virtual Hosts: 1 computador = vários sites- Surge o PHP: programação simples ...
Shopping = Dinheiro       Tempo é Dinheiro  Tempo = Alta DisponibilidadeShopping = Experiência do Usuário
Pessoas começaram aescrever a resposta emcima dos e-mails
13 - Caos FísicoMorte da Lei de Moore- Solução: inovações no software- Discos maiores, porém lentos, não acompanham veloci...
14 - Paralelismo crucialÚnico jeito de aumentar o poder de processamento- Sistemas Multi CPUs, CPUs multi core, Cores mult...
... e depois de tanto tempo, o Windows aprendeu comousar os níveis de execução, a memória virtual e conseguiudiminuir os t...
15 - Virtualização- Multi-processamento = Popularização de Virtualização   - Consolidação de vários sistemas em uma única ...
EmpresasMainframes              Client/Server
Mainframes trabalham com paralelismo, caches dehardware, virtualização, multi-core e multi-cpus há 50             anos, pe...
16 - Situação atualQuantidade de dados crescendo absurdamente- Poder de processamento não é suficientemente- Armazenamento...
17 - Como os softwares podem ajudar? - Separando os acessos a disco? - Ajustar tudo na memória? - Quebrar a lei de não dup...
18 - Acessos mais lentos (I/O)Mais latência, recursos fora das máquinas- Caches saíram da máquina local, viram sistemas de...
Topologia do Netflix
1 ns = .000000001 segundo                                            pior para multi-cpu ou                               ...
19 - Muitos desafiosMais complexo = mais falhas = tolerância a falhas (Design for failures)- Complexidade requer maior abs...
Ter mais ambientes antes do ambiente de produção não é burocracia,                            É liberdade
20 - SSD ?- No começo eram bugados, tempo de vida curto- SSD foram bem vindos, mas para se juntar a festa... ...pq desafio...
21 - *aaS Era *aaS = * as a Service Mainframe ? Evoluiu para ser a nuvem - Mesmo modelo Pay-per-use, assim como eletricida...
22 - Nova ordem mundial- Updates constantes (especialmente Github)- Sistemas nascem distribuídos- Programação orientada a ...
Troca de mensagens e programação orientada a eventos é exatamente o que o kernel vem fazendo por 40 anos
Y U NOPARALLELIZE EASILY !?!?!?!
23 - Por que web devs não paralelizam ?"Entretanto, novas tecnologias são sempre difíceis de usar no começo, mas tornam-se...
24 - AceitaçãoDouglas Crockford thoughts (http://yuiblog.com/crockford/):"As pessoas que deveriam ser as primeiras a recon...
25 - Manutenção-”ability”"You are not Google, Amazon or Facebook” - Ivan Ribeiro, na apresentação   "You shall Not Get Exc...
26 - Novas LinguagensChegando na WebPara quebrar o tradicional “LAMP”Porém...    as 4 linguagens mais populares são:    C,...
27 - ORM, agora nãoAbstrações requerem poder- POO na web, só 40 anos depois- templatização de sites, só com multi-coreSQL ...
Matt Yonkovit - at Percona Live NYC 2011http://www.percona.com/files/presentations/percona-live/nyc-2011/PerconaLiveNYC201...
Lesprit de lescalier - Gleicon Moraes e John D. Rowell @NoSQL:br v2 2011http://www.slideshare.net/gleicon/lesprit-de-lesca...
28 - E a ciência?Últimas palavras em computação científica: GPU: Graphic CPU, nasceu paralela e distribuída FPGA: Trazendo...
29 - Futuro ?Pare de pensar serial e sequêncial"Compute Local, Act Global. Otherwise the Overhead will kill you”- Carlos B...
"A new vogue for the now generation                    A new profit in the same old game             We got new thoughts, ...
Upcoming SlideShare
Loading in …5
×

História dos Sistemas - 3a Semana de SI

622 views

Published on

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

Published in: Technology
  • Be the first to comment

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.

×