エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

GKE上の一定時間経過したJobを自動削除する

こんにちは。
エムスリーエンジニアリンググループ AI・機械学習チーム 堀江です。

弊チームでは、YAMLの設定に従って自動でモデルの学習 & 推論 & 評価まで行ってくれるようなMLパイプラインのプロダクトをGKE上に構築して運用しています。
MLパイプラインにより、パラメータを変えた実験を並列に大量に行うことが可能になっており、多いときには同時に数十Jobが走っていたりします。

そのような運用をしていると問題になるのが完了した (失敗を含む) Jobの後片付けです。

ttlSecondsAfterFinished

実はkubernetesには完了したJobのcleanup機能が備わっています。

TTL mechanism for finished Jobs

以下のように ttlSecondsAfterFinished を設定すると、完了したJobを自動的に削除してくれて非常に便利なんですが、この機能、一向にalphaからステータスが変わりません (2021年3月現在)。

apiVersion: batch/v1
kind: Job
metadata:
  name: pi-with-ttl
spec:
  ttlSecondsAfterFinished: 100
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never

kubectlやコントローラの自作によって ttlSecondsAfterFinished の代替機能を作成している方もいるようですが、今回は弊チームで運用しているGitlab CI上のスケジューラでJobステータスを監視し自動的に削除してくれる機能を実装しました。

続きを読む

デザインの力で医療の前進を加速させる。エムスリーCDO古結隆介

デザインの力で医療の前進を加速させる

 

みなさん、こんにちは。エムスリーデザイングループでグループリーダーを務めている古結(こげつ)です。

 

エムスリーでは、よりプロダクト志向な組織化を目的として2020年10月1日にCDO(Chief Design Officer、最高デザイン責任者)を設置し、初代CDOとしてVPoE/PdMの山崎が就任しました。

 

そして今回、2021年4月1日から2代目として私、古結(こげつ)がCDOを引き継ぐ形となりました!

 

今回、エムスリー2代目CDO就任の背景や目的、またはデザイン組織の目指すところなどをお伝えさせてください。

 

  • プロフィール
  • 背景
  • なぜCDOに就任したのか
  • どんな組織を目指すのか
  • 医療業界を改革することのやりがい
  • We are hiring

 

続きを読む

オンプレのアンケートシステムからクラウドへの切り替えをいい感じにデプロイした話

こんにちは、エムスリーエンジニアリングGの佐々木です。

BIRというチームでアンケートシステム周りの開発を担当しています。

BIRでは新規のアンケートシステムを作ったりする傍、昔から稼働しているオンプレ上のアンケートシステムのクラウド移行を進めています。 今日は、昔に作られたレガシーなアンケートシステムをオンプレからクラウド移行する際に少し工夫をしたことで安全にリリースできた話をしたいと思います。

続きを読む

Elasticsearchで関連キーワード機能がどれだけ低コストで実装できるかの旅路

f:id:abctail30:20210329004317p:plain
クエリに対する関連キーワード機能

エムスリーエンジニアリンググループ AI・機械学習チームの中村(@po3rin) です。 好きな言語はGo。仕事では主に検索周りを担当しています。

Overview

最近の仕事で医師に質問ができるサービスで「Elasticsearchを使ってなるべく低コストで関連キーワード機能を実装する」という案件に携わっていました。本記事では関連キーワード機能を低コストで実装するための技術調査の結果と、実際に採用した方法をご紹介します。

今回紹介する方法は機械学習などは使わず、なるべく低コストである程度の品質を目指すものです。この記事を読むことで検索アプリケーションにサクッと関連キーワード機能を実装できるようになるでしょう。

  • Overview
  • 検索における関連キーワード機能とは
  • 実装の前提条件
  • 実装パターンの紹介
    • (1) ログで出現した単語を数えあげる
    • (2) ログに対するSignificant terms aggregation
    • (3) ログに対してSignificant terms aggregation (形態素解析あり)
    • (4) ドキュメントに対してSignificant terms aggregation (形態素解析あり)
  • 実装パターンの比較
    • 評価指標設定
  • 類似語の除去についての考察
    • 単語分散表現を使った類似語判定
    • 採用した類似語のルールベース除去
    • 類似語の除去のまとめ
  • 検討結果
  • まとめ
    • We're hiring !!!
  • Reference
続きを読む

デジカル開発チームが品質を保つための2つの取り組み

こんにちはエンジニアリンググループの森内です。 私はエムスリーデジカルというクラウド型電子カルテのチームでQAを担当しております。 本ブログではデジカルチームの中で、品質向上に関わる良い取り組みをご紹介します。

  • デジカルとは?
  • 開発サイクルとQAの関わり
  • 紹介したい運用
    • 開発者目線でのQA観点の提供
    • 品質計画書
  • 今後の課題
  • We're hiring!
続きを読む

iOS向けに作った子供向けのアプリをFlutter Webでpublishしてみたら思いの外良かった

エムスリー エンジニアの岩本です。

4月から小学生1年生になる子供を育てています。

最近子供と図鑑を見ていました。そのとき目次をから目的のページが250ページにあるということがわかったようです。 しかし、一度開いた150ページあたりから250に向かうのではなく、100ページの方に戻っていってしまいました。 それを見て「あれ?もしかして数字の概念が全くわかってない?」と心配になってしまいました。 とはいえ、数字は1〜100まで数えられるし、一桁の足し算引き算は指などを使ってできます。

数字の概念がわかっていないのはまずいので確認しようと考えました。 そこでどうせなら最近業務で触り始めたFlutterを使って理解度を確認するアプリを作ってみることにしました。

続きを読む

春の terraform お掃除日記

こんにちは、エムスリーエンジニアリングGの榎田です。趣味は数学とゲームです。エオルゼアで耐水綿布の相場が暴落するのを見て経済に興味を持ち始めました。

もうすぐ春、一般的には新たな出会いと別れの季節とされています。私たちのチームでも、新たなサービス・企画に向けて日々開発を進めています。新規サービスの立ち上げということは、インフラの構築も必須です。今日はそのようなサービス構築時のインフラ構築を aws terraform provider で行った際の雑多な思い出を述べようと思います*1

  • インフラ構築の背景
  • ディレクトリ構成の変化
  • terraform project の分割
    • terraform にできることは terraform にやらせよう
    • terraform にできないことを私たちに
  • module の使いどころ
    • resource の wrapper にしない
    • テンプレートとして使う
  • まとまった tf ファイル
  • まとめ
  • We are hiring!

*1:雑多な思い出という言葉を選んだ事情は次のようなものです。弊社福林の記事 https://www.m3tech.blog/entry/2020/07/27/150000 にもあるように、terraform の適切な使い方は状況に依るところ大でしょう。そのような技術に対して、本稿は「ベストプラクティス」みたいな大上段なものを提供するつもりはなく、「こういう状況だとこういう感じでした」という具体的なケースを示したいという気持ちがあります。

続きを読む