DUICUO

2018年のアリババの重要なオープンソースプロジェクトの概要

[[252463]]

オープンソースは、人間の協働と成果の共有の力を示しています。あらゆる技術革新は巨人たちの肩の上に成り立っており、多くの技術革新や開発はオープンソースを基盤としています。インターネット企業は、オープンソースを利用せずに自社技術のみで発展することはできません。アリババの様々なチームは、自らが直面した落とし穴やそこから得た教訓を真摯にオープンソースプロジェクトに取り入れ、業界関係者全員が利用できるようにすることで、他の人々の問題解決に貢献したいと考えています。

2018年末、Yunqiコミュニティは、皆様のお役に立てればと願って、Alibabaの重要なオープンソースプロジェクトのリストをまとめました。(以下のプロジェクトは順不同です。)

これらの高品質なオープンソースプロジェクトでは、開発者間のコミュニケーションを促進するため、まもなくDingTalkディスカッショングループが設立されます。コミュニティは継続的に更新され、どなたでもディスカッションに参加できます。

フロントエンド

1. データ駆動型、高度にインタラクティブな可視化文法 AntV-G2 [[252483]]

G2は、ビジュアルコーディングに基づいたグラフィカル構文です。データ駆動型で、非常にユーザーフレンドリーかつ拡張性に優れています。ユーザーは煩雑な実装の詳細を気にする必要はなく、たった一つのステートメントで、多種多様なインタラクティブな統計チャートを作成できます。

同時に、G2 は AntV の最も重要なコンポーネントでもあり、書籍「The Grammar of Graphics」に記載されているビジュアル コーディング構文システムに由来しています (これは G2 プロジェクトの名前の由来でもあります)。

プロジェクトアドレス: https://github.com/antvis/g2

2. エンタープライズレベルのバックエンドUIソリューション:Fusion Design

Fusion Designは、設計と開発の間のUI開発効率を向上させるために設計されたワークフローです。DPL(Design-Pulse-Like)モデルに基づいて、設計とフロントエンド開発者間の標準プロトコルとワークフローを構築することで、ビジネス要件を満たすDPLの迅速な作成を可能にし、DPLの作成と適用の効率を向上させ、企業が迅速にUI開発を導入できるよう支援します。

プロジェクトアドレス: https://fusion.design/

3. デザイン言語とフロントエンドフレームワーク Ant Design

Ant Designは、Ant Financialが開発・運用するエンタープライズグレードのフロントエンドデザイン言語およびReactベースのフロントエンドフレームワークです。その特徴は、エンタープライズレベルの金融商品向けのインタラクティブな言語とビジュアルシステム、リッチで実用的なReact UIコンポーネント、Reactベースのコンポーネントベース開発モデル、npmエコシステムのサポート、Webpackベースのデバッグおよびビルドソリューション、ES6のサポートなどです。

アドレス: https://github.com/ant-design/ant-design

4. BizCharts、G2 をベースにした React チャート ライブラリ。

BizChartsはG2をベースに構築されたReactチャートライブラリで、G2とReactの両方の利点をすべて備えています。コンポーネントを組み合わせることで、無数のチャートタイプを作成できます。また、多数の統計ツールを統合し、複数の座標系をサポートし、カスタマイズ可能なインタラクション、アニメーション、グラフも提供します。BizChartsは、データ視覚化プロジェクトにおける強力なアシスタントとなることは間違いありません。

アドレス: https://github.com/alibaba/BizCharts

5. エンタープライズグレードのNode.jsフレームワーク「Egg」

Egg.jsは、Alibabaが提供するオープンソースのエンタープライズグレードNode.jsフレームワークです。プラグインメカニズムは高い拡張性を提供し、各プラグインは1つのタスクのみを実行します。Egg.jsはこれらのプラグインをフレームワークに集約し、特定のビジネスシナリオに基づいてカスタマイズされた構成を可能にするため、アプリケーション開発コストを大幅に削減します。

アドレス: https://github.com/eggjs/egg

6. ReactベースのフロントエンドフレームワークUmi

Umi は、Next.js に似た、プラグ可能なエンタープライズ グレードの React フレームワークです。
アドレス: https://github.com/umijs/umi

7. フロントエンドのビルドとエンジニアリングツール「Dawn」

