Yanhuang の Huawei Cloud に対する要求
Yanhuang の日々の開発では、基本的にサーバー上のニーズに応じてクラウド サービスを使用します。現在、私たちは主に HUAWEI CLOUD を選択しています。HUAWEI CLOUD のクラウド ホストは比較的安定しており、提供されるクラウド ホストの構成も非常に多様で、さまざまなシナリオでのハードウェア構成のニーズとテクニカル サポートの応答速度に非常に適しています。サービスも非常に速いです。
一般的に、日々の研究開発とテストに対応するために、主に年間いくつかのクラウド ホストを購入します。ただし、同僚はいくつかのアドホックな要件にも遭遇するでしょう。たとえば、ユーザーが遭遇した問題については、実験環境で再現する必要があり、顧客の環境をシミュレートするために一時的にいくつかのクラウド ホストを開きます。
Yanhuang Data の従業員数が増えるにつれ、一時的にマシンを作成する需要も増えています。HUAWEI CLOUD の API は機能が非常に充実しており、HUAWEI CLOUD の API Explorer はデバッグやテストに非常に便利なツールであることがわかりました。そこで、API を介して社内でクラウド ホストを作成するツールとして、Ichiban を急遽開発しました。
塩黄一番のご紹介
なぜ一番と呼ばれるのですか?塩湖はビール文化が根付いているため、社内の冷蔵庫には飲料以外にもあらゆる種類のクラフトビールが詰め込まれており、毎週金曜日には技術共有会があり、ビールと食べ物が飲み放題のハッピーアワーも毎週開催されています。ということで、燕黄のプログラマにとって夏は一番+の串焼きが必需品だと思います。いつでもビールを飲みに燕黄へようこそ〜
まず、Ichibanのログイン画面は以下の通りです。当社では Microsoft Azure AD を使用して従業員のアカウントを管理しているため、Microsoft の API を呼び出してログインし、ユーザー情報を記録および管理しています。
ログインすると、作成したクラウドホストの情報が確認できます。
この層以降、実装のために Huawei Cloud の API が呼び出され、その機能には次のものが含まれます。
クラウドホストを作成する
クラウドホストの起動、シャットダウン、再起動、リモートログイン、削除
クラウドホスティングのリースを延長する
ハードドライブなどを追加します。
イチバンの技術スタック
HUAWEI CLOUD の Python SDK を使用していますが、ここでもう一度 HUAWEI CLOUD の API Explorer を賞賛しなければなりませんが、これは迅速な開発機能を提供し、入力した値に基づいてコードを自動的に生成できるツールです。
HUAWEI CLOUD が提供する「SDK コード サンプル デバッグ」を使用してコードをデバッグすることもできます。これは、誰もがよく知っている VS Code のスタイルです。スクリーンショットを撮って自分で体験してください。開発に VS Code をよく使用する友人を知っていますか?
開発言語として Python を使用しているため、Flask + Gunicorn + Supervisor を使用して Web サービスをホストします。
Flask自体はPythonで書かれているためPythonとの互換性が高く、軽量なWebアプリケーションフレームワークです。
Gunicorn は、Flask 用の WSGI HTTP サーバーです。通常、リバース プロキシ (Nginx など) またはロード バランサー (AWS ELB など) と Web アプリケーション (Django や Flask など) の間に配置されます。
ここでは、Flask の 5000 ポートをホストするだけで済みます。構成は次のとおりです。
スーパーバイザーのサービス プロセスは、supervisord です。これは主に、自身の起動時に管理対象サブプロセスを起動し、クライアントのコマンドに応答し、クラッシュまたは終了したサブプロセスを再起動し、サブプロセスの stdout および stderr 出力を記録するために使用されます。サブプロセスのライフサイクル イベントを生成して処理します。Supervisord 自体のステータスを含め、関連パラメータを設定ファイルで設定できます。/etc/supervisord.d/xxxxx.ini にサブプロセスを作成し、各サブプロセスの関連属性を管理します。設定ファイルは通常、/etc/supervisord.conf にあります。
例: サブプロセス設定 /etc/supervisord.d/ichiban.ini
スーパーバイザーのクライアントは、supervisorctl と呼ばれ、supervisord サーバーが提供する機能を使用するためのシェルのようなインターフェイス (つまり、コマンド ライン) を提供します。ユーザーは、visorctl を介して、supervisord サーバー プロセスに接続し、サーバー プロセスによって制御される子プロセスのステータスを取得し、子プロセスを開始および停止し、実行中のプロセスのリストを取得できます。
クライアントは、Unix ドメイン ソケットまたは TCP ソケットを介してサーバーと通信します。サーバーには、セキュリティを効果的に向上できる ID 証明書認証メカニズムがあります。クライアントとサーバーが同じマシン上にある場合、クライアントとサーバーは同じ構成ファイル /etc/supervisord.conf を共有し、この 2 つの構成は異なるラベルで区別されます。
プロセスを再起動するときに、以下を実行できます。
Honhu は HUAWEI CLOUD からデータを収集します
ここで問題が発生します。。。
私たちは、Ichiban のコードを書き、機能を実現し、クラウドホストを使用する開発者の問題を解決しましたが、Ichiban の管理者として問題も発生しました。毎月の支出額と詳細な使用状況を知るにはどうすればよいですか?
会社に同僚が増えれば必然的に一番の利用も増え、コストも増加すると考えられます。上司は、イチバンの月ごとまたは四半期ごとの予算を立ててもらえないかと尋ねましたが、現時点ではデータの裏付けがなければ、次の予算の数字を出すのは困難です。
このとき、Honghu の価値が強調され、ログ ファイルを通じてクラウド ホストの起動時間、クラウド ホストの数を計算し、コストを非常に簡単かつ明確に見積もることができます。
一番のログは、Huawei CloudのAPIを呼び出すことによって生成されたJSON形式のログファイルで、fluentdを通じてHonghuのプラットフォームに送信されます。(Vector をデータ転送ツールとして使用することもできます)。この例ではログのデータ型は JSON ですが、実際の状況に応じて異なるデータ型を選択できます。Honhu はデータの種類を選択しません。あらゆる種類のデータを受け入れ、あらゆる種類のデータを解析します。
ホンフエンド
安価なクラウド ホストを追加し、ドキュメント (https://yanhuang.yuque.com/books/share/b1b27937-e331-40fd-bce1-bd521af4e662/vvv9si) に従って、Honghu をインストールしました。ブルースワンのロゴが現れました。
紅湖で HEI を作成 (HTTP 経由でデータを収集)
一番APIトークンの発行
Ichiban端
Fluentd をインストールする
fluentdの監視データの設定
次の構成を変更します
監視対象のファイルのアクセス許可に応じて、fluentd サービスの root 権限を構成する必要がある場合があります。
データを受け取りました、よっほー。。。
HUAWEI CLOUDの利用状況をダッシュボードに表示
単純な SQL クエリを通じて、Ichiban の使用状況をリアルタイムでカウントできます。
ここで構成の使用法の一部も抜粋しました
データは何を示していますか?
HUAWEI CLOUDの使い方。HUAWEI CLOUD の管理者として、使用されているクラウド ホストの数やそれぞれに費やされる時間など、一定期間における HUAWEI CLOUD Adhoc の需要を明確に理解できます。
ユーザー。統計的に誰がヘビーユーザーなのかを把握し、ユーザーのニーズを把握して最適化することが可能です。
総経費、全費用、経費全体。上の図に示すように、毎月の HUAWEI CLOUD 費用の構成を明確に知ることができます。しかし正直に言うと、戦略として一時的にマシンを作成することで、多くの不要なコストを節約できました。
最後に書きます
HUAWEI CLOUDのAPIと関連ツールは非常に好調で、間もなく機能が実現される予定だ。しかし、管理者にとっては、コスト管理や運用保守の面でも課題があります。しかし、Honghu を使用すると、これらすべてがはるかに簡単になり、十分なログと単純な SQL ステートメントがあれば、管理者の悩みは簡単に解決されます。
さらに、リアルタイム データの分析を通じて、いくつかの問題を迅速に見つけることができます。たとえば、クラウド ホストの起動時間にアラームを追加できます。たとえば、Zhang San のクラウド ホストが長時間稼働しているとします。誰かが閉め忘れたのかもしれません。次に、ポリシーを通じてアラーム (電子メールまたは Webook) を送信し、Zhang San に不必要なコストを削減するよう通知します。
私たちにはまだやるべきことがたくさんあります
今後もIchibanのフォローアップ開発を継続し、Ichiban、Huawei Cloud、CICDを直列に接続し、Huawei Cloud APIを通じて一時的なgitランナーやテストランナーなどを作成し、CI/CDをモニタリングしていきます。紅湖を通じて、利点:
1. Honhu は、CI/CD の問題のトラブルシューティングを支援します。
2. CI/CD の実行ステータスをダッシュボードに表示します。
3. 不必要なコストを削減します。たとえば、特定のテストを 8 時間実行し、ケースが特定の時間で中断される可能性があります。Honghu は、作業がないかどうかを確認するために手動またはトリガー スクリプトを使用できることを思い出させてくれます。タスクのランナーが削除されます。
データがHonghuに接続されると、データ再生の扉が開きます。簡単なSQLを渡すだけで、思いつかなかったものまで、興味深いことがたくさん見つかります。強力な機能のインスピレーションになるかもしれません、または脆弱性を見つける検出器である可能性があります。数行の SQL でデータを明確にすることができます。
ホンフを楽しんでください〜
大きな数字から単純なものまで
参考
ファーウェイクラウドAPI:
https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=ECS&api=NovaCreateServers
監督者のドキュメント:
https://zhuanlan.zhihu.com/p/424346764
フレイムフェニックスのデータ:
http://www.yanhuangdata.com/