ファーストプロジェクト


私は、Klothoによって提供されたサンプルアプリケーションを使用して計装と展開を通して、彼らのドキュメンテーションで行くことに決めました.
この研究室の間、Klothoによると、私はこうします
  • マルチサービストポロジー:コードにおけるトポロジーの創出
  • 接続:インターネットへのマルチルートAPIの公開
  • 持続性:コンテンツの保存と検索
  • スケジューリング:スケジュールの実行機能
  • 簡単なAPIを提供します.では、それを見ましょう!

    コードを得る


    私は最初にバージョン管理からコードをダウンロードしなければなりません.
    git clone https://github.com/KlothoPlatform/tutorial-starters.git
    

    準備


    このコードはnodejsですので、すべての依存関係をインストールする必要があります.ええ、私はノードでそれを愛し、私は本当にそれを愛する……)
    そこで、以下のコマンドを実行しますtutorial-starters/webapi/
    npm install
    

    アプリ


    アプリケーションは、本当に簡単です.3 APIのエンドポイント、1ポスト、2つの取得とシンプルな機能を使用して動作するvideo store アプリケーション.

    まず、Klothoでコードを計るつもりです.そして、私はどんなコンパイルが作成するかを見るのを待つことができます.
    Klothoは、7行がこのコードに加えられると主張します、私は完全な雲準備ができているアプリケーションを持ちます.チェックしましょうか.しましょう!

    計装


    まず、Webサーバーの機能.インindex.ts 私は置くcapability そのために.注意してください、私はちょうど私が欲しい機能の種類を言う、コンパイル中にKlothoは私のために最善の(希望)サービスを選択します.
    それで、私はファイルにこの部分を加えます
    /**
     * @capability https_server
     */
    
    以下のようになります.

    上の画像で、コードを置く場所を見ることができます.
    さて、すべてはKlotho documentation , それで、重要な部分だけに集中している間、私は全部のプロセスをスキップします.
    アプリケーションへのentryPointのセットアップは、今では、サービスの境界を定義する時間です.それをするために、私は計器をしますuserapi.ts , video-postapi.ts , video-listapi.ts and quickrenderer.ts with
    /**
     * @topology_group <service>
     */
    
    どこ<service> マイクロサービス名を使いたいです.
    このディレクティブはまだドキュメントで説明されていませんが、論理的に見て、私はマイクロサービスを定義しています.それらの4.
    計装の例ですuserapi.ts
    OK、この部分も行われます.
    今、私たちのすべての原則-データベースのデータを知っている永続的である必要があります.それは意味がありますね.だから、アプリのデータをどこかのデータとして、私はこのストレージの永続的なデータ破壊を避けるためにする必要があります.
    Klothoでは別の機能を使わなければなりません.
    /**
     * @capability kv_persist eventually_consistent
     */
    
    ここではKlothoチュートリアルkv_persist ケーパビリティ.他の倉庫には別のものを使います.file_persist .
    そして、私が使いたい最後の能力はschedule . この機能を使用して、スケジュールされたサービスを作成します.このチュートリアルでは、このサービスはデータのクリーニングに責任があります.
    インファイルquickrender.ts 追加する
    /**
     * @capability schedule 0/5 * * * ? *
     */
    
    それは' cronのような'形式は、undestandを簡単に従ってください.cronに慣れていない人には、スケジューラは5分ごとに機能を発射するように設定されています.
    ……私は.……
    完了!
    いくつかの線で、私は非機能的な要件のいくつかで全体のアーキテクチャを説明しました!魔法のようにね!
    私は、本当にKlothoを行動するのを待つことができません!

    コンパイル


    Klothoでコードをコンパイルする時です.
    私はこのコマンドを実行します
    cloudcc compile src/index.ts --runenv AWS --appname klothofirstrun --out-dir compiledAWS --typescript-compile
    
    そしてコマンドラインで何を持っているかを見ましょう:)cloudcc KlothoメインCLIコマンドcompile コンピレーションを開始するディレクティブsrc/index.ts アプリケーションの' main 'ファイルはどこですか--runenv クラウド・プロバイダーがコンパイルされたアプリケーションをどのようにレンダリングするかをklothoに伝えます.この場合、それはAWSです.--appname - アプリケーションが作成され、この名前の下で展開されます--out-dir コンパイルされたアプリケーションが作成されるディレクトリ--typescript-compile klothoに最初にスクリプトファイルを最初にコンパイルするように伝えます.
    私はスクリーンで何を見るか.全体のプロセスは、CLIのリアルタイムで更新され、情報は非常に明確であり、私は非常によく何が起こっている知っている.私はそれが好きです.

    コンパイルプロジェクト


    私は本当にそのklothoはpngファイルとして実装されるアーキテクチャをレンダリングします.これは本当に素晴らしいです!
    私が受け取ったものを見ましょう

    ルックス有効.APIゲートウェイがあります.APIの後ろに、3つのラムダ関数があります.完全な感覚を作ります.永続的なストレージKlothoがダイナモを選択したので、非常に良い選択は何ですか(我々はまだ無制限の世界にあります).そして、最後に、私はスケジュールされた行動のために定義されるようにイベントブリッジとラムダを持っています.これまでのところ、良い.
    しかし、1つのことは改善されるべきです.この絵はあまりきれいではない.Klotho Webpageの表現はとても良いので、ローカルインストールツールに関連しています.このように、建築のドキュメンテーションの重要な部分であるので、より良い絵を見たいです.

    早期アクセス


    私の熱意は、少し他のクラウドプロバイダのためのアーキテクチャをレンダリングしようとしたビットをビットされた.HerokuとAzureはまだ利用できません(17.04.2022)、そしてGCPのためのレンダリングはいくぶん誤って働きます.見てみましょう

    主要な部分はうまく機能します(私はGCPに慣れていないと思います)、しかし、Klothoが予定された機能で仕事をしなかったことは明らかにわかります.
    さあ、「悲しげに」AWSと行き、何が中にあるかを判断します.これまでのところ、良いアーキテクチャは、提案されたアーキテクチャが有効であり、かなりすべてをカバーします.