Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

R&D, DevOps通信 の検索結果:

【R&D DevOps通信】Google Compute Engine + GPUで動作するMLサービスの基盤を刷新した話(技術選定編)

技術本部 研究開発部 Architectグループの島です。見習い12年目です。 今回は、当社のデータ化技術の粋である「NineOCR」について、そのインフラ・デプロイの基盤を刷新したお話をします。NineOCRに関しては、以下の記事などをご参照ください。 buildersbox.corp-sansan.com ということで「NineOCR」をテーマに以下の2回に分けて記事にする予定です。今回は前編、技術選定の過程です。 前編: 技術選定の過程 後編: GCEにおけるサービスの…

チーム開発合宿 2024 in 徳島県神山町(技術編)

…ださい。 本記事は【R&D DevOps通信】という連載記事のひとつです。 背景 Sansan Labsで大きめのリリースを控えているため、それまでに障壁となる課題を短期間で改善することが目的です。通常はLabs開発に関わりのないメンバーも含めて、全員で集中して取り組むことで、効率的に課題を解決することがこの合宿に期待していることです。 期待される成果 Sansan Labsの全アプリケーションを、簡単かつ安全にリリースできる状態になっていることが期待される成果です。 タスク…

チーム開発合宿 2024 in 徳島県神山町(レポート編)

…待です。 本記事は【R&D DevOps通信】という連載記事のひとつです。 開発合宿の概要 目的 今回の合宿の目的は以下の通りです。 チームメンバー変更に伴ってメンバーの親睦を深める Sansan Labsリリースの障壁となる多くの課題を短期間で改善する リモートワークが中心かつ、チームメンバーも東京と大阪にいるためなかなか全員が集まれる機会はありません。この1年間で新卒や中途のメンバーの加入もあり、オフラインで顔を合わせてチームの親睦を深めておきたいところでした。 そしてS…

Firehoseを介したS3への中間データ保管と検索性強化

…す。 この記事は、【R&D DevOps通信】の連載記事のひとつです。 背景 フィードバック対応の手順は前任者がメモ程度に残したもので整備されておらず、手順自体も煩雑で属人性の高い作業になっていました。 具体的には、 フィードバック内容にある文字列からAthenaで検索 Athenaで特定したユニークIDを元にS3上の該当データを探す S3上のデータをダウンロードしてからローカルでデバッグする といった内容でした。また、S3のファイルは別チームが管理しており、データ連携が自動…

2023アドベントカレンダーの社内LT大会の開催報告:技術とチキンでつながる一夜

…よる発表です。 「【R&D DevOps通信】データ分析基盤の分析用メタデータ管理 -2. 実装-」の内容を「メタデータとは何かをチキンを使って分かりやすく解説する」というユーモアを交えた内容でした。 メタデータの必要性がよくわかるスライドは以下です。 メタデータのある肉売り場の例 肉を買いに来たお客さん(ユーザ)が商品(データ)を選び、料理(データ活用)するという工程で、メタデータが無いと困ることがわかります。 例えば、消費期限がないと腐っているかどうかわかりません。 bu…

【R&D DevOps通信】データ分析基盤の分析用メタデータ管理 -2. 実装-

…の23日目、および【R&D DevOps通信】の連載記事のひとつです。 データ分析基盤で分析をする際に必要となる分析用メタデータの管理・運用についての取り組みを連載にて紹介します。 2回目となる今回は、分析用メタデータをスプレッドシートでどう管理しているか実装面を中心に書いていきます。 なお初回の記事では、分析用メタデータについて・管理を実現するための方法検討・決定において取り組んだことを書きましたのでよろしければご覧ください。 buildersbox.corp-sansan…

Knative ServingをKustomizeでPatchStrategicMergeしたい!

…の22日目、および【R&D DevOps通信】の連載記事のひとつです。 adventar.org 普段の業務では Circuit という Kubernetes を利用したアプリケーション基盤を作っています。 Circuitは研究開発部の研究成果を最速でリリースすることを目的に開発運用しています。 研究員はアプリケーションの開発と、テンプレートを元にしたマニフェストの記述をするだけで、誰でも簡単にアプリケーションのデプロイできる仕組みを実現しています。 speakerdeck.…

Helmを使用せずにKustomizeでAirbyteをKubernetes上に構築する