「夜明け」または「夜明け」を意味するDawnは、もともとAlibaba Cloudビジネスオペレーションチーム向けの社内フロントエンドビルドおよびエンジニアリングツールでしたが、現在は完全にオープンソース化されています。パイプラインとミドルウェアを通じて開発プロセスを比較的固定されたステージと限定的な操作に抽象化することで、開発者の日々のビルドおよび開発関連作業を簡素化・統合します。

アドレス: https://alibaba.github.io/dawn/

8. ページロジックプロトタイプAnt UX

これはページロジックを作成するためのリソースライブラリです。製品設計の初期段階では、ページ間のロジック図を描くのに使用でき、製品のアーキテクチャとビジネスプロセスを理解するのに役立ちます。

必要なツール: OmniGraffle、Sketch

OmniGraffle は、図、フローチャート、組織図、イラストを描くのに使えます。また、頭の中にある情報を整理したり、ブレインストーミングの結果を整理したり、マインドマップを描いたり、スタイル管理ツールとして使ったり、Web ページや PDF ドキュメントのプロトタイプを作成したりするのに使うこともできます。
Sketch は、UI デザインをすぐに開始できるベクター デザイン ソフトウェアです。

アドレス: http://ux.ant.design/

9. クロスコンテナレンダリングエンジンRax

Raxは、Alibabaがオープンソース化した汎用JavaScriptライブラリで、主にReact互換のAPIを提供しています。Reactに精通している人なら、Raxの使い方は既にご存知でしょう。

アドレス: https://alibaba.github.io/rax/

10. WebGLベースのJavaScript 3Dグラフィックエンジン、G3D

G3Dは、Alibabaが開発したWebGLベースのオープンソースJavaScript 3Dグラフィックエンジンです。他のWebGL 3Dエンジンと比較して、G3Dはより「純粋な」レンダリングエンジンです。つまり、DOM APIに依存せず、キャンバスオブジェクト(またはキャンバスライクなオブジェクト)のみを使用します。この機能により、G3Dはブラウザ環境だけでなく、GCanvas環境(WeexまたはReactNativeベース)など、一部の非ブラウザJavaScriptターミナル環境(ハイブリッド環境)でも実行できます。

アドレス: https://alibaba.github.io/G3D/

11. クロスプラットフォームのモバイル開発ツール「Weex」

Weex は、パフォーマンスとダイナミズムを完璧にバランスさせたオープンソースのクロスプラットフォーム モバイル開発ツールであり、モバイル開発者がシンプルなフロントエンド構文を使用してネイティブ レベルのパフォーマンス エクスペリエンスを記述できるようにし、iOS、Android、YunOS、Web などの複数のプラットフォームへの展開をサポートします。

アドレス: https://github.com/apache/incubator-weex/

12. Weex UI、Weex に基づく UI コンポーネント ライブラリ。

Weex UI は、Weex をベースにした軽量で高性能な UI コンポーネント ライブラリであり、豊富なインタラクティブ機能を提供します。

アドレス: https://github.com/alibaba/weex-ui

13. アニメーション言語とReactフレームワークアニメーションソリューション:Ant Motion

Ant Motionは、Ant FinancialのAnt Designから派生したモーショングラフィックス言語です。単なるモーショングラフィックス言語ではなく、Reactフレームワーク向けのモーショングラフィックスソリューションでもあり、個別のアニメーション、グループ化されたアニメーション、そして開発者がプロ​​ジェクトでモーショングラフィックスをより簡単に活用するための包括的なソリューションを提供します。

アドレス: https://motion.ant.design/

14. 複数ページの切り替えシナリオのための統合ソリューション: UltraViewPager

UltraViewPager は、Alibaba のオープンソースの ViewPager であり、さまざまな機能をカプセル化して、主に複数ページの切り替えシナリオ向けの統合ソリューションを提供します。

アドレス: https://github.com/alibaba/UltraViewPager

15. モジュラー UI ソリューション: Tangram UI

Tangram は、Tmall チームによってオープンソース化されたクロスプラットフォームのモジュラー UI ソリューションです。

Tangram は単なるネイティブ (iOS および Android) UI 開発フレームワークではなく、ネイティブ SDK、GUI コンソール、バックエンド ロジック コンテナー、コンポーネント ライブラリ メカニズムを網羅し、日々の作業から改良された完全な UI ソリューションです。

