PyCon JP 2019 カンファレンスレポート

2日目:農業もライブも! ますます広がるPythonの可能性

この記事を読むのに必要な時間:およそ 6 分

注目セッション「新米Pythonistaが贈るAirflow入門 & 活用事例紹介」―松田直樹

(平尾元紀)

松田直樹氏による「新米Pythonistaが贈るAirflow入門 & 活用事例紹介」のセッションの紹介です。

Airflowとは元Airbnb製のPythonで作られたオープンソースで,バッチ処理からなるワークフローのスケジューリング&モニタリングが可能なプラットフォームです。現在はApacheソフトウェア財団が管理,開発を活発に行っています。AirflowではPythonコードでワークフローをDAG(Directed acyclic graph, 有向非巡回グラフとも)表現します。これによりワークフローを構成するタスクを作成し,処理を実行していきます。

Pythonコードでのワークフロー定義(DAG)を説明する松田直樹氏

Pythonコードでのワークフロー定義(DAG)を説明する松田直樹氏

続いて社内での活用事例について,その背景と解決方法,アーキテクチャについて共有がありました。 背景として,松田氏が所属する社内向けのデジタル広告プランニングツールプロダクトでは,データがRDBに入っていないことがあり,必要なデータの用意が大変であるという問題に直面したそうです。 そこで解決方法として,開発プロダクト用データマートを作成することで,RDBにファクト,ディメンションテーブルをETLで作成する方法を紹介していました。 具体的なアーキテクチャとしては,AWS Fargate上でAirflowを利用し,カラム名を寄せるなどの処理を実現し,活用可能なデータの取り出しを実現するというものです。 解決方法を実現する上でハマったポイントとして,タスク間のデータのやり取りと,Dockerを用いたローカル開発環境の構築について共有がありました。

松田氏はエンジニア業務に入って9月で1年とのことでしたが,AirflowとAWSのサービスを組み合わせ,開発をより円滑にするための業務改善に生かしている点が素晴らしいと思いました。筆者もそうですが,データ処理で困っているときは,タスクをワークフローで処理できるAirflowの発表を聞き直して活用していきたいです。

注目セッション「Ansibleを通じて「べき等性」を理解してみよう」―Kazuya Takei

(平尾元紀)

Kazuya Takei氏による「Ansibleを通じて「べき等性」を理解してみよう」のセッションの紹介です。セッションの前半は冪等性とAnsibleの関係について,後半はAnsibleがどのようにして冪等性を担保しているかについて話していました。

冪等性とはざっくりいうと,ある操作を何度実行しても,同じ結果になる性質を持つことを意味します。AnsibleはPython製の構成管理ツールで,主にサーバーのセットアップに用いられます。Ansibleでは「動作」でなく「状態」を定義して使用する特徴があります。Takei氏はこの理由を設定ファイル内のPlaybookを見ながら説明をしていました。 同じPlaybookを実行しても2回目以降は状態に変化がないことから,ある操作を何度実行しても同じ結果になるので,Ansibleは定義された「状態に対する冪等性」を担保されるようになっています。

Ansibleの概要を説明するKazuya Takei氏

Ansibleの概要を説明するKazuya Takei氏

セッションの後半に移り,実際のAnsibleのコードを読みながら,Ansibleがどのようにして冪等性を担保しているかについて話していました。pipコマンド経由で,Pythonパッケージの状態を管理するpipモジュールを例として取り上げていました。コードの内部では,求める状態に応じて,地道にコマンドを生成していました。実行結果(リターンコード,標準出力,標準エラー)を見ながら,状態に変化があったかどうかを判定していました。

Ansibleが実現している冪等性について理解するとともに,発表で取り上げられていたコード断片を見ていると,Ansibleの内部ではリターンコードの値を見ながら処理していて,人気のあるライブラリも中では地道に作られているのだな,ということを知る良い機会となりました。これを機に人気のOSSのコードをもう少し読んで,中で何を実現しているのかを理解したいと思いました。

著者プロフィール

牛窪翔(うしくぼしょう)

事務局チームでメディアスポンサーを主に担当。PyCon JPにはPyCon JP 2019で初めてスタッフとして参加。Pythonに関しては,大学院にて機械学習,社会人にてDjangoでのシステム開発経験があり,プログラミング言語の中で一番好き。

前職はAndroidアプリエンジニア,現在は株式会社サポーターズにてエンジニア専門の中途エージェントとして転職支援やキャリア相談をしている。また,自社勉強会プラットフォームのサポーターズCoLabでマネージャーとして勉強会やハッカソンの企画・運営・自身の登壇を行っている。

ポートフォリオ:Ussy's portfolio
Twitter:@shoushi12


横山直敬(よこやまなおたか)

コンテンツチームでレビューとポスターセッション(コミュニティ)及びオープニング・クロージングとLTの司会進行を担当。PyCon JP 2017から3年間スタッフとして参加している。

また,毎月開催されている「みんなのPython勉強会」に企画スタッフとして関わり,登壇者の推薦や企画の主催を行っている。

普段は株式会社ビープラウドでPythonエンジニアとして受託開発のプロジェクトに参加する他,オンラインPython学習プラットフォームPyQの問題作成にも携わっている。

Twitter:@NaoY_py


平尾元紀(ひらおもとき)

コンテンツチームでトーク周りのレビューや連絡を担当。PyCon JPにはPyCon JP 2016に初めて一般参加し,2019年は初めてスタッフとして参加。2018年はLT,2019年はポスターで発表と,スタッフとして活動する傍ら発表者としても活動しています。

現在は株式会社いい生活でPythonエンジニアとして日々WebAPIの開発に携わる一方で,外部へのアウトプットを増やすべく技術広報としての活動もしています。ちなみにPyCon JP経由でPythonを書く仕事に転職できたという経歴を持っているため,人々が繋がる場所としてPyCon JPが発展していくよう活動しています。

Twitter:@__yumechi


nikkie(にっきー)

コンテンツチームでトークのレビューやビギナーセッションの企画,会場チームで託児室の準備・運営と,初スタッフながら精力的に活動。株式会社ユーザベース所属のデータサイエンティスト。自然言語処理の研究開発に従事している。

プライベートでは,締め切り駆動で積極的に勉強会で登壇している。また,新橋で毎月開かれる「みんなのPython勉強会」のスタッフをしたり,Django Girls Tutorialの翻訳に参加したりWorkshopでコーチとして教えたりして,Pythonコミュニティへの感謝を表している。

Twitter:@ftnext

バックナンバー

PyCon JP 2019 カンファレンスレポート