Agile Cat — in the cloud

Web デベロッパーが知っておくべき、15種類の オープンソース・プロジェクト

Posted in API, Big Data, Research by Agile Cat on January 27, 2011

15 open source projects you should know about as a web developer
Posted in Main on January 25th, 2011 by Pingdom
http://royal.pingdom.com/2011/01/25/15-open-source-projects-you-should-know-about-as-a-web-developer/

_ pingdom

Building websites and web applications today is not only about being a great programmer, it’s even more important to be a smart programmer. This means to re-use existing code and applications when possible instead of re-inventing the wheel.

現代的な Web サイトおよび Web アプリケーションを構築するには、素晴らしいプログラマーであること、そして更に、スマートなプログラマーであることが重要である。 つまり、全体を再構築する代わりに、既存のコードやアプリケーションの再利用を考えることが、スマートなプログラマーの条件となる。

Open source has been around for ages and much of the web is built using it. Every developer knows about Linux, Apache, MySQL and PHP (LAMP).

オープンソースは長い歴史を持っており、また、それを用いて、多数の Web が構築されている。 そして、すべてのデベロッパーが、Linux と、Apache、MySQL、PHP の総称である LAMP を知っている。

But what about all the other open source projects out there? As a web developer you can save lots of time or optimize the performance of your applications by using many of the other projects that’s available.

しかし、その他のオープンソース・プロジェクトについて、その存在を知っているだろうか? Web デベロッパーとして、それらの多様なプロジェクトを活用することで、開発時間の大幅な短縮と、パフォーマンスの最適化が、あなたのアプリケーションにもたらされる。

Lets take a look on what’s out there, free for everyone to use.

さぁ、誰もがフリーで利用できる、それらのプロジェクトを見ていこう。

New databases on the block

Traditionally you might have been using MySQL. Although MySQL still is a great database many new alternatives has shown up trying to solve some of the issues MySQL has.

これまでにも、MySQL を使ってきたかもしれない。 依然として、MySQL は偉大なデータベースであるが、それに代わる新しいプロジェクトが、MySQL の問題を解決するものとして注目されている。

MongoDB

MongoDB is one of the new so called “NoSQL” databases. It’s scalable and offers high performance.

MongoDB は、いわゆる ”NoSQL” データベースの 1つである。 そして、スケーラビリティと高度なパフォーマンスを提供している。

Apache Cassandra

Apache Cassandra is similar to MongoDB in that it’s a “NoSQL” database, which is scalable, and offers high performance. It works well with very large and active data sets.

Apache Cassandra も、”NoSQL” データベースという意味では MongoDB に類似している。 しかし、さらに大規模でアクティブなデータセットに対して、スケーラビリティと高度なパフォーマンスを提供する。

More

There are lots of more alternatives out there to choose from depending on your needs. Take a look at this list in Wikipedia.

それ以外にも、ニーズに応じて多様なプロジェクトを選択できる。 この、Wikipedia のリストを参照して欲しい。

Cache your data

As some data is used frequently it makes sense to put it in memory instead of querying a database each time. This can speed up a web application greatly.

なんらかの、頻繁に使用されるデータが存在するとき、毎回のようにデータベースにクエリーをかけるのではなく、イン・メモリで処理することは、とても意味がある。 それにより、Web アプリケーションの処理速度が大幅に改善される。

Memcached

Memcached is a simple but powerful way to cache small chunks of data in memory.

Memcached は、小さなチャンクのデータを、インメモリでキャッシュする際の、シンプルだがパワフルな方式を提供する。

Redis

Redis can be used in the same way as Memcached but also includes many more features. For example it can also store data persistent on disk.

Redis も Memcached と同じ方式で利用できるが、より以上の機能を含んでいる。 たとえば、取り扱うデータを、パーシスタントなものとして、ディスクにストアすることも可能である。

Speeding up web requests

Most websites use the Apache web server to serve pages. This works great for most sites, but as soon as you start to get lots of traffic you might want to optimize things a bit.

数々の Web サイトにおいて、そのページを表示するために Apache Web サーバーが用いられている。 それらは、大半のサイトにおいて適切に機能しているが、膨大なトラフィックが生じてくると、その最適化が必要になるはずだ。

NGINX

NGINX is a web server, much like Apache, but it’s extremely fast. It’s often used to serve static content such as images or as a load balancer.

NGINX は Apache に似た Web サーバーであるが、きわめて高速なものとなっている。 写真などのスタティックなコンテンツの提供などで頻繁に使用され、また、ロード・バランサーの役割を担うことも多い。

Varnish

Varnish is a cache that you put in front of your regular web server. It works by putting all your popular content in memory and serves it directly, instead of having to pass everything on to your web server.

Varnish は、一般的な Web サーバーのフロントに配置するキャッシュである。 それは、通常のコンテンツをインメモリに保持し、また、ユーザーに対してダイレクトに提供する。

Manage your content easily

If you’re building a website which will have content that will be added and edited by writers you want to have a content management system (CMS). A CMS makes it easy to manage blogs and websites and also offers lots of plugins that can extend the functionality of your site.

コンテンツ・ライターが追加・編集する Web サイトを構築していく場合は、CMS(content management system)が必要となる。 CMS により Blog と Web サイトの管理が容易になり、また、たくさんの Plug In におりサイトの拡張が実現される。

WordPress

While WordPress is a blogging platform it can also be used to manage whole websites, big and small.

WordPress はブログ・プラットフォームであるが、大小の Web サイトを管理するためにも利用できる。

Drupal

Drupal is a complete platform that can be used to build scalable and flexible websites.

