55
Começaremos já... Saturday, March 31, 12

Software livre na Globo.com

Embed Size (px)

DESCRIPTION

Palestra apresentada no Liberdade Interativa realizado no dia 31/03/2012, em Barra de São Francisco, na região noroeste do Espírito Santo.

Citation preview

Page 1: Software livre na Globo.com

Começaremos já...

Saturday, March 31, 12

Page 2: Software livre na Globo.com

software livre na globo.com

Saturday, March 31, 12

Page 3: Software livre na Globo.com

Francisco Souza@franciscosouza

• desenvolvedor @ globo.com

• #cobrateam member

• open source fanboy

Saturday, March 31, 12

Page 4: Software livre na Globo.com

Saturday, March 31, 12

Page 5: Software livre na Globo.com

Saturday, March 31, 12

Page 6: Software livre na Globo.com

Saturday, March 31, 12

Page 7: Software livre na Globo.com

Saturday, March 31, 12

Page 8: Software livre na Globo.com

Saturday, March 31, 12

Page 9: Software livre na Globo.com

12 anos de estrada

Saturday, March 31, 12

Page 10: Software livre na Globo.com

500+ mil assinantes

Saturday, March 31, 12

Page 11: Software livre na Globo.com

27 times multidisciplinares

Saturday, March 31, 12

Page 12: Software livre na Globo.com

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

Saturday, March 31, 12

Page 13: Software livre na Globo.com

Saturday, March 31, 12

Page 14: Software livre na Globo.com

Saturday, March 31, 12

Page 15: Software livre na Globo.com

Saturday, March 31, 12

Page 16: Software livre na Globo.com

Saturday, March 31, 12

Page 17: Software livre na Globo.com

Publicação de conteúdo

Saturday, March 31, 12

Page 18: Software livre na Globo.com

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

Saturday, March 31, 12

Page 19: Software livre na Globo.com

Nova plataforma de publicação

Saturday, March 31, 12

Page 20: Software livre na Globo.com

Nova plataforma de publicação

...Saturday, March 31, 12

Page 21: Software livre na Globo.com

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

Saturday, March 31, 12

Page 22: Software livre na Globo.com

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

Saturday, March 31, 12

Page 23: Software livre na Globo.com

Software livre na Globo.com

Saturday, March 31, 12

Page 24: Software livre na Globo.com

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

Saturday, March 31, 12

Page 25: Software livre na Globo.com

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

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

Saturday, March 31, 12

Page 26: Software livre na Globo.com

Servidores de aplicação

• nginx

• Apache (PHP)

• Tomcat (Java)

• gunicorn (Python)

• mod_wsgi (Python)

• passenger/unicorn (Ruby)

Saturday, March 31, 12

Page 27: Software livre na Globo.com

Cache

• Varnish (CachOS)

• memcached

Saturday, March 31, 12

Page 28: Software livre na Globo.com

Bancos de dados

• MySQL

• MongoDB

• Redis

• Virtuoso

• Oracle :-(

Saturday, March 31, 12

Page 29: Software livre na Globo.com

Linguagens e plataformas

• Python

• Ruby/JRuby

• Java

• JavaScript

• C

• Perl

• Go

• PHP (platb - Wordpress)

Saturday, March 31, 12

Page 30: Software livre na Globo.com

E mais...• ElasticSearch

• Capistrano

• Fabric

• VirtualBox OSE

• Nagios

• ActiveMQ

• RabbitMQ

• Django

• Tornado

• Ruby on Rails

• Sinatra

• VRaptor

• ...

Saturday, March 31, 12

Page 31: Software livre 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?

Saturday, March 31, 12

Page 32: Software livre 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?

Saturday, March 31, 12

Page 33: Software livre 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.

Saturday, March 31, 12

Page 34: Software livre 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 :)

Saturday, March 31, 12

Page 35: Software livre 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.

Saturday, March 31, 12

Page 36: Software livre 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.

Saturday, March 31, 12

Page 37: Software livre 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.

Saturday, March 31, 12

Page 38: Software livre na Globo.com

Software livre na Globo.com

Saturday, March 31, 12

Page 39: Software livre 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

Saturday, March 31, 12

Page 40: Software livre 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

Saturday, March 31, 12

Page 41: Software livre 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

Saturday, March 31, 12

Page 42: Software livre 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

Saturday, March 31, 12

Page 43: Software livre na Globo.com

tsuru

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

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

Saturday, March 31, 12

Page 44: Software livre 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

Saturday, March 31, 12

Page 45: Software livre na Globo.com

Saturday, March 31, 12

Page 46: Software livre na Globo.com

...Saturday, March 31, 12

Page 47: Software livre na Globo.com

Saturday, March 31, 12

Page 48: Software livre na Globo.com

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

Saturday, March 31, 12

Page 49: Software livre 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

Saturday, March 31, 12

Page 50: Software livre 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

Saturday, March 31, 12

Page 51: Software livre na Globo.com

Saturday, March 31, 12

Page 52: Software livre na Globo.com

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

30%Mais de ...

Saturday, March 31, 12

Page 53: Software livre na Globo.com

Queremos aumentar esse número!

• github.com/globocom/iwanttoworkatglobocom

[email protected]

Saturday, March 31, 12

Page 54: Software livre na Globo.com

Dúvidas?

Saturday, March 31, 12

Page 55: Software livre na Globo.com

Muito [email protected]

@franciscosouza

Saturday, March 31, 12