スキップしてメインコンテンツへ
キャリアで成功 (THRIVE) を。 今なら10%オフ! スタンダードおよびプレミアムのTHRIVE-ONEサブスクリプション

クラウドコンピューティングの展望

2020年1月8日#!31金、263月2021 13:52:51 +0000Z51311311311311311311312021 13:52:51 +0000Z-1 +00:003131 +00:00X31 26 PM31PM-31 52:51 +0000Z1 +00:003131 +00:00X312021 #!31金, 26 3月 2021 13:52:51 +0000Z5131#/31金, 26 3月 2021 13:52:51 +0000Z-1+00:003131+00:00x31#! 31金、26 3月 2021 13:52:51 +0000Z+00:003#お知らせ

クラウドコンピューティングに関する初期の投稿の多くは、多くの新しい用語と概念を導入しました。クラウドテクノロジーが登場したとき、これらを経営陣だけで把握することは困難でした。また、従来のデータセンターでしか働いていなかった人たちは、ネットワークの専門家または仮想化管理者でした。 DevOpsチームは一緒に成功または失敗するため、すべてのメンバーが新しい用語および概念について同じ把握を共有することが重要です。  

今日のコンピューティングの世界では、誰もが意思決定者です(または、少なくともそうすべきです)。最初にさまざまなITプロフェッショナルの観点からクラウドコンピューティングを見てから、DevOpsパイプラインを通過して、さまざまなクラウドの考慮事項を検討します。

2020年の初めに、後知恵を活用して過去10年間を振り返り、すべてのITプロフェッショナルが熟知しているべきクラウドコンピューティングのさまざまな側面を特定することができます。このブログ投稿の目的は、今日成功するためにさまざまなクラウドテクノロジーの必要性を強調することです。  

私たちの最初の考慮事項は、人々とクラウドコンピューティングが責任をどのように変えたかです。 

開発者

サーバー上のモノリシックアプリケーションの展開から、自動化された方法で一部の分散クラウド環境にプロビジョニングされるマイクロサービスへの移行に対応するために、開発環境が変更されました。歴史的には、テスト用のサンドボックス環境を作成し、ハードウェアに至る展開のすべての段階(開発、テスト、ステージング、および運用)で同一の条件を作成するために多大な努力をしてきました。ほとんどの場合、開発者はコンテナをサポートする任意のプラットフォームでテストできるようになりました(MacまたはWindowsのDockerデスクトップと同じくらい簡単かもしれません)。壁を越えてコードを投げる必要はもうありません。開発者は最後までそれを確認し、専任チームと協力して成功を保証できます。 

オペレーションプロフェッショナル

また、運用の専門家が管理およびエンジニアリングのスキルを強化して、DevOpsの動向を把握するためのスクリプトとプログラミングを含めることも確認しています。コードを展開する環境を可能な限り予測可能にするために、自動化が必要です。環境を立ち上げるために手動で1回限りのタスクを実行する管理者やエンジニアの時代は終わりました。バージョン管理から製品リリースまでのパイプラインを完成させるにつれて、オーケストレーションが標準になりました。 

複雑な環境は、CI / CD(Continuous Integration and Delivery)ツール(後述)またはKubernetes Helmチャート(Kubernetesクラスター設定のすべてを含むファイル)を使用して非常に簡単に複製できます。あらゆる種類の新しい要件が運用面に反映されました。これらには、cgroupの制限、名前空間の定義、バージョン管理、自動化スクリプトの追加、複数のディストリビューションの広範なパッケージ管理、ネットワークの理解の向上、ソフトウェアのコンパイルが含まれます。 

ネットワークエンジニア

クラウドインスタンスの増加に伴い、これらのシステムを接続する必要も生じました。ネットワークトラフィックをコントロールプレーン(ルーティング/ネットワーク情報)とデータプレーン(ペイロード/アプリケーショントラフィック)に分離することにより、ソフトウェアネットワーキングデバイスを介してネットワークを定義できるようになりました。これらのソフトウェアスイッチはハードウェアスイッチで実行されますが、多くのネットワークプロフェッショナルの日常生活に導入されているプログラミングの要素があります。

