SlideShare ist ein Scribd-Unternehmen logo
1 von 51
História dos Sistemas
Porque estamos fazendo desse jeito


sob uma perspectiva da web moderna
          lorieri@ google mail dot com
Agenda

                 Presente
  Passado




            Futuro
A Web Mudou

Com 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 historiador


Sou 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 corporativos

Empresas: 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ência


Processamento de Dados   Cálculos
3 - Interpretadores

Abstraçã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 Tanenbaum's book




from Tanenbaum's book
4 - Circuito Integrado
Começ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ção
Modinha 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 - Redes

Multi-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 - Mainframes

Pilhas 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 - PC

Terminal 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 - Caos

Conhecimento + 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
Empresas


Mainframes              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 Disponibilidade


Shopping = Experiência do Usuário
Pessoas começaram a
escrever a resposta em
cima dos e-mails
13 - Caos Físico

Morte 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 caches

Lei de Amdahl: "...se 95% do programa pode ser paralelizado, o aumento
teó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 como
usar os níveis de execução, a memória virtual e conseguiu
diminuir 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ência



Porém: I/O de computador comum e dividido em várias máquinas virtuais :(
Empresas


Mainframes              Client/Server
Mainframes trabalham com paralelismo, caches de
hardware, 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 atual
Quantidade de dados crescendo absurdamente

- Poder de processamento não é suficientemente

- Armazenamento e largura de banda crescendo, porém latência diminuindo
  em taxas muito baixas

Significando: 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 NoSql

Lembra do MMU ? Teve um neto chamado:
  Hash Partitioning (DHT - Distributed hash table) = Sharding

Acesso 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 desafios
Mais complexo = mais falhas = tolerância a falhas (Design for failures)

- Complexidade requer maior abstração = mar de Frameworks

Lembra do níveis de execução? Saíram do computador:
   - Development Environment
   - Testing Environment
   - Staging Environment
   - Production Environment

Rollbacks não são mais triviais

Complexidade = processos e automação

Um 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 NO




PARALLELIZE 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.pdf

Significa: Empresas! Produtividade e baixos riscos, coisas acontecem mais devagar
24 - Aceitação

Douglas 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 desenvolvedores


Corrida dos 16 bits: "Intel foi para um outra direção..." "...desastre total" "...voltou para
os 8 bits... tentando capturar o mercado de 8 bits fazendo uma máquina que fosse
compatível com assembly antigo..."

Está fazendo o mesmo desde então


"Estamos em um grande momento para ser um programador, temos diversas escolhas, e
precisamos ser espertos fazendo essas escolhas se sermos abertos a aceitar novas
idéias porque existes muitas idéias por aí, não devemos rejeitá-las somente porque
nã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ção
http://slideshare.net/x697272/you-shall-not-get-excited-5851097


Em 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ça

colaboração de colegas

- comunidade com bom suporte
- comprovação de ótima utilização de recursos
26 - Novas Linguagens


Chegando na Web

Para quebrar o tradicional “LAMP”



Porém...
    as 4 linguagens mais populares são:
    C, Java, Php, JavaScript, todas baseadas na mesma sintaxe


Lembre-se da Intel, perder produtividade sem justificativa não é legal
27 - ORM, agora não
Abstrações requerem poder
- POO na web, só 40 anos depois
- templatização de sites, só com multi-core

SQL não é só abstração, é também paralelização

Bancos de dados têm ótimo cache interno e um ótimo otimizador de queries

Não é hora!

Aceitação de NoSql foi rápida, motivo: necessidade imediata

Sistemas web = poucas queries
fá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 2011
http://www.percona.com/files/presentations/percona-live/nyc-2011/PerconaLiveNYC2011-How-MySQL-and-NoSQL-Coexist.pdf
L'esprit de l'escalier - Gleicon Moraes e John D. Rowell @NoSQL:br v2 2011
http://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 amigo

Juntar disco e memória,
sistemas que não precisam de boot

2012 - Fim do mundo ?

      Se não: Parar de fazer “brute force”, computação quântica




                                                                  From GWAN's website
"A new vogue for the now generation
                    A new profit in the same old game


             We got new thoughts, new ideas it's all so groovy
         It's just a shame that we all seen the same old movies "
                         The Saints - Private Affairs




twitter: @againstty0
                                                         Referências:
                                         “Romances” do Tanenbaum,
                                                Manuscritos do EWD,
                                                           Wikipedia,
                                        Busca de imagens do Google,
                               Minhas experiências e de meus amigos.

Weitere ähnliche Inhalte

Ähnlich wie História dos Sistemas: Da Era dos Mainframes à Era da Distribuição e Complexidade

História dos Sistemas - Por que estamos fazendo desse jeito
História dos Sistemas - Por que estamos fazendo desse jeitoHistória dos Sistemas - Por que estamos fazendo desse jeito
História dos Sistemas - Por que estamos fazendo desse jeitoLeo Lorieri
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.dannas_06
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosCharles Fortes
 
Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Fernando Gomes Chaves
 
Computação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem GeralComputação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem GeralIgor José F. Freitas
 
História dos Sistemas Operativos
História dos Sistemas OperativosHistória dos Sistemas Operativos
História dos Sistemas OperativosTROLITO LALALAL
 
Apostila informatica para concursos robson aquila
Apostila informatica para concursos   robson aquilaApostila informatica para concursos   robson aquila
Apostila informatica para concursos robson aquilaJosé Antonio Almeida
 
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...Claudio Santos
 
IntroduçãO Ao Desenvolvimento Web 2
IntroduçãO Ao Desenvolvimento Web   2IntroduçãO Ao Desenvolvimento Web   2
IntroduçãO Ao Desenvolvimento Web 2Maurício Linhares
 
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)Bruno Camara
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionaisSuperTec1
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosJoseVieira75
 