アドレス: http://tangram.pingguohe.net/

16. 自動テストソリューション マカカ

Macacaは、モバイルおよびPCプラットフォーム、そしてネイティブ、ハイブリッド、H5を含む様々なアプリケーションタイプをサポートする包括的な自動テストソリューションです。クライアントツールと継続的インテグレーションサービスも提供しています。

アドレス: https://github.com/alibaba/macaca

17. ICE、Reactベースのミッドエンドからバックエンドのアプリケーションソリューション

ICEはReactベースのミドルエンドおよびバックエンドアプリケーションソリューションです。ICEは設計から開発までの包括的なチェーンを網羅しており、ユーザーが独自のミドルエンドおよびバックエンドアプリケーションを迅速に構築するのに役立ちます。

デザイナー向けには、ICEはUIデザインのためのプロフェッショナルなビジュアルガイダンスを提供するICEデザイン言語を提供しています。開発者向けには、ICEのマテリアルシステムと開発エクスペリエンスをサポートするグラフィカルユーザーインターフェース開発プラットフォームであるIceworksを提供しています。

アドレス: https://alibaba.github.io/ice/

18. HTML5インタラクティブゲームエンジンHilo

Hiloは、Alibaba Groupが開発したHTML5クロスプラットフォームゲームソリューションです。開発者がHTML5ゲームを迅速に開発するのに役立ちます。

アドレス: https://github.com/hilotea/Hilo

19. JavaScript テンプレートエンジン Velocity.js

Velocity.js は、Velocity テンプレート構文の JavaScript 実装です。Velocity は、Alibaba Group の様々な子会社で広く使用されている Java ベースのテンプレートエンジンです。Velocity テンプレートは、複雑な論理演算をサポートし、基本的なデータ型、変数の割り当て、関数などを含むため、テンプレートを多用するシナリオに適しています。Velocity.js は Node.js とブラウザ環境をサポートしています。

アドレス: https://github.com/shepherdwind/velocity.js

20. Dexposed、非侵入型ランタイムAOPフレームワーク

Dexposedは、Alibaba初のヘビー級Androidオープンソースソフトウェアです。ROOTコミュニティで広く知られるXposedオープンソースプロジェクトをベースに、ROOTコンポーネントを簡素化・削除し、アプリケーション自体をサポートするAOPフレームワークへと進化しました。ほとんどのAlibabaアプリにおいて、クライアントサイドのオンラインバグ修正とオンラインデバッグ機能を数分で実行できます。

アドレス: https://github.com/alibaba/dexposed

21. 自動テストソリューション: UI レコーダー

UI Recorderは、コストゼロの完全自動テストソリューションです。1つのセルフテストは複数のテストに相当し、1つのブラウザのテストは複数のブラウザのテストに相当します。

アドレス: https://github.com/alibaba/uirecorder

22. Androidアプリケーションのホットフィックスツール「AndFix」

AndFixは、Alibabaが開発したAndroidアプリケーション用のオープンソースのホットフィックスツールです。Android開発者がアプリケーションのオンライン問題を修正するのに役立ちます。Andfixは「Android hot-fix」の略です。

アドレス: https://github.com/alibaba/AndFix

23. タオバオReactフレームワークReact Web

Taobao のフロントエンド チームは、React Native と同じ API を使用して Web アプリケーションを構築する React Web プロジェクトをオープンソース化しました。

アドレス: https://github.com/taobaofed/react-web

24. Node.js に基づく信頼性の高い自動継続的インテグレーション

Reliableは、Macacaチームのメンバーによって開発された分散型継続的インテグレーションシステムです。統合ビルドなどのシナリオに適しています。Reliableは、reliable-masterとreliable-slaveという2つの部分で構成される、典型的なマスター・スレーブ・アーキテクチャを採用しています。

アドレス: https://github.com/reliablejs/reliable-master

25. モックデータジェネレーター「Mock.js」

Mock.jsは、フロントエンドエンジニアがバックエンドから独立して開発を行い、ユニットテストの作成を支援するために設計されたモックデータジェネレータです。データテンプレートに基づくモックデータの生成、Ajaxリクエストのシミュレーション、モックデータの生成と返却、HTMLテンプレートに基づくモックデータの生成といったモック機能を提供します。

アドレス: https://github.com/nuysoft/Mock

