dicas sobre api (case stormpath, edmunds e twitter)

50
Caso 1

Upload: felipe-caparelli

Post on 04-Jul-2015

220 views

Category:

Technology


4 download

DESCRIPTION

Conceitos importantes sobre APIs. Autores: Felipe Caparelli e Rodrigo Oliveira

TRANSCRIPT

Page 1: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Caso 1

Page 2: Dicas sobre API (case Stormpath, Edmunds e Twitter)

O que é?

Stormpath é uma API gerenciadora de identidade e serviço de controle de acesso hospedada na nuvem que implementa melhores práticas de segurança.

www.stormpath.com

Page 3: Dicas sobre API (case Stormpath, Edmunds e Twitter)

O que é?

www.stormpath.com

Page 4: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Metodologia

www.stormpath.com

REST + JSON

Page 5: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Por quê REST?

www.stormpath.com

EscalabilidadeGeneralidade (HTTP)IndependênciaLatência (Caching)SegurançaEncapsulamento

Page 6: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Por quê JSON?

www.stormpath.com

Ubiquidade (disseminado)SimplicidadeLegibilidadeEscalabilidadeFlexibilidade

Page 7: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Composição

www.stormpath.com

AplicaçõesDiretóriosContasGruposAssociaçõesWorkflows

Page 8: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Fundamentos

O Stormpath apresenta alguns fundamentos, um deles é a exposição de recursos através de substantivos e não verbos na definição das URLs.

www.stormpath.com

Page 9: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Fundamentos

Há apenas 2 tipos de recursosCollection Resource: /applications - ColeçãoInstance Resource: /applications/a1b2c3 - Instância (id)

www.stormpath.com

Page 10: Dicas sobre API (case Stormpath, Edmunds e Twitter)

API Keys

www.stormpath.com

EntropiaReset de senhaIndependênciaVelocidadeExposição limitadaRastreabilidade

Page 11: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Caso 2

Page 12: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Motivação

developer.edmunds.com

Reconhecimento da marcaMaior inovaçãoMaior rentabilidadeDescoberta de talentosCapacitação interna

Page 13: Dicas sobre API (case Stormpath, Edmunds e Twitter)

developer.edmunds.com

API Lançada em setembro de 2011

Page 14: Dicas sobre API (case Stormpath, Edmunds e Twitter)

developer.edmunds.com

Page 15: Dicas sobre API (case Stormpath, Edmunds e Twitter)

developer.edmunds.com

Page 16: Dicas sobre API (case Stormpath, Edmunds e Twitter)

developer.edmunds.com

Page 17: Dicas sobre API (case Stormpath, Edmunds e Twitter)

developer.edmunds.com

Page 18: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Resultados

developer.edmunds.com

1 ano após o lançamento...

11 Milhões de chamadas a APICapacitação internaAlto engajamento80% dos dados expostos

Page 19: Dicas sobre API (case Stormpath, Edmunds e Twitter)
Page 20: Dicas sobre API (case Stormpath, Edmunds e Twitter)
Page 21: Dicas sobre API (case Stormpath, Edmunds e Twitter)
Page 22: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Próximos passos

developer.edmunds.com

WidgetsAPI 2.0

Page 23: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Widget

developer.edmunds.com

Rápida adoção/implementaçãoMelhor controle analísiticoSolução SAASExtensibilidade

Page 24: Dicas sobre API (case Stormpath, Edmunds e Twitter)

developer.edmunds.com

Page 25: Dicas sobre API (case Stormpath, Edmunds e Twitter)

API 2.0

developer.edmunds.com

Simplificação dos métodosDocumentação melhoradaEscrita de API

Page 26: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Caso 3

Page 27: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Alguns Dados

dev.twitter.com

70 Milhões de tweets por dia (2010) 800 tweets por seg.140 Milhões de tweets por dia (2011)

1 tweet text = 140 caracteres (200 bytes)800 tweets por seg. ~ 160 Kb/Seg. | 9 Mb/Min. | 12 Gb/dia

150 Mil usuários registrados (2006/2010)

Page 28: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Problema

dev.twitter.com

MySQL não consegue gerar IDs rápido o suficiente

Centralizado - ponto único para controle de falhas

Page 29: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Problema

dev.twitter.com

Page 30: Dicas sobre API (case Stormpath, Edmunds e Twitter)

+ Dados (2011)

dev.twitter.com

1 Bilhão de tweets por semana - aumento de 204%117 Milhões de tweets no dia 11 de março - tsunami no japão

Nasdak 1Tb gerado por dia > Twitter 8 Tb/dia8Tb por dia aprox. 100 Mb/Seg.

572 Mil usuários registrados (março de 2011) Média de 460 Mil usuários/dia em fevereiro de 2011

Page 31: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Solução

dev.twitter.com

SnowflakeGeração de números UIDs em larga escala

Alta disponibilidade e não coordenado (10kqps)

Compatível com o ecosistema do Twitter

https://github.com/twitter/snowflake

Page 32: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Solução

dev.twitter.com

FlockDBBanco de dados distribuido

Alta taxa de operações CRUD

Conjunto de queries aritiméticas complexas

https://github.com/twitter/flockdb

Page 33: Dicas sobre API (case Stormpath, Edmunds e Twitter)

API

dev.twitter.com

43 APIs (2010) - 86 APIs (2011)

600 Twitter mashups

6 Bilhões chamadas da API por dia

70 mil chamadas por segundo

~1600 desenvolvedores no Google Group

Page 34: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Tecnologias

dev.twitter.com

REST API (XML|JSON via HTTP)Sistema Poll-based / pseudo real-time

hosebird

Streaming API

Long poll HTTP

Entrega quase em tempo real dos tweets

Page 35: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Tecnologias

Page 36: Dicas sobre API (case Stormpath, Edmunds e Twitter)
Page 37: Dicas sobre API (case Stormpath, Edmunds e Twitter)
Page 38: Dicas sobre API (case Stormpath, Edmunds e Twitter)
Page 39: Dicas sobre API (case Stormpath, Edmunds e Twitter)
Page 40: Dicas sobre API (case Stormpath, Edmunds e Twitter)
Page 41: Dicas sobre API (case Stormpath, Edmunds e Twitter)
Page 42: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Dados API

dev.twitter.com

Crescimento

752% em 20081358% em 2009

2010 - 150 Milhões de pessoas geram ~1000 TPS

Meta: suportar metade do mundo e seus dispositivos (6 Bilhões de pessoas / 5 Bilhões de celulares)

Page 43: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Dados API

dev.twitter.com

1.648.440 sites usam a plataforma Twitter (Mar 2013)

Obs: Destes, 611.329 estão entre os mais visitados da InternetAprox. 564 mil sites usando Twitter Widgets

Page 44: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Desafios

dev.twitter.com

Tempo realIndexação, busca e análiseSistema relevanteGraph DatabaseStorageEscalabilidade e eficiência

Page 45: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Dados Relevantes APIs

Google - 5 bilhões de chamadas/dia (abril de 2010)

facebook - 5 bilhões de chamadas/dia (outubro de 2009)

twitter - 3 bilhões de chamadas/dia, 75% de todo o tráfego (Abr 2010)

ebay - 8 bilhões de chamadas/mês (3º trimestre de 2009)

bing - 3 bilhões de chamadas/mês (Mar 2009)

salesforce - 50% de todo o tráfego é feito via API (Mar 2008)

amazon WS - 100 bilhões de objetos armazenados no S3 (Mar 2010)

Page 46: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Dados Relevantes APIs

Page 47: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Dados Relevantes APIs

Page 48: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Dados Relevantes APIs

Page 49: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Dados Relevantes APIs

Page 50: Dicas sobre API (case Stormpath, Edmunds e Twitter)

Dados Relevantes APIs