Open source na Globo.com

59
Começaremos já... Friday, October 19, 12

description

Palestra apresentada no dia 19/10/2012, durante a Semana do Profissional de TI, nas FIC (Faculdades Integradas de Caratinga).

Transcript of Open source na Globo.com

Page 1: Open source na Globo.com

Começaremos já...

Friday, October 19, 12

Page 2: Open source na Globo.com

open source na globo.com

Friday, October 19, 12

Page 3: Open source na Globo.com

Francisco Souza@franciscosouza

• desenvolvedor @ globo.com

• #cobrateam member

• open source fanboy

• (temporariamente) procurador senior de apartamentos

Friday, October 19, 12

Page 4: Open source na Globo.com

tsuru.ioFriday, October 19, 12

Page 5: Open source na Globo.com

12 anos de estrada

Friday, October 19, 12

Page 6: Open source na Globo.com

500+ mil assinantes

Friday, October 19, 12

Page 7: Open source na Globo.com

27 times multidisciplinares

Friday, October 19, 12

Page 8: Open source na Globo.com

https://secure.flickr.com/photos/royskeane/413103429/

Friday, October 19, 12

Page 9: Open source na Globo.com

Friday, October 19, 12

Page 10: Open source na Globo.com

Friday, October 19, 12

Page 11: Open source na Globo.com

Friday, October 19, 12

Page 12: Open source na Globo.com

Friday, October 19, 12

Page 13: Open source na Globo.com

Publicação de conteúdo

Friday, October 19, 12

Page 14: Open source na Globo.com

https://secure.flickr.com/photos/peterkaminski/3772015/

Friday, October 19, 12

Page 15: Open source na Globo.com

Nova plataforma de publicação

Friday, October 19, 12

Page 16: Open source na Globo.com

Nova plataforma de publicação

...Friday, October 19, 12

Page 17: Open source na Globo.com

http://www.oracle.com/us/corporate/customers/customersearch/globo-1-mysql-ss-406120.html

Friday, October 19, 12

Page 18: Open source na Globo.com

https://secure.flickr.com/photos/eurritimia/381962013/

Friday, October 19, 12

Page 19: Open source na Globo.com

Software livre na Globo.com

Friday, October 19, 12

Page 20: Open source na Globo.com

https://secure.flickr.com/photos/pleeker/146575856/

Friday, October 19, 12

Page 21: Open source na Globo.com

https://secure.flickr.com/photos/pleeker/146575856/

• Aplicação• Banco de dados• Cache• ...

Friday, October 19, 12

Page 22: Open source na Globo.com

Servidores de aplicação• nginx

• Apache (PHP)

• Tomcat (Java)

• gunicorn (Python)

• mod_wsgi (Python)

• passenger/unicorn (Ruby)

• etc...

Friday, October 19, 12

Page 23: Open source na Globo.com

Cache

• Varnish (CachOS)

• memcached

Friday, October 19, 12

Page 24: Open source na Globo.com

Bancos de dados

• MySQL

• MongoDB

• Redis

• Virtuoso

• Oracle :-(

Friday, October 19, 12

Page 25: Open source na Globo.com

Linguagens e plataformas

• Python

• Ruby/JRuby

• Java

• JavaScript/node.js

• C

• Perl

• Go

• PHP (platb - Wordpress)

Friday, October 19, 12

Page 26: Open source na Globo.com

E mais...• ElasticSearch

• Capistrano

• Fabric

• VirtualBox OSE

• Nagios

• ActiveMQ

• RabbitMQ

• Django

• Tornado

• Ruby on Rails

• Sinatra

• VRaptor

• ...

Friday, October 19, 12

Page 27: Open source na Globo.com

Um exemplo: G1

• Como desenvolvemos e colocamos código do G1 em produção?

• Quem entrega o conteúdo para o usuário?

Friday, October 19, 12

Page 28: Open source na Globo.com

Desenvolvendo

• Quero implementar uma nova feature no G1! Trata-se de um widget que vai obter informações de trânsito e armazená-las no banco de dados;

• Preciso de uma tabela no banco de dados, e um pouco de código pra isso;

• Como isso é feito no G1?

Friday, October 19, 12

Page 29: Open source na Globo.com

Banco de dados

• O G1 utiliza o MySQL como único banco de dados relacional;

• Mudanças no banco de dados são feitas através de migrations. Para as migrations, utilizamos o simple-db-migrate, um projeto open source que nasceu na Globo.com.

Friday, October 19, 12

Page 30: Open source na Globo.com

O código

• O código é feito em Python, linguagem de programação open source;

• Para tornar o desenvolvimento ainda mais simples e produtivo, utilizamos o framework web Django;

• E no lado do cliente, um pouco de jQuery e JavaScript puro :)

Friday, October 19, 12

Page 31: Open source na Globo.com

O deploy• Utilizamos o Capistrano para enviar o

código da máquina do desenvolvedor para o servidor de aplicação;

• Também utilizamos o Capistrano para executar as migrations no servidor de banco de dados;

• Tanto as máquinas de aplicação quanto de banco de dados utilizam Linux como sistema operacional.

Friday, October 19, 12

Page 32: Open source na Globo.com

Quem serve a aplicação?

• Todo conteúdo estático do G1 é servido pelo nginx;

