DeNA loves Perl
     Tokiharu Noto
    (DeNA Co., Ltd.)




           1
agenda
• How much / why does DeNA love Perl?
 • outline of Perl usage in DeNA
• YAPC-driven Open Source from DeNA
 • mobam...
DeNA services
powered by Perl




       3
How many DeNA
  engineers love Perl?
• about 100 engineers
 • > 50 engineers in mbga.jp team
• YAPC::Asia Tokyo 2009 speak...
Why does DeNA
          love Perl?
• bidders: Java + Oracle
• In 2003, Kawasaki has started developing
    mbok.jp with Pe...
DeNA scalable
              web architecture MySQL
                               M           w/replication
    Load
   Ba...
MobaSiF
    DeNA original WAF
                                •   Open Source since
                                    YA...
YAPC-driven
        Open Source
• 2008
 • MobaSiF
• 2009
 • MobaSiF::Template (Matsuda)
 • mobamail - fast mail delivery d...
mail delivery
   for mobile phones
• Mobile phone carriers deny SMTP
  connection at their own discretion (   ).

 • “spam...
mail delivery
    for mobile phones
• 1.09 (109 million) users / 3 carrier ≒ ISP
• MX (cf. dig -t MX <domainname>)
 • doco...
mail delivery
      for mobile phones
+,PC -./0,"#$%&'(&)123456-78"#*%&'(&)9:1;<=>?@A4BC1DEFG!


"#$!                     ...
before mobamail

• At first (2004-), we used qmail, postfix
 • slow injection
   • main: sendmail command
   • SMTP/QMTP...
...
mobamail
• implemented in pure Perl
• ≠ MTA (no SMTP receive, relay)
• injection = insert into a table in MySQL
• high spe...
mobamail strategy
•   provide tuning params                •  connection closed,
    for best effort under the            ...
mobamail architecture
                                IO::Select   MX

                   ‘docomo’                  MX
   ...
current operation
                              MX
                              MX
                              .
      ...
mobamail
  will be available at...

• http://sourceforge.jp/projects/moba/
• http://d.hatena.ne.jp/tokiharu/ (w/RSS)


   ...
Mobage-town Open Platform
            18
DeNA & Perl, again



        19
DeNA dev policy

•
    •                   ...

    •
    •         =>

    •     /

•                             ...



...
ambivalent love
•   100          Perl                    CPAN                         ?

    •                           (...
DeNA gonna
              love CPAN
•
•   Some pilot projects depend on a lot of CPAN
    modules (and Catalyst)
•
    •   ...
DeNA loves Perl!
• a Perl community cosists of 100 engineers
• Let’s write code together!
 • as DeNA software engineer / a...
DeNA loves Perl!



       24
Upcoming SlideShare
Loading in...5
×

Dena Loves Perl

3,250

Published on

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

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

No notes for slide

Dena Loves Perl

  1. 1. DeNA loves Perl Tokiharu Noto (DeNA Co., Ltd.) 1
  2. 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. 3. DeNA services powered by Perl 3
  4. 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. 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. 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. 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. 8. YAPC-driven Open Source • 2008 • MobaSiF • 2009 • MobaSiF::Template (Matsuda) • mobamail - fast mail delivery daemon for mobile phones 8
  9. 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. 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. 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. 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. 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. 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. 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. 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. 17. mobamail will be available at... • http://sourceforge.jp/projects/moba/ • http://d.hatena.ne.jp/tokiharu/ (w/RSS) 17
  18. 18. Mobage-town Open Platform 18
  19. 19. DeNA & Perl, again 19
  20. 20. DeNA dev policy • • ... • • => • / • ... 20
  21. 21. ambivalent love • 100 Perl CPAN ? • ( ) • ... • DeNA Perl • : ( ) • = → • CPAN ( ) ! 21
  22. 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. 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. 24. DeNA loves Perl! 24
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×