Open source na Globo.com

1.356 visualizações

Publicada em

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

Publicada em: Tecnologia
1 comentário
2 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
1.356
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
16
Comentários
1
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Open source na Globo.com

  1. 1. Começaremos já...Friday, October 19, 12
  2. 2. open source na globo.comFriday, October 19, 12
  3. 3. Francisco Souza @franciscosouza • desenvolvedor @ globo.com • #cobrateam member • open source fanboy • (temporariamente) procurador senior de apartamentosFriday, October 19, 12
  4. 4. tsuru.ioFriday, October 19, 12
  5. 5. 12 anos de estradaFriday, October 19, 12
  6. 6. 500+ mil assinantesFriday, October 19, 12
  7. 7. 27 times multidisciplinaresFriday, October 19, 12
  8. 8. https://secure.flickr.com/photos/royskeane/413103429/Friday, October 19, 12
  9. 9. Friday, October 19, 12
  10. 10. Friday, October 19, 12
  11. 11. Friday, October 19, 12
  12. 12. Friday, October 19, 12
  13. 13. Publicação de conteúdoFriday, October 19, 12
  14. 14. https://secure.flickr.com/photos/peterkaminski/3772015/Friday, October 19, 12
  15. 15. Nova plataforma de publicaçãoFriday, October 19, 12
  16. 16. ... Nova plataforma de publicaçãoFriday, October 19, 12
  17. 17. http://www.oracle.com/us/corporate/customers/customersearch/globo-1-mysql-ss-406120.htmlFriday, October 19, 12
  18. 18. https://secure.flickr.com/photos/eurritimia/381962013/Friday, October 19, 12
  19. 19. Software livre na Globo.comFriday, October 19, 12
  20. 20. https://secure.flickr.com/photos/pleeker/146575856/Friday, October 19, 12
  21. 21. • Aplicação • Banco de dados • Cache • ... https://secure.flickr.com/photos/pleeker/146575856/Friday, October 19, 12
  22. 22. Servidores de aplicação • nginx • Apache (PHP) • Tomcat (Java) • gunicorn (Python) • mod_wsgi (Python) • passenger/unicorn (Ruby) • etc...Friday, October 19, 12
  23. 23. Cache • Varnish (CachOS) • memcachedFriday, October 19, 12
  24. 24. Bancos de dados • MySQL • MongoDB • Redis • Virtuoso • Oracle :-(Friday, October 19, 12
  25. 25. Linguagens e plataformas • Python • Ruby/JRuby • Java • JavaScript/node.js •C • Perl • Go • PHP (platb - Wordpress)Friday, October 19, 12
  26. 26. E mais... • ElasticSearch • Django • Capistrano • Tornado • Fabric • Ruby on Rails • VirtualBox OSE • Sinatra • Nagios • VRaptor • ActiveMQ • ... • RabbitMQFriday, October 19, 12
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. “Kinda-open source”Friday, October 19, 12
  35. 35. libby • Colaboração entre times; • Reutilização de componentes comuns em diversos produtos.Friday, October 19, 12
  36. 36. “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
  37. 37. Fedex DayFriday, October 19, 12
  38. 38. Friday, October 19, 12
  39. 39. opensource.globo.comFriday, October 19, 12
  40. 40. 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/sawpfFriday, October 19, 12
  41. 41. thumbor ✴ thumbor is a smart imaging service. It enables on- demand crop, resizing and flipping of images. ✴ https://github.com/globocom/thumborFriday, October 19, 12
  42. 42. Globo Bootstrap • Fork to Twitter Bootstrap; • Em português; • Com componentes utilizados em produtos da Globo.com.Friday, October 19, 12
  43. 43. 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/oauth2uFriday, October 19, 12
  44. 44. 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-moduleFriday, October 19, 12
  45. 45. tsuru ✴ Tsuru is an open platform-as-a-service (PaaS) ✴ https://github.com/globocom/tsuruFriday, October 19, 12
  46. 46. gandalf • HTTP API for git projects and users management; • https://github.com/globocom/gandalfFriday, October 19, 12
  47. 47. hlsclient • Python HLS (HTTP Live Streaming) client; • https://github.com/globocom/hlsclientFriday, October 19, 12
  48. 48. E tem mais! • Django • wxPython • Python • InVersalius • Go Programming Language • molecular-view • magic2d • Sure • Django static generator • Bolacha • Splinter • PhantomJS • Django Brasil • Guake Terminal • Pyccuracy • Homebrew • Lettuce • FreshenFriday, October 19, 12
  49. 49. Friday, October 19, 12
  50. 50. ...Friday, October 19, 12
  51. 51. Friday, October 19, 12
  52. 52. Mais de 40 projetos open source nasceram na globo.com devido às necessidades da empresaFriday, October 19, 12
  53. 53. 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.comFriday, October 19, 12
  54. 54. 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 frameworksFriday, October 19, 12
  55. 55. Friday, October 19, 12
  56. 56. 30% Mais de ... ... dos nossos desenvolvedores participam ou já participaram do movimento open sourceFriday, October 19, 12
  57. 57. Queremos aumentar esse número! • globo.com/talentos • fss@corp.globo.comFriday, October 19, 12
  58. 58. Dúvidas?Friday, October 19, 12
  59. 59. Muito obrigado! fss@corp.globo.com @franciscosouzaFriday, October 19, 12

×