Upload
francisco-souza
View
1.636
Download
0
Tags:
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
Começaremos já...
Saturday, March 31, 12
software livre na globo.com
Saturday, March 31, 12
Francisco Souza@franciscosouza
• desenvolvedor @ globo.com
• #cobrateam member
• open source fanboy
Saturday, March 31, 12
Saturday, March 31, 12
Saturday, March 31, 12
Saturday, March 31, 12
Saturday, March 31, 12
Saturday, March 31, 12
12 anos de estrada
Saturday, March 31, 12
500+ mil assinantes
Saturday, March 31, 12
27 times multidisciplinares
Saturday, March 31, 12
https://secure.flickr.com/photos/royskeane/413103429/
Saturday, March 31, 12
Saturday, March 31, 12
Saturday, March 31, 12
Saturday, March 31, 12
Saturday, March 31, 12
Publicação de conteúdo
Saturday, March 31, 12
https://secure.flickr.com/photos/peterkaminski/3772015/
Saturday, March 31, 12
Nova plataforma de publicação
Saturday, March 31, 12
Nova plataforma de publicação
...Saturday, March 31, 12
http://www.oracle.com/us/corporate/customers/customersearch/globo-1-mysql-ss-406120.html
Saturday, March 31, 12
https://secure.flickr.com/photos/eurritimia/381962013/
Saturday, March 31, 12
Software livre na Globo.com
Saturday, March 31, 12
https://secure.flickr.com/photos/pleeker/146575856/
Saturday, March 31, 12
https://secure.flickr.com/photos/pleeker/146575856/
• Aplicação• Banco de dados• Cache• ...
Saturday, March 31, 12
Servidores de aplicação
• nginx
• Apache (PHP)
• Tomcat (Java)
• gunicorn (Python)
• mod_wsgi (Python)
• passenger/unicorn (Ruby)
Saturday, March 31, 12
Cache
• Varnish (CachOS)
• memcached
Saturday, March 31, 12
Bancos de dados
• MySQL
• MongoDB
• Redis
• Virtuoso
• Oracle :-(
Saturday, March 31, 12
Linguagens e plataformas
• Python
• Ruby/JRuby
• Java
• JavaScript
• C
• Perl
• Go
• PHP (platb - Wordpress)
Saturday, March 31, 12
E mais...• ElasticSearch
• Capistrano
• Fabric
• VirtualBox OSE
• Nagios
• ActiveMQ
• RabbitMQ
• Django
• Tornado
• Ruby on Rails
• Sinatra
• VRaptor
• ...
Saturday, March 31, 12
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
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
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
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
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
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
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
Software livre na Globo.com
Saturday, March 31, 12
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
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
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
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
tsuru
✴ Tsuru is an open platform-as-a-service (PaaS)
✴ https://github.com/timeredbull/tsuru
Saturday, March 31, 12
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
Saturday, March 31, 12
...Saturday, March 31, 12
Saturday, March 31, 12
Mais de 40 projetos open source nasceram na globo.com devido às necessidades da empresa
Saturday, March 31, 12
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
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
Saturday, March 31, 12
... dos nossos desenvolvedoresparticipam ou já participaram do movimento open source
30%Mais de ...
Saturday, March 31, 12
Queremos aumentar esse número!
• github.com/globocom/iwanttoworkatglobocom
Saturday, March 31, 12
Dúvidas?
Saturday, March 31, 12