EdgeLang の紹介

複雑なゲートウェイロジックを実装するための強力かつ効率的な方法をお探しでしたら、EdgeLang をご検討いただくことをおすすめいたします。EdgeLang は OpenResty Inc. が開発したドメイン固有言語で、OpenResty Edge 製品向けに簡潔で表現力豊かなルールを記述することができます。OpenResty Edge はトラフィック管理プラットフォームであり、ページルール、Web アプリケーションファイアウォール(WAF)、負荷分散などの様々な機能を提供しています。OpenResty Edge システムのほぼ全体が EdgeLang を基盤として構築されています。Qunar、ADP、Ajaib など多くの高トラフィックウェブサイトが、OpenResty Edge の EdgeLang 言語を使用して複雑なゲートウェイおよび WAF ルールを表現しています。

EdgeLang を使用する利点

なぜ EdgeLang を選ぶのでしょうか?以下にいくつかの利点をご紹介いたします:

  • パフォーマンス:EdgeLang のルールは高度に最適化されたステートマシンにコンパイルされ、入力リクエストデータを一度だけスキャンします。これにより、正規表現や文字列パターンを含む複雑な条件を持つ複数のルールを、速度を犠牲にすることなく設定できます。EdgeLang のルールは通常、LuaJIT を使用した手書きの Lua コードよりも何倍も高速です。

Embeded image

Embeded image

Embeded image

  • セキュリティ:EdgeLang はルールベースの言語であり、無限ループ、メモリリーク、未定義変数などの一般的なコーディングエラーを防ぐことができます。誤ったコードによってゲートウェイや WAF がクラッシュする心配がありません。
  • 柔軟性:EdgeLang では、シンプルで読みやすい構文を使用して多くのことを実現できます。ヘッダー、Cookie、クエリ文字列、ボディデータなどを操作できます。さらに、カスタムの Lua コードやモジュール、さらには C/C++ コードを呼び出すこともできます。EdgeLang は、ngx_lua や resty.core などの他の OpenResty コンポーネントとも良好に連携します。
  • 保守性:EdgeLang のルールは書きやすく理解しやすいです。コードというよりもドキュメントのように見えます。ルールをグループに整理し、異なるドメインやパスに適用することができます。また、Web フォームベースのページルールを使用してコードを書かずにルールを作成・管理することもできます。

EdgeLang の設計者は以前 Cloudflare で長年働いており、Lua で書かれた多くのゲートウェイロジックを維持することがいかに困難であるかを目の当たりにしました。EdgeLang はより優れた代替手段であり、より多くの機能とパフォーマンスを提供します。

Edge Admin における EdgeLang

OpenResty Edge の Web コンソールである Edge Admin では、ページルールや WAF ルールの設定など、様々な機能を実装するために EdgeLang を使用しています。

Embeded image

Embeded image

EdgeLang についてさらに詳しく知りたい場合は、当社のドキュメントサイトで包括的なユーザーマニュアルをご覧いただけます。

https://doc.openresty.com/en/edge/edgelang/

結論

EdgeLang は、OpenResty Edge 製品の複雑なゲートウェイロジックを実装するための強力かつ効率的な方法です。パフォーマンス、セキュリティ、柔軟性、保守性など、多くの利点を提供します。EdgeLang のルールは書きやすく理解しやすく、他の OpenResty Edge 機能とシームレスに連携します。EdgeLang についてさらに詳しく知りたい場合は、当社のドキュメントサイトにある包括的なユーザーマニュアルをご覧ください。EdgeLang と OpenResty Edge を使用して、素晴らしい Web ゲートウェイやプライベート CDN ネットワークを作成することをお楽しみいただければ幸いです。

OpenResty Edge について

OpenResty Edge は、マイクロサービスと分散トラフィックアーキテクチャ向けに設計された多機能ゲートウェイソフトウェアで、当社が独自に開発しました。トラフィック管理、プライベート CDN 構築、API ゲートウェイ、セキュリティ保護などの機能を統合し、現代のアプリケーションの構築、管理、保護を容易にします。OpenResty Edge は業界をリードする性能と拡張性を持ち、高並発・高負荷シナリオの厳しい要求を満たすことができます。K8s などのコンテナアプリケーショントラフィックのスケジューリングをサポートし、大量のドメイン名を管理できるため、大規模ウェブサイトや複雑なアプリケーションのニーズを容易に満たすことができます。

著者について

章亦春(Zhang Yichun)は、オープンソースの OpenResty® プロジェクトの創始者であり、OpenResty Inc. の CEO および創業者です。

章亦春(GitHub ID: agentzh)は中国江蘇省生まれで、現在は米国ベイエリアに在住しております。彼は中国における初期のオープンソース技術と文化の提唱者およびリーダーの一人であり、Cloudflare、Yahoo!、Alibaba など、国際的に有名なハイテク企業に勤務した経験があります。「エッジコンピューティング」、「動的トレーシング」、「機械プログラミング」 の先駆者であり、22 年以上のプログラミング経験と 16 年以上のオープンソース経験を持っております。世界中で 4000 万以上のドメイン名を持つユーザーを抱えるオープンソースプロジェクトのリーダーとして、彼は OpenResty® オープンソースプロジェクトをベースに、米国シリコンバレーの中心部にハイテク企業 OpenResty Inc. を設立いたしました。同社の主力製品である OpenResty XRay動的トレーシング技術を利用した非侵襲的な障害分析および排除ツール)と OpenResty Edge(マイクロサービスおよび分散トラフィックに最適化された多機能ゲートウェイソフトウェア)は、世界中の多くの上場企業および大企業から高い評価を得ております。OpenResty 以外にも、章亦春は Linux カーネル、Nginx、LuaJITGDBSystemTapLLVM、Perl など、複数のオープンソースプロジェクトに累計 100 万行以上のコードを寄与し、60 以上のオープンソースソフトウェアライブラリを執筆しております。

翻訳

英文版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!