※テスト:
開発現場においてクラウドの活用が一般的となりました。近年では、このクラウド技術を徹底的に活用する、クラウド・ネイティブと呼ばれる概念が広まっています。
本記事では、クラウド・ネイティブとはどのようなものなのか、導入した場合のメリットは何かについて解説します。
■クラウド・ネイティブとは
クラウド・ネイティブとは、どのようなシステムでしょうか。開発現場におけるクラウドとの関わり方が、どのように変わってきたかを踏まえて説明します。
◇クラウド・ネイティブはクラウドを徹底的に活用すること
クラウド・ネイティブとは、クラウド技術の利点を徹底的に活用することを指す言葉です。「クラウド・ネイティブなシステム」といった形で表現をします。
インフラからアプリケーションまでのすべてをクラウド上で実行することを前提としており、近年のクラウド技術の発展により実現できるようになりました。
クラウド・ネイティブは、クラウド利用を前提とした技術の導入で、より効率的なシステム構築ができると注目されています。クラウド・ネイティブを推進するのは、非営利団体であるCNCF(Cloud Native Computing Foundation)。コンテナの運用管理などを行なうソフトウェアであるKubernetesの開発や、企業がクラウド・ネイティブに向かうための指針の公開などの活動を行なっています。
◇注目される背景
クラウドが登場した2000年代半ばはオンプレミス環境が一般的で、必要に応じてシステムをクラウド上に載せ替えていました。その後、オンプレミスよりも低コストで運用することを目的としたクラウド利用が進み、初めからクラウドの活用を目的にシステムを構築する「クラウド・ファースト」の考え方が広まります。
そして近年のITシステムは、クラウド上で動かすことが一般的となりました。またユーザーの要求に応じて迅速な開発体制を整えることが求められるようになり、やDevOpsといった開発手法が登場します。コンピュータのリソースを柔軟に確保/削減できるクラウドはアジャイルやDevOpsと相性がよく、インフラ面から支えることで迅速な開発を実現しています。
◇マイクロサービス
マイクロサービスとは、アプリケーションを機能ごとに細かく分割し、各機能を連携させてシステムを動かす仕組みのこと。小さいサービス単位に分割することで、開発やテストが容易になり、障害発生時の分離やリソースの最適化がしやすいといったメリットもあります。
マイクロサービスを実現するには、個々のマイクロサービスを実行する土台となるコンテナ技術が不可欠です。コンテナは1つのOSで独立した実行環境を作るので、複数のOSを起動させる仮想マシンよりも柔軟できめ細かい対応が可能です。