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

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

カテゴリ一覧

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

一覧

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

ホーム > 翻訳記事

翻訳記事

Linuxコンテナでアプリ・パフォーマンスを向上させる | from Opensource.com / Garima V Sharma

 2017年2月1日 | Garima V Sharma
 イメージ画像: CC0 Public Domain

  アプリケーションのパフォーマンスとは、ソフトウェアが与えられたタスクをいかに早く完璧に処理できるかということです。
  その課題で焦点となるのは、

  •  ピークロード時の反応時間
  • 使いやすさ、機能性、
  • 本来のユースケースと代替経路運営コスト(CPU稼働率、メモリー使用率、データ効率、バンド幅など)

 

  性能の評価は、ロードを送信するときに必要とされる計算リソースの値、あるいはピーク時に要求されるアプリケーション・インスタンス数次第で伸びることがあります。

  まず、パフォーマンスがよくないソフトはヒットしないのは明白ですが、それでは「パフォーマンス」とは何か。それはユーザー側にとってのソフトの使用感のことなのです。

  ソフトの使用感は、顧客が期待する応答時間になっているかどうか、さらに使いたいと思わせる客層に合わせて設計されたコンテンツがあるかどうか、選んだデバイスは正しいのかなど、細かいことをいえば様々な項目が挙げられます。

  しかし、究極にいえば、「顧客のビジネスを効率化させられるか」どうかなのです。 

 

 浮かび上がる課題

  もちろん、ここまで言ってしまうと単純化も過ぎています。
  業務の効率化を実現しようにも、そこには少々複雑な問題が立ちはだかります。

  現在のアプリケーションは、クラウドに接続していても不思議ではありません。

  アプリケーションによっては(データ的にも、概念の複雑さも)膨大の一途を遂げているものがあります。
  本来なら、とても1台のコンピューターには収まりきらないリソースを要するアプリもあります。それらはどうしてもサーバー(クラウド)の力を借りざるを得ません。

  コーディングや展開を早めるために、アプリにクラウドを上手に介在させることは、今や手段としては当たり前です。

  しかし、クラウドは決して万能ではありません。アプリケーションに必要とされるリソースをたくさん手に入れようと思ったら、それなりに金額がかさむからです。
 

  開発者の方なら、クラウドがホストしているアプリのトラフィックマネジメントを行うために、
