タグ

ブックマーク / tech.medpeer.co.jp (31)

  • Ruby 3.3(+YJIT)へのアップデートによるパフォーマンス変化の計測 - メドピア開発者ブログ

    こんにちは。サーバーサイドエンジニアの @atolix_です。 今回はメドピアで番運用をしているアプリケーションの1つであるやくばと for Clinicにて、Ruby 3.2からRuby 3.3にアップデートを行った際のパフォーマンスの変化を計測しました。 Ruby 3.3ではYJITの大幅な改善が含まれているので、これによるアプリケーションへの影響を確認していきます。 www.ruby-lang.org gihyo.jp 前提 記事に記載されたデータは以下の条件で計測をしています。 Rails: 7.1.3.4 YJIT有効化時のオプションは特に付与していない状態(Dockerfileから環境変数を与えて有効化) 3.2.4(+YJIT)から3.3.1(+YJIT)へのアップデート 有効化前後の1週間を比較 パフォーマンスの変化 やくばと for Clinicではモノレポのアプリケ

    Ruby 3.3(+YJIT)へのアップデートによるパフォーマンス変化の計測 - メドピア開発者ブログ
    honeybe
    honeybe 2024/07/06
  • A/BテストツールとしてCloudWatch Evidentlyを導入してみた - メドピア開発者ブログ

    サーバーサイドエンジニアの熊木(@k_kumaki_)です。 先日、私が担当しているヤクメドにA/BテストツールとしてAWSのサービスであるCloudWatch Evidentlyを導入したので、その経緯や内容についてまとめます。 目次 目次 CloudWatch Evidentlyとは 導入に至った経緯 導入理由 導入方法 1. プロジェクトの作成 2. 機能の追加 3. アプリ側の対応 よかった点 自分で細かな定義が可能 導入が簡単 終わりに CloudWatch Evidentlyとは AWS上でA/Bテストやフィーチャーフラグの管理ができるサービスです。 比較的新しいサービスのため、馴染みのない方も多いかもしれません。 aws.amazon.com 導入に至った経緯 私が開発しているサービスであるヤクメドでは、UX向上のためA/Bテストを実施しています。 そのA/Bテストツールとし

    A/BテストツールとしてCloudWatch Evidentlyを導入してみた - メドピア開発者ブログ
    honeybe
    honeybe 2023/10/08
  • お財布に優しいCI改善小ネタ集 - メドピア開発者ブログ

    こんにちは。サーバーサイドエンジニアの三村(@t_mimura)です。 主に保険薬局と患者さまを繋ぐ「かかりつけ薬局」化支援アプリ kakariのサーバーサイド開発(Ruby on Rails)を担当しています。 今回はRailsシステムのCI時間をコスト追加なしで半減した話をします。 目次 前提 対象プロジェクト CIの状況 改善結果 改善内容 前提知識: CIのキャッシュ機能 webpack buildのキャッシュを活用 RuboCopのキャッシュを活用 ESLintのキャッシュを活用 Jestのキャッシュを活用 RSpec Jobをテスト特性ごとに分割 CircleCIのリソースクラスと並列数の最適化 採用しなかった・見送った改善候補 HAML-Lint, Fasterer, Brakemanのキャッシュを活用 Stylelintのキャッシュを活用 bootsnapを活用 Jestの

    お財布に優しいCI改善小ネタ集 - メドピア開発者ブログ
    honeybe
    honeybe 2023/09/17
  • Terraform Provider を自作し SendGrid リソースを管理した話 - メドピア開発者ブログ

    SRE の田中 @kenzo0107 です。 Terraform Provider kenzo0107/terraform-provider-sendgrid を作成し、SendGrid のリソースを terraform で管理する様にした話です。 https://registry.terraform.io/providers/kenzo0107/sendgrid まず弊社の SendGrid リソース管理の Before/After をご覧ください。 弊社の SendGrid リソースの管理方法 Before SendGrid コンソール上で手動でリソースの作成・更新・削除していました。 特にチームメイトは以下運用で工数が肥大化していました。 定期的な棚卸し メールアドレスを元にプロジェクト担当者(or 退職者)かをチェック 弊社の SendGrid リソースの管理方法 After -

    Terraform Provider を自作し SendGrid リソースを管理した話 - メドピア開発者ブログ
    honeybe
    honeybe 2023/09/12
  • 大規模サービスのデータベースエンジンを MySQLからAurora MySQLへの移行 〜リードレプリカ, DNSを利用した最小ダウンタイム移行方法〜 - メドピア開発者ブログ

    バックエンドエンジニアの徳富(@yannKazu1)です。先日、メドピアのメインサービスであるmedpeer.jpで使われているデータベースエンジンを、MySQLからAurora MySQLへと移行しました。今回はその移行のプロセスについて詳しくお話しします。 移行したデータベースの簡単なインフラ構成 移行方針 今回移行するデータベースは複数のアプリケーションから参照されており、ダウンタイムによるユーザー影響が大きいため、移行方針の検討の段階で重視したのは、ダウンタイムの最小化でした。これを達成するために、DNSのCNAMEレコードと、Auroraのリードレプリカを活用し、移行させることにしました。 DNSのCNAMEレコードの使用 データベースエンドポイントをアプリケーションに直接記述する代わりに、DNSのCNAMEレコードを利用して間接的に参照するようにしました。これにより、データベー

    大規模サービスのデータベースエンジンを MySQLからAurora MySQLへの移行 〜リードレプリカ, DNSを利用した最小ダウンタイム移行方法〜 - メドピア開発者ブログ
    honeybe
    honeybe 2023/08/22
  • 2ヶ月半で Nuxt サービスを 3.5 個つくった話 - メドピア開発者ブログ

    フロントエンドエンジニアの小林和弘です。 去年の 4 月に「Web アプリを 3 つ使ったサービスを 3 ヶ月でつくりたい」という話が降ってきて、無茶を現実にした話をします。 新規サービス「やくばと」で Workspaces のモノレポを使って、医療機関画面、薬局画面、患者画面の 3 つの Nuxt を構築しました。 やくばととは 医療機関、薬局、患者さまの間でやり取りされる医療機関起点の薬局向け処方せん画像事前送信サービスです。処方せんに関する業務負荷を軽減すると共に、患者さまの大きな負担である医療機関、薬局での待ち時間を軽減するということを主な目的としたサービスです。 医療機関、薬局の DX を進め、患者さまの負荷軽減に貢献できる素晴らしいサービスになっています。 開発チームでは医療機関、薬局、患者さまに提供している Web 画面をそれぞれ医療機関システム、薬局システム、患者システムと

    2ヶ月半で Nuxt サービスを 3.5 個つくった話 - メドピア開発者ブログ
    honeybe
    honeybe 2023/06/13
  • Railsプロジェクトへの「頑張らない型導入」のすすめ - メドピア開発者ブログ

    こんにちは。サーバーサイドエンジニアの三村(@t_mimura)です。 主に保険薬局と患者さまを繋ぐ「かかりつけ薬局」化支援アプリ kakariのサーバーサイド開発(Ruby on Rails)を担当しています。 突然ですが! この度kakariプロジェクトは「型導入」をしました! kakariのRailsリポジトリに型導入PRがマージされた様子 皆さんのプロジェクトは「型導入」していますか? 「型導入」しているRailsプロジェクトはまだ少ないのではないでしょうか なぜ型導入しないのか 型を導入すると何かしらが便利になることは分かっているのに何故やらないのでしょうか(煽り気味) 「型の恩恵」と「型を自分たちで書くコスト」の2点を比較していませんか? RubyKaigi 2023開催前の私がまさしくそう考えていました。 当にその2点を比較するべきなのかをここで再考してみましょう。 「型導

    Railsプロジェクトへの「頑張らない型導入」のすすめ - メドピア開発者ブログ
    honeybe
    honeybe 2023/05/30
  • Rails APIサーバーで Ruby 3.2 の YJIT を有効化してみた。 - メドピア開発者ブログ

    サーバーサイドエンジニアの内藤(@naitoh) です。 Rails で構築された小規模な APIサーバー(RailsAPI モードで構築したもの)で、Ruby 3.2 の YJITを有効化する事で性能アップすることができましたので、喜びを分かち合いたく共有させて頂きます。 shopify.engineering We’re able to measure real speedups ranging from 5% to 10% (depending on time of day) on our total end-to-end request completion time measurements. YJIT を開発した Shopify では 5%から10%の処理速度の改善があったという事で、以前から弊社でも番で運用を開始したかったのですが、比較的検証のし易い APIサーバーで

    Rails APIサーバーで Ruby 3.2 の YJIT を有効化してみた。 - メドピア開発者ブログ
    honeybe
    honeybe 2023/05/09
  • 3年半ぶりの開発合宿に参加してきました - メドピア開発者ブログ

    はじめに はじめまして。今年の4月に新卒として入社した金淵(Twitter : @Deee_U_ )です! 今回は4/19 ~ 4/21に開催された開発合宿の様子を記事にしました。 開発合宿とは、メドピアが年に2~3回ほど日常業務外で業務の改善や技術研鑽を行う為に開催している合宿のことです (前回の開発合宿の様子はこちら↓)。 tech.medpeer.co.jp 今回は湯河原、軽井沢の2チームに分かれて3年半ぶりの合宿を行いました。私は湯河原の合宿に参加させて頂いたので湯河原の様子をお届けします。 (軽井沢の開発合宿の様子はこちら↓) tech.medpeer.co.jp 湯河原駅前でパシャリ 旅館 今回、湯河原の合宿ではおんどや惠(めぐみ)さんに宿泊させて頂きました。メドピアは過去に何度かこの旅館に宿泊させて頂いことがあり 今回も湯河原の「おんやど 惠(めぐみ)」さんにお邪魔しました。

    3年半ぶりの開発合宿に参加してきました - メドピア開発者ブログ
    honeybe
    honeybe 2023/05/09
  • 開発合宿に行ってきました!@軽井沢 - メドピア開発者ブログ

    こんにちは!サーバサイドエンジニアの森です。 開発合宿は2019年11月の以降、コロナの影響でしばらく開催できておりませんでしたが、 約3年半ぶりに4月19日から21日まで3日間、開発合宿を開催しました! 今回は参加者数が多いため、神奈川県湯河原と長野県軽井沢の2箇所に別れて開催しました。 この記事では、軽井沢(BEB5軽井沢)での開発合宿の様子をご紹介します! ※BEB5軽井沢: www.hoshinoresorts.com ※湯河原の様子: tech.medpeer.co.jp ※前回の開発合宿の記事: tech.medpeer.co.jp 1日目 開発スタート! 12時に軽井沢駅へ集合、お昼をべて、開発がスタートしました! 私は3人1チームとして参加していたので、ゴール設定や作業分担について話し合い、それから作業を開始しました。 直前の天気予報では小雨だったのですが、快晴だったので

    開発合宿に行ってきました!@軽井沢 - メドピア開発者ブログ
    honeybe
    honeybe 2023/05/09
  • スギサポwalkへのJetPack Compose導入の取り組み - メドピア開発者ブログ

    こんにちは。Androidエンジニアの伊藤です。 スギサポwalkという歩数計アプリの開発を担当しており今回は Jetpack Composeを導入したので、この取り組みについて書いていきます! Jetpack Composeとは なぜ導入しようと思ったのか どのように導入していったのか? 問題の解決 プロダクトへの導入方針 実際に導入した箇所の説明 連続ログインボーナス 画面構成について レイアウトについて 工夫した点 改善点 実際に導入してよかったこと 今後の課題 Jetpack Composeとは Jetpack ComposeはAndroidの新しいUIツールキットです。 宣言的UIとも呼ばれ、状態をUIとして表示するという仕組みです。 AndroidUI開発を簡素化して、直感的なAPIにより良い開発体験が得られます。 また、数多くのAndroidのプロダクトで利用されています。

    honeybe
    honeybe 2023/03/09
  • RubyKaigi 2022 セッションレポート Day 1 - メドピア開発者ブログ

    バックエンドエンジニアの田中悠大(@ytnk531)です。 RubyKaigi 2022で三重県に来ています。1日目(9/8)に聞いたセッションについて、簡単に紹介させていただきます。 Ruby meets WebAssembly Ruby meets WebAssembly - RubyKaigi 2022 RubyWebAssembly (WASM) 対応についての発表でした。WebAssemblyの基礎から、WASM対応のテクニカルな難しさまで、非常にわかりやすく丁寧に説明されており、聴きごたえのある素晴らしい発表でした。 特にデモがおもしろく、思わずスゴイ!とうなってしまうものばかりでした。 RubyWASM対応にあたっては、ExceptionやFiberで利用する特殊な制御をWASM上で再現するのに特に苦労されたそうです。Asyncifyという技術を使うことで、うまく解決でき

    RubyKaigi 2022 セッションレポート Day 1 - メドピア開発者ブログ
    honeybe
    honeybe 2022/09/12
  • 処方せんの自動印刷アプリを Electron でつくった話 - メドピア開発者ブログ

    フロントエンドエンジニアの小林和弘です。 kakari という薬局向けに提供しているサービスで Electron を使って Windows アプリケーションを作成したので、そのことについてお話しようかと思います。 事の発端 これまで、「kakari」では、患者さまから薬局へ処方せんが送信されたときに薬剤師さまが処方せんの受信に気づけるように FAX で処方せんを送信していました。 しかし、FAX 送信に利用していた Twilio Programmable Fax サービスが 2021 年 12 月 17 日をもってサービス終了になってしまいました。 このサービス終了に対応すべく、薬局向けに処方せんが送信されたらプリンターで処方せん印刷ができる Windows アプリケーションを Electron で作成することになりました。 そもそもElectronとは HTML, CSS, JS のフロ

    処方せんの自動印刷アプリを Electron でつくった話 - メドピア開発者ブログ
    honeybe
    honeybe 2022/08/20
  • 入門 GitHub Actions - メドピア開発者ブログ

    CTO室SREの @sinsoku です。 社内のGitHub ActionsのYAMLが複雑になってきたので、私が参考にしてる情報や注意点、イディオムなどをまとめておきます。 頻繁に参照するページ 新しい機能の説明が日語ページに反映されていないため、基的に英語ページを読むことを推奨。 ワークフロー構文 YAMLの基構文の確認 コンテキストおよび式の構文 github オブジェクトの情報、関数の確認 ワークフローをトリガーするイベント 各イベントの GITHUB_SHA と GITHUB_REF が記載されている About GitHub-hosted runners インストールされているSoftwareのバージョンなどが記載されている GitHub REST API APIを使うときに参照する よく使うaction actions/checkout イベントによってはデフォルトブ

    入門 GitHub Actions - メドピア開発者ブログ
    honeybe
    honeybe 2021/06/25
  • 滞りなくサービスをクローズするために必要なこと - メドピア開発者ブログ

    メドピアエンジニアの難波です。 医師専用コミュニティサイト「MedPeer」では、今年の8月にMedPeer Journalというサービスのクローズを行いました。今回の記事ではその時に行った作業の紹介をしたいと思います。 サービスの新規開発に関する記事というものは世の中にたくさんあれど、大規模なサービスにおける一部機能(サービス)の終了に関する経験や知見は中々オープンにされにくいものです。しかしサービスを滞りなく素早く終了させることは新しいサービスを作るリソースの確保という観点でも大事なことであり、今回の記事が将来の参考になればと思い1つの事例としてここに認めます。 MedPeer Journalについて MedPeer Journal(以下Journal)とはPubMed(Wikipedia)という医学を中心とする生命科学の文献情報を収集したオンラインデータベースへの検索エンジンを利用し

    滞りなくサービスをクローズするために必要なこと - メドピア開発者ブログ
    honeybe
    honeybe 2019/10/02
  • Railsで処理を別クラスに切り出す方法について - メドピア開発者ブログ

    こんにちは。メドピアのRuby(Rails)化をお手伝いしている@willnetです。最近はエンジニアが増えた影響か、Railsの質問に答えていることが多いです。 以前、Railsの太ったモデルをダイエットさせる方法についてというタイトルでPOROを使っていこうという話を書きました。その際にコード例などもなるべく多く載せるようにしたのですが、このエントリだけを読んだ状態では、いざ「POROを使ってみよう!」としたときにまだ悩む余地がありそうです。 POROはその名の通り普通のRubyオブジェクトなので、いろんな書き方ができてしまいます。それなりに経験がある人でないと、どのように書いたらいいんだろう…と悩んで時間を使ってしまいそうですね。さらに、複数人で開発しているチームだと書き方のバラツキも気になるところです。きっと、POROを書くときのお作法が決まっている方が開発しやすいはず。 そこで、

    Railsで処理を別クラスに切り出す方法について - メドピア開発者ブログ
    honeybe
    honeybe 2019/05/08
  • 新人エンジニアが開発合宿に参加してみて@湯河原 - メドピア開発者ブログ

    こんにちは!メドピア10月入社の新米エンジニアの宮原です。 今回のブログでは、メドピアで恒例となっている開発合宿に参加してきましたので、こちらの様子をお届けしたいと思います。 メドピアでは、これまでにも年2〜3回ぐらいのペースで開発合宿を開催しています。湯河原で開発合宿を行うのは、昨年3月以来になります。 tech.medpeer.co.jp tech.medpeer.co.jp 合宿テーマ 開発合宿のテーマは毎回異なり、技術研鑽や技術的負債の解消、他にも新規サービス立ち上げ等を行ったこともあります。過去の開発合宿では新規サービス立ち上げをテーマに実施され、弊社のサービスとして事業化されているものもあります。 合宿に行く前に各自、取り組む内容について宣言してから開発します。今回はこんな感じです。 業務改善ツールの開発 メドピア既存サービスへの新機能開発 新技術を使ったサービス開発 取り組み

    新人エンジニアが開発合宿に参加してみて@湯河原 - メドピア開発者ブログ
    honeybe
    honeybe 2018/12/13
  • メドピア に整地部ができたってよ! - メドピア開発者ブログ

    はじめに こんにちは、メドピアの駆け出しエンジニアの川﨑です。 最近我が広島カープが日シリーズ進出を決めて機嫌が良いのでブログ書きたいと思います。 今回僕がお届けするのは、先月の9月14日 「Rails開発での技術的負債との付き合い方」 をテーマに開催された 「MedBeer」 にて、 Classi株式会社のCTOである佐々木 達也(@sasata299)さんの発表にて紹介された「整地部」がMedPeerでもできたよ!というお話です。 整地部とは? 整地部の定義に関しては、以下にある佐々木 達也さん の興奮する資料が分かりやすいです。 一言で言うと 技術的負債となっているコードを少しずつでも良くしたい人たちの集まり です。 どんな風に進めたか? 記念すべき第一回は、弊社Rails技術顧問である前島(@willnet)さんがいらっしゃる水曜日に開催されました。 進め方としては、僕が前々か

    メドピア に整地部ができたってよ! - メドピア開発者ブログ
    honeybe
    honeybe 2018/10/25
  • 開発合宿@伊豆大島に行ってきました! - メドピア開発者ブログ

    こんにちは。メドピアのサーバサイドエンジニアの小林です。 まずはじめに、この度の西日豪雨で被災された方々にお見舞い申し上げますとともに、被災地の一日も早い復興を心よりお祈り申し上げます。 今回のブログでは、メドピアでは恒例となっているエンジニア・デザイナー開発合宿に参加してきましたので、レポートさせていただきます。 メドピアでは、これまでにも年2〜3回ぐらいのペースで開発合宿を開催しています。 この夏は、東京の離島、伊豆大島へ…!メドピアとしても合宿で島へ行くのは初めてのことでした。 1日目 東京港竹芝ターミナルから船に乗っていざ、出発! 船は予想通り(予想以上に?)揺れるので酔い止め薬必須です。 船に揺られること2時間、着いたのは伊豆大島の北の玄関口、岡田港です。 ここから更に三原山に登り、車で30分程経った頃、標高500mほどに位置する大島温泉ホテルさんに到着。 【公式サイト】伊豆大

    開発合宿@伊豆大島に行ってきました! - メドピア開発者ブログ
    honeybe
    honeybe 2018/07/13
  • Rails × ECS でオートスケーリング&検証環境の自動構築 - メドピア開発者ブログ

    マリオカートでカーブを曲がるときに体を傾斜させてしまうCTO室 kenzo0107 です。 今回は 2018/04/02 にリニューアルしたイシコメの Rails × ECS についてです。 イシコメとは? 「イシコメ」は、医師10万人の声でつくるヘルスケアメディアです。 医師と一般の方々をつなげることで、医療情報格差を埋めることを目指しています。 MedPeerの10万人の医師会員に協力いただいたアンケート結果をもとに編集部で記事を執筆し、医師監修の上で配信。多くの医師の声を反映することで、より正しい情報を提供しています ishicome.medpeer.jp リニューアル経緯 リニューアル前は以下のような構成でした。 フロントに Laravel 5 バックに Drupal Docker on EC2 コンテナイメージの S3 でのプライベート管理 Docker がまだ出てきて間もない頃

    Rails × ECS でオートスケーリング&検証環境の自動構築 - メドピア開発者ブログ
    honeybe
    honeybe 2018/06/20