Hero Image
APIファーストについて

1.APIファーストについて 本システムは、マイクロサービス1をAPIで提供することをコンセプトに構築されています。APIファースト2の視点を取り入れることができれば、APIのURLごとに技術を変えたり、設計の統一ができるようになります。これによってメンテナンス性を向上させたり、マイクロサービス的な視点によってサービスの肥大化を防げるようになります。 2.システム構成 本システムでは、APIを利用することで各種サービスを要求に応じて追加提供できます。このために、バックエンドが複雑になっていますが各種監視まで細かな管理ができ信頼性のおけるシステムです。また、高速な通信技術と最新のセキュリティ技術を導入していますので優れたUXを提供しています。 また、開発・テスト・デプロイまで一連の作業が一部自動化されるなど見通しがよく使いやすい設計となっていますので、メンテナンスや拡張性に優れています。 バックエンドのGo言語は、並行処理や並列処理が言語レベルで備わっており、このCPUで複数の仕事を同時に行う機能により、大量の同時接続に対応できかつコンパイル型なので高速に処理することができます。 3.技術スタック フロントエンド 言語: Javascript フレームワーク: Svelte/Sapper バックエンド 言語: Go プラットフォーム: Micro データベース PostgreSql: リレーショナル データ ストレージ ArangoDB: マスタデータ用のマルチモデル Timescale: 高速時系列データベース Redis: キャッシュ用[Key-value]データベース オーケストレーション Docker KubernetesはMinikubeで動作します。 通信 gRPC: サービス間の高速な通信技術 JSON: データ記述言語 その他 NATS: Pub/sub NGINX: K8sの進捗コントローラ Vault: K8sのパスワード管理 Prometheus: モニタリングツール Grafana: データ可視化ツール 4.マイクロサービス 電子掲示板 SNS チャット SMS(プッシュ通知) アンケート(Google Formを使うが、連絡先のDB化) 広告掲載(SSHにて管理者が行う) API管理(アプリケーション管理)(システム管理者) メトリクス監視(1)(DB:PostgreSQL)(システム管理者) メトリクス監視(2)(DB:AngoraDB)(システム管理者) 以上 マイクロサービス:マイクロサービスとは、複数の独立した小さなコンポーネントやサービスの組み合わせによりアプリケーションを開発する、クラウドネイティブなアプローチのアーキテクチャーです。。 ↩︎ APIファースト:APIは、プログラム的な結び付きを使って他のコードにアクセスできるようにする仕組みです。これを利用するとソフトウェア開発に要する時間が根本的に短縮できます。また、ソフトウェア開発にAPIファーストのアプローチを取ればソフトウェア開発の作業を洗練できます。 ↩︎

Hero Image
Grafanaとは

1.Grafanaの概要 Grafanaのドキュメント Grafanaとは、Grafana Labs社が開発したデータ可視化ツールです。 Grafanaを利用するためには元のデータが必要であるため、データを収集するツール(PrometheusやElasticsearch等)と組み合わせて使われます。 可視化に特化しているため、他プロダクトが各自で用意しているダッシュボードよりも時系列グラフの可視化自由度が高いという特徴があります。 2.Grafanaの主な特徴 データのクエリ、視覚化、アラート、およびデータの保存場所に関係なく、データの理解を行います。Grafanaを使用すると、美しく柔軟なダッシュボードを通じてすべてのデータを作成、探索、共有できます。 データベースではなくデータを統合する 誰もが見ることができるデータ 誰でも使用できるダッシュボード 柔軟性と汎用性 3.Grafanaの動作環境 当社のローカルSNSの場合 AWS-EC2:Ubuntu20.04 Metrics監視(1)DB : PostgreSQL 4.Grafana機械学習1 Grafana機械学習は、Grafana Cloudユーザーがシステムの現在または将来の状態の予測を作成する機能を提供します。 予測を作成するには、ソース クエリ (モデル化する時系列) と機械学習モデルの構成を定義します。システムは、バックグラウンドでモデルをトレーニングします。 モデルのトレーニングが正常に完了したら、クエリを発行して、将来のさまざまな時間に系列の値を予測できます。モデルは予測値の信頼限界も返します。 時間が経つにつれて、モデルは新しいパターンを学習し続けるので、自動的にデータと共に進化します。 4-1.はじめに メトリック予測の動作を確認するには、概要チュートリアル[^16102]を参照してください。 クエリを実行すると、機械学習プロメテウスデータソースを使用してクエリを作成するのに役立ちます。 モデル構成では、モデルを調整して予測を改善する方法について説明しています。 4-2.手順 このガイドでは、Grafana Cloud のメトリクスの使用状況の予測を作成します。 この予測を使用して、制限を超えると予測される場合や、予想外に増加したメトリックが発生したかどうかを確認できます。 予測の作成 機械学習>予測に移動します。 [予測の作成] をクリックします。 クエリ ビルダで、データソースグラファナクラウドの使用状況を選択します。 次のクエリを実行します。sum(grafanacloud_instance_active_series) [トレーニング モデル] タブをクリックします。 ここで何かを調整する必要はありませんが、ノブがチューニング可能なものを見てください。 [予測の作成] をクリックします。 予測に名前を付け、[確認] をクリックします。 予測を表示 グラファナクラウドアクティブシリーズ予測の表示をクリックします。 ビューをキャストの興味深い時間枠に変更します。 予測が実際の結果とどのように一致するかを調べ、将来何日か含んで、モデルがアクティブなシリーズがどのように進化すると考えているかを確認してください。 パネルで予測を使用する ビューページから: 右上の [コピー] パネル ボタンをクリックします。 パネルにアラートを含めるには、[アラートを含める]を選択し、それ以外の場合は[アラートなし]を選択します。 既存のダッシュボードを開くか、新しいダッシュボードを作成します。 クリップボードからパネルを貼り付けてダッシュボードにパネルを追加します。 新しいパネルを編集し、生成されたクエリを表示します。 以上 Grafana機械学習 ↩︎