Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

InterSystemsJapan

July 21, 2020
Tweet

More Decks by InterSystemsJapan

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. 3

    View Slide

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














    View Slide

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

    View Slide

  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≫コンテナを利用した開発
    環境準備の例を図解でご説明します。
    これからご応募いただけるコンテスト
    日本からの最初の応募になるかもしれません!

    View Slide

  7. 7
    ≪準備その1≫テンプレートで何が提供されるのか
    プログラミングコンテストでは、アプリケーションの開発に没頭いただけるよう、
    短時間で簡単に開発環境の準備が行えるコンテナを利用した開発環境テンプレート
    をご用意しています。
    ≪準備その1≫
    テンプレートにより「何ができるか」をご確認いただくため、実際のコンテストで
    利用していたテンプレートを例に、中身について解説します。
    • 開催するコンテスト毎、テンプレートの内容は異なります。

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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 で検索してください
    無料!

    View Slide

  12. 12
    テンプレート起動までの手順(コンテスト共通)
    1、コンテスト告知ページで情報チェック 2、OpenExchangeでテンプレート情報確認 3、Gitからソースコードダウンロード
    4、コンテナ起動
    5、プログラミング、用意、はじめ!

    View Slide

  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月開催分)

    View Slide

  14. 14
    優勝作品のご紹介
    5月 NativeAPIの会で優勝したブラジルのBanzaiさんの作品
    • Python Native APIを使用してPythonとIRISを組み合わせ「機械学習チャットボット」を作成されました!
    ― チャットボットで会話したデータを IRIS に格納し、機械学習のトレーニングデータとして利用しています。
    • さらに、Pythonの便利なグラフ用ライブラリを使用してCOVID19チャートも作成されています。
    ― グラフ用のデータは IRIS に格納しています。
    コンテストへの応募作品は全てOpenExchangeページで公開されています

    View Slide

  15. 15
    ≪準備その2≫ご応募までの実際の流れ
    シンプルなコンテストテンプレート使用してコンテナ開始から、事前に用意される
    サンプルコードを利用した実行確認と、コンテスト応募までの流れをご紹介します。
    • 使用するテンプレートは過去の開催分です。
    • 時間の関係でソースコードやイメージのダウンロードは事前に済ませています。
    例では、4月開催のREST APIコンテストで使用したRESTサーバ作成用テンプレート
    を使用します。
    • IRISの独自スクリプト(ObjectScript)を使用することでデータが存在する場所でREST
    サーバが作成できます!
    Nativeの言語です

    View Slide

  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)をご準備ください

    View Slide

  17. 17
    実演内容と応募までの流れ
    1、コンテナ開始 2、準備完了!
    4、InterSystems 開発者コミュニティ
    でアカウント作成
    3、リモートGitにPush
    5、OpenExchangeに移動しGitにPushした
    アプリケーションを登録
    「Send Approval」ボタンクリック
    画面リロード後「Apply for Contest」ボタン
    クリック
    応募
    完了
    ≪3、から応募の流れ≫

    View Slide

  18. 18
    コンテナを利用することで環境作成が簡単に!
    コンテナの利用により、データベースだけでなく必要な開発言語やモジュールを含
    めた開発環境が簡単に準備できます。
    コンテストのテンプレートに限らず、よく利用する開発/テスト環境についても、
    コンテナを再利用することで準備時間が大幅短縮できます。
    •本当にやりたいことに専念する時間が増えます。
    コンテストのテンプレートは全て公開しています。
    • コンテストに限らず、自由にご利用いただけます。
    • いつものデータベースの1つとして をぜひご利用ください!

    View Slide

  19. 19
    コンテストの情報は?
    InterSystems 開発者コミュニティで公開しています。
    jp.community.intersystems.com/tags/contest

    View Slide

  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




    View Slide

  21. 21
    現在のコミュニティ
    コミュニティ登録者数は2020年6月時点で 7,177名
    • 英語版、スペイン語版、日本語版で公開中
    プログラミングコンテストを通して
    世界の開発者と繋がることができます!
    コミュニティへのご参加
    コンテストへのご応募
    お待ちしております!

    View Slide

  22. ありがとうございました

    View Slide