プリンキピア

第12章クラウドネイティブアプリケーション開発

Exercises 31–33練習問題 31–33
31. What kind of information does the Kuard application provide?
31. Kuardアプリケーションは、どのような情報を提供するか。
32. In the FaaS example that we built, what is the role of the event bus? Why did we need to create this?
32. ここで作ったFaaSの例では、イベントバスはどのような役割を果たすか。なぜ作る必要があったのか。
33. What does the application map do?
33. アプリケーションマップは何をするか。

Conceptual Questions概念を考える問題

1. Why is it difficult to efficiently allocate resource services in a cloud-native application?
1. クラウドネイティブアプリケーションで、資源のサービスを効率的に割り当てるのは、なぜ難しいのか。
2. Why is the microservices architecture more adaptable to a cloud architecture?
2. マイクロサービスアーキテクチャが、クラウドのアーキテクチャへ、より適応しやすいのはなぜか。
3. Why is it the case that cloud deployment technologies keep evolving? Provide examples to illustrate your answer.
3. クラウド配備技術が進化し続けるのはなぜか。答えを裏付ける例を挙げなさい。
4. What is the difference between BaaS and FaaS? Are FaaS and serverless equivalent in a BaaS context?
4. BaaSとFaaSの違いは何か。BaaSの文脈では、FaaSとサーバーレスは同等なのか。
5. In the first sample cloud-native application we built, a Dockerfile and a Kubernetes manifest file were created for each microservice. Why do we need both files in this application? Which one is used for what purpose?
5. 最初に作ったクラウドネイティブアプリケーションの例では、各マイクロサービスに対してDockerfileとKubernetesのマニフェストファイルを作った。このアプリケーションで両方が必要なのはなぜか。それぞれ、何の目的で使うのか。
6. Focusing our attention on the Kubernetes manifest files, there are two for each microservice: a deployment manifest file and a service manifest file. What are the differences between these two types of manifest files? What are they used for?
6. Kubernetesのマニフェストファイルに注目すると、各マイクロサービスには、DeploymentマニフェストとServiceマニフェストの2つがある。この2種類のマニフェストファイルは、どう異なるか。それぞれ何に使うか。
7. In the second example, an AWS EC2 Instance VM was provisioned. Several steps were taken to install package management tools (e.g., Homebrew, build-essentials), the Docker engine, and any other dependencies needed for the application to run. Why did we need to take these steps?
7. 2つ目の例では、AWS EC2インスタンスの仮想マシンを用意した。パッケージ管理ツール(Homebrew、build-essentialsなど)、Dockerエンジン、アプリケーションの実行に必要なその他の依存関係をインストールするため、いくつもの手順を踏んだ。これらの手順が必要だったのはなぜか。
8. In the third example, we built two FaaS functions that were deployed that make up a cloud-native application. Contrast this to the first example we built, where we built microservices that were also deployed in Azure. Although the cloud service providers provide editors in the portal to implement and deploy FaaS functions directly within the portal, in this case we used a build tool, maven, to build the code for the FaaS functions and deploy them remotely. Why is this not the same as the first example? What are the major differences between these two approaches where the first example is using the PaaS deployment option, and the third example is using the FaaS deployment option?
8. 3つ目の例では、クラウドネイティブアプリケーションを構成する2つのFaaS関数を作成して配備した。マイクロサービスを作成し、同じくAzureへ配備した最初の例と比べなさい。クラウドサービス事業者は、ポータル内で直接FaaS関数を実装・配備できるエディターを提供している。しかし今回は、ビルドツールmavenを使ってFaaS関数のコードをビルドし、遠隔から配備した。これは、最初の例と同じではないのはなぜか。最初の例はPaaS、3つ目の例はFaaSの配備方法を使っているが、この2つの手法の主な違いは何か。

Practice Exercises練習問題

