並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 100件

新着順 人気順

メドピアの検索結果1 - 40 件 / 100件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

メドピアに関するエントリは100件あります。 開発railsruby などが関連タグです。 人気エントリには 『入門 GitHub Actions - メドピア開発者ブログ』などがあります。
  • 入門 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 - メドピア開発者ブログ
    • 社内版 ChatGPT を構築し、社内の ChatGPT 利用を促進した話 - メドピア開発者ブログ

      SRE の田中 @kenzo0107 です。 社内版 ChatGPT を構築し、社内の ChatGPT 利用を促進した話です。 社内版 ChatGPT が必要だった理由 以下要望を実現する為です。 秘匿情報をクローズドな環境で OpenAI にポストしたい 社員誰もが最新のモデルやバージョンで高精度、且つ、パフォーマンスの高い ChatGPT を利用したい 構成 - Web 版 社内 ChatGPT Web サービスは AWS に配置 ALB を会社毎に分けて Google 認証する *1 ECS から Azure API Management 経由で Azure OpenAI Service に問い合わせ API Management は Azure OpenAI Service の監査ログを取得する為に配置している *2 Azure 側ではネットワークセキュリティグループで AWS N

        社内版 ChatGPT を構築し、社内の ChatGPT 利用を促進した話 - メドピア開発者ブログ
      • メドピア AWS勉強会 ECS編 / MedPeer AWS Seminar ECS

        メドピア社内で定期的に開催しているAWSに関する勉強会を開催しています。本資料はそのうちのECSに関する回のものです。

          メドピア AWS勉強会 ECS編 / MedPeer AWS Seminar ECS
        • Amazon ECSで動かすRailsアプリのDockerfileとGitHub Actionsのビルド設定 - メドピア開発者ブログ

          CTO室SREの@sinsokuです。 Dockerイメージのビルドを高速化するため、試行錯誤して分かった知見などをまとめて紹介します。 AWSのインフラ構成 assetsもECSから配信し、CloudFrontで /assets と /packs をキャッシュする構成になっています。 Rails on ECS デプロイ時にassetsが404になる問題 以前の記事に詳細が書かれているため、ここでは問題の紹介だけしておきます。 Rails等のassetsファイルをハッシュ付きで生成し配信するWebアプリケーションの場合、ローリングアップデートを行うと、アップデート時に404エラーが確立で発生してしまいます。 引用: メドピアのECSデプロイ方法の変遷 Dockerfile 実際のDockerfileには業務上のコード、歴史的な残骸などが含まれていたので、綺麗なDockerfileを用意しま

            Amazon ECSで動かすRailsアプリのDockerfileとGitHub Actionsのビルド設定 - メドピア開発者ブログ
          • 半年間の開発環境の改善を振り返る - メドピア開発者ブログ

            こんにちは、メドピアCTO室 SREの侘美(たくみ)です。 普段はRails/Vue.js/terraform/Lambdaなどを書いています。 趣味は飼い猫と遊ぶことで、生傷が絶えません。 入社してから約半年間、Railsのプロジェクトで実装をしつつ、合間に開発環境の改善をいろいろとやってきました。けっこうな分量となったので、紹介したいと思います。 なお、本記事で扱う開発環境とは下記2つを指すこととします。 ソースコードの修正/テストの実行/静的解析の実行環境 サービスを起動し、ブラウザでデバッグする環境 特徴 主な改善対象である、「MedPeer」サービスの特徴をご紹介します。 Ruby on Rails製 社内では最も巨大なRailsプロジェクト モデル数693 認証サービス、旧サービス(PHP製)と連携している 開発環境はDocker for Macを利用 コンテナ数は旧システム、

              半年間の開発環境の改善を振り返る - メドピア開発者ブログ
            • 大規模サービスのデータベースエンジンを MySQLからAurora MySQLへの移行 〜リードレプリカ, DNSを利用した最小ダウンタイム移行方法〜 - メドピア開発者ブログ

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

                大規模サービスのデータベースエンジンを MySQLからAurora MySQLへの移行 〜リードレプリカ, DNSを利用した最小ダウンタイム移行方法〜 - メドピア開発者ブログ
              • Railsプロジェクトへの「頑張らない型導入」のすすめ - メドピア開発者ブログ

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

                  Railsプロジェクトへの「頑張らない型導入」のすすめ - メドピア開発者ブログ
                • メドピアのECSデプロイ方法の変遷 - メドピア開発者ブログ

                  CTO室SREの侘美です。好きなLinuxディストリビューションはLinux Mintです。 メドピアでは現在多数のサービスを運用しており、そのほとんどがAmazon ECSを構成の中核として利用しています。 ECSに対してデプロイを行う方法としては、CodeDeploy、CodePipeline、Copilot(ecs-cli)等があり、CloudFormationやTerraform等のIaCツールで何をどこまで管理するかも合わせて検討する必要があります。 どの方法にもメリット・デメリットがあり、Twitterや技術ブログを観測している範囲ではデファクトスタンダードと呼べる方法は未だに無いように思われます。 メドピアで最初にECSを利用し始めたのは2018年ころであり、これまで試行錯誤しながらECSのデプロイ方法とタスク定義の管理方法を模索してきました。 今回はメドピア社内で試してきた

                    メドピアのECSデプロイ方法の変遷 - メドピア開発者ブログ
                  • 処方せんの自動印刷アプリを Electron でつくった話 - メドピア開発者ブログ

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

                      処方せんの自動印刷アプリを Electron でつくった話 - メドピア開発者ブログ
                    • 最小手数で始めるTailwind CSS - メドピア開発者ブログ

                      パクチーパクパク小宮山です。 掲題通りTailwind CSSの始め方を最小手数で書いていきます。余談は一切ありません。 tl;dr CSS管理は諦めてTailwind CSSを使おう。 Get Started tailwindcss.com ひたすら公式通りに進めます。例によってフロントエンドプロジェクトの環境構築はひたすら面倒なので、Tailwind CSS以外のツールチェインはなるべく使わない構成を目指します。 installします。 $ yarn init $ yarn add tailwindcss セットアップします。 $ yarn tailwindcss init こういうファイルが作られました。 tailwind.config.js module.exports = { purge: [], theme: { extend: {}, }, variants: {}, plu

                        最小手数で始めるTailwind CSS - メドピア開発者ブログ
                      • フロントエンドのコードを書いている時に考えていること - まず状態から始めよ編 - メドピア開発者ブログ

                        椅子に甘えないと心に決めて最近はスタンディングメインで仕事してます小宮山です。 実は私はペアプロ・モブプロ好き人間です。なぜ好きかというと、単にワイワイコードを書けるというのもありますが、何よりもそのときに考えていることをリアルタイムに共有できるからです。 メドピアのCTO室フロントエンドグループ(最近正式にグループ化されました)は、CTO室という何やら凄そうな名前の部署に所属している通り、メドピア社内のフロントエンド開発を幅広く支援するという役割を持っています。その一環としてペアプロ歓迎ムードを漂わせているわけです。 そして先日久しぶりにペアプロに誘われたのでほいほい承って参戦してみて、やはりペアプロという場はいいなと感じてこんな記事を書いています。 で、何をテーマにするかというとタイトルの通りです。おそらく近頃のフロントエンド開発に慣れた方なら特に意識しなくともそういう考えをしているの

                          フロントエンドのコードを書いている時に考えていること - まず状態から始めよ編 - メドピア開発者ブログ
                        • Ruby × jemallocのすすめ - メドピア開発者ブログ

                          集合知プラットフォーム事業部・エンジニアの榎本です。コロナ禍の運動不足を解消すべく筋肉体操で筋トレを続けてますが、上腕三頭筋がいい感じに成長しており継続の大切さを身に沁みて実感しております。 目次 TL;DR(三行要約) Rubyアプリケーションのメモリ肥大化問題 jemalloc を使ってみる jemalloc とは? jemalloc で改善するのか? jemalloc の設定方法 jemalloc をプロダクション導入してみた結果 まとめ おまけ:jemalloc についてMatzに聞いてみた TL;DR(三行要約) jemalloc でRubyアプリのメモリ効率改善 jemalloc でRubyアプリのパフォーマンス改善 jemalloc の導入も簡単 Rubyアプリケーションのメモリ肥大化問題 Ruby on RailsなどのRubyアプリケーションを運用する上で、メモリ使用量の

                            Ruby × jemallocのすすめ - メドピア開発者ブログ
                          • ビジュアルリグレッションテストを導入した話 - メドピア開発者ブログ

                            こんにちは。フロントエンドエンジニアの小林和弘です。 Vue.js + Atomic Designでつくられたプロジェクトにビジュアルリグレッションテストを導入しました。 ビジュアルリグレッションテストでUIの安全性を高める コンポーネントの改修、新機能の追加、ライブラリのアップデートを行う際、UIに不要な変更が入っていないか不安になることがあると思います。リファクタリングをしようにも、意図しないところでUIが壊れないか心配になります。 画面表示に関わるコードを改修するたびに、ローカル環境やステージング環境で全UIコンポーネントを確認するのは難しいです。 また、ステージング環境と本番環境を並べて変更されたUIを目視で確認するのも非現実的です。 ビジュアルリグレッションテストはその名前の通り、視覚的な回帰テストを指します。改修前後のスクリーンショットの差分を検証するためのテストです。 開発に

                              ビジュアルリグレッションテストを導入した話 - メドピア開発者ブログ
                            • 薬局向けサービス”kakari”にruby-vipsを導入した話 - メドピア開発者ブログ

                              こんにちは。 外出自粛が続き、大胸筋の育成が疎かになっているエンジニアの宮原です。 ruby-vipsという画像処理用のGemを、かかりつけ薬局化支援サービスの「kakari(かかり)」で導入してみました。 今回は、ruby-vipsとkakariに実装した画像処理の内容について紹介させていただきます。 ruby-vipsとは ruby-vipsは、画像処理ライブラリであるlibvipsのRubyバインディングになります。 こちらのGemを利用することで、Ruby on RailsのWebアプリケーションに画像処理の機能を追加することができます。 実際にruby-vipsの導入方法や、簡単な使い方は下記スライドにて紹介しておりますので、ご参照いただければと思います。 ※昨年の11月に、鹿児島Ruby会議01にてruby-vipsの使い方を紹介させていただきました。 どのような機能で利用して

                                薬局向けサービス”kakari”にruby-vipsを導入した話 - メドピア開発者ブログ
                              • Private GitHub Pagesで社内ドキュメントを公開しよう! - メドピア開発者ブログ

                                集合知プラットフォーム事業部の榎本です。筋トレのお供のプロテインが切れそうなので、次に購入するプロテインのメーカーとフレーバーに悩んでます。 GitHub Pages でアクセス制限 今まで GitHub Pages というと静的サイトをインターネットへ全世界公開するしかできなかったのですが、2021年に Private GitHub Pages の機能がリリースされ、限定されたユーザーのみに制限してページを公開することが可能になりました。 GitHub Pages を使って社内のドキュメントやナレッジを特定のユーザーだけに公開したり、企業内だけで共有したりすることができます。…(中略)… 今回の変更で、PrivateとInternalリポジトリでは、Private Pagesを使うことで、そのリポジトリを見れる人だけがそこから生成されるPagesのサイトを見られるという設定を行えるように

                                  Private GitHub Pagesで社内ドキュメントを公開しよう! - メドピア開発者ブログ
                                • 上位組織のデプロイ頻度は1週間に約30回 1日1デプロイだったメドピアが挑んだ頻度改善の取り組み

                                  多数のヘルステックサービスを企画・開発しているメドピアが、リモートワーク継続中でも事業成長を加速させたプロダクト開発の事例や技術的な知見を紹介する「事業成長を加速させたエンジニアリングのウラ側」。ここで「Deploy Rails apps in 2021」テーマに正徳氏が登壇。まずは過去のレポートをもとにした目指すべきデプロイの頻度と、デプロイ改善のために取り組んだことについて紹介します。 自己紹介 正徳巧氏(以下、正徳):「Deploy Rails apps in 2021」というタイトルで発表します。ちょっと私も緊張しているので、ビールを飲みながら発表させてください。 自己紹介です。正徳と言います。会社に入社して1年半ぐらいで、CTO室のSREという部署に所属しています。SNSなどは@shinsokuというハンドルネームで活動しています。よろしくお願いします。 SREでなにをやっている

                                    上位組織のデプロイ頻度は1週間に約30回 1日1デプロイだったメドピアが挑んだ頻度改善の取り組み
                                  • AWS Config + Athena + QuickSightによる複数AWSアカウント横断でのセキュリティ状態の可視化 - メドピア開発者ブログ

                                    CTO室SREの侘美です。最近は社内のセキュリティ対策関連を生業にしております。 今回は最近進めていた社内のAWSアカウントのセキュリティ可視化がある程度形になったので記事にしたいと思います。 課題:多数のAWSアカウントのセキュリティをチェックしたい サイバー攻撃が増加している昨今、AWSなどのPaaS環境においても構築時にセキュリティの観点で注意すべき点がいくつもあります。 例えば、不必要なサーバー/ポートがインターネットに公開されていないか、アカウントにMFAが設定されているか、等々実施しておきたいセキュリティ対策は多岐にわたります。 弊社では、AWSを用いてインフラを構築する際にセキュリティ上守るべきルール集を、インフラセキュリティポリシーというドキュメントを定義しています。 しかし、あくまでドキュメントベースなので、実際にこのドキュメントに書かれたルールに準拠した構成になっている

                                      AWS Config + Athena + QuickSightによる複数AWSアカウント横断でのセキュリティ状態の可視化 - メドピア開発者ブログ
                                    • ECS を利用した検証環境の自動構築 ~運用3年を経て得た知見~ - メドピア開発者ブログ

                                      CTO 室 SRE kenzo0107 です。 以前執筆した ECS を利用した検証環境の自動構築について、運用開始から3年の時を経ました。 実運用とその上で頂いた要望を取り入れ変化してきましたので、その経緯を綴ります。 tech.medpeer.co.jp 本稿、議論を重ね改善を進めて頂いたチームメンバーの知見を集めた元気玉ブログとなっております。 前提 社内では、以下の様に呼び分けしています。 本番相当の検証環境を STG 環境 本記事で説明する自動構築される仕組みを持つ環境を QA 環境*1 検証環境の自動構築の目的 開発した機能を開発担当者以外でも簡易的に確認できる様にし、以下を促進します。 ディレクターと開発者の仕様齟齬を減らす 改善のサイクルを高速化する 当時の検証環境の自動構築の仕組み 大まかな流れ ① ブランチ qa/foo を push ② CircleCI 実行 ③ C

                                        ECS を利用した検証環境の自動構築 ~運用3年を経て得た知見~ - メドピア開発者ブログ
                                      • Ruby v3.1.0のSegmentation faultに遭遇した話 - メドピア開発者ブログ

                                        こんにちは。サーバーサイドエンジニアの三村です。 保険薬局と患者さまを繋ぐ「かかりつけ薬局」化支援アプリ kakariやその姉妹サービスである患者接点を資産化する診療予約システム かかりつけクリニック支援サービス kakari for Clinicの開発を担当しています。 目次 はじめに 現象 bugs.rubyに報告 原因究明までの道のり 環境依存の問題かどうかを切り分け エラー発生ファイルの特定 specの実行順をランダムから定義順に変更 因果関係のあるテストを特定 脱Docker Desktop for Mac MySQL -> SQLiteに変更 再現コードの特定 再現コード報告 修正確認 work around まとめ おまけ はじめに kakariをRuby v3.1.0にアップグレードする作業をしていたところSegmentation faultに遭遇したので、bugs.rub

                                          Ruby v3.1.0のSegmentation faultに遭遇した話 - メドピア開発者ブログ
                                        • 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を導入してみた - メドピア開発者ブログ
                                          • Feature Toggleを用いたRailsアプリの継続的なリリースと要注意事項 - メドピア開発者ブログ

                                            はじめに 皆様こんにちは、サーバーサイドエンジニアの草分です。 突然ですが、開発者の皆様、実装したソースコードはこまめにリリースしていますか? 「大きい機能なので開発に時間がかかる」「障害が起きないよう念入りにテストする必要がある」などの理由で、Featureブランチのままコミットグラフが伸びに伸びたりしていませんか? 大きな機能を作ること自体は悪いことではありませんが、大きすぎるFeatureブランチは、本流ブランチとの挙動の乖離やコードの衝突が発生しやすく、レビューやマージに多大な苦労を伴います。 この記事では、この問題の解決策の1つとなる「Feature Toggle」を、Ruby on Railsにおける実装方法と共にご紹介します。 Feature Toggle自体は開発手法の一種であるため、言語/フレームワークを問わず広く活用されています。 Feature Toggleとは 「機

                                              Feature Toggleを用いたRailsアプリの継続的なリリースと要注意事項 - メドピア開発者ブログ
                                            • CIで稀にSegmentation faultが起きてRubyが死ぬ問題と対応 - メドピア開発者ブログ

                                              CTO室SREの@sinsokuです。 先日、弊社のCIで稀によく Segmentation fault が起きるようになりました。 _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y ̄ 調べてみた 最初は気づかなかったけど、画像の右端のダウンロードっぽいアイコンをクリックすると、実行結果のログを全文見ることができます。 [BUG] Segmentation fault at 0x000056529cd6d5e0 ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux] -- Control frame information ----------------------------------------------- c:0059 p:---- s:0312 e:000311 CFUNC :[] c:0058 p:0016

                                                CIで稀にSegmentation faultが起きてRubyが死ぬ問題と対応 - メドピア開発者ブログ
                                              • AWS + ngx_mruby で SSL 証明書の動的読み込みシステム構築 - メドピア開発者ブログ

                                                CTO室SREの @kenzo0107 です。 2021年6月24日に「 kakari for Clinic ホームページ制作 」がリリースされました。 kakari for Clinic ホームページ制作 今回は上記サービスで採用した、 AWS + ngx_mruby で構築した SSL 証明書の動的読み込みシステムについてです。 SSL 証明書を動的に読み込みする理由 kakari for Clinic ホームページ制作の1機能で、制作したホームページに独自ドメインを設定する機能がある為です。*1 複数ドメインでアクセスできる =複数ドメインの SSL 証明書を読み込む を実現する必要があります。 動的に SSL 証明書を読み込むには? 以下いずれかのモジュールを組み込むことで SSL 証明書の動的読み込みが可能になります。 ngx_mruby lua-nginx-module 以下理

                                                  AWS + ngx_mruby で SSL 証明書の動的読み込みシステム構築 - メドピア開発者ブログ
                                                • Tailwind CSSという風と共に走るフロントエンド開発 - メドピア開発者ブログ

                                                  10km40分切りが2020年の目標、メドピア長距離部の小宮山です。 みなさんTailwind CSSはご存知でしょうか。tailwindとは「追い風」を意味します。最高に気持ちよく走れるコンディションですね。 目次 サービス概要 技術概要 Tailwind CSSとは何か HTMLとCSS HTMLとCSSとコンポーネント コンポーネントと雑なセレクタ コンポーネントとインラインスタイル Tailwind CSSがもたらしたもの まとめ サービス概要 まずは今回新たに立ち上げたサービスの紹介です。 「MedPeerスポット×リクルートメディカルキャリア」という医師向けスポット求人マッチングサービス(以下、本サービス)が11月にリリースされました。 medpeer.co.jp ログインや応募などサービスのコアな部分はMedPeer医師会員限定になってしまいますが、サイトの雰囲気自体は非会員

                                                    Tailwind CSSという風と共に走るフロントエンド開発 - メドピア開発者ブログ
                                                  • 滞りなくサービスをクローズするために必要なこと - メドピア開発者ブログ

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

                                                      滞りなくサービスをクローズするために必要なこと - メドピア開発者ブログ
                                                    • お財布に優しい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改善小ネタ集 - メドピア開発者ブログ
                                                      • Rails APIサーバーで Ruby 3.2 の YJIT を有効化してみた。 - メドピア開発者ブログ

                                                        サーバーサイドエンジニアの内藤(@naitoh) です。 Rails で構築された小規模な APIサーバー(Rails の API モードで構築したもの)で、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 を有効化してみた。 - メドピア開発者ブログ
                                                        • CircleCIのYAMLを短く書けるRails Orbを作りました - メドピア開発者ブログ

                                                          11月に入社したCTO室SREの@sinsokuです。 主にやっていることはRailsアプリのレビューや開発環境の改善です。*1 社内のRailsアプリを横断して浅くレビューする(8つくらい) MedPeerの開発環境の改善 docker-compose up で30個のコンテナが起動するのを減らす SwitchPointからActiveRecord v6への移行 CircleCIの実行時間の短縮、稀に落ちるテストの修正 その他の細かい改善 このうち、CircleCIについて知見が溜まったので技術ブログで紹介します。 CircleCIで気をつける点 CircleCIの実行時間を短くするにはいくつかコツがあります。 gemとnpmをできるだけキャッシュする RSpecを並列で実行する前に assets:precompile を実行しておく 各ジョブで必要なgem(もしくはnpm)だけをキャッ

                                                            CircleCIのYAMLを短く書けるRails Orbを作りました - メドピア開発者ブログ
                                                          • SREチームのセキュリティインシデントゲームデー - メドピア開発者ブログ

                                                            CTO室SREの侘美です。最近はM5Stackを嗜んでおります。 ここ半年ほど、MedPeerグループ全体のAWSのセキュリティ改善に力を入れてきました。 その中で、AWS Well-Architectedのセキュリティのベストプラクティスにも記載があるゲームデーを実施したところ、とても学びが多かったので本記事にまとめました。 ゲームデーとは? Well-Architectedには以下のように記載されています。 ゲームデーを実施する ゲームデーを実施する: さまざまな脅威について、インシデント対応イベントのシミュレーション (ゲームデー) を実施します。このゲームデーには、主要なスタッフや管理者を参加させてください。 教訓から学ぶ: ゲームデーの実行から得られた教訓は、プロセスを改善するためのフィードバックに含まれている必要があります。 出典: https://wa.aws.amazon.

                                                              SREチームのセキュリティインシデントゲームデー - メドピア開発者ブログ
                                                            • 2ヶ月半で Nuxt サービスを 3.5 個つくった話 - メドピア開発者ブログ

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

                                                                2ヶ月半で Nuxt サービスを 3.5 個つくった話 - メドピア開発者ブログ
                                                              • API認証基盤の改善について - メドピア開発者ブログ

                                                                今月の一日でメドピアに入社してちょうど1年になったCTO室の内藤(@naitoh) です。 主にやっていることはAPI認証基盤の改善です。 この1年でやってきた事を技術ブログで紹介させて頂きます。 背景 メドピア で採用されているバックエンドの言語(フレームワーク)は本 blog のタイトルにもあるように PHP から Rails に移行が行われているのですが、 実は上記以外に Golang(以下 Go) も使用しています。 このあたりの当時の開発背景は下記の記事に書かれておりますのでご参考にして頂ければと思います。 tech.medpeer.co.jp 私が昨年入社した時点でこのAPI認証基盤(API ゲートウェイ)の保守が難しく、Go のわかる開発者がほぼいなかったため機能追加が行えない状態になっていました。 このAPI認証基盤へのユーザーログイン処理時のアクセス負荷が朝方に集中し、メ

                                                                  API認証基盤の改善について - メドピア開発者ブログ
                                                                • Rails未経験でRailsエンジニアとして入社して感じたメドピアのエンジニア文化 - メドピア開発者ブログ

                                                                  2020年6月付けで入社したフィッツプラス システム開発部の讃岐と申します。 DietPlus Proというアプリや、特定保健指導の進捗管理用のWebアプリケーションを開発するサーバーサイドエンジニアとして働いています。 特定保健指導については、以前に福本さんが使用している技術も含め書いてくださったのでそちらをご覧下さい。 tech.medpeer.co.jp エンジニアとしてのキャリアはメドピアで2社目となります。Railsは未経験でしたがRailsエンジニアとしての採用でした。 そんなわけでメドピアでRailsエンジニアとしてのキャリアが始まったわけですが、開発環境については芝田さんが他の記事で紹介してくれているので、今回はメドピアのエンジニア文化を紹介していきたいと思います。 1. 新しいことを学ぶ機会が多い 2. 技術者支援の制度がちゃんと使用されている 3. 技術顧問がwilln

                                                                    Rails未経験でRailsエンジニアとして入社して感じたメドピアのエンジニア文化 - メドピア開発者ブログ
                                                                  • 中途で入社したての私からみたメドピア開発環境のいいところ - メドピア開発者ブログ

                                                                    2020年1月付けで入社した社長室 エンジニアの芝田と申します。 社長室ではkakariという、かかりつけ薬局化を支援するサービスをやっており、そちらでサーバーサイドエンジニアとして働いています。 エンジニアとしてのキャリアはメドピアで2社目で、まだまだ勉強中の身です。 今回はメドピアでの開発を始めて、開発環境のいいところや実装のtipsを一部ご紹介したいと思います。 開発環境のいいところ CIでRSpecやRubocopをはじめとする複数のLint👮が通っていないと原則マージできない Rubyは自由な記法ができるメリットの反面で、記法のばらつきが比較的出がちです。そこは、Lintによってある程度カバーすることが可能です。 また、ClassLength・LineLength・AbcSize等によって、ファイルの肥大・コードの複雑度合いを知ることができます。 kakariではClassLe

                                                                      中途で入社したての私からみたメドピア開発環境のいいところ - メドピア開発者ブログ
                                                                    • 特定保健指導"フィッツプラス"事業を支えるモノリシック Rails + VIPER Swift アーキテクチャ - メドピア開発者ブログ

                                                                      みなさんこんにちは。フィッツプラス開発エンジニアの福本(@terry_i_)です。
