DevRelという仕事
――IBMのデベロッパーアドボケイトとして、現在どのような活動をされていますか。
IBMのデベロッパー・アドボカシー事業部のミッションは、「開発者が現実社会の問題を『賢く』『素早く』『一緒に』解決できるようにする」というものです。これは私たちの事業部がグローバル共通に定めたもので、このミッションに基づき私もエンジニアが必要としている情報を提供しています。具体的には、オフラインではセミナーを始め、お客様を訪問しての開発者との対話、ハッカソンのサポート、コミュニティの支援。オンラインではウェビナーの開催、ブログやソーシャルメディアを通してのコンテンツ配信があります。特にTwitterを通じたコミュニケーションと、オープンソースコミュニティへの貢献の二つには力を入れています。
KubernetesあってのOpenShift
――IBMがRed Hatの買収を完了したのが2019年の7月。この手続き完了で、IBMとRed Hatはどのようにビジネス連携することになったのでしょうか。IBM社員としてどんな変化を実感していますか。
Red HatとIBMは独立性を保った形で存在していて、同じオフィスで働いているわけではありません。とは言え、IBM Cloud上でRed Hatのテクノロジーを使うことにとどまらず、IBM Cloud Paksのような新しいサービスも登場していますし、IBMのお客様にとっては選択肢が増えていると言えるでしょう。
IBM Cloudで何ができるかを学んでもらう場として、私たちはIBM Developer Dojoも週に一度開催していますが、今年の秋はOpenShiftへのニーズの高まりから週2回の頻度になりました。集客もIBMのオフィシャルサイトからではなく、開発者のカルチャーに合わせてconnpassを使っていますし、DojoではIBM社員枠も設定していて、社外の人やお客様と共に学ぶ場にもなっています。
――IBMからOpenShiftに関する情報発信の機会が増えているわけですね。ここで改めてOpenShiftがどんなプロダクトなのかと、Kubernetesとの違いについて確認させてもらえますか。
とてもよく聞かれる質問ですが、二つを比べるのは適切ではないと思います。Kubernetesはオープンソースで展開されているコンテナテクノロジー。一方のOpenShiftはKubernetesの運用管理を容易にするためにRed Hatが提供しているテクノロジーです。OpenShift はKubernetesありきの存在ですから、並列に比較することはできません。
どちらを選ぶべきかという意味では、二つの違いを理解する必要があると思います。まず、KubernetesはOSS(Open Source Software)ですから無料で使うことができますが、アプリケーションの数が増えるに従い、死活管理やメンテナンスが複雑になるという問題があります。また、Kubernetesのセキュリティについては脆弱性の問題も指摘されていますし、3か月に一度のバージョンアップごとに、コンテナの上のアプリケーションの動作検証が必須です。対照的にOpenShiftでは、使用料金あるいはライセンス料金を支払う必要があるものの、Kubernetesの場合に運用担当者が担うべき負担の軽減をRed Hat側がサポートしてくれるという利点があります。
さらに、Kubernetesでアプリケーションをデプロイする時は、YAMLという言語で設定ファイルを記述しなくてはなりません。これらのYAMLの記述やYAMLファイルの管理は大きな負担となり「YAMLの壁」と呼ばれています。対照的に、OpenShiftのWebコンソールはとても良くできていて、YAMLでの詳細な記述は必要ありませんし、コマンド慣れしていない方にも使いやすく、かつデプロイの自動化を促進する統合ツールが最初から用意されているという特徴があります。
充実した管理機能を提供しているOpenShift
――OpenShiftが運用管理のハードルの高さを吸収する機能を足していることがよくわかりました。OpenShiftの開発者向けに便利な機能を教えてください。
OpenShiftを利用するメリットは色々ですが、開発者視点ではS2I(Source-to-Image)という仕組みが挙げられます。これはソースコードからコンテナイメージを指定するだけで、アプリケーションを自動的にデプロイできるというものです。S2Iを使うとソースコードとコンテナが分離しているので、ソースコードの開発やテストに集中することができます。また、デプロイ時においては構成管理ツールのAnsibleのPlaybookからアプリのワーカーノードと呼ばれるコンテナ実行環境を追加できる点も便利ですし、OpenShiftではインフラエンジニア向けのツールも充実しています。例えば、PrometheusやGrafanaのようにKubernetesにはないコンテナ監視に特化したツールがありますし、ロードバランサーも標準機能として装備されています。
――OpenShiftにはKubernetesよりも便利な機能があるわけですね。OpenShiftはどんな要件のアプリケーションに適していますか。
OpenShiftはあらゆるエンタープライズで採用する価値があるプロダクトだと思います。特定の業界だけのものでもありません。強いて言えば、インターネットを介したサービスデリバリーを行う案件で有用と言えるでしょうか。例えば、IBMのグループ会社の一つに気象データとそれを活用したソリューションを提供するThe Weather Companyがあります。その稼働環境として使われているのがRed Hat OpenShift on IBM Cloudです。気象情報サービスのように、スケーラビリティの担保とセキュリティの強化が不可欠なアプリケーション稼働環境を構築したい場合、OpenShiftは必ず選んでほしい選択肢です。
――Red Hat OpenShift on IBM Cloudの話が出てきたところで伺いますが、OpenShiftをIBM Cloudで使うことでどんなメリットを得られますか。
IBM Cloudはセキュリティ標準を始めとするさまざまな認証を取得しているので、多種多様な業種のお客様が安心して環境を使うことができます。私がIBMらしいと思うのが、シングルテナントやマルチテナントだけでなく、ベアメタルの選択肢を用意していることです。これは自分だけの環境を確保したいと考えるエンタープライズのお客様にとって魅力的だと思います。また、AIやブロックチェーンを含む190種類のテクノロジーを組み合わせて動かすことができるのも、IBM Cloudだからこそです。もう一つ付け加えると、お客様へのコンサルティングやSIをサポートする専門チームもいるので、導入から運用管理に至るまでをお客様と伴走しながら支援できる点もIBMの強みです。
3つのCでエンジニアをサポート
――では、OpenShiftを使いたいと思った企業は何から始めればいいでしょうか。
まず、2019年11月から2020年5月にかけて、ハンズオンプログラムが中心のイベント「Kubernetes with OpenShift World Tour」を各国で展開します。日本では、「IBM Developer Dojo」にて行います。IBMでは、グローバルでコンテナ技術を使えるエンジニアを増やすことを急務と考えており、イベントではトレーニングを無償で提供しています。開発者が自分の手を動かしてOpenShiftでできることを学習し、成功体験を持ち帰って、次につなげてもらうことができればと考えています。ぜひconnpassの「IBM Developer Dojo」のページで最新スケジュールをご覧ください。
開発者向けの情報提供では、「IBM Developer」サイトがあります。旧「IBM DeveloperWorks」というサイトを開発者向け情報ポータルとしてリニューアルし、Red Hat関連の最新情報もこちらに載せるようにしました。セミナーの最新情報や記事、および自己学習用のコンテンツを提供しており、ブックマークをお勧めしています。また、使い方のアイデアを必要としているエンジニアに向けては「IBM Developer」の中にある「Code Patterns」が参考になると思います。
――今後、OpenShiftに関するどのような開発者へのサポートをしていきたいですか。
2019年11月に出版した著書『DevRel エンジニアフレンドリーになるための3C』(翔泳社)でも書いた「DevRelの3C」をキーワードにOpenShiftを広めていきたいと考えています。
3Cの最初のCがCode(コード)です。Code Patternsで実際に使えるサンプルコードを提供することに加え、エンジニアに使ってもらえるわかりやすいコードを自分たちで書いて提供していきたいと考えています。2番目のCはContent(コンテンツ)です。IBMドメイン配下の記事を読んでもらうことだけでなく、アドベントカレンダーのようにエンジニアが読んでくれる機会の多いところに情報を提供していくつもりです。今のところ日本語のコンテンツが英語ほど充実していないのが課題で、要点だけでも素早く提供できないかと考えています。最後のCはCommunity(コミュニティ)になります。Dojoの他にもコンテナ関係のコミュニティは多いので、参加したお客様との対話やサポートを通じて、私自身もOpenShiftの1ユーザーとしてコミュニティを盛り上げたいですね。
また、「Call for Codeグローバル・イニシアチブ」の取り組みもさらに強力に進めていきたいと思います。これはエンジニアが最新のテクノロジーを使って世界の社会問題を「コード」で解決することを試みる長期的なプロジェクトです。2019年のテーマは自然災害の解決で、5000を超えるアプリケーションの応募がある中、稼働環境にKubernetesを活用したものが上位に来ていたことが印象的でした。Kubernetesのような最新テクノロジーを駆使して、社会に貢献することもエンジニアが一人の人間として成長する上で大事だと思います。日本でこの活動を広めることにも取り組んでいくつもりです。
日本IBM シニアデベロッパーアドボケイト 戸倉 彩氏
CACでのサポート業務でエンジニアとしてのキャリアをスタート。セキュリティ関連やネットワーク周りに関心を持ったことをきっかけにシマンテックにシステムエンジニアとして入社。米国本社での勤務を含め、サーバー/クライアント系に特化したセキュリティの知識と経験を積む。帰国後は日本ベリサインにワンタイムパスワードなどの製品群のプロダクトマネージャーとして入社し、Security as a Serviceビジネスの立ち上げに従事。その後、マイクロソフトにて約6年間にわたり、Microsoft Azureのテクニカルエバンジェリストとして活動。ここで、自分のキャリアの棚卸しをしようと4か月フリーランスで働いた後、「最もやりたいことは開発者とのリレーションを築く仕事(DevRel)」だと気づき、IBMでデベロッパーアドボケイトの仕事に従事する。日本クラウドセキュリティアライアンス(CSAジャパン)個人会員。