SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
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
 • mobamail: mail delivery for mobile phone
• Mobage-town Open Platform
• ambivalent love for Perl
                    2
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 speakers
 • Hideo Kimura (modern Catalyst)
 • Toru Yamaguchi (Perl DB test using
     MySQL::Sandbox)
 •   Tadashi Matsuda (MobaSiF::Template)

                     4
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
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
                                   .
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
YAPC-driven
        Open Source
• 2008
 • MobaSiF
• 2009
 • MobaSiF::Template (Matsuda)
 • mobamail - fast mail delivery daemon for
    mobile phones

                    8
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
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
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
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
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
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
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
current operation
                              MX
                              MX
                              .
                              .
                              .    docomo
mobamail
                              MX
                              MX
              SIELLA ENGINE   .
                              .
                              .      au
                              MX
mobamail                      MX
                              .
                              .
                              .    softbank
               better
                              MX
            performance
                              MX
           without tuning     . other ISP
                              .
                       16     .
mobamail
  will be available at...

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


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



        19
DeNA dev policy

•
    •                   ...

    •
    •         =>

    •     /

•                             ...




                   20
ambivalent love
•   100          Perl                    CPAN                         ?

    •                           (                         )

    •                                           ...

•   DeNA     Perl

    •                       :
                                                      (       )

    •                                    =

        →

•         CPAN          (                             )           !



                                    21
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
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
DeNA loves Perl!



       24

Contenu connexe

Tendances

Torquebox - O melhor dos dois mundos
Torquebox - O melhor dos dois mundosTorquebox - O melhor dos dois mundos
Torquebox - O melhor dos dois mundosBruno Oliveira
 
Dean Keynote Ladis2009 Google
Dean Keynote Ladis2009 GoogleDean Keynote Ladis2009 Google
Dean Keynote Ladis2009 GoogleDuoc
 
Membase Meetup Chicago - january 2011
Membase Meetup Chicago - january 2011Membase Meetup Chicago - january 2011
Membase Meetup Chicago - january 2011Membase
 
Lightweight Grids With Terracotta
Lightweight Grids With TerracottaLightweight Grids With Terracotta
Lightweight Grids With TerracottaPT.JUG
 
ZK_Arch_notes_20081121
ZK_Arch_notes_20081121ZK_Arch_notes_20081121
ZK_Arch_notes_20081121WANGCHOU LU
 
Puppet: Orchestration framework?
Puppet: Orchestration framework?Puppet: Orchestration framework?
Puppet: Orchestration framework?bodepd
 
程序员0806期敏捷与性能的博弈
程序员0806期敏捷与性能的博弈程序员0806期敏捷与性能的博弈
程序员0806期敏捷与性能的博弈Jesse Cai
 

Tendances (7)

Torquebox - O melhor dos dois mundos
Torquebox - O melhor dos dois mundosTorquebox - O melhor dos dois mundos
Torquebox - O melhor dos dois mundos
 
Dean Keynote Ladis2009 Google
Dean Keynote Ladis2009 GoogleDean Keynote Ladis2009 Google
Dean Keynote Ladis2009 Google
 
Membase Meetup Chicago - january 2011
Membase Meetup Chicago - january 2011Membase Meetup Chicago - january 2011
Membase Meetup Chicago - january 2011
 
Lightweight Grids With Terracotta
Lightweight Grids With TerracottaLightweight Grids With Terracotta
Lightweight Grids With Terracotta
 
ZK_Arch_notes_20081121
ZK_Arch_notes_20081121ZK_Arch_notes_20081121
ZK_Arch_notes_20081121
 
Puppet: Orchestration framework?
Puppet: Orchestration framework?Puppet: Orchestration framework?
Puppet: Orchestration framework?
 
程序员0806期敏捷与性能的博弈
程序员0806期敏捷与性能的博弈程序员0806期敏捷与性能的博弈
程序员0806期敏捷与性能的博弈
 

En vedette

En vedette (9)

ALA Member Benefits Guide
ALA Member Benefits GuideALA Member Benefits Guide
ALA Member Benefits Guide
 
Guice2.0
Guice2.0Guice2.0
Guice2.0
 