早いもので入社して半年が経ちました。普段はRailsを中心に色々と書いてます。 リモートワークが長く続いていることもあって、最近は自宅の開発環境を(過剰に)整備するのがマイブームです。先日はlogicoolのPCスピーカーを買いました。所得がゴリゴリ削られていってツラい。 さて今回は、これまで忙しくて紹介する機会のなかったフィッツプラスの事業概要や、アーキテクチャおよび使用する技術についてお話しします。 アーキテクチャに悩むエンジニアの方の参考になったり、皆さんのフィッツプラスへの事業理解が深まれば幸いです。 特定保健指導とは? アーキテクチャ モノリシック Rails ActiveModelSerializers OpenAPI Houston(プッシュ通知) Banken(権限管理) VIPER Swi

                                                                        特定保健指導"フィッツプラス"事業を支えるモノリシック Rails + VIPER Swift アーキテクチャ - メドピア開発者ブログ
                                                                      • 開発生産性の改善から1年経過したチームで考えていること - メドピア開発者ブログ

                                                                        こんにちは。エンジニアの保立(@purunkaoru) です。 僕のチームでは、開発生産性の改善に取り組んでから1年経過しました。 開発生産性の改善系の記事やノウハウは世間によく出ていますが、1年経過した今、開発生産性に対してEMの立場で何を考えているかを言語化します。 チームメンバーの構成は、執筆時で以下の通りです。 フロントエンド: 5名 サーバーサイド: 9名 モバイルアプリ: 3名 EM(保立): 1名 弊社では、Findy Team+ を導入し、開発生産性を見えるようにしています。 まずはFindy Team+の画面を見ながら、改善結果を見ていきます。 直近1年間 直近2年間 直近2年で見ると、後半1年で生産性が改善されており、その改善が一定維持できていることがわかります。 ちなみに、このサイクルタイム分析について、数値的な目標を今まで一度も掲げてきませんでした。 どうしても指標

                                                                          開発生産性の改善から1年経過したチームで考えていること - メドピア開発者ブログ
                                                                        • 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)へのアップデートによるパフォーマンス変化の計測 - メドピア開発者ブログ
                                                                          • まつもとゆきひろ×福村彰展 対談「メドピアとRubyに共通する強いコミュニティ 」 | Forkwell Press | フォークウェルプレス

                                                                            2016年にメイン言語をPHPからRubyに移行したメドピア株式会社(以下、メドピア)は、大きな転換期を迎えました。 Rubyの生みの親として世界的に名の知れるまつもとゆきひろ(松本行弘)氏を技術アドバイザーに迎えたのです。 「コミュニティの熱量の高さがRubyを選んだ決め手」と語るメドピア株式会社CTO福村氏とまつもと氏に、アドバイザー就任の経緯やメドピアの目指す事業の方向性、Rubyの今後の可能性について伺いました。 Rubyを選んだ決め手はコミュニティの圧倒的な熱量 メドピアは、2004年に現役医師が創業したヘルステック企業。「集合知により医療を再発明する」というビジョンを掲げ、医師や薬剤師などの医療従事者をサポートしながら、その専門家ネットワークと「集合知」を活用して様々なシナジーを生み出しています。 なかでもコアサービスとなる医師専用コミュニティサイト「MedPeer」の会員数は

                                                                              まつもとゆきひろ×福村彰展 対談「メドピアとRubyに共通する強いコミュニティ 」 | Forkwell Press | フォークウェルプレス
                                                                            • 最近のheadless chromeを利用したファイルダウンロードのテスト方法について - メドピア開発者ブログ

                                                                              こんにちは。メドピアのRuby(Rails)化をお手伝いしている@willnetです。最近大阪Ruby会議02に妻子を連れて参加したのですが、👶が行き帰りの新幹線に合わせて寝てくれたおかげで大変スムーズに移動できました。 さて、以前poltergeistからheadless chromeへ移行する時に気をつけることというブログエントリを書きました。 その中で、ファイルダウンロードのテストをheadless chromeで実行するための設定について書いています。しかし、この設定では最近のchrome(chromedriver)では動かなくなってしましました。このエントリでは最新のやり方について紹介します。 これまでの設定例 以前のブログエントリに掲載したコードを一部再掲します。 Capybara.register_driver :headless_chrome do |app| drive

                                                                                最近のheadless chromeを利用したファイルダウンロードのテスト方法について - メドピア開発者ブログ
                                                                              • 1枚岩なMPAプロダクトでWebpackのマルチエントリーをさらにグルーピングしてビルドする - メドピア開発者ブログ

                                                                                Noita世界の理不尽をこの身をもって体験した末にバウンドルミナスで全てを切り刻んでクリアしました、フロントエンドグループの小宮山です。 以前からこれできたらいいのになぁと思いながら無理そうと諦めていた掲題の事柄を実現できた嬉しさの勢いのままに書き始めています。 状況 1枚岩なMPAプロダクトがどういうものかというと、 ルーティングをRails側で管理するMPA(複数エントリーポイント) 異なる種別のユーザー向けシステムが複数内包されている という構成です。 ルーティングについては要するにSPAではなく、ページ毎のhtmlファイルとmain.jsがあるということです。 異なる種別というのは、要するにユーザー向け画面と管理者向け画面が分かれているような状況です。場合によっては3種類、4種類以上の異なるシステムが内包されたりもします。BtoBtoCなサービスだったりする場合ですね。 課題感 こ

                                                                                  1枚岩なMPAプロダクトでWebpackのマルチエントリーをさらにグルーピングしてビルドする - メドピア開発者ブログ
                                                                                • Nuxt利用プロダクトでIE11と仲良くするためのE2E - メドピア開発者ブログ

                                                                                  フロントエンドなエンジニアの皆さま、ご機嫌いかがでしょうか。 唐突な質問ですが、Internet Explorer 11というブラウザはお好きでしょうか。勿論大好きであられるかと存じ上げます。Webの歴史をまさにその身をもって築き上げてきた由緒正しきブラウザであります。唯一無二の王道です。昨今は様々なブラウザが溢れてあそばせております。しかし所詮それは一時的なこと。やがて全人類は母なるInternet Explorer 11の元へと還っていくことでしょう。 我々が目指したこと Internet Explorer 11(以下、IE11)を目にすること、操作すること、その他あらゆる接点を限りなく減らしつつ、プロダクトがIE11でも動作可能なことの検証と保証を行いたい。 これを成し遂げるエンジニアリング的な手段、つまりIE11環境でのE2Eテストを自動化することを目指します。 環境 自動化を行う

                                                                                    Nuxt利用プロダクトでIE11と仲良くするためのE2E - メドピア開発者ブログ

                                                                                  新着記事