JCB Tech Blog
https://tech.jcblab.jp/
JCB Tech Blog
フィード
JDEP SREチームのインシデントポリシーご紹介
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月25日の記事です。 デジタルソリューション開発部 SREチームの小柳津です。 JDEPでは、インシデントが発生した際に「誰がどんな役割を担い、どのように動くか」をあらかじめ明確化し、チーム全体で共通認識を持てるようにインシデントポリシーを策定しています。 今回は、その中でも SREチームのインシデントポリシー にフォーカスしてご紹介します。 JDEPにおけるインシデントポリシー JDEPでは、すべてのサービスチームが、それぞれのサービス特性に合ったインシデントポリシーを定めています。 どこかのサービスでインシデントが発生した場合は、…
11日前
OpenCensusからOpenTelemetryへの移行
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月24日の記事です。 こんにちは。デジタルソリューション開発部の長谷川です。 担当しているアプリケーションではトレース・メトリクスを用いてアプリケーション利用状況の可視化を行っています。これにより障害対応やボトルネック分析の迅速化を実現しているのですが、この度トレース・メトリクスの収集で利用するパッケージをOpenCensusからOpenTelemetryへ移行しました。 OpenTelemetryは、OpenCensusとOpenTracingの統合プロジェクトで、より広範な機能と高い拡張性を提供しています。また、クラウドプロバイダ…
12日前
NestJSアプリケーションのHTTPクライアントをfetchからaxiosに変えた話
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月23日の記事です。 JCB デジタルソリューション開発部 アプリ チームの関口です。 この記事では、 NestJS アプリケーション内で使用している HTTP クライアントを fetch から axios に変更した際の話を書いていこうと思います。 経緯/前提 まずは今回の変更することとなった経緯と環境を説明します。 経緯 今回我々が fetch から axios に乗り換えた理由は、「Node.js の dd-trace を使用した際、我々の実装では、fetch で行った通信のトレースログが取れなかったから」になります。 dd-t…
13日前
AppSheet使ってみた
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月21日の記事です。 JDEPプラットフォームチーム所属の長沼です。 JDEPでは、ワークロードの実行基盤としてGoogle Cloud、 開発者が使うグループウェアとしてGoogle Workspaceを使っています。 これらで提供されるサービスの1つとして、ローコード・ノーコードツールに位置づけられるAppSheetがあります。 他チームへの管理情報の更新依頼に使ってみたところ、面白かったので、その気付きについてご紹介したいと思います。 AppSheetの利用を試みた背景 自分が所属するチーム外のチームやその所属メンバーに対して、…
15日前
デザインチームの体制や役割について
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月20日の記事です。 JCB デジタルソリューション開発部 デザインチームの入尾野と申します。 今回はJDEP(JCB Digital Enablement Platform)の開発体制におけるデザインチームの体制や役割についてご紹介します。 デザインチームのミッション デザインチームはJDEPのデザイン領域における品質(Quality)、コスト(Cost)、納期(Delivery)の向上をミッションに掲げ、日々活動しています。単にデザインを制作するだけでなく、お客様視点での価値創出と、効率的なデザインプロセスの実現を目指しています。…
16日前
仮想認証器を用いたFIDO2/WebAuthn のテスト自動化について
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月19日の記事です。 JCBデジタルソリューション開発部の金築です。 昨今、インターネットにおける認証技術は、ID/パスワードからワンタイムパスワードを用いた多要素認証へと遷移し、今では生体認証やセキュリティキーを用いたFIDO2/WebAuthnといったパスワードレス認証の導入が進んでいます。 FIDO2/WebAuthnを導入することで、認証の利便性が向上し、従来のパスワード管理によるセキュリティリスクやフィッシング攻撃といった攻撃に効果的であります。 一方で、FIDO2/WebAuthnを導入したシステムのテストでは、従来の方式…
17日前
バックエンドから取得したデータの表示方法の違いを比較:WebアプリとiOSアプリ
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月18日の記事です。 はじめに 初めまして。JCBデジタルソリューション開発部の若林です。今年の春から社会人になり、研修として7月から3ヶ月間ReactでWebアプリケーションを作成して、その後10月から現在に至るまでSwiftでiOSアプリケーションを作成しております。 ReactからSwiftに移行した際にバックエンドからとってきたデータをフロントエンドで画面表示する方法の違いに困惑しました。今後ReactからSwiftに移行した人がそれらのやり方の違いについて困惑することなくスムーズにプロジェクトに参画できるようになればいいなと…
18日前
並行開発におけるブランチ運用について
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月17日の記事です。 こんにちは。デジタルソリューション開発部の永沢です。 担当プロジェクトでは、メジャーバージョンのアップデートが必要な規模の開発を並行して実施しています。 今回は、そのブランチ運用の方式と、発生した運用ミスの改善について記します。 前提 現状は以下のような開発を並行実施しています。 運用中バージョンの保守開発(バージョンX) 次回メジャーバージョン開発(バージョンX+1) 次々回メジャーバージョン開発(バージョンX+2) 現在のブランチ運用 ブランチ 概要 master 次回リリース予定の資材が格納されているブラン…
19日前
業務ツールでの「おもてなし」をデザインする話
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月16日の記事です。 こんにちは。デザインチームの関です。 今回はJCB Digital Enablement Platform (JDEP)におけるプロダクトデザインでの試行錯誤をお話しします。デザインチームでは、複数のプロダクトで汎用的に使えるUIパーツやガイドラインを定義したデザインシステムを構築しました。私はこのシステムを広めるべく、クレジットカードの業務ツールの画面から順次適用しています。 デザインシステム構築の取り組み記事もぜひご覧ください。 JCBがゼロから始めたデザインシステム構築 JCBにおける業務ツールとは、例えば…
20日前
3-Dセキュアにおける認証取引の仕組み解説
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月14日の記事です。 3-Dセキュアにおける認証取引の仕組み解説 JCB デジタルソリューション開発部 アプリチームの村井です。 アプリチームではJCBが提供する様々なサービスの開発・運用をしています。 今回は非対面のクレジットカード決済で導入が進んでいる3-Dセキュア(本人認証サービス)について、 各システムの動きにフォーカスして認証取引の主な仕組みを紹介します。 3-Dセキュアの認証取引の仕組みは、提唱元であるEMVCoのサイトから公式ドキュメントをダウンロードできます。 本記事では公式ドキュメントの内容を噛み砕いて解説します。 …
22日前
分割ノードプールのスケール作業の自動化
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月12日の記事です。 JCBデジタルソリューション開発部PFチームの島﨑です。 JDEPではKubernetesを用いたシステム運用において、開発・Quality Assurance・Stage・Productionの4段階構成を採用しています。 各環境は1リージョンシングルクラスタで構成しています。 しかし、アプリケーション数の増加に伴い、占有試験の需要が増加しました。 そのため現在検証環境(=Stage)では、試験用に複数のノードプールを用意しています。 今回はJDEPで分割して使用しているノードプールのノードのスケールの自動化を…
24日前
アジャイル開発におけるトレーサビリティ確保の基本について
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月11日の記事です。 初めまして、JCBデジタルソリューション開発部 Accelチームの山田です。 今回は、アジャイル開発におけるトレーサビリティ確保の基本について記事にしてみたいと思います。 アジャイル開発に初めて挑戦する方にとって参考になれば幸いです。 トレーサビリティとは トレーサビリティとは「trace」と「ability」を組み合わせた造語で、 ISTQB(国際ソフトウェアテスト資格認定委員会) では「関連する作業成果物、または作業成果物内のアイテムを明示的に関連付ける能力」と定義されています。 アジャイル開発について また…
25日前
SMキャリアチェンジ活動
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月10日の記事です。 JCBデジタルソリューション開発部の長谷川と髙木です。 アプリチームではJCBが提供する様々なサービスの開発・運用をしています。 プロダクトごとにチームを分けており、我々はそれぞれ別チームで異なるプロダクトを担当をしています。 各チームごとに開発プロセスとしてスクラム開発を採用しており、長谷川・高木ともにDEV(開発者)として開発に関わっています。 今回はDEVからSM(スクラムマスター)へキャリアチェンジするにあたり、活動した内容を紹介します。 SMキャリアチェンジのきっかけ 下記はプロジェクト内の人数に対して…
1ヶ月前
金融事業会社におけるGitHub Copilot導入の道のり(下巻/効果編)
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月7日の記事です。 アーキテクトチームの長沼です。 JDEPでは、開発にGitHub Copilot Business(以下、特段の記載ない場合は「Copilot」と省略)を導入しています。 この導入の取組について、2024年11月6日に行われた Microsoft Developer Dayで、「金融事業会社におけるGitHub Copilot導入の道のり - JCBのPoC〜活用」と題して登壇させていただきました。 発表内容は次の3部構成となっており、当日は時間の関係で十分に説明できなかった部分も含めて、それぞれ記事で振り返ろうと…
1ヶ月前
金融事業会社における GitHub Copilot 導入の道のり(中巻/リスク編)
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月5日の記事です。 アーキテクトチームの長沼です。 JDEPでは、開発にGitHub Copilot Business(以下、特段の記載ない場合は「Copilot」と省略)を導入しています。 この導入の取組について、2024年11月6日に行われた Microsoft Developer Dayで、「金融事業会社におけるGitHub Copilot導入の道のり - JCBのPoC〜活用」と題して登壇させていただきました。 発表内容は次の3部構成となっており、当日は時間の関係で十分に説明できなかった部分も含めて、それぞれ記事で振り返ろうと…
1ヶ月前
exportToでIstioの負荷を減らそう
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月4日の記事です。 SREチームの鳩貝です。 JDEPでは、マイクロサービス間の通信制御にGoogle CloudのマネージドIstioであるCloud Service Mesh (CSM)を採用しています。JDEPの規模拡大に伴い、アプリリリース時にJDEP基盤全体のCPU使用量がスパイクする事象が発生しました。本挙動はIstioのxDS APIの仕様が原因であり、サービスメッシュ全体の規模が大きくなるにつれて顕著になっていました。 上記に対処するため、IstioのexportTo設定を活用することで負荷軽減と安定化を図りました。本…
1ヶ月前
GKE とうとうリリースチャンネルに載せました
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月3日の記事です。 PFチームの平松です。 去年の記事では、Google Kubernetes Engine (以下GKE) のアップグレード運用効率化について記載しました。 今回は、前回の記事で記載したGKEクラスタのアップグレード戦略からの変更点について、その背景と詳細について記します。 前提条件 GKEのアップグレード運用を行うにあたり、前提となる当初設定は以下の通りでした。 本条件を念頭に置いてアップグレード戦略の更新に至るまでを記載します。 GKEのマイナーアップグレードは任意のタイミングで実施 アップグレード戦略として、チ…
1ヶ月前
金融事業会社におけるGitHub Copilot導入の道のり(上巻/背景)
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月2日の記事です。 アーキテクトチームの長沼です。 JDEPでは、開発にGitHub Copilot Business(以下、特段の記載ない場合は「Copilot」と省略)を導入しています。 この導入の取組について、2024年11月6日に行われた Microsoft Developer Dayで、「金融事業会社におけるGitHub Copilot導入の道のり - JCBのPoC〜活用」と題して登壇させていただきました。 登壇の様子 発表内容は次の3部構成となっており、当日は時間の関係で十分に説明できなかった部分も含めて、それぞれ記事で…
1ヶ月前
JCB Embedded SREチームの2024年上期の取り組みを振り返る
JCB Tech Blog
はじめに デジタルソリューション開発部 SRE チームの小柳津です。 以前の記事で、JCB Digital Enablement Platform (JDEP) SREチームで取り組んでいる、SREエンゲージメントモデルの1つ「Embedded SRE」についてご紹介しました。(記事はこちらから!) 2024年度も半分を過ぎたということで、今回はここまでのEmbedded SREの活動実績および、取り組みを振り返りたいと思います。 ✏️ Embedded SREとは? 先日の記事でもEmbedded SREの取り組みについてご紹介しましたが、ここで簡単におさらいをします。 (JDEPへの導入背…
3ヶ月前
Adobe XDからFigmaへデザインデータを移行した話
JCB Tech Blog
こんにちは、デザインチームのスジンです。 今回は、Adobe XDからFigmaへのデザインデータ移行の経験について、お話ししたいと思います。 私は昨年、JCBにUI/UXデザイナーとして入社しました。 当時、社内では主にAdobe XDを使ってデザインをしていましたが、並行して進行していたデザインシステムのプロジェクトではFigmaが使われていました。 そこで、引き継いだプロジェクトにおいてもデザインシステムのようにFigmaを活用できる方が良いと考え、Adobe XDからFigmaへの移行を提案しました。 Figmaにはデザイナーだけでなく、エンジニアの作業効率を大幅に向上させる多くの機能…
4ヶ月前
今年もCloud Operator Days Tokyo 2024 で講演しました!
JCB Tech Blog
JCBデジタルソリューション開発部 PFチームの平松です。 2024/7/16より配信開始されている「Cloud Operator Days Tokyo 2024」にて取り組みの紹介をいたしました。 https://cloudopsdays.com/ 本年度は、運用者に光を! 〜AIの未来、運用者の現実〜 というテーマにて数多くのセッションが公開中となっております。 去年に引き続き、今年もセッションスピーカーに選ばれました。 今回の私のセッションは「運用自動化(Dev/Ops、CI/CD、IaC)」のカテゴリにて、「二桁を超えるクレジット関連サービスが稼働中のGKEにおいて、年数回のアップグレ…
5ヶ月前
生成AI活用への取組 - GitHub Copilot の利用者推移を可視化してみた
JCB Tech Blog
はじめに アーキテクトチームの長沼です。 JDEPでは、アプリケーションの開発にAIペアプログラマーGitHub Copilot Business(以下、GCB)を取り入れています。 GCBは開発者にとって非常に便利な支援ツールであり、積極的に活用していきたいと考えています。 一方で、企業として利用する以上、費用対効果の説明やリソースの効率的な利用も時に求められます。 そこでJDEPでは、GCBの利用状況の可視化にも取り組んでいます。 今回はその1つとして、Copilot利用者数を可視化する取り組みについてご紹介します。 アーキテクチャ GCBでは、GitHub Copilot User Ma…
7ヶ月前
「組み合わせテスト」ついてやさしく解説します!
JCB Tech Blog
はじめに JCB デジタルソリューション開発部 QSATチームの星野です。 今回は、組み合わせテストとそのための有用な技法である同値分割や境界値分析の使い方についてやさしく解説します。 組み合わせテストとは 名前の通り、あるものの「組み合わせ」により発生するバグがないかを確認するテストです。では、具体的に何を組み合わせればよいでしょうか。 組み合わせるものは、テストしたい対象の項目が持っている具体的な「値」です。 言葉だけではイメージしづらいので、以下のカラーを選択できるプルダウンの図にて説明します。 この場合、テストしたい対象の項目はカラー。 具体的な値は、プルダウンの選択肢にある赤色または…
8ヶ月前
生成AI活用への取組〜AIペアプログラマー(GitHub Copilot) PoC実践編
JCB Tech Blog
はじめに アーキテクトチームの長沼です。 先日は生成AI活用への取組の第一弾としてPoC準備についてご紹介しました。 今回は実際にPoCを行ってみた結果についてご紹介したいと思います。 PoCで使用するツールは、開発における生成AIの草分け的存在でもあるGitHub Copilot、そのビジネス向け製品であるGitHub Copilot Business を採用して実施しました。 PoC対象の概要 JDEPでは特性の異なる様々なアプリケーション(以下APL)を開発運用しています。 今回のPoCでは、その中から以下のAPLを開発するチームに協力をお願いしました。 アプリ名 開発言語 概要 開発フ…
9ヶ月前
SREチームにEmbedded SREモデルを導入しました
JCB Tech Blog
はじめに DXテックG SRE チームの小柳津です。 SREチームは2023年度から、SREエンゲージメントモデルのひとつである「Embedded SRE」の取り組みを本格化しています。 今回は Embedded SRE の取り組みについて知ってもらうことを目的とし、活動の概要や方針、実際に Embedded としてAPLチームに参画してみての振り返りをしたいと思います。 Embedded SREとは? 直訳すると「組み込みSRE」。すなわちSREのメンバーが JCB Digital Enablement Platform (JDEP) 上で稼働しているAPLチームのDevとして参画します。 …
9ヶ月前
3DセキュアにおけるDSの開発
JCB Tech Blog
JCB デジタルソリューション開発部 DXテックグループの村井です。 アプリチームではJCBが提供する様々なサービスの開発・運用をしています。 今回は非対面のクレジットカード決済で導入が進んでいる3Dセキュア(本人認証サービス)について、 その概要と3Dセキュアを構成するDSシステムの開発についてざっくりと紹介します。 3Dセキュアって何? 3Dセキュアは、インターネットショッピング(非対面決済)でのクレジットカード決済における、本人認証(不正対策)サービスの仕様でありフレームワークです。 クレジットカードでネットショッピングを利用する際は通常、クレジットカードの「カード番号」「有効期限」「セ…
1年前
GKEのアップグレード運用の効率化
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月25日の記事です。 PFチームの平松です。 我々の部門で運営しているJDEPの最重要構成要素である、Google Kubernetes Engine (GKE) のアップグレードに関する取り組みを紹介したいと思います。 アップグレードサイクル GKEの元となるOSSは知っての通りKubernetesですが、こちらのアップグレードサイクルはご存知でしょうか。 公式サイトに記載の通り、Kubernetesは4ヶ月ごとにマイナーバージョンがアップグレードされています。 Google CloudによるマネージドKubernetesであるGK…
1年前
DevSecOpsは必要だと改めて思った話
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月24日の記事です。 はじめに セキュリティチームの長沼です。 DevSecOpsという技術ワードがあります。 開発〜運用を一体に行うDevOps全般にわたりセキュリティを考慮し、より開発前工程で気づくことにより手戻りを減らすこと(Shift Left)を目的とするものです。 アジャイルで開発していく上で、その必要性を改めて強く感じることがありましたので、ご紹介したいと思います。 JDEP初期のアプリ開発の流れ この話をする上で、まず初期のJDEPにおけるアプリ開発の流れについて説明させてください。 JDEPではアジャイル・スクラム開…
1年前
テスト技法「境界値分析」をやさしく解説します!
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月21日の記事です。 JCBデジタルソリューション開発部 QAチーム(QSAT)の佐藤です。 前回は同値分割法について解説しました。 今回はテスト技法の「境界値分析」についてやさしく解説したいと思います。 境目に注目する 境界値分析という文字列を見ると難しく感じるかもしれませんが要は「境目に注意する」ということです。 このテスト技法が基本的なものとして扱われているのは、境界値周りでプログラムのミスが発生しやすいからです。みなさんも、普段使っている「以上」「以下」「未満」など境界値を示す表現で誤解や間違いに遭遇したことがあるのではないで…
1年前