ほとんどの主要なハードウェアメーカーのデバイスでのOpenFlowの互換性は、オーケストレーションの取り組みで多くのネットワークエンジニアを包み込みました。ほぼ普遍的に、ネットワーキングにはPython(ほとんどのネットワークデバイスでネイティブに実行されるため)とAnsible(Pythonを使用し、ターゲットシステム/デバイスにエージェントを必要としないため)の基本的な理解も含まれることが期待されています。 

プロジェクトマネージャー

ソフトウェアを開発するほとんどの組織には、プロジェクトマネージャー(PM)の代わりにSCRUMマスターがいます。プロジェクトマネージャーは、SCRUMチームに参加し、チームとその取り組みを利害関係者に表しています。説明責任は毎日のイベントになり、チームメンバーはすべての機能を確認してテストできるようにソフトウェアをバージョンアップするため、失敗と成功を等しく祝います。過去には、PMはプロジェクトのマイルストーンに間に合うようにタスクを完了できなかったことを誰かのせいにする可能性がありましたが、今では文化が完全に変わりました。 SCRUMマスターは、ツールを使用して、依存タスクのある大きなマイルストーンのガントチャート(プロジェクトスケジューリングに使用)ではなく、SCRUM関連のアクティビティを管理します。 

利用者 

サービスの可用性とダウンタイムの欠如は、クラウドシステム上に構築されたアプリケーションを使用することを選択する最大の利点です。多くの消費者にとって、これらは重要な考慮事項ではないかもしれませんが、組織にとっては、サービスの可用性を確保することが不可欠です。 SCRUMチームは、ユーザーエクスペリエンスがどのようなものになるかを予測し、「ユーザーストーリー」として知られているこの予測からすべての努力の基礎を築くために非常に懸命に取り組んでいます。 

2番目の考慮事項は、最新のより新しいフレームワークで正常に機能するために習得する必要がある重要なツールです。

バージョン管理

バージョン管理が採用されると、適切なアクセス制御を使用して組織全体でコードが利用可能になるだけでなく、すべての変更が記録され、アクセス可能になります。クラウドでホストされるバージョン管理の前に、数千時間の作業とコードが失われました(コメント行としてプロジェクトに埋もれたか、完全に削除されました)。プログラマがすべての作業をラップトップでのみ行うことは珍しくありませんでした。彼らが去ったならば、彼らのコードもそうしました。現在サービスを契約しているプログラマーは、一般的なバージョン管理システムを使用できる必要があります。一般的なルールとして、バージョン管理を通じて共有されない限り、アーカイブ(zip、tarなど)ファイルまたは任意の形式のコードを成果物として受け入れないでください。 

継続的インテグレーション(CI)

パイプラインの最初のステップは、バージョン管理されたソースコードリポジトリ内のコードのすべてのバージョンを使用して予備テストを実行する「ビルドサーバー」です。これにより、コードが他の開発者から送信されたコードに悪影響を与えないことが保証されます。回帰テストでは、後続の各ビルドで実行されるテストが追加されます。機能が増えるほど、テストが増えます。以前は、このような品質保証(QA)対策は、ソフトウェアが渡された後に行われたため配信が遅延し、問題が検出された場合にのみ返送されました。 CIでは、コードはすべてのテストに合格した場合にのみ進行します。 

継続的デリバリー(CD)

ソフトウェアが構築され、すべての自動テストが成功すると、コードはユーザー受け入れテスト(UAT)で利用可能になります。 CDの中心は自動化です。 CDソリューションが提供する主な機能は次のとおりです。 

  • 可視性:チームの全員がシステム全体を確認して共同作業できます。 
  • フィードバック:チームメンバー全員に問題があればすぐに通知されます。 
  • 継続的な展開:任意のバージョンのソフトウェアを任意の環境に展開できます。 

CDは、オーケストレーションツール(Chef、Puppet、SaltStack、Ansibleなど)を使用して、新しいソフトウェアを実行する環境を展開します。 

