タオバオの技術発展レビュー(IV):Java時代の復活

タオバオの技術発展レビュー(IV):Java時代の復活

私の師匠である黄尚(@岳旭强)はかつてこう言っていました。「良い建築図は美しさに満ちている。」建築の良し悪しは、美的観点から見ることができます。その後、私は多くのシステムのアーキテクチャを調べ、この記述が基本的に真実であることがわかりました。では、Taobao のアーキテクチャの以前の 2 つのバージョンを振り返って、どちらがより美しいと思いますか?

明らかに最初のものの方が見栄えが良かったのに対し、後者はトップヘビーに見えました。つまり、安定したバージョンではなく、半年も持たなかったということです。 2004 年の初めには、SQL リレーの問題が解決できず、データベースには Oracle を使用する必要がありました。では、どこから変更を開始すればよいのでしょうか。唯一の選択肢は、開発言語を変更することでした。どの言語に変更すればよいでしょうか? Java です。 Javaは当時最も成熟したウェブサイト開発言語であり、比較的優れたエンタープライズ開発フレームワークを備え、世界の主流の大規模ウェブサイトに広く採用されていました。また、Java開発経験者が多かったため、その後のメンテナンスコストも比較的低く抑えられました。

2004 年上半期までに、Taobao は 1 年間運営され、その 1 年間で多数のユーザーを獲得し、多くの機能を急速に開発しました。その時点で、Web サイトはすでに非常に大きく、新しい需要が継続的に寄せられていました。巨大なウェブサイトの開発言語を変更することは、完全な変革に等しいです。変更プロセス中は、ビジネス開発を遅らせることはできません。これは、実行しながら変更することと同じであり、非常に長い時間と技術的能力を必要とします。このような手術を行うには、一流の専門家を招いて手術を行わせる必要があります。さて、読者の皆さんにもう一度お聞きします。もし皆さんがこのスタートアップ チームに所属していたら、この仕事のためにどのような人材を雇いますか? 私たちの答えは、Sun から人材を雇うことです。そうです、Java 言語を作成した会社です。世界中で彼らほど Java をよく知っている人はいません。さらに、もう一つ未知の理由があります...(ここでは200語を調和させています。完全版についてはaliwayを参照してください)

Sun のエンジニアたちは本当に有能です。2004 年末に私が Taobao に来たとき、彼らはまだそこにいて、数か月間彼らと一緒に働く栄誉に恵まれました。現在彼らが直面している問題は、巨大なウェブサイトを PHP から Java に移行する方法である。さらに、移行プロセス中にサービスが停止してはならず、元のシステムのバグ修正や機能改善が影響を受けてはならない。親愛なるあなた、もしあなたが建築家だったら、どうしますか?ある人の答えは、中国語を英語に翻訳するのと同じように、自動的に翻訳する翻訳機を書くことです。あなたのアイデアはあまりにも先進的、言い換えれば「単純すぎて、時にはナイーブ」だとしか言えません。当時は誰もできなかったし、今も誰もできない。彼らの基本的な計画は、ビジネスをモジュールに分割し、それらを 1 つずつ置き換えることです。たとえば、ユーザーモジュールの場合、古いmember.taobao.comは引き続き維持され、新しい機能は追加されません。新しい機能は、まず新しいモジュールで開発され、古いものと同じデータベースを共有します。開発が完了すると、それらは異なるアプリケーションクラスターに配置され、新しいドメイン名member1.taobao.comがオープンします。同時に、古い機能は置き換えられます。1つの機能を置き換えるときは、古いモジュール上の機能を1つずつ閉じ、ユーザーを徐々にmember1.taobao.comに誘導します。すべての機能が置き換えられた後、member.taobao.comは閉じられます。その後、長い間、私たちは member1 のような奇妙なドメイン名を使用していました。2 年後、別のインターネット会社が電子商取引を開始し、そのドメイン名も member1.xx.com、auction1.xx.com などと呼ばれていることがわかりました...

開発モデルの話が出たので、今度はJava MVCフレームワークについてお話します。当時はstruts1.xが最もよく使われていたフレームワークでしたが、webworkやstruts2を使ったことがある学生なら、struts1.xには複数人でのコラボレーションにおいて致命的な弱点が多いことをご存知でしょう。基盤となる軽量フレームワークがないため拡張が難しく、アーキテクトが基本機能やグローバル機能を制御することが難しいのです。 Alibaba の 18 人の創業者の中には、Jakarta Turbine をベースに多くの拡張機能を作成し、Alibaba 独自の MVC フレームワーク WebX を作成したアーキテクトがいました (http://www.openwebx.org/docs/Webx3_Guide_Book.html)。このフレームワークは拡張が容易で、コンポーネントベースの開発に便利です。ページ テンプレートは JSP と Velocity をサポートし、永続層は ibatis と Hibernate をサポートし、制御層は EJB と Spring を使用できます (Spring は後から導入されました)。プロジェクト チームは、この強力なフレームワークを選択しました。このフレームワークが当時オープン ソース化されていたら、Webwork や Struts2 は存在しなかったかもしれません。さらに、当時 Sun は世界中で EJB を積極的に宣伝していました。Taobao の設計者は、これは必要ないと考えていたものの、それでも主張し続けました。多くの技術的な議論、論争、口論を経て、このシステムのアーキテクチャは以下のようになりました。

JavaアプリケーションサーバーはWeblogic、MVCフレームワークはWebX、制御層はEJB、永続層はibatisを採用しています。また、データベースへの負荷を軽減するため、商品クエリや店舗クエリは検索エンジン上に配置しています。このアーキテクチャ図のほうが良くなったと思いますか?

Taobao ウェブサイトを開発した後、Sun のエンジニアたちは「Alipay」という別の素晴らしいウェブサイトを作成しました。

実際のところ、開発言語自体がシステムのボトルネックになることはありません。ビジネスによってもたらされるプレッシャーは、データとストレージに大きく影響します。前回の記事でも触れましたが、MySQL がシステムをサポートできなくなった後、Oracle に切り替えました。Oracle のストレージは、最初はローカル マシン上にありましたが、後に NAS に移行しました。NAS がシステムをサポートできなくなったため、EMC の SAN ストレージを使用しました。その後、Oracle の RAC がシステムをサポートできなくなったため、データ ストレージにミニコンピュータを使用することを検討する必要がありました。 2004 年の夏、DBA Qigong、テスト エンジニア Guo Fu、建築家 Xingdian がミニコンピュータのテストのために北京へ出発しました。彼らがミニコンピューターを持って戻ってきたとき、私たちは彼らをリーダーのように歓迎しました。なぜなら、それは私たちの最も貴重な機器であり、価格表の数字は恐ろしいものだったからです。ミニコンピュータを購入した後、急いで一緒に写真を撮り、その後、ミニコンピュータ上で Oracle を実行しました。ストレージに関しては、EMC ローエンド cx ストレージから Sun OEM hds ハイエンド ストレージ、さらに EMC dmx ハイエンド ストレージへと、1 レベルずつジャンプアップしました。

これまで、私たちはIBMミニコンピュータ、Oracleデータベース、EMCストレージを使用してきました。これらは非常に高価で、当時は湯水のようにお金を使っていたと言ってもいいでしょう。かつて誰かがこう言いました。「お金で問題が解決できるなら、それは問題ではない。」しかし、タオバオの発展により、近い将来、お金ではもはや私たちの問題を解決できなくなります。贅沢な構成にお金をかければ、1億PVのサイトは支えられるかもしれないが、Taobaoは成長が速すぎる。10億になったらどうなるのか?100億になったらどうなるのか?N年後には、世界トップクラスのサイトだけが直面するこれらの問題を解決する技術を作らなければならない。その後、オープンソースソフトウェアをベースに独自の研究開発を行い、IOE(IBMミニコンピュータ、Oracle、EMCストレージ)を徐々に排除していきました。これはちょうど『西遊記』のようなものです。怪物は神の武器を手に入れると非常に強力になり、猿さえ倒すことができます。しかし、最も強力な神はこれらの武器を使用しません。彼らは袖を振ったり、手のひらをひっくり返したりするだけで非常に強力になります。 IOE を取り除く部分については最後の章で説明しますが、まずはここで基礎的な部分を説明します。

次に何が起こるかを知るには、次のエピソードをお待ちください。

タオバオの技術開発レビュー(第3部):Oracle/Alipay/Wangwang

タオバオの技術発展の振り返り(第2部):個人ウェブサイトの時代

タオバオの技術発展レビュー(I):独身の日カーニバル

原文: http://blog.sina.com.cn/s/blog_633219970100xktb.html

原題:タオバオの技術発展レビュー(IV):Java時代の復活

キーワード: 淘宝網、インターネット技術、技術開発、開発、Java、時代、再生、変革、マスター、ウェブマスター、ウェブサイト、ウェブサイトの宣伝、金儲け

<<:  バーチボックスのウェブサイトモデルのユニークな魅力を解釈する模倣者が集まる

>>:  武漢2012 Democoffee初のウェブマスターサロン純粋な実践的な共有

推薦する

CloudOps: クラウド運用を最適化するフレームワーク

ソフトウェア製品の作成に携わる人なら誰でも、開発ライフサイクルを短縮し、継続的な配信と高品質の製品を...

テンセントクラウド「クラウド+ベンチャーキャピタルアライアンス」が設立され、数十の投資機関が参加

最近、Tencent Cloudは「クラウド+ベンチャーキャピタルアライアンス」の設立を発表しました...

errantweb-2g メモリ VPS (vz)/1g メモリ (KVM) 月額 6 ドル

errantwebは2017年1月に設立されました。価格が安く、リソースが豊富です。データセンターは...

Baidu 検索: 深さと幅のバランスをとる方法

今日、私たちは中国最大の検索エンジンであり、世界最大の中国検索エンジンでもある百度を熱心に利用してい...

GoogleのPRアップデートが私の意に反して行われた後の私の考え

2012年の元宵節の日に、ホリデーパーティーの最中にGoogle PRが更新され、私たちの自動車改造...

推奨: バースト-8.97$/Onapp/512m メモリ/ロサンゼルス

Burst の VPS クラウド 60% 割引コードが再び有効になりました。1 月 31 日まで有効...

ロングテールキーワードをランク​​付けするにはどうすればよいでしょうか? ロングテールキーワードを通じて顧客を獲得するにはどうすればよいでしょうか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますはじめに:...

プライベート DLT かパブリック ブロックチェーンか?

許可型分散型台帳技術(DLT)はオープンブロックチェーンの問題に合わせて調整されているため、オープン...

百度の大爆発 - Kステーションイベントの可能性分析

少し前に、私のウェブサイトも含め、多くのウェブサイトがブロックされました。一瞬、誰もが混乱し、何が原...

virpus-Xen pvはDAとCPを送信します

Virpus の XEN PV ベースの VPS が特別プロモーション中です。半年分支払うと、DA ...

テンセントクラウド:フラッシュセール80%オフ、香港、北京、広州、成都のデータセンター、超コスト効率

北京、広州、成都、香港のデータセンターにある Tencent Cloud のクラウド サーバーでは、...

Google、写真バックアップ・共有アプリOdyseeを買収

海外メディアの報道によると、Googleは最近、カメラやタブレットで撮影した写真や動画をコンピュータ...

SEO の専門家が、最も人気のある 7 つのリンク ベイトを明かす

有能な SEO 担当者として、インターネットの重要な特性の 1 つがリンクであることは誰もが知ってい...

パブリック IP アドレスがなくてもリモート開発とデバッグが可能です。 VMware 仮想マシンのポート マッピングは 3 つのステップで実現できます。

多くのプロジェクトでは、開発プロセス中にさまざまなデモ環境やオペレーティング システムで実行およびデ...