Conceitos de sistemas operacionais
Conceitos de sistemas operacionaisConceitos de sistemas operacionais
Conceitos de sistemas operacionaisAparicio Junior
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
3000 questoes de informatica resolvidos banco do brasil (bb), cef, ibge, tre...
3000 questoes de informatica  resolvidos banco do brasil (bb), cef, ibge, tre...3000 questoes de informatica  resolvidos banco do brasil (bb), cef, ibge, tre...
3000 questoes de informatica resolvidos banco do brasil (bb), cef, ibge, tre...Rafaella Botelho
 
3000 questoes de informatica resolvidos banco do brasil (bb), cef, ibge, tre...
3000 questoes de informatica  resolvidos banco do brasil (bb), cef, ibge, tre...3000 questoes de informatica  resolvidos banco do brasil (bb), cef, ibge, tre...
3000 questoes de informatica resolvidos banco do brasil (bb), cef, ibge, tre...Thiago Carvalho
 

Ähnlich wie História dos Sistemas: Da Era dos Mainframes à Era da Distribuição e Complexidade (20)

História dos Sistemas - Por que estamos fazendo desse jeito
História dos Sistemas - Por que estamos fazendo desse jeitoHistória dos Sistemas - Por que estamos fazendo desse jeito
História dos Sistemas - Por que estamos fazendo desse jeito
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 
Apostila SO
Apostila SOApostila SO
Apostila SO
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
 
30440951 informatica
30440951 informatica30440951 informatica
30440951 informatica
 
Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid
 
Computação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem GeralComputação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem Geral
 
Aula01 so
Aula01 soAula01 so
Aula01 so
 
História dos Sistemas Operativos
História dos Sistemas OperativosHistória dos Sistemas Operativos
História dos Sistemas Operativos
 
Apostila informatica para concursos robson aquila
Apostila informatica para concursos   robson aquilaApostila informatica para concursos   robson aquila
Apostila informatica para concursos robson aquila
 
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
 
IntroduçãO Ao Desenvolvimento Web 2
IntroduçãO Ao Desenvolvimento Web   2IntroduçãO Ao Desenvolvimento Web   2
IntroduçãO Ao Desenvolvimento Web 2
 
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Conceitos de sistemas operacionais
Conceitos de sistemas operacionaisConceitos de sistemas operacionais
Conceitos de sistemas operacionais
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
trabalho de tic
trabalho de tic trabalho de tic
trabalho de tic
 
3000 questoes de informatica resolvidos banco do brasil (bb), cef, ibge, tre...
3000 questoes de informatica  resolvidos banco do brasil (bb), cef, ibge, tre...3000 questoes de informatica  resolvidos banco do brasil (bb), cef, ibge, tre...
3000 questoes de informatica resolvidos banco do brasil (bb), cef, ibge, tre...
 
3000 questoes de informatica resolvidos banco do brasil (bb), cef, ibge, tre...
3000 questoes de informatica  resolvidos banco do brasil (bb), cef, ibge, tre...3000 questoes de informatica  resolvidos banco do brasil (bb), cef, ibge, tre...
3000 questoes de informatica resolvidos banco do brasil (bb), cef, ibge, tre...
 