26. Beidou、React アプリケーション用のサーバー側レンダリング フレームワーク。

Beidou は、Egg.js をベースに開発された、NodeJS と React の同型フレームワークです。

アドレス: https://github.com/alibaba/beidou

ジャワ

1. 分散アプリケーションサービス開発のためのワンストップソリューション:Spring Cloud Alibaba

Spring Cloud Alibabaは、分散アプリケーションサービス開発のためのワンストップソリューションを提供することに注力しています。このプロジェクトには、分散アプリケーションサービス開発に必要なコンポーネントが含まれており、開発者はこれらのコンポーネントを使用して、Spring Cloudプログラミングモデルを通じて分散アプリケーションサービスを容易に開発できます。

Spring Cloud Alibaba を使用すると、いくつかのアノテーションと少量の構成を追加するだけで、Spring Cloud アプリケーションを Alibaba の分散アプリケーション ソリューションに接続し、Alibaba ミドルウェアを通じて分散アプリケーション システムを迅速に構築できます。

アドレス: https://github.com/spring-cloud-incubator/spring-cloud-alibaba

2. JDBC接続プールと監視コンポーネントDruid

Druid は JDBC コンポーネントです。

  • データベース アクセスのパフォーマンスを監視します。
  • 高効率、強力、かつスケーラブルなデータベース接続プールを提供します。
  • データベース パスワードの暗号化。
  • SQL 実行ログ。

アドレス: https://github.com/alibaba/druid

3. JavaのJSONプロセッサ、Fastjson

fastjson は、Alibaba のエンジニアによって開発された、Java で実装された高性能 JSON パーサーおよびジェネレーターです。

主な機能: 高速 (Jackson を含む他のどの Java ベースのパーサーおよびジェネレーターよりも高速)、強力 (Java Bean クラス、コレクション、マップ、日付、列挙型などの一般的な JDK クラスをサポート)、依存性ゼロ (JDK 以外のライブラリに依存しません)。

アドレス: https://github.com/alibaba/fastjson

4. サービスフレームワークダボ

Apache Dubbo(インキュベーション中)は、Alibabaが提供する高性能で軽量なオープンソースのJava RPCフレームワークです。インターフェース指向のリモートメソッド呼び出し、インテリジェントなフォールトトレランスと負荷分散、そして自動サービス登録と検出という3つのコア機能を提供します。

アドレス: https://github.com/alibaba/dubbo

5. エンタープライズグレードのストリーミングコンピューティングエンジン「JStorm」

JStormは、Apache Stormをベースとしたリアルタイムストリーミングコンピューティングフレームワークです。ネットワークI/O、スレッドモデル、リソーススケジューリング、可用性、安定性において継続的な改良が行われており、企業での導入が拡大しています。JStormはStormのJava拡張版とも言えます。純粋なJavaカーネルに加え、Thrift、Python、ファセットUIも備えています。アーキテクチャ的には、ZooKeeperをベースとした分散スケジューリングシステムです。

アドレス: https://github.com/alibaba/jstorm

6. apns4j

apns4j は、Apple Push Notification Service の Java 実装です。

アドレス: https://github.com/teaey/apns4j

7. 分散データ層(TDDL)

TDDL は、マスター/スレーブ、読み取り/書き込み分割、および動的データベース構成を特徴とする、集中型構成に基づく JDBC データ ソース実装です。

アドレス: https://github.com/alibaba/tb_tddl

8. 軽量分散データアクセス層 CobarClient

Cobar Client は、iBatis (現在は MyBatis に名前が変更されました) と Spring フレームワークに基づいて実装された軽量の分散データ アクセス レイヤー (DAL) です。

アドレス: https://github.com/alibaba/cobarclient

9. タオバオカスタマイズJVM:タオバオJVM

OpenJDK HotSpot VMをベースとするTaobaoJVMは、中国で初めて最適化・カスタマイズされ、オープンソース化されたサーバーサイドJava仮想マシンです。TaobaoとTmallで既にリリースされており、公式のOracle JVMバージョンを完全に置き換え、そのパフォーマンスと機能性の価値は既に実証されています。

アドレス: http://jvm.taobao.org

10. Java画像処理ライブラリ SimpleImage

SimpleImage は、画像のサムネイル作成、透かしの追加、その他の処理を実行できる Alibaba の Java 画像処理ライブラリです。

