2015年10月28日
(株)オープンソース活用研究所 顧問 八塚 俊次郎
Google, Apple, Facebook等、IT業界を牽引するグローバルカンパニーが集積するシリコンバレー。それら先進企業においても、オープンソースソフトウェアの存在は不可欠なものとなっています。
ここではシリコンバレーにおけるIT、オープンソースの動向について、紹介させて頂きます。今回は、第11回目として、サーバー環境設定の自動化に利用されるChefとDevOpsをテーマに、Chefソフトウェア (Chef Software, Inc)にて、Director of Communicationをご担当されているルーカス・ウェルチさん (Lucas Welch)にお伺いした内容をご紹介いたします。
(過去のご経歴をご紹介いただけますか。)
私はここ10年ほどテクノロジー業界に従事しています。主には、PR/AR (Public Relations / Analyst Relations) から、ソーシャルメディアにおけるエグゼクティブのメッセージまで、さまざまな種類のコミュニケーション (広報) を取り扱ってきました。この4年間はChefソフトウェアにて、Chefの広報を担当しておりますが、Chefソフトウェアの前は、2010年に20億ドル (約2,400億円)でEMCに買収されたイシロンシステム (Isilon Systems) というデータストレージを提供する会社の広報を担当していました。
(最近はどのようなことを中心に従事されているのですか。)
Chefはオープンソースコミュニティにより生み出されたものであるため、私達のPR/ARおよび全体的なコミュニケーション戦略は私たちのコミュニティの成功に導くためのものであり、それが私の主な興味の対象となります。このことは、業界のアナリストがDevOpsを考察することをサポートすることから、ChefのTwitterアカウントを通してChefに関する便利な情報をシェアまで含まれます。Chefユーザーがうまく問題解決していけること、さらに言えば、DevOpsとChefがIT業界における潮流の最前線に位置づけられることができれば、それが私にとっての成功です。
(Chefの歴史をご説明いただけますか。また現在何名の開発者が参加されているのでしょうか。)
Chefは2009年に現在のChefソフトウェアのCTOであるアダム・ヤコブ (Adam Jacob)により、オープンソースプロジェクトとして開始されました。彼と他の共同設立者は、大手企業のためのITインフラをカスタムメイドし、また、そのためのコンサルティングをしてきましたが、個々の顧客に対して、繰り返し実行する彼らの作業を自動化するような、柔軟なフレームワークが欲しいと考えるようになりました。当時市場に出回っていた自動化ツールは、十分に柔軟ではなく、また、大規模な操作に耐えられるようなスケーラビリティも確保されていなかったため、アダムは自らの手でコーディングを始めると同時に、多くのアーリーコントリビューターの支援を得ることができました。同時に、アダムと彼のチームは、オライリー社 (O’Reilly Media, Inc) 主催 Velocityカンファレンスにて、同様の意見を持ち、すぐにでもプロジェクトへ参加できるという個人を見つけることができました。すぐにこの取り組みは、ベンチャーキャピタルから出資を受け、会社を設立するまでに発展していきました。今日ChefソフトウェアはUS、ヨーロッパ、その他のエリアに100人のエンジニア、240名の従業員を擁しています。
(Puppetは2005年にリリースされ、Chefは2009年のリリースとされていますが、新たなプロビジョニングツールを開発しようとした理由はなんでしょうか。)
Adamと彼のチームはPuppetのプロプライエタリーなDSLも試しましたが、大企業の複雑な環境構築の自動化を考えるとき、そのスケーラビリティに限界を感じました。当時、旧来型のITベンダーによるプロプライエタリーなソリューションには制約があり、それがアダムおよび彼のチームを新たなアプローチへと導きました。
(Chefのユースケースで何か興味深いユースケースをご存じでしょうか。)
Chefはオープンソースでの構成管理ツールとして始まり、Webの先進的開発者から大企業までのすべての人にとってDevOpsのワークフロープラットフォームへと成熟しました。構成管理は勿論もっとも伝統的なユースケースですが、今日のChefはインフラ、コンテナーといったランタイム環境およびアプリケーション、統合されたワークフローコンポーネントの自動デリバリーに利用されています。別の言い方をすれば、Chefは構成管理ツールから、継続的デリバリー (Continuous/Delivery)、クラウドマネジメント、さらにはコンプライアンスの問題への対応へと拡張しています。それに加え、ChefはDevOpsの成功モデルの取り込みを進めており、DevOpsへの移行が現在の主となるユースケースです。Target(アメリカの日用雑貨の小売業)やNordstrom (アメリカの高級デパート)、GEのすべてがChefをDevOpsおよび継続的デリバリーへの移行のためのエンジンとして利用しています。
(Chefサーバーにおいて、Erlangへの再実装をされたというニュースを拝見しましたが、その主な理由はなんでしょうか。)
それはスケーラビリティのためです。
Facebookのような会社においては、Chefサーバの大規模かつ複雑な環境構築のために、よりスケーラブルである必要があるという見解にいたりました。バックエンドをErlangで書き直したことにより、Facebookのような過去に類のない特異的な導入ケースの他、従来型の企業向けデータセンターにおける課題にも、対応できるようになり、それは勿論、新興スタートアップにおける導入においても同様です。
(Chefはアプリケーションのデプロイメントにおいても有効であると思いますか。それともCapistranoのような他のツールの利用を推奨しますか。)
私達はDevOpsを実現するため、CapistranoからJenkinsまでベストなツールを選び出すことを推奨します。その点において、私達はこの間、Chef Deliveryという継続的デリバリー (Continuous Delivery) のための初となる製品をアナウンスしました。Chef DeliveryはITインフラストラクチャに変更を自動的に適用するランタイム環境であり、かつ、アプリケーションです。このDevOps用ワークフロー製品は、テスト自動化、継続的インテグレーション (Continuous Integration)、継続的デリバリーのためのフレームワークを提供するものです。
このようにChefは、アプリケーションの継続的デリバリーを含み、DevOpsを実現するための唯一の統合された自動化プラットフォームとも言えると思います。
(Chefプロジェクトにはどのように貢献することが可能でしょうか。)
Chefコミュニティへの参加および貢献は大歓迎です。何万人もの情熱および才能を持つコミュニティメンバーを抱え、常に前進を続けています。貢献のためのプロセスは以下から参照できます。
https://docs.chef.io/community_contributions.html
(なぜオープンソースとしてリリースすることを決断したのでしょうか。また収益源はどこからくるのでしょうか。)
Chefソフトウェアの共同設立者であり、CTOのアダムは、オープンソースに関する詳細な彼の見解が以下にまとめられているので、こちらを読まれることをお奨めします。
https://www.chef.io/blog/2014/09/08/there-is-one-chef-server-and-it-is-open-source/
ビジネスにおける側面としては、私達の80%を超える収益は顧客企業からもたらされるものです。それらはChefのオンプレミス環境を用いてその複雑なインフラストラクチャを管理する大手企業、組織です。例としてはBloomberg、Disney、GE、Intuit (経理、税務ソフトの大手ベンダー)、Nordstrom、Standard Bank、Targetが挙げられます。
(Amazonとのコラボレーションについてご紹介いただけますか。)
AWSはChefにおいて、キーとなるビジネスパートナーの一つです。私たちはクラウドおよび自動化に関するトレーニング、ミートアップ、リソースを提供するAWS Loftsとパートナーを組んでいます。現在においては、サンフランシスコ、ニューヨーク、ロンドンにロフトがあり、その他の場所にもオープンの計画がされています。
ChefはAWSにおいて、複数のパートナーアワードを受賞しており、多くの顧客を共通的に抱えています。自動化技術およびクラウド技術をあわせることで、彼らのビジネス展開をサポートしています。ChefとAWSを合わせて利用している著名企業としては、USA Todayを発行する新聞社であるGannett、Scholastic、Intuit、Preziが挙げられます。
ChefはAWSのマーケットプレース上にて利用可能であり、AWSにおけるもっとも人気のあるアプリケーションの一つとなっています。
(Chef Analyticsというサービスを新しく立ち上げられたようですが、簡単にご紹介いただけますでしょうか。)
Chef AnalyticsはChefにおける特別機能です。それはChefサーバの状態をリアルタイムに可視化する機能を提供するものであり、Splunkと連携されています。この機能はChefサーバーに関する状態の可視化、およびサーバー上の変更情報に関するお知らせ通知機能、システム整合性の検証機能を提供するものです。
(現在、Chefはシステム構築に十分利用されていると思いますか。Chefの可能性についてどのようにお考えですか。)
私が言えることとしては、私達は日々、新たな進化のために努力している、ということです。私達の技術部隊は日々新たな何かを提供する、と言うゴールを設定し、今後の数か月においても、Chefにセキュリティやコンテナ対応といった新たな機能を拡張する多くの計画が立てられています。個人的にはChefは近い将来、最も革新的なIT企業の一つとなる可能性があると考えています。私達には、その可能性を実現するためのリーダーシップ、優秀な人々、ビジョンがあり、Chefの一員になれたことを非常に楽しんでいます。
(ソフトウェアエンジニアにお薦めの本はありますか。)
私自身はエンジニアではないので、良いガイダンスを提供することはできませんが、私が言えることは、ソフトウェアエンジニアはかつてないほど重要な存在になっている、ということです。すべてのビジネスはソフトウェアドリブンへと変わってきており、技術者はビジネスの成功においてより重要な要素となっています。今、エンジニアでいる、ということが、とてもエキサイティングな時代になっていると思います。
(本日はご協力ありがとうございました。)
Chefソフトウェア
Chef Supports AWS in New AWS Pop up Loft in New York City
Chef Delivery
Chef Analytics
Splunl
国産地球観測衛星の地上受信処理設備の開発の他、ITコンサルティングファームにて大規模ERP/CRM導入プロジェク トのPMOを中心として従事。現在、株式会社オープンソース活用研究所 顧問。シリコンバレー在住。
「Pensela」とは 概要 「Pensela」は、「フルサイズのスクリーンショット機能」に加えて、「画面注釈機能」を提供するオープンソースツール。 GitHub 「ISCライセンス」...
「PhotoDemon」(フォトデーモン)とは、オープンソースのWindows用ポータブルフォトエディタです。「プログレードの機能」「高性能」「最大限の使いやすさ」に重点を置いて開発されています。200を超えるプロフェッショナルグレードのツール類で、高度な画像処理を実施できます。
「LibreSpeed」(リブレスピード)とは、自己ホスト型HTML5スピードテストツールです。JavaScriptで実装されており、「Flash」「Java」「Websocket」などは使用していません。Dockerイメージによる簡単セットアップにより、Webサイト最適化サポートツールとして利用できます。
fping(エフピン/エフピング)とは、「ターゲットホストが応答しているか?」を判断する機能を提供するソフトウェアです。pingと同様にICMPエコー要求を使用する「強化版pingプログラム」として、「複数ホストへのping実行」「ターゲットリストファイル指定」などの機能を利用できます。
AVideo(エービデオ)とは「ビデオ(オーディオ)プラットフォーム」です。「ビデオサイト作成機能」「ビデオオンデマンド機能」「ストリーミング機能」「エンコード機能」などにより、独自のAvideoプラットフォームから動画配信を実施できます。「広告(課金)機能」による収益化を目指すことも可能です。
YENMA(エンマ)とは、メール受信側でドメイン認証を検証するための「Milterプログラム」です。送信者のアドレスを認証し、結果を「Authentication-Results:」フィールドにラベル付けします。Milterをサポートする「Sendmail」や「Postfix」で利用できます。
Kaltura(カルトゥーラ)とは、オープンソースの統合動画プラットフォームです。動画の「配信」「録画」「編集」「管理」「分析」などの機能を提供します。「ビデオ会議」「オンライントレーニング」「ブロードキャスト」「動画メールマーケティング」「ポッドキャスト」などのさまざまな用途で活用できます。
BigBlueButton(ビッグブルーボタン)とは、オープンソースのWeb会議システムです。HTML5ベースのWebアプリケーションとして動作し「Web会議」や「オンライン教育」などの用途で利用できます。WebRTCを使用して高品質な「オーディオ機能」「ビデオ機能」「画面共有機能」を提供します。
ImageMagick(イメージマジック)は画像処理ライブラリです。コマンドラインツールやAPIライブラリとして利用します。非常に多くの画像フォーマットに対応し、豊富かつ高機能な画像処理機能を提供します。「スレッドによる高速処理」や「巨大サイズ画像処理サポート」などの特徴があります。
XMind(エックスマインド)とは、マインドマッピングソフトウェアで、最先端の「ブレーンストーミング機能」や「マインドマッピング機能」の構築に貢献するオープンソースプロジェクトです。使いやすさと拡張性の両方に焦点を当てており、アイデアを生み出し、創造性を刺激するように設計されています。
Ax(アクス)とは、「適応実験」を理解・管理・展開・自動化するための汎用プラットフォームです。「機械学習実験」「A/Bテスト」「シミュレーション」などのさまざまな種類の実験最適化が可能で、探査戦略として「ベイジアン最適化」と「バンディット最適化」をサポートしています。
WinSCP(ウィンエスシーピー)とは、Windows用FTPクライアントアプリケーションです。「FTPS」「SFTP」「SCP」「Amazon S3」に対応しており、セキュアなファイル送受信を行えます。「Amazon S3」プロトコルに対応しているためS3クライアントとしても利用できます。
SOGoはグループウェアサーバとしてコラボレーションスイート機能を提供します。各種オープンソースソリューションを使用して「カレンダー」「アドレス帳」「メール」などをコミュニティで共有できます。「オープンスタンダード」「シンプル性」「スケーラビリティ」に重点が置かれています。
K-9 Mail(K-9メール)は、オープンソースのAndroid用電子メールクライアントです。大量のメールを簡単に読むことができるようにすることに焦点を当てて設計されています。「POP3」と「IMAP」の両方をサポートし、リアルタイム通知用「IMAP IDLE」もサポートしています。
Genius(ジーニアス)とは、オープンソースの数値計算環境およびプログラミング言語です。「BC」「Matlab」「Maple」「Mathematica」などのように利用できる汎用計算プログラムで、計算集約的なタスクではなく数学的実験を目的として開発されており、「研究用途」または「教育ツール」としても活用できます。
Bino(ビーノ)とは、「3Dビデオ」と「マルチディスプレイ出力」をサポートするビデオプレーヤーです。マルチプロジェクターセットアップなどに対応でき、「スクリプト機能」「高精度カラー入出力の自動サポート」「2台のカメラデバイスの同時使用」などの高度な機能も搭載しています。
LiVES(ライブズ)とは、オープンソースのビデオエディタおよびVJツールです。「リアルタイムのビデオパフォーマンス」と「ノンリニア編集機能」を1つのアプリケーションに統合しており、プロのVJやビデオエディターに利用されています。「フォーマット」「フレームサイズ」「フレームレート」を気にすることなく、すぐにビデオの編集や作成を開始できます。
PuTTY(パティ)とは、リモートログオンターミナルクライアントソフトです。ネットワークプロトコル「SSH」「Telnet」「rlogin」に対応しており、人気が高く世界的に利用されているソフトウェアです。「リモートサーバへのファイル転送」「公開キー認証に対するユーザー制御」などの機能も提供します。
Maximaは「Mathematica」や「Maple」のような商用システムに匹敵するコンピュータ代数システムです。Lispで実装されています。「正確な小数」「任意精度の整数」「可変精度の浮動小数点数」を使用して、高精度の数値結果を算出します。算出結果は二次元と三次元でデータをプロットできます。
OpenCV(オープンシーブイ)とは、オープンソースのコンピュータビジョンおよび機械学習ソフトウェアライブラリです。コンピュータビジョンアプリケーションに共通のインフラストラクチャを提供します。商用製品でのマシン認識の使用を促進するために構築されており、特に、リアルタイムアプリケーションに焦点を当てて高度に最適化されています。
Cygwin(シグウィン)とは、Windows上で疑似的なUNIX系OS実行環境を構築するためのソフトウェアパッケージです。Windows上で動くアプリケーションウィンドウ内にUNIX(Linux)環境を再現でき、ユーザーは多くの標準UNIXユーティリティを使用できます。
Marble(マーブル)とは、オープンソースの仮想地球儀アプリケーションです。「マップや検索場所を自由に移動」「住所を調べる」「地図作成」「距離測定」「話題の場所に関する詳細情報を取得」などさまざまな機能を提供します。地球上だけではなく、他の惑星を参照できるデータも用意されています。
nano(GNU nano)(ナノ)とは、UNIX/Linuxを中心としたシステムで利用できるテキストエディタです。「vim」や「Emacs」のように複雑なコマンドを習得する必要はなく、CUIを用いて直感的に利用できる点が最大の特徴です。
VLC media playerは、マルチプラットフォーム対応のマルチメディアプレイヤーです。非常に多くのメディアファイル用コーデックを内蔵しているため、多様なメディアファイルの再生が可能です。「シンプル」「高速」「パワフル」「高機能」「多機能」を特徴としています。
Curl(カール)とは、URLを使用してデータ転送するためのコマンドラインツールです。ライブラリ「libCurl」をベースとして動作します。多くのプロトコルに対応して、さまざまなソフトウェアのデータ転送バックボーンとして利用されています。
Tor Browser(トーアブラウザ)とは、ユーザーのプライバシーと匿名性を保護できるブラウザで、Firefoxをベースとして開発されています。Torネットワーク技術を使用することで「追跡」「監視」「検閲」を回避しながらサイトを閲覧でき、ユーザーのプライバシーを保護します。
Adblock Plus(アドブロックプラス)とは、広告ブロック機能を提供するWebブラウザ用拡張機能です。「コンテンツフィルタリング機能」や「広告ブロック機能」によって快適にブラウザを利用できます。
FileZilla(ファイルジラ)とは、クロスプラットフォームのFTPクライアントです。「並列高速転送」「FTP/FTPS/SFTP対応」「使いやすいGUI」などの特徴があります。サーバ間のタブブラウズも可能で、複数のサーバに対して同時にファイルを転送できます。
Inkscape(インクスケープ)とは、ベクトル形式の画像を作成できる多機能なドローソフト(ベクターグラフィックスエディタ)です。オープンフォーマット「SVG」をネイティブサポートしており、商用ツールに匹敵する機能と拡張性を備えています。
Wireshark(ワイヤーシャーク)とは、ネットワークプロトコルアナライザ(パケット取得/プロトコル解析ツール)です。多くのプロトコルに対応し、ネットワーク上を流れるパケット情報をリアルタイムで調査できます。世界で最も広く普及しているため、ネットワーク解析を行うための定番ツールとなっています。
FreeCAD(フリーキャド)とは、オープンソースのパラメトリック3Dモデラーです。「製品設計」「機械工学」「建築工学」など幅広い用途で利用でき、あらゆるサイズの実物体をデザインできます。
Blender(ブレンダー)とは、3DCGアニメーション作成用グラフィックアプリケーションスイートです。「3Dモデル作成」「レンダリング」「アニメーション」など非常に多数の機能を搭載しています。
GIMP(ギンプ/ジンプ)とは、高機能な画像編集ツール(イメージエディタ)です。無償のオープンソースソフトウェアでありながら、有料グラフィック編集ソフトウェアに匹敵するレベルの機能を備えています。
Thunderbird(サンダーバード)とは、Mozilla Foundationが主となり開発を進めているオープンソースの高機能メールクライアントソフトウェアです。
Firefox(ファイアフォックス)とは、オープンソースのWebブラウザです。「ページ高速表示」「Web標準準拠」「カスタマイズ性」「プライバシー保護」などを特徴としています。
GNU Wget(グニューダブルゲット)とは、ファイル取得用ネットワークユーティリティです。Webページ再帰的検索機能によるWebサイトミラーリングを行えます。
FFmpeg(エフエフエムペグ)とは、クロスプラットフォームのマルチメディアフレームワークで、ビデオ(オーディオ)ファイルに関する録音/変換/ストリーミング機能を提供します。
MusE(ミューズ)とは、録音および編集機能を備えたMIDI/オーディオシーケンサーです。オーディオとMIDIの両方をサポートするデジタルオーディオワークステーション機能を提供します。
SpiderMonkey(スパイダーモンキー)とは、JavaScriptエンジンです。Mozilla Foundationが開発しており、Firefoxなどで利用されています。
OpenToonz(オープントゥーンズ)とは、2Dアニメーション制作ソフトウェアです。DWANGOによって開発されているもので、プロユースとしてスタジオジブリ作品などで利用されています。
OSS×Cloud ACCESS RANKING