タグ

ブックマーク / tech-blog.optim.co.jp (6)

  • GitLab RunnerをGCPでオートスケールさせて安く運用する - OPTiM TECH BLOG

    こんにちは。Optimal Bizのサーバーサイドに関する開発を担当している伊藤です。 皆さんCIは何を利用していますでしょうか? Optimal BizではGitLab CI/CDを利用しています。 単体テスト・ビルド・デプロイ等CIの用途は多岐にわたりますが、実際にそれらを実行するPCを必要な数だけ常に起動しておくと無駄な料金がかかってしまいます。 そこで、今回はGoogle Cloud Platform(以降、GCP)のプリエンプティブル VM インスタンスをGoogle Kubernetes Engine(以降、GKE)でオートスケールさせることで、CIリソースを格安で確保する事例を紹介します。 利用例 Optimal Bizチームの場合は「RSpecをGitLab CI/CDを使って並列実行する」で紹介した大量の単体テストを約20台のノードで並列実行するために利用しています。 ざ

    GitLab RunnerをGCPでオートスケールさせて安く運用する - OPTiM TECH BLOG
  • RustのPinチョットワカル - OPTiM TECH BLOG

    こんにちは。 先日、しばらく不動の一位を守ってきたRustVSCodeで使う記事を抜き、 私の書いた非同期プログラミングの記事の記事が一番人気になったと思いきや数日でまた抜き返されて傷心中の、 R&Dチームの齋藤(@aznhe21)です。 さて、Rustの非同期プログラミングで時々Pinを使ったり、コンパイラにUnpinが不足していると怒られたりしませんか? そんな時によく分からずuseしたり別の手段を取ったりしていませんか? 今回、このままではマズいと思ってPinを勉強して完全に理解しましたので、その成果を皆さんと共有したいと思います。 更新履歴 03/10 指摘を受け下記2点を修正しました Unpinを実装しない型もムーブ出来ることへの言及 pin-projectクレートが安全であることによる書き換え 対象読者 この記事は下記全てに当てはまる人を想定して執筆しています。 Rustのト

    RustのPinチョットワカル - OPTiM TECH BLOG
    Akineko
    Akineko 2020/03/05
  • Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG

    こんにちは、R&Dチームの齋藤(@aznhe21)です。 さあみなさん、ついにこの時がやってまいりました。 日2019/11/8にリリースされたRust 1.39により、あらゆる環境で最高速な非同期プログラミングが可能になりました。 新たな時代に乗り遅れないよう、今のうちにRustでの非同期プログラミングをマスターしておきましょう。 なお、この記事は、先日開催したOPTiM TECH BLOG Meetupの内容を大幅に加筆修正した上でエントリに仕上げたものです。 まず最初に伝えたいこと 非同期の歴史 Rustの非同期プログラミングの歴史 Rust 1.0以前 Rust 1.0 〜Rust 1.3 Rust 1.2あたり Rust 1.11あたり Rust 1.26あたり Rust 1.36 Rust 1.39 Rustの非同期プログラミングの特徴 ゼロコスト抽象化 プラットフォーム非依

    Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG
  • Rustの未来いわゆるFuture - OPTiM TECH BLOG

    Rust 1.36がリリースされ、皆さん待望のFuture関連のAPIが安定化されました。 この記事ではFuture関連APIを巡る過去と未来を紹介します。 Q&A(TL; DR) 長くなってしまったので要約をまとめました。 細かい話は目次以降をご覧ください。 Futureは何のために必要? Futureは非同期処理を抽象化したもので、Rustにおけるあらゆる非同期処理はFutureの上に成り立ちます。 処理をFutureによって隠蔽することで、 ただ非同期に処理するだけでなく処理のパイプライン化、 すなわち単一のスレッドで複数の処理を実行出来るようになります。 futuresクレートではだめなの? async/await構文を入れるために言語コアに取り込まれました。 futures 0.1と合わせて使える? futures 0.3には互換性レイヤーがあり、相互に変換出来るため問題ありませ

    Rustの未来いわゆるFuture - OPTiM TECH BLOG
    Akineko
    Akineko 2019/09/08
  • Rust IDE に化ける VSCode - OPTiM TECH BLOG

    初めまして.社内の好きなエディタアンケートで Visual Studio Code (VSCode) に 1 票を投じた R&D チームの久保です.普段は深層学習を用いた画像解析やその周辺の研究開発を行っています. アンケートでは惜しくも Vim 勢に敗れてしまいましたが,2015 年にリリースされてからというもの,ものすごいスピードでユーザを増やしているこの VSCode を使って Rust の開発を行いたい人向けの記事を書いてみました.この記事を読むまで Rust (rls) と CodeLLDB拡張機能を知らなかったという人がいれば今すぐインストールしましょう.私がこの 11101 文字を使って言いたいのはそれだけです. 「Rust って何?」という方はぜひ以下の過去記事にも目を通してみてください. 必修言語Rustの他己紹介 Rust カテゴリーの記事一覧 - OPTiM TE

    Rust IDE に化ける VSCode - OPTiM TECH BLOG
  • Rustのカバレッジを極める - OPTiM TECH BLOG

    R&Dチームの齋藤です。最近モニターアームを(個人的に)買ってその便利さに心底満悦しています。 さて、前回はRust言語そのものを紹介しましたが、 今回はRustにおけるユニットテストの書き方とカバレッジの測り方を、 実際に医療機器ソフトウェアの開発の中で体験した内容を使って紹介します。 ユニットテスト テストの書き方 テストを実行する その他 カバレッジを測る カバレッジツールの比較 Tarpaulin cargo-cov cargo-kcov cargo-kcovのインストール カバレッジを計測する コード片を無視する ファイルを無視する カバレッジ結果を標準出力に出す Dockerの中で実行する CIで勝手にカバレッジ さいごに ライセンス表記 ユニットテスト 某宇宙の乗り物が発進するときに設備の故障が無いか、進路上に障害物が無いかをチェックして、 そのあと「システムオールグリーン」

    Rustのカバレッジを極める - OPTiM TECH BLOG
    Akineko
    Akineko 2019/02/20
  • 1