Dena Loves Perl

Embed Size (px)

DESCRIPTION

 

Text of Dena Loves Perl

  • 1. DeNA loves Perl Tokiharu Noto (DeNA Co., Ltd.) 1
  • 2. agenda How much / why does DeNA love Perl? outline of Perl usage in DeNA YAPC-driven Open Source from DeNA mobamail: mail delivery for mobile phone Mobage-town Open Platform ambivalent love for Perl 2
  • 3. DeNA services powered by Perl 3
  • 4. How many DeNA engineers love Perl? about 100 engineers > 50 engineers in mbga.jp team YAPC::Asia Tokyo 2009 speakers Hideo Kimura (modern Catalyst) Toru Yamaguchi (Perl DB test using MySQL::Sandbox) Tadashi Matsuda (MobaSiF::Template) 4
  • 5. Why does DeNA love Perl? bidders: Java + Oracle In 2003, Kawasaki has started developing mbok.jp with Perl In 2006, ex-bidders engineers joined to Moba* services dev/edit/exec speed++, readability++, productivity++ (also for biz people) The whole DeNA have loved Perl since 5
  • 6. DeNA scalable web architecture MySQL M w/replication Load Balancer S S S ... . . . partitioning mbga > 90 M Load S S S ... MySQL Balancer LVS +Senna DNS RR . . . mbga > 1300 memcached servers httpd+fcgi servers . . 6 .
  • 7. MobaSiF DeNA original WAF Open Source since YAPC::Asia Tokyo 2008 web applications pros dispatcher common modules for pictgraph converter mobile web handset ditector simple, light-weight, fast MobaSiF template engine stable mod_fastcgi cons no PSGI/Plack ;-) Apache $_::F, $rhData no test... too free for a large team... 7
  • 8. YAPC-driven Open Source 2008 MobaSiF 2009 MobaSiF::Template (Matsuda) mobamail - fast mail delivery daemon for mobile phones 8
  • 9. mail delivery for mobile phones Mobile phone carriers deny SMTP connection at their own discretion ( ). spam? especially when senders try to send mails with high speed... conict with our wish more speeeeedy! 9
  • 10. mail delivery for mobile phones 1.09 (109 million) users / 3 carrier ISP MX (cf. dig -t MX ) docomo.ne.jp: 4 IP addresses ezweb.ne.jp: 1 IP address softbank.ne.jp: 1 IP address 10
  • 11. mail delivery for mobile phones +,PC -./0,"#$%&'(&)123456-78"#*%&'(&)9:1;?@A4BC1DEFG! "#$! !! !! %&'(&)! !! "#*! %&'(&)! !! H,IJ-./0,"#$%&'(&)-31KLM6-78"#*%&'(&)9:1;?@A4BC1D4NG! "#$! OPQR,A! OPQR,B OPQR,C %&'(&)! "#*! %&'(&)! !! 11
  • 12. before mobamail At rst (2004-), we used qmail, postx slow injection main: sendmail command SMTP/QMTP... We have to make our own original server... 12
  • 13. mobamail implemented in pure Perl MTA (no SMTP receive, relay) injection = insert into a table in MySQL high speed table2mail to mobile phones max speed (depend on carrier-side cong) docomo+au: 500,000 mails/h softbank: 20,000 mails/h 13
  • 14. mobamail strategy provide tuning params connection closed, for best effort under the timeout, ... carriers permission: timeout num of connection connect() connect() interval wait for response mail per connection unused connection mail interval (in one error count connection) => retry_interval interval after denied 14
  • 15. mobamail architecture IO::Select MX docomo MX . SMTP . . docomo au MX dist daemon MX softbank . . . au MX default MX . . . softbank send daemon MySQL processes MX MX . other ISP . . one server 15
  • 16. current operation MX MX . . . docomo mobamail MX MX SIELLA ENGINE . . . au MX mobamail MX . . . softbank better MX performance MX without tuning . other ISP . 16 .
  • 17. mobamail will be available at... http://sourceforge.jp/projects/moba/ http://d.hatena.ne.jp/tokiharu/ (w/RSS) 17
  • 18. Mobage-town Open Platform 18
  • 19. DeNA & Perl, again 19
  • 20. DeNA dev policy ... => / ... 20
  • 21. ambivalent love 100 Perl CPAN ? ( ) ... DeNA Perl : ( ) = CPAN ( ) ! 21
  • 22. DeNA gonna love CPAN Some pilot projects depend on a lot of CPAN modules (and Catalyst) dev policy for the large team more test code MobaSiF next generation 22
  • 23. DeNA loves Perl! a Perl community cosists of 100 engineers Lets write code together! as DeNA software engineer / architect as developer of Mobage-town application