Search as a Service (SaaS)、
Platform as a Service (PaaS)、
Infrastructure as a Service (IaaS)、
Load Balancing as a Service (LBaaS)  などの他にも、
おそらく次の急成長を遂げているサービスのどれかは使っているのではありませんか。

  • Security as a Service (SECaaS) セキュリティが必要とされるソフトウェアとユーザー向け
  • Data as a Service (DaaS) ユーザーのデータをアプリケーションに反映させる
  • Logging as a Service (LaaS)  DaaS にとても近い。データ通信やよく使われる語句を計測し、分析することができる
  • Search as a Service (SaaS) アプリに必要とされるレベルの大規模データを分析できる
  • Network as a Service (NaaS) ネットワークでデータを送受信する

 

 クラウドを使ったサービスには今後まだまだ成長が見込まれています。その最大の理由は、高度なアプリでも比較的簡単に作れるようになることにあります。

  クラウドが得意な処理と、コンピューターが得意な処理を分担することで、より高度なサービスが可能になりました。

  それに伴い、ユーザーの幅が広がって、ソフトウェアに求められる事柄もどんどん増えています。ソフトウェアへの要求が高度になるほど、サービスを提供するために必要となるものも増えていくのです。
  このようなことから、システムはバランスを欠き始め、「パフォーマンス問題」のきっかけにつながっていくのです。

  セキュリティ性の高いコードが必要とされるアプリケーションを作るには、当然様々な条件が求められます。
 それらを満たしているかを確認するテストも行わなくてはいけません。自分が行っている業務の分析も必要となるでしょう。ただ基本的な機能を満たせればよいわけではありませんね。

  すべての工程を、安定したパフォーマンスで行うために、システムには何が必要なのでしょうか。マーケットのニーズにはどのように対応すべきなのでしょうか。主要パラメーターをどの数値でチューニングすればよいのでしょう。

  トラブルがあってもある程度自力で回復できるシステムを、具体的にどうすれば構築できるのでしょうか。システムに起こった問題をなるべく早く発見し、すぐに直せるような仕組みが必要です。

 

 そこでコンテナを使います。

  そこで候補に挙がるのが、ソフトウェア・コンテナです。サービス指向アーキテクチャやマイクロサービスなどの手法を活かして、システムのパフォーマンスを存分に引き出します。

 まずシステムを小さくまとめられるので、全体の把握がしやすくなります。
 次に、コードブロックを使うことで、コードを単純かつ綺麗にまとめられます。
 そして、アプリを動かすうえで必要なもの(依存関係)がきちんと定義され、それさえ分かれば他のシステムでも動かせるようになるのです。

  テストや問題が起きたときにも簡単に対処できます。いかにリソースを使っているかや、メモリーを消費しているかを、モノリシック・アーキテクチャよりも容易に確認できるようになります。
 

  適切にコンテナ化されたアプリケーションは、システムをスケーリングする時に、増大したロードを適切に素早く処理できます。

  セキュリティの欠陥があっても部分的に直すことができます。パッチはバージョニングを使うことによってアプリとは独立的に、効率的に配置することができます。

  パフォーマンスの監視は的を絞った、さらに確実な計測により実行されます。また、コードの書き直しと "facelift"というコードを集約する機能を使って、システムの性能をさらに向上させることができます。

 

  コンテナはすぐに始められ、すぐに止められます。仮想マシンをはるかにしのぐプロセス分離を実現し、リソース資源の有効活用を可能にします。

  コンテナはアイドル状態のメモリーが少なく、CPUの負荷も低めです。多様なアプリケーションを、データやパフォーマンスの損失なしに、1つのマシンで共有できる環境を実現します。

  コンテナ化されたアプリケーションは持ち運びが可能です。コンテナに対応しているLinuxサーバーならどれでも、アプリケーションをビルドしたり運用したりできます。サーバーを変更してもパフォーマンスが低下する心配はありません。

  コンテナがストレージ、コンピューター処理、オブジェクトの計算などの割り当てを適切に行えるのは、「クラスタ管理」という機能があるからです。クラスタ管理で有名なものは、Cloud Foundry's Diego、 Kubernetes、Apache Mesos、Docker Swarmなどが挙げられます。
 

  コンテナの特性を生かせば、近い将来「サーバーレス」なコンピューター処理が主流になる可能性があります。
  とくにFunction as a Service (FaaS)の名で知られるサービスは、コンテナの特性を生かしたセットといえるでしょう。
   FaaSはほんの短期間しか使えないコンテナではありますが、アプリケーションのパフォーマンスを落とさずにディレクトリを変換する機能があります。これによりクラウドにホスティングする際のシステム負荷を減らすことができます。

  コンテナを使えば、仕事にかかる時間を短縮でき、必要なリソースも大幅に節約できるのです。
 

 

 

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

この記事の翻訳者

Hnoss さんの翻訳記事

【GitLab Pages 公式 を訳してみた】GitLab Pages 説明書 

GitLab Documentation > User documentation > Projects >GitLab Pages 説明書  GitLabには「GitLab Pages」という機能があります。  GitLab…2017-09-23 12:10:55

SSGを知る②:最近の静的サイト・ジェネレータ事情 | from about GitLab.com

 引き続き、静的サイト・ジェネレータ特集です。  前回は、「静的サイトとは何か」というような内容で終わってしまいましたが、いよいよ本題です。  静的サイト・ジェネレータって…2017-09-23 11:58:35

SSGを知る①:静的 vs 動的 ウェブサイト | about GitLab.com

 ウェブサイトは静的なものと、動的なもの2つに分かれますが、それらにはどのような違いがあって、どのような長所があるのでしょう。  GitLab Pagesで扱えるのはどっちだろう?  静…2017-09-23 11:23:00

【GitLab Pages 公式 を訳してみた】GitLab Pages のこと全部教えます!①

GitLab Documentation > User documentation > Projects > GitLab Pages 説明書 >GitLab Pages のこと全部教えます!① 記事の 種類 : 取扱説明書 || 対象 : 初心者 || …2017-09-23 11:17:34