Drupal は、スケーラブルで柔軟な Web サイトを構築するための、完璧なプラットフォームである。

More

There are lots of Content Management Systems available. See this huge list at Wikipedia.

その他の Content Management Systems に関しては、Wikipedia の膨大なリストを参照して欲しい。

Having a interactive web user interface

Today you can build a web application that works in many ways just as a desktop application using techniques such as JavaScript and AJAX. Using JavaScript frameworks it has become really easy to build great web applications.

JavaScript や AJAX などのテクノロジーを用いて、まさにデスクトップ・アプリケーションのように機能する Web アプリケーションを、さまざまな手法で構築できる。 JavaScript のフレームワークを活用することで、素晴らしい Web アプリケーションの構築が、きわめて容易になった。

JQuery

JQuery is a framework with plugins to help build dynamic websites with AJAX interaction and animations.

JQuery は、AJAX のインタラクションとアニメーションを用いて、動的な Web サイトの構築を促進するフレームワークである。

MooTools

MooTools is just like JQuery a framework to help build powerful web applications using Javascript.

MooTools は JQuery ライクなフレームワークであり、Javascript を用いたパワフルな Web アプリケーションの構築を促進する。

More

If you want to try any of the other alternatives look through the list in this Wikipedia entry.

その他のプロジェクトに関しては、Wikipedia のリストを参照して欲しい。

Other cool stuff

When you start to build complex web applications there are lots of software, libraries and modules that can help you solve problems that would otherwise take a lot of time. Below are two examples just to get you started.

複雑な Web アプリケーションの構築に着手するとき、膨大な時間を費やすことになる問題の解決を促進するための、ソフトウェア/ライブラリ/モジュールがある。以下の 2つの例は、まさに構築を開始するときに、利用するものである。

Node.js

Node.js is an event-driven I/O framework where you write applications in Javascript that runs on the V8 JavaScript engine. It’s a great way to build fast and scalable network programs.

Node.js は、V8 JavaScript エンジン上で実行される Javascript を用いて、アプリケーションを記述する場合の イベント・ドリブンな I/O フレームワークである。それにより、高速でスケーラブルなネットワーク・プログラムの構築が促進される。

RabbitMQ

RabbitMQ is a reliable and scalable messaging system that can handle high throughput. If you need to exchange data between systems or applications a messaging system is a great way to do this with lots of benefits compared to a custom solution or storing the data in a database.

RabbitMQ は、ハイ・スループットに対応し、信頼性とスケーラビリティを実現する、メッセージング・システムである。 システムおよびアプリケーションの間で、データ交換を行う必要がある場合には、カスタムなソリューションやデータベースへのストアに替えて、メッセージング・システムを活用することで、数多くのメリットがもたらされる。

Use a framework to speed up development

Weather you are using PHP or another language there are several different frameworks available that can help you speed up development and make your code easier to manage.

PHP を使うにしろ、その他の言語を使うにしろ、その開発速度を高め、コードの管理を容易にするための、数々のフレームワークが存在する。

Symfony

Symfony is a PHP framework that includes components and tools to help you build complex web applications faster. It also has over 1000 plugins contributed by the community.

Symfony は、複雑な Web アプリケーションを短期間で構築するための、コンポーネントとツールを取り込んだ、PHP フレームワークである。さらに言えば、コミュニティからコントリビュートされた、1000 個以上のプラグインも利用できる。

Ruby on Rails

For fans of the Ruby language, Ruby on Rails is the most popular framework available.

Ruby ファンための、最も人気のあるフレームワークが Ruby on Rails である。

Django

Django is a Python web framework developed to help you build high-performing and elegant web applications quickly.

Django は、ハイ・パフォーマンスで洗練された Web アプリケーションを促進するために構築された、Python Web フレームワークである。

More

See this list on Wikipedia for a more complete list of web application frameworks available for different languages.

さらに詳細な情報に関しては、Wikipedia における 言語別アプリケーション・フレームワークを参照して欲しい。

Spend your time wisely

As a developer it’s always worth the time to keep up to date on which new software that are available as it can help you solve complex tasks easily. Often time spent planning and doing research at the start of a project is well worth it since you can identify upcoming issues and how to solve them in the best way. The days where you program your way out of every issue are over, it’s more about using existing technology in a smart way.

デベロッパーとして重要なことは、ソフトウェアを最新の状態に保ち、複雑なタスクを容易に解決できるようにしておくことだ。プロジェクトを開始するときに、計画と調査に時間を費やすことで、問題の識別が促進され、解決のための最適な方式が見つかる。そして、すべての問題を独自の方式で解決することは、すでに古い考え方となっており、よりスマートな方法で、既存テクノロジーを活用することに、価値が見出されている。

ーーーーー

この、Agile_Cat も利用している WordPress は、典型的な LAMP スタックの上に構築されている Web アプリケーションです。しかし、最大の LAMP スタックといえば、それは Facebook になるでしょう。 こうしたオープンソース・プロジェクトにより、インターネットの記録とスケールの記録が、毎日のように塗り替えられているわけです。 スゴイ! ーーー __AC Stamp 2

ーーーーー

<関連>
Facebook における 1300万/秒 クエリーの秘密
Facebook の HBase は、毎月 1350億 メッセージを処理する!
Facebook は 20分間で、2.7M Photos/10.2M Comments/4.6M Messages を処理する!
Google Megastore – 1日で 30億 Write/200億 Read のトランザクションを実現
Amazon S3 – 5 TB のシングル・オブジェクトは お好き?

 

%d bloggers like this: