システム包括的な実践の最初の仕事のブログ
コース認定
このコースへの最初の接触、このコースの最初の理解は、推奨されるオペレーティングシステムを実践的に実装するための実践的なコースである必要があります。このコースの目的は明確ではありませんが、このコースを学ぶことで完全な専門知識が得られ、将来の勉強や仕事の基礎が築けることを願っています。
マイクロサービスについて
1.マイクロサービスとは
マイクロサービスはソフトウェアアーキテクチャです。単一の責任と機能に焦点を当てた小さな機能ブロックに基づいています。モジュール式のアプローチを使用して、複雑な大規模アプリケーションを組み合わせます。各機能ブロックは、言語に依存しないAPIを使用します。マスコミュニケーション。
2.マイクロサービスの特徴
単一の責任
各マイクロサービスは単一の責任の原則を満たす必要があります。マイクロサービスはまとまりがあるため、通常、マイクロサービスは比較的小規模です。
自律性
マイクロサービスは独立したエンティティであり、独立してデプロイ、アップグレードでき、サービスはRESTなどの標準インターフェースを介して相互に通信でき、マイクロサービスインスタンスは別の実装に置き換えることができます。マイクロサービスは影響を与えません。
3.長所と短所
アドバンテージ
明確なロジック
明確なビジネスのみを担当するマイクロサービスは、複雑なシステムよりも論理的に理解しやすいです。
簡素化された展開
従来のソフトウェアアーキテクチャでは、コードの1行が変更されている限り、システム全体を再構築およびテストしてから、システム全体を展開する必要があります。マイクロサービスはマイクロサービスをデプロイできます。
システムビジネスの成長に対応するスケーラブルな方法では、通常、水平方向または垂直方向を使用して拡張します。分散システムは通常、水平方向に拡張されます。さまざまな機能がさまざまな負荷の変化に直面するため、マイクロサービスを使用するシステムは、従来のソフトウェアアーキテクチャよりも優れたスケーラビリティを備えています。
柔軟な構成
マイクロサービスアーキテクチャでは、既存のマイクロサービスを組み合わせることで、機能の再利用の目的を達成できます。
異種テクノロジー
マイクロサービス間の疎結合のため、マイクロサービスごとに開発用に異なるテクノロジースタックを選択できます。
高信頼性の
マイクロサービスが独立してデプロイされます。1つのマイクロサービスの異常が他のマイクロサービスの異常を同時に引き起こすことはありません。分離とフュージョンのテクノロジーにより回避でき、マイクロサービスの信頼性が大幅に向上します。
短所
非常に複雑なマイクロサービスは
、REST、RPC、その他のフォームを介して相互作用します。モノリシックモードのAPIフォームと比較して、呼び出し先の障害、過負荷、情報の損失などのさまざまな異常状態を考慮する必要があり、コードロジックはより複雑です。
複雑な運用と保守
マイクロサービスアーキテクチャを採用する場合、システムは複数の独立して実行されるマイクロサービスで構成され、各マイクロサービスの実行ステータスを監視するには、適切に設計された監視システムが必要です。運用および保守担当者は、システムをより適切に運用および保守できるように、システムを詳細に理解する必要があります。
性能に影響
に対するモノリシックアーキテクチャとを、REST、RPC通信遅延の他の形態によるマイクロ間のサービスの相互作用が大きく影響することになります。
4.導入方法
ホストに基づくマルチサービスインスタンス(物理または仮想)
このモードでは、ソフトウェア開発者は、各ホストで複数のサービスインスタンスを実行しながら、単一または複数の物理マシンまたは仮想マシンを提供できます。
ホストベースの(物理または仮想マシン)サービスインスタンス
このようなマイクロサービスをデプロイして、対応するホストで各インスタンスを個別に実行できます。
コンテナベースのサービスインスタンス
この展開モードでは、各サービスインスタンスは独自のコンテナーで実行されるため、オペレーティングシステムレベルの仮想化メカニズムとも呼ばれます。
DOCKERテクノロジーの学習
Dockerには3つの主要な要素があります
- ミラー:ルートファイルシステムと同等の読み取り専用テンプレートを提供する
- コンテナ:画像のインスタンス化に相当
- 倉庫:倉庫は、画像を保存するためのコード管理センターと見なすことができます。
Dockerは軽くて高速です。ハイパーバイザーに基づく仮想マシンに代わる、実行可能で経済的かつ効率的な代替手段を提供するため、少ないリソースでより多くのことを実行できます。Dockerはコンテナ化されたデプロイメントを実装します。これは、マイクロサービスの特性と一致しています。
練習内容
docker(コミュニティバージョン)インストールコマンド(オペレーティングシステム:ubuntu ubuntuはコマンドの前に「sudo」を追加する必要があります)
aptパッケージインデックスを更新します。 $ sudo apt-get update
公式のGPGキーを追加:$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
dockerをインストール:$ sudo apt-get install docker-ce docker-ce-cli containerd.io
Dockerは既存のイメージを表示します。$ sudo docker images
コンテナーを作成して開始します:$ sudo docker run -(pram) [image] [command]
パラメーター
- -t:端末
- -i:インタラクティブな操作
- -d:コンテナの動作モードを指定します
作成されたコンテナを表示します。$ sudo docker ps -a
イメージを削除します:($ docker rmi hello-world
ここでエラーが発生しました。このエラーの理由は、現時点でこのイメージで実行されているコンテナーがまだあるためです)
*エラーのため、最初に現在のコンテナを削除しました。
すべてのコマンドを削除します。$ sudo docker container prune
ミラーを削除します。$ sudo docker rmi [image]
コンテナのコピーを送信:$ docker commit -m="with wget" -a="yuki820" 7320a97a80ae yuki/ubuntu:v
パラメータ
- -m:送信された情報
- -a:作者のミラー
- 7320a97a80ae:コンテナID
- yuki / ubuntu:v:作成するターゲットコンテナー名を指定します
画像をdockhubにアップロードします(最初にログイン):$ sudo docker push yuki/ubuntu:v
ここで別のエラーが発生しました:ターゲットコンテナー名はスラッシュの前のユーザー名でなければなりません。私のdockerhubユーザー名はyuki820なので、画像のアップロードエラーは拒否されました
作成した画像ファイルの名前を変更します。$ sudo docker tag [oldname] [newname]
まとめ
Dockerは、今日のバックエンド開発者にとってなくてはならない知識である必要があります。この演習の後、最初にdockerの主な機能と基本的な操作を学びました。軽量なアプリケーションコンテナーエンジンであるdockerは、アプリケーションの展開とテストに非常に便利な統合環境を提供します。現在、人気のあるエンジンであり、開発者によって広く使用されています。使用。今後、Dockerの実用化を実践することでDockerの理解を深めていきたいと思います。