アドレス: https://github.com/alibaba/simpleimage

11. Redis の Java クライアント、Tedis

TedisはRedis用のJavaクライアントです。Tedisは、本番環境で直接使用できる高可用性のRedisソリューションの開発を目指しています。

アドレス: https://github.com/justified/tedis

12. オープンソースのJava診断ツール「Arthas」

Arthas は、Alibaba のオープンソース Java 診断ツールであり、開発者の間で非常に人気があります。

Arthas はコマンドライン対話型モードを使用し、豊富なタブ自動補完機能を提供することで、問題の特定と診断をさらに容易にします。

アドレス: https://alibaba.github.io/arthas/

13. 動的なサービス検出、構成、およびサービス管理プラットフォームであるNacos

Nacosは、マイクロサービスの検出、構成、管理を支援します。動的なサービス検出、サービス構成管理、サービスおよびトラフィック管理を実現する、使いやすい機能セットを提供します。

Nacos は、マイクロサービス プラットフォームをより俊敏かつ容易に構築、提供、管理するのに役立ちます。Nacos は、マイクロサービス パラダイムやクラウドネイティブ パラダイムといった「サービス」を中心とした最新のアプリケーション アーキテクチャを構築するためのサービス インフラストラクチャです。

アドレス: https://nacos.io/en-us/

14. Excel ファイルを解析するための Java ツール、EasyExcel。

Excelファイルの解析と生成によく使われるJavaフレームワークとしては、Apache POIとJXLが挙げられます。しかし、どちらもメモリを大量に消費するという深刻な問題を抱えています。POIにはメモリオーバーフローの問題を軽減できるSAXモードAPIがありますが、それでもいくつかの欠点があります。例えば、2007 Excelファイルの解凍と保存はメモリ内で完了するため、メモリ消費量が大幅に増加します。EasyExcelは、POIの2007 Excelファイルの解析を書き換え、3MBのExcelファイル(以前はPOI SAXを使用して約100MB必要でした)のメモリ使用量をKBレベルにまで削減しました。さらに、より大きなExcelファイルでもメモリオーバーフローの問題を回避します。2003バージョンは依然としてPOIのSAXモードに依存しています。EasyExcelはモデル変換をより高いレベルでカプセル化することで、ユーザーにとってよりシンプルで便利なものとなっています。

アドレス: https://github.com/alibaba/easyexcel

15. 高可用性トラフィック管理フレームワーク「Sentinel」

Sentinel は、トラフィック制御、回路の遮断と劣化、システム負荷の保護など、複数の側面からサービスの安定性を保護する、マイクロサービス向けの軽量トラフィック制御フレームワークです。

Sentinel API を通じて定義されたコードはすべてリソースであり、Sentinel によって保護できます。ほとんどの場合、リソース名はメソッドシグネチャ、URL、あるいはサービス名を使用して識別できます。

アドレス: https://github.com/alibaba/Sentinel

16. 多次元メトリックに基づくシステム測定および監視ミドルウェアである SOFALookout。

Lookoutは、多次元メトリクスを用いて対象システムを測定・監視するプロジェクトです。Lookoutの多次元メトリクスはMetrics 2.0標準に準拠しています。Lookoutプロジェクトは、クライアント側とサーバー側のコンポーネントで構成されています。

クライアントは、アプリケーションコードに埋め込んでメトリクス情報を収集できるJavaライブラリです。クライアントの詳細については、こちらをご覧ください。

サーバーサイドのコードは次期バージョンで提供される予定です。LOOKOUTサービスは、メトリクスデータの収集、処理、保存、クエリを可能にします。さらに、Grafanaと組み合わせることで、データの可視化も可能になります。

アドレス: https://github.com/alipay/sofa-lookout

17. Spring Bootをベースにした開発フレームワークSOFABoot

SOFABootは、Ant Financialが開発したSpring Bootをベースとしたオープンソース開発フレームワークです。Spring Bootを基盤として、Readiness Check、クラス分離、ログ領域分離といった機能を提供します。SOFABootはSpring Bootを強化するだけでなく、Spring Boot内でSOFAStackミドルウェアを容易に利用できるようにします。

アドレス: https://github.com/alipay/sofa-boot

18. 軽量Javaクラス分離コンテナSOFAArk

