プリンキピア

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

Red Hat OpenShiftRed Hat OpenShift
OpenShift is Red Hat’s cloud application platform. It includes several containerization software products, including the OpenShift Container Platform that runs on the Red Hat Linux operating system and Kubernetes. OpenShift is a Platform as a Service (PaaS) that includes the Kubernetes platform, Docker container images, as well as features that are exclusive to the OpenShift platform. Such features include CI/CD pipeline definitions, container automation tools, Kubernetes command-line interface, and security features. OpenShift provides a robust, multilanguage development environment, plus all the necessary software components to support applications. OpenShift is open-source and free-to-download application that enables developers to quickly deploy web, mobile, and IoT applications.
英語のヒント
OpenShiftは、Red Hatのクラウドアプリケーション用プラットフォームである。Red Hat Linux OSとKubernetes上で動作するOpenShift Container Platformなど、コンテナー化用のソフトウェア製品群を含む。OpenShiftはPlatform as a Service(PaaS)であり、Kubernetesのプラットフォーム、Dockerのコンテナーイメージに加え、OpenShift固有の機能を持つ。CI/CDパイプラインの定義、コンテナー自動化ツール、Kubernetesのコマンドラインインターフェース、セキュリティ機能などである。OpenShiftは、堅牢で複数の言語に対応する開発環境と、アプリケーションを支えるために必要なソフトウェア構成要素をすべて提供する。オープンソースで無料でダウンロードでき、開発者がWeb・モバイル・IoTのアプリケーションを素早く配置できるようにする。
TanzuTanzu
VMWare’s cloud application software Tanzu, formerly known as Cloud Foundry, is a modular, application platform that provides a rich set of developer tools and a pre-paved path to production to build and deploy applications quickly and securely on any compliant public cloud or on-premises Kubernetes cluster. Tanzu provides a supply chain of operational and security outcomes for the development environment via configurations that are designed with operational and security principles so that applications can be pushed into production quickly, run, and scaled safely and securely. Such principles include running code through a testing environment and ensuring the code runs properly, applying security scanning so that the application that goes into production is audited and compliant with security policies, and deploying the application to production environments that may include several cluster environments that can run and scale in production.
英語のヒント
以前Cloud Foundryと呼ばれていたVMWareのクラウドアプリケーションソフトウェアTanzuは、モジュール化されたアプリケーションプラットフォームである。豊富な開発ツールと、あらかじめ整えられた本番運用までの道筋を提供し、要件に適合するパブリッククラウドや、オンプレミスのKubernetesクラスターへ、アプリケーションを素早く安全に構築・配置できるようにする。Tanzuは、運用とセキュリティの原則を踏まえた設定を通じて、開発環境に、運用上・セキュリティ上の成果を得るための一連の工程を提供する。これにより、アプリケーションを素早く本番へ送り、安全かつ確実に実行・拡張できる。これらの原則には、コードをテスト環境で実行して正常に動くことを確認する、本番へ入るアプリケーションが監査を受けてセキュリティ方針に適合するよう検査する、本番で実行・拡張できる複数のクラスター環境を含む場合のある本番環境へ、アプリケーションを配置する、といったものがある。
NodeNode
Node is an open-source, cross-platform, server-side JavaScript runtime environment that can be used to develop server-side tools and applications in JavaScript. Some examples of real-time applications include chats, news feeds, and other microservices. For example, Node can be used to create virtual servers and define the routes that connect microservices to external APIs such as operating system APIs, including HTTP and file system libraries, compared to browser-specific JavaScript APIs.
Nodeは、オープンソースで、複数のプラットフォームに対応する、サーバー側のJavaScriptランタイム環境である。JavaScriptでサーバー側のツールやアプリケーションを開発できる。リアルタイムアプリケーションの例には、チャット、ニュースフィード、その他のマイクロサービスがある。たとえば、Nodeで仮想サーバーを作り、マイクロサービスを外部APIへ接続するルートを定義できる。外部APIには、ブラウザー固有のJavaScript APIとは異なる、HTTPやファイルシステムのライブラリを含むOSのAPIなどがある。
LINK TO LEARNING学びを広げるリンク
This Cloud Native Trail Map (https://openstax.org/r/76clnativemap) illustrates the use of various open-source tools to develop cloud-native applications.
このCloud Native Trail Map(https://openstax.org/r/76clnativemap)は、クラウドネイティブアプリケーションの開発における、さまざまなオープンソースツールの利用を示している。

The Future of Cloud-Native Applicationsクラウドネイティブアプリケーションの未来

Cloud-native applications have seen increased use in recent years and are predicted to be the future of software development. The Cloud Native Computing Foundation11 estimated there were at least 6.8 million cloud-native developers in 2021 compared to 6.5 million in 2020. They also estimated there were 5.6 million developers using Kubernetes in 2021, up 67% from a year ago.12
英語のヒント
クラウドネイティブアプリケーションの利用は、近年増加しており、ソフトウェア開発の未来になると予測されている。Cloud Native Computing Foundation11は、クラウドネイティブの開発者が、2020年の650万人に対し、2021年には少なくとも680万人いたと推計した。また、2021年にKubernetesを使う開発者は560万人で、前年より67%増えたと推計している。12
Cloud-native applications solve some of cloud computing’s inherent problems. The cloud-native approach is the new standard for enterprise architecture. It is a way of designing, building, and running applications in the cloud. It has been observed that companies that adopt a cloud-native approach can achieve higher levels of innovation, agility, and scalability. It also offers many benefits such as:
クラウドネイティブアプリケーションは、クラウドコンピューティングに本来伴う問題の一部を解決する。クラウドネイティブの手法は、エンタープライズアーキテクチャの新しい標準である。これは、クラウドでアプリケーションを設計・構築・実行する方法である。クラウドネイティブの手法を採用する企業は、より高い革新性、俊敏性、スケーラビリティを実現できることが観察されている。また、次のような多くの利点もある。
11 https://www.cncf.io/ 12 https://www.cncf.io/blog/2021/12/20/new-slashdata-report-5-6-million-developers-use-kubernetes-an-increase-of-67-over-one-year/
11 https://www.cncf.io/12 https://www.cncf.io/blog/2021/12/20/new-slashdata-report-5-6-million-developers-use-kubernetes-an-increase-of-67-over-one-year/
• reducing IT overhead and management costs by providing a streamlined software delivery process and on-demand consumption of resources
英語のヒント
• 効率化されたソフトウェアの提供過程と、必要に応じた資源の利用によって、ITの間接費用と管理費用を減らす。
• reducing time to market and reducing the risk of deployments by enabling developers to rapidly build, test, and deploy new and updated services
• 開発者が新しいサービスや更新したサービスを素早く構築・テスト・配置できるようにし、市場投入までの時間と、配置の危険を減らす。
• ability to react faster in the market due to constant availability of resources
• 資源が常に利用できるため、市場に素早く対応できる。
• reduction in complexity
• 複雑さが減る。
• less coupling between the services in an application
• アプリケーション内のサービス間の結合が弱くなる。
Nevertheless, migrating to the cloud to improve operational efficiencies has a range of challenges. We also pointed out earlier some of the challenges faced in microservices architectures. Some of the challenges that were learned earlier include to use microservices requires changing the allocation of responsibility between components, and determining the components’ service boundaries could be difficult, debugging, logging, and monitoring microservices also become challenging, to name a few.
英語のヒント
それでも、運用の効率を高めるためのクラウドへの移行には、さまざまな課題がある。マイクロサービスアーキテクチャの課題も、すでにいくつか指摘した。たとえば、サービスを使うにはコンポーネント間の責任の割り当てを変える必要があること、サービスの境界を決めにくい場合があること、デバッグ・ログ記録・監視も難しくなることなどである。
TECHNOLOGY IN EVERYDAY LIFE日常生活の中の技術
Everyday Life and Microservices日常生活とマイクロサービス
There are myriads of web apps that people use every day that are based on microservices. For example, weather apps typically leverage web services that invoke microservices. More complex applications include e-commerce websites, as illustrated earlier. Can you provide additional illustrative scenarios that demonstrate how the use of microservices help people in everyday life? Your scenarios should not be limited to describing how microservices are used, but rather should describe situations where these architectures are applied in real-life contexts.
英語のヒント
人々が毎日使うWebアプリには、マイクロサービスを基にしたものが無数にある。たとえば、天気アプリは通常、マイクロサービスを呼び出すWebサービスを利用する。より複雑な例として、前述した電子商取引サイトがある。マイクロサービスの利用が、日常生活で人々にどう役立つかを示す、別の具体的な場面を挙げられるだろうか。単にマイクロサービスの使い方を説明するだけでなく、これらのアーキテクチャが実生活に適用される状況を述べなさい。