|
オープンソースは、人間の協働と成果の共有の力を示しています。あらゆる技術革新は巨人たちの肩の上に成り立っており、多くの技術革新や開発はオープンソースを基盤としています。インターネット企業は、オープンソースを利用せずに自社技術のみで発展することはできません。アリババの様々なチームは、自らが直面した落とし穴やそこから得た教訓を真摯にオープンソースプロジェクトに取り入れ、業界関係者全員が利用できるようにすることで、他の人々の問題解決に貢献したいと考えています。
この記事では、Alibabaの重要なオープンソースプロジェクトをいくつかまとめ、皆様のお役に立てれば幸いです。以下のプロジェクトは順不同です。 フロントエンド 1. データ駆動型、高度にインタラクティブなビジュアルグラフィックス構文 AntV - G2 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 とブラウザ環境をサポートしています。 ヒント: より技術的なブログ投稿については、WeChat 公式アカウント「Java Backend」をフォローしてください。 アドレス: 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 27. Reactベースのフォームソリューション「noForm」 NoFormは、Alibabaの対外貿易総合サービスフロントエンドチームが、対外貿易総合サービスという文脈で長年の検討と改良を経て開発したReactベースのフォームソリューションです。理解に苦しむ方もいらっしゃるかもしれません。「フォームってそんなに複雑になるものなの?」と疑問に思う方もいるかもしれません。150以上のフィールドを必要とするフォームは見たことがないかもしれません。10以上のサブフォームで構成されているフォームも、バックエンドによってフィールドが動的に設定されるフォームも、おそらく見たことがないはずです。NoFormは、いくつかの重要な側面を特定し、フォームソリューションを最適化してオープンソース化することで、こうしたビジネスの複雑さに対処します。 アドレス: https://github.com/alibaba/noform ジャワ 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 のプッシュ通知サービスの 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はコマンドライン対話モードを採用し、豊富なタブ自動補完機能により、問題の特定と診断をさらに容易にします。この診断ツールに関するチュートリアルは、WeChat公式アカウント「Java Backend」で公開されています。フォローして最新情報を受け取ることができます。 アドレス: 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によって提供されています。主にアプリケーションレベルのクラスと依存関係の分離機能を提供します。FatJarテクノロジーに基づいており、アプリケーションは自己完結型で実行可能なFatJarにパッケージ化できます。アプリケーションは、シンプルな単一モジュールの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/ 28. ルールエンジン: QLExpress QlExpressスクリプト言語パーサーは、2010年に当時の匯金のビジネスニーズに基づいて、玄南師匠によって開発されました。このプロジェクトは、Alibabaのeコマースビジネスルール、式(ブール値の組み合わせ)、特殊な数式計算(高精度)、構文解析、スクリプトのカスタマイズといった厳しい要件を満たす動的スクリプトエンジン解析ツールとして設計されました。 40回以上のマイナーバージョンアップを経て、QlExpressはパフォーマンスと機能面でより安定し、より多くのチームに受け入れられ、認知されるようになりました。また、ダブル11ショッピングフェスティバルや複雑なルールベースのビジネス構成プラットフォームといった実際のシナリオでのテストも強化されました。 アドレス: https://github.com/alibaba/QLExpress パイソン 1. Mars – 行列に基づく統合分散コンピューティングフレームワーク Marsは、行列をベースとした統合分散コンピューティングフレームワークです。MarsテンソルはNumPyと互換性があり、一般的なNumPyインターフェースの70%を実装しています。同時に、NumPy構文を拡張することで、GPUでの計算と疎行列の作成をサポートします。Marsはスケールインとスケールアウトの両方のスケーリングをサポートしています。スケールインでは、単一マシンでマルチコア並列処理を活用でき、スケールアウトでは、分散環境において数千台のマシン規模のデータ処理をサポートします。 アドレス: https://github.com/mars-project/mars データベース 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. リレーショナル データ用の分散処理システムである Cobar。 Cobarは、従来のデータベースと同様に、分散環境で大規模なデータサービスを提供できる分散リレーショナルデータベース処理システムです。以下は、簡単な起動シナリオです。 アドレス: https://github.com/alibaba/cobar 6. 分散リレーショナルデータベース「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」 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. パウチコンテナエンジン Pouchは、高速性、効率性、高い移植性、そして低リソース消費を特徴とする軽量コンテナエンジンです。主に、Alibaba社内のビジネスアプリケーションをより迅速に提供し、超大規模データセンターにおける物理リソースの利用率を向上させるのに役立ちます。 アドレス: https://github.com/alibaba/pouch 10. オンライン分析・クエリシステム mdrill mdrill是一个分布式的在线分析查询系统,基于hadoop,lucene,solr,jstorm等开源系统作为实现,基于SQL的查询语法。mdrill是一个能够对大量数据进行分布式处理的软件框架。mdrill是快速的高性能的,他的底层因使用了索引、列式存储、以及内存cache等技术,使得数据扫描的速度大为增加。mdrill是分布式的,它以并行的方式工作,通过并行处理加快处理速度。 Tips:欢迎关注微信公众号:Java后端,获取更多技术博文的推送。 地址:https://github.com/alibaba/mdrill |