エムスリーテックブログ

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

クラウド型電子カルテにVisual Regression Testを導入した話

【デジカルチーム ブログリレー3日目】

こんにちは、エンジニアリンググループ デジカルチームの穴繁です。

今回はクラウド型電子カルテであるエムスリーデジカルのフロントエンド開発にて、Visual Regression Test (VRT) を導入した話をします。

続きを読む

Application Auto Scalingを安全に、段階的に適用する

【デジカルチーム ブログリレー2日目】

デジカルチームの瀬越です。エムスリーデジカルという医療SaaS(クラウド電子カルテ)を日々開発しています。

突然ですが、AWSのApplication Auto Scaling、便利ですよね。一方で以下のような課題もあり、どのように本番環境に適用するかは悩ましいところです。

  • どの指標を使ってAuto scalingしたらよいのか分からない
  • ユーザーに影響を与えず安全にAuto scalingを適用したい

今回は、サービスの特性に合わせてApplication Auto Scalingを段階的に適用した話をします!

続きを読む

コーポレートエンジニアリングにGoogle Cloud Workflowsを採用してみた話

【デジカルチーム ブログリレー1日目】

こんにちは、デジカルチームの鳥山(@to_lz1)です。

プロダクト開発の傍ら、人事チーム(=ピープルサクセスグループ)向けに内製したデータ基盤の開発も担当していたりします。

今回は主務の話から逸れますが、こちらの話です。Google Cloud Workflowsを採用した処理基盤が比較的うまく回っているため、開発・運用の中で得られた知見をご紹介したいと思います。

  • システムの概要
  • Google Cloud Workflowsについて
    • 具体的に利用している機能
      • Sub WorkflowによるBigQuery SQLの実行
      • parallel stepsによる並列実行
      • Terraformでのコード管理
  • 運用してみてよかったこと
  • 課題・改善したいこと
    • エラー時の対応のしやすさ
    • Cloud Functions第2世代への対応
  • まとめ
  • We are Hiring!
続きを読む

AWS Advanced JDBC WrapperによるAurora Postgresの高速フェイルオーバー

【 デジスマチーム ブログリレー1日目】

こんにちは。

デジスマチームの山本です。 クリニック向けDXサービスであるデジスマ診療のWeb フロントエンド・バックエンド・インフラを担当しています。

今回は先日AWSから発表されたaws-advanced-jdbc-wrapperについて紹介します。

  • はじめに
  • AWS Advanced JDBC Wrapper
    • 提供Plugin
  • フェイルオーバーとは
  • これまでのフェイルオーバー対策
  • AWS Advanced JDBC Wrapperを利用した場合のフェイルオーバー対策
    • Failover Connection Plugin
    • Host Monitoring Connection Plugin
  • 導入方法
    • Gradle(Kotlin)での依存先の追加
    • Spring Boot + HikariCPでの設定例
  • 実際に動かしてみた
    • 何も設定しない場合
    • 設定後
  • まとめ
  • We are hiring!!
続きを読む

明日からできる、爆速Figma活用術

こんにちは、エムスリーデザイングループでチームリーダーをやりながらエンジニアリングGも兼務しているプロダクトデザイナーの大月です。 私が所属しているエムスリーのデザイン組織は以下2つの強みがあります。

  • 多様性
  • スピード

特に日々の業務では"スピード"をとても大切にしており、 デザインを早くすることで、検証回数を増やし、PDCAを多く回し、価値創造を加速することを意識しています。

こうしたエムスリーのスピード文化から、日々の業務を効率化できるFigma活用法もデザイナーのみんなで学びあっています。

今回は、エムスリーのデザイナー間で話題になった、意外と知らなかった、知っているだけで日々の業務が一気に楽になった!というFigma活用術を紹介します。 少しでもFigmaでのデザイン作業をスピードアップさせたい方の参考になれば幸いです!

  • 爆速のための3種の神器
  • 1. 秩序をつくる
    • ファイル構成とコンポーネント構成の最低限
      • 【ファイル構成】
      • 【コンポーネント構成】
  • 2. 変更に強くする
    • オートレイアウトでしっかり組む
  • 3. 繰り返し作業は一瞬で
    • レイヤー名の一括変更 Rename Selection (⌘ + R)
    • テキストの一括検索&置き換え Find & Replace (⌘ + F)
    • レイヤー 一括選択 Select Layers (plugin)
    • 使われているスタイルを一括確認&変更 Style Organizer (plugin)
    • サンプルデータの置き換え Content Reel (plugin)
  • まとめ
  • We are hiring!!
続きを読む

StepFunctionsでDynamoDBからS3にexportする

【マルチデバイスチーム ブログリレー6日目】

こんにちは、エンジニアリンググループ マルチデバイスチームの大和です。 弊チームではAPIサーバを動かす基盤としてAWSを活用しており、ネイティブアプリから実行されるAPIサーバやDB等についてもAWS上で動作しています。 普段はこのAWS上で動いているAPIサーバの開発・運用を主に行っています。

運用業務のひとつにDBのデータを分析できる状態にすることがあります。 例えば、ユーザの行動の結果をBigQuery上で集計できるといったことが挙げられます。 今回はそれを実現する方法の一部分として、DynamoDB上のデータを日次でS3に出力する方法について解説します。

続きを読む

iOSのプロジェクト管理をXcodeGenからSwift Package Managerに移行する

【マルチデバイスチーム ブログリレー5日目】

こんにちは、エムスリーエンジニアリンググループ マルチデバイスチームの渡辺です。 スマホアプリの開発(iOS/Androidネイティブがメイン、たまにFlutter)を担当しています。

マルチデバイスチームの開発するm3.comアプリ(iOS)ではプロジェクトとマルチモジュールの管理にXcodeGenを利用しているのですが、後述する課題を感じていました。そんな中、昨年@d_dateさんによりSwift Package Managerを利用したプロジェクト管理する記事が公開されました。

www.notion.so

この記事を参考に、1日目の記事でも触れていますが現在 脱XcodeGen を進めています。

プロジェクトごとに構成が違うため、必要なステップは変わってくるのですが、m3.comアプリの構成における進め方を紹介します。

m3.com アプリ

続きを読む