…の19日目、および【R&D DevOps通信】の連載記事のひとつです。 adventar.org 今年6月にData DirectionチームからML Platformチームに異動し、全社横断データ基盤の開発から離れて、研究開発部内のアプリケーション基盤「Circuit」の開発に従事しています。 研究開発部の2大基盤に関する知見を有していることを誇りに思っています。 全社横断データ基盤 全社横断データ基盤とは、2022年に研究開発部で導入した全社のデータ意思決定を支えるデータ…

【GitHub Actions】reviewdog + reusable workflows によるCI/CD共通化

…の記事です。および【R&D DevOps通信】の連載記事のひとつです。 こんにちは、研究開発部 Architectグループの藤岡です。 今回は部で運用しているCI/CDに関する取り組みについてお話しします。共通化のノウハウや、どういった種類のCI/CDを導入してコード品質を担保しているかといった話をしたいと思います。 そのまま使える実装例もあるので、是非参考にしてみてください。 目次 目次 CI/CD共通化 reviewdog による Pull Request へのコメント …

1年間の挑戦と成長:チームビルディングの舞台裏

…の11日目、および【R&D DevOps通信】の連載記事のひとつです。 こんにちは、研究開発部 Architectグループの辻田です。去年の12月頃にランニングを始めて早1年、年間の走行距離は2114kmとなりました。 フルマラソンデビュー戦では4時間9分で無事に完走できました。来年は4時間切りを達成したいです。 そんなことはさておきこの1年間、私たちのチームは挑戦と協力の中でさまざまなチームビルディング施策に取り組みました。この記事では、具体的な取り組みである「チームラーニ…

NineOCR の最近と今後

…テム構成等の詳細は R&D エンジニアの八藤丸さんの記事が詳しいのでご覧ください。 buildersbox.corp-sansan.com Feature Store の導入によって、性能面で次のような成果を上げることができました。 文字列検出器 学習データの追加が可能となり、最新データで追加学習してモデルを更新。 文字認識器 特定の文字を含むケースや苦手ケースを検索可能となり、それらをサンプリング・アノテーションしてモデルを更新。 また、それ以外のサブモジュールの更新におい…

【R&D DevOps通信】DatadogでKubernetesのNamespaceごとに通知先を振り分る

…チャンネル名に通知しています。以上で、同一モニタ内でのSlackチャンネル通知先の振り分け設定は完了となります。 おわりに Datadogは機能が多い分「これどうやるんだっけ?」と悩むことも多いと思います。 本ブログで少しでも参考になれば幸いです。次のブログでまた、お会いしましょう! 求人 私の所属するML Platformチームを含む、研究開発部Architectグループでは一緒に働く仲間を募集しています。R&D MLOps/DevOpsエンジニア / Sansan株式会社

2023年 研究開発部 新卒技術研修 ~ 実践編 ~

…ラインを実装 まずはR&D独自で用意している Cookiecutterというテンプレート生成ツールでプロジェクトの雛形を作成します。 詳しくは以下の記事を参照してください。 buildersbox.corp-sansan.com 自動生成されたテンプレートを修正していき、以下のような処理を実現するパイプラインをつくっていきます。 Athena からSansan社員の名刺交換履歴を取得する 名刺交換履歴から共起行列を作る 共起行列からエッジリストを作る Node Embeddi…

【R&D DevOps通信】初めてのEKS Kubernetesバージョン更新を振り返る

…ていたため、事なきを得ましたが青ざめました。 詳細は別エントリーにしようと思います。 おわりに ブログを書いているうちに、EKSで1.26が使えるようになってしまいました。 2回目の更新が終わったらまた振り返りエントリーを書こうと思います。 求人 私の所属するML Platformチームを含む、研究開発部Architectグループでは一緒に働く仲間を募集しています。 R&D MLOps/DevOpsエンジニア / Sansan株式会社 *1:一時的に0.5vCPUメモリ4GB

【R&D DevOps通信】チーム開発合宿 in 徳島県神山町

