
041
1
マイクロサービス
複数の独立した小さなサービスを組み合わせて一つのアプリケーショ
ンを構築するマイクロサービスアーキテクチャが提唱され、採用事例も
増えています。
サービス単位で独立して開発やデプロイが行えることや、サービス単
位でスケーリングができること、サービスに適したテクノロジーを採用
できることなど、マイクロサービスには多くのメリットがあります。
一方で分散システムは本質的に複雑であり、分散システム特有の課題
に向き合う必要があります。それでも、ソフトウェアのアジリティを高
めるアーキテクチャとしてマイクロサービスは検討してみる価値がある
でしょう。
多種多様性
ソフトウェアのコードを記述するプログラミング言語には、Javaや
C#のようなオブジェクト指向言語、HaskellやClojureのような関数
型言語、アクターモデルを採用したErlangなど数多の言語が存在し、
それぞれが特色を持っています。オブジェクト指向と関数型の性質を併
せ持つハイブリッド言語も増えています。
データベースは従来のRDBMSだけでなく、カラム指向DBやドキュ
メント指向DB、グラフ指向DBなどいわゆるNoSQLデータベース製
品を用途に応じて使い分けることが可能となりました。
フロントエンド開発は、従来はWebアプリケーションサーバーがレ
ンダリングして返却したHTMLをWebブラウザが描画し、jQueryな
どのJavaScriptライブラリを読み込んで利用し、クライアントの振る
舞いを実現していました。最近はReac