69
Ombros de Gigantes Marcio Marchini Rangel Torrezan 18/05/201 4

Novas Fronteiras

Embed Size (px)

Citation preview

Ombros de Gigantes

Marcio MarchiniRangel Torrezan18/05/2014

O que eu usaria se eu fosse competir com os

gigantes da tecnologia?

O que as Startups

Enxutas estão usando para

competir com esses gigantes?

Inovação

Os GigantesX

XXX

O que os gigantes esqueceram?Roda Viva: “Eu sou você amanhã”

Não subestime os pequenos!

Pedra que não rola, cria limo

A necessidade faz o sapa pular

Por Falar em Sapo Pular...

VS

“If I have seen further it is by

standing on the shoulders of

giants”Isaac Newton

1. Design Thinking / Canvas / Lean

2. Cloud / PaaS

3. NoSQL

4. Open Source

Quais ombros subir?

5. Práticas Ágeis

6. Ling. Dinâmicas

1

Design Thinking

Exploração centrada no ser

humano

Design Thinking

Qual a dor queremos resolver?

EMPATIA

Rápido e Sujo - Protótipo

Ideias validadas o mais breve Saia do escritório!!!!

Design ThinkingCritérios

DESEJABILIDADE

VIABILIDADE

PRATICABILIDADE

NECESSIDADE

HUMANA

EXISTE TECNOLO

GIA

ECÔNOMICAMENTE

VIÁVEL

BMG – Canvas

Início

Parece ser uma boa ideia

Parece ser uma dor

BMG - Canvas

1º PassoMontar o Modelo de

Negócios

Criar

Capturar Valor

Montar o Modelo

BMG – Canvas

O modelo

• 9 Elemenos• 2 Principais

• Proposta de valor• Seguimento de

clientesPilares

BMG – Canvas

Objetivos

Fácil Avaliar

Fácil Visualizar

Fácil de manipular

. . . . . . .

. . . . . . .

. . . .

Lean Startup

Lean Startup

ELIMINATE

UNCERTAINTYWORK SMARTER NOT HARDER

DEVELOP AN

MVP VALIDATED

LEARNING

Lean Startup

MVP SEJA

CRIATIVO

CartolinaProtótipoSimulaçãoLanding PageVídeo

MVP Produto

Lean Startup

MVP

2. Cloud/PaaS(Ambiente

Desenvolvimento)

Vantagens

Sem servidores

Esforço admin de rede

DBAs

Backups

Como se fazia app web...

Servidor comprado, num CPD próprio $$$$$

O cheque de US$100K do investidor na Google foi para comprar, principalmente, as máquinas

Evoluindo

SaaS

Servidor Alugado(Maior escala, colocation, ...)

IaaS

PaaS

Quanto custa a infra de uma startup? Como posso ser altamente escalável? Quanto tempo levaria para preparar o meu

ambiente?

Valore$

Medindotempo x custo

Criar uma conta no Heroku: 5 mins

Criar um servidor no Heroku: 2 mins

Tempo Total: 7 mins pra ter um servidor 24/7 escalável, pay-as-you-go

Custo Total: R$0 (1 heroku dyno)

Servidor de desenvolvimento = R$0

Web site = R$0

Escalando: Quanto custa?

• Escalar pra 50 servidores: 10 segundos

• Custo Total: US$ 1762.50 por mês (50 heroku dynos)

E Storage?

Medindo

• Adicionar uma base PostgreSQL: 30 segundos

– pra ter um banco SQL 24/7 escalável, pay-as-you-go

• Custo Total: R$0 (máximo 10 mil registros)

– Servidor de desenvolvimento = R$0

– Web site = R$0

Escalando• Pague pela quantidade de água que você consome. Startup: R$0

• Heroku é o maior deploy de PostgreSQL do mundo

• Heroku pertence à Salesforce. “Bebem o próprio Champagne.”

– Assim como a Amazon/Loja usa o próprio S3, DynamoDB etc

Backup

• PostgreSQL backup – também um Add-On

Otimizando/Cache: Quanto custa?

• Memcache, REDIS: Pague pela quantidade de água que

você consome. Startup: R$0

Monitoramento

• New Relic – também um Add-On. R$0 pro básico (start-

ups)

Tickets, Controle de Versão, ...

• www.xp-dev.com: TRAC, Git, SVN, CVS gratuito pra 1

projeto (mesmo que comercial): R$0.

Preço proporcional ao Uso• Caso precises de múltiplos projetos...

2. NoSQL

NoSQL Quebra de Paradigmas

E NoSQL: Quanto custa?

• Hadoop, MongoDB, Neo4J, CouchDB, Riak, Cassandra

3. Open Source

Mais vantagens ...

XXX

4. Práticas Ágeis