CIとCDは通常、TravisやJenkinsなどの同じソフトウェアによって提供されます。一部のバージョン管理システムには、組み込みのCI / CDツールがあります。 

クラウドの種類

ソフトウェアソリューションは、5種類のクラウドプラットフォームのいずれかに展開されます。 

  • 敷地内に: これらは、組織のホストシステムです。 
  • コロケーション: 組織にとって何も管理されていません。組織は、独自のハードウェアを他の誰かの制御された環境に配置します。ホストは、物理的なセキュリティ、電力、および温度制御を提供します。
  • サービスとしてのインフラストラクチャ(IAAS):これには、ハードウェア(サーバー、ストレージ、 
  • ネットワークデバイス)またはそれらの仮想同等物。組織では何も管理されていませんが、他の誰かによって管理されている制御された環境にあります。
  • サービスとしてのプラットフォーム(PAAS):ハードウェア(サーバー、ストレージ、ネットワークデバイス)は、制御された環境の誰かが管理しています。オペレーティングシステムと環境ソフトウェア(ミドルウェアやランタイムなど)もホストから提供されます。
  • サービスとしてのソフトウェア(SAAS):これは、ホストされたサービス用です。すべてはソフトウェアベンダーによって提供されます。選択されるクラウドソリューションは、エンドユーザーにサービスを正常に提供するためにどの程度の制御が必要かによって異なります。 

マイクロサービス

クラウドコンピューティングの最大のメリットは、まずアプリケーションを小さなサービスに分割し、それらが連携して1つの大きなサービスを構成することなしには実現できません。そのような変換が必要な場合(既存のアプリケーションからマイクロサービスのアプリケーションへ)、開発と運用を再度まとめて、それらのマイクロサービスを提供するコンテナー(またはポッド)を作成する必要があります。 

結論

ITの目標を議論するとき、組織のオーバーヘッドを削減することは繰り返されるテーマです。よく計画されたクラウド戦略では、使用される実際のリソースにコストを制限することは、単に可能であるだけでなく、予想されます。このため、組織が今日成功するためには、クラウドテクノロジーの基本的な理解が必要です。すべての利害関係者とIT専門家は、すべてではないにしても、ソフトウェア配信パイプラインのいくつかのポイントで意思決定者であるため、クラウド関連の決定に関与する必要があります。 10年後にはすべてが変化する可能性がありますが、今のところ、クラウドを採用するのは、まだ行われていない場合は長い間待望されています。

カールクリンガー、LFインストラクター現在、カールはオクラホマ州立大学工科大学の防衛省サイバーセキュリティコーディネーターであり、Enterprise Linux ProfessionalsのCEOです。 Red Hat認定アーキテクト(RHCA)になり、SE Linuxの専門知識を追加し、多くのFortune 500企業(およびその他の機関)でコンサルティングを行った後、The Linux Foundationのトレーナーになりました。彼の傑出したプロジェクトは、エネルギー、言語、健康、サイバーセキュリティ、旅行に及びます。彼は国際的に生活しており、何よりも家族に新しい体験を提供することを楽しんでいます。
カールはLinux Foundationのクラウド関連のコースを教えています。 Kubernetes Administration (LFS458)、Software Defined Networking Essentials(LFS465)、および Open Source Virtualization (LFS462)。過去15年にわたり、KarlはLinux関連のテクノロジーを学ぶために何千人もの学生を個人的に支援してきました。 「どの方向を向いても、私は常に教育に戻ってきます。私は新しいテクノロジーを探し求め、それを持ち帰って他の人と共有します。これは私の人生における召命です。」–カールクリンジャー

Linux Foundationのトレーニングと認定に関心をお寄せいただきありがとうございます。私たちは、中国のトレーニングサイトからより良いサービスを提供できると考えています。このサイトにアクセスするには、以下をクリックしてください。

Linux Foundationのカルチャに対するフィードバックは、より適切に、中国のカルチャウェブサイトに反映されることを期待しています。