タグ

ブックマーク / www.m3tech.blog (14)

  • オンプレで実行されているバッチ (cron + shell script) をAWS Lambdaに移植する方法 - エムスリーテックブログ

    こんにちは、エンジニアリンググループの大和です。 弊社ではエンジニアリンググループ全体で継続して脱オンプレを進めており、これまでに多くのDBやサーバを停止してきました。 www.m3tech.blog また、直近ではコンシューマチームでの取り組みが紹介されています。 www.m3tech.blog 私が所属するマルチデバイスチームでも、前年度までに管理しているサービスのオンプレDBおよびサーバを廃止しました。 コンシューマチームの記事でも説明されていますが、脱オンプレではサーバアプリケーションとDBだけを移行するだけでは足りず既存のバッチや監視周り等含めて移行する必要があります。 この記事では、そのうちcronでshell scriptを実行しているような簡単なバッチをAWS上に移行する方法を紹介します。 構築するシステムの構成 インフラ構築 VPCに紐付けるLambdaの設定 Lambd

    オンプレで実行されているバッチ (cron + shell script) をAWS Lambdaに移植する方法 - エムスリーテックブログ
  • Goのchannelとスケジューリング - エムスリーテックブログ

    この記事は エムスリー Advent Calendar 2020 の13日目の記事です。 エムスリーエンジニアリンググループ/BIRの滝安(@juntaki)です。 BIRはビジネスインテリジェンス&リサーチの略で、そこでは医療従事者の会員向けアンケートをベースに、製薬会社へのマーケティング支援を提供する事業を行っています。 BIRはエムスリーの中で比較的Goの開発・運用歴が長いチームです。 チームSlackでも、たまに他チームからのGoよろず相談が行われているのを目にします。 さて、今回の記事では、個人的に作ったCLIツールで発生したGoのスケジューリングの挙動について説明します。 さっそくですが以下のコードはどのような出力になるでしょうか(全然よいコードではないというのはさておき…*1) ※以下の検証はGo 1.15.5で行いました。 func main() { add := make

    Goのchannelとスケジューリング - エムスリーテックブログ
    dowhile
    dowhile 2020/12/19
  • 今どきの Go の書き方まとめ (2020 年末版) - エムスリーテックブログ

    こんにちは、m3 エンジニアリンググループ CTO 矢崎(id:Saiya)です。 過去に Go 言語の仕様を一通り見た経験があったのですが、久しぶりに Go のコードを最近読み書きした際に、ここ数年の Go 言語やエコシステムの進化による変化もあり、発見やハマりが多々ありました。 Go 言語公式のロゴもスピード感ありますね。 同じような迷い・回り道をしてしまう方ももしかしたらおられるのではないかと思いますゆえ、 エムスリー Advent Calendar 2020 6 日目の記事として、筆者が実際に「最初から知っていれば時間を無駄にしなかったのに...!」と感じた知見をざっくばらんにシェアいたします。 記事がどなたかの一助になりますと幸いです。 なお記事の内容は筆者個人の理解・自身で直接読み書きしたユースケースの範囲での知見であり、全ての Go 利用事例に当てはまらない点も含みうりま

    今どきの Go の書き方まとめ (2020 年末版) - エムスリーテックブログ
    dowhile
    dowhile 2020/12/06
  • IaCを意識したCLI開発のエッセンス - エムスリーテックブログ

    エムスリーエンジニアリンググループ AI機械学習チームの中村(@po3rin) です。 好きな言語はGo仕事では主に検索周りを担当しています。 エムスリーの検索基盤ではElasticsearchを利用しています。社内で積極的に検索改善が行われており複数のIndexが管理がしづらいという問題がありました。 そこで定義ファイルからIndexの状態を冪等性を持って同期させるeskeeperというOSSを作りました。 この経験から「定義ファイルで〇〇を宣言的に管理する系のツール」を作る時のちょっとしたコツを紹介します。タイトルの通り今回はIaCツールを作るのではなくIaCのプラクティスを意識してCLIを作るお話になるのでご了承ください。 なぜeskeeperを作るに至ったか チームでのElasticsearchの運用と課題 eskeeperとは IaCを意識したCLI開発のエッセンス コマンド

    IaCを意識したCLI開発のエッセンス - エムスリーテックブログ
    dowhile
    dowhile 2020/11/26
  • Goのinterfaceの使いかた 基礎編 - エムスリーテックブログ

    エムスリーエンジニアリンググループ/BIRの滝安(@juntaki)です。 BIRはビジネスインテリジェンス&リサーチの略で、そこでは医療従事者の会員向けアンケートをベースに、製薬会社へのマーケティング支援を提供する事業を行っています。BIRではエムスリーではじめてGoを導入し、今ではほとんどの新規システムをGoで立ち上げています。(一部でKotlinもつかっています) Goでは、interfaceの使い方を知ることで、依存関係、コンポーネントの責務を整理した設計を考えることができます。 この記事ではGo導入当初にメンバに説明した、interfaceの基的な使い方やTipsを整理していきます(すでに、Goをよく知っている人には当たり前すぎるかもしれません)。 また、この記事の後にBIRのメンバーがGo関連記事をいろいろ書く予定となっています! interfaceの使い方 interfac

    Goのinterfaceの使いかた 基礎編 - エムスリーテックブログ
  • Kubernetes上でのGoによるシンプルなAPIの開発と、その効率化のためのcookiecutter templateを作った話 - エムスリーテックブログ

    エンジニアリンググループ AI機械学習チームの笹川です。 これはエムスリー Advent Calendar 2019の12月4日の記事です。 前日は、CTO 矢崎による 1つの terraform で複数 AWS Account をまとめて構築・管理する でした。 今回は、AIチームでのAPI開発で利用している技術の紹介と、開発の効率化のため、プロジェクトの雛形を自動的に生成するcookiecutterのプロジェクトテンプレートを作成した件について紹介します。 qiita.com 背景 プロジェクトテンプレートの実装 APIとリポジトリの構成 プロジェクトの内容 GoaのDSLファイル Dockerfile Kubernetesの設定ファイル各種 負荷試験用のシナリオファイル まとめ We're hiring! 背景 エムスリーでは、早くからマイクロサービス化に取り組んでおり、m3.co

    Kubernetes上でのGoによるシンプルなAPIの開発と、その効率化のためのcookiecutter templateを作った話 - エムスリーテックブログ
    dowhile
    dowhile 2019/12/04
  • エムスリーでプロダクトマネージャーとして働くということ(デジカル編) - エムスリーテックブログ

    こんにちは、 エムスリーエンジニアリンググループ、プロダクトマネージャーの岩田です。 7月からエムスリーに入社し、主にエムスリーデジカルというクリニック向けの電子カルテのプロダクトマネージャーとして働いています。 今回は私が携わっているエムスリーデジカルというプロダクトの内容とその面白さを紹介させて頂きます。 エムスリーでは多数のプロダクト開発が行われており、どれも非常にチャレンジングかつ優秀なビジネスチーム、エンジニアチームと働くことができる職場です。 こうしたエムスリーの取り組みについて興味を持って頂けたら幸いです。 プロダクト紹介 なぜエムスリーが電子カルテ市場に参入したのか クラウド 自動学習機能 エムスリーでプロダクトマネージャーとして働く面白さ・やりがい 初代プロダクトマネージャーVPoE山崎の存在 メンバーも強い ラディカルな戦略を推奨するカルチャー、マネジメント イベント告

    エムスリーでプロダクトマネージャーとして働くということ(デジカル編) - エムスリーテックブログ
    dowhile
    dowhile 2019/11/16
  • Webエンジニアが使う身近な Kubernetes を開催しました - エムスリーテックブログ

    こんにちは。エムスリーエンジニアリングGの岩月(@kaito2)です。 9/9(月) にSpeeeさん1のオフィスをお借りして、Kubernetes勉強会 題して「Webエンジニアが使う身近な Kubernetes」を開催しました!! Webエンジニアが使う身近な Kubernetes - connpass なんと 当日の早朝には台風第15号 (ファクサイ) が直撃!! 私も午後からの出勤でした。 そんな足元の悪い中多くの方にお越しいただき、ありがとうございました。 勉強会は、最近着々と身近になってきているコンテナオーケストレーションシステムである Kubernetes への取り組みについて発表・議論を目的としています。 今回は、エムスリーと JapanTaxi さんでの Kubernetes に関する取り組みの発表でした。 発表内容 発表順に内容および資料を紹介します。 Kuberne

    Webエンジニアが使う身近な Kubernetes を開催しました - エムスリーテックブログ
    dowhile
    dowhile 2019/09/20
  • 突撃!隣のキーボード M3 2019 - エムスリーテックブログ

    こんにちは、エムスリー エンジニアリンググループ AIチームに今年の2月にジョインしました河合 (@vaaaaanquish) です。 エムスリーテックブログでは今回初めての投稿で緊張しますが、お手柔らかにお願いします。 はじめに 近年、ソフトウェアエンジニアの「キーボード」への熱は高まり続けています。 昨年には、DMMさんにてキーボードをこよなく愛する人達によるイベントが開催され、250人以上が集まり、自作のキーボードやキーキャップを扱うノウハウが広く共有されました。 inside.dmm.com また2018年を振り返ると、自作キーボード専門店である遊舎工房の実店舗がオープンしたり、Cookpadさんはインターンでも自作キーボードの作成を取り入れて話題になりました。 techlife.cookpad.com こちらのインターンは、PCBでのリバースエンジニアリングやキーボードの回路の設

    突撃!隣のキーボード M3 2019 - エムスリーテックブログ
    dowhile
    dowhile 2019/08/16
  • APIのコードを自動生成させたいだけならgRPCでなくてもよくない? - エムスリーテックブログ

    こんにちは、エンジニアリンググループの福林 (@fukubaya) です。 先月から、今年の秋くらいにリリース予定の新サービスの設計、開発を始めました。 せっかく新しく始めるサービスなので、まだ経験したことがない言語やフレームワーク、技術を使わないと楽しくありません。 そこで、バックエンドにGoにして、フロントのAPIまで含めてgRPCの .proto ファイルで定義を一元化し、APIコードは protoc で生成させる計画を立てていたのですが、 フロントでgRPCとなると、 gRPC-web か grpc-gateway になるが、リリースまでに使える期間では認証も含めると検証が間に合わなさそう Goだけでなく、terraform(インフラ設計もやります) も Vue.jsも今回が初めて、というメンバーもおり、さらにRESTではなくgRPCも、となると未経験技術が多すぎてキャッチアップが

    APIのコードを自動生成させたいだけならgRPCでなくてもよくない? - エムスリーテックブログ
  • Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ

    砲撃する自走砲(PzH2000自走榴弾砲)。自走砲は戦車によく似ていますが、戦車ではありません。*編とは関係ありません。 こんにちは、エムスリー基盤開発チーム小です。 Pythonのパッケージ管理周りでは、 「setup.pyでrequirements.txtを読み込むのが普通なんですよね?」 「pipenv があれば venv はオワコンなんですね?」 「pyenvは要らないんですよね!?」 「Python歴史が古い分、Rubyなどに比べてカオス」 みたいな混乱をよく目にします。 実際、複数のツールがあって(一見)複雑です。また「なぜこうした状況にあるのか」がドキュメント化されているわけでもありません。 なので、私なりに整理してみることにしました。 ※「追伸」を追加しました。この記事では汎用プログラミング言語としてPythonを使うケース(Webアプリとか、CLIツールとか、ライブ

    Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ
    dowhile
    dowhile 2019/01/12
    自走砲?砲戦車のことでしょ
  • EmacsでWebサービスを開発して8ヶ月が経ちました - エムスリーテックブログ

    この記事はエムスリー Advent Calendar 2018 の16日目の記事です。 こんにちは、エンジニアリンググループ新卒1年目の青木です。クラウド電子カルテ「M3 DigiKar」の開発に携わっています。We are hiring!! 今回は私のチームが開発しているWebサービス「M3 DigiKar」の Emacs での開発方法を紹介します。 皆さんお馴染みのエディタ Emacs はじめに 共通設定 検索・補完・定義参照 company.el ivy.el & counsel.el & swiper.el dumb-jump.el Syntax Check & Lint flycheck.el Spell Check flyspell.el Visualize git-gutter-plus.el color-identifiers-mode.el rainbow-delimit

    EmacsでWebサービスを開発して8ヶ月が経ちました - エムスリーテックブログ
    dowhile
    dowhile 2018/12/16
  • エムスリーSREチームのご紹介 - エムスリーテックブログ

    こんにちは。エンジニアリングGでSREチームのチームリーダーを務めている池田(@progrhyme)です。 以前のエンジニアリングG内には、システムインフラの構築・運用を主に担当する「インフラチーム」が存在していましたが、今年の7月から改称して「SREチーム」と名乗ることにしました。 以降では、SREチーム設立の経緯や、その役割、ミッション等について記します。 SREとは SREは「Site Reliability Engineering」の略で、2003年にGoogleで誕生したSREチームが実践してきたプラクティスに基づくシステム運用の新しい形です。 2016年にO'Reillyから同名の書籍が出版されたことで、IT業界を中心にその考え方やメソッドが広く普及していったと思います。 SRE(= Site Reliability Engineer)が単なる運用チームと異なるのは、彼らがソフ

    エムスリーSREチームのご紹介 - エムスリーテックブログ
  • どこでもKotlin #2 〜サーバーサイドKotlin特集〜 を開催しました! #m3kt - エムスリーテックブログ

    エンジニアの星川 id:oboenikui です。 2017/09/28にSpeeeさんのオフィスにて、弊社主催のKotlin勉強会である「どこでもKotlin #2 〜サーバーサイドKotlin特集〜」を開催しました。 エムスリーではAndroidの開発言語としてだけでなく、サーバーサイドでもKotlinを実戦導入しています。 「どこでもKotlin (通称どこコト)」は、そんなKotlinがアプリやサーバーサイドなどどこでも使える言語として、一部の会社だけではなくどこでも使われるようになって欲しい、という願いを込め、Kotlinを盛り上げるために約月1回の頻度で開催していく予定の勉強会です。 第2回目の今回は、サーバーサイドにフォーカスを当てた回として予告しており、発表3つ全てがサーバーサイドKotlinに関する内容となりました。 Kotlin勉強会で内容がサーバーサイドのみのものとい

    どこでもKotlin #2 〜サーバーサイドKotlin特集〜 を開催しました! #m3kt - エムスリーテックブログ
  • 1