2008年07月24日 星期四 21:17
http://brad.livejournal.com/2388824.html Google 员工 Brad Fitzpatrick <http://www.bradfitz.com/> (是 Memcached <http://www.danga.com/memcached/>的作者,也是 LiveJournal 创始人之一) 在他的 LJ<http://brad.livejournal.com/>上说正在为 GAE 添加 Perl 支持 <http://brad.livejournal.com/2388824.html>, 也许就要打破 Google 的 四种语言旧规了, Python 在 Google 不再独大? Perl on App Engine [Jul. 22nd, 2008|*08:38 pm*] [*Tags*|google<http://brad.livejournal.com/tag/google>, > hack <http://brad.livejournal.com/tag/hack>, perl<http://brad.livejournal.com/tag/perl>, > tech <http://brad.livejournal.com/tag/tech> ] > Fellow Perl hackers, > > I'm happy to announce that the Google App Engine team has given me > permission to talk about a 20% project inside Google to to add Perl support > to App Engine. To be clear: I'm not a member of the App Engine team and > the App Engine team is not promising to add Perl support. They're just > saying that I (along with other Perl hackers here at Google) are now allowed > to work on this 20% project of ours out in the open where other Perl hackers > can help us out, should you be so inclined. > > As background, I've been writing Perl code for almost 15 years now and > quite fond of the language. (I'm "bradfitz<http://search.cpan.org/%7Ebradfitz/>" > on CPAN.) Here at Google, though, it's not one of our big languages so I > don't get to write as much Perl as I used to. I'd still like to run my > personal web apps on App Engine, though, and I'd like to write them in > Perl. And I'm definitely not alone, looking at how many people have starred > the wishlist<http://code.google.com/p/googleappengine/issues/detail?id=34>bug. Some of you have already > started talking about it <http://code.google.com/p/perl-appengine/>. We'd > like to join the discussion, and start hacking out in the public. > > In the process we can build the start of an open source App Engine server > clone that's suitable for many purposes: initially just for regression > testing & local development (like the "dev_appserver" that comes with the > App Engine Python SDK), but perhaps in the future (once Hypertable/Hbase/etc > are ready) a full stack to give to ISPs to let them run App Engine apps on > their own. > > Before I get into my proposed roadmap, let me describe what's publicly > known about the App Engine architecture. In a nutshell, it looks like this: > > [image: http://perl-appengine.googlecode.com/svn/trunk/docs/arch.png] > > The App runs in a multi-layer hardened environment, one layer of which will > need to be a hardened Perl interpreter. > Basically, we need a hardened Perl runtime which can: > > - open & read files > - NOT write files > - NOT open sockets > - NOT fork > - NOT do any other system functionality that's not strictly needed for > a web app > > Basically we need a Perl interpreter that's very tame and isn't allowed to > do anything other than read web requests and write out responses. Any > privileged operations (like Datastore access, fetching URLs, etc) need to be > done via a trusted XS Perl module (the "apiproxy") that takes a service > request parameter and returns a service response. The request and response > are both encoded as Protocol Buffers <http://code.google.com/p/protobuf/>, > which were recently open sourced by Google<http://google-opensource.blogspot.com/2008/07/protocol-buffers-googles-data.html> > . > > Perl on App Engine then would involve the following steps (in no particular > order): > > - *Hardened Perl Interpreter**:* basically, we'll be statically > linking in a hardened, customized libperl to a C++ application, disabling > all Perl dynamic loading. Only vetted, security-audited XS modules will be > allowed. Only safe Perl opcodes will be allowed. (No sockets, no ioctl, no > fork, etc, etc.) To get a preview for what this'll feel like > restriction-wise, check out the newly written Sys::Protect > <http://code.google.com/p/sys-protect/>which Artur and I wrote this > evening and will be continuing to develop for people's dev environments (not > production). > - *Protocol Buffers for Perl: *we need support for Protocol Buffers > for Perl <http://groups.google.com.sixxs.org/group/protobuf-perl>. > I've started on this project internally and will open source the code soon, > once I have a few free minutes. > - *Server:* we need to write an App Engine server for testing, local > development, and potentially production deployment. (Replace Bigtable with > MySQL, Hypertable, Hbase, Couch DB, etc.) > - *Libraries:* Perl client libraries for Datastore, URLFetch, etc > services. Including docs. > > Not included is the Google-internal side of things, gluing the hardened > Perl interpreter into the GAE world. That needs to be done by a Googler and > not open source. > > If you'd like to discuss this and/or help out, join the perl-appengine > mailing list <http://groups.google.com/group/perl-appengine/>. We'll be > submitting code to the appengine-perl project<http://code.google.com/p/perl-appengine/>on Google Code hosting. For more information about this, see the Perl-on-AppEngine > FAQ. <http://code.google.com/p/perl-appengine/wiki/AnnouncementFAQ> > > *Brad & the other Perl Googlers* > * * -------------- 下一部分 -------------- 一个HTML附件被移除... URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20080724/c51c5cba/attachment-0001.html>
Zeuux © 2024
京ICP备05028076号