タグ

ブックマーク / tech.kanmu.co.jp (7)

  • 次なる`pkg/errors`を探して - カンムテックブログ

    エンジニアの宮原です。 今回はGoでスタックトレースを取得するライブラリ選定についての記事です。 この記事は 【Gophers Talk】スポンサー4社による合同LT & カンファレンス感想戦で発表したものです。 発表スライドはこちらから確認できます。 この記事の目的 この記事ではpkg/errorsからの移行先を探すための参考情報を提供することを目的とします。 Goのエラーハンドリングのやり方等についてこの記事では触れないこととします。 pkg/errors とはなにか pkg/errorsとは、githubのREADMEを引用すると Package errors provides simple error handling primitives. とあり、直訳すると、「エラーハンドリングの基礎を提供するパッケージ」となります。 pkg/errorsを利用することで、Go体にはないスタ

    次なる`pkg/errors`を探して - カンムテックブログ
  • 無理なく始めるGoでのユニットテスト並行化 - カンムテックブログ

    KanmuでPoolを開発しているhataです。最近、ロボット掃除機を買いました。ロボとがじゃれている景色はいいですね。 今回はGoのユニットテストの並行化についての記事です。 TL;DR Goのテストは、並行化することでテスト実行時間の短縮やテスト対象の脆弱性の発見などのメリットがある 基的にはそのままでも最適化されているが、テストコードにt.parallelを記述することでよりきめ細やかな最適化を施すことができる ただし、一定規模以上のアプリケーションへの導入・運用は大変 テストコードを一気に並行化するtparagenというツールや、並行化忘れを防ぐ静的解析ツールがあり、これらを使うことで無理なくテスト並行化の導入・運用ができる はじめに ユニットテスト並行化とは 記事では、「並行」「並列」という用語を使用します。記事におけるこれらの用語を定義します。 並行:複数の処理を独立に

    無理なく始めるGoでのユニットテスト並行化 - カンムテックブログ
  • クエリログを使ったPostgreSQLの負荷テスト - カンムテックブログ

    SREの菅原です。 この記事はカンム Advent Calendar 2022の4日目の記事になります。 少し前にサービスで使っているPostgreSQLをRDSからAuroraに移行しました。 Auroraに移行するため色々と作業を行ったのですが、その中でAuroraの性能を測るために行った負荷テストについて書きます。 pgbench まず最初にpgbenchを使って、単純なワークロードでのRDSをAuroraの性能差を測ってみました。*1 以下がその結果です。 MySQLで同様のテストをmysqlslapを使って行ったことがあって、そのときは概ねAuroraのほうが性能が高かったので、同様の結果になると考えていたのですが、RDSのほうが性能が高い結果になったのは予想外でした。 ただAuroraのアーキテクチャを考えると、pgbenchのような細かすぎるトランザクションの場合はRDSのほ

    クエリログを使ったPostgreSQLの負荷テスト - カンムテックブログ
  • クレジットカード決済システムで利用するデータセンターの選定 - カンムテックブログ

    エンジニアの佐野です。今日はインフラの話です。主に物理インフラの話です。カンムがデータセンター(以下、DC)の選定や契約をした際の勘所について書きます。クラウドと DC の相互接続であったりネットワーク構成や機器のコンフィグレーションなどのテクニカルな話はまた別途書こうと思います。 カンムでは主に AWSGCP 上にインフラを展開して開発を行っています。メインは AWS機械学習やデータプロセッシングの一部は GCP です。そして先に書いたとおり DC 契約もしています。基的にはクラウド中心のインフラ運用ですが DC はビジネスパートナーと専用線接続するための重要な拠点となっていて、シンガポール拠点の企業などと専用線で接続しています。DC と AWS 間は AWS Direct Connect で接続しています。 今や特にスタートアップは DC を自前契約することはほとんどないと思

    クレジットカード決済システムで利用するデータセンターの選定 - カンムテックブログ
  • ECSで作業用のタスクをサクッと作るためのツールを作成した - カンムテックブログ

    インフラエンジニアの菅原です。 最近、バイクに念願のグリップヒーターをつけました。 これでツーリング時の手の寒さが多少楽になりそうで喜んでいます。 とはいってもなかなか出かけられないのですが… 現在私はAWS Fargateを使ったサービスをECS上に構築を進めており、日々コンテナと戯れています。 基的にストレージ以外のコンポーネントはほとんどECSで動いているのですが、VPCのネットワーク内でちょっとした作業(たとえばネットワークの疎通確認など)をしたい場合、都度新しいタスクを起動して作業しています。 また、DBにテストデータを入れたかったり、どうしてもDBを直接操作したいことがある場合、stoneを新しいタスクを起動した上で、そのタスクを踏み台としてaws ssm start-sessionでポートフォワーディングを行い、手元から直接DBにアクセスできるようにしたりしています。 しか

    ECSで作業用のタスクをサクッと作るためのツールを作成した - カンムテックブログ
    mapk0y
    mapk0y 2021/12/14
  • Go Conference 2021 Autumn CTF: Go 1.16.4 に含まれる脆弱性を突いてリバースプロキシを突破する - カンムテックブログ

    エンジニアの佐野です。Go Conference 2021 Autumn にて Kanmu はスポンサー枠をいただき、オフィスアワーの催しで Go x セキュリティというコンセプトの CTF のような問題を用意させていただきました。 問題はこちら "Go" beyond your proxy になります。 github.com The Go gopher was designed by Renee French. 当日解けなかった人やこのブログを読んで興味が沸いた人もチャレンジしてみてください。 問題を簡単に説明すると、 Go 1.16.4 で書かれたリバースプロキシの背後の HTTP サーバに flag.txt というファイルが置かれています。このファイルには簡単なアクセス制限が施されているのですが、それを突破してそのファイルの中身を参照して解答してください、というものになります。 Go

    Go Conference 2021 Autumn CTF: Go 1.16.4 に含まれる脆弱性を突いてリバースプロキシを突破する - カンムテックブログ
  • カンムにおけるインフラの考え方をまとめた「インフラマニフェスト」のご紹介 - カンムテックブログ

    カンムでバンドルカードのバックエンドやインフラを担当している summerwind です。 バンドルカードではスマホ上で Visa のプリペイドカードを発行して決済に使える機能を提供しており、クレジットカード情報を扱っていることから、インフラの観点では高いセキュリティを維持することが重要になっています。バンドルカードのシステムは API や国際カードブランドと接続している決済システムなどの複数のコンポーネントで構成されていますが、システムが構築された時期によって構成や設定の方針などが異なるため、より高いセキュリティを達成するためにシステム構成の変更や整理、設定の見直しを日々進めています。 構成や設定の見直しを進めていく中で、全体的な方針や目指している姿を言語化しておいた方が周囲のエンジニアにも理解が得られやすいのではないかと感じたため、インフラに対する考え方や方針を言語化した「インフラマニ

    カンムにおけるインフラの考え方をまとめた「インフラマニフェスト」のご紹介 - カンムテックブログ
  • 1