• Em caso de conteúdo dinâmico, o nginx repassa as requisições para o gunicorn, um servidor para aplicações web Python;

• Todo conteúdo editorial da Globo.com é gerado estaticamente em disco, para garantir melhor desempenho. Para geração de conteúdo estático é utilizado o staticgenerator.

Friday, October 19, 12

Page 33: Open source na Globo.com

E muito mais!• Diversas bibliotecas open source para

desenvolvimento e testes;

• Monitoração das máquinas utilizando Nagios;

• Provisionamento e configuração versionada das máquinas com Puppet;

• etc.

Friday, October 19, 12

Page 34: Open source na Globo.com

“Kinda-open source”

Friday, October 19, 12

Page 35: Open source na Globo.com

libby

• Colaboração entre times;

• Reutilização de componentes comuns em diversos produtos.

Friday, October 19, 12

Page 36: Open source na Globo.com

“github” interno

• Todos os desenvolvedores da empresa têm acesso ao código de todos os times;

• Patches são bem vindos :-)

Friday, October 19, 12

Page 37: Open source na Globo.com

Fedex Day

Friday, October 19, 12

Page 38: Open source na Globo.com

Friday, October 19, 12

Page 39: Open source na Globo.com

opensource.globo.com

Friday, October 19, 12

Page 40: Open source na Globo.com

salve a web, por favor!✴ Navegadores velhos e desatualizados não evoluem

junto com os padrões web e são cheios de bugs, afetando a qualidade dos sites e fazendo com que os desenvolvedores gastem mais tempo para adaptar os sites a esses browsers obsoletos.

✴ "Salve a web, por favor" é um esforço para eliminar esses navegadores.

✴ https://github.com/globocom/sawpf

Friday, October 19, 12

Page 41: Open source na Globo.com

thumbor

✴ thumbor is a smart imaging service. It enables on-demand crop, resizing and flipping of images.

✴ https://github.com/globocom/thumbor

Friday, October 19, 12

Page 42: Open source na Globo.com

Globo Bootstrap

• Fork to Twitter Bootstrap;

• Em português;

• Com componentes utilizados em produtos da Globo.com.

Friday, October 19, 12

Page 43: Open source na Globo.com

oauth2u

✴ This project aims to implement the complete OAuth 2.0 Authorization Protocol Specification.

✴ It provides the endpoints specified by OAuth 2.0 specification with possibilities to plug code to customize specific behaviors.

✴ https://github.com/globocom/oauth2u

Friday, October 19, 12

Page 44: Open source na Globo.com

nginx-push-stream-module

✴ A pure stream http push technology for your Nginx setup.

✴ Comet made easy and really scalable.✴ Supports EventSource, WebSocket, Long Polling, and

Forever Iframe.✴ https://github.com/wandenberg/nginx-push-stream-module

Friday, October 19, 12

Page 45: Open source na Globo.com

tsuru

✴ Tsuru is an open platform-as-a-service (PaaS)

✴ https://github.com/globocom/tsuru

Friday, October 19, 12

Page 46: Open source na Globo.com

gandalf

• HTTP API for git projects and users management;

• https://github.com/globocom/gandalf

Friday, October 19, 12

Page 47: Open source na Globo.com

hlsclient

• Python HLS (HTTP Live Streaming) client;

• https://github.com/globocom/hlsclient

Friday, October 19, 12

Page 48: Open source na Globo.com

E tem mais!• Django

• Python

• Go Programming Language

• magic2d

• Django static generator

• Splinter

• Django Brasil

• Pyccuracy

• Lettuce

• wxPython

• InVersalius

• molecular-view

• Sure

• Bolacha

• PhantomJS

• Guake Terminal

• Homebrew

• Freshen

Friday, October 19, 12

Page 49: Open source na Globo.com

Friday, October 19, 12

Page 50: Open source na Globo.com

...Friday, October 19, 12

Page 51: Open source na Globo.com

Friday, October 19, 12

Page 52: Open source na Globo.com

Mais de 40 projetos open source nasceram na globo.com devido às necessidades da empresa

Friday, October 19, 12

Page 53: Open source na Globo.com

Mais de 40 projetos open source nasceram na globo.com devido às necessidades da empresa

Mais de 100 projetos open source já receberam contribuições de

funcionários da globo.com

Friday, October 19, 12

Page 54: Open source na Globo.com

Mais de 40 projetos open source nasceram na globo.com devido às necessidades da empresa

Mais de 100 projetos open source já receberam contribuições de

funcionários da globo.com

Grande parte das tecnologias utilizadas pela Globo.com já recebeu contribuições de desenvolvedores da empresa, incluindo linguagens de programação e frameworks

Friday, October 19, 12

Page 55: Open source na Globo.com

Friday, October 19, 12

Page 56: Open source na Globo.com

... dos nossos desenvolvedoresparticipam ou já participaram do movimento open source

30%Mais de ...

Friday, October 19, 12

Page 57: Open source na Globo.com

Queremos aumentar esse número!

• globo.com/talentos

[email protected]

Friday, October 19, 12

Page 58: Open source na Globo.com

Dúvidas?

Friday, October 19, 12

Page 59: Open source na Globo.com

Muito [email protected]

@franciscosouza

Friday, October 19, 12