Megrisoft Corporate Fact Sheet
Megrisoft Corporate Fact SheetMegrisoft Corporate Fact Sheet
Megrisoft Corporate Fact Sheet
 
Ala Fall PD Day Presentation v2
Ala Fall PD Day Presentation v2Ala Fall PD Day Presentation v2
Ala Fall PD Day Presentation v2
 
Ala Fall PD Day Presentation
Ala Fall PD Day PresentationAla Fall PD Day Presentation
Ala Fall PD Day Presentation
 
Cultivating Campus Collaborations
Cultivating Campus CollaborationsCultivating Campus Collaborations
Cultivating Campus Collaborations
 
Savy Training 16.05.2009
Savy Training 16.05.2009Savy Training 16.05.2009
Savy Training 16.05.2009
 
Cognotes - Sunday June 26
Cognotes - Sunday June 26Cognotes - Sunday June 26
Cognotes - Sunday June 26
 
A list of companies
A list of companiesA list of companies
A list of companies
 

Similaire à Dena Loves Perl

Hong Qiangning in QConBeijing
Hong Qiangning in QConBeijingHong Qiangning in QConBeijing
Hong Qiangning in QConBeijingshen liu
 
State of the art: server-side javaScript - NantesJS
State of the art: server-side javaScript - NantesJSState of the art: server-side javaScript - NantesJS
State of the art: server-side javaScript - NantesJSAlexandre Morgaut
 
Squeak DBX
Squeak DBXSqueak DBX
Squeak DBXESUG
 
Mom those things v1
Mom those things v1 Mom those things v1
Mom those things v1 von gosling
 
豆瓣技术架构的发展历程 @ QCon Beijing 2009
豆瓣技术架构的发展历程 @ QCon Beijing 2009豆瓣技术架构的发展历程 @ QCon Beijing 2009
豆瓣技术架构的发展历程 @ QCon Beijing 2009Qiangning Hong
 
Operating CloudStack: Sharing My Tool Box @ApacheCon NA'15
Operating CloudStack: Sharing My Tool Box @ApacheCon NA'15Operating CloudStack: Sharing My Tool Box @ApacheCon NA'15
Operating CloudStack: Sharing My Tool Box @ApacheCon NA'15Remi Bergsma
 
Apache Spark 2.0: Faster, Easier, and Smarter
Apache Spark 2.0: Faster, Easier, and SmarterApache Spark 2.0: Faster, Easier, and Smarter
Apache Spark 2.0: Faster, Easier, and SmarterDatabricks
 
SLES 11 SP2 PerformanceEvaluation for Linux on System z
SLES 11 SP2 PerformanceEvaluation for Linux on System zSLES 11 SP2 PerformanceEvaluation for Linux on System z
SLES 11 SP2 PerformanceEvaluation for Linux on System zIBM India Smarter Computing
 
State of the art server side java script
State of the art server side java scriptState of the art server side java script
State of the art server side java scriptThibaud Arguillere
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011bobmcwhirter
 
Gear6 Webinar - MySQL Scaling with Memcached
Gear6 Webinar - MySQL Scaling with MemcachedGear6 Webinar - MySQL Scaling with Memcached
Gear6 Webinar - MySQL Scaling with MemcachedGear6
 
What's New in Docker 1.12 by Mike Goelzer and Andrea Luzzardi
What's New in Docker 1.12 by Mike Goelzer and Andrea LuzzardiWhat's New in Docker 1.12 by Mike Goelzer and Andrea Luzzardi
What's New in Docker 1.12 by Mike Goelzer and Andrea LuzzardiDocker, Inc.
 
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiWhat's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiMike Goelzer
 
Galera Multi Master Synchronous My S Q L Replication Clusters
Galera  Multi Master  Synchronous  My S Q L  Replication  ClustersGalera  Multi Master  Synchronous  My S Q L  Replication  Clusters
Galera Multi Master Synchronous My S Q L Replication ClustersPerconaPerformance
 
State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012Alexandre Morgaut
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...DataWorks Summit/Hadoop Summit
 
OpenNebulaConf 2014 - ONE BIT to rule them all - Stefan Kooman
OpenNebulaConf 2014 - ONE BIT to rule them all - Stefan KoomanOpenNebulaConf 2014 - ONE BIT to rule them all - Stefan Kooman
OpenNebulaConf 2014 - ONE BIT to rule them all - Stefan KoomanOpenNebula Project
 