SOFAArkは、Javaで実装された軽量なクラス分離コンテナです。オープンソース化され、Ant Financialによって提供されています。主にアプリケーションレベルのクラスと依存関係の分離機能を提供します。Fat Jarテクノロジーに基づいており、アプリケーションは自己完結型で実行可能なFat Jarにパッケージ化できます。アプリケーションは、シンプルな単一モジュールのJavaアプリケーションまたはSpring Bootアプリケーションとして使用できます。クイックスタートガイドと詳細情報については、ウェブサイトをご覧ください。

アドレス: https://alipay.github.io/sofastack.github.io/

19. 分散トレースミドルウェアSOFATracer

SOFATracerは、分散システムコールトレースのためのコンポーネントです。統一されたtraceIdを用いてコールチェーン内の様々なネットワークコールをログに記録し、ネットワークコールの透明性を確保します。これらのログは、迅速な障害検出とサービスガバナンスに活用できます。

アドレス: https://github.com/alipay/sofa-tracer

20. 高性能 Java RPC フレームワーク SOFARPC

SOFARPCは、拡張性に優れ、高性能で、本番環境レベルのJava RPCフレームワークです。Ant Financialでは、SOFARPCは10年以上の開発期間と5世代にわたるバージョンアップを経てきました。SOFARPCは、アプリケーション間のRPC呼び出しを簡素化し、利便性、透明性、安定性、効率性に優れたポイントツーポイントのリモートサービス呼び出しソリューションを提供することに特化しています。ユーザーと開発者の機能拡張を容易にするため、SOFARPCは、フィルター、ルーティング、負荷分散など、豊富なモデル抽象化と拡張可能なインターフェースを提供しています。また、SOFARPCフレームワークとその周辺コンポーネントを囲む、豊富なマイクロサービスガバナンスソリューションも提供しています。

アドレス: https://github.com/alipay/sofa-rpc

21. SOFABolt、Nettyベースのネットワーク通信フレームワーク

SOFABolt は、Netty をベースに Ant Financial Services Group が開発したネットワーク通信フレームワークです。

Netty は、Java プログラマーが、基盤となる NIO の実装に煩わされたり、デバッグが難しいネットワークの問題に対処したりするのではなく、ネットワーク通信に基づくビジネス ロジックの実装に集中できるようにするために作成されました。

SOFABolt は、ミドルウェア開発者が通信フレームワークを繰り返し再発明するのではなく、製品機能の実装に集中できるようにするために作成されました。

アドレス: https://github.com/alipay/sofa-bolt

22. 動的非侵入型AOPソリューション JVMサンドボックス

JVM-Sandbox は、JVM サンドボックス コンテナーであり、JVM に基づく非侵入型ランタイム AOP ソリューションです。

アドレス: https://github.com/alibaba/jvm-sandbox

23. クラウド向け分散メッセージング標準である OpenMessaging。

OpenMessagingは、AlibabaがYahoo、Didi Chuxing、Streamlioを共同設立者として立ち上げました。分散メッセージングおよびストリーム処理分野におけるアプリケーション開発のための、ベンダーおよびプラットフォームに依存しない標準規格の確立を目指しています。

アドレス: https://github.com/openmessaging/openmessaging-java

24. Dragonfly、P2Pファイル配信システム

Dragonflyは、大規模ファイル配信シナリオにおける配信時間の長さ、成功率の低さ、帯域幅の無駄といった問題を解決するためにアリババが開発したP2Pファイル配信システムです。デプロイメント、データプレヒーティング、大規模コンテナイメージ配信といったビジネス機能を大幅に向上させます。

Dragonflyのオープンソース版は、P2Pファイル配信、コンテナイメージ配信、ローカルレート制限、ディスク容量の事前チェックなどに使用できます。複数のコンテナ技術をサポートし、コンテナ自体への変更は不要です。ネイティブ方式と比較して最大57倍高速なイメージ配信速度を実現し、レジストリネットワークのアウトバウンドトラフィックを99.5%以上削減します。

アドレス: https://github.com/alibaba/Dragonfly

25. LayoutManager カスタムレイアウトソリューション vLayout

VirtualLayout は、RecyclerView の LayoutManager 拡張機能であり、主にレイアウト ソリューションの完全なセットを提供し、レイアウト間でのコンポーネントの再利用の問題に対処します。

