• Save
História dos Sistemas - 3a Semana de SI
Upcoming SlideShare
Loading in...5
×
 

História dos Sistemas - 3a Semana de SI

on

  • 578 views

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

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

Statistics

Views

Total Views
578
Views on SlideShare
573
Embed Views
5

Actions

Likes
1
Downloads
0
Comments
0

2 Embeds 5

https://si0.twimg.com 3
http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 História dos Sistemas - 3a Semana de SI Presentation Transcript

  • História dos SistemasPorque estamos fazendo desse jeitosob uma perspectiva da web moderna lorieri@ google mail dot com
  • 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 “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
  • 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 !!!
  • 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)
  • 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 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
  • 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 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
  • 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 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
  • System Levels +Access Control +Bugs +Complexity=HACKERS !!!
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • EmpresasMainframes Client/Server
  • 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
  • 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 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
  • 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."
  • ... 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 :)
  • 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 :(
  • EmpresasMainframes Client/Server
  • 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 )
  • 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
  • 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
  • 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)
  • Topologia do Netflix
  • 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
  • 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
  • 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 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
  • 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”
  • 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
  • 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 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
  • 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”
  • 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
  • 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
  • 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)
  • Matt Yonkovit - at Percona Live NYC 2011http://www.percona.com/files/presentations/percona-live/nyc-2011/PerconaLiveNYC2011-How-MySQL-and-NoSQL-Coexist.pdf
  • Lesprit de lescalier - Gleicon Moraes e John D. Rowell @NoSQL:br v2 2011http://www.slideshare.net/gleicon/lesprit-de-lescalier
  • 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 !!!!!!
  • 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
  • "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.