TDD / BDD (um dos Ombros)

• Especificação Ágil Executável

5. Linguagens Dinâmicas

Gargalos em nossas aplicações

Tempo Desen.

I/O

CRUD

KLOC

Maximize a quantidade de KLOC

que você NÃO PRECISA ESCREVER

+ +- -

Minimizando KLOC

NoSQL pra escalabilidade

REDIS pra Cache

Reusabilidade de componentes de terceiro

Linguagem de programação mais expressiva

Expressividade em Linguagens

• Computer Language Shootout Compara performance

em 10 problemas simples.

– Também lista RAM usada

– Também lista LOC usados

Estudo de Expressividade

50

Qual Ling. Dinâmica Escolher?

Qual Ling. Dinâmica Escolher?

– As esotéricas: Scala, Clojure, etc

• Influências de Functional Programming, Haskel etc

– As de cola: Groovy (chama Java fácil)

– As da moda: Ruby (Ruby on Rails, etc), Javascript

(Node.js)

– As sólidas que resistiram ao tempo: Python

– As mais fáceis de achar gente

• Ruby >> Python >> Groovy

Alan Kay

– “Simple things should be simple. Complex

things should be possible”- Allan Kay

• Inventor do Smalltalk

• Inventor da Orientação a Objetos

• Inventor do Sistema de Janelas Gráficas

4. OK, mas quem utiliza e quais são

os números?!?!

Quem usa Ling. Dinâmica

• MapReduce• Guido

• Guido

• PHP gerando nativo com HipHop

Quem usa Ling. Dinâmica

• SaaS de monitoramento

• 800 KLOC

Cases Atuais - Facebook

• PHP (ling. Dinâmica)

• MySQL com Memcache.

• HD SSD DB performance

• 3 bilhões de uploads de foto / mês

• 1.2 milhões de fotos servidas / segundo

• Cassandra (Inbox)

• Hadoop+Hive p/ análise de dados (Big Data)

Cases Atuais - Pinterest

• 150 instâncias web Amazon EC2

• 90 instâncias EC2 pra memcache

• 70 databases para redundância (uso de Sharding).

Hadoop p/ análise de dados.

• Código em Python/Django

Cases Atuais - Dropbox

• 1 milhão de arquivos salvos a cada 15mins

• 99.9% do código: Python (server, client, analytics, etc)

Ressalvas

• Considerar os seguintes aspectos na escolha da plataforma:

– Open Standard ou Proprietário?

– Qual o custo da licença por desenvolvedor?

– Quão atraente é a tecnologia? (trazer talentos)

– Qual o tamanho da comunidade de profissionais? Livros, fórums, suporte, etc

– Alinhamento com Universidades, etc (o que vêm-se usando?)

– Qual a quantidade de componentes reusáveis? (diminuir LOC)

– Otimizar / performance onde realmente interessa. “Premature optimization is

the root of all evil” – Donald Knuth

Então já temos!!

6. Ling. Dinâmicas

5. Práticas Ágeis

4. Open Source3. NoSQL2. Cloud / PaaS

1. Design Thinking / Canvas / Lean

Ainda falta mais ...

30/05/2013

Pessoas• Existem interessados?• Como está o mercado

para atrair e reter esses talentos?

• Consigo um ambiente sustentável?

Tropa de Elite

Análise Recursos x Plataforma

• TIOBE Programming Community Index for June 2013

– Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu

• LangPop.com

– Yahoo!, Craigslist, Powell's Books, Freshmeat, Google Code,

Del.icio.us, Ohloh.

– Lambda The Ultimate, programming.reddit.com, Slashdot, IRC.

• Indeed.com

– Site de empregos.

TIOBE LangPop

Indeed

Conclusões

Tudo que foi colocado aqui não é a bala de prata

Grandes soluções surgem a todo momento

Pequenas empresas já crescem com condições iguais às grandes

Perguntas?

Insanity: doing the same thing over and over again

and expecting different results. -- Albert Einstein

Referências

• http://ontwik.com/python/pycon-2011-how-dropbox-did-it-and-how-python-helped/

• http://benchmarksgame.alioth.debian.org

• http://redmonk.com/dberkholz/2013/03/25/programming-languages-ranked-by-expressiveness/

• http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

• http://www.langpop.com/

• http://benchmarksgame.alioth.debian.org

• http://en.wikipedia.org/wiki/HipHop_for_PHP

• https://www.djangoproject.com

• http://www.technologyreview.com/featuredstory/410312/how-facebook-works/

• http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/

• http://

highscalability.com/blog/2012/5/21/pinterest-architecture-update-18-million-visitors-10x-growth.

html

• http://

highscalability.com/blog/2011/3/14/6-lessons-from-dropbox-one-million-files-saved-every-15-mi

nu.html