API開発のためのプログラミング言語"Ballerina"の直感的な構文について解説します。認証や承認、OpenAPIツール、可観測性、SQL/NoSQLクライアントライブラリなど、重要な言語機能についても論じます。記事を読み終えれば、Ballerinaが次のバックエンドAPI開発の有力な候補である理由がよく理解できるでしょう。2022年4月InfoQ編集チームが2022年に進化するソフトウェアアーキテクチャと設計のトピックをどのように見ているかの概要です。アーキテクトが今、何を設計しているかに焦点を当てています。Pan氏が、分散データベースシステムにおけるシャーディングアーキテクチャのパターンについて論じます。ShardingSphereプロジェクトがデータシャーディングの課題にいかに対処しているかを説明した上で、DistSQLを使って分散データベースと暗号化テーブルを生成する方法の実例2つを論じています。カルチャー&手法カオステストで、見えない課題からアプリケーションのレジリエンスを改善するこの記事では、Netflixが提唱するカオステストの原則を列挙した。読者は、カオステストが提供するメリットとデメリットを理解できるはずだ。することで、カオステストを行うかどうかの判断材料となる。リスクに対するすべてのメリットを考慮して、カオステストを行うために経営陣を説得すべき理由も説明した。IMDG,あるいは単にHazelcastと呼ばれる)。Jetを中心的に開発を進めてきた。今週,この新しいテクノロジのリリースが発表されたのだ。Topolnik氏とコンタクトを取り,今回の新リリースのエキサイティングな点について詳しく聞くことにした。Jetの本当の目的は,アプリケーションのインフラストラクチャとは離れた部分で,高速大容量データを可能にすることにあります。SparkやHadoopといったテクノロジには,アプリケーション開発者のアーキテクチャや考え方に深く踏み込み過ぎている感があります。私たちはJetを,アプリケーション構造ではなく,開発者が自身の問題に集中するためのツールとして提供したいのです。Jetはパフォーマンスの面でも画期的です。比較したパフォーマンス値を測定しました。その数字がすべてを物語っています。multithreading),一般に“グリーンスレッド”と呼ばれる原則に基づくものを採用しました。これは,タスクのスケジュールをOSに任せず,利用可能なCPUコアと同数のスレッドですべての処理を行なう,という方法です。私たちがタスクレットと呼んでいる基本的な処理ユニットが,コールの度に少し処理をしては戻るという方法で,実行エンジンと協調的に動作します。タスクレットの各コールが,キューに登録されているデータを処理するのです。これがなぜ,よいアプローチと考えられるのでしょう?まず挙げられるのは,コンテキストスイッチのコストがほぼゼロである点です。ひとつのタスクレットから別のタスクレットに処理を引き継ぐロジックは,ほとんど必要ありません。タスクレットがスレッド間をジャンプすることはありませんし,各ワーカスレッドがコアに固定される可能性が極めて高くなります。これによってCPUキャッシュのヒット率が高くなります。最後に,インプット/アウトプットキューを調べることで,どのタスクレットが実行可能かを即座に把握することができるのです。ネイティブスレッドを使うと,比較的ヘビーウェイトな待機/通知メカニズムを備えたブロックキューが必要になります。なればすなわち,タスクの実行はOS次第ということになってしまうでしょう。ふたつめの重要な決定は,単一プロデューサ/単一コンシューマのコンカレントキューをすべての場所で使用する,ということです。N個の上流タスクレットとM個の下流タスクレットを接続するにはN×Mのキューが必要ですが,こうすることで非常に高速でウェイトフリーなアルゴリズムが,キューの両端で実現できるのです。writes)の必要もありません。コンシューマ側で必要なのは,キュー全体がスレッドローカルストレージに出力された後,たった一度のlazySetだけなのです。Sympathy)の運動から直接的な影響を受けています。パーティションにRunnableを送信するというのは,単一のDAG頂点における動作に似ています。Jetのメリットは,頂点で読み込んだデータを変換し,別のパーティションに属するアイテムを生成することで,それらを下流の頂点に送信する際に並べ換えて,再び正しくパーティショニングできるという点です。この動作は,同一キーを持つすべてのデータ項目を監視してユニット数を減らす必要があるという点で,あらゆる種類のMapReduce操作において不可欠なものです。ネットワークトラフィックを最小限に抑えるため,Jetでは,ローカルメンバ上で生成されるデータスライスを減らした上で,部分的な処理結果の合成を行なうリモートメンバに対して,キー毎にひとつの項目のみを送信しています。当社は分散バージョンのjava.util.streamも所有しています。このソースとスキンはJertアーキテクチャの核心的な部分として使用されており,Jetのアーキテクチャで優れた処理を行なっています。将来のバージョンではソースとしてMap-with-Predicateも追加して,Jetのデータソースとして機能できるように,フィルタリングとフィールドプロジェクションを可能にしたいと思っています。Processing)を多用する産業では大きなメリットがあると思います。Jetに関して重要なのは,分析の一部としてよりも,運用状況においてDAG計算が必要な場合の有用性にあると思っています。今日(2月8日)からIMDGと同じように,Jetでもプロフェッショナルサポートの提供を開始します。JetはIMSGと特に親和性が高いので,JetのローンチでIMDGの利用が増加すると期待してはいますが,Jetにはクローズドソースの部分はありませんし,その方向に進むつもりもありません。年内に管理監視の機能を有償で追加するかも知れません。いった方法を行なうことは事実ですが,まだ何も決めていないのです。2ライセンスのオープンソースプロジェクトとして成功を収めたいと思っています。今回0.3を公開しましたが,今後は毎月1回を目標にしています。0.3でリリースを逃したものを整理して,2週間後に0.3.1を提供する予定です。3.8を提供し,さらにJetクラスタのエラスティックスケーリング(ジョブを実行中でも可能な)も取り上げます。0.4リリースには,パフォーマンス関連の開発が多く含まれるはずです。現在でもJetのパフォーマンスは傑出していますが,0.4ではさらに向上するつもりです。真のストリームソースとして,JCacheのサポートとIMDGリスナも追加する予定です。IMDGは現行のリリースでもサポートされていますが,バッチソースとして,本当の意味でのストリーミングサポートも加えたいと思っているのです。KafkaとHDFSはすでにサポートされていますが,それらをファーストクラスのサポート状態にするために,パフォーマンスの向上とドキュメント追加を行なう必要があります。その他の機能としては,DAG可視化ツールを,EclipseとIntelliJのプラグインとしてリリースしたいと思っています。それが実現できれば,ロードマップを真にコミュニティ主体のものにできるでしょう。毎週火曜日に前週のまとめコンテンツをお送りいたします。(日本語版は不定期リリース)25万人のシニアな開発者コミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツをお送りいたします。(日本語版は不定期リリース)25万人のシニアな開発者コミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。Inc.プライバシーBT。