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
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
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