Perl
YAPC::Asia 2009 Tokyo
     2009/9/10
•       id:hiboma

•
    •

•
•        CTO

    •

    •4    25
•       id:MIZZY

•
•
    /



•             /
                   .... etc
•   gihyo.jp       Puppet, Func

    •   http://gihyo.jp/admin/serial/01/puppet

    •   http://gihyo.jp/admin/serial/01/f...
•

•   paperboy&co.
CTO
CTO
CTO
“




    ”
•   paperboy&co.

•
•
•
•          PHP

•                Perl



•
    Perl
Perl
30days Album
30days Album
• http://30d.jp/
•
• 30
  • 30
  •         10

 • 40
30days Album

•
    •
    •
30days Album + Perl
• Perlbal
• MogileFS
•            API on Catalyst

• Gearman
• TheSchwartz
Perlbal

• Perl
•
•
Perlbal


                    Perlbal



http://30d.jp/img             http://30d.jp/img




              Web
Perlbal
• Perl

 •3
• MogileFS
 • X-Reproxy-URL
MogileFS

• Perl
•
•
MogileFS
                                client




mogilefsd           mogilefsd            mogstored   mogstored




   ...
MogileFS

•               OSS

• Perlbal
  • X-Reproxy-URL
API

• MogileFS
• API          GET/PUT



• Perl + Catalyst
API
                         client



       HTTP GET/PUT

                          API




mogilefsd    mogilefsd      ...
API
•
    •

•
    •   MogileFS::Client   MKCOL   API
API
•
    •   MogileFS   Content-Type Content-Length
                         API

•
    •   MogileFS                     ...
Perlbal
                                                   Perlbal


                 X-Reproxy-URL:
http://storage_node/d...
•
    •

    • Gearman/TheSchwartz
    •               API
Web
                    (Rails)


                          XML-RPC
                          API
                   (Cata...
API

•                      Web
              gearman / TheSchwartz



• Catalyst + Catalyst::Plugin::XMLRPC   API
Gearman
 •           (                 )

 • Web
   •
   •
• Proc::Background
                 daemontools
TheSchwartz
    •              (               )

        •
               ~               )

        •              (zip)...
•

•
•              Image::Imlib2

•                   =>

• yusukebe
  • http://yusukebe.com/tech/archives/
    20070526/01171...
heteml
(            )
- flash media server
- coldfusion
-               SSL
- SSH
4/1
•
•
•
CGI
•   Apache2.0(Worker) + SuEXEC + mod_cgid
    •   PHP, Perl, Ruby, Python
•   CGI               =>

•
    •
    •   CPU
hetepro
•
•
    • Class::Component
    • + Daemon::Generic
    • + Sys::Statistics::Linux (   )

