CADDi Tech Blog

https://caddi.tech/

キャディ株式会社のTechブログです

フィード

記事のアイキャッチ画像
アノテーションにおけるUIの工夫
CADDi Tech Blog
こんにちは、MLOpsチームです。先日OCRモデルを学習するためのアノテーションにおいて、作業効率を検証するためのPoCとしてアノテーションUIを開発しました。本記事ではこのアノテーションUIにおける工夫について、試用によって得られた知見をまじえつつ紹介します。 はじめに アノテーションUIを開発することとなった背景について説明します。 アノテーションUIとは アノテーションUIは機械学習の学習データを作成するためのUIです。アノテーションUIはアノテーション作業の効率に強く影響し、アノテーション作業によって得られる学習データの量は機械学習の精度に大きく寄与します。したがって、アノテーションU…
18日前
記事のアイキャッチ画像
Tech BlogをWordPressからはてなブログに移行しました
CADDi Tech Blog
こんにちは。Platformチームの飯迫 (@minato128)です。 今回は、Tech Blogの移行について簡単に紹介したいと思います。 背景 キャディのTech Blogでは、これまでKistaのManaged WordPressを利用してきました。 主な採用理由は、「カスタマイズ性の高さ、マネージドで安全に変更を反映できる仕組みがあること」でした。 実際、KinstaとWordPressはカスタマイズ性が高く、他社と差別化されたデザインを採用できたことはよかったのですが、下記のような課題がありました。 記事公開までの手順がシンプルではない*1 Production環境へのデプロイ(記…
20日前
記事のアイキャッチ画像
【LPIXEL×CADDi】Kaggle Masterとマネージャーが語るAI製品化の舞台裏【イベントレポート】
CADDi Tech Blog
みなさんこんにちは。キャディ(CADDi)でML/MLOpsチームのグループリーダをしている稲葉です。今日は、エルピクセル(LPIXEL)さんと一緒にオフラインイベントを開催しましたので、そのイベントレポートをお伝えしたいと思います。 はじめに イベントの詳細は、connpassのページをご確認いただけると幸いです。このイベントを開催するにあたってエルピクセルさんとも色々と議論したのですが、AIを製品として市場にリリースしているエルピクセル株式会社、キャディ株式会社からどういう点を意識してプロダクト開発しているかをお話すると実際の開発現場がイメージできるのではないかという話になりました。また、…
1ヶ月前
記事のアイキャッチ画像
会計システムのアーキテクチャとモデリング ~会計というドメインを Rust で表現している話~
CADDi Tech Blog
はじめに こんにちは。 バックエンドエンジニアの松本です。今回は、会計システムの開発を通じて、 CADDi におけるプロダクト開発の様子を紹介します。 2024年3月現在、CADDiでは2つのサービスを提供しています。1つは図面データ活用クラウド「CADDi Drawer」で、もう1つは加工品製造サービス「CADDi Manufacturing」です。 今回、後者の加工品製造サービス「CADDi Manufacturing」向けに、 会計システムを構築しました。これは、生産管理システムや拠点管理システムから取得した各種情報を基にして、会計仕訳データを生成し、経理部門に公開する役割を持ちます。 …
2ヶ月前
記事のアイキャッチ画像
RustでWeb APIを作る際のエラーハンドリング
CADDi Tech Blog
TL;DR エラーハンドリングを行う目的 エラーハンドリングが適切に行われているとどう嬉しいか 1. エラーの発生原因が分かる 2. レスポンスステータスを型安全に出し分けることが可能になる どうエラーハンドリングを行うのか 実装方法 エラー型の定義で気を付けるべきポイント なぜanyhowを利用しないのか エラーハンドリングを行う上で持っている課題感 Drawer Growth グループ バックエンドエンジニアの中野です。今回は、私が所属するチームで gRPC API を開発する際に実践している Rust でのエラーハンドリングについて紹介していきます。 TL;DR エラーの発生原因がわかる…
2ヶ月前
記事のアイキャッチ画像
大量のSeedデータの管理基盤としてAirtableを活用したら開発体験が素晴らしかった話
CADDi Tech Blog
はじめに こんにちは。CADDiでバックエンドエンジニアとして働いている中山です。 今日は、プロダクト開発において大量Seedデータの管理基盤としてAirtableを使ったら開発体験が素晴らしかったのでご紹介しようと思います。 ※ 以下の内容はAirtableの契約プランによって機能が異なること、執筆時にはできないが今後機能が追加されてできるようになっている可能性があることはご了承ください。 はじめに 背景 Airtableとは Airtableでできること UI上で操作が完結し、データの追加/編集がサクサクできる 表計算ソフトでおなじみの便利機能がたくさんある Web APIでCRUD操作が…
2ヶ月前
記事のアイキャッチ画像
モノレポの Python バージョンを 3.9 から 3.11 に上げる
CADDi Tech Blog
はじめに AI Team MLOps Engineer の西原です。前回は kubeflow pipeline(kfp)のローカル環境での実行について Tech Blog を書きました。kfp は 2024 年に入ってからローカル環境の実行以外にも嬉しいアップデートがあったのでそれに少し絡めて今回の取り組みを紹介しようと思います。 今回の取り組みは、モノレポで使っている Python の最低バージョンを 3.9 から 3.11 に上げるというものです。なぜ、バージョンを上げたのか、上げる際の障壁とその対応を紹介しようと思います。 はじめに なぜ Python バージョンを上げたのか パッケージ…
2ヶ月前
記事のアイキャッチ画像
第10回:Cloudflareの紹介と運用のポイント
CADDi Tech Blog
※本記事は、技術評論社「Software Design」(2024年1月号)に寄稿した連載記事「Google Cloudを軸に実践するSREプラクティス」からの転載1です。発行元からの許可を得て掲載しております。 はじめに 前回はDatadogによるクラウド横断のモニタリング基盤について解説しました。 今回はCloudflareとは何か、なぜ使っているのか、各サービスとポイント、キャディでの活用例を紹介します。 ▼図1 CADDiスタックにおける今回の位置付け Cloudflare とは 本記事では、Cloudflare社が提供しているプラットフォーム全体を「Cloudflare」とします。 …
3ヶ月前
記事のアイキャッチ画像
Kubeflow Pipelines の local 実行で開発効率を上げる
CADDi Tech Blog
はじめに AI Team MLOps エンジニアの西原です。2024 年 1 月にローカル環境で Kubeflow Pipelines を実行するドキュメントが公式から公開されました。今回はそのドキュメントを参考にローカル環境で Kubeflow Pipelines を実行する方法を紹介します。 はじめに Kubeflow Pipelines とは kfp を使った開発の課題 kfp を手元の開発環境で実行する ローカル環境でコンポーネント実行 アーティファクトを出力 任意のコンテナイメージを使ったコンポーネント GPU を使ったコンポーネント pipeline 実行 pipeline とは何…
3ヶ月前
記事のアイキャッチ画像
第9回: Datadogによるクラウド横断のモニタリング基盤
CADDi Tech Blog
※本記事は、技術評論社「Software Design」(2023年12月号)に寄稿した連載記事「Google Cloudで実践するSREプラクティス」からの転載です。発行元からの許可を得て掲載しております。 はじめに 前回は、Google Cloudが提供するAnthos Service Meshを導入して、GKEで動くアプリケーションに可観測性やセキュリティなどの機能を追加する方法について紹介しました。今回はDatadog1を利用したモニタリング基盤について、Datadogの採用理由や基本機能、キャディでの活用事例を紹介します(図1)。 ▼図1 CADDiスタックにおける今回の位置付け D…
3ヶ月前
記事のアイキャッチ画像
第8回: Anthos Service Mesh 入門
CADDi Tech Blog
※本記事は、技術評論社「Software Design」(2023年11月号)に寄稿した連載記事「Google Cloudで実践するSREプラクティス」からの転載です。発行元からの許可を得て掲載しております。 はじめに 前回はArgo CDによるKubernetesへの継続的デリバリについて紹介しました。今回は、Google Cloudが提供するAnthos Service Meshを導入して、GKEで動くアプリケーションに可観測性やセキュリティなどの機能を追加する方法を紹介します(図1)。また、本記事に関するサンプルコードについてはGitHub1を参照してください。 ▼図1 CADDiスタッ…
5ヶ月前
記事のアイキャッチ画像
SaaSのSREチームを立ち上げました
CADDi Tech Blog
本投稿はSRE Advent Calendar 2023の19日目の記事になります。 こんにちは。SREチームの矢野(@yymm)です。 今年の4月からCADDi DRAWERのサービス信頼性向上のためSREチームが活動を始めています。チーム立ち上げから3Q経過して方向性も見えてきたため改めて立ち上がりから今までのことを紹介します。 CADDi DRAWERについて 図面データ活用クラウドのCADDi DRAWERは、2022年6月に正式にローンチされました。 ローンチから1年半経過し取り扱うデータ数のオーダーやユーザー数が拡大してきており、機能面の拡充はもちろんのことですが、非機能要件の重要…
5ヶ月前
記事のアイキャッチ画像
第7回: Argo CDによるKubernetesへの継続的デリバリ
CADDi Tech Blog
※本記事は、技術評論社「Software Design」(2023年10月号)に寄稿した連載記事「Google Cloudで実践するSREプラクティス」からの転載です。発行元からの許可を得て掲載しております。 はじめに 前回はRenovateによる依存関係の更新について解説しました。今回はArgo CD1を利用した、Kubernetesへの継続的デリバリ(Continuous Delivery、CD)について紹介します。Argo CDとは何か、なぜ使うのか、基本的な機能やキャディでどのように活用しているかを紹介します(図1)。 ▼図1 CADDiスタックにおける今回の位置付け Argo CDと…
6ヶ月前
記事のアイキャッチ画像
第6回: Renovateによる依存関係の更新
CADDi Tech Blog
※本記事は、技術評論社「Software Design」(2023年9月号)に寄稿した連載記事「Google Cloudで実践するSREプラクティス」からの転載です。発行元からの許可を得て掲載しております。 はじめに 前回はTerraformとGitHub Actionsで実践するインフラCI/CDについて解説しました。 今回はRenovate1を利用した、ツールやライブラリの依存関係更新について紹介します(図1)。 なぜ依存関係を更新する必要がある必要があるかという背景から、Renovateのしくみの解説と利用方法、更新の運用を手軽に行うためにキャディで取り組んでいることを紹介します。 ▼図…
7ヶ月前
記事のアイキャッチ画像
SRE NEXT 2023 に参加しました
CADDi Tech Blog
こんにちは。DRAWER SRE(Site Reliability Engineer) の廣岡です。最近は DRAWER サービスを運営する上での SLI/SLO 、エラーバジェットポリシーの策定や、モニタリングの整備などを進めています。 DRAWER SRE チームでは、リライアビリティの推進事例やプラクティスへの理解を深めるため、SRE NEXT 2023 というイベントに参加・聴講しました。本ブログはこの参加レポートになります。少しでもイベントの雰囲気を感じていただけると幸いです。 SRE NEXT とは SRE NEXT は、SRE などのサービスの信頼性構築やその維持・改善に関心を持…
7ヶ月前
記事のアイキャッチ画像
チームワークショップで採用面接を見直した話
CADDi Tech Blog
こんにちは。CADDi DRAWERでMLOpsチームのチームリードをしている中村遵介です。 チームリードは技術に関して多方面の意思決定を行ってチームの成果に貢献するテックリードと異なり、チームのメンバーや組織に関する意思決定を行ってチームの成長に貢献します。貢献したいです。頑張ります。 最近では、機械学習メンバー/MLOpsメンバーの採用を積極的に行っています。チームメンバーも採用に対してもっと関わっていきたい、と普段から活動してくれています。 私たちのチームでは採用に半構造化面接を用いています。どういう観点でどんな質問をするのか、を予め決めています。 しかし、メンバーの期待している人物像に…
7ヶ月前
記事のアイキャッチ画像
Cloud Data FusionをIaCで構築し、データパイプラインのマイグレーションを行いました
CADDi Tech Blog
はじめまして。CADDiでバックエンドエンジニアとして働いている中野です。 この記事では、Cloud Data Fusionを利用して作成したデータパイプラインについてご紹介します。 TL;DR SalesforceとBigQuery間のデータ連携にHeroku Connectをこれまで利用していたのですが、Cloud Data Fusionに乗り換えることでダウンタイムなしで約1/8までコストダウンができました。 モチベーション 弊社では、Salesforceに溜まったデータをBigQueryに連携し、営業などのBizサイドの組織も含めアクセスできる状態にしております。これまでは連携に He…
8ヶ月前
記事のアイキャッチ画像
第5回:TerraformとGitHub Actionsで構築するインフラCD
CADDi Tech Blog
※本記事は、技術評論社「Software Design」(2023年8月号)に寄稿した連載記事「Google Cloudで実践するSREプラクティス」からの転載です。発行元からの許可を得て掲載しております。 はじめに 前回はTerraformとGitHub Actionsで実践するインフラCI/CDのCI部分について解説しました。今回はその続きとなるCD部分、デプロイについて扱います。また、運用をよりスケールさせるために検討すべき観点やキャディでの事例についても紹介します。 terraform applyの実行 前回はPull request(PR)に対してterraform planを実行し…
8ヶ月前
記事のアイキャッチ画像
CADDiで4年間働いたエンジニアがプロダクトの変遷について話してみる
CADDi Tech Blog
こんにちは、キャディでエンジニアやエンジニアリングマネージャをやっている高藤です。 久しぶりのTechブログへの投稿です。 今回はタイトルにあるようにCADDiで4年働く上で起きた事をエンジニア視点でまとめつつ、これから何をしようとしているのか私自身の思いを込めて書いてみようかなと思います。 4年前のあのころ 私は2019年2月に入社し、4年強の期間CADDiで働いてきました。私が当時CADDiに興味を持ったのは、単純に面白い経歴のCEOとCTOがなぜ日本で起業したのかという興味と私自身が成長できる環境で働きたいという2点でした。 正直な話、CADDiが対象とする、製造業ドメインへの興味は全く…
8ヶ月前
記事のアイキャッチ画像
Pantsモノレポの改善~テスト時間短縮・依存の集約管理・pex~
CADDi Tech Blog
MLOps Team Tech Lead の西原です。以前のTech Blogで Pants を使った Python モノレポ移行への取り組みについて紹介しました。日々の業務で得た知見を Python コミュニティに共有できるといいなと思い、PyCon APAC 2023に「Pants ではじめる Python モノレポ」というタイトルで CfP を提出し採択されました。この記事では、PyCon APAC 発表に向けての整理も兼ねて、Pants を使ったモノレポの管理・運用を効率的に行うための取り組みを一部紹介します。 TL;DR CI の待ち時間を短縮する リモートキャッシュの活用 テストの…
8ヶ月前
記事のアイキャッチ画像
第4回:TerraformとGitHub Actionsで構築するインフラCI
CADDi Tech Blog
※本記事は、技術評論社「Software Design」(2023年7月号)に寄稿した連載記事「Google Cloudで実践するSREプラクティス」からの転載です。発行元からの許可を得て掲載しております。 はじめに 前回はTerraformの基本的な概念とステート管理について解説しました。 今回からは 2 回にわたり、Infrastructure as Code(IaC)のCI/CD(継続的インテグレーション/継続的デリバリ)パイプラインについて紹介します(図1)。 ▼図1 CADDiのスタックにおける今回の位置付け Google Cloudプロジェクトのインフラ構成をTerraformで定…
8ヶ月前
記事のアイキャッチ画像
mypy 設定ファイルの読み合わせと修正を実施しました
CADDi Tech Blog
こんにちは MLエンジニアとMLOpsエンジニアを兼任している押条です。 CADDi の機械学習プロジェクトでは Python がよく使われています。 本番環境にリリースするコードのlinter や formatter、test に関しては、 CI で自動的に適用し運用できていました。 一方、型注釈については開発担当者に一任されており、プロジェクトごとにあるものとないものと混在していました。 採用を強化してチームを拡大していこうという動きもあり、開発に携わる人が増える見込みがあります。 そのような背景から、型注釈による既存コードの可読性の向上の重要性が増してきました。 そこで現行の mypy …
8ヶ月前
記事のアイキャッチ画像
第3回: Terraformの基本とステート管理
CADDi Tech Blog
※本記事は、技術評論社「Software Design」(2023年6月号)に寄稿した連載記事「Google Cloudで実践するSREプラクティス」からの転載です。発行元からの許可を得て掲載しております。 はじめに 前回はIaCの考え方や必要性と、筆者らが採用しているTerraformの特徴について紹介しました。今回は今後紹介するプラクティスの前提となるTerraformに触れたことのない方のために、その基本を簡単に紹介します1。 ここで紹介できない事項やTerraformのインストール方法については、HashiCorp 社やGoogleCloudのチュートリアル2を参考にしてください。ぜひ…
9ヶ月前
記事のアイキャッチ画像
CADDi DRAWERにE2Eテスト自動化の導入を進めています
CADDi Tech Blog
こんにちは、DRAWER Enabling QAチームの猿渡です。 この記事ではDRAWER QAチームで進めているE2Eテスト自動化についてご紹介します。 課題 CADDi DRAWERにはQAチームがあります。品質保証業務は、開発エンジニアや外部パートナーなど様々な方と連携し行っています。 現在QAが行っているテストは、システム全体をスコープにしたエンドツーエンド(E2E)テストです。。 CADDi DRAWERでは、DRAWER Product Testing Guidelineにより、以下のテストカテゴリを定義しており、E2Eテストでは、Test Size: Largeの「Story …
9ヶ月前
記事のアイキャッチ画像
CADDiの機械学習モデル開発の流れと継続的な改善
CADDi Tech Blog
みなさんはじめまして。CADDiで図面解析チームのテックリードをしている稲葉です。今日は、我々のチームがどういった図面解析の機械学習モデルをどのように開発しているのか、それをどのように改善しようとしているかを紹介したいと思います。 目次 どういう図面解析が必要なのか CADDiの機械学習モデル開発の流れ 継続的な機械学習モデルの改善に向けて おわりに どういう図面解析が必要なのか CADDiでは図面活用SaaSであるCADDi DRAWERを提供しています(DRAWERの詳細に関してはこちら)。図面はどういうものが作りたいかを示した設計図なわけですが、PNG画像やPDFなど2次元図面画像で保管…
9ヶ月前
記事のアイキャッチ画像
CADDi DRAWERのリアーキテクチャにEventStormingを導入しました
CADDi Tech Blog
こんにちは、DRAWER Enabling Architectureチームの刈部です。 この度、弊社はシリーズCの資金調達を実施しました。これを受けTech Blogを盛り上げようというPRの施策に乗っかり本稿に繋がるのですが、なかなか筆が乗らず気づいたら調達の発表から1ヶ月近く経ってしまいました。計画的に生きたい。 content.caddi-inc.com さて、この記事ではDRAWER開発チームにEventStormingを導入した件について、導入時の課題や良かった効果について紹介しようと思います。 EventStormingとは? 本題に入る前にEventStormingに関する簡単な…
9ヶ月前
記事のアイキャッチ画像
CADDiプロダクト横断の認証認可基盤を開発している話
CADDi Tech Blog
注意! 2023年8月時点の内容となりますので、参考情報としてご覧ください。現在、アーキテクチャを見直し、同等の機能をより効率的に実現できる構成にして随時開発中です。機会が来たら新しいアーキテクチャの構成を紹介します CADDi Platformグループの前多です。 私たちはCADDiのプロダクト横断の技術課題を解消するための活動をしています。 これまでの活動の詳細は 信頼性を高めるサービス基盤と技術選定を見てください。 これまでの活動はクラウドインフラや開発環境の整備などが大半でしたが、今後のCADDiのプロダクト開発を発展させるために、プロダクト共通で必要となるサービス基盤の開発にも着手し…
9ヶ月前
記事のアイキャッチ画像
第2回 クラウドネイティブなインフラのTerraformによるIaC化
CADDi Tech Blog
※本記事は、技術評論社「Software Design」(2023年5月号)に寄稿した連載記事「Google Cloudで実践するSREプラクティス」からの転載です。発行元からの許可を得て掲載しております。 はじめに 第1回(本誌2023年4月号)では、キャディにおけるGoogle Cloudを中心としたサービス基盤の全体像を紹介し、信頼性向上のために筆者らが心掛けている技術選定基準について触れました。 今回からは数回にわたって、Terraformを中心としたIaC(Infrastructure as Code)の実践例を紹介予定です(図1)。 ▼図1 CADDiスタックにおけるTerrafo…
10ヶ月前
記事のアイキャッチ画像
第3回 Digital Native Leader’s Meetup に参加しました
CADDi Tech Blog
こんにちは。DRAWER SRE の廣岡です。最近は開発チーム内の権限付与方針の整備や、他チームのインフラ構築のサポートなどに取り組んでいます。 さて、キャディではサービス構築のために Google Cloud のマネージドサービスを多く利用しており、そのご縁で先日 Google Cloud 様主催の「Digital Native Leader’s Meetup」という企画に招待いただきました。本稿はこのイベントの参加レポートとなります。少しでもイベントの雰囲気を感じていただけると幸いです。 Digital Native Leader’s Meetup とは 本イベントは、Google Clo…
10ヶ月前
記事のアイキャッチ画像
第1回 信頼性を高めるサービス基盤と技術選定
CADDi Tech Blog
※本記事は、技術評論社「Software Design」(2023年4月号)に寄稿した連載記事「Google Cloudで実践するSREプラクティス」からの転載です。発行元からの許可を得て掲載しております。 はじめに キャディ株式会社の前多です。筆者はPlatformグループという部署で、クラウドインフラの整備や開発組織横断の技術課題の解消に携わっています。 キャディでは製造業向けのビジネスを展開しており、社内外向けにSaaSを含む多くサービスを運用しています。また、事業展開にあわせて常に新たなプロダクトが開発されています。 各サービスには担当の開発チームが組織されていて、開発・運用に責任を負…
10ヶ月前