アドレス: https://github.com/alibaba/vlayout

26. JavaコードスタイルスキャンプラグインP3C

このプロジェクトは、PMD 実装、IntelliJ IDEA プラグイン、Eclipse プラグインの 3 つの部分で構成されています。

アドレス: https://github.com/alibaba/p3c

27. Android コンテナ化フレームワーク Atlas

Atlasは、Alibabaのモバイルチームが社内開発した、Taobao Androidクライアント用のコンテナ化フレームワークです。コンテナ化アプローチを採用することで、大規模なチームコラボレーションの問題を解決し、並行開発、迅速なイテレーション、動的なデプロイメントを可能にします。Android 4.x以降で、あらゆる規模のアプリ開発に適しています。

アドレス: http://atlas.taobao.org/

データベース

1. オープンソースデータベース AliSQL

AliSQLは、Alibaba CloudデータベースチームによってメンテナンスされているMySQL公式バージョンのフォークであり、現在Alibabaグループの事業およびAlibaba Cloudデータベースサービスで使用されています。このバージョンは、コミュニティエディションに比べてパフォーマンスと機能の最適化と改善が多数施されており、特にeコマース、クラウドコンピューティング、金融環境に適しています。

アドレス: https://github.com/alibaba/AliSQL

2. 分散データベース「OceanBase」

OceanBaseは、膨大なデータ量に対応する高性能分散データベースシステムです。数千億件のレコード、数百テラバイトのデータに対して、行間およびテーブル間のトランザクション処理を可能にします。Taobaoのコアシステム研究開発部門、運用保守部門、DBA部門、広告部門、アプリケーション開発部門が共同で開発しました。

アドレス: https://github.com/alibaba/oceanbase

3. 分散データベース同期システム Otter

otter は、増分データベース ログ解析を使用して、ローカルまたはリモート データ センターの MySQL/Oracle データベースにデータをほぼリアルタイムで同期する分散データベース同期システムです。

アドレス: https://github.com/alibaba/otter

4. Oracleデータ移行および同期ツールyugong

Yugong は、Oracle データ (完全および増分、MySQL/DRDS のサポートを対象) を置き換えるために Alibaba がリリースしたデータ移行および同期ツールです。

アドレス: https://github.com/alibaba/yugong

5. 分散SQLエンジン Lealone

Lealone は、HBase 用の分散 SQL エンジンを提供し、BigTable (HBase) と RDBMS (H2 データベース) を組み合わせようとするプロジェクトです。

アドレス: https://github.com/lealone/Lealone

6. リレーショナル データ用の分散処理システムである Cobar。

Cobarは、従来のデータベースと同様に、分散環境で大規模なデータサービスを提供できる分散リレーショナルデータベース処理システムです。以下は、簡単な起動シナリオです。

アドレス: https://github.com/alibaba/cobar

7. 分散リレーショナルデータベース「Alibaba WASP」

Wasp は、Google MegaStore や F1 に似た分散リレーショナル データベースです。

アドレス: https://github.com/alibaba/wasp

システム

1. FastDFS分散ファイルシステム

FastDFSは、ファイルの保存、同期、ファイルアクセス(ファイルのアップロードとダウンロード)など、ファイル管理を行うオープンソースの分散ファイルシステムです。大容量ストレージと負荷分散の問題を解決し、写真サイトや動画サイトなど、ファイルを媒体として利用するオンラインサービスに特に適しています。

アドレス: https://github.com/happyfish100/fastdfs

2. メッセージキューイング Apache RocketMQ

RocketMQ は、次の特性を持つ分散型のキューベースのメッセージ ミドルウェアです。

  • 厳密なメッセージ順序を保証できる
  • 豊富なメッセージ取得モードを提供
  • 非常に効率的な加入者レベルのスケーリング機能
  • リアルタイムメッセージサブスクリプションメカニズム
  • 数億件のメッセージを処理する能力

アドレス: https://github.com/apache/rocketmq/

3. 分散型キー/値ストレージシステム「Tair」

Tair は、メモリベースとファイルベースの 2 つのストレージ方式をデフォルトでサポートするキー/値データ ソリューションです。これらは通常、それぞれキャッシュと永続ストレージと呼ばれます。

アドレス: https://github.com/alibaba/tair

4. システム情報収集・監視ツール Tsar