…す。なお、本記事は【R&D DevOps通信】という連載記事のひとつです。 目次 目次 開発合宿の概要 目的 日程/スケジュール 場所 1日目 移動(-12:00) お昼ごはん(12:00-13:00) チェックイン(13:00-13:30) 開発(13:30-18:30) ご飯や風呂、自由時間(18:30-) 2日目 開発(9:30-12:00) お昼ごはん(12:00-13:00) 開発(13:00-18:30) ご飯や風呂、自由時間(18:30-) 3日目 開発(9:3…

【R&D DevOps通信】Slack BoltとCloud Functionsでデータ基盤アクセス承認システムを開発

…ればと思います。 【R&D DevOps通信】データ基盤におけるGitHub Actionsを使ったTerraformとCloud ComposerのCI/CD - Sansan Tech Blog 【R&D DevOps通信】Cloud Composerを用いたデータ基盤の転送パイプライン構築 - Sansan Tech Blog 【R&D DevOps通信】Cloud ComposerのDAGでデータ基盤の転送パイプラインを監視 - Sansan Tech Blog 【R…

【R&D DevOps通信】研究開発部の.NET基盤をご紹介

技術本部 研究開発部 Architectグループの島です。本連載を最初2回*1*2だけ書いてとんずらしていましたが復活です。 今回は、研究開発部にて .NET 技術がどのように使われているか・何に取り組んできたかをご紹介したいと思います。 当社にはSansanなど.NET開発のメインストリームがある中で、研究開発部における.NET開発はそれらと交流がほぼなく、社内でも隠れた存在です。この記事は外部向けではあるものの、社内のほかの .NET エンジニアへの情報共有も兼ねています…

EKSのクラスタに追加のセキュリティーグループを導入してクラスタバージョン更新に備える

…。 なお、本記事は【R&D DevOps通信】という連載記事のひとつです。 目次 目次 背景 研究開発部へのEKS導入 Blue/Greenデプロイによるクラスタのバージョン更新 クラスタごとに作られるクラスタセキュリティーグループ SecrurityGroupPolicyでPodごとのアクセス制限 解決したい課題 クラスタのバージョン更新のたびにSecurityGroupPolicyを書き換えたくない 解決策 追加のセキュリティーグループをSecurityGroupPoli…

Argo Rolloutsでプログレッシブデリバリを実現する

…m なお、本記事は【R&D DevOps通信】という連載記事のひとつです。 Argo Rolloutsについて 概要 RolloutsはKubernetes上でデプロイメントの管理と自動化を行うためのツールです。CI/CDパイプラインの自動化、ネイティブなKubernetesのリソースのデプロイメント戦略、プログレッシブデリバリなどの目的に使用されます。また、Argo CDやArgo Workflowと組み合わせることでより高度な自動化を実現することができます。 詳しくはドキ…

KubernetesのCronJobからJobを気軽に実行できるGitHub Actionsの仕組み

…。 なお、本記事は【R&D DevOps通信】という連載記事のひとつです。 目次 目次 研究開発部とEKSの背景 CronJobの手動実行が必要になった経緯 GitHub ActionsからCronJobの手動実行ができる仕組み CronJobからJobを作成する方法 実装の方針 出来上がった仕組みの構成図 作成したワークフロー GitHub Actionsからkubectlを使うためのAWS側の設定 GitHub ActionsからJobを作成するためのKubernetes…

【Tech 道場 開催レポート】アドベントカレンダーLT大会を開催しました

…han で作った 【R&D DevOps通信】データ分析基盤の分析用メタデータ管理 -1. 実現方法の検討- Slack絵文字の作成時に気をつけていること Cloud IdentityでGoogleグループからメンバーを追加・削除するGoogle Apps Scriptを書いた 会社からいただいた 1kg のすだちをどう楽しんだか、まとめ レスポンシブなクリスマスツリーの作り方 当日の感想 一番の感想は「色々な話を聞けて楽しかった!!」です。すだちの話、絵文字の話は肩の力を抜…

GitHub ActionsでK8sのマニフェストを生成できるようにして開発リードタイムを改善する(後編)

…m なお、本記事は【R&D DevOps通信】という連載記事のひとつです。 目次 目次 作成したワークフロー 処理の流れ GitHub Appによるトークン取得 Cookiecutter GitHub Actinsからプルリクエスト作成 実装 cookicutterのオプションについて補足 Cookiecutterテンプレート管理に用いた理由 おわりに アナウンス 求人 作成したワークフロー 構成図 具体的なワークフロー 処理の流れ ユーザがパラメータを決めてGitHub A…

GitHub ActionsでK8sのマニフェストを生成できるようにして開発リードタイムを改善する(前編)

…m なお、本記事は【R&D DevOps通信】という連載記事のひとつです。 目次 目次 背景 研究開発部の研究員とArchitectグループ Kubernetes(EKS)を導入 動機 Circuitでボトルネックを解消し開発リードタイムを改善したい いきなりマニフェストを書けと言われても辛い 取り組み Github Actionsでマニフェスト生成とPR作成 社内勉強会で紹介 効果 Sansan Labs開発が爆速に おわりに アナウンス 求人 背景 研究開発部の研究員とA…

【R&D DevOps通信】Amazon ECSのTips

こんにちは、R&D Architectグループの辻田です。ECS on EC2のアーキテクチャでサービスを構築する機会があったので、そこで得た知見をTips形式でまとめたいと思います。 EC2 or Fargate ECSはEC2とFargateの2つの起動タイプをサポートしていますが、今回はサービスの背景やユースケースの観点からすべてのタスクをEC2で起動することになりました。 EC2 or Fargateはそれぞれメリットデメリットがあり、どちらが最適かはユースケースによ…

【R&D DevOps通信】データ分析基盤の分析用メタデータ管理 -1. 実現方法の検討-

本記事は Sansan Advent Calendar 2022 10日目の記事です。 adventar.orgこんにちは。研究開発部 Architectグループ データエンジニアの出相(デアイ)です。 データ分析基盤で分析をする際に必要となる分析用メタデータの管理・運用についての取り組みを連載にて紹介します。 初回は、分析用メタデータについての紹介と、管理を実現するための方法検討・決定において取り組んだことを書いていきます。

【R&D DevOps通信】自社OCRエンジン「NineOCR」の学習効率化のためFeature Storeを導入した話

…なったわけです。 【R&D DevOps通信】自社製OCRのキャッシュシステムについて - Sansan Tech Blog Feature Storeは、3の解決策に当たる機械学習モデルの特徴量を保存、共有、管理するための基盤になります。学習は一度実行して必ず期待通りのモデルが出来上がるものではなく、諸々条件を微調整しながら、何回も繰り返して行う必要があるのですが、微調整する条件の一つに何を学習データとするかというところがあり、一つの実験ごとに欲しいデータを数日かけて作成し…

【R&D DevOps通信】データ基盤におけるGoogleグループ・IAMによるアクセス制御

…ればと思います。 【R&D DevOps通信】データ基盤におけるGitHub Actionsを使ったTerraformとCloud ComposerのCI/CD - Sansan Tech Blog 【R&D DevOps通信】Cloud Composerを用いたデータ基盤の転送パイプライン構築 - Sansan Tech Blog 【R&D DevOps通信】Cloud ComposerのDAGでデータ基盤の転送パイプラインを監視 - Sansan Tech Blog Go…

【研究開発部の技術】第3回 名刺に特化した文字認識エンジン「NineOCR」

…書いたものです。 【R&D DevOps通信】自社製OCRのキャッシュシステムについて - Sansan Tech Blog NineOCRはGEES(弊社の名刺データ化システム)のフローの中で複数回呼ばれるので、結果をキャッシュして使い回すことで計算コストを抑えています。 NineOCRとMLOps 今後もNineOCRをさらに高精度化すべく、学習データ収集の効率化・継続的な性能監視を含めたMLOpsに取り組んでいます。 私は研究開発部のArchitectグループという、研…

【R&D DevOps通信】アプリケーション基盤としてKubernetesを導入、そして周辺技術選定と運用設計

…できればと思います。 求人情報 求人情報です。私達Architectグループは北海道、東京、名古屋、大阪にメンバーが点在しています。 R&D MLOps/DevOpsエンジニア / Sansan株式会社 *1:Kubernetes Release Cadence Change: Here’s What You Need To Know | Kubernetes *2:Sansan, Eight等。一つのプロダクトの中でサービス(APIやバッチ等)が複数動いているイメージです。

【R&D DevOps通信】Poetry1.2でプライベートパッケージを扱う(GitHub, AWS CodeArtifact, GCP Artifact Registry)

…しくお願いします。 R&D MLOps/DevOpsエンジニア / Sansan株式会社 *1:2022/10現在の最新は1.2.1ですね。 *2:もっと見たい場合はこちらを御覧ください。https://python-poetry.org/blog/announcing-poetry-1.2.0/ *3:デフォルトはhttps://pypi.org/です。 *4:PyPIを優先させたい時に使います。 *5:プライベートレポジトリからのみパッケージを探したい時に使います。 *6…

© Sansan, Inc.