タグ

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

  • IaCを意識したCLI開発のエッセンス - エムスリーテックブログ

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

    IaCを意識したCLI開発のエッセンス - エムスリーテックブログ
    braitom
    braitom 2020/11/28
    CLIツールを作るときのポイントについて。IaCのプラクティスを意識して無人実行の信頼性を上げる、他のツールと合わせて使えることを意識するなど。
  • Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ

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

    Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ
  • 「エンジニア実績システム」を導入しました! - エムスリーテックブログ

    あけましておめでとうございます。エンジニアリンググループの松原@ma2geです。 私はこちらの記事にもあるマルデバチームのチームリーダーをしていますが、採用チームとしても働いております。 今回は採用チームで取り組んでいるエンジニアの成長や OSS 活動を推進する仕組みの一部として、 チラッとこのブログにも出てきた「エンジニア実績システム」を導入してみた話です。 エンジニア実績システムとは エムスリーの実績システム 2015 年くらいにはてなさんやペパボさんで導入されたことが話題になったのでご存知の方も多いと思います。 以下のようなエンジニア各人の社外的な取り組みに対して、達成したかどうかを実績として記録できるようなシステムです。 GitHub リポジトリへのスター数(10, 50, 100, 1000) 月間記事エントリ数(5, 10, 20) 詳しくははてなさん、ペパボさんの以下の記事を

    「エンジニア実績システム」を導入しました! - エムスリーテックブログ
    braitom
    braitom 2019/01/07
    活動を可視化するという意味では良さそう。何かしら評価の軸に加わっているのだろうか?何か意味がないとやるモチベーションに繋がらなそうだなと思った。
  • React.js, Vue.jsが使えない状況でメンテナンス性の高いJavaScriptを書く3つのポイント - エムスリーテックブログ

    エムスリー エンジニアの岩です。 この記事は エムスリー Advent Calendar 2018 の23日目の記事です。 React.jsやVue.jsを使えれば、開発のベストプラクティスなどがあるので、メンテナンス性の高いプログラムはずいぶんと書きやすくなったと思います。当に仮想DOMの功績は大きいですね。 しかし、世の中にはそういったライブラリを使うことができないプロジェクトもあるわけです。古すぎて、一部分だけ最新のソースコードにすることが憚られたり、サイズの問題でライブラリを入れることができなかったり。。。 その場合どのように書けばメンテナンス性の高いプログラムを書くことができるのでしょうか。そこでIE6時代からJavaScriptをもりもりと書いている私なりのベストプラクティスを紹介します。 そもそもなぜメンテナンス性の悪いコードとなってしまうのか jQueryではセレクタで

    React.js, Vue.jsが使えない状況でメンテナンス性の高いJavaScriptを書く3つのポイント - エムスリーテックブログ
    braitom
    braitom 2018/12/24
    jQueryで書かれた古いJavaScriptのコードをどのようにメンテナンス性の高いコードにリファクタリングするかについて。コンポーネント思考で設計する、ViewModelを定義する、画面の更新処理は1箇所で行うなど。
  • PowerPointファイルからのテキスト抽出 - エムスリーテックブログ

    こんにちは!エンジニアリンググループの鹿山です。今年の4月から新卒で入社し、AI機械学習チームでレコメンドシステムの開発・運用を行なっています。 もっぱら西場さんが日々改良を加えている luigi をラップしたモジュールを用いて開発をしているのですが、処理フローがわかりやすくなるため 結果の共有や互いのコードのレビューがしやすくなり、日々の業務が効率化されています。 (luigi についての記事はこちら) 最近、社内での業務プロセス改善の一環で、pptx形式のPowerPointファイルからテキスト抽出を自動化し解析を行いました。 そこで今回は pptxファイルからテキストを抽出する方法について共有させていただきます。 目次 1. pptx ファイルから xml ファイルを抽出 2. スライドの xml ファイルからテキストを抽出 3. スライドマスタの xml ファイルからテキストを抽

    PowerPointファイルからのテキスト抽出 - エムスリーテックブログ
    braitom
    braitom 2018/11/09
    pptxファイルからテキストを抽出する方法について。xmlの構造について書かれている。
  • エムスリーのサービスレベル監視基盤を構築した話 - エムスリーテックブログ

    こんにちは、エンジニアリングGの高橋です。 去年の11月にエムスリーにSREとして参画してから、サーバのセットアップ作業などの基的なインフラ作業に加えて、各サービスのサービスレベルの設定や監視の仕組み作りなども行ってきました。 今回はそのサービスレベルを監視する仕組みをご紹介したいと思います。 稿の流れ SLI設定 SLO設定 各種メトリクスの収集 アラーティング 監視ダッシュボードの作成 まとめ 全体像 ざっくりとした全体像としては上図のような感じです。 また、この取り組みを実施した前後で、下のような変化(効果)がありました。 前 ログの収集はしているが、全サービスでは取れていない ログの収集経路がサーバによって異なる(Service AからElasticsearchとかもあったり) 後 全サービスのアクセスログを収集・閲覧可能 ログの収集経路を共通化 ほとんどのサービス(70以上)

    エムスリーのサービスレベル監視基盤を構築した話 - エムスリーテックブログ
    braitom
    braitom 2018/08/26
    SLI、SLOの設定方法と各種値の取得方法とアラート方法について。
  • bashスクリプティング研修の資料を公開します - エムスリーテックブログ

    こんにちは、エンジニアリングGの中村です。 以前にこのブログにてエムスリーでの社内研修について紹介しました。今回は、この中でのbashスクリプティング講座の資料を公開します。 www.m3tech.blog 弊社の中でもいろいろな用途でbashが使われていますが、bashは簡単に利用できるもののプログラミング言語としてはバグを生みやすい、辛い言語だと思います。 ここで紹介しているのはいわゆるコーディング規則というよりも、バグ防止と可読性向上のためのルールをTips集的にまとめたものです。 bashにおいてまだまだ注意するところはありそうですが、多少なりともわかりにくいスクリプトの削減になればと期待しています。 [追記: 2018-08-22] はてブにて以下のコメントをいただきました。 bashスクリプティング研修の資料を公開します - エムスリーテックブログ bashで50行以上になった

    bashスクリプティング研修の資料を公開します - エムスリーテックブログ
    braitom
    braitom 2018/08/22
    bashスクリプトの可読性向上のためのルール、実装のTips、デバッグ方法などがまとめられている。
  • DatadogでDocker監視が幸せになった話

    こんにちは、エンジニアリングGの安田(@dasoran2)です。7月に入社してAI機械学習チームに所属しています。趣味耳で入社早々会社ではエンジニアとしての地位を確立しつつあります。 今回は転職早々ではあるものの、自分のチームでDatadogをトライアル導入したのでその話を書きます。 稿は以下のような内容をお話しします。 Datadogを選んだ理由 DatadogでのDocker監視の概要 Datadogでハマったところ *1 事の発端 チーム内でレスポンスタイムに問題が発生して、その原因を調査する機会がありました。 しかし、メトリクスがCloudWatchで収集されているもののほかになく、それ以上を取るにはインスタンスやコンテナの中に入って収集する必要がありました。そのため、迅速な対応ができずこの状況を打破したいと考え各種導入検討を開始しました。 Datadogを選んだ理由

    DatadogでDocker監視が幸せになった話
    braitom
    braitom 2018/08/22
    DataDogでのDockerコンテナ監視について。なぜDataDogを選んだのか、基本的な設定方法、はまりポイントについて書かれている。
  • タイムゾーンを考慮した日時の扱いのベストプラクティス - エムスリーテックブログ

    こんにちは、server-side kotlinterraform を書くことが多い、エンジニアリングGの矢崎(id:Saiya)です。 タイムゾーンや日時の扱いについての話題がホットな昨今ですが、 そういった日時の扱いについて例えば以下のようなお話を受けることが少なからずありました: とりあえず日時は UTC からの時差情報付きで扱えばいいんでしょ? DB に保存するときもタイムゾーン情報付きで入れておけばいいんでしょ? こういったお話を振られた際に、思うところを一言でサッと説明できずもやもやする事もあり、 また web サービスにおいて日時・タイムゾーン・オフセットをどう扱うべきか?納得の行く説明をあまり見つけられなかったため、 筆者なりに考えをまとめてみました。 国家的祭典のために急にサマータイムが導入されるといった話に限らず、 クラウドサービスが UTC+0 の日時になってい

    タイムゾーンを考慮した日時の扱いのベストプラクティス - エムスリーテックブログ
  • 1