タグ

ブックマーク / engineering.visional.inc (3)

  • ダウンタイムなしでEC2のElasticsearchからマネージドなOpenSearchへと移行した際の工夫

    「HRMOS採用」では、採用に関するデータをElasticsearchに保存し検索機能で利用しております。 以前はEC2インスタンスにインストールしたElasticsearchを利用していましたが、スケールやメンテナンスしづらいことからAWSのマネージドサービスであるAmazon OpenSearch Serviceへの移行を行いました。 移行の際には、ユーザに安心・安全な利用をしていただけるように、下記の4つの観点に気をつけました。 データのロストがないこと セキュリティ的に安全であること 機能・非機能ともに劣化がないこと ダウンタイムなしで移行完了させること この記事では、特に ダウンタイムなしで移行完了 に至った3つの工夫を紹介します。 ※以降、Elasitcseasrch=ES、Amazon OpenSearch Service=AOSと記載します はじめに 「HRMOS採用」とは

    ダウンタイムなしでEC2のElasticsearchからマネージドなOpenSearchへと移行した際の工夫
  • さらなる型安全性を求めて ~ Refinement TypeをScalaで実現する ~

    SoRの性質が強いBtoBアプリケーションでは、「堅く」作ることを求められる箇所がしばしばあります。 Scalaの型安全性が頼もしく感じられるのは、まさにこのような箇所においてです。 「堅く」作るために、私たちがいま注目しているのが refined と newtype というライブラリです。 この記事では、refinedとnewtypeを使ってScalaの型安全性をさらに引き出すテクニックを紹介します。 Value Class / Tagged Type refined + newtypeの話題に入る前に、これまでにどのようなテクニックが使われてきたかを簡単に振り返りましょう。 ここに、SNSのユーザーアカウントを表現するクラスがあります。 case class User(id: String, email: String, age: Int) val user1 = User("@tod

    さらなる型安全性を求めて ~ Refinement TypeをScalaで実現する ~
    mather314
    mather314 2020/10/17
    良さそう
  • Rust愛が高まりすぎて勉強会を開いた ~ Running Rust in Production 誕生秘話

    皆さん、初めまして。 2017年新卒入社の牧野美咲(@T5uku5hi)と申します。 キャリトレ事業部のサーバーサイドエンジニアです。 今回は、先日開催したRustの勉強会についてお話したいと思います。 なぜRustの勉強会? 私は趣味Rustの勉強をしています。 きっかけはこちらのスライドをご覧ください。 Rustのお陰で、普段業務で使っているJavaへの理解が深まった訳ですが、 せっかくだからRustを業務で使ってみたい でも、Rustの使い所や提案の仕方がわからない という状況でした。 わからないから知りたい! そうだ、Rustを実際に業務で使っている人に教えてもらおう! 知的好奇心の塊である私は、勉強会を開くことを決意したのでした。 話題の方々に直撃お声がけ タイムリーなことに、Rustユーザーの集うSlackチャンネルで、 「どの日の会社がRustを使っていますか?」 という

    Rust愛が高まりすぎて勉強会を開いた ~ Running Rust in Production 誕生秘話
    mather314
    mather314 2018/07/19
    すばら
  • 1