SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2019夏】セッションレポート(AD)

独身の日1日の取扱額は約3.5兆円、そのトラフィックを支えるAlibaba Cloudとは?【デブサミ2019夏】

【B-5】世界最大規模のショッピングフェスティバルW11(双11)を支えるインフラ技術

  • このエントリーをはてなブックマークに追加

 今や世界20か所にリージョンを構え、世界有数のパブリッククラウドに成長したAlibaba Cloud。2016年1月、ソフトバンクとアリババグループが共同出資し、SBクラウドを設立、日本でのAlibaba Cloudの普及が進んでいる。Alibaba Cloudの進化は、アリババグループのECプラットフォーム天猫(Tmall)や淘宝網(Taobao:タオバオ)の発展と共にある。2018年、アリババグループが独身の日(11月11日)に売り上げた金額は2135億元(約3.5兆円)。Alibaba CloudはそれだけのEC決済・発注を裁くことができる強固な基盤となっている。どんな技術でこのような大規模なトラフィックの処理を可能にしているのか、SBクラウド Alibaba Cloudソリューションアーキテクト 寺尾英作氏が解説した。

  • このエントリーをはてなブックマークに追加

SBクラウド株式会社 Alibaba Cloudソリューションアーキテクト 寺尾英作氏

SBクラウド株式会社 Alibaba Cloudソリューションアーキテクト 寺尾英作氏

オンラインモール「天猫」と共に発展してきたAlibaba Cloud

 SBクラウドはソフトバンクが60%、アリババグループが40%出資し、日本にAlibaba Cloudを普及させることを目的に設立された合弁会社である。日本においてセールスだけではなく、データセンターの運営やサポート、プロダクトマーケティングなどを担当している。

 アリババグループは1999年、BtoBの貿易のようなビジネスから始まった。2003年にはTaobaoというCtoCビジネスを開始し、2004年にはQRコード決済を中国国内でいち早く開始。2008年にはオンラインショッピングモール天猫を開始するなど、ECに特化したビジネスを展開してきたが、現在はECにとどまらず、動画サービスやSNSサービス、宅配サービスなども展開している。

 Alibaba Cloudは現在、アリババグループが展開するECやマーケティング、SNS、エンタテインメント、ロジスティクスなどのさまざまのサービス・データ活用基盤となっている。

 Alibaba Cloudが設立されたのは2009年。以来、天猫というオンラインショッピングモールの発展と共に進化をしてきた。現在Alibaba Cloudは世界20か所にリージョンを構えている。「世界有数のパブリッククラウドに成長した」と寺尾氏。アベイラビリティゾーンは58か所、CDN Nodeは2500ノード以上となっている。

 サービスも多種多様で、仮想サーバーやデータベース、ストレージとCDN、ネットワークサービス、セキュリティサービスなどを提供している。とはいえ、ある調査会社の資料によると、Alibaba Cloudはメジャープレイヤーに近いニッチプレイヤーという位置づけとなっているが、今後、期待できるクラウドサービスとして注目されている。また、アジアパシフィックに限れば、2018年度の成長率は4.7%とグローバルプレイヤーを抑えて高い成長率を誇っている。

 Alibaba Cloudが天猫と共に発展をしてきたというのには理由がある。それは双11(ダブルイレブン)が大きく関係する。ダブルイレブンとは11月11日の別称で、中国では独身の日として、大規模なショッピングフェスティバル(セールイベント)が開催される。天猫でも「ダブルイレブングローバルショッピングフェスティバル」を開催。「グローバルとついているように、海外にも配送できるため、私もパーツ、センサーなどを購入した」と寺尾氏は笑う。

 昨年度、ダブルイレブン1日の取扱高は2135億元(約3.5兆円)を達成。配送も10億個以上と過去最大のセールイベントになった。

 それは2017年の実績と比べても明らかだ。2017年の取扱高1682億元(約2.8兆円)を、昨年は15時間49分で達成。さらに残り8時間の間で1兆円近くの取扱高を達成。「この間だけでも取扱高が1.3倍に伸びている。この伸びを予測するのは非常に難しい」と寺尾氏は説明する。

 もちろん、最初から現在の取扱高を扱えるインフラだったわけではない。「2009年から2013年は課題を見つけてはそれに挑戦し、システム化をすることを繰り替えてしていた」と寺尾氏。最初に起こった問題は、トラフィックの予測が困難なことで、CDNのキャパシティが不足し、アクセスができない自体に陥った。「2010年は画像を縮小することでトラフィックを圧縮した。翌年は全部門でトラフィック帯域予測を作成し、3年目の2012年にはトラフィック容量計画を自動で予測する仕組みを作った」と寺尾氏は熱く語る。2013年にはリソース管理の手順書が2000を超え、手動管理の限界を超えたため、リソース管理とスケジューラを開発した。それがオンラインサービスを担うSigmaとバッチジョブ向けのFuxiである。「この2つのツールにより多くの自動化を実現した」(寺尾氏)。

 だが、2012年~2013年には負荷を与えると想定通りの動作をしないという問題が起こった。この対策として、CSP容量計画プラットフォームで容量の予測を人からシステムが行うように移行。流動自動配分や自動保護システムを開発し、過剰な負荷を発生した時に使うフェイルセーフスイッチを構築、4回もの大規模演習を実施したと言う。負荷テストを何度も実施し、600以上のバグを回収するなど、このような取り組みを1年間行うことにより「システムの信頼性の向上に努めた」(寺尾氏)。

 2014年の6回目のダブルイレブンは最も安定していたと言う。「この頃になると、一通りのシステムは安定して動くようになったが、データセンターの拡張性について問題が出てきた」と寺尾氏は言う。この課題を解決するため、マルチリージョンの冗長化計画を開始。最初の年である2013年は一定の規模でユニット化し、CDNでアカウントIDをハッシュして、各ユニットに均等にロードバランシングをするというアプローチをとった。「片方のユニットが落ちると半分のユーザーも落ちてしまうという、いけてないシステムだった」と寺尾氏は語る。だがシングルリージョンで二重化をしても、限界がある。そこで2014年にはアリババ本社のある杭州(ハンジョウ)と上海の2か所という別リージョンで二重化を行った。2015年には1000km以上離れた都市にリージョンを分散、3都市4ユニットの構成でマルチアクティブ化を果たした。

 また同年は中国国内でモバイルが普及し、「2015年にはモバイルアクセス率が50%となり、それから毎年10%ずつモバイルアクセス率が増えていった。モバイル購買が増えるとよりリソースの予測が難しくなる」と寺尾氏。さらにリソース効率の向上を図るため、レベル0というリソースプールを設け、オンラインサービス、バッチジョブ双方のプールを融通できるようなシステムを作った。「CPUの平均利用率が10%程度であったが、リソース混合をすることで、40%程度まで改善することができた。2015年から数千台規模で行い、徐々に混合部の規模を拡大している」(寺尾氏)

 さらに時系列でも最適化することで、オンライサービスとバッチジョブ感のリソース調整により、平均CPU使用率を60%以上に向上していると言う。「この仕組み『データクラスタ』は、オープンソースで公開しているので、「関心のある人はぜひ、チェックして欲しい」(寺尾氏)。