TsarはTaobaoが使用するデータ収集ツールで、主にサーバーシステム情報(CPU、I/O、メモリ、TCPなど)とアプリケーションデータ(Squid、HAProxy、Nginxなど)の収集に使用されます。Tsarはリアルタイム表示と履歴表示をサポートしており、アプリケーションとサーバーの情報を簡単に把握できます。

アドレス: https://github.com/alibaba/tsar

5. 分散メッセージミドルウェア「Metamorphosis」

91560100541c91d5c14aedad0031b44492cbc892

Metamorphosis(MetaQ)は、LinkedInのKafkaに類似した、高性能、高可用性、スケーラビリティを備えた分散メッセージミドルウェアです。シーケンシャルメッセージストレージ、高スループット、ローカルトランザクションとXAトランザクションのサポートを特徴としており、高スループット、順序付きメッセージ、ブロードキャスト、ログデータ転送などのシナリオに適しています。

アドレス: https://github.com/killme2008/Metamorphosis

6. タオバオウェブサーバーTengine

Tengineは、Taobaoが立ち上げたウェブサーバープロジェクトです。Nginxをベースとし、高トラフィックのウェブサイトのニーズに応える高度な機能を多数搭載しています。Tengineのパフォーマンスと安定性は、TaobaoやTmallといった大規模ウェブサイトで実証されています。Tengineの最終目標は、高効率で安定性、セキュリティ、そして使いやすさを兼ね備えたウェブプラットフォームの構築です。

アドレス: https://github.com/alibaba/tengine

7. TFS 分散ファイルシステム

TFS (Taobao FileSystem) は、膨大な量の非構造化データをサポートするように設計された、インターネット サービス向けの拡張性、可用性、パフォーマンスに優れた分散ファイル システムです。

アドレス: https://github.com/alibaba/tfs

8. 非同期タスク処理システム TBSchedule

tbscheduleは、バッチタスクや常に変化するタスクを異なるホスト上の複数のJVMに動的に割り当て、異なるスレッドグループ間で並列実行できるように設計された、簡潔な分散タスクスケジューリングエンジンです。すべてのタスクは、重複や漏れなく、迅速かつ効率的に処理されます。

アドレス: https://github.com/taobao/TBSchedule

9. パウチコンテナエンジン

04a2ed22d016dde2b1e2f1a75dd6773b9edcd6aa

Pouchは、高速性、効率性、高い移植性、そして低リソース消費を特徴とする軽量コンテナエンジンです。主に、Alibaba社内のビジネスアプリケーションをより迅速に提供し、超大規模データセンターにおける物理リソースの利用率を向上させるのに役立ちます。

アドレス: https://github.com/alibaba/pouch

10. オンライン分析・クエリシステム mdrill

Mdrillは、Hadoop、Lucene、Solr、JStormなどのオープンソースシステムを用いて実装され、SQLクエリ構文をベースにした分散型オンライン分析クエリシステムです。Mdrillは、大量データの分散処理を可能にするソフトウェアフレームワークです。高速かつ高性能であり、インデックス、列指向ストレージ、メモリキャッシュ技術を基盤として活用することで、データスキャン速度を大幅に向上させます。分散システムであるMdrillは並列動作し、並列処理によって処理速度を向上します。

アドレス: https://github.com/alibaba/mdrill

チュートリアル

1. 7日間でNodeJSを学ぶ(ドキュメント)

Learn NodeJS in 7 Days は、Alibaba.com のフロントエンド技術部門が Node.js を学習するために作成したオープンソース ドキュメントです。

アドレス: https://github.com/nqdeng/7-days-nodejs

2. 初心者からエキスパートまで学ぶNginx開発

Nginxはその優れたパフォーマンスにより世界中で注目を集めており、Taobaoでも広く利用されています。多くの開発者や運用担当者は、Nginxモジュールの開発と内部原理の理解に熱心です。しかし、中国にはこのテーマに関する書籍がないため、私たちは自ら書籍を執筆することにしました。本書の著者はTaobaoのコアシステムサーバープラットフォームチームのメンバーで、モジュール開発からNginxの原理分析へと段階的に移行していく構成となっています。

アドレス: https://github.com/taobao/nginx-book

上記は、Alibabaの主要なオープンソースプロジェクトをご紹介したものです。皆様のお役に立てれば幸いです。