Dicas sobre API (case Stormpath, Edmunds e Twitter)

Post on 04-Jul-2015

220 views 4 download

description

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

Transcript of Dicas sobre API (case Stormpath, Edmunds e Twitter)

Caso 1

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

O que é?

www.stormpath.com

Metodologia

www.stormpath.com

REST + JSON

Por quê REST?

www.stormpath.com

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

Por quê JSON?

www.stormpath.com

Ubiquidade (disseminado)SimplicidadeLegibilidadeEscalabilidadeFlexibilidade

Composição

www.stormpath.com

AplicaçõesDiretóriosContasGruposAssociaçõesWorkflows

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

Fundamentos

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

www.stormpath.com

API Keys

www.stormpath.com

EntropiaReset de senhaIndependênciaVelocidadeExposição limitadaRastreabilidade

Caso 2

Motivação

developer.edmunds.com

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

developer.edmunds.com

API Lançada em setembro de 2011

developer.edmunds.com

developer.edmunds.com

developer.edmunds.com

developer.edmunds.com

Resultados

developer.edmunds.com

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

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

Próximos passos

developer.edmunds.com

WidgetsAPI 2.0

Widget

developer.edmunds.com

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

developer.edmunds.com

API 2.0

developer.edmunds.com

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

Caso 3

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)

Problema

dev.twitter.com

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

Centralizado - ponto único para controle de falhas

Problema

dev.twitter.com

+ 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

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

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

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

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

Tecnologias

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)

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

Desafios

dev.twitter.com

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

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)

Dados Relevantes APIs

Dados Relevantes APIs

Dados Relevantes APIs

Dados Relevantes APIs

Dados Relevantes APIs