レベル0コントローラーを通して、リソース配分を調整し、リソース不足を解決する混合部のアーキテクチャ
レベル0コントローラーを通して、リソース配分を調整し、リソース不足を解決する混合部のアーキテクチャ

より安定的で信頼性あるインフラとして機能拡張

 2016年には8回目のダブルイレブンを開催。「システムは成熟しているので、負荷テストの強化を行った」と寺尾氏は話す。強化の一つとして行ったのが、利用者の購入フローに基づいた負荷テスト。またダブルイレブンのコストを節約するために、インフラの50%をAlibaba Cloud化。「これまでもAlibaba Cloudを活用していたが、パブリックのリソースでは難しかった部分は独自にチューニングしたり、オンプレミスのインフラもかなり使っていた。しかしこの辺りからコンテナの技術がだんだん機能してきたことで、Alibaba Cloud化が進んだ」(寺尾氏)。予想以上の負荷が発生したが、急遽キャパシティを数百台に拡張して問題を解消。インフラの調達スピードを上げることができたと言う。

 もう一つ、この頃に起こった課題が監査部門から実行したSQLをすべて保存してほしいと言われたこと。そこで色々なDBシステムを検証した結果、時系列データベースTSDBに格納することを選んだ。TSDBに格納するためにアプリケーションの応答速度を犠牲にしないための工夫も行った。アリババが独自開発したAliSQLにコネクタを作成して、RocketMQにデータを入れてからRealtime Computeで処理をするフローにすることで、AliSQLはクエリを実行した後MQにデータを渡すだけで済むため、アプリケーションへの影響は軽微で済んだ。AliSQLもオープンソースで公開されている。またRealtime ComputeというストリーミングエンジンのソースコードはApacheファンデーションに寄贈。それがApache Flinkで、現在、アリババ社内で改造されている(Alibaba Blink)。「Alibaba BlinkもオープンソースとしてApacheに寄贈し、Apache Flink 2.0という形でリリースされる予定となっている」(寺尾氏)。さらにAlibaba Cloudでは保存したすべてのSQLを分析・学習させる自律インテリジェント診断エンジン「CloudBA」も開発している。「現在は中国リージョンのみのサービス提供だが、早く日本でも利用できるようになることを期待している」と寺尾氏は今後の展望を語る。

 2017年は9回目となるダブルイレブンの開催である。「ちょうどこの頃より、社内にコンテナ技術が浸透してきたことで、コンテナのデプロイ時間が想定よりも長くかかるという問題が起こってきた」と寺尾氏は語る。数秒で準備できるはずのコンテナが準備できないと、さばける予定だったトラフィックがさばけなくなる。同社では「Pouch」というコンテナエンジンを開発してきた。同エンジンが新しいコンテナを作るときはリポジトリからデータを取得してくるのだが、それがボトルネックとなり、その結果、コンテナの立ち上がりが遅くなっていた。その解決策として開発したのが、大規模なコンテナ環境でのイメージ配信をP2P技術で高速化する「Dragonfly」というプロダクトだ。「これもオープンソースとして公開している」(寺尾氏)。この技術により、コンテナのデプロイ時間を50%改善していると言う。アリババでは2011年よりPouchの前身となる独自開発のコンテナエンジン(T4)を活用してきた。しかし、同エンジンではメンテナンスコストがかかっていたため、普及が進まなかった。そこで2015年にDockerイメージを利用できるように改善。「イメージを作るコストを下げることができ、社内でもPouchが普及するようになり、アプリケーションのコンテナ化が進んでいる」と寺尾氏は説明する。

 さらに2017年には、データベースとストレージを切り離す取り組みを行った。データベースはどうしてもローカルストレージを使った方がパフォーマンスがでるが、それでは、データがあるホストから移動できない制約が発生してしまい、これは伸張性の制約にもなってしまう。リソースの伸張性を十分に発揮するための取り組みとして重要なのが、一つは「コンテナ化」であり、もう一つはデータベースを含む計算ノードの「リソース分離」と「統一したリソーススケジューリング」だ。これを実現するために難易度の高いデータベースとストレージの分離に取り組んできた。

 2017年には、TCP25Gのネットワークで結ぶことを行った。帯域を増やすとともに。ストレージエンジンに関してもPangu2.0という独自開発の分散ストレージを使って高速化を実現。2018年にはTCPをRDMAに変更。このような改善を行うことで、RDMAの応答性能を50%改善し、100から200マイクロセカンドを実現した。「来年はさらに導入台数を増やしてパフォーマンスを向上させる計画だ」と寺尾氏は力強く語る。

 アリババにとってダブルイレブンは、Alibaba Cloudの技術を進化させるためのイベントでもある。常にチャレンジすることで、大規模なトラフィックにも対応できるクラウドサービスとして進化している。

 「日本でもすでに70近くのプロダクトがリリースされており、すぐに利用できる。本日、紹介した技術の他にも、まだまだ届けたい技術はたくさんある。そのほかにもKubernetes自動化エンジンのOpenKruiseなど公開しているオープンソースも多くある。ぜひ、エンジニアとして公平な目で技術を評価して、採用できそうなものがあれば使って欲しい」(寺尾氏)

 現在、日本全国でAlibaba Cloudのユーザーコミュニティ「AliEaters」の話が拡がっていると言う。また9月25日から27日まで、中国・杭州でAlibaba Cloudのコンピューティングカンファレンス「Apsara Conference 2019」が開催される。さらにその翌日の28日には中国・上海で、日本人ユーザー向けのコミュニティ「AliEaters」が開催されると言う。関心のある人はぜひこの機会に訪ねてみてはいかがだろう。

大規模なコンテナ環境のイメージ配信をP2P技術で高速化する「Dragonfly」の仕組み
大規模なコンテナ環境のイメージ配信をP2P技術で高速化する「Dragonfly」の仕組み

お問い合わせ

 SBクラウド株式会社

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11632 2019/08/05 12:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング