第12章クラウドネイティブアプリケーション開発
12.3 Example PaaS and FaaS Deployments of Cloud-Native Applications12.3 クラウドネイティブアプリケーションのPaaS・FaaS配備の例
• A cloud-native application was created and deployed to a PaaS platform. The cloud-native application consists of two microservices, both of which communicate with a single datastore. The cloud service provider used is Microsoft Azure. Although Microsoft Azure was used in this example, alternatively, other cloud services providers (e.g., AWS, IBM Cloud, GCP) can be used.
• クラウドネイティブアプリケーションを作成し、PaaSプラットフォームに配備した。このアプリケーションは、1つのデータストアと通信する2つのマイクロサービスからなる。使用したクラウドサービス事業者はMicrosoft Azureである。この例ではAzureを使ったが、AWS、IBM Cloud、GCPなど、ほかのクラウドサービス事業者を使うこともできる。
• A suite of tools that monitor Kubernetes clusters and deployed applications was configured and deployed in a PaaS platform. The cloud service provider used is Amazon AWS. Although AWS was used in this example, alternatively, other cloud services providers (e.g., Microsoft Azure, IBM Cloud, GCP) can be used.
• Kubernetesクラスターと配備済みアプリケーションを監視するツール一式を設定し、PaaSプラットフォームに配備した。使用したクラウドサービス事業者はAmazon AWSである。この例ではAWSを使ったが、Microsoft Azure、IBM Cloud、GCPなど、ほかのクラウドサービス事業者を使うこともできる。
• A distributed application was created that consists of two FaaS functions, an event bus, and a datastore. The FaaS functions were deployed in a serverless platform. The cloud service provider used is Microsoft Azure. Although Microsoft Azure was used in this example, alternatively, other cloud services providers (e.g., AWS, IBM Cloud, GCP) can be used.
• 2つのFaaS関数、イベントバス、データストアからなる分散アプリケーションを作成した。FaaS関数は、サーバーレスプラットフォームに配備した。使用したクラウドサービス事業者はMicrosoft Azureである。この例ではAzureを使ったが、AWS、IBM Cloud、GCPなど、ほかのクラウドサービス事業者を使うこともできる。
Review Questions確認問題
Exercises 1–5練習問題 1–5
1. In the four key principles of cloud-native development, what architecture should be used? a. monolithic programs b. Model-View-Controller (MVC) c. microservices d. event driven
1. クラウドネイティブ開発の4つの主要原則では、どのアーキテクチャを使うべきか。a. モノリシックなプログラム。b. モデル・ビュー・コントローラー(MVC)。c. マイクロサービス。d. イベント駆動。
2. What is one of the four key principles of cloud-native development? a. Use a monolithic architecture to ensure all business functions are captured in the software. b. Use the waterfall methodology to ensure that the application meets all system requirements prior to initial deployment. c. Use containers to package and isolate microservices for deployment. d. Use languages that will run on both Windows and Linux environments.
2. クラウドネイティブ開発の4つの主要原則の1つは、どれか。a. すべての業務機能をソフトウェアに取り込むために、モノリシックアーキテクチャを使う。b. 最初の配備前にアプリケーションがすべてのシステム要件を満たすよう、ウォーターフォールの方法を使う。c. コンテナーを使って、配備するマイクロサービスをパッケージ化し、分離する。d. WindowsとLinuxの両環境で動く言語を使う。
3. What is the difference between monolithic and microservices architectures? a. In monolithic architectures, capabilities are loosely coupled, while in microservices architectures, components are highly coupled. b. In monolithic architectures, a waterfall software methodology is employed, while microservices are developed in an Agile software methodology. c. Monolithic architectures are the most popular cloud application architecture, while microservices is the most popular desktop application architecture. d. In monolithic architecture, an application is built as a unified unit to perform multiple business functions and is self-contained, while in microservices architecture, the application is broken down into small, independent components or services that perform a single business function.
3. モノリシックアーキテクチャとマイクロサービスアーキテクチャの違いは何か。a. モノリシックでは機能が疎結合であり、マイクロサービスでは構成要素が密結合である。b. モノリシックではウォーターフォールのソフトウェア開発法を使い、マイクロサービスではアジャイルの開発法を使う。c. モノリシックはクラウドアプリケーションで最も一般的な構成であり、マイクロサービスはデスクトップアプリケーションで最も一般的な構成である。d. モノリシックでは、アプリケーションを複数の業務機能を行う一体の単位として構築し、それ自体で完結させる。マイクロサービスでは、単一の業務機能を行う、小さく独立した構成要素やサービスへアプリケーションを分割する。
4. What is the difference between components in monoliths and microservices? a. Components in monoliths are generally libraires that are compiled and linked into a single program or process. Components that are microservices are “out-of-process” components that communicate using a web service request or RPC. b. Components in monoliths are individual classes. Components in microservices are system resources. c. Components in monoliths are small, individual executables all running in the background and the main program can call them. Components in microservices are libraries that the main program compiles and links in at build time. d. Components in monoliths are static libraries and always linked at build time. Components in microservices are dynamic libraries and always linked at runtime.
4. モノリスとマイクロサービスの構成要素の違いは何か。a. モノリスの構成要素は通常ライブラリーであり、コンパイル・リンクして1つのプログラムやプロセスにする。マイクロサービスの構成要素は「プロセス外」の要素で、Webサービス要求やRPCを使って通信する。b. モノリスの構成要素は個々のクラスであり、マイクロサービスの構成要素はシステム資源である。c. モノリスの構成要素は小さな個別の実行可能ファイルで、すべてバックグラウンドで動き、メインプログラムから呼べる。マイクロサービスの構成要素は、メインプログラムがビルド時にコンパイル・リンクするライブラリーである。d. モノリスの構成要素は静的ライブラリーで、常にビルド時にリンクする。マイクロサービスの構成要素は動的ライブラリーで、常に実行時にリンクする。
5. What term is defined as “architectural style for providing standards between resources so they can communicate with each other over the Web”? a. remote procedure call (RPC) b. representational state transfer (REST) c. service-oriented architecture (SOA) d. enterprise service bus (ESB)
5. 「資源同士がWeb経由で通信できるように、それらの間の標準を定めるアーキテクチャの様式」と定義される用語は、どれか。a. 遠隔手続き呼出し(RPC)。b. 表現状態転送(REST)。c. サービス指向アーキテクチャ(SOA)。d. エンタープライズサービスバス(ESB)。
Exercises 6–10練習問題 6–10
6. What is the difference between SOA and microservices?
6. SOAとマイクロサービスの違いは何か。
7. What are some of the features of cloud-native applications?
7. クラウドネイティブアプリケーションには、どのような特徴があるか。
8. What are some of the benefits of cloud-native applications?
8. クラウドネイティブアプリケーションには、どのような利点があるか。
9. What are some of the best practices associated with cloud-native application development?
9. クラウドネイティブアプリケーションの開発では、どのような実践が推奨されるか。
10. What are the various categories of tools used to develop cloud-native applications?
10. クラウドネイティブアプリケーションの開発に使うツールには、どのような分類があるか。
Exercises 11–15練習問題 11–15
11. What is an example of a cloud service model defined by NIST? a. Infrastructure as a Service (IaaS) b. monolithic services c. microservices d. Function as a Service (FaaS)
11. NISTが定義するクラウドサービスモデルの例は、どれか。a. サービスとしてのインフラストラクチャー(IaaS)。b. モノリシックサービス。c. マイクロサービス。d. サービスとしての関数(FaaS)。
12. What is an example of a cloud deployment model defined by NIST? a. household cloud b. private cloud c. business cloud d. AWS cloud
12. NISTが定義するクラウド配置モデルの例は、どれか。a. 家庭用クラウド。b. プライベートクラウド。c. 業務用クラウド。d. AWSクラウド。
13. Which service provides on-demand access to a cloud-hosted platform for developing, running, and managing applications by prepackaging middleware, language runtimes, and tools as containers? a. Infrastructure as a Service (IaaS) b. Platform as a Service (PaaS) c. Software as a Service (SaaS) d. Function as a Service (FaaS)
13. ミドルウェア、言語のランタイム、ツールをあらかじめコンテナーへまとめることで、アプリケーションの開発・実行・管理を行うクラウド上のプラットフォームへ、必要に応じてアクセスできるサービスは、どれか。a. サービスとしてのインフラストラクチャー(IaaS)。b. サービスとしてのプラットフォーム(PaaS)。c. サービスとしてのソフトウェア(SaaS)。d. サービスとしての関数(FaaS)。
14. What is the term for a type of IaaS specifically geared toward efficiently deploying, running, scaling, and managing a single application using a container-based virtualization? a. Containers as a Service (CaaS) b. Backend as a Service (BaaS) c. serverless computing d. cloud mashup
14. コンテナーによる仮想化を使って、1つのアプリケーションを効率的に配備・実行・拡張・管理することに特化した、IaaSの一種を何というか。a. サービスとしてのコンテナー(CaaS)。b. サービスとしてのバックエンド(BaaS)。c. サーバーレスコンピューティング。d. クラウドマッシュアップ。
15. What is high-performance computing? a. a supercomputer with advanced cutting-edge hardware technologies b. a computer with multiple processors c. a program or workload that is compute- and memory-intensive d. a program that incorporates multithreading to carry out parallel computing to run faster
15. 高性能計算とは何か。a. 最先端の高度なハードウェア技術を備えたスーパーコンピューター。b. 複数のプロセッサーを持つコンピューター。c. 大量の計算とメモリを必要とするプログラムやワークロード。d. マルチスレッドを組み込み、並列計算によって高速化するプログラム。
Exercises 16–20練習問題 16–20
16. What is the relationship between cloud service models, cloud deployment models, and cloud deployment technologies?
16. クラウドサービスモデル、クラウド配置モデル、クラウド配備技術には、どのような関係があるか。
17. Identify and explain the four IaaS deployment options used currently.
17. 現在使われるIaaSの4つの配備方法を挙げ、説明しなさい。
18. What is the difference between unikernels and VMs?
18. ユニカーネルと仮想マシンの違いは何か。
19. What is the difference between the PaaS and FaaS deployment options?
19. PaaSとFaaSの配備方法の違いは何か。
20. What are the four deployment options that can be used to deploy cloud-native applications?
20. クラウドネイティブアプリケーションの配備に使える、4つの方法は何か。
Exercises 21–25練習問題 21–25
21. What aspects of IaaS, PaaS, and FaaS deployment can be automated and how?
21. IaaS、PaaS、FaaSの配備のどの側面を、どのように自動化できるか。
22. List five categories of tools used to automate cloud deployment?
22. クラウドへの配備を自動化するツールの分類を、5つ挙げなさい。
23. What are some of the DevOps tools used to automate cloud deployment?
23. クラウドへの配備を自動化するDevOpsツールには、どのようなものがあるか。
24. What are the key considerations on how cloud deployment technologies are selected?
24. クラウド配備技術を選ぶときの、重要な検討事項は何か。
25. What are cloud mashups and what specific concerns need to be considered when deploying them?
25. クラウドマッシュアップとは何か。配備するときに、どのような特有の懸念を考慮する必要があるか。
Exercises 26–30練習問題 26–30
26. What is object-relational mapping? a. a container that holds related resources used in a cloud solution b. technique that converts a data object in a programming language to a table in a database c. tools that enable data objects to be plotted on a front-end map for displaying d. a software resource that allows a hashmap to be used to find what microservice contains what function calls.
26. オブジェクト関係マッピングとは何か。a. クラウドのソリューションで使う、関連資源をまとめて保持する容器。b. プログラミング言語内のデータオブジェクトを、データベースの表へ変換する技法。c. データオブジェクトを、表示用のフロントエンドの地図にプロットできるようにするツール。d. ハッシュマップを使って、どのマイクロサービスがどの関数呼出しを含むか探せるようにする、ソフトウェア資源。
27. If the microservices already have a hostname and port, then why are ingress controllers needed? a. The ingress controllers are what exposes the microservice to the outside world so it can receive requests from clients. b. The ingress controllers are responsible for reporting system health and reports what microservices are up and running. c. The ingress controllers are responsible for ensuring clients call the correct microservices. d. The ingress controllers are what carries out the data transmission in and out of the microservices.
27. マイクロサービスにすでにホスト名とポートがあるなら、なぜIngressコントローラーが必要なのか。a. Ingressコントローラーがマイクロサービスを外部へ公開し、クライアントから要求を受けられるようにするから。b. Ingressコントローラーはシステムの健全性を報告し、どのマイクロサービスが稼働中かを報告する役割を担うから。c. Ingressコントローラーは、クライアントが正しいマイクロサービスを呼ぶようにする責任を担うから。d. Ingressコントローラーが、マイクロサービスに出入りするデータの転送を行うから。
28. What is the AWS Portal? a. Amazon cloud computing platform that offers a wide range of services that allow customers to build, deploy, and manage applications and services in the cloud b. an open-source package management system used to install and manage packages on MacOS and Linux operating systems c. a command-line interface used to manage Amazon cloud services d. a web-based console that allows customers to manage their cloud services and subscriptions
28. AWS Portalとは何か。a. 顧客がクラウドでアプリケーションやサービスを構築・配備・管理できる、多様なサービスを提供するAmazonのクラウドコンピューティングプラットフォーム。b. macOSとLinuxでパッケージをインストール・管理する、オープンソースのパッケージ管理システム。c. Amazonのクラウドサービスを管理する、コマンドラインインターフェース。d. 顧客がクラウドサービスとサブスクリプションを管理できる、Webベースのコンソール。
29. What is Kubectl and what is it used for? a. It is a command-line interface tool. It is used to interact with a Kubernetes cluster. b. It is an open-source package management system used to install and manage packages on MacOS and Linux operating systems. c. It is a basic dashboard highlighting exposed application metrics. d. It is an open-source web interface for Kubernetes that is used to inspect Kubernetes clusters and applications deployed in them.
29. Kubectlとは何か。何に使うか。a. コマンドラインインターフェースのツールであり、Kubernetesクラスターとやり取りするために使う。b. macOSとLinuxでパッケージをインストール・管理する、オープンソースのパッケージ管理システムである。c. 公開されたアプリケーションの指標を目立つ形で示す、基本的なダッシュボードである。d. Kubernetesクラスターと、そこへ配備されたアプリケーションを調べるための、Kubernetes用のオープンソースのWebインターフェースである。
30. What application is a tool used to generate containers? a. Homebrew b. Octant c. Docker Engine d. Function App
30. コンテナーを生成するツールとなるアプリケーションは、どれか。a. Homebrew。b. Octant。c. Docker Engine。d. Function App。