「みんなの翻訳」は、世界中の文書をみんなで協力して翻訳するサイトです。

みんなの翻訳ロゴ
ブクタブ
翻訳サイト

カテゴリ一覧

このサイトについて 新規登録はこちら お試し翻訳

一覧

2017/07/28

メンテナンス終了のお知らせ

2017/7/25-2017/7/28に実施したメンテナンスは、2017/7/28/14:20に終了いたしました。 ご協力をいただき、ありが…

List

Hnoss

English⇒Japanese

shikimi

English⇒Japanese

sysInfo

English⇒Japanese

tkkobe

English⇒Japanese

ホーム > 翻訳記事

翻訳記事

マイクロサービスとは | from opensource.com

  マイクロサービスとは、同時に運用できる組み立て可能なパーツを、なるべく無駄を省いたうえで構成し、アプリのビルドやメンテナスを簡便化しようとする考え方である。
  構成パーツは個別に作成され、アプリケーションはこれらのそれぞれ役割を持ったパーツの集合体という扱いになる。
  それに対し、旧来のアプリケーションは、アプリケーションを1つのプログラムとして作成する「モノリシック」という方式をとってきた。

 

  マイクロサービスは、特に大きなアプリケーションの開発に向いている。企業で使われるようなアプリケーションや、Software as a service(SaaS)のようにインターネットから機能の補助を受けるソフトウェアの開発にも役立てられている。

 

  このような開発形態がとられる理由に、まずエンジニアを適切に配備できることが挙げられる。アプリケーションに使われるパーツはそれぞれ個別に作られるため、たくさんの業務をチームで分担して同時にこなすことができる。
  次に、そうして作成された構成パーツには、他のサーバーやデータセンターなど、様々な環境で運用できるだけの柔軟性がある。たとえ1つのパーツが他の環境で動かなかったとしても、部品のように取り換えるだけで他の要素はそのままに、アプリケーションを動作させられる。
   アプリケーションをさらに大きくパワフルなマシンに移し替えるときには、アプリケーションのコピーを入れるだけでよい。もっとも酷使するパーツを複製し、それにも処理を担わせることで処理能力をあげる、「スケールアウト」という技法も簡単に行える。

 
 

 これまでとの違い

  アプリケーションをそれぞれの部分ごとに分けて制作する考え方は、別段新しいわけではない。同じようなコンセプトを持ち合わせたプログラミング方法に、 Service Oriented Architecture (SOA)などがある。
  だが、しいて言うなら、マイクロサービスを有効活用するための、ツールや技術があるというところが、これまでになかった点だ。

  今現在、「マイクロサービスを採用する」ことは、「マイクロサービスの方式を取り入れたAPIエンドポイントを使用する」ことというイメージが強い。そしてそれらAPIは必ずしも、ごく普通のウェブページのごとくHTTP(S)サーバーにアクセスできるステートレスREST APIとは限らない。
  これらのAPIを使用することで、開発者は使い慣れたツールや方式のみに触れながら、マイクロサービスを容易く使いこなせる。

  もちろんAPIを使わずとも、考え方さえ合っていればマイクロサービスといえるのだが、中から大規模の団体がこの方式を活用するなら、どのように開発を進めればよいかの手本はあると便利だ。
  マイクロサービスは、IT業界における開発形態の趨勢の大きな部分を担っている。アプリケーションの開発とチームの運営とを同時に管理できるうえに、その開発のしやすさから、従来の方式に比べてかなり短いスパンで新たなバージョンを世に送り出せる。


 

 マイクロサービスがオープンソースであるメリットとは

  かつて、モジュラーから構成要素など、アプリケーションを最初から最後まで開発しようとしたら、プロプラエタリなソフトが必要だっただろうし、それを使って開発した構成要素にも、ライセンスの付与やきちんとした許可が必要だったはずだ。
  アプリケーションの構成要素がオープンソースで作れれば、それらの申請は必要なくなる。

  マイクロサービスを使えば、アプリケーションのインターフェイスに選択肢が増える。すべてのパーツがAPIだった場合、アプリケーションのパーツ間には互換性がある。すべての構成パーツはアプリケーションを作り上げるのみならず、データを共有しあい、互換しあうAPIとして情報を伝達する。
  この性質はアプリケーションだけにとどまらない。アプリケーションの開発を他の組織でも行うことになった際にも、組織どうしのデータやサービスの活用を円滑にできる。


 

 Dockerなどのコンテナ技術を導入した方が良い?

  Dockerやその他コンテナ技術は、マイクロサービスを構築するためのツールとして有名である。

  仮想マシンと異なり、コンテナは実行可能なパーツを組み立てて、アプリケーションとして運用していくことにのみ特化している。ただし、その特化した機能においては、他の仮想マシンや物理マシンと同等のものが得られる。
  その中でも、Dockerなどのツールは、アプリケーション開発を効率化する手段や、サービスのテストなどの機能あることから、あると便利ではある。

  もちろん、コンテナはあくまで一種のツールだ。これがなくても、マイクロサービスの考え方さえ合っていれば、構築は可能である。しかし、コンテナよりも明らかによいアイディアがなければ、既に存在するツールを使うに越したことはない。


 

 マイクロサービスを編成するには?

  マイクロサービスを軸にしたアプリケーションを運用するためには、構成パーツを「監視」「管理」「測量」するための機構が必要だ。だが、それらは大体のコンテナ・ツールに標準搭載されているので、そこから作りあげる必要はない。
  コンテナで代表的なものを挙げるなら、 KubernetesDocker Swarm、 あるいはMesosZooKeeper などのApacheプロジェクトが当てはまるだろう。
  他にも、コンテナという形式を取らずに、パーツを組み立ててアプリケーションをつくることに重点を置いたツールも存在する。 OpenStack などがそれだ。
  さらに、Platform as a Service (PaaS)を使用してマイクロサービスを構築するという手もある。これはコードを記述することに的を絞った方法で、「編成」することにおいてはやや抽象化された部分がある。データベースエンジン、ロギング・サービス、継続的インテグレーション・サーバー、ウェブサーバーなど、一部アプリケーションにおいてはこちらの方がすぐさまマイクロサービス化を図れるものもある。


 

 アプリケーションに与える影響は?

  今まであまりたくさんは見られなかったマイクロサービスという形態は、IT業界の成長にとって重要な糧となる可能性を秘めている。この手法を駆使すれば、アプリケーションを一夜にして改変させることも、今や不可能ではない。
  マイクロサービスと既存のアプリケーションたちを同じ環境で同時に運営させることもできる。これにより、1つの組織で可能になる仕事が増え、「bi-modal IT」が可能になる。

   Gartnerによると、bi-modal ITは、アプリケーションにさらなる安定性と動作可能時間を持たせ、機敏さを向上させたうえで、アプリケーションのテスト回数を減らすことが期待できる、新たな方式である。これにより、機械がある程度の管理を自動で行い、その代わり開発側の人間は短い開発サイクルをたどれるようになるのだ、と述べている。

  これぞ、たくさんの会社組織が、幾年もの間追い求めてきた形態をみたすものであると。

 

 併せて読みたい

  Opensource.comには、マイクロサービス関連のアプリケーションにまつわる記事がまだたくさんあります。ぜひ、次の記事もお読みください。

 

 

 

 