• 2007                  (...
hetepro
•


•       :      CPU   N
    kill -9

    •
hetepro

filter:
 - catch:
     uid: gt: 1000
     runtime: gt: 300
   action:
     - KillProcess:
     - Log::TextTable:
Sys::Statistics::Linux

• /proc     (       ,
      )                 ...

• Linux         !

• hetepro
Sys::Statistics::Linux
• CpuStats    • NetStats
• DiskStats   • PgSwStats
• DiskUsage   • ProcStats
• FileStats   • Proces...
Sys::Statistics::Linux
•
    • ex. CPU          N          /N

    • ex.

•
    Sys::Statistics::Linux::Processes
•
•

•
Archer
• id:tokuhirom        Perl



• Ruby   Capistrano

•
Archer
tasks:
   process:
     - module: Exec::Remote
       name: update kernel
       config:
         command: sudo yum ...
•   !

•

•
• API
• Web
•
                     API   API             API
                                 k



•   JSON-RPC   Web
    ...
API

• HTTP::Engine
• Any::Moose
• Data::ObjectDriver
• Kwalify
• Func(Python)
API
              WEB



                    JSON-RPC

MySQL         API



                             Func


WWW     WW...
API
•

•
                procmail
    mailfilter
API
•




•   …
API

•


•
•   MySQL

•   Data::ObjectDriver

    •   Web

    •   Web

    •   Mail

    •
2
•
    •                       Apache
        VirtualHost PHP php.ini
              etc ...

•                           ...
Func
•   Python

•
                          ( XMLRPC over HTTPS)

    •   http://gihyo.jp/admin/serial/01/func/0001

•   ...
qpsmtpd

• Perl            SMTP

•
• Apache
•            mod_perl

  • http://smtpd.develooper.com/
qpsmtpd
• Perl !        !

•
•           +



  • qmail           ...
(   )
•   hook_connect

•   hook_helo

•   hook_rcpt

•   hook_queue
•   .... etc

•   SMTP
•   check_badsubject

    •   Subject

•   check_relay_rcpt

    •   RCPT                       MySQL
                  ( ...
•   check_size
    •
    •   ESMTP SIZE
                 qpsmtpd


    •                      qpsmtpd


•   max_rcpt_to
  ...
Qpsmtpd

•                                       /



•

    •   http://wiki.qpsmtpd.org/api:plugin_hooks
•   JugemKey       API

•   JUGEM

•
•              MySQL



•
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Yapc Asia 2009 ペパボでのPerlの使い方
Upcoming SlideShare
Loading in …5
×

Yapc Asia 2009 ペパボでのPerlの使い方

3,110
-1

Published on

YAPC Asia 2009 - 株式会社paperboy&co. でのPerl使い方についての発表

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

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

No notes for slide
  • Yapc Asia 2009 ペパボでのPerlの使い方

    1. 1. Perl YAPC::Asia 2009 Tokyo 2009/9/10
    2. 2. • id:hiboma • • •
    3. 3. • CTO • •4 25
    4. 4. • id:MIZZY • • / • / .... etc
    5. 5. • gihyo.jp Puppet, Func • http://gihyo.jp/admin/serial/01/puppet • http://gihyo.jp/admin/serial/01/func • MASHUP++ Plagger • http://www.amazon.co.jp/dp/4861671655/
    6. 6. • • paperboy&co.
    7. 7. CTO
    8. 8. CTO
    9. 9. CTO
    10. 10. “ ”
    11. 11. • paperboy&co. • • •
    12. 12. • PHP • Perl • Perl
    13. 13. Perl
    14. 14. 30days Album
    15. 15. 30days Album • http://30d.jp/ • • 30 • 30 • 10 • 40
    16. 16. 30days Album • • •
    17. 17. 30days Album + Perl • Perlbal • MogileFS • API on Catalyst • Gearman • TheSchwartz
    18. 18. Perlbal • Perl • •
    19. 19. Perlbal Perlbal http://30d.jp/img http://30d.jp/img Web
    20. 20. Perlbal • Perl •3 • MogileFS • X-Reproxy-URL
    21. 21. MogileFS • Perl • •
    22. 22. MogileFS client mogilefsd mogilefsd mogstored mogstored MySQL
    23. 23. MogileFS • OSS • Perlbal • X-Reproxy-URL
    24. 24. API • MogileFS • API GET/PUT • Perl + Catalyst
    25. 25. API client HTTP GET/PUT API mogilefsd mogilefsd mogstored mogstored
    26. 26. API • • • • MogileFS::Client MKCOL API
    27. 27. API • • MogileFS Content-Type Content-Length API • • MogileFS API
    28. 28. Perlbal Perlbal X-Reproxy-URL: http://storage_node/dev1/0/000/... Content-Type GET GET mogstored mogstored API mogilefsd mogilefsd
    29. 29. • • • Gearman/TheSchwartz • API
    30. 30. Web (Rails) XML-RPC API (Catalyst) German::Client TheSchwartz::Job gearmand MySQL gearman TheSchwartz worker worker
    31. 31. API • Web gearman / TheSchwartz • Catalyst + Catalyst::Plugin::XMLRPC API
    32. 32. Gearman • ( ) • Web • • • Proc::Background daemontools
    33. 33. TheSchwartz • ( ) • ~ ) • (zip) • Proc::Background daemontools
    34. 34. • •
    35. 35. • Image::Imlib2 • => • yusukebe • http://yusukebe.com/tech/archives/ 20070526/011710.html GD::Image Image::Magick Imager
    36. 36. heteml ( )
    37. 37. - flash media server - coldfusion - SSL - SSH
    38. 38. 4/1
    39. 39. • • •
    40. 40. CGI • Apache2.0(Worker) + SuEXEC + mod_cgid • PHP, Perl, Ruby, Python • CGI => • • • CPU
    41. 41. hetepro • • • Class::Component • + Daemon::Generic • + Sys::Statistics::Linux ( ) • 2007 ( Moose )
    42. 42. hetepro • • : CPU N kill -9 •
    43. 43. hetepro filter: - catch: uid: gt: 1000 runtime: gt: 300 action: - KillProcess: - Log::TextTable:
    44. 44. Sys::Statistics::Linux • /proc ( , ) ... • Linux ! • hetepro
    45. 45. Sys::Statistics::Linux • CpuStats • NetStats • DiskStats • PgSwStats • DiskUsage • ProcStats • FileStats • Processes • LoadAVG • SockStats • MemStats • SysInfo
    46. 46. Sys::Statistics::Linux • • ex. CPU N /N • ex. • Sys::Statistics::Linux::Processes
    47. 47. • • •
    48. 48. Archer • id:tokuhirom Perl • Ruby Capistrano •
    49. 49. Archer tasks: process: - module: Exec::Remote name: update kernel config: command: sudo yum -y update kernel projects: users: - example0.heteml.jp - example1.heteml.jp - ...
    50. 50. • ! • •
    51. 51. • API • Web • API API API k • JSON-RPC Web OK API API
    52. 52. API • HTTP::Engine • Any::Moose • Data::ObjectDriver • Kwalify • Func(Python)
    53. 53. API WEB JSON-RPC MySQL API Func WWW WWW MAIL MAIL
    54. 54. API • • procmail mailfilter
    55. 55. API • • …
    56. 56. API • •
    57. 57. • MySQL • Data::ObjectDriver • Web • Web • Mail •
    58. 58. 2 • • Apache VirtualHost PHP php.ini etc ... • API Func
    59. 59. Func • Python • ( XMLRPC over HTTPS) • http://gihyo.jp/admin/serial/01/func/0001 • /usr/bin/func-transmit YAML Perl
    60. 60. qpsmtpd • Perl SMTP • • Apache • mod_perl • http://smtpd.develooper.com/
    61. 61. qpsmtpd • Perl ! ! • • + • qmail ...
    62. 62. ( ) • hook_connect • hook_helo • hook_rcpt • hook_queue • .... etc • SMTP
    63. 63. • check_badsubject • Subject • check_relay_rcpt • RCPT MySQL ( memcached )
    64. 64. • check_size • • ESMTP SIZE qpsmtpd • qpsmtpd • max_rcpt_to • RCPT
    65. 65. Qpsmtpd • / • • http://wiki.qpsmtpd.org/api:plugin_hooks
    66. 66. • JugemKey API • JUGEM • • MySQL •
    1. A particular slide catching your eye?

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

    ×