プリンキピア

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

Cloud Deployment Technology Implementationクラウド配置技術の実装
There are several tools cloud customers must consider when implementing services using the cloud deployment technologies discussed earlier. Cloud customers who adopt automation will increase deployment speeds while lowering costs. With the growth of cloud environments, customers must manage increasingly complex environments. There are several tools that can be used to automate tasks, such as server provisioning and configuration management. Automating these tasks improves the efficiency of DevOps teams and speeds up the deployment of services because they reduce the volume of manual tasks required to manage cloud resources and infrastructure. Tasks that must be automated in the case of each cloud deployment technology include the IaaS tasks of orchestration and provisioning, PaaS tasks include source code management and CI/ CD pipelines, and FaaS/serverless tasks include orchestrating the deployment of functions and their dependencies.
英語のヒント
これまでに述べたクラウド配置技術を使ってサービスを実装するとき、顧客が検討すべきツールはいくつもある。自動化を採用すれば、費用を下げながら、配置の速度を高められる。クラウド環境の拡大に伴い、顧客は、ますます複雑になる環境を管理しなければならない。サーバーの準備や構成管理といった作業には、自動化できるツールがいくつもある。これらの作業を自動化すると、クラウドの資源と基盤を管理するための手作業が減るため、DevOpsチームの効率が高まり、サービスの配置も速くなる。各クラウド配置技術で自動化すべき作業には、IaaSではオーケストレーションと資源の準備、PaaSではソースコード管理とCI/CDパイプライン、FaaS/サーバーレスでは関数と依存要素の配置のオーケストレーションがある。
Automation tools help customers reduce operational costs and minimize errors. Automation tools can be used to configure and install containers, VMs, or other systems; provision and deprovision resources for auto-scaling; and allocate resources to optimize workload performance. There are several tools that are available to assist with automation of development, delivery, and management of applications, workloads, and infrastructure. Tools such as Ansible, Pulumi, or Terraform can help with automating orchestration. Tools such as Ansible, Chef, Puppet, or Salt can help with automating configuration management. Tools such as BitBucket, GitHub, or GitLab can help with automating source control management. Tools such as Broccoli, CircleCI, Codeship, or Maven can help with automating builds. Tools such as Bamboo, CircleCI, Codeship, and Jenkins can help with automating continuous integration. For automating continuous deployment, additional options include Go, Julu, or Octopus Deploy.
英語のヒント
自動化ツールは、顧客が運用費用を減らし、誤りを最小限に抑えるのに役立つ。コンテナー、VM、その他のシステムの設定とインストール、自動で規模を調整するための資源の準備と解放、ワークロードの性能を最適にするための資源の割り当てに使える。アプリケーション、ワークロード、基盤の開発、提供、管理を自動化するため、さまざまなツールが利用できる。Ansible、Pulumi、Terraformなどは、オーケストレーションの自動化に役立つ。Ansible、Chef、Puppet、Saltなどは、構成管理を自動化する。BitBucket、GitHub、GitLabなどは、ソース管理を自動化する。Broccoli、CircleCI、Codeship、Mavenなどは、ビルドの自動化に役立つ。Bamboo、CircleCI、Codeship、Jenkinsなどは、継続的インテグレーションを自動化する。継続的デプロイメントの自動化には、Go、Julu、Octopus Deployという選択肢もある。
GLOBAL ISSUES IN TECHNOLOGY技術をめぐる世界の課題
DevOps Across the Globe世界各地のDevOps
While cloud-native applications are deployed all over the world, they involve the use of DevOps methods and tools that are mostly developed in the United States or Europe. For example, DevOps refers to terms like CI/CD, which relate to terms (i.e., continuous integration/continuous deployment) and tools (e.g., Jenkins, GitLab, Docker) that are respectively used and implemented by companies in the United States. Therefore, it is not certain how well those methods and tools work in other cultural contexts. What is your opinion regarding these concerns?
英語のヒント
クラウドネイティブのアプリケーションは世界中に配置されるが、それに用いるDevOpsの手法やツールの多くは、米国や欧州で開発されている。たとえばDevOpsでは、CI/CDのような用語を使う。これは、米国の企業で使われる用語、すなわち継続的インテグレーション/継続的デプロイメントや、米国の企業で実装されるJenkins、GitLab、Dockerなどのツールに関係する。したがって、これらの手法やツールが、ほかの文化的な背景でどれだけうまく機能するかは、確かではない。こうした懸念について、どう考えるだろうか。
IaaS Cloud Deployment Implementation
IaaSによるクラウド配置の実装
When adopting IaaS, IaC can be used to automate infrastructure management provisioning by using code instead of manually. This includes managing servers, managing operating system installations and updates, kernel modifications, and the management of storage and other infrastructure components needed for the development and deployment of applications.
IaaSを採用する場合、IaCを使い、手作業の代わりにコードを用いて、基盤の管理と準備を自動化できる。これには、サーバー管理、OSのインストールと更新の管理、カーネルの変更、アプリケーションの開発と配置に必要な記憶領域やその他の基盤構成要素の管理が含まれる。
Orchestration tools (e.g., Kubernetes) can be used on any of the cloud deployment technologies discussed to automate services such as allocating resources and scaling applications as needed. Configuration management tools (e.g., Ansible) can also be used on any of the cloud deployment technologies to automate the process of configuring and managing changes to these resources. Both orchestration and configuration management tools provide support for integrating with IaaS services provided by the major cloud service providers (e.g., Amazon Web Services, Google Cloud Platform, IBM Cloud, and Microsoft Azure).
英語のヒント
Kubernetesなどのオーケストレーションツールは、ここで述べたどのクラウド配置技術にも使え、資源の割り当てや、必要に応じたアプリケーションの規模の調整などを自動化できる。Ansibleなどの構成管理ツールも、どの配置技術にも使え、これらの資源の設定と変更管理の過程を自動化できる。オーケストレーションと構成管理の両方のツールが、Amazon Web Services、Google Cloud Platform、IBM Cloud、Microsoft Azureなど、主要なクラウドサービス事業者のIaaSサービスとの統合を支援する。
LINK TO LEARNING学びを深めるリンク
Learn more about infrastructure as a code (https://openstax.org/r/76infracode) as well as design principles for IaC and design patterns for infrastructure deployment stacks.
Infrastructure as Code(https://openstax.org/r/76infracode)と、その設計原則、基盤の配置スタックの設計パターンについて、さらに学べる。
PaaS Cloud Deployment Implementation
PaaSによるクラウド配置の実装
As mentioned, PaaS also provides services for managing the operating system, middleware, and runtime environments for applications. As such, available PaaS tools are used for automating tasks, such as streamlining code integration between systems as well as managing application build and deployment processes.
英語のヒント
すでに述べたように、PaaSは、アプリケーション用のOS、ミドルウェア、実行環境を管理するサービスも提供する。そのため、利用できるPaaSのツールは、システム間のコード統合の効率化や、アプリケーションのビルドと配置の過程の管理など、さまざまな作業の自動化に使われる。
A tool discussed earlier, Tanzu, provides a major improvement over traditional PaaS deployment options by enabling deployment on any cloud that provides a container orchestration mechanism. It is equivalent to an application server for the cloud that can deploy cloud-based and cloud-native application workloads on any cloud.
英語のヒント
先に述べたツールTanzuは、コンテナーのオーケストレーション機構を備える、あらゆるクラウドへ配置できるようにすることで、従来のPaaSの配置方法を大きく改善する。クラウド向けのアプリケーションサーバーに相当し、クラウドベースとクラウドネイティブのアプリケーションのワークロードを、どのクラウドにも配置できる。
FaaS Deployment Technology Implementation
FaaSの配置技術の実装
When adopting FaaS, applications are deployed on server infrastructure in response to events without customers having to manage the underlying infrastructure. Although the managing of the infrastructure is not the customer’s concern, there are setup requirements customers must deal with, including setting up the serverless runtime environment, deploying serverless functions, cloud service dependencies (e.g., storage), and the required amount of memory needed. There are tools (e.g., Ansible) that are available to help deploy these cloud services.
英語のヒント
FaaSを採用すると、顧客が基盤を管理することなく、イベントに応じてアプリケーションをサーバー基盤へ配置できる。基盤の管理は顧客の担当ではないが、対処すべき設定要件はある。サーバーレスの実行環境の準備、サーバーレス関数の配置、記憶領域などのクラウドサービスへの依存関係、必要なメモリ量などである。これらのクラウドサービスの配置を支援する、Ansibleなどのツールを利用できる。
Cloud management platforms (CMPs) are used to simplify the deployment and management of cloud services across various cloud service providers. Customers manage several large-scale applications in very complex environments using services from multiple cloud service providers. CMPs can be helpful in simplifying the deployment and management of all these services. Understanding the common use cases as well as the available cloud deployment technologies available help customers to select the appropriate solutions to support their needs.
クラウド管理プラットフォーム(CMP)は、さまざまなクラウドサービス事業者にまたがる、クラウドサービスの配置と管理を簡単にするために使われる。顧客は、複数の事業者のサービスを使い、非常に複雑な環境で、いくつもの大規模なアプリケーションを管理している。CMPは、これらすべてのサービスの配置と管理を簡単にするのに役立つ。一般的な利用事例と、利用できるクラウド配置技術を理解すると、顧客は、自分の必要に応じた適切な仕組みを選べる。