open source na globo.com
DESCRIPTION
Palestra apresentada no dia 19/10/2012, durante a Semana do Profissional de TI, nas FIC (Faculdades Integradas de Caratinga).TRANSCRIPT
![Page 1: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/1.jpg)
Começaremos já...
Friday, October 19, 12
![Page 2: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/2.jpg)
open source na globo.com
Friday, October 19, 12
![Page 3: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/4.jpg)
tsuru.ioFriday, October 19, 12
![Page 5: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/5.jpg)
12 anos de estrada
Friday, October 19, 12
![Page 6: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/6.jpg)
500+ mil assinantes
Friday, October 19, 12
![Page 7: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/7.jpg)
27 times multidisciplinares
Friday, October 19, 12
![Page 8: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/8.jpg)
https://secure.flickr.com/photos/royskeane/413103429/
Friday, October 19, 12
![Page 9: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/9.jpg)
Friday, October 19, 12
![Page 10: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/10.jpg)
Friday, October 19, 12
![Page 11: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/11.jpg)
Friday, October 19, 12
![Page 12: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/12.jpg)
Friday, October 19, 12
![Page 13: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/13.jpg)
Publicação de conteúdo
Friday, October 19, 12
![Page 14: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/14.jpg)
https://secure.flickr.com/photos/peterkaminski/3772015/
Friday, October 19, 12
![Page 15: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/15.jpg)
Nova plataforma de publicação
Friday, October 19, 12
![Page 16: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/16.jpg)
Nova plataforma de publicação
...Friday, October 19, 12
![Page 17: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/17.jpg)
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://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/18.jpg)
https://secure.flickr.com/photos/eurritimia/381962013/
Friday, October 19, 12
![Page 19: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/19.jpg)
Software livre na Globo.com
Friday, October 19, 12
![Page 20: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/20.jpg)
https://secure.flickr.com/photos/pleeker/146575856/
Friday, October 19, 12
![Page 21: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/21.jpg)
https://secure.flickr.com/photos/pleeker/146575856/
• Aplicação• Banco de dados• Cache• ...
Friday, October 19, 12
![Page 22: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/23.jpg)
Cache
• Varnish (CachOS)
• memcached
Friday, October 19, 12
![Page 24: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/24.jpg)
Bancos de dados
• MySQL
• MongoDB
• Redis
• Virtuoso
• Oracle :-(
Friday, October 19, 12
![Page 25: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/34.jpg)
“Kinda-open source”
Friday, October 19, 12
![Page 35: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/35.jpg)
libby
• Colaboração entre times;
• Reutilização de componentes comuns em diversos produtos.
Friday, October 19, 12
![Page 36: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/36.jpg)
“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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/37.jpg)
Fedex Day
Friday, October 19, 12
![Page 38: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/38.jpg)
Friday, October 19, 12
![Page 39: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/39.jpg)
opensource.globo.com
Friday, October 19, 12
![Page 40: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/47.jpg)
hlsclient
• Python HLS (HTTP Live Streaming) client;
• https://github.com/globocom/hlsclient
Friday, October 19, 12
![Page 48: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/49.jpg)
Friday, October 19, 12
![Page 50: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/50.jpg)
...Friday, October 19, 12
![Page 51: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/51.jpg)
Friday, October 19, 12
![Page 52: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/52.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/53.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/54.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/55.jpg)
Friday, October 19, 12
![Page 56: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/56.jpg)
... dos nossos desenvolvedoresparticipam ou já participaram do movimento open source
30%Mais de ...
Friday, October 19, 12
![Page 57: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/57.jpg)
Queremos aumentar esse número!
• globo.com/talentos
Friday, October 19, 12
![Page 58: Open source na Globo.com](https://reader034.vdocuments.us/reader034/viewer/2022042714/54b6cad84a7959b5318b456d/html5/thumbnails/58.jpg)
Dúvidas?
Friday, October 19, 12