Mehr von Leo Lorieri

Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @WayraDeis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @WayraLeo Lorieri
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis OverviewLeo Lorieri
 
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Ceph, Docker, Heroku Slugs, CoreOS and Deis OverviewCeph, Docker, Heroku Slugs, CoreOS and Deis Overview
Ceph, Docker, Heroku Slugs, CoreOS and Deis OverviewLeo Lorieri
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014Leo Lorieri
 
Extending Piwik At R7.com
Extending Piwik At R7.comExtending Piwik At R7.com
Extending Piwik At R7.comLeo Lorieri
 
History of Computer Systems - Why we are doing it that way
History of Computer Systems - Why we are doing it that wayHistory of Computer Systems - Why we are doing it that way
History of Computer Systems - Why we are doing it that wayLeo Lorieri
 

Mehr von Leo Lorieri (6)

Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @WayraDeis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Ceph, Docker, Heroku Slugs, CoreOS and Deis OverviewCeph, Docker, Heroku Slugs, CoreOS and Deis Overview
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014
 
Extending Piwik At R7.com
Extending Piwik At R7.comExtending Piwik At R7.com
Extending Piwik At R7.com
 
History of Computer Systems - Why we are doing it that way
History of Computer Systems - Why we are doing it that wayHistory of Computer Systems - Why we are doing it that way
History of Computer Systems - Why we are doing it that way
 