OpenNebula Conf 2014 | ONE BIT to rule them all - Stefan Kooman
OpenNebula Conf 2014 | ONE BIT to rule them all - Stefan KoomanOpenNebula Conf 2014 | ONE BIT to rule them all - Stefan Kooman
OpenNebula Conf 2014 | ONE BIT to rule them all - Stefan KoomanNETWAYS
 

Similaire à Dena Loves Perl (20)

Mvc express presentation
Mvc express presentationMvc express presentation
Mvc express presentation
 
Hong Qiangning in QConBeijing
Hong Qiangning in QConBeijingHong Qiangning in QConBeijing
Hong Qiangning in QConBeijing
 
State of the art: server-side javaScript - NantesJS
State of the art: server-side javaScript - NantesJSState of the art: server-side javaScript - NantesJS
State of the art: server-side javaScript - NantesJS
 
Squeak DBX
Squeak DBXSqueak DBX
Squeak DBX
 
Mom those things v1
Mom those things v1 Mom those things v1
Mom those things v1
 
豆瓣技术架构的发展历程 @ QCon Beijing 2009
豆瓣技术架构的发展历程 @ QCon Beijing 2009豆瓣技术架构的发展历程 @ QCon Beijing 2009
豆瓣技术架构的发展历程 @ QCon Beijing 2009
 
Operating CloudStack: Sharing My Tool Box @ApacheCon NA'15
Operating CloudStack: Sharing My Tool Box @ApacheCon NA'15Operating CloudStack: Sharing My Tool Box @ApacheCon NA'15
Operating CloudStack: Sharing My Tool Box @ApacheCon NA'15
 
Apache Spark 2.0: Faster, Easier, and Smarter
Apache Spark 2.0: Faster, Easier, and SmarterApache Spark 2.0: Faster, Easier, and Smarter
Apache Spark 2.0: Faster, Easier, and Smarter
 
SLES 11 SP2 PerformanceEvaluation for Linux on System z
SLES 11 SP2 PerformanceEvaluation for Linux on System zSLES 11 SP2 PerformanceEvaluation for Linux on System z
SLES 11 SP2 PerformanceEvaluation for Linux on System z
 
State of the art server side java script
State of the art server side java scriptState of the art server side java script
State of the art server side java script
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011
 
XS Boston 2008 Network Topology
XS Boston 2008 Network TopologyXS Boston 2008 Network Topology
XS Boston 2008 Network Topology
 
Gear6 Webinar - MySQL Scaling with Memcached
Gear6 Webinar - MySQL Scaling with MemcachedGear6 Webinar - MySQL Scaling with Memcached
Gear6 Webinar - MySQL Scaling with Memcached
 
What's New in Docker 1.12 by Mike Goelzer and Andrea Luzzardi
What's New in Docker 1.12 by Mike Goelzer and Andrea LuzzardiWhat's New in Docker 1.12 by Mike Goelzer and Andrea Luzzardi
What's New in Docker 1.12 by Mike Goelzer and Andrea Luzzardi
 
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiWhat's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
 
Galera Multi Master Synchronous My S Q L Replication Clusters
Galera  Multi Master  Synchronous  My S Q L  Replication  ClustersGalera  Multi Master  Synchronous  My S Q L  Replication  Clusters
Galera Multi Master Synchronous My S Q L Replication Clusters
 
State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
 
OpenNebulaConf 2014 - ONE BIT to rule them all - Stefan Kooman
OpenNebulaConf 2014 - ONE BIT to rule them all - Stefan KoomanOpenNebulaConf 2014 - ONE BIT to rule them all - Stefan Kooman
OpenNebulaConf 2014 - ONE BIT to rule them all - Stefan Kooman
 
OpenNebula Conf 2014 | ONE BIT to rule them all - Stefan Kooman
OpenNebula Conf 2014 | ONE BIT to rule them all - Stefan KoomanOpenNebula Conf 2014 | ONE BIT to rule them all - Stefan Kooman
OpenNebula Conf 2014 | ONE BIT to rule them all - Stefan Kooman
 

Dernier

Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 

Dernier (20)

Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 

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