ライセンスからDevOps、AIまで幅広いトピックを紹介 Open Developers Conference 2017 Tokyo
開発者による開発者のためのカンファレンス
プロプライエタリなソフトウェアが主流だった時代に比べて、現代のソフトウェアデベロッパーは、様々な手段でソフトウェア開発に関する情報に触れる機会に恵まれている。毎週のように開催される勉強会やオープンソースソフトウェアのカンファレンスやリリース情報、そしてデベロッパー自身が発信するブログのポストなど、やる気と知識、そしてインターネットに接続できる環境があれば、自宅から一歩も出なくても多くの情報に接して知見を拡げることは可能だ。しかし実際にカンファレンスなどに参加してセッションを聞いたり、スピーカーに直接質問をぶつけてみたりすることで、よりリアリティのある情報を獲得できる。このことの重要さは、現代でも変わらない。
2017年8月19、20日に開催された「Open Developers Conference 2017 Tokyo」は、そのようなデベロッパーに向けたカンファレンスである。様々なIT企業のエンジニアやビジネスパーソンがボランティアで企画、運営を行ったこのカンファレンスでは、ソフトウェアデベロッパー向けイベントとして2日間の会期中に200名ほどの参加者が蒲田にある日本工学院専門学校に集い、様々なトピックのセッションに参加した。
最初に行われたのは「作ってからでは後の祭り、OSSライセンスについても設計しよう」と題されたセッションで、日本電気の姉崎章博氏が講演を行った。ここでは「GPL v2のOSSとApache License 2.0のOSSを改造して結合したプログラムを開発した場合、無料でもソースコードを公開してもパッケージソフトとして販売できない。その理由は?」という問いを参加者に投げかけ、オープンソースソフトウェアにまつわるライセンスとその許諾に関わる理解を深めることの必要性を解説した。
姉崎氏は特に著作権に関して、「『契約』という言葉が日本では安易に使われていることに留意すべきだ」と強調し、「GPLは契約ではなく一方的な許諾である」と解説した。すでにオープンソースソフトウェアに慣れているエンジニアや経験豊富なビジネスパーソンであれば、ある程度は知っていると思われる内容であったが、参加者の中でも若手にカテゴライズされるエンジニアにとっては、新鮮な内容だったのではないだろうか。
ちなみに冒頭の問いに対する解答は、以下の姉崎氏のプレゼンテーションを参照されたい。
姉崎氏のプレゼンテーション(PDF):http://jpn.nec.com/oss/osslc/doc/20170819_ODC_Tokyo_32up.pdf
次のセッションは、一般社団法人PyCon JPの寺田学氏による「Python 機械学習ことはじめ」と題した講演だ。これは近年、注目を集めるPythonを使って機械学習を初歩のレベルから習得することを目標として行われたものだ。内容は、公開されている千葉市のインフルエンザ症例のデータと気象庁の気候に関するデータを使って、天気とインフルエンザ発症の相関を機械学習させるというものだ。
PythonとJupyter Notebook、Pandas、そしてMatplotlib(処理結果のビジュアライゼーション用)を使い、機械学習にはscikit-learnを使って短時間でデータの前処理から機械学習の実行と可視化、そしてテストデータを使った検証について解説を行った。データの整形、80:20で学習データと教師データを分けて利用すること、評価に関する様々な注意点など、これからPythonを使って機械学習を始めたいと考えているデベロッパーにとっては、非常に有用なセッションだったように思える。特にメモを取りながらPythonコードを実行できるJupyter Notebookは、強力なツールになりそうだ。寺田氏のプレゼンテーション資料は、以下を参照してほしい。
寺田氏のプレゼンテーション:https://speakerdeck.com/terapyon/pythonji-jie-xue-xi-kotohazime
ランチタイムには今回の企画、運営に参加している仮想化技術株式会社のCEO、宮原徹氏が登壇した。自社の紹介から、仮想化、OpenStackなどのクラウドコンピューティング、そして自身の過去の経験からテストの自動化に興味があることを説明した後に、DevOps超入門としてコードの管理、テスト自動化、CI/CDの自動化に対するツール群などを紹介した。
仮想化技術の提供するサービスとして単にDevOpsのベストプラクティスを紹介するのではなく、様々なツールを組み合わせて最適なDevOpsツールチェインをまとめて「DevOps as a Service」として提供したいと語り、仮想化技術株式会社が手がける今後のサービス提供の方向性を示唆した。
宮原氏は、DevOpsを「開発と運用が協力しあう開発手法」として解説。DevOpsによって開発状況の可視化が可能だとして、進捗の確認にはチケット駆動型開発、品質の確認にはテスト駆動型開発を応用することで、ビジネスの観点からもDevOpsの利点を説明した。ただし、日本のエンタープライズによく見られるような開発と運用が隔離された状況への対策の紹介というよりは、主にツールの使い方の紹介がメインの講演であった。
次のセッションでは、さくらインターネットの前佛雅人氏がDockerの最新情報を紹介した。前佛氏は最新バージョンのDockerの機能について解説を行い、特にDockerの持つネットワーク機能の概略を紹介し、ingressと呼ばれるDockerが実現するメッシュネットワーク機能について、デモを交えた解説を行った。
今回の参加者の中にとっては、Dockerおよびコンテナそのものの理解はある程度進んでいたが、Dockerの最新情報のアップデートが行われたことにより、コンテナに関わる理解がさらに深まったように思える。しかしDockerそのものにはまだ注意点が多いとしていくつかのリスクを紹介した。
今回取材できた最後のセッションに登壇したのはピクシブ株式会社の伏田大貴氏で、「Pixivを支えるPHPの技術」と題された解説を行った。
ここではPixivのサービスの概要、特にPC向けとスマートフォン向けの違いなどを紹介し、ピクシブの社内でPHPがどのように使われているのかを解説した。興味深かったのは、オブジェクト指向のコードを諦めて、クラスを利用せずに共通ライブラリとそれ以外のサービスのロジックを、モノリシックなアプリケーションとして開発し直したという部分だろう。特に「オブジェクト指向ではなく手続き型」というスライドで紹介されたように、開発に利用するエディタの使い勝手が優先された経緯があることで、一つの開発チームにまとまって全てのコードが開発されており、結果的に無理にオブジェクトを多用しなくても開発効率を上げることができたという辺りに、参加者は興味を惹かれたのではないであろうか。
さらに、Web開発にはつきもののフレームワークを排したPHPによる開発の実施など、名より実を取った開発スタイルはマイクロサービスによる開発手法を推進しているベンダーには耳が痛い話だったかもしれない。またピクシブ社内ではコードの質を上げるために、毎週2時間の「雪かき」と呼ばれるリファクタリングのためだけの時間を設定して、エンジニアがコードを見直していることも紹介された。この辺りも参考になる事例と言えるだろう。なお、Dockerなどのコンテナもまだ様子見ということで、流行に左右されないスタイルが逆に新鮮なセッションと質疑応答となった。
今回のカンファレンスは、セッションのスピーカーも運営もボランティアで行われていたようだ。まだスピーカーになる自信のない若いエンジニアも、ボランティアとして運営側に参加することで第一歩を踏み出すことをお勧めしたい。巨大なカンファレンスよりも、こういう手作り感のあるイベントから始めることで何よりも社外のネットワークを構築できることは重要であろう。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- CloudNative Days Tokyo 2019開催。Airbnb、IBM、Canonicalなどが登壇
- CNDO 2021、サイバーエージェントのテックリードがコンテナランタイムの最新情報を解説
- Open Source Leadership Summit開催、変化に対応し持続するために何をするべきか?
- OpenShift Commons GatheringからMicroShiftとCockroachDBを紹介
- CloudNative Days Tokyo 2021が11月に開催 記者会見で見えた「繋げる」の意味
- デベロッパー広報?のためのカンファレンス、DevRelCon開催
- CloudNative Days Tokyo 2019:メルペイのマイクロサービス化の目的とは?
- All Things OpenでRed HatのBurr Sutter氏にインタビュー。最高のデモを見せる極意とは?
- LinuxCon+ContainerCon+CloudOpen China開催。中国企業の存在感が大きかった初日
- GitHub Satellite都内で開催。MSによる買収発表後もブレない姿勢を見せる