【老舗DBベンダーが毎月開催】Git/コンテナを使ってプログラミングコンテストで腕試し

 【老舗DBベンダーが毎月開催】Git/コンテナを使ってプログラミングコンテストで腕試し

DevSumi 2020 Summer(2020/7/21, 翔泳社開催)インターシステムズの発表スライドです。

44873237d0c2de10bb8b23af9365b1c6?s=128

InterSystemsJapan

July 21, 2020
Tweet

Transcript

  1. 【老舗DBベンダーが毎月開催】 Git/コンテナを使って プログラミングコンテストで腕試し インターシステムズジャパン株式会社 飯島美穂子 #devsumiA-6

  2. 2 1978年からデータベース一筋 新しい技術に対応しながら、42年間 変わらないコアテクノロジを持つ データベースを開発し続けています。

  3. 3

  4. 4 直近のコンテスト jp.community.intersystems.com/tags/contest コ ン テ ス ト 勝 者

    に 賞 金 あ り ま す
  5. 5 本セッションの目標 コンテストでは、参加者にプログラミングを楽しんでいただけるよう 、開発環境のテンプ レートとして、コンテナを利用した開発環境作成手順をご提供しています。 本セッションでは、このテンプレートがどのように作成されているのかをご覧いただきな がら、プログラミングコンテストで 腕試し する準備を行っていただきます! •

    テンプレートは、コンテスト以外の用途でも自由にご利用いただけます。 • 実演では、RESTサーバを作成するテンプレートを使用します。
  6. 6 毎月違うテーマのコンテスト 開催中! InterSystems IRIS Community Edition を利用した4月~12月までのコンテスト開催内容は 以下の通りです。 •

    4月 REST API • 5月 Native API アプリケーション ― Native APIとは、Python/Node.js/Java/.NETからキーバリュータイプで操作できるアクセス方法 • 6~7月 AI/MLソリューション ― IRIS の AutoMLを利用する方法/IRIS から Python を実行できる PythonGateway を利用する方法 • 8月 FHIRアプリケーション • 9月 フルスタックアプリケーション ― IRISをデータサーバとして任意のフレームワークを利用してWeb/デスクトップ/モバイルUIを作成 • 10月 Interoperability(相互運用性)機能のアダプタ作成 • 11月 IRISを使用したマルチモデルソリューション • 12月 IRISを使用したInteroperability(相互運用性)ソリューション ≪準備その2≫ 4月開催分のRESTサーバ 作成用テンプレートを使用し、コンテ スト応募までの流れを実演します。 ≪準備その1≫コンテナを利用した開発 環境準備の例を図解でご説明します。 これからご応募いただけるコンテスト 日本からの最初の応募になるかもしれません!
  7. 7 ≪準備その1≫テンプレートで何が提供されるのか プログラミングコンテストでは、アプリケーションの開発に没頭いただけるよう、 短時間で簡単に開発環境の準備が行えるコンテナを利用した開発環境テンプレート をご用意しています。 ≪準備その1≫ テンプレートにより「何ができるか」をご確認いただくため、実際のコンテストで 利用していたテンプレートを例に、中身について解説します。 • 開催するコンテスト毎、テンプレートの内容は異なります。

  8. 8 6~7月開催コンテストテンプレート 提供内容 6~7月はAI/MLのソリューションを作る開催月でした。 ご応募いただくために最低限、以下の準備が必要です。 • 機械学習ができる環境(Python、R など)と使用するライブラリのインストール • データベースに接続するために必要なモジュールの準備

    • データ提供元となるデータベース(InterSystems IRIS)の準備
  9. 9 コンテナを使わず最初から自分で全てを用意するのは 大変! 参加者にコンテストを楽しんでいただくため、具体的なコードの記述から始めていただけるよ うに、便利な開発プロセス(=Gitからテンプレートをダウンロードし docker イメージ pullし た後にコンテナ開始)を利用できるように、開発環境テンプレートをご用意しています。

  10. 10 6~7月開催コンテストテンプレート 図解 データベース (IRIS)用コンテナ Docker hub から InterSystems IRIS

    Community Edition のイメージを pull Jupyterサーバ Tensorflow2.2 JDBC用Python3ライブ ラリ(JayDeBeAPI) を含んだコンテナ 参加者はブラウザからIRISの管理ツールや Jupyter Notebookにアクセスできます。 具体的なコード記述はテンプレート内の Jupyter Notebook を利用したり、お好みの 利用方法を選択したり自由です。 テンプレートの提供内容は開発環境 の土台のみ (=データベースとその他必要な言 語の実行環境/モジュールの準備)
  11. 11 ご参考:InterSystems IRIS Community Edition イメージ docker pull store/intersystems/iris-community:2020.2.0.211.0 docker

    pull store/intersystems/iris-community-arm64:2020.2.0.211.0 docker pull store/intersystems/iris-aa-community:2020.3.0AA.331.0 ※ 2020年7月14日時点の情報 InterSystems で検索してください 無料!
  12. 12 テンプレート起動までの手順(コンテスト共通) 1、コンテスト告知ページで情報チェック 2、OpenExchangeでテンプレート情報確認 3、Gitからソースコードダウンロード 4、コンテナ起動 5、プログラミング、用意、はじめ!

  13. 13 gitから一式をダウンロードして 以下2コマンド実行するだけ! • docker-compose build • docker-compose up –d

    コンテストの開催内容により テンプレートの中身は様々ですが 起動までの手順は全て共通です。 version: '3' services: irisimlsvr: build: context: ./iris-aa-server image: iris-aa-server:2020.3AA hostname: irisimlsvr restart: on-failure ports: - 8091:51773 # 51773 is the superserver default port - 8092:52773 # 52773 is the webserver/management portal port volumes: - ./iris-shared:/shared tf2jupyter: # tensorflow with jupyter build: context: ./tf2-jupyter-jdbc image: tf2-jupyter-jdbc:1.0.0-iml-template hostname: tf2jupyter restart: on-failure ports: - 8896:8888 # 8888 is the docker jupyter service port - 6026:6006 # 6006 is the tensorboard port volumes: - ./jupyter-samples:/tf #shared volumes ご参考:docker-compose.yml(6~7月開催分)
  14. 14 優勝作品のご紹介 5月 NativeAPIの会で優勝したブラジルのBanzaiさんの作品 • Python Native APIを使用してPythonとIRISを組み合わせ「機械学習チャットボット」を作成されました! ― チャットボットで会話したデータを

    IRIS に格納し、機械学習のトレーニングデータとして利用しています。 • さらに、Pythonの便利なグラフ用ライブラリを使用してCOVID19チャートも作成されています。 ― グラフ用のデータは IRIS に格納しています。 コンテストへの応募作品は全てOpenExchangeページで公開されています
  15. 15 ≪準備その2≫ご応募までの実際の流れ シンプルなコンテストテンプレート使用してコンテナ開始から、事前に用意される サンプルコードを利用した実行確認と、コンテスト応募までの流れをご紹介します。 • 使用するテンプレートは過去の開催分です。 • 時間の関係でソースコードやイメージのダウンロードは事前に済ませています。 例では、4月開催のREST APIコンテストで使用したRESTサーバ作成用テンプレート

    を使用します。 • IRISの独自スクリプト(ObjectScript)を使用することでデータが存在する場所でREST サーバが作成できます! Nativeの言語です
  16. 16 テンプレートで準備されるRESTサーバ作成環境 Docker Engine Docker コンテナ InterSystems IRIS Community Edition

    ネームスペース(仮想の作業環境)=IRISAPP (IRISAPPデータベースを使用する設定あり) IRISAPPデータベース Sample.Person REST ディスパッチクラス RESTのベースURL /crud の設定 RESTクライアント (Postman) POST要求でSample.Person登録 localhost:52773/crud/persons/ GET要求でSample.Person全件取得 localhost:52773/crud/persons/all テンプレートで準備される内容 RESTクライアントはお好みの ツールをご利用ください テーブル(クラス)定義の作成やREST ディスパッチクラスの開発に利用 ObjectScriptのExtension追加が必要 IDE(VSCode)をご準備ください
  17. 17 実演内容と応募までの流れ 1、コンテナ開始 2、準備完了! 4、InterSystems 開発者コミュニティ でアカウント作成 3、リモートGitにPush 5、OpenExchangeに移動しGitにPushした アプリケーションを登録

    「Send Approval」ボタンクリック 画面リロード後「Apply for Contest」ボタン クリック 応募 完了 ≪3、から応募の流れ≫
  18. 18 コンテナを利用することで環境作成が簡単に! コンテナの利用により、データベースだけでなく必要な開発言語やモジュールを含 めた開発環境が簡単に準備できます。 コンテストのテンプレートに限らず、よく利用する開発/テスト環境についても、 コンテナを再利用することで準備時間が大幅短縮できます。 •本当にやりたいことに専念する時間が増えます。 コンテストのテンプレートは全て公開しています。 • コンテストに限らず、自由にご利用いただけます。

    • いつものデータベースの1つとして をぜひご利用ください!
  19. 19 コンテストの情報は? InterSystems 開発者コミュニティで公開しています。 jp.community.intersystems.com/tags/contest

  20. 20 InterSystems 開発者コミュニティ日本語版公開! 7月16日に日本語版コミュニティ( jp.community.intersystems.com )を公開しました! コミュニティでは、開発者同士の交流の場として技術的な質問&回答はもちろん、 インターシステムズからのイベント情報、技術情報、最新リリース情報を お伝えしていきます! •

    コンテストの告知もコミュニティで行います!(contestタグ) https://jp.community.intersystems.com/tags/contest • 「はじめての InterSystems IRIS」セルフラーニングシリーズもあります!(beginnerタグ) https://jp.community.intersystems.com/tags/beginner 祝 ・ 公 開
  21. 21 現在のコミュニティ コミュニティ登録者数は2020年6月時点で 7,177名 • 英語版、スペイン語版、日本語版で公開中 プログラミングコンテストを通して 世界の開発者と繋がることができます! コミュニティへのご参加 コンテストへのご応募

    お待ちしております!
  22. ありがとうございました