PDF
更新日:2017-07-04 22:08:56 Hnoss 0  del.icio.usに追加   はてなブックマークに追加   twitterに投稿   facebookでshare
[ 原文 ] https://opensource.com/resources/what-are-microservices Creative Commons License この作品は、クリエイティブ・コモンズ・ライセンスの下でライセンスされています。
クリエイティブ・コモンズ・ライセンス
翻訳者ページをみる

この記事の翻訳者

Hnoss さんの翻訳記事

僕がHugo静的サイト・ジェネレータをGitLabで使うときにしたCI設定 | from Leow Kah Man - Tech Blog

 週末にかけて、GitHubに構えていた私のブログをGitLabに移転しました。GitLabだとCIビルドが自動的にできるところが便利です。  僕はGitLabのレポジトリにNodeJS Dockerイメージを構…2017-11-18 13:00:02

【GitLab 公式 を訳してみた】Dockerイメージを使う

GitLab Documentation > GitLab Continuous Integration (GitLab CI) > Docker integration >Dockerイメージを使う  GitLab CIは、GitLab ランナーと連携して、Dockerエンジンを様…2017-11-18 00:10:16

【GitLab 公式 を訳してみた】 .gitlab-ci.yml 設定メニュー

 (訳者より:翻訳がもうだいぶ進んだところで、GitLab CIについてネットで検索をかけてみたところ、 Qiitaにてynott様が公開されたバージョン があることに気がつきました。  原…2017-11-17 23:50:27

【GitLab 公式 を訳してみた】GitLab CI/CDで使える変数

GitLab Documentation > GitLab Continuous Integration (GitLab CI) >GitLab CI/CDで使えるAPI変数  GitLab ランナーは、CIから送られてきたjobをもとに、ビルド環境を整えます。…2017-11-17 23:50:02