# 印刷グループのシステム子会社(2024.01 - )
## 概要
- 職種:エンジニア(フルスタック, プラットフォーム)
- 在籍形態:正社員
- 配属形態:自社開発
- 部署名:デジタルイノベーション推進センター モダナイズ推進部
- チーム規模:リーダー1名/エンジニア4名
- 開発スタイル:スクラム
---
## チームの役割
- 社内のモダナイズを推進するためのプラットフォームを検討・構築支援
- アーキテクチャの検討
- Azure を使用したインターネットから接続可能な環境の検証
- インフラ担当部署と連携し環境の構築・提供
- 開発者の負担を減らすための共通基盤・ツールの提供
- 社内向けUIライブラリの実装・デザインシステムの構築
- 共通マスタ用のAPIをマイクロサービスで実装・提供
- Frontend, Backend, BFF, Kubernetes Manifest などの初期テンプレートの提供
- CI/CDパイプラインのテンプレート提供
- CLIツールの提供
- 開発者の技術力向上のためハンズオン等の実施
- フロントエンド、バックエンド、BFFのハンズオンを実施
- 社内向けブログサイトの構築と投稿
- AI(Github Copilot)を用いた開発の推進(導入時の検証、社員向けの説明、事例紹介、ハンズオン)
## それまでのアプリ構成
- 社内ネットワークに閉じたモノリシックなアプリ構成によるスケーラビリティの課題
- C#、OracleDB(PL/SQL多用)による開発で、APIが存在しないレガシーな環境
- フロントエンドはHTML直書きで、UI/UXへの考慮が不足
- 手動テスト、Subversion利用、PL/SQLへの修正履歴ハードコードなど、モダンな開発プラクティスの未導入
---
## プロジェクト一覧
### PJ-01:社内プラットフォーム構築(Azure基盤構築)
**期間**:2024.01 - (継続中)
**概要**:社内のモダナイズを推進するため、Azureを使用したインターネットから接続可能な環境の構築・検証を実施。
#### 担当フェーズ
- 設計
- 実装
- テスト
- 運用保守
#### 技術スタック
- Infra / Middleware:Microsoft Azure (Azure App Service (Web App for Containers), Azure Front Door, Azure API Management, Azure Kubernetes Service (AKS))
#### 実績・取り組み
- **モダナイズ環境の構築**:
- Azure App Service, Azure Front Door, Azure API Management, Azure Kubernetes Service等を活用し、インターネットからアクセス可能なアプリケーション環境を提供
- アプリケーション要件に応じ、リソースグループ内で利用者がリソースを自由に作成できる運用フローを整備
- **利用者への導入支援・サポート**:
- モダナイズ環境を利用する開発チームに対し、環境構築のサポートやトラブルシューティングを実施
- ベストプラクティスの共有やQA対応を通じ、スムーズな環境利用を促進
#### 【主要な取り組みの深堀】
**Topic A:クラウド移行とゼロトラストセキュリティの実現**
- **概要**:閉域網のオンプレミス環境から、Azureを活用したスケーラブルかつセキュアなプラットフォームへの移行。
- **課題・背景**:
- 既存システムは社内ネットワークに閉じたWindows Server VM(オンプレミス)でホスティングされており、スケーラビリティや柔軟性に課題があった。
- クラウド化に伴い、従来の境界型防御だけでなく、インターネット経由のアクセスも考慮した新たなセキュリティモデルが必要だった。
- **打ち手・思考プロセス**:
- **ゼロトラストを意識した認証設計**: Azure Entra ID (旧Azure AD) を中核に据えた認証基盤を構築し、IDベースでの厳格なアクセス制御を実現。
- **スケーラブルな構成**: 従来のVMホスティングから、Azureのマネージドサービス(App Service, AKS等)を活用した構成へシフトし、負荷に応じた柔軟なスケーリングを可能にした。
- **成果**:
- クラウドの利点(スケーラビリティ、可用性)を享受できるモダンなインフラ基盤の確立。
- ゼロトラストセキュリティモデルの実装によるセキュリティ強度の向上。
**Topic B:専門知識不要でセキュアに利用できる「標準プラットフォーム」の策定**
- **概要**:クラウドやモダン開発の知識が少ない開発者でも、利用するだけでセキュリティ基準を満たせる標準アーキテクチャの設計・提供。
- **課題・背景**:
- 社内の開発者の多くはクラウドネイティブ技術やモダンアプリケーション開発の経験が浅く、知識が不足していた。
- 各チームにアーキテクチャ設計を委ねると、セキュリティ設定の不備や非効率な構成が発生するリスクが高く、ガバナンスが効かなくなる恐れがあった。
- **打ち手・思考プロセス**:
- **Security by Design / Guardrails**: 開発者がアーキテクチャを意識せずとも、プラットフォームを利用するだけで自動的に社内のセキュリティ基準を満たせるように設計。
- **標準化**: インフラ構成やデプロイフローを標準化し、開発者は「標準プラットフォーム」に乗るだけでクラウドの恩恵(スケーラビリティ、堅牢性)を安全に享受できる仕組みを構築。
- **成果**:
- 開発チームがインフラやセキュリティの複雑な設計から解放され、アプリケーション開発(ビジネスロジック)に集中できる環境を実現。
- 組織全体でのセキュリティレベルの底上げと均質化。
---
### PJ-02:開発効率化・共通基盤整備(テンプレート・ツール)
**期間**:2024.01 - (継続中)
**概要**:開発の標準化と効率化を図るため、プロジェクトテンプレート、CLIツール、CI/CDパイプラインを提供。
#### 担当フェーズ
- 設計
- 実装
- テスト
- 運用保守
#### 技術スタック
- Tool:CLI (自作), GitHub Actions/Azure DevOps (CI/CD)
- その他ツール:Git
#### 実績・取り組み
- **開発効率化テンプレート・ツールの提供**:
- 各リソースのテンプレートを用意し、経験の浅い開発者でもすぐに実装に取り組める環境を整備
- テンプレートからのプロジェクト生成を行うCLIツールの実装
- 静的解析、セキュリティテスト、コンテナイメージスキャン(Trivy)を含むCI/CDワークフローを標準化して提供
#### 【主要な取り組みの深堀】
**Topic:モダン技術セット導入における「開発のスターターキット」整備**
- **概要**:モダン開発(Vue, Microservices, CI/CD)未経験の社内開発者が円滑に開発を始められるよう、標準構成済みのテンプレートセットを整備。
- **課題・背景**:
- 社内全体としてモダンな技術スタック(Vue.js, コンテナ等)の知見が乏しく、各開発チームがゼロから環境構築を行うのは困難かつ非効率だった。
- 各チームが手探りで構築することで構成がバラバラになり、組織としての品質担保や保守性に悪影響が出る懸念があった。
- **打ち手・思考プロセス**:
- **社内標準としてのベストプラクティス提示**: 我々のチームで先行して調査・検証を行い、ディレクトリ構成やCI/CD設定があらかじめ組み込まれたテンプレートを作成・提供した。
- **学習コストの低減**: 複雑な設定を意識せずとも、テンプレートを展開するだけで推奨されるアーキテクチャ(クリーンアーキテクチャ等)で開発が始められる状態を提供した。
- **成果**:
- 社内プロジェクトの開発着手までのリードタイムを大幅に短縮(環境構築の時間を削減)。
- 社内でのコード構成の統一化を実現し、チーム間でのナレッジ共有や保守を容易にした。
---
### PJ-03:社内向けUIライブラリ・デザインシステム構築
**期間**:2024.01 - (継続中)
**概要**:社内開発の効率化と統一性向上のため、Vue, Vuetifyを使用したUIライブラリの実装およびFigmaを用いたデザインシステムの構築を実施。
#### 担当フェーズ
- 設計
- 実装
- テスト
- 運用保守
#### 技術スタック
- Frontend:Vue.js, Vuetify, Storybook
- BFF: Nestjs
- Backend: .NET
- Design:Figma
- Test:Component Test, Visual Regression Test
- Test/Security:Static Analysis (ESLint/Prettier etc.), Security Test, Image Scanning (Trivy)
#### 実績・取り組み
- **デザインシステム・UIライブラリの構築**:
- 他社デザイナーと協力し、Figmaでのデザインシステム構築を主導
- フロントエンドの知見を活かし、コンポーネント設計・実装方針を策定
- Vue, Vuetifyを用いたUIライブラリの実装
- **業務特化型コンポーネントの提供**:
- 単純なUIだけでなく、API連携を含んだ業務特化型コンポーネントを実装し、再開発の手間を削減
- **品質担保**:
- コンポーネントテスト、ビジュアルリグレッションテストの導入による不具合・デザイン崩れの防止
- Storybookによるコンポーネント公開
#### 【主要な取り組みの深堀】
**Topic A:組織の壁を越えたデザインシステム構築と活用推進**
- **概要**:フロントエンド・デザインの知見やツール(Figma)が不在の状況下で、他グループ会社や協力会社と連携し、ゼロからデザインシステムを構築・定着させた。
- **課題・背景**:
- 社内ではデザインの重要性が認知されておらず、Figma等のデザインインフラも未整備だった。
- 短期間での立ち上げが求められたが、チーム内に専門デザイナーがおらず、外部協力会社のリソースも期間限定だった。
- **打ち手・思考プロセス**:
- **段階的構築と内製化**: 初期フェーズではデジタル庁の事例を参考にしつつ、Figmaのコンポーネント化などの最適化よりも「デザインの可視化」を優先して協力会社に制作依頼。契約終了後は自身がFigmaを習得し、コンポーネント化や不足パーツのデザイン追加を行い、システムを整備していった。
- **非デザイナーへの展開**: 「デザイナーでなくても一定品質のデザインが作れる」状態を目指し、Figma Code ConnectやMCPサーバー等の最新技術活用を見据え、デザインからコードへの還流がスムーズに行える基盤作りを意識した。
- **成果**:
- グループ会社内でのFigma浸透のきっかけとなり、Figma社・アクセンチュア(ゆめみ)社主催の勉強会にて、デザインシステム構築の事例として登壇・紹介された。
**Topic B:開発者体験を重視した社内独自UIライブラリの実装**
- **概要**:フロントエンド知識の浅い社内開発者でも、迷わずモダンなUIを実装できるVuetifyベースのラッパーライブラリを提供。
- **課題・背景**:
- Vuetify等の高機能なライブラリは、自由度が高すぎるが故に、初学者には「どのPropsを使えばよいか分からない」という混乱を招き、デザインの不統一を生む原因となっていた。
- **打ち手・思考プロセス**:
- **インターフェースの簡略化**: Vuetifyをベースにしつつ、社内標準のデザインに必要なPropsのみに絞り込み、開発者が迷いなく利用できるよう抽象化した(一方で、複雑な要望には柔軟に対応可能な設計とした)。
- **高機能コンポーネントの提供**: 単なるUIパーツに留まらず、業務で頻出するAPI連携機能や、デプロイ先(App Service)に応じた認証情報表示機能などを内包した「業務特化型コンポーネント」を提供。Storybookでこれらをカタログ化・公開した。
- **成果**:
- 開発者はビジネスロジックの実装に集中でき、社内システムのUI/UXの統一と実装速度の向上を実現した。
#### 学び・得られた強み
- デザインシステム構築・運用経験
- UIライブラリ開発・提供の経験
- デザイナー・協力会社との協業推進経験
---
### PJ-04:共通マスタAPI(マイクロサービス)開発
**期間**:2024.01 - (継続中)
**概要**:従来OracleDBのPL/SQLで管理されていた共通マスタを、Rest APIとして利用可能なマイクロサービスへ移行。
#### 担当フェーズ
- 実装
- テスト
- 運用保守
#### 技術スタック
- Architecture:Microservices, Layered Architecture (WebApi, Domain, Infrastructure, Application)
- Infra / Middleware:Azure Kubernetes Service (AKS), ArgoCD
- Test:Unit/Integration/Api Test/Architecture Test
- Test/Security:Static Analysis (ESLint/Prettier etc.), Security Test, Image Scanning (Trivy)
#### 実績・取り組み
- **マイクロサービス化とモダナイズ**:
- PL/SQLによる共通マスタロジックを機能単位でサービス分割し、Rest APIとして再実装
- サービスごとにデプロイ単位を分けることで、独立したリリースサイクルを実現
- レイヤードアーキテクチャを採用し、保守性を向上
- **品質・デプロイ**:
- テストトロフィーに従い、UnitTest, IntegrationTest, ApiTestを実装
- マニフェスト管理用リポジトリを作成し、ArgoCDを用いたGitOpsによるデプロイフローを構築
#### 【主要な取り組みの深堀】
**Topic:レガシーDBからの脱却とマイクロサービスAPIによるアクセス高速化**
- **概要**:物理的に距離のあるレガシーDB(オンプレミス)に依存していた共通マスタを、クラウドネイティブなAPI(マイクロサービス)へ刷新。
- **課題・背景**:
- 既存の共通マスタDBはクラウド環境とネットワーク的に離れた場所にあり、レイテンシや接続安定性に課題があった。
- PL/SQLによる密結合なロジックがボトルネックとなり、新規アプリケーションからの柔軟な利用が困難だった。
- **打ち手・思考プロセス**:
- **NoSQL (CosmosDB) の採用**: 頻繁に参照されるマスタデータについては、スキーマレスで高速なリード性能を持つAzure Cosmos DB (NoSQL) を採用し、データアクセスを最適化した。
- **マイクロサービス化**: Kubernetes (AKS) 上に独立したAPIサービスとしてデプロイすることで、スケーラビリティを確保しつつ、他システムからの疎結合な連携を実現した。
- **成果**:
- モダナイズされたクラウド環境からのマスタ参照速度を大幅に向上。
- 共通マスタをRest APIとして標準化したことで、新規開発プロジェクトにおけるマスタ利用の実装コストを低減した。
#### 学び・得られた強み
- マイクロサービスアーキテクチャでの開発・移行経験
- レイヤードアーキテクチャの設計・実装経験
- Kubernetes / GitOps (ArgoCD) での運用経験
---
### PJ-05:エンジニア技術力向上支援(ハンズオン・ブログ・AI推進)
**期間**:2024.01 - (継続中)
**概要**:社内エンジニアの技術力向上を目的として、ハンズオン実施、社内向けブログサイト構築、AI(GitHub Copilot)を用いた開発推進を実施。
#### 担当フェーズ
- 要件定義
- 設計
- 実装
- 運用保守
- 進捗管理・問い合わせ対応
#### 技術スタック
- GitHub Copilot
- 利用ツール:Git
#### 実績・取り組み
- **ハンズオンの実施**:
- 各部署向けや社内全体向けに、Frontend, Backend, BFFなどのハンズオンを複数回実施し、開発技術の向上を支援
- **情報発信・環境整備**:
- 社内向けブログサイトの構築と記事投稿の実施
- AI(GitHub Copilot)の導入検証、説明会、事例紹介、ハンズオンを通じた活用推進
#### 学び・得られた強み
- 技術教育・ハンズオンの企画・実施経験
- 社内技術コミュニティの活性化経験
- 新技術(AI)の社内導入・推進経験
---
## この会社での総括
- 技術面で得たもの:
- Microsoft Azureを用いたクラウドネイティブな環境構築・運用経験
- マイクロサービスアーキテクチャおよびレイヤードアーキテクチャでの設計・実装
- デザインシステム構築とVue/Vuetifyを用いたUIライブラリ開発
- DevOps/DevSecOpsの推進(CI/CD、Trivyや静的解析を用いたセキュリティシフトレフト)
- IaCやコンテナ技術(Docker/Kubernetes)の実践的スキル
- フルスタック開発経験(フロントエンド、バックエンド、インフラ)
- AI開発ツール(GitHub Copilot)の活用と組織的な導入推進
- 働き方・スタンス面で得たもの:
- スクラム開発でのチーム協業とリーダーシップ
- プラットフォームエンジニアとしての利用者支援
- 社内エンジニアへの技術教育・サポート経験(ハンズオン、ブログ)
- ゼロベースからのプラットフォーム構築における要件整理・設計能力
- 自走力・主体性(課題発見から解決策の提案・実装・普及までをリード)