FJCT Tech blog

富士通クラウドテクノロジーズ公式エンジニアブログです

富士通クラウドテクノロジーズ

FJCT/Tech blog

FJCT エンジニアタスクフォース 2023 レポート

皆様こんにちは。メリークリスマス。 FJCT エンジニアタスクフォース(以下、ETF) フォース長 の北條( id:Con_Humi ) です。 この記事は 富士通クラウドテクノロジーズ Advent Calendar 2023 25日目の記事です。 機能の記事は、 @curry2325 さんの 「アラ…

FJCTF#2(社内CTF)を開催しました!

こんにちは!富士通クラウドテクノロジーズ、エンジニアタスクフォース員の蓮沼です。 この記事は富士通クラウドテクノロジーズ Advent Calendar 2023の23日目の記事です。 2023年10月16日から10月20日まで社内CTF、FJCTF#2を開催しました。この記事では社内…

SeleniumでNSX-T Managerに同時アクセスしてみた!

こんにちは!富士通クラウドテクノロジーズ、vExpertの蓮沼です。 この記事はvExperts Advent Calendar 2023の11日目の記事です。 タイトルにある通り、WebブラウザのテストフレームワークであるSeleniumを使って、NSX-T Managerに同時アクセスを行い、Confi…

ニフクラに IaC スキャンしてみた

この記事は富士通クラウドテクノロジーズ Advent Calendar 2023の1日目の記事です。 2020年からニフクラ用のTerraform NIFCLOUD Providerを提供させていただいており、多くの方に利用いただいています。 こういったIaCは一括でインフラを構築出来たり、コー…

富士通クラウドテクノロジーズ Advent Calendar 2023 開催!!

今年もAdvent Calendar 開催します!! こんにちは!ETF(エンジニアタスクフォース)の神戸です。 FJCTでは例年12月にアドベントカレンダーを開催しています。 以下のような予定で25日まで弊社の社員によって作成された記事が投稿されます。多種多様な内容が…

【システム開発戦略編 その4】 The Twelve-Factor App

サービス開発の方法論であるThe Twelve-Factor Appについて紹介しつつ、これまで本連載で紹介してきた私たちのチームが行っている品質向上のための取り組みについて振り返ります。

【システム開発戦略編 その3】モジュラーモノリス

ネットワークサービス部のid:a8544です。 連載22回目の今回は、わたしたちが採用しているアーキテクチャのパターンである モジュラーモノリスについてご紹介します。 以前の記事『【システム開発戦略編 その1】 ドメインドリブンでクリーンなアーキテクチャ…

【システム開発戦略編 その2】 スクラムでアジャイルな開発を実現しよう

今回は、わたしたちが採用しているスクラムというソフトウェア開発プロセスについてご紹介します。 なんとなくスクラムというものを聞いたことはあるけど、結局どのようなものかわかっていない、 という方のために、基礎的な情報をまとめていきます。

【システム開発戦略編 その1】 ドメインドリブンでクリーンなアーキテクチャを意識した開発

ソフトウェアの設計手法であるドメイン駆動設計、およびクリーンアーキテクチャの考え方について紹介し、 私たちのプロダクトでそれらをどのように実装しているかをPythonのサンプルコードを用いて解説します。

【FJCTQualityUp #4 】サービスの今を知る!顧客通知システムの開発・運用

はじめに FJCTQualityUpについて 第4回:FJcloud-V/ニフクラの各サービスと連携する通知システム 自己紹介 顧客通知システムについて FJCTで顧客通知システム開発に取り組みだした背景 新たに出てきた課題 今後の取り組み ここまで読んでくれた方へ! おわり…

【CI・CD戦略編 その6】アプリケーションレベル ヘルスチェック

ネットワークサービス部のid:a8544です。 連載19回目の今回は、わたしたちの開発するシステムに備わるヘルスチェック(正常性確認)機能についてご紹介します。 以前の記事で、インフラに着目した間接的なヘルスチェックについてご紹介しました。わたしたち…

【CI・CD戦略編 その5】プロダクション環境への週1デプロイ

この記事では、システムのリリース頻度向上とそのための施策について紹介します。正常性確認ツールやE2Eテストの充実、段階リリースとフィーチャーフラグの活用など、様々な手法が取り入れられます。リリース頻度の向上はチームの生産性向上に寄与し、スケジ…

【CI・CD戦略編 その4】検証環境への自動デプロイ

CI/CDを活用し、パイプライン中でアプリケーションを検証環境に自動的にデプロイする事例を紹介します。

【CI・CD戦略編 その3】デプロイ後の正常性確認

連載16回目の今回は、開発したシステムを新規環境にデプロイするとき・既存の環境をアップデートするときに、 わたしたちが使っているちょっとしたスクリプト(「正常性確認くん」と呼ばれています)についてご紹介します。

【CI・CD戦略編 その2】自動化されたE2Eテストでプロダクトの品質を維持しよう

わたしたちのプロダクトのE2Eテストは、プロダクション環境と同じ構成でデプロイされたシステムに対してリクエストを送り、変更が正しく行われることを確認します。 このテストは、テストしづらいコードや非同期処理の動作確認や、リグレッションがない事を…

【CI・CD戦略編 その1】CIによる自動テスト ~品質と速度の両立のために~

