Your SlideShare is downloading. ×
0
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Dena Loves Perl
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Dena Loves Perl

3,219

Published on

Published in: Technology, Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,219
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
14
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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... • conflict 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 <domainname>) • 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 first (2004-), we used qmail, postfix • 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 config) • 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 • Let’s write code together! • as DeNA software engineer / architect • as developer of Mobage-town applications • as CPAN author 23
  • 24. DeNA loves Perl! 24

×