História dos Sistemas: Da Era dos Mainframes à Era da Distribuição e Complexidade

  • 1. História dos Sistemas Porque estamos fazendo desse jeito sob uma perspectiva da web moderna lorieri@ google mail dot com
  • 2. Agenda Presente Passado Futuro
  • 3. A Web Mudou Com ajuda do passado De olho no futuro
  • 4. Quem eu NÃO Sou - não sou programador - não sou cientista - não sou professor de português - não sou historiador Sou 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. 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. 2 – Era Comercial, computadores corporativos Empresas: 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)
  • 8. 3 - Interpretadores Abstraçã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. from Tanenbaum's book from Tanenbaum's book
  • 10. 4 - Circuito Integrado Começ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. E o que fazer com tanto poder ? - Multi-tarefa virtual, divisão do tempo
  • 12. 5 - Multi-programação Modinha 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. System Levels +Access Control +Bugs +Complexity =HACKERS !!!
  • 14. 6 - Redes Multi-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. 7 - Mainframes Pilhas 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. 8 - PC Terminal 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. 9 - Caos Conhecimento + 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. 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. 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. Empresas Mainframes Client/Server
  • 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. Shopping = Dinheiro Tempo é Dinheiro Tempo = Alta Disponibilidade Shopping = Experiência do Usuário
  • 23. Pessoas começaram a escrever a resposta em cima dos e-mails
  • 24. 13 - Caos Físico Morte 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. 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 caches Lei de Amdahl: "...se 95% do programa pode ser paralelizado, o aumento teórico de performance máximo atingido usando paralelismo será de 20x... não importa quantos processadores serão usados."
  • 26. ... e depois de tanto tempo, o Windows aprendeu como usar os níveis de execução, a memória virtual e conseguiu diminuir os travamentos do sistema :)
  • 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ência Porém: I/O de computador comum e dividido em várias máquinas virtuais :(
  • 28. Empresas Mainframes Client/Server
  • 29. Mainframes trabalham com paralelismo, caches de hardware, virtualização, multi-core e multi-cpus há 50 anos, pelos menos motivos. (porém com latência de I/O menor )
  • 30. 16 - Situação atual Quantidade de dados crescendo absurdamente - Poder de processamento não é suficientemente - Armazenamento e largura de banda crescendo, porém latência diminuindo em taxas muito baixas Significando: 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. 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. 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 NoSql Lembra do MMU ? Teve um neto chamado: Hash Partitioning (DHT - Distributed hash table) = Sharding Acesso a dados mais complicados: 2 entre 3: consistência, disponibilidade e distribuição de dados (CAP)
  • 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. 19 - Muitos desafios Mais complexo = mais falhas = tolerância a falhas (Design for failures) - Complexidade requer maior abstração = mar de Frameworks Lembra do níveis de execução? Saíram do computador: - Development Environment - Testing Environment - Staging Environment - Production Environment Rollbacks não são mais triviais Complexidade = processos e automação Um grande problema: controle de acesso agora é mundial
  • 36. Ter mais ambientes antes do ambiente de produção não é burocracia, É liberdade
  • 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. 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. 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. Troca de mensagens e programação orientada a eventos é exatamente o que o kernel vem fazendo por 40 anos
  • 41. Y U NO PARALLELIZE EASILY !?!?!?!
  • 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.pdf Significa: Empresas! Produtividade e baixos riscos, coisas acontecem mais devagar
  • 43. 24 - Aceitação Douglas 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 desenvolvedores Corrida dos 16 bits: "Intel foi para um outra direção..." "...desastre total" "...voltou para os 8 bits... tentando capturar o mercado de 8 bits fazendo uma máquina que fosse compatível com assembly antigo..." Está fazendo o mesmo desde então "Estamos em um grande momento para ser um programador, temos diversas escolhas, e precisamos ser espertos fazendo essas escolhas se sermos abertos a aceitar novas idéias porque existes muitas idéias por aí, não devemos rejeitá-las somente porque não são familiares ou não vemos nenhum necessidade pra elas”
  • 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ção http://slideshare.net/x697272/you-shall-not-get-excited-5851097 Em 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ça colaboração de colegas - comunidade com bom suporte - comprovação de ótima utilização de recursos
  • 45. 26 - Novas Linguagens Chegando na Web Para quebrar o tradicional “LAMP” Porém... as 4 linguagens mais populares são: C, Java, Php, JavaScript, todas baseadas na mesma sintaxe Lembre-se da Intel, perder produtividade sem justificativa não é legal
  • 46. 27 - ORM, agora não Abstrações requerem poder - POO na web, só 40 anos depois - templatização de sites, só com multi-core SQL não é só abstração, é também paralelização Bancos de dados têm ótimo cache interno e um ótimo otimizador de queries Não é hora! Aceitação de NoSql foi rápida, motivo: necessidade imediata Sistemas web = poucas queries fáceis de empacotar dentro de funções e classes ... que podem tirar melhor proveito de caches e buffers especializados (Memcached)
  • 47. Matt Yonkovit - at Percona Live NYC 2011 http://www.percona.com/files/presentations/percona-live/nyc-2011/PerconaLiveNYC2011-How-MySQL-and-NoSQL-Coexist.pdf
  • 48. L'esprit de l'escalier - Gleicon Moraes e John D. Rowell @NoSQL:br v2 2011 http://www.slideshare.net/gleicon/lesprit-de-lescalier
  • 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. 29 - Futuro ? Pare de pensar serial e sequêncial "Compute Local, Act Global. Otherwise the Overhead will kill you” - Carlos Bueno, um amigo Juntar disco e memória, sistemas que não precisam de boot 2012 - Fim do mundo ? Se não: Parar de fazer “brute force”, computação quântica From GWAN's website
  • 51. "A new vogue for the now generation A new profit in the same old game We got new thoughts, new ideas it's all so groovy It's just a shame that we all seen the same old movies " The Saints - Private Affairs twitter: @againstty0 Referências: “Romances” do Tanenbaum, Manuscritos do EWD, Wikipedia, Busca de imagens do Google, Minhas experiências e de meus amigos.

Hinweis der Redaktion

  1. 09/22/11
  2. 09/22/11
  3. 09/22/11
  4. 09/22/11
  5. 09/22/11
  6. 09/22/11
  7. 09/22/11
  8. 09/22/11
  9. 09/22/11
  10. 09/22/11
  11. 09/22/11
  12. 09/22/11
  13. 09/22/11
  14. 09/22/11
  15. 09/22/11
  16. 09/22/11
  17. 09/22/11
  18. 09/22/11
  19. 09/22/11
  20. 09/22/11
  21. 09/22/11
  22. 09/22/11
  23. 09/22/11
  24. 09/22/11
  25. 09/22/11
  26. 09/22/11
  27. 09/22/11
  28. 09/22/11
  29. 09/22/11
  30. 09/22/11
  31. 09/22/11
  32. 09/22/11
  33. 09/22/11
  34. 09/22/11
  35. 09/22/11
  36. 09/22/11
  37. 09/22/11
  38. 09/22/11
  39. 09/22/11
  40. 09/22/11
  41. 09/22/11
  42. 09/22/11
  43. 09/22/11
  44. 09/22/11
  45. 09/22/11
  46. 09/22/11
  47. 09/22/11
  48. 09/22/11
  49. 09/22/11
  50. 09/22/11
  51. 09/22/11