Googleが提唱するテストの分類法である「テストサイズ」について紹介し、テストサイズを参考にした自動テストの戦略の実践例を紹介します。

【CI戦術編 その12】CI戦術編総まとめ — いつ何を使うべきか

クラウドインフラ本部ネットワークサービス部のid:a8544です。 連載13回目の今回は、これまで「CI戦術編」で紹介してきたいろいろなツールについて 振り返り、それらツールをいつ・どのように実行するべきなのか、わたしたちの実例をもとにご紹介します。

【CI戦術編 その11】Trivy: あなたの使ってるライブラリ、大丈夫ですか?

オープンソースのライブラリは現代のソフトウェア開発に欠かせないものですが、その管理には脆弱性の問題があります。Renovateなどのツールを使えば、直接依存しているライブラリのバージョンアップは比較的簡単に行えますが、間接的に依存しているライブラ…

【CI戦術編 その10】 Renovateで依存ライブラリのアップデートに負けない方法

今回はRenovateを使ってGitLabのプロジェクトのライブラリを最新に保つ方法をご紹介しました。 Renovateを導入することでライブラリのアップデートの検知とMRの作成が自動で実行されるため、 定期的に人間が手動でアップデートを確認する必要がなくなり、最…

【CI戦術編 その9】自動生成しか勝たん openapi-typescript

この記事では、OpenAPI Specification (OAS)からTypeScriptのクライアントコードを自動生成するツール「openapi-typescript」について解説しています。APIクライアントはAPIへのリクエストの組み立てやレスポンスの解釈を担当するコードの集まりであり、その…

【CI戦術編 その8】OAS(OpenAPI Specification)で仕様書を自動生成しよう

OAS(OpenAPI Specification)の生成メリットを紹介します。OASはRESTful APIの仕様を記述するドキュメントの仕様で、エンドポイント情報やリクエスト・レスポンスの解釈方法がわかります。生成するメリットとして、APIの使い方を高い精度で伝えられる点が挙げ…

【CI戦術編 その7】 pyupgradeを使って最新の記法に対応してみた

この記事では、Pythonの記法を最新に更新するツールとしてpyupgradeを紹介します。pyupgradeは、古い記法から新しい記法にコードを自動的に修正し、フォーマッタとしての機能も提供します。この記事では、pyupgradeとBlackを併用することで、より強力なフォ…

【CI戦術編 その6】Python開発の強い味方 Pylint

この記事では、Pythonプロジェクトでの静的解析ツールPylintの使用方法について解説しています。Pylintは、コードの品質と可読性を向上させるためのリンターツールであり、さまざまな設定変更やチェック項目の無効化が可能です。また、PylintをCI環境で利用…

【CI戦術編 その5】Pythonで明示的に型を書く理由

クラウドインフラ本部ネットワークサービス部の田上(id:rtagami)です。 オーディオインタフェースも液タブもまだ買っていませんが、 なぜか3Dプリンターを先に買ってしまいました。 早速、(既に買ってあったものの良い設置方法がなく困っていた)Wi-Fi 6のア…

【FJCTQualityUp #3 】マイクロサービス開発への取り組み

はじめに FJCTQualityUpについて 第3回:マイクロサービス開発への取り組みについて 自己紹介 マイクロサービスについて FJCTでマイクロサービスに取り組みだした背景 マイクロサービス化を推進する理由は? 現在、課題として認識していることについて マイ…

【CI戦術編 その4】Blackを利用したコーディングスタイルの統一

【CI戦術編 その4】Blackを利用したコーディングスタイルの統一 クラウドインフラ本部ネットワークサービス部の上野(id:uweno)です。 成人女性や男の子でもプリキュアになれる昨今、成人男性の私もそろそろ変身できるんじゃないかなって期待しています。 前…

【CI戦術編 その3】Pythonのimportのことならまかせろ isort

Pythonのimport文、どう整理されていますでしょうか? クラウドインフラ本部ネットワークサービス部のid:a8544です。 前回の記事は「【CI戦術編 その2】コードレビューを充実したものにする方法、あるいは一生残る恥ずかしい履歴を作らないように - FJCT Tec…

【CI戦術編 その2】コードレビューを充実したものにする方法、あるいは一生残る恥ずかしい履歴を作らないように

クラウドインフラ本部ネットワークサービス部の田上(id:rtagami)です。 ATEM Television Studio HD8が発売されましたね。 オーディオインタフェースと液タブと(以下略 前回の記事は 【CI戦術編 その1】 alembic check コマンドを活用したマイグレーションス…

【CI戦術編 その1】 alembic check コマンドを活用したマイグレーションスクリプト生成忘れ防止

はじめまして、クラウドインフラ本部ネットワークサービス部の上野(id:uweno)です。 最近10GbE回線を自室に引いたことでTwitterが快適になりました。 今回はCI戦術編の1回目として、データベースのマイグレーションスクリプトの生成忘れを防止するために取っ…

【連載はじめます】プライベートブリッジを支えるバックエンドサービスの開発技術

はじめまして、クラウドインフラ本部ネットワークサービス部の田上(id:rtagami)です。 最近はDSP内蔵オーディオインタフェースを買うか液晶タブレットを買うか両方買うかで悩んでいます。 普段は id:a8544 と上野(id:uweno)と3人の開発者チームで、 プライベ…