JCB Tech Blog
https://tech.jcblab.jp/
JCB Tech Blog
フィード
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
今年も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において、年数回のアップグレ…
2ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
生成AI活用への取組 - GitHub Copilot の利用者推移を可視化してみた
JCB Tech Blog
はじめに アーキテクトチームの長沼です。 JDEPでは、アプリケーションの開発にAIペアプログラマーGitHub Copilot Business(以下、GCB)を取り入れています。 GCBは開発者にとって非常に便利な支援ツールであり、積極的に活用していきたいと考えています。 一方で、企業として利用する以上、費用対効果の説明やリソースの効率的な利用も時に求められます。 そこでJDEPでは、GCBの利用状況の可視化にも取り組んでいます。 今回はその1つとして、Copilot利用者数を可視化する取り組みについてご紹介します。 アーキテクチャ GCBでは、GitHub Copilot User Ma…
4ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
「組み合わせテスト」ついてやさしく解説します!
JCB Tech Blog
はじめに JCB デジタルソリューション開発部 QSATチームの星野です。 今回は、組み合わせテストとそのための有用な技法である同値分割や境界値分析の使い方についてやさしく解説します。 組み合わせテストとは 名前の通り、あるものの「組み合わせ」により発生するバグがないかを確認するテストです。では、具体的に何を組み合わせればよいでしょうか。 組み合わせるものは、テストしたい対象の項目が持っている具体的な「値」です。 言葉だけではイメージしづらいので、以下のカラーを選択できるプルダウンの図にて説明します。 この場合、テストしたい対象の項目はカラー。 具体的な値は、プルダウンの選択肢にある赤色または…
4ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
生成AI活用への取組〜AIペアプログラマー(GitHub Copilot) PoC実践編
JCB Tech Blog
はじめに アーキテクトチームの長沼です。 先日は生成AI活用への取組の第一弾としてPoC準備についてご紹介しました。 今回は実際にPoCを行ってみた結果についてご紹介したいと思います。 PoCで使用するツールは、開発における生成AIの草分け的存在でもあるGitHub Copilot、そのビジネス向け製品であるGitHub Copilot Business を採用して実施しました。 PoC対象の概要 JDEPでは特性の異なる様々なアプリケーション(以下APL)を開発運用しています。 今回のPoCでは、その中から以下のAPLを開発するチームに協力をお願いしました。 アプリ名 開発言語 概要 開発フ…
5ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
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として参画します。 …
5ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
3DセキュアにおけるDSの開発
JCB Tech Blog
JCB デジタルソリューション開発部 DXテックグループの村井です。 アプリチームではJCBが提供する様々なサービスの開発・運用をしています。 今回は非対面のクレジットカード決済で導入が進んでいる3Dセキュア(本人認証サービス)について、 その概要と3Dセキュアを構成するDSシステムの開発についてざっくりと紹介します。 3Dセキュアって何? 3Dセキュアは、インターネットショッピング(非対面決済)でのクレジットカード決済における、本人認証(不正対策)サービスの仕様でありフレームワークです。 クレジットカードでネットショッピングを利用する際は通常、クレジットカードの「カード番号」「有効期限」「セ…
7ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
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…
8ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
DevSecOpsは必要だと改めて思った話
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月24日の記事です。 はじめに セキュリティチームの長沼です。 DevSecOpsという技術ワードがあります。 開発〜運用を一体に行うDevOps全般にわたりセキュリティを考慮し、より開発前工程で気づくことにより手戻りを減らすこと(Shift Left)を目的とするものです。 アジャイルで開発していく上で、その必要性を改めて強く感じることがありましたので、ご紹介したいと思います。 JDEP初期のアプリ開発の流れ この話をする上で、まず初期のJDEPにおけるアプリ開発の流れについて説明させてください。 JDEPではアジャイル・スクラム開…
8ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
テスト技法「境界値分析」をやさしく解説します!
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月21日の記事です。 JCBデジタルソリューション開発部 QAチーム(QSAT)の佐藤です。 前回は同値分割法について解説しました。 今回はテスト技法の「境界値分析」についてやさしく解説したいと思います。 境目に注目する 境界値分析という文字列を見ると難しく感じるかもしれませんが要は「境目に注意する」ということです。 このテスト技法が基本的なものとして扱われているのは、境界値周りでプログラムのミスが発生しやすいからです。みなさんも、普段使っている「以上」「以下」「未満」など境界値を示す表現で誤解や間違いに遭遇したことがあるのではないで…
9ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
生成AI活用への取組〜AIコードジェネレータ PoC準備編
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月20日の記事です。 はじめに アーキテクトチームの長沼です。 2023年は生成AI(Generative AI…以下、GenAI)が大きく注目を集めた年でした。 JDEPにおいても、開発現場におけるGenAI活用の取り組みを進めています。 GenAI技術の導入可否を決める上では、多くの場合、PoC(Proof of Concept)またはPoV(Proof of Value)を行います(以降では一律PoCと記載します)。 このとき、どういった観点・項目で情報を収集し評価すればよいか悩む方も多いと思います。 今回は、JDEPでのGen…
9ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
スクラムイベントにジョインしてみて
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月19日の記事です。 はじめに DXテックG PFチームの島﨑です。 今年度の10月に入社してPFチームに配属してからスクラムで開発しています。 スクラムイベントにジョインしてみてということで自分のチームでのスクラム開発の内容と入ってみてから感じたことを記載していこうと思います。 PFチームのスクラム開発 現在の構成としては以下のようになっています。 PO:1名 SM:1名(1名) dev:7名 PFチームでは自分が配属されてからは木曜がイベント日の1週間スプリントで開発しています。 元々2週間スプリントだった時の名残でスプリントレビ…
9ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
Four Keysを使ってチームのパフォーマンスの可視化をしてみた話
JCB Tech Blog
本稿は JCB Advent Calendar 2023 の12月18日の記事です。 はじめに DXテックG SRE チームの小柳津です。 SRE チームは JCB Digital Enablement Platform (JDEP) 上で稼働しているアプリケーションチームに対し「より生産性の高い、ハイパフォーマンスなチームを目指す」ための支援を実施しています。 そこで SRE チームではチームのパフォーマンスを評価する Four Keys と呼ばれる指標を取得するよう取り組みましたのでご紹介します。 Four Keys とは DevOps Research and Assesment (DO…
9ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
利害関係者を可視化する「ステークホルダーマップ」を作ってみた
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月14日の記事です。 はじめに DXテックG デザインチームの入尾野です。 今回は、プロジェクトの立ち上げ時に「ステークホルダーマップ」を作成してみた事例と得られた効果についてご紹介したいと思います。 ステークホルダーマップとは ステークホルダーマップとは、サービスやプロジェクトを取り巻く人や組織とその関係性を図式化したものです。プロジェクトに関わる全ての利害関係者を特定し、どのような関係をもって結びついているのか、全体を俯瞰して把握できます。 ステークホルダーマップを作成する目的 プロジェクトの成功に不可欠なのは、関係者が協力し合う…
9ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
データベースの排他制御を実践してみた【NestJS+TypeORM】
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月13日の記事です。 はじめに DXテックG アプリチームの渡辺です。 本記事では、アプリ開発において排他制御を実装した際に学んだことについてまとめたいと思います。 読んでくれた方の参考に少しでもなれば幸いです。 排他制御とは 共有しているデータへの同時更新で不整合が生じることを防ぐため、あるトランザクションが共有データを更新している時は他トランザクションからは更新できないように制御することです。 排他制御の方法には、大きく分けて楽観的排他制御と悲観的排他制御(以降、楽観排他と悲観排他で表記)の2種類があります。 楽観排他 楽観排他と…
9ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
スクラム開発のストーリーポイントを時間見積りにしない理由
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月11日の記事です。 JCBデジタルソリューション開発部 DXテックG JCB Linkチームの岩本です。 本日はスクラム開発におけるSP(ストーリーポイント)の見積りについて解説します。 まずはSPについての知識のおさらいです。 スクラム開発の見積りにはSPを用いる ご存知の方も多いと思いますがおさらいです。 SPには下記の特徴があります。 基準となるプロダクトのSPを定め「相対評価」で見積る Sprintごとの消化SPが予測できる(理想ベロシティ) バックログ全体のSP÷理想ベロシティ=開発完了時期 の予測ができる 「相対評価」で…
9ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
Google Apps Scriptでポモドーロ用のツールを実装した話
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月8日の記事です。 はじめに DXテックG Platformチームの四方と申します。 本記事では、Google Apps Script(以下、GAS) でアプリを自作した際の学びについて記載していきます。 ※ 記事内に記載するコードはTypescript を用いて実装しておりますが、記載の都合上、一部の型定義やエラーハンドリングは省略させていただいております。 背景 所属するチームにてポモドーロテクニックという時間管理術を用いて作業タスクの効率化を図る機会がありました。 その際に時間管理をGASの自動処理に一任し、ChatOpsに組み…
9ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
やってみようコンテナ間通信制御 with Istio
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月5日の記事です。 DXテックG SREチームの鳩貝です。 本日は弊社基盤で活用中のOSSのサービスメッシュプラットフォームであるIstio(※)について、簡単な検証を交えつつ紹介します。 なお、本稿はKubernetesに関する基本的な知識(Deployment、Service等)を保持していることを前提としています。あらかじめご承知おきください。 ※正確には平松の記事の通り、弊社基盤"JDEP"ではGoogle CloudマネージドIstioであるAnthos Service Mesh(ASM)を利用しています。よって以下本稿記載…
9ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
PlatformでSLO運用はじめました。- Platform Engineerring初めの一歩 -
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月1日の記事です。 PFチームの平松です。 本ブログを執筆するメンバーはJCB Digital Enablement Platform (JDEP)と名付けたプラットフォーム上に、マルチテナント方式で各種アプリをデプロイして運用しています。 前身のビジネス構築の高速化プロジェクトが発足して以来構築を進めたJDEPですが、2023年12月現在2桁を超えるアプリケーションの開発・運用が行われており、 我々PFチームも拡大する組織に合わせてAPLチームが動きやすい環境構築に携わってきました。 各アプリケーションはそれぞれ独自にCritica…
9ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
ユーザーインタビューの後どうする? 発話録からインサイトを探る「KA法」を試してみた
JCB Tech Blog
はじめに JCB デジタルソリューション開発部 デザインチームの入尾野です。 デザインチームは、アプリチームのUX/UIデザイン面について横断的に支援することを目的に、2022年7月より立ち上げたチームです。 インタビューした後、どうしてますか? 突然ですが、開発や企画を推進する際、ヒアリングやインタビューを実施されたことはありますか? インタビューをしてみたものの、得られたデータをどのように分析したらよいのかと悩んだ経験のある方もいらっしゃるかもしれません。 デザインチームでは、明文化されていなかったデザインプロセスをガイドラインとして言語化する取り組みをしており、初案ができた段階でアプリチ…
10ヶ月前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
テスト技法「同値分割法」をやさしく解説します!
JCB Tech Blog
JCBデジタルソリューション開発部 QAチーム(QSAT)の佐藤です。 本日は、ソフトウェアテスト技法の一つである同値分割法について、なるべく平易な言葉で解説したいと思います。 実は無意識で使っている? 同値分割法は、テストの際に入力値等をグループ化して扱うことでテストの工数を削減するテスト技法です。 技法というと難しく感じるかもしれませんが、ソフトウェアのテストに関わる多くの人は無意識にやっていることだと思います。 例えば以下のような場合、みなさんはどのようにテストするでしょうか? テスト対象のイメージは、Web画面で設問に回答していき、最後に点数を表示するアプリケーションです。 テスト用の…
1年前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
ギリギリまで見せちゃいます!JCBのスクラムイベント!
JCB Tech Blog
JCB デジタルソリューション開発部 アプリチームの森口です。 アプリチームに所属しており、担当するサービスの開発・運用保守を行っています。 私の担当するプロジェクトではスクラムで開発をしています。 認定スクラムデベロッパー(CSD)研修を受けて、他社がどういうスクラムを実践しているのか個人的に気になったので、まずは、自チームのスプリント中の過ごし方を記事にしてみました。 はじめに 担当するプロジェクトでのスプリント期間は2週間になります。 2週間スプリントの流れ スクラムイベントは水曜日にまとめて実施しており、スクラムイベント以外の時間は開発に注力しています。 イベントにはそれぞれタイムボッ…
1年前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
Cloud Operator Days Tokyo 2023 に登壇しました!
JCB Tech Blog
JCBデジタルソリューション開発部 PFチームの平松です。 本記事は2023/8/21より配信開始されている「Cloud Operator Days Tokyo 2023」への登壇告知です。 https://cloudopsdays.com/ 本年度は、運用の新時代 〜Effortless Operation〜 というテーマにて、55のセッションが公開中となっております。 私のセッションは「監視・ログ・オブザーバビリティ」のカテゴリにて、「クレジットカード会社が取り組んだ、リモート運用の仕組みをセキュリティ規定に準拠しつつ実現した話」というタイトルでお話しさせていただきました。 タイトルで大ま…
1年前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
Google Apps Scriptで自作アプリを作り開発体験を向上した事例
JCB Tech Blog
はじめに JCB デジタルソリューション開発部 アプリチームの山田です。 この記事では Google Apps Script で自作したアプリを紹介したいと思います。具体的には、本記事ではチャットでの見落としを防止するチャットアプリと自チームで評価した結果について紹介します。 後続の記事で、より具体的なアプリの構成についても投稿いたします。 同じような課題を抱えている方々のお役に立てれば幸いです! 本記事では Google Chat を利用されている方が前提の話になってしまいますが、コミュニケーションツールとして Slack を利用されている方は echobot というアプリが同じ課題を解決し…
1年前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
Selenide と Datadog Synthetics Browser Test を使用して UI 自動テストの実装をしてみた
JCB Tech Blog
はじめに JCB デジタルソリューション開発部 SRE チームの小柳津です。 本記事では Selenide を使った画面の自動テストのご紹介と、 JCB Digital Enablement Platform (JDEP) でシステム監視に使用している Datadog に Synthetics tests としてブラウザテストの機能が提供されているため、同じテストを作成し比較してみます。 UI テストで何をしたいか 本記事では Web ページ上の検索ボックスに指定の文字列を入力させ、ページの遷移後に正しく検索結果が表示されていることをテストします。 下図のように表示されることを期待します。 対…
1年前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
ログイン画面表示方法の違いは思った以上に大きかった件
JCB Tech Blog
本稿はJCB Tech Blog Advent Calendar 2022の12月25日の記事です。 JCBデジタルソリューション開発部アーキテクトチームの長沼です。 JDEPではID管理にOktaを利用しており、 開発者のID管理をOkta Workforce Identity Cloud、アプリ利用者のID管理をOkta Customer Identity Cloud(旧Auth0、以下CIC) と使い分けています。 今回はSingle Page Application(以下SPA)からCICを使うためのクライアントライブラリであるSPA SDKで面白い気づきがありましたので、ご紹介したい…
2年前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
cordon / drain のリモート化と運用上のポイント
JCB Tech Blog
本稿はJCB Advent Calendar 2022の12月24日の記事です。 JCBデジタルソリューション開発部 PFチームの平松です。 前回の私の記事にて、クレジットカード会社のシステムのリモート運用がなぜ難しいかについて解説いたしました。 今回は、Kubernetes運用で重要な要素である cordon / drain 操作をリモートで行えるようにした件についてご紹介していきたいと思います。 (前提として、Kubernetesについてある程度の知識を有していることを想定して記載しています。) cordon / drain 操作について まずはこれらのコマンドについて簡単に解説していきま…
2年前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
React.lazyを使った初回描画の高速化について
JCB Tech Blog
本稿はJCB Tech Blog Advent Calendar 2022の 12 月 23 日の記事です。 JCB デジタルソリューション開発部 アプリチームの山田です。 この記事では、私が担当している React 製の Web アプリの開発で初回描画の高速化検討をした内容についてご紹介したいと思います。 準備 今回は my-project-name という react アプリのプロジェクトを typescript で実装した例を紹介します。その準備として以下コマンドを実行します。 npx create-react-app my-project-name --template typescr…
2年前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
ElasticMQ+Minioの活用について
JCB Tech Blog
本稿はJCB Advent Calendar 2022の12/22の記事です。 JCBデジタルソリューション開発部の森口です。アプリチームに所属しており、担当するサービスの開発・保守運用を行っています。 今回はElasticMQとMinioの活用についてご紹介します。 はじめに 私が関わっているプロジェクトでは、社内の別システムとデータ連携するために、JDEP外に構築された非同期ファイル連携基盤(Amazon SQS+Amazon S3で実装)を使用します。 開発環境では、直接この環境を利用できないため、ElasticMQとMinionを使い、擬似的にAmazon SQSとAmazon S3を…
2年前
![記事のアイキャッチ画像](../../images/alternate-feed-image.png)
Androidアプリの共通コンポーネントに対してVisual Regression Testの導入を検討してみる
JCB Tech Blog
本稿はJCB Tech Blog Advent Calendar 2022の12月21日の記事です。 JCB デジタルソリューション開発部 アプリチームの服部です。 この記事では、 私が担当しているAndroidアプリの共通コンポーネントに対してVisual Regression Testの導入が可能か検討した内容について紹介したいと思います。 Visual Regression Testとは Visual Regression Test(以下、VRT)とはテストの手法の1つです。アプリケーション内の画面や共通コンポーネントを画像として保存しておき、変更が入ったタイミングで再度画像を取得し、新…
2年前