DUICUO

アリババのオープンソース・ワンストップO&M SaaSアプリケーションスイートとクラウドネイティブO&M開発プラットフォーム - SREWorks

SREWorksは、アリババのビッグデータSREチームが開発したクラウドネイティブな運用・保守プラットフォームです。約10年にわたり社内で磨き上げられてきたSREエンジニアリングの実践を体現し、「データドリブンでインテリジェント」な運用・保守の原則を堅持することで、運用・保守業界のより多くの実務者が効率的な運用・保守のために「デジタルインテリジェンス」の思考を取り入れられるよう支援しています。アプリケーションを中心とした、ワンストップの「クラウドネイティブ」「デジタルインテリジェンス」運用・保守SaaS管理スイートの提供に注力しています。企業には、アプリケーションとリソースの管理と運用・保守開発という2つのコア機能を提供し、クラウドネイティブなアプリケーションとリソースの提供、運用・保守の実現を支援します。

  • 運用・保守向け:「輸送、監視、管理、制御、運用、サービス」の標準化されたSaaS管理シナリオを提供し、企業が「デジタルかつインテリジェント」な運用・保守サポートシステムを迅速に構築し、複雑なアプリケーションの運用・保守管理を柔軟にカスタマイズできるようにします。
  • R&D 向け: 運用サービスと保守サービスを自動的に統合する、基本的なすぐに使用できるクラウドネイティブ アプリケーション構成および配信機能プラットフォームを提供します。

SREWorks とは何ですか?

2003年、GoogleはSRE(Site Reliability Engineer)という職種を導入しました。これはソフトウェアエンジニアとシステム管理者を組み合わせたものです。運用担当者の開発能力を重視し、定型的な運用業務を50%未満に抑え、残りの50%を自動化ツールの開発に充てることで、人員要件を削減することが求められています。

SREWorksは、Alibaba CloudのビッグデータSREチームによるSREコンセプトのエンジニアリングプラクティスであり、アプリケーション中心のワンストップ「クラウドネイティブ」かつ「デジタル化」された運用保守SaaS管理スイートに重点を置いています。エンタープライズアプリケーションとリソースの管理と運用保守開発という2つのコア機能を提供し、企業がクラウドネイティブアプリケーションとリソースの提供、運用保守を実現できるよう支援します。

Alibaba CloudのビッグデータSREチームは、ビッグデータとAIに精通しており、ビッグデータとAI技術に関する豊富な知識と、すぐに利用可能なビッグデータとAIコンピューティングリソースを備えています。彼らは一貫して「データ駆動型」かつ「インテリジェント」な運用保守(O&M)理念の実現に努め、業界でいち早くDataOps(データ駆動型運用保守)の概念を提唱しました。SREWorksは、標準的なO&Mデータウェアハウス、データO&Mプラットフォーム、オペレーションセンターを含む、エンドツーエンドのDataOpsクローズドループエンジニアリングプラクティスを備えています。

従来のIT運用保守(O&M)分野には、既に優れたオープンソースO&Mプラットフォームが数多く存在します。一方、クラウドネイティブのシナリオでは、体系的なO&Mソリューションが不足しています。クラウドネイティブ時代の到来に伴い、Alibaba CloudのビッグデータSREチームは、SREWorks O&Mプラットフォームをオープンソース化し、O&Mエンジニアにすぐに使えるO&Mプラットフォームを提供することを目指しています。

SREWorks の利点は何ですか?

O&M(運用・保守)分野のニーズに立ち返ると、上位層の製品やビジネスモデルの変化に関わらず、O&Mは本質的に「品質、コスト、効率、セキュリティ」に関するニーズに対応します。SREWorksは、O&M SaaSアプリケーションインターフェースを用いてこれらのニーズに対応し、「デジタルインテリジェンス」をコアコンセプトとして、デリバリー、モニタリング、マネジメント、コントロール、オペレーション、サービスの6つの要素からなるSaaS機能を推進します。

インストール

まず、バージョン 1.20 以降の Kubernetes クラスターが必要です。

  • 分散デプロイメント: 少なくとも 3 つのノード (4 つの CPU コアと 16 GB のメモリで構成)、300 GB を超えるストレージ容量、および 90 を超えるポッドのクォータを用意することをお勧めします。
  • 単一マシン展開の場合: 少なくとも 8 個のコア/32 GB の RAM/300 GB のハード ドライブ容量を用意することをお勧めします。

ここではHelmを使用してSREWorksをインストールします。

Ingress経由でアクセスする

SREWorks をデプロイするには、Ingress ドメイン名を指定する必要があります。Alibaba Cloud ACK クラスターのドメイン名は「基本情報」セクションに記載されています(例:http://*.ceea604.cn-huhehaote.alicontainer.com)。* 部分はユーザーが入力できます(例:http://sreworks.c34a60e3c93854680b590b0d5a190310a.cn-zhangjiakou.alicontainer.com)。インストール時に appmanager.home.url パラメータを渡す必要があります。

まず、SREWorks コードをローカル マシンにダウンロードします。

 $ git clone http://github.com/alibaba/sreworks.git -b v1.2 sreworks
$ cd sreworks / チャート/ sreworks - チャート

次に、次のコマンドを使用してワンクリックでインストールします。

 #SREWorks をインストールする
$ helm アップグレード--install sreworks . / \
--kubeconfig = " ****" \
-- 作成- 名前空間-- 名前空間sreworks \
-- appmanager.home.url "https://your-website.***.com" 設定します\
-- グローバルを設定します。storageClass = "alicloud-disk-available" \
-- appmanagerbase.openebs.enabled false 設定します

NodePort経由のアクセス

クラウドプロバイダーから仮想マシンを購入し、NodePortモードで実行する場合、アクセス先のノード(NODE_IP)のネットワークセキュリティグループまたはファイアウォールに注意することが重要です。このポート(30767)へのパブリックネットワークアクセスの開放が制限されている場合があります。

まず、SREWorks コードをローカル マシンにダウンロードします。

 $ git clone http://github.com/alibaba/sreworks.git -b v1.2 sreworks
$ cd sreworks / チャート/ sreworks - チャート

次に、NODE_IP を特定のノードの IP アドレスに置き換えて、次のコマンドを使用して sreworks をインストールします。

 $ helm アップグレード --install sreworks ./\
--kubeconfig="****" \
--create-namespace --namespace sreworks \
--set global.accessMode="nodePort" \
--set appmanager.home.url="http://NODE_IP:30767"

注: デフォルトのストレージクラス sreworks-hostpath は OpenEBS の LocalPV ソリューションを使用して実装されており、開発環境およびテスト環境でのみ使用できます。本番環境で使用する必要がある場合は、GlusterFS や Ceph などの分散ストレージ、またはクラウドサービスのブロックストレージなど、Kubernetes の要件を満たす永続ストレージを使用することをお勧めします。

Kubesphere 単一マシンの迅速な導入

  • Kubesphere オールインワン クラスターのデプロイメント リファレンスについては、https://kubesphere.io/zh/docs/quick-start/all-in-one-on-linux/ を参照してください。
  • デジタル バージョンでは、1 台のマシンに展開する場合、最低 8 個のコア、32 GB の RAM、および 300 GB のハード ドライブ容量が必要です。
 #kkツールをダウンロードしてインストールする
curl - sfL https://get-kk.kubesphere.io | バージョン=v2.0.0 sh -
# kk ツールを使用して Kubernetes クラスターをデプロイする
./kk クラスターを作成-- kubernetes v1 .21 .5 使用-- kubesphere v3 .2 .1 ​ を使用
#SREWorksをローカルマシンにダウンロードする
git クローンhttp://github.com/alibaba/sreworks.git -b v1.2 sreworks
cd sreworks / チャート/ sreworks - チャート
#SREWorks をインストールする
# NODE_IP を、特定のノードのブラウザでアクセス可能な IP アドレスに置き換えます。
helm アップグレード--install sreworks . / \
-- 作成- 名前空間-- 名前空間sreworks \
-- グローバルを設定します。accessMode = "nodePort" \
-- appmanager.home.url "http://NODE_IP:30767" 設定します\
-- グローバルを設定します。storageClass = "local" \
-- appmanagerbase.openebs.enabled false 設定します

インストールを確認する

前の手順で取得したドメイン名またはIPアドレスをブラウザに入力してください。ページが表示されればインストールは完了です(約5分かかります)。SREWorksを登録して使い始めましょう。デフォルトのユーザー名はadmin、デフォルトのパスワードは12345678です。

アンインストール

必ず以下の順序に従ってください。そうしないと、さまざまな CRD がダーティ データとなり、クラスター内に残ってしまう可能性があります。

 $ helm アンインストールsreworks - nsreworks
$ kubectl 名前空間sreworks を削除します

練習する

次に、SREWorks で、Flink クラウド ネイティブ アプリケーション定義をゼロから構築し、Flink アプリケーションをマーケットプレイスに公開し、Flink アプリケーションをデプロイする完全なプロセスを提供します。

1. 新しいFlinkアプリケーションを作成する

SREWorks にログイン後、「配信/アプリケーション管理 - アプリケーション開発」ページに移動し、「クラウドネイティブアプリケーションの作成」をクリックし、表示されるフォームに Flink アプリケーション定義の関連情報を入力し、Flink アプリケーションテンプレートの定義を完了します。

アプリケーション開発テンプレート リストで、アプリケーション定義名をクリックして、アプリケーション開発ページに入ります。

2. Flinkアプリケーションコンポーネントを追加する

Flink アプリケーション テンプレートを入力した後、アプリケーション コンポーネントに「Helm」コンポーネント タイプを追加し、Flink から VVP コンポーネントを追加します。

3. Flinkアプリケーションの構築

コンポーネントを追加したら、「アプリケーションビルド」ページでワンクリックビルドを実行できます。現在のワンクリックビルドでは、バージョンが自動的に計算されます。ビルドタスクを作成すると、送信したビルドタスクがビルドリストに表示されます。

ビルドが完了すると、ビルドリストにアプリケーションとコンポーネントの現在のビルドステータスが表示されます。また、ワンクリックでアプリケーションをテスト用にデプロイし、マーケットプレイスに公開することもできます。

4. Flinkアプリケーションのテストとデプロイメント

アプリケーションテストインスタンスは複数のデプロイメントをサポートし、「アプリケーション名-UID」のルールに従って、グローバルに一意のインスタンス名を自動的に生成します。インスタンスは同じ名前空間にデプロイされます。

ユーザーはアプリケーションを自分でテストできます。テストに合格すると、ワンクリックでアプリケーションのバージョンを市場に公開できます。

5. Flinkアプリケーションのリリースとリスト

ビルド リストで「マーケットプレイスにリストする」操作を指定すると、アプリケーションがマーケットプレイスに公開されます。

6. Flinkアプリケーションのデプロイメント

マーケットプレイスでは、ワンクリックでデプロイするアプリケーションを指定でき、最新バージョンのアプリケーションがデフォルトでデプロイされます。

7. Flinkアプリケーションインスタンス管理

アプリケーション インスタンス リストには、現在 prod にデプロイされているエンタープライズ アプリケーションの運用インスタンスが表示され、アップグレード、ロールバック、およびアンインストールの操作が提供されます。

Git リポジトリ: https://github.com/alibaba/SREWorks。