Exercises 1–5練習問題 1–5
1. Explain how a web-based cloud-native application works as opposed to a traditional web application.
1. Webベースのクラウドネイティブアプリケーションが、従来のWebアプリケーションと比べて、どのように動くか説明しなさい。
2. Give a practical example of a solution implementation that illustrates the differences between SOA and microservices.
2. SOAとマイクロサービスの違いがわかる、ソリューション実装の実例を挙げなさい。
3. Explain how CI/CD works in combination with other DevOps tools to support the development of cloud-native applications.
3. CI/CDがほかのDevOpsツールと連携し、クラウドネイティブアプリケーションの開発をどう支えるか説明しなさい。
4. Explain how CaaS deployment works.
4. CaaSによる配備が、どのように行われるか説明しなさい。
5. Give a practical example of a solution deployment that illustrates the differences between PaaS and FaaS/ serverless.
5. PaaSとFaaS/サーバーレスの違いがわかる、ソリューション配備の実例を挙げなさい。
Exercises 6–10練習問題 6–10
6. Explain how CI/CD works in combination with other DevOps tools to support the deployment of cloud-native applications using either Containers/CaaS, PaaS, or FaaS.
6. CI/CDがほかのDevOpsツールと連携し、コンテナー/CaaS、PaaS、FaaSのいずれかによる、クラウドネイティブアプリケーションの配備をどう支えるか説明しなさい。
7. FaaS/serverless is considered to be a deployment technology; however, because it appears that code needs to be written in a different way to specify services as functions, why is FaaS/serverless not considered as a separate architectural style?
7. FaaS/サーバーレスは、配備技術とみなされている。しかし、サービスを関数として指定するには、異なる方法でコードを書く必要があるように見える。それにもかかわらず、FaaS/サーバーレスを独立したアーキテクチャの様式とみなさないのはなぜか。
9. Follow the Google Cloud tutorial to build serverless function (https://openstax.org/r/76bldservfunc) in Google Cloud.
9. Google Cloudのチュートリアルに従い、Google Cloudでサーバーレス関数を構築しなさい(https://openstax.org/r/76bldservfunc)。
10. Follow the Google Cloud tutorial to build a containerized application (https://openstax.org/r/ 76bldcontapp) that receives events using a messaging service.
10. Google Cloudのチュートリアルに従い、メッセージングサービスでイベントを受け取る、コンテナー化されたアプリケーションを構築しなさい(https://openstax.org/r/ 76bldcontapp)。

Problem Set A問題集A

Exercises 1–5練習問題 1–5
1. Read this seminal article about microservices (https://openstax.org/r/76artmicroserv) and report on the pros and cons based on its content.
1. マイクロサービスに関する先駆的な記事(https://openstax.org/r/76artmicroserv)を読み、その内容に基づいて長所と短所を報告しなさい。
2. Demonstrate how the twelve-factor application principles (https://openstax.org/r/7612factapp) may be used to develop cloud-native applications.
2. 12の要素からなるアプリケーションの原則(https://openstax.org/r/7612factapp)を、クラウドネイティブアプリケーションの開発にどう使えるか示しなさい。
3. Read this article about serverless architectures (https://openstax.org/r/76artservnoarc) and report on the pros and cons of FaaS/serverless based on its content.
3. サーバーレスアーキテクチャに関する記事(https://openstax.org/r/76artservnoarc)を読み、その内容に基づいて、FaaS/サーバーレスの長所と短所を報告しなさい。
4. Read this article documenting several use cases for FaaS/serverless deployment (https://openstax.org/r/ 76artdocFaaS) and think about when to use it. Perform some research on the Internet and provide additional use cases that make a case for selecting FaaS/serverless deployment technology as opposed to Containers/CaaS or PaaS.
4. FaaS/サーバーレスによる配備のユースケースをいくつか紹介する記事(https://openstax.org/r/ 76artdocFaaS)を読み、いつ使うべきか考えなさい。インターネットで調べ、コンテナー/CaaSやPaaSより、FaaS/サーバーレスの配備技術を選ぶ理由になる、追加のユースケースを挙げなさい。
5. In the first example we built, you worked with Kubernetes, which required you to create deployment and service manifest files. These manifest files are YAML files. Read the IBM tutorial (https://openstax.org/r/ 76IBMtut) to enhance your knowledge on the structure of YAML files.
5. 最初の例ではKubernetesを使い、DeploymentとServiceのマニフェストファイルを作る必要があった。これらのマニフェストはYAMLファイルである。IBMのチュートリアル(https://openstax.org/r/ 76IBMtut)を読み、YAMLファイルの構造の理解を深めなさい。
Exercises 6練習問題 6
6. Follow this IBM tutorial (https://openstax.org/r/76tut1kuber) or this IBM tutorial (https://openstax.org/r/ 76tut2kuber) or to create and deploy an application in Kubernetes.
6. IBMのチュートリアル(https://openstax.org/r/76tut1kuber)、またはもう1つのIBMのチュートリアル(https://openstax.org/r/ 76tut2kuber)に従い、Kubernetesでアプリケーションを作成し、配備しなさい。