<お詫び>
こちらの記事の内容の一部が読者・ユーザーの皆様の誤解を招くものでありました。
再度内容確認後、記事の追記修正を行ないました。
ご迷惑をおかけした読者の皆様ならびに関係各位に深くお詫び申し上げます。
9月10日 iedge編集部
----------------------------------------------------------
IT業界において近年大きなトレンドとなっている「クラウド」。ユーザー側にとって非常にメリットの大きい仕組みですが、実はソフトウェアを開発する側にとってもクラウドというキーワードは注目されるようになってきています。なかでも象徴的なのが「クラウドネイティブ」です。
今回の記事では、そもそもクラウドネイティブとはどのような考え方のものなのか、そしてクラウドネイティブをソフトウェア開発に取り入れることによって、どのような変化が起こるのかを詳しく紹介していきたいと思います。
- クラウドネイティブとは何か
- クラウドネイティブのメリット
- クラウドネイティブ・アプリケーション開発が注目される理由
クラウドネイティブとは何か
そもそも「クラウドネイティブ」とは何なのでしょうか。CNCF(Cloud Native Computing Foundation)という団体ではクラウドネイティブのことを以下のように定義しています。
クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミューダブルインフラストラクチャ、および宣言型APIがあります。
これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。
Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトのエコシステムを育成・維持して、このパラダイムの採用を促進したいと考えてます。 私たちは最先端のパターンを民主化し、これらのイノベーションを誰もが利用できるようにします。
(引用:https://github.com/cncf/toc/blob/master/DEFINITION.md)
つまり、ソフトウェアの開発にあたっては、従来のオンプレミス型に比べてクラウドネイティブのほうが効率が良く、サービスの提供規模が拡大した際にも柔軟に対応できる能力があるということです。
クラウドネイティブの定義は開発者や研究者によっても多少異なることもあるのですが、共通しているのは「クラウドの特性を活かしてソフトウェア開発を行う」ということが挙げられます。
ちなみに、このCNCFという組織はオープンソース型のソフトウェア開発手法であるクラウドネイティブを推進しており、AmazonやApple、マイクロソフトなど400以上の企業がこの団体にメンバーとして参画しています。
スマートホームでよく耳にするようになった「クラウド」とは?
クラウドネイティブのメリット
クラウドネイティブの開発手法は世界中の多くの企業で取り入れられていますが、そこにはどのような理由があるのでしょうか。CNCFが2018年12月に発表したKeynoteからの内容も併せて紹介します。
(参考:https://events.linuxfoundation.org/wp-content/uploads/2018/09/Evolving-Cloud-Native-Landscape-Dec-2018-ContainerDays-Japan.pdf)
サーバーリソースの向上
クラウドを活用することによってサーバーリソースの利用効率が上がるため、同じシステムやサービスを運用する場合であっても、クラウドネイティブによる開発のほうが少ないサーバー数での運用が可能になります。
インフラの調達スピード
クラウドネイティブにおいてはインフラの構築と運用をクラウド側で行うため、サービスを開発する側としてはその分開発効率が上がるとともにアジリティの向上につながります。
また、インフラを運用する必要がない分、サービスを提供するうえでのリスクも低下します。
スケーリングへの対応
冒頭にも紹介しましたが、クラウドネイティブはサービス規模の拡大やトラフィックの増大または縮小に合わせたスケーリングにも柔軟に対応できます。
たとえば、ある一定の時期のみユーザー数が突発的に増加するケースなどにおいては、当該時期以外はスケールダウンすることによってコストの削減にも貢献することでしょう。
安全性・回復性に優れている
後述するマイクロサービスやコンテナなどのアプローチ方法によってクラウドネイティブでのシステムを構築することにより、万が一セキュリティインシデントや障害が発生した場合においても、影響のある部分を切り離すことによって被害を最小限に食い止めることができます。
クラウドネイティブの技術的要素
クラウドネイティブの技術的要素
クラウドネイティブに基づくアプリケーション開発にはさまざまなアプローチがありますが、代表的なものをいくつか挙げてみます。
マイクロサービス
マイクロサービスとは、アプリケーションの構成要素ごとに細分化して開発を行うアーキテクチャスタイルです。
機能ごとに細分化されているため、アプリケーション開発の効率が上がるだけではなく、障害等が発生した際にもその影響を最小限に留めることができます。
ちなみに、マイクロサービスの対局にあるのがモノリシックとよばれるアーキテクチャです。
コンテナ
マイクロサービスを利用したクラウドネイティブ実現のために利用するのが「コンテナ」です。コンテナはマイクロサービスそれぞれのプログラムの実行環境として機能します。
コンテナはアプリケーション層での仮想環境で動作するため、ひとつのOS上で実行できます。そのため、仮想マシンで複数のOS上で実行した場合に比べるとCPUやメモリのリソースも抑えられるメリットがあります。
オーケストレーション
オーケストレーションは、コンテナを効率よく管理するために使われる技術です。
マルチホストでコンテナを稼働させる場合、ネットワーク接続や起動するホストの管理、動作状況の確認などが必要になります。これを司るのがオーケストレーションツールとよばれるもの。
なかでもGoogleのKubernetesが主要なオーケストレーションツールとして活用されています。
サービスメッシュ
サービスメッシュはマイクロサービス間の通信を担います。負荷分散や通信トラフィックの最適化、さらには安全な通信を実現するためのセキュア化などの役割も担っており、これらの機能をソフトウェアのレイヤーで実行します。
クラウドネイティブ・アプリケーション開発が注目される理由
クラウドネイティブでのアプリケーション開発においては従来の開発手法に比べて柔軟なアップデートが可能となり、ユーザーニーズの変化にもすぐ対応できます。
またクラウドベースでアプリケーションを提供できるようになれば、従来のオンプレミス型の欠点であった高コストを解決し、低料金でユーザーにサービス提供できるようになります。結果として中小企業など、今まで取り込めなかった部分もターゲットにできます。
冒頭に紹介したクラウドネイティブの定義の中に、「スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。」という一節がありました。クラウドネイティブによる開発が進んでいくと、単に技術的な進化だけではなく、組織内においても責任を明確にしながら的確な役割分担ができるようになります。
まとめ
今回はクラウドネイティブとは何か、技術的要素なども含めてご紹介してきました。
クラウドネイティブを実現すれば、アプリケーション開発時間を短縮し、柔軟性の高いアプリケーションを開発できます。組織戦略においても大いに役立つクラウドネイティブ。
ぜひこの記事を参考にしながらクラウドネイティブについての理解を深め、あなたの会社のアプリケーション開発にも活かしてみてください。
関連記事
-
-
未来の住まいがここに!スマホや声で家電を操作できる 大阪の最新スマートホームショールームに行ってきた
大阪に新たなスマートホームの体験拠点が誕生した。 株式会社アクセルラボ(本社:東京都新宿区)は、ハウスメーカーやディベロッパー、管理会社などの不動産事業者向けスマートホームサービス「Sp ...
続きを見るスマートホーム(スマートハウス)の記事 2024.05.14
-
-
Roborock S8 Pro Ultraにロボット掃除機の未来を見た
ロボット掃除機を買い替えた 2023年10月、コロナ禍で少しだけ流行った地方移住ブームに乗り切れなかった私は、今更になって都内から地方都市への移住を果たした。東京都の地区40年-14平米ワンルームマ ...
続きを見るスマートホーム(スマートハウス)の記事 2023.12.04
-
-
着実な広がりを見せるスマートホーム市場〜最新の動向についてアクセルラボが発表〜
スマートホームサービス「SpaceCore」(スペース・コア)などを手がけるアクセルラボが、消費者と不動産事業者を対象に「スマートホームに関する調査報告会」を行った。 同調査は、全国の18~69歳 ...
続きを見るスマートホーム(スマートハウス)の記事 2023.09.05
-
-
Qrio Smart Lockなら、鍵をシェアすることができて、スマホで解錠できる!
Qrio Smart Lockなら、まるで鍵を開けるかのようにスマホを操作するだけ Qrio Smart Lockは、スマートロックサービスです。 鍵をドアに設置する際の工事も不要です。鍵につけさえす ...
続きを見るスマートホーム(スマートハウス)の記事 2019.11.28
-
-
これからのスマートホームには欠かせないAIについて知っておこう!
そもそもAIって何? AI(Artificial Intelligence=人口知能)は、人間が行う様々な作業や活動をコンピューターなどで模倣し、人間と同じような知能の実現を目的としたソフトウェアおよ ...
続きを見るスマートホーム(スマートハウス)の記事 2019.11.28
-
-
人の感情に共感する次世代のAIロボット「JIBO」とは?
多くの可能性を秘めた新型AIロボット「JIBO」 JIBOは、アメリカのMIT(マサチューセッツ工科大学)のシンシア・ブリジール准教授により開発されました。 その後、2014年にIndiegogoのク ...
続きを見るスマートホーム(スマートハウス)の記事 2019.12.03