[{"data":1,"prerenderedAt":1196},["ShallowReactive",2],{"/ja-jp/blog":3,"navigation-ja-jp":21,"banner-ja-jp":436,"footer-ja-jp":449,"footer-source-/ja-jp/blog/":659,"blogCategories-ja-jp":663,"relatedBlogPosts-ja-jp":784,"maineFeaturedPost-ja-jp":1152,"recentFeaturedPosts-ja-jp":1157,"recentPosts-ja-jp":1172},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":11,"config":13,"_id":15,"_type":16,"title":7,"_source":17,"_file":18,"_stem":19,"_extension":20},"/ja-jp/blog","ja-jp",false,"",{"title":9,"description":10},"Blog","Tutorials, product information, expert insights, and more from GitLab to help DevSecOps teams build, test, and deploy secure software faster.",{"title":12},"GitLab Blog",{"template":14},"BlogHome","content:ja-jp:blog:index.yml","yaml","content","ja-jp/blog/index.yml","ja-jp/blog/index","yml",{"_path":22,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"data":23,"_id":432,"_type":16,"title":433,"_source":17,"_file":434,"_stem":435,"_extension":20},"/shared/ja-jp/main-navigation",{"logo":24,"freeTrial":29,"sales":34,"login":39,"items":44,"search":376,"minimal":410,"duo":423},{"config":25},{"href":26,"dataGaName":27,"dataGaLocation":28},"/ja-jp/","gitlab logo","header",{"text":30,"config":31},"無料トライアルを開始",{"href":32,"dataGaName":33,"dataGaLocation":28},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":35,"config":36},"お問い合わせ",{"href":37,"dataGaName":38,"dataGaLocation":28},"/ja-jp/sales/","sales",{"text":40,"config":41},"サインイン",{"href":42,"dataGaName":43,"dataGaLocation":28},"https://gitlab.com/users/sign_in/","sign in",[45,89,187,192,298,358],{"text":46,"config":47,"cards":49,"footer":72},"プラットフォーム",{"dataNavLevelOne":48},"platform",[50,56,64],{"title":46,"description":51,"link":52},"最も包括的かつAIで強化されたDevSecOpsプラットフォーム",{"text":53,"config":54},"プラットフォームを詳しく見る",{"href":55,"dataGaName":48,"dataGaLocation":28},"/ja-jp/platform/",{"title":57,"description":58,"link":59},"GitLab Duo（AI）","開発のすべてのステージでAIを活用し、ソフトウェアをより迅速にビルド",{"text":60,"config":61},"GitLab Duoのご紹介",{"href":62,"dataGaName":63,"dataGaLocation":28},"/ja-jp/gitlab-duo/","gitlab duo ai",{"title":65,"description":66,"link":67},"GitLabが選ばれる理由","GitLabが大企業に選ばれる理由10選",{"text":68,"config":69},"詳細はこちら",{"href":70,"dataGaName":71,"dataGaLocation":28},"/ja-jp/why-gitlab/","why gitlab",{"title":73,"items":74},"利用を開始：",[75,80,85],{"text":76,"config":77},"プラットフォームエンジニアリング",{"href":78,"dataGaName":79,"dataGaLocation":28},"/ja-jp/solutions/platform-engineering/","platform engineering",{"text":81,"config":82},"開発者の経験",{"href":83,"dataGaName":84,"dataGaLocation":28},"/ja-jp/developer-experience/","Developer experience",{"text":86,"config":87},"MLOps",{"href":88,"dataGaName":86,"dataGaLocation":28},"/ja-jp/topics/devops/the-role-of-ai-in-devops/",{"text":90,"left":91,"config":92,"link":94,"lists":98,"footer":169},"製品",true,{"dataNavLevelOne":93},"solutions",{"text":95,"config":96},"すべてのソリューションを表示",{"href":97,"dataGaName":93,"dataGaLocation":28},"/ja-jp/solutions/",[99,125,147],{"title":100,"description":101,"link":102,"items":107},"自動化","CI/CDと自動化でデプロイを加速",{"config":103},{"icon":104,"href":105,"dataGaName":106,"dataGaLocation":28},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[108,112,116,121],{"text":109,"config":110},"CI/CD",{"href":111,"dataGaLocation":28,"dataGaName":109},"/ja-jp/solutions/continuous-integration/",{"text":113,"config":114},"AIアシストによる開発",{"href":62,"dataGaLocation":28,"dataGaName":115},"AI assisted development",{"text":117,"config":118},"ソースコード管理",{"href":119,"dataGaLocation":28,"dataGaName":120},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":122,"config":123},"自動化されたソフトウェアデリバリー",{"href":105,"dataGaLocation":28,"dataGaName":124},"Automated software delivery",{"title":126,"description":127,"link":128,"items":133},"セキュリティ","セキュリティを損なうことなくコードをより迅速に完成",{"config":129},{"href":130,"dataGaName":131,"dataGaLocation":28,"icon":132},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[134,138,143],{"text":135,"config":136},"Application Security Testing",{"href":130,"dataGaName":137,"dataGaLocation":28},"Application security testing",{"text":139,"config":140},"ソフトウェアサプライチェーンの安全性",{"href":141,"dataGaLocation":28,"dataGaName":142},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":144,"config":145},"Software Compliance",{"href":146,"dataGaName":144,"dataGaLocation":28},"/ja-jp/solutions/software-compliance/",{"title":148,"link":149,"items":154},"測定",{"config":150},{"icon":151,"href":152,"dataGaName":153,"dataGaLocation":28},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[155,159,164],{"text":156,"config":157},"可視性と測定",{"href":152,"dataGaLocation":28,"dataGaName":158},"Visibility and Measurement",{"text":160,"config":161},"バリューストリーム管理",{"href":162,"dataGaLocation":28,"dataGaName":163},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":165,"config":166},"分析とインサイト",{"href":167,"dataGaLocation":28,"dataGaName":168},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":170,"items":171},"GitLabが活躍する場所",[172,177,182],{"text":173,"config":174},"Enterprise",{"href":175,"dataGaLocation":28,"dataGaName":176},"/ja-jp/enterprise/","enterprise",{"text":178,"config":179},"スモールビジネス",{"href":180,"dataGaLocation":28,"dataGaName":181},"/ja-jp/small-business/","small business",{"text":183,"config":184},"公共機関",{"href":185,"dataGaLocation":28,"dataGaName":186},"/ja-jp/solutions/public-sector/","public sector",{"text":188,"config":189},"価格",{"href":190,"dataGaName":191,"dataGaLocation":28,"dataNavLevelOne":191},"/ja-jp/pricing/","pricing",{"text":193,"config":194,"link":196,"lists":200,"feature":285},"関連リソース",{"dataNavLevelOne":195},"resources",{"text":197,"config":198},"すべてのリソースを表示",{"href":199,"dataGaName":195,"dataGaLocation":28},"/ja-jp/resources/",[201,234,257],{"title":202,"items":203},"はじめに",[204,209,214,219,224,229],{"text":205,"config":206},"インストール",{"href":207,"dataGaName":208,"dataGaLocation":28},"/ja-jp/install/","install",{"text":210,"config":211},"クイックスタートガイド",{"href":212,"dataGaName":213,"dataGaLocation":28},"/ja-jp/get-started/","quick setup checklists",{"text":215,"config":216},"学ぶ",{"href":217,"dataGaLocation":28,"dataGaName":218},"https://university.gitlab.com/","learn",{"text":220,"config":221},"製品ドキュメント",{"href":222,"dataGaName":223,"dataGaLocation":28},"https://docs.gitlab.com/","product documentation",{"text":225,"config":226},"ベストプラクティスビデオ",{"href":227,"dataGaName":228,"dataGaLocation":28},"/ja-jp/getting-started-videos/","best practice videos",{"text":230,"config":231},"インテグレーション",{"href":232,"dataGaName":233,"dataGaLocation":28},"/ja-jp/integrations/","integrations",{"title":235,"items":236},"検索する",[237,242,247,252],{"text":238,"config":239},"お客様成功事例",{"href":240,"dataGaName":241,"dataGaLocation":28},"/ja-jp/customers/","customer success stories",{"text":243,"config":244},"ブログ",{"href":245,"dataGaName":246,"dataGaLocation":28},"/ja-jp/blog/","blog",{"text":248,"config":249},"リモート",{"href":250,"dataGaName":251,"dataGaLocation":28},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":253,"config":254},"TeamOps",{"href":255,"dataGaName":256,"dataGaLocation":28},"/ja-jp/teamops/","teamops",{"title":258,"items":259},"つなげる",[260,265,270,275,280],{"text":261,"config":262},"GitLabサービス",{"href":263,"dataGaName":264,"dataGaLocation":28},"/ja-jp/services/","services",{"text":266,"config":267},"コミュニティ",{"href":268,"dataGaName":269,"dataGaLocation":28},"/community/","community",{"text":271,"config":272},"フォーラム",{"href":273,"dataGaName":274,"dataGaLocation":28},"https://forum.gitlab.com/","forum",{"text":276,"config":277},"イベント",{"href":278,"dataGaName":279,"dataGaLocation":28},"/events/","events",{"text":281,"config":282},"パートナー",{"href":283,"dataGaName":284,"dataGaLocation":28},"/ja-jp/partners/","partners",{"backgroundColor":286,"textColor":287,"text":288,"image":289,"link":293},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":290,"config":291},"ソースプロモカード",{"src":292},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":294,"config":295},"最新情報を読む",{"href":296,"dataGaName":297,"dataGaLocation":28},"/ja-jp/the-source/","the source",{"text":299,"config":300,"lists":302},"会社情報",{"dataNavLevelOne":301},"company",[303],{"items":304},[305,310,316,318,323,328,333,338,343,348,353],{"text":306,"config":307},"GitLabについて",{"href":308,"dataGaName":309,"dataGaLocation":28},"/ja-jp/company/","about",{"text":311,"config":312,"footerGa":315},"採用情報",{"href":313,"dataGaName":314,"dataGaLocation":28},"/jobs/","jobs",{"dataGaName":314},{"text":276,"config":317},{"href":278,"dataGaName":279,"dataGaLocation":28},{"text":319,"config":320},"経営陣",{"href":321,"dataGaName":322,"dataGaLocation":28},"/company/team/e-group/","leadership",{"text":324,"config":325},"チーム",{"href":326,"dataGaName":327,"dataGaLocation":28},"/company/team/","team",{"text":329,"config":330},"ハンドブック",{"href":331,"dataGaName":332,"dataGaLocation":28},"https://handbook.gitlab.com/","handbook",{"text":334,"config":335},"投資家向け情報",{"href":336,"dataGaName":337,"dataGaLocation":28},"https://ir.gitlab.com/","investor relations",{"text":339,"config":340},"トラストセンター",{"href":341,"dataGaName":342,"dataGaLocation":28},"/ja-jp/security/","trust center",{"text":344,"config":345},"AI Transparency Center",{"href":346,"dataGaName":347,"dataGaLocation":28},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":349,"config":350},"ニュースレター",{"href":351,"dataGaName":352,"dataGaLocation":28},"/company/contact/","newsletter",{"text":354,"config":355},"プレス",{"href":356,"dataGaName":357,"dataGaLocation":28},"/press/","press",{"text":35,"config":359,"lists":360},{"dataNavLevelOne":301},[361],{"items":362},[363,366,371],{"text":35,"config":364},{"href":37,"dataGaName":365,"dataGaLocation":28},"talk to sales",{"text":367,"config":368},"サポートを受ける",{"href":369,"dataGaName":370,"dataGaLocation":28},"/support/","get help",{"text":372,"config":373},"カスタマーポータル",{"href":374,"dataGaName":375,"dataGaLocation":28},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":377,"login":378,"suggestions":385},"閉じる",{"text":379,"link":380},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":381,"config":382},"GitLab.com",{"href":42,"dataGaName":383,"dataGaLocation":384},"search login","search",{"text":386,"default":387},"提案",[388,391,396,398,402,406],{"text":57,"config":389},{"href":62,"dataGaName":390,"dataGaLocation":384},"GitLab Duo (AI)",{"text":392,"config":393},"コード提案（AI）",{"href":394,"dataGaName":395,"dataGaLocation":384},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":109,"config":397},{"href":111,"dataGaName":109,"dataGaLocation":384},{"text":399,"config":400},"GitLab on AWS",{"href":401,"dataGaName":399,"dataGaLocation":384},"/ja-jp/partners/technology-partners/aws/",{"text":403,"config":404},"GitLab on Google Cloud",{"href":405,"dataGaName":403,"dataGaLocation":384},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":407,"config":408},"GitLabを選ぶ理由",{"href":70,"dataGaName":409,"dataGaLocation":384},"Why GitLab?",{"freeTrial":411,"mobileIcon":415,"desktopIcon":420},{"text":30,"config":412},{"href":413,"dataGaName":33,"dataGaLocation":414},"https://gitlab.com/-/trials/new/","nav",{"altText":416,"config":417},"GitLabアイコン",{"src":418,"dataGaName":419,"dataGaLocation":414},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":416,"config":421},{"src":422,"dataGaName":419,"dataGaLocation":414},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":424,"mobileIcon":428,"desktopIcon":430},{"text":425,"config":426},"GitLab Duoの詳細について",{"href":62,"dataGaName":427,"dataGaLocation":414},"gitlab duo",{"altText":416,"config":429},{"src":418,"dataGaName":419,"dataGaLocation":414},{"altText":416,"config":431},{"src":422,"dataGaName":419,"dataGaLocation":414},"content:shared:ja-jp:main-navigation.yml","Main Navigation","shared/ja-jp/main-navigation.yml","shared/ja-jp/main-navigation",{"_path":437,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":438,"button":439,"config":444,"_id":446,"_type":16,"_source":17,"_file":447,"_stem":448,"_extension":20},"/shared/ja-jp/banner","GitLab Duo Agent Platformがパブリックベータ版で利用可能になりました！",{"text":440,"config":441},"ベータ版を試す",{"href":442,"dataGaName":443,"dataGaLocation":28},"/ja-jp/gitlab-duo/agent-platform/","duo banner",{"layout":445},"release","content:shared:ja-jp:banner.yml","shared/ja-jp/banner.yml","shared/ja-jp/banner",{"_path":450,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"data":451,"_id":655,"_type":16,"title":656,"_source":17,"_file":657,"_stem":658,"_extension":20},"/shared/ja-jp/main-footer",{"text":452,"source":453,"edit":459,"contribute":464,"config":469,"items":474,"minimal":647},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":454,"config":455},"ページのソースを表示",{"href":456,"dataGaName":457,"dataGaLocation":458},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":460,"config":461},"このページを編集",{"href":462,"dataGaName":463,"dataGaLocation":458},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":465,"config":466},"ご協力をお願いします",{"href":467,"dataGaName":468,"dataGaLocation":458},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":470,"facebook":471,"youtube":472,"linkedin":473},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[475,498,552,584,619],{"title":46,"links":476,"subMenu":481},[477],{"text":478,"config":479},"DevSecOpsプラットフォーム",{"href":55,"dataGaName":480,"dataGaLocation":458},"devsecops platform",[482],{"title":188,"links":483},[484,488,493],{"text":485,"config":486},"プランの表示",{"href":190,"dataGaName":487,"dataGaLocation":458},"view plans",{"text":489,"config":490},"Premiumを選ぶ理由",{"href":491,"dataGaName":492,"dataGaLocation":458},"/ja-jp/pricing/premium/","why premium",{"text":494,"config":495},"Ultimateを選ぶ理由",{"href":496,"dataGaName":497,"dataGaLocation":458},"/ja-jp/pricing/ultimate/","why ultimate",{"title":499,"links":500},"ソリューション",[501,506,509,511,516,521,525,528,531,536,538,540,542,547],{"text":502,"config":503},"デジタルトランスフォーメーション",{"href":504,"dataGaName":505,"dataGaLocation":458},"/ja-jp/topics/digital-transformation/","digital transformation",{"text":507,"config":508},"セキュリティとコンプライアンス",{"href":130,"dataGaName":137,"dataGaLocation":458},{"text":122,"config":510},{"href":105,"dataGaName":106,"dataGaLocation":458},{"text":512,"config":513},"アジャイル開発",{"href":514,"dataGaName":515,"dataGaLocation":458},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":517,"config":518},"クラウドトランスフォーメーション",{"href":519,"dataGaName":520,"dataGaLocation":458},"/ja-jp/topics/cloud-native/","cloud transformation",{"text":522,"config":523},"SCM",{"href":119,"dataGaName":524,"dataGaLocation":458},"source code management",{"text":109,"config":526},{"href":111,"dataGaName":527,"dataGaLocation":458},"continuous integration & delivery",{"text":160,"config":529},{"href":162,"dataGaName":530,"dataGaLocation":458},"value stream management",{"text":532,"config":533},"GitOps",{"href":534,"dataGaName":535,"dataGaLocation":458},"/ja-jp/solutions/gitops/","gitops",{"text":173,"config":537},{"href":175,"dataGaName":176,"dataGaLocation":458},{"text":178,"config":539},{"href":180,"dataGaName":181,"dataGaLocation":458},{"text":183,"config":541},{"href":185,"dataGaName":186,"dataGaLocation":458},{"text":543,"config":544},"教育",{"href":545,"dataGaName":546,"dataGaLocation":458},"/ja-jp/solutions/education/","education",{"text":548,"config":549},"金融サービス",{"href":550,"dataGaName":551,"dataGaLocation":458},"/ja-jp/solutions/finance/","financial services",{"title":193,"links":553},[554,556,558,560,563,565,568,570,572,574,576,578,580,582],{"text":205,"config":555},{"href":207,"dataGaName":208,"dataGaLocation":458},{"text":210,"config":557},{"href":212,"dataGaName":213,"dataGaLocation":458},{"text":215,"config":559},{"href":217,"dataGaName":218,"dataGaLocation":458},{"text":220,"config":561},{"href":222,"dataGaName":562,"dataGaLocation":458},"docs",{"text":243,"config":564},{"href":245,"dataGaName":246},{"text":566,"config":567},"お客様の成功事例",{"href":240,"dataGaLocation":458},{"text":238,"config":569},{"href":240,"dataGaName":241,"dataGaLocation":458},{"text":248,"config":571},{"href":250,"dataGaName":251,"dataGaLocation":458},{"text":261,"config":573},{"href":263,"dataGaName":264,"dataGaLocation":458},{"text":253,"config":575},{"href":255,"dataGaName":256,"dataGaLocation":458},{"text":266,"config":577},{"href":268,"dataGaName":269,"dataGaLocation":458},{"text":271,"config":579},{"href":273,"dataGaName":274,"dataGaLocation":458},{"text":276,"config":581},{"href":278,"dataGaName":279,"dataGaLocation":458},{"text":281,"config":583},{"href":283,"dataGaName":284,"dataGaLocation":458},{"title":585,"links":586},"Company",[587,589,591,593,595,597,599,603,608,610,612,614],{"text":306,"config":588},{"href":308,"dataGaName":301,"dataGaLocation":458},{"text":311,"config":590},{"href":313,"dataGaName":314,"dataGaLocation":458},{"text":319,"config":592},{"href":321,"dataGaName":322,"dataGaLocation":458},{"text":324,"config":594},{"href":326,"dataGaName":327,"dataGaLocation":458},{"text":329,"config":596},{"href":331,"dataGaName":332,"dataGaLocation":458},{"text":334,"config":598},{"href":336,"dataGaName":337,"dataGaLocation":458},{"text":600,"config":601},"Sustainability",{"href":602,"dataGaName":600,"dataGaLocation":458},"/sustainability/",{"text":604,"config":605},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":606,"dataGaName":607,"dataGaLocation":458},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":339,"config":609},{"href":341,"dataGaName":342,"dataGaLocation":458},{"text":349,"config":611},{"href":351,"dataGaName":352,"dataGaLocation":458},{"text":354,"config":613},{"href":356,"dataGaName":357,"dataGaLocation":458},{"text":615,"config":616},"現代奴隷制の透明性に関する声明",{"href":617,"dataGaName":618,"dataGaLocation":458},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":35,"links":620},[621,623,625,627,632,637,642],{"text":35,"config":622},{"href":37,"dataGaName":38,"dataGaLocation":458},{"text":367,"config":624},{"href":369,"dataGaName":370,"dataGaLocation":458},{"text":372,"config":626},{"href":374,"dataGaName":375,"dataGaLocation":458},{"text":628,"config":629},"ステータス",{"href":630,"dataGaName":631,"dataGaLocation":458},"https://status.gitlab.com/","status",{"text":633,"config":634},"利用規約",{"href":635,"dataGaName":636,"dataGaLocation":458},"/terms/","terms of use",{"text":638,"config":639},"プライバシーに関する声明",{"href":640,"dataGaName":641,"dataGaLocation":458},"/ja-jp/privacy/","privacy statement",{"text":643,"config":644},"Cookieの設定",{"dataGaName":645,"dataGaLocation":458,"id":646,"isOneTrustButton":91},"cookie preferences","ot-sdk-btn",{"items":648},[649,651,653],{"text":633,"config":650},{"href":635,"dataGaName":636,"dataGaLocation":458},{"text":638,"config":652},{"href":640,"dataGaName":641,"dataGaLocation":458},{"text":643,"config":654},{"dataGaName":645,"dataGaLocation":458,"id":646,"isOneTrustButton":91},"content:shared:ja-jp:main-footer.yml","Main Footer","shared/ja-jp/main-footer.yml","shared/ja-jp/main-footer",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":660,"content":661,"config":662,"_id":15,"_type":16,"title":7,"_source":17,"_file":18,"_stem":19,"_extension":20},{"title":9,"description":10},{"title":12},{"template":14},[664,678,690,702,714,726,738,750,762,773],{"_path":665,"_dir":666,"_draft":6,"_partial":6,"_locale":7,"seo":667,"content":670,"config":671,"_id":674,"_type":16,"title":675,"_source":17,"_file":676,"_stem":677,"_extension":20},"/ja-jp/blog/categories/agile-planning","categories",{"title":668,"description":669},"アジャイル計画","Browse articles related to アジャイル計画 on the GitLab Blog",{"name":668},{"template":672,"slug":673,"hide":6},"BlogCategory","agile-planning","content:ja-jp:blog:categories:agile-planning.yml","Agile Planning","ja-jp/blog/categories/agile-planning.yml","ja-jp/blog/categories/agile-planning",{"_path":679,"_dir":666,"_draft":6,"_partial":6,"_locale":7,"seo":680,"content":683,"config":684,"_id":686,"_type":16,"title":687,"_source":17,"_file":688,"_stem":689,"_extension":20},"/ja-jp/blog/categories/ai-ml",{"title":681,"description":682},"AIと機械学習","Browse articles related to AIと機械学習 on the GitLab Blog",{"name":681},{"template":672,"slug":685,"hide":6},"ai-ml","content:ja-jp:blog:categories:ai-ml.yml","Ai Ml","ja-jp/blog/categories/ai-ml.yml","ja-jp/blog/categories/ai-ml",{"_path":691,"_dir":666,"_draft":6,"_partial":6,"_locale":7,"seo":692,"content":695,"config":696,"_id":698,"_type":16,"title":699,"_source":17,"_file":700,"_stem":701,"_extension":20},"/ja-jp/blog/categories/bulletin-board",{"title":693,"description":694},"掲示板","Browse articles related to 掲示板 on the GitLab Blog",{"name":693},{"template":672,"slug":697,"hide":6},"bulletin-board","content:ja-jp:blog:categories:bulletin-board.yml","Bulletin Board","ja-jp/blog/categories/bulletin-board.yml","ja-jp/blog/categories/bulletin-board",{"_path":703,"_dir":666,"_draft":6,"_partial":6,"_locale":7,"seo":704,"content":707,"config":708,"_id":710,"_type":16,"title":711,"_source":17,"_file":712,"_stem":713,"_extension":20},"/ja-jp/blog/categories/customer-stories",{"title":705,"description":706},"お客様事例","Browse articles related to お客様事例 on the GitLab Blog",{"name":705},{"template":672,"slug":709,"hide":6},"customer-stories","content:ja-jp:blog:categories:customer-stories.yml","Customer Stories","ja-jp/blog/categories/customer-stories.yml","ja-jp/blog/categories/customer-stories",{"_path":715,"_dir":666,"_draft":6,"_partial":6,"_locale":7,"seo":716,"content":719,"config":720,"_id":722,"_type":16,"title":723,"_source":17,"_file":724,"_stem":725,"_extension":20},"/ja-jp/blog/categories/devsecops",{"title":717,"description":718},"DevSecOps","Browse articles related to DevSecOps on the GitLab Blog",{"name":717},{"template":672,"slug":721,"hide":6},"devsecops","content:ja-jp:blog:categories:devsecops.yml","Devsecops","ja-jp/blog/categories/devsecops.yml","ja-jp/blog/categories/devsecops",{"_path":727,"_dir":666,"_draft":6,"_partial":6,"_locale":7,"seo":728,"content":731,"config":732,"_id":734,"_type":16,"title":735,"_source":17,"_file":736,"_stem":737,"_extension":20},"/ja-jp/blog/categories/engineering",{"title":729,"description":730},"エンジニアリング","Browse articles related to エンジニアリング on the GitLab Blog",{"name":729},{"template":672,"slug":733,"hide":6},"engineering","content:ja-jp:blog:categories:engineering.yml","Engineering","ja-jp/blog/categories/engineering.yml","ja-jp/blog/categories/engineering",{"_path":739,"_dir":666,"_draft":6,"_partial":6,"_locale":7,"seo":740,"content":743,"config":744,"_id":746,"_type":16,"title":747,"_source":17,"_file":748,"_stem":749,"_extension":20},"/ja-jp/blog/categories/news",{"title":741,"description":742},"ニュース","Browse articles related to ニュース on the GitLab Blog",{"name":741},{"template":672,"slug":745,"hide":6},"news","content:ja-jp:blog:categories:news.yml","News","ja-jp/blog/categories/news.yml","ja-jp/blog/categories/news",{"_path":751,"_dir":666,"_draft":6,"_partial":6,"_locale":7,"seo":752,"content":755,"config":756,"_id":758,"_type":16,"title":759,"_source":17,"_file":760,"_stem":761,"_extension":20},"/ja-jp/blog/categories/open-source",{"title":753,"description":754},"オープンソース","Browse articles related to オープンソース on the GitLab Blog",{"name":753},{"template":672,"slug":757,"hide":6},"open-source","content:ja-jp:blog:categories:open-source.yml","Open Source","ja-jp/blog/categories/open-source.yml","ja-jp/blog/categories/open-source",{"_path":763,"_dir":666,"_draft":6,"_partial":6,"_locale":7,"seo":764,"content":766,"config":767,"_id":769,"_type":16,"title":770,"_source":17,"_file":771,"_stem":772,"_extension":20},"/ja-jp/blog/categories/product",{"title":90,"description":765},"Browse articles related to 製品 on the GitLab Blog",{"name":90},{"template":672,"slug":768,"hide":6},"product","content:ja-jp:blog:categories:product.yml","Product","ja-jp/blog/categories/product.yml","ja-jp/blog/categories/product",{"_path":774,"_dir":666,"_draft":6,"_partial":6,"_locale":7,"seo":775,"content":777,"config":778,"_id":780,"_type":16,"title":781,"_source":17,"_file":782,"_stem":783,"_extension":20},"/ja-jp/blog/categories/security",{"title":126,"description":776},"Browse articles related to セキュリティ on the GitLab Blog",{"name":126},{"template":672,"slug":779,"hide":6},"security","content:ja-jp:blog:categories:security.yml","Security","ja-jp/blog/categories/security.yml","ja-jp/blog/categories/security",[785,829,871,885,929,967,1003,1040,1077,1114],{"category":668,"slug":673,"posts":786},[787,804,817],{"content":788,"config":801},{"title":789,"description":790,"authors":791,"heroImage":793,"date":794,"body":795,"category":673,"tags":796},"GitLabで実現するサイロのないSAFe","Scaled Agile Framework（SAFe）をDevSecOpsプラットフォームのネイティブ機能にマッピングする方法と、そこから得られるメリットについて学びましょう。",[792],"Amanda Rueda","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097569/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2811%29_2hcwWx49wQ7CHfvhhkVH6S_1750097569126.png","2025-04-08","あなたの組織がScaled Agile Framework（SAFe）を導入し、エンタープライズ規模へとスケールしようとするとき、何が起こるのか考えてみましょう。複数のチームが複雑な製品の開発に取り組んでおり、すべての作業を調整する手段が必要になります。しかし、ここでよくある問題が発生します。計画はあるツールで行い、実際の開発作業はまったく別の場所で進められているという状況です。\n\nこのような分断は、日常業務においてさまざまな問題を引き起こします。デベロッパーは複数のシステムを行き来し、プロダクトマネージャーは正確な進捗状況を把握できず、誰もが情報を手作業でほかの場所へとコピーすることに時間を浪費します。これこそがまさに、SAFeが解消しようとしている「分断された体験」の典型です。\n\nすでに開発チームがGitLabを使ってソースコード管理、CI/CD、セキュリティを行っている場合、SAFeフレームワークでの計画管理にもGitLabを活用できるのかどうか疑問に思うかもしれません。幸いなことに、GitLabのアジャイルプロジェクト管理機能はSAFeを強力にサポートしています。この記事では、GitLabがSAFeの各種概念やセレモニーとどのように対応しているのかを紹介します。しかも、すべてデベロッパーがすでに慣れ親しんでいる同じDevSecOpsプラットフォーム上で実現できます。\n\n## SAFeとは？\n\nSAFe（Scaled Agile Framework）は、アジャイルの考え方をスピードや方向性、顧客重視の姿勢を失うことなく、大規模な組織全体に広げるための手法です。少人数チームで使われる柔軟かつ反復的なアジャイルの進め方を、複数のチームやロードマップ、関係者を抱える大規模組織にも適用できるように設計されています。このフレームワークを活用することで、組織全体の方向性が揃い、計画と実行が一貫して進むようになります。プロダクトマネージャーにとっては、SAFeを導入することで、戦略と実行をしっかりつなげることができ、とにかく早くリリースするだけでなく、チームで方向性を揃え、優先順位に基づいて本当に出すべきものをリリースできるようになります。\nSAFeはサイロを減らし、チーム間のコラボレーションを促進するとともに、単なる作業の実行ではなく、「顧客が求める成果」を中心にチームをまとめます。GitLabにSAFeを統合すると、可視性、トレーサビリティ、成果のすべてが、1か所に集約され、その効果はさらに高まります。\n\n## GitLabにおけるSAFeの用語対応\n\nまず、SAFeの概念がGitLab内でどのように対応するかを確認しましょう。\n\n| SAFe | GitLab |\n| :---- | :---- |\n| Epic | トップレベルエピック |\n| Capability | サブエピック（レベル1） |\n| Feature | サブエピック（レベル2） |\n| User Story | イシュー |\n| Task | タスク |\n| Team | カスタムフィールド/範囲指定したラベル |\n| Sprint | イテレーション |\n| Program Increment (PI) | マイルストーン |\n| Value Stream | トップレベルグループ |\n| Agile Release Train (ART) | トップレベルグループ |\n\n\u003Cbr>\u003C/br>\n\nこの対応表をガイドとして活用すると、GitLabをSAFeの実装と連動させて構築できます。グループ構造を使うと、バリューストリームやART（Agile Release Train）単位で整理できます。また、最大7階層までネスト可能なエピックによる作業アイテムの階層構造により、複雑なプロダクトポートフォリオにも対応できる深さを備えています。ポートフォリオレベル（トップレベルグループ）、プログラムレベル（サブグループ）、チームレベル（プロジェクト）といった、どの階層で作業していても、GitLabの組織構造はSAFeの階層とぴったり合致します。\n\n## GitLabでのSAFeのセレモニーのサポート\n\nここからが本題です。GitLab上でSAFeのセレモニーを実際にどう実行するのか、順を追って見ていきましょう。\n\n### PIプランニング\n\nチーム間の調整と依存関係の管理を促進し、PIプランニングを成功させるために、GitLabでは以下のような機能が提供されています。\n\n* [ロードマップ](https://docs.gitlab.com/user/group/roadmap/)ビューを使用して、複数のチームや期間にわたるフィーチャーを可視化する\n* フィーチャーをPI[マイルストーン](https://docs.gitlab.com/user/project/milestones/)に割り当てる\n* 見つかったチーム間の[依存関係](https://docs.gitlab.com/user/project/issues/related_issues/#blocking-issues)を文書化し、視覚化する\n\nGitLabでは、エピックボード（チームごとの割り当てを表示するように設定可能）とロードマップビュー（ガントチャートのように時間軸でフィーチャーを表示）を使い分けることで、柔軟にPIプランニングを進めることができます。タイムラインかチーム構成のどちらに注目するかに応じて、プランニング中にビューを切り替えられます。\n\n![ロードマップビューとエピックボード](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097576746.gif)\n\n\u003Cbr>\u003C/br>\n\n![ガントチャート付きロードマップビュー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097576747.png)\n\n### リファインメント\n\nプロダクトマネージャーにとって、効果的なリファインメントを行うには、フィーチャーのバックログを明確に把握しておくことが重要です。GitLabなら、リファインメントをそのままGitLab上で実施できます。会議中に1つのツールを更新して、その後に別のツールを更新する必要はもうありません。 \n\nGitLabでは、以下の機能によってリファインメントを効率的に進められます。\n\n* 状態ごとにフィーチャーを整理できる[エピックボード](https://docs.gitlab.com/user/group/epics/epic_boards/)\n* ストーリーポイントを[概要](https://docs.gitlab.com/user/group/epics/epic_boards/#view-count-of-issues-weight-and-progress-of-an-epic)ビューで直接確認できる機能\n* 作業アイテムをその場で操作しながら、全体の文脈を見失わない包括的な[drawerビュー](https://docs.gitlab.com/user/group/epics/manage_epics/#open-epics-in-a-drawer)\n* エピックから[子イシュー](https://docs.gitlab.com/user/group/epics/manage_epics/#add-an-issue-to-an-epic)を直接作成・リンクできる機能 \n\n![SAFe - 画像3](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097576749.gif)\n\n### スプリント計画\n\n次のスプリントでチームが取り組む作業を決めるタイミングでは、GitLabの以下の機能を活用できます。\n\n* バックログを包括的に確認できる[イシューボード](https://docs.gitlab.com/user/project/issue_board/)\n* ボード上にユーザーストーリーの[合計ウェイト](https://docs.gitlab.com/user/project/issue_board/#sum-of-issue-weights)を直接表示\n* イシューを簡単にイテレーション間で移動できる機能\n* スプリント間のストーリー移動を効率化する折りたたみ可能なビュー\n\nつまり、すべてを1か所に集約して管理でき、プランニングミーティングではツールを行き来するのではなく、実際の計画に集中できます。\n\n![GitLabで行うスプリント計画](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752378662/Blog/ynmq3wnf77yk6xkehkda.gif )\n\n* GitLabを活用したスクラムの進め方については、[こちら](https://docs.gitlab.com/tutorials/scrum_events/)のチュートリアルをご覧ください。アジャイルプランニングやスプリントの進捗管理におけるGitLabの便利な機能を詳しく確認できます。*\n\n### デイリースタンドアップ\n\nデイリースタンドアップでは、チーム全員がボードを囲んで、誰が何に取り組んでいるか、どこで詰まっているか、どの作業がレビュー待ちかを、すべて単一のビューで確認できます。GitLabでは、以下の機能が開発チームのデイリースタンドアップに役立ちます。\n\n* 現在のスプリントに絞った[イテレーションスコープ付き](https://docs.gitlab.com/user/project/issue_board/#iteration-lists)のボードを作成\n* 各カード上にストーリーポイント/ウェイトを直接表示\n* コンテキストを失わずに詳細にアクセスできる[drawerビュー](https://docs.gitlab.com/user/project/issues/managing_issues/#open-issues-in-a-drawer)の活用\n* [ヘルスステータス](https://docs.gitlab.com/user/project/issues/managing_issues/#health-status)でリスクのあるタスクをハイライト表示\n\n![デイリースタンドアップのボード](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097576751.gif)\n\n### スプリントレビュー\n\nチームの進捗状況を継続的に把握したいですか？GitLabでは、以下のような包括的なメトリクスを利用できます。\n\n* イテレーションごとの[バーンダウンチャートおよびバーンアップチャート](https://docs.gitlab.com/user/group/iterations/#iteration-burndown-and-burnup-charts)\n* ベロシティのトラッキング\n* [リードタイムおよびサイクルタイム](https://docs.gitlab.com/user/group/value_stream_analytics/#lifecycle-metrics)のメトリクス\n* チーム単位でスコープ設定できるダッシュボード\n\nこれらの指標により、チームのスピードが上がっているか、どこでつまずいているか、そして次回のレトロスペクティブで話し合うべきポイントを明確に把握できます。\n\n![バーンダウンチャートとバーンアップチャート](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097576755.png)\n\n## 統合プラットフォームが強みとなる5つの理由\n\nSAFeのセレモニーを管理できる計画ツールはたくさんあります。でも、GitLabが本当に他と違うと私が感じているのには、明確な理由があります。\n\n1. **頭の切り替えが不要** - 計画、コーディング、テスト、セキュリティのすべてを、1か所で完結できます。\n2. **すべてがつながっている** - 大きなエピックからコード、デプロイまで、作業の流れをたどれます。\n3. **全員が同じ認識を持てる** - デベロッパー、プロダクト担当、セキュリティチームが、同じツール上で連携できます。\n4. **完全な可視性** - ステークホルダーは、進捗の確認を1か所で行えます。\n5. **全体像が見える** - 計画と開発のメトリクスをまとめて確認できるため、本当の状況が明確になります。\n\nもしあなたの開発チームがすでにGitLabを使いこなしているなら、プランニングのためだけに別のツールへ切り替えたり、複雑なインテグレーションを無理やり組み合わせたりする必要はありません。SAFeプランニングをGitLabに取り込むことで、チーム全体にとってはるかにスムーズな体験が得られます。\n\n## 実装の原則\n\n私は従来型のSAFeツールからGitLabへの移行に取り組むチームと協力してきましたが、その経験から学んだことがあります。それは、以前のツールをそのまま再現しようとするのではなく、**それぞれのセレモニーが何を目的としているか**に注目することが重要だということです。\n\nGitLabの利点を最大限に活用しているのは、GitLabのネイティブ機能を素直に受け入れて、それに逆らわずに活用しているチームです。もちろん、SAFeの概念をどうマッピングするか、ワークフローをどう構築するかを最初に整理するには少し手間がかかります。しかし、一度その形ができてしまえば、プロセスは複雑になるどころか、むしろシンプルになります。\n\n成功のカギは、全員が従うべき規則を定義することです。どのラベルが何を意味するのか？ チームをどう追跡するのか？エピックとイシューにはそれぞれ何を入れるのか？こうした判断を事前に少し整理しておくだけで、複数ツール間の調整にかかっていた手間を解消できる、直感的なシステムが手に入ります。\n\n## 導入を始める\n\nさて、試してみる準備はできましたか？GitLabでSAFeを導入するためのステップは以下のとおりです。\n\n1. **構造を整える** - [組織構成](https://about.gitlab.com/ja-jp/blog/best-practices-to-set-up-organizational-hierarchies-that-scale/)に合わせて、グループやサブグループを作成します。\n2. **作業の詳細を定義する** - [エピック](https://about.gitlab.com/ja-jp/blog/best-practices-to-set-up-organizational-hierarchies-that-scale/)、[イシュー](https://docs.gitlab.com/user/project/issues/managing_issues/)、[タスク](https://docs.gitlab.com/user/tasks/)をどのように使い分けるかを定義します。\n3. **イテレーションを作成する** - [スプリントのスケジュール](https://docs.gitlab.com/user/group/iterations/#create-an-iteration-cadence)を設定します。\n4. **マイルストーンを追加** - GitLab上でプログラムインクリメント（PI）を表す[マイルストーン](https://docs.gitlab.com/user/project/milestones/#create-a-milestone)を作成します。 \n5. **ボードを構築する** - セレモニーごとに異なるビューを用意します。\n6. **規則について合意する** - ラベルやカスタムフィールドの使い方を文書化し、チームで統一します。\n\nこれらのポイントを最初にしっかり考えておくことで、後々のトラブルや混乱を避けられます。そして、初日から完璧にする必要はないことを忘れないでください。運用しながら学び、必要に応じていつでも調整できます。\n\n## すべてをまとめる\n\nGitLabは、SAFeを実行するための堅実な基盤を提供します。特に、あなたの開発チームがすでにGitLabに慣れ親しんでいる場合には最適です。計画と開発を同じツール上で進めることで、煩雑なハンドオフが不要になり、コラボレーションが格段にしやすくなり、すべての動きがよりスピーディになります。\n\nGitLabのプランニングツールの魅力は、あなたのチームに合わせて柔軟にSAFeをカスタマイズできることです。 決められた型にはまる必要はありません。チームが成熟し、ニーズが変われば、それに応じて運用方法も進化させることができます。\n\n> サイロ化したプランニングにさよならして、もっと快適なワークフローを体験してみませんか？まずは[無料トライアルを開始](https://about.gitlab.com/ja-jp/free-trial/?hosted=saas)して、GitLabがどのようにSAFe導入を変革できるかを実感してください。\n\n*💡 このトピックに興味を持った方は、関連記事の[アジャイルソフトウェア開発におけるGitLabの活用法](https://about.gitlab.com/ja-jp/blog/gitlab-for-agile-software-development/)もぜひご覧ください*\n",[797,798,799,768,800],"agile","DevSecOps platform","features","tutorial",{"slug":802,"featured":91,"template":803},"safe-without-silos-in-gitlab","BlogPost",{"content":805,"config":815},{"title":806,"description":807,"authors":808,"heroImage":809,"date":810,"body":811,"category":673,"tags":812,"updatedDate":814},"アジャイルのスプリントを製品ロードマップと調和させる方法","ベストプラクティスとGitLabの機能を活用して、製品開発を進めましょう。一元化されたロードマップの作成、レビューセッションの実施、スプリントのライフサイクルの追跡など、製品開発をスムーズに進めるためのポイントを解説します。",[792],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097231/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2821%29_2pdp2MNB7SoP4MhhiI1WIa_1750097230664.png","2025-02-04","製品チームと開発チームが協力せずに、それぞれ作業している様子を想像してみてください。たとえば、製品チームが12か月分のロードマップを作成して社内に共有したものの、開発チームのレビューは受けてなかったとします。このため、開発チームは、全体の計画を把握しないまま、次のスプリントで予定されている機能の開発を始めました。その影響で、プロジェクトの並行実施、チームキャパシティの考慮、再利用可能なAPIの構築など、本来なら最適なタイミングで進められたはずの機会を逃してしまいます。最終的に、非効率的になり、価値の提供も遅れてしまいます。\n短期的な成功と長期的なビジョンのバランスを取るのは簡単ではありません。明確なコミュニケーション、優先事項の調整、そして適切なツールが必要です。このガイドでは、アジャイルのスプリントを戦略的ロードマップと調和させる方法、よくある課題への取り組み方、チームに合わせた実践的なアプローチをご紹介します。\n\n## 信頼できる唯一の情報源の重要性\n\n長期的目標を含むロードマップに関する、信頼できる一貫した唯一の情報源があれば、チームは常に最新の全体像にアクセスできます。具体的には、ロードマップの情報をひとつのプラットフォームに集約し、定期的に更新することを意味します。逆に、一元化されていない、つまり微妙に差があるロードマップを複数管理する場合、方向性の理解にずれが生じてしまいます。\n\n### 一元化されたロードマップを作成する\n\n一元化されたロードマップを作成することで、次のことが可能になります。\n\n* 長期的な戦略を伝える\n* 伝達ミスを最小限に抑える\n* 部門間の足並みが揃いやすくなる\n* 背景を把握しながら、変化に素早く対応する\n* 情報を自分で取得でき、情報を保持する単一の窓口への依存度を減らす\n\n***GitLabに関するヒント**：[エピック](https://docs.gitlab.com/ee/user/group/epics/)と[ロードマップ表示](https://docs.gitlab.com/ee/user/group/roadmap/)を使用すれば、製品計画と進捗の透明性を確保できます。ロードマップ表示を使用すると、進捗の追跡やボトルネックの特定に加え、全体的な目標とスプリントレベルでの実施内容を確実に一致させることができます。* \n\n![グループのロードマップ表示](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097239/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097239117.png)\n\n## ロードマップの共同レビューの実施\n\n[プロダクトトリオ](https://www.producttalk.org/product-trio/)（製品チーム、エンジニアリングチーム、ユーザーエクスペリエンスチーム）は連携し、定期的なロードマップのレビューと合意を得る仕組みを作りましょう。共同レビューを行うことで、チーム間の認識が揃い、リスクの早期発見と対処につながります。GitLabのプロダクトマネージャーは、エンジニアリングマネージャー、UXデザイナーと毎月ミーティングを行い、変更内容をレビューしてもらった上で、承認を得ています。Wikiに承認の記録を残しておくことで、スケジュールへの責任を明確にし、社内の他のメンバーに対してオープンに情報を提供しています。\n\n#### レビューセッションの効果を高める方法\n\nレビューの場を有意義なものにするには、以下のベストプラクティスを意識しましょう。\n\n* ロードマップの変更頻度に応じて、月ごとまたは四半期ごとの定期的なレビューを設定する。\n\n* 潜在的なリスクや依存関係をあらかじめ議論することで、製品目標、UXのリードタイム、技術的実現可能性の間の整合性を検証する。\n\n  * ロードマップに組織のビジネス目標が反映されているかどうかを検証する。\n  * 設計のタイムラインが現実的であり、技術的な調査や検証の必要性が考慮されていることを確認する。\n\n* チームのキャパシティの制約を考慮し、作業順序をチームのスキルプロファイルに合うよう工夫して、チームの生産性を最適化する：\nこれには、休暇期間中のスタッフ減少といった状況を見越して計画を立てながら、チームの能力の活用不足やスキルのミスマッチを避けることも含まれます。\n\n* スコープを正しく設定し、何が達成できるかについて適切な期待値を設定する：\n「全部やりたい」という気持ちを抑え、何を優先すべきかを明確にし、段階的に価値を提供するよう心がけることが大切です。タスク間の依存関係を減らしたり、再利用可能なコンポーネントを活用するなど、イテレーションの改善や開発速度を上げる方法を特定して、最適化できる機会を模索します。\n\n* トレードオフや優先順位についてオープンに話し合い、多角的な視点を取り入れる：\nこのような協調的なアプローチを取ることで課題に対して新しい視点や発想を取り入れた解決策が見つかり、今後の方向性について合意を得やすくなります。\n\n***GitLabに関するヒント**：[GitLab Wiki](https://docs.gitlab.com/ee/user/project/wiki/)を活用して[ロードマップ](https://docs.gitlab.com/ee/user/group/roadmap/)機能を補完しましょう。Wikiには、ビジネス上の根拠、ユーザー調査へのリンク、RICEスコア、依存関係やリスクに関する詳細など、製品ロードマップに関する幅広いコンテキストを記載できます。アクセスしやすいようにロードマップへの直リンクを記載し、今後のディスカッションスレッド機能を活用して、非同期コラボレーションを促進し、チームからのフィードバックを得られるようにしましょう。*\n\n![PlanFlow製品のロードマップ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097239/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097239118.png)\n\n## 継続的な方向性の検証と進捗測定\n\n製品ロードマップを作成する目的は、予定どおりに進めることだけでなく、顧客に真の価値を提供することです。ユーザーからの継続的なフィードバックや行動データを共有する機会を設けるために、スプリントのサイクルとは別に、定期的にプロダクトトリオの三者で集まる場を設けることを検討してください。このようなセッションでは、インサイトの確認やトレンドの分析、そしてユーザーの変化し続けるニーズが製品ロードマップに反映されていることを確認します。実際のユーザーから得たインサイトに基づき、ロードマップを更新することで、単に予定していた機能をリリースするだけでなく、顧客にとって本当に重要な価値を提供できます。\n顧客にとっての価値は、使いやすさの向上、技術的負債の削減、またはまったく新しい機能の提供など、さまざまです。プロダクトトリオがロードマップのビジョンで一致していれば、達成しようと目指している成果に関しても足並みが揃っている状態だと言えます。\n成果の達成に向け順調かどうかを測定するには、想定する成果がどのようなものであるかを明確に定義する必要があります。後からユーザーストーリーを追加するといったスコープクリープ（スコープの拡大）は、価値の提供を遅らせてしまう恐れがあります。さらに、ロードマップに沿っていない作業があれば、価値を提供した後であっても特定し、なぜそうなったのか理由を把握することも重要です。\n\n### スプリント計画\n\n製品ロードマップとの整合性を保つには、まずは綿密なスプリント計画を立てる必要があります。ここでは、チームが作業を順調に進め、価値の提供に重点的に取り組むために役立つベストプラクティスをいくつかご紹介します。\n\n- デリバリーに対して確信を持てるように、求める成果を明確に定義し、範囲を絞り込んで設定する。\n- デリバリーを遅らせる可能性のある遅めの段階での追加や調整を特定し、継続して注力できるようにバッファを設ける。\n- チームと作業順序を調整し、キャパシティやスキルプロファイルを最適化し、依存関係を減らす。\n- 集中力を維持し、納期遵守の確実性を高めるために、チームのキャパシティが一杯になるような計画はしないようにする。スプリント中に発生する可能性のある未知の問題や新たな発見に備えて、バッファ（10%～20%）を設けておきましょう。\n\n### スプリント期間中\n\nスプリント期間中にロードマップとの整合性を保ち続けるには、集中力とコミュニケーションに加え、継続的な評価が必要です。価値の提供が目標である一方で、進行中の作業が、事前に決めて計画した成果に沿っているかどうかを確認することも同様に重要です。\n\n- 進行中の作業をロードマップで定めた成果と照らし合わせて継続的に検証し、各スプリントが全体像に寄与しているかを確認する。\n- 想定している目標や成果に向けて引き続き取り組んでいるかどうか、定期的に確認するようチームに促す。\n- スプリントを通じてオープンなコミュニケーションを保つ：デイリースタンドアップミーティングや非同期なアップデートを用いて、リスクや予定外の作業、依存関係を早い段階で明らかにし、必要に応じて調整します。\n- 何が何でもスプリントに沿って行動する：新たに生じた問題を解決したいという衝動に駆られるのは当然ですが、事前に合意した優先順位を見失うことのないように、計画していなかった作業は慎重に見極める必要があります。\n- スコープクリープを主体的に管理する：スプリントの途中で新たな作業が出てきた場合、それが現在のロードマップで定めた注力対象にあっているかを確認しましょう。たとえ魅力的なアイデアや機能であっても、。直近の価値提供という観点では優先度が低いかもしれません。このような内容は文書化し、今後のイテレーションに含めるか、あとで検討する項目として整理しましょう。現在のスプリントで取り組むものとした優先事項を後回しにするのは避けるべきです。\n\n### スプリントレトロスペクティブ（ふりかえり）\n\nスプリントレトロスペクティブでは、チームが目指す成果にどれだけ近づけたかを「ふりかえる」時間を取りましょう。以下の質問を投げかけることをおすすめします。\n\n- スプリント期間中に、予定外の作業によって価値の提供が遅れたことはなかったか？その原因は何だったか？どのように対応すればよかったか？\n- ロードマップとずれた作業がなかったか。その背景や経緯は？今後にどう活かせるか？そこから学んだことを話し合いましょう。\n\nスプリント計画からスプリントレトロスペクティブまで、ユーザーと関係者に具体的な成果をもたらすことチームの重要な役割です。各ステップで足並みを揃えることで、ロードマップが価値を効率的かつ継続的に提供する道標になります。\n\n***GitLabに関するヒント**：[バーンダウンチャート](https://docs.gitlab.com/ee/user/project/milestones/burndown_and_burnup_charts.html)を使用すると、進捗状況が可視化され、早い段階でロードマップからの逸脱が検知できるため、チームが成果の達成に集中しやすくなります。*\n\n![バーンダウンチャート](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097239/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097239120.png)\n\n## ロードマップで定めた成果を確実に実現する\n\nアジャイルのスプリントと戦略的なロードマップを結びつけるには、意図的な取り組み、チームの賛同、そして適切なツールが必要です。信頼できる唯一の情報源としてロードマップを作成し、共同レビューを実施し、進捗状況を測定することで、ビジョンに沿った行動を取ることができます。GitLabの強力な計画機能を活用することで、チームは課題をイノベーションと成長の機会へと変えることができます。\n\n早速、戦略的ロードマップに合わせてスプリントを進めてみませんか？[GitLabの無料トライアルを開始](https://about.gitlab.com/ja-jp/free-trial/)して、確実に成果を実現するために役立つツールを試してみましょう。\n\n## 関連リンク\n\n* [アジャイルプランニングのコンテンツハブ](https://about.gitlab.com/ja-jp/blog/categories/agile-planning/)  \n* [アジャイルプランニングチームに特化したGitLabの新しい「プランナーロール」のご紹介](https://about.gitlab.com/ja-jp/blog/introducing-gitlabs-new-planner-role-for-agile-planning-teams/)」（日本語）  \n* [効果的なナレッジマネジメントの実施に役立つGitLab Wikiのご紹介](https://about.gitlab.com/blog/get-to-know-the-gitlab-wiki-for-effective-knowledge-management/)（英語）\n\n\u003Cbr>\u003Cbr>\n\n*監修：佐々木 直晴 [@naosasaki](https://gitlab.com/naosasaki) （GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト）*",[797,800,813,798],"workflow","2025-06-04",{"slug":816,"featured":91,"template":803},"how-to-harmonize-agile-sprints-with-product-roadmaps",{"content":818,"config":827},{"title":819,"description":820,"authors":821,"heroImage":822,"date":823,"body":824,"category":673,"tags":825,"updatedDate":826},"アジャイルプランニングチームに特化したGitLabの新しい「プランナー」ロールのご紹介","GitLabの新しい「プランナー」ロールを活用して、SaaS、GitLab Dedicated、Self-Managedといった各ソリューションでのアクセス権を最適化し、アジャイルチームの計画ワークフローを効率的に管理する方法についてご説明します。",[792],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662488/Blog/Hero%20Images/blog-image-template-1800x945__3_.png","2024-11-25","GitLabは、DevSecOpsプラットフォームに新たなロール「プランナー」を導入しました。以前リリースされた[カスタムロール機能と同様に](https://docs.gitlab.com/ee/user/custom_roles.html)、「役割に応じた柔軟なアクセス制御を実現する」というGitLabの戦略に基づいて開発されました。このロールは、ソフトウェア開発チームや計画に携わるユーザーに対し、過剰な権限を付与することなく、アジャイル開発のワークフローを管理するために必要なツールへのアクセス権を提供します。これにより、過剰な権限付与によるセキュリティリスクの増加を防止できます。プランナーロールを活用してユーザーごとの特定のニーズに合わせてアクセスを調整することで、チームは生産性を維持しつつ、セキュリティとコンプライアンスを確保し、[最小権限の原則](https://about.gitlab.com/blog/the-ultimate-guide-to-least-privilege-access-with-gitlab/)を遵守できます。\n\n## プランナーロールが開発された理由\n\nこの新しいロールの開発は、お客様や社内チームからのフィードバックをきっかけに始まりました。GitLabはアジャイル開発サイクルを計画および管理するための包括的なツールを提供していますが、役割に基づくより具体的なアクセス制御が必要だという声が度々寄せられていました。プロダクトマネージャーやプロジェクトリード、その他の計画業務を担当する役割は、計画機能へのアクセスは必要ですが、開発全体の権限は必要ありません。実際、必要以上のアクセス権は、セキュリティリスクだけでなく、コードや重要な設定に意図しない変更を加える可能性も高めるため、好ましくありません。このようなフィードバックを受け、GitLabは対応を進めました。\n\nユーザーへの聞き取り、競合分析、そして徹底的な調査を通じて、新しいロールの必要性が明確になりました。計画ツールへの十分なアクセスを提供しつつ、デベロッパー向けの機能へのアクセスを制限することでセキュリティを確保するロールが求められていました。\n\n## プランナーロールの特徴\n\nプランナーロールは、既存の[ゲストロールとレポーターロール](https://docs.gitlab.com/ee/user/permissions.html#roles)を組み合わせたハイブリッドロールであり、計画ワークフローへのアクセスが必要なユーザー向けに特化して設計されています。\n\nこのロールを使用すると、以下のことを行えます。\n\n* 主要な計画ツール（エピック、ロードマップ、イシューボード、[OKR](https://docs.gitlab.com/ee/user/okrs.html)など）へのアクセスを許可する（*一部の機能はGitLab PremiumまたはGitLab Ultimateのライセンスが必要です*）\n* 機密性の高い開発関連の機能への不要なアクセスを制限することで、セキュリティを強化する\n* プランナーロールをGitLab Enterprise Agile Planningアドオンと併用することで、チームに計画ツールへのカスタマイズされたアクセスを提供しつつ、セキュリティと制御を維持する（*プランナーロール単体はすべてのライセンスプランで利用可能です*）\n\nプランナーロールは、SaaS、GitLab Dedicated、Self-Managedを含むすべてのGitLabソリューションで利用可能となっており、すべてのお客様がこのカスタマイズされたアクセス制御のメリットを活用できます。\n\nこのロールを使用することで、チームは職務に応じて権限を柔軟に調整でき、アクセス性とセキュリティのバランスを確保できます。\n\n## アジャイル手法の実践を後押しするプランナーロールの役割\n\n[アジャイルソフトウェア開発](https://about.gitlab.com/ja-jp/blog/categories/agile-planning/)において、各チームメンバーにそれぞれの役割に即したツールと権限を与えることは、ワークフローを効率化する上で非常に重要です。プランナーロールは、計画チームのメンバーが開発やデプロイといった領域に踏み込み過ぎるリスクを排除しつつ、ソフトウェア開発ライフサイクルの計画段階に適切に参加できるようにすることで、アジャイル開発をサポートします。\n\nプランナーロールは、エピックの作成・管理からロードマップの定義まで、アジャイルチームが連携を保ちながら効率的に業務を進めるために必要なツールを提供します。\n\n## お客様中心の設計\nこのロールは、GitLabが単独で作り上げたものではありません。プロセスのすべての段階でコミュニティの意見を取り入れてきました。具体的には、アンケート調査、インタビュー、テストを通じて、プロダクトマネージャーやプロジェクトマネージャーの実務上のニーズに合致するよう、権限を細かく調整しました。\n\nまた、このロールには「エンタープライズアジャイルチーム向けのプラットフォームを提供する」というGitLabの長年の使命が反映されており、企業がアジャイル開発手法を大規模に導入する上で必要な柔軟性と制御性を提供します。\n\n## コミュニティのフィードバックとエンゲージメント\n\nGitLabでは、皆様からのご意見を大変重視しており、新しいプランナーロールに関するご感想をぜひお聞かせいただきたいと考えています。皆様からのフィードバックは、GitLabの利用体験の改良・改善に欠かせません。ご意見やご提案がありましたら、ぜひ[フィードバック用イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/503817)からお寄せください。\n\n## 今すぐGitLabで計画を始めましょう！\n\nGitLabは、ソフトウェア開発チームの効果的な計画、コラボレーション、デリバリーをさまざまなアプローチを通じて支援しており、プランナーロールはそのうちの一つにすぎません。GitLabは、製品管理ワークフローの効率化、チームコラボレーションの強化、アジャイル手法の整備など、あらゆる目的の達成を支援する充実したツールを取り揃えています。\n\n> GitLabのすべての機能をお試しになりたい場合は、ぜひ[GitLab Ultimateの無料トライアルにご登録](https://about.gitlab.com/ja-jp/free-trial/)ください。チーム独自のニーズに合わせてカスタマイズされたプランナーロールを活用して、次のプロジェクトの計画を始めましょう。\n\n## その他の記事\n- [開発チームだけでなく、あらゆる職務に対応可能なGitLab Enterprise Agile Planningアドオン（英語）](https://about.gitlab.com/blog/gitlab-enterprise-agile-planning-add-on-for-all-roles/)\n- [GitLabをアジャイルソフトウェア開発で使用する方法](https://about.gitlab.com/ja-jp/blog/gitlab-for-agile-software-development/)\n- [初公開：新しくなったGitLabのアジャイル計画（英語）](https://about.gitlab.com/blog/first-look-the-new-agile-planning-experience-in-gitlab/)\n\n\u003Cbr>\n\u003Cbr>\n\n*監修：ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n",[797,798,799,768],"2025-05-01",{"slug":828,"featured":91,"template":803},"introducing-gitlabs-new-planner-role-for-agile-planning-teams",{"category":681,"slug":685,"posts":830},[831,845,858],{"content":832,"config":843},{"heroImage":833,"body":834,"authors":835,"updatedDate":837,"date":838,"title":839,"tags":840,"description":842,"category":685},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758541195/kig7sww6jyvxzmkmimbv.png","デベロッパーならご存知のとおり、現代の開発はコードを書くだけではありません。ソフトウェア開発ライフサイクル全体にわたって変更を管理することが求められます。\n\n[GitLab 18.3](https://about.gitlab.com/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/)では、真の人間とAIのコラボレーションの基盤を築きました。Claude Code、Codex CLI、Amazon Q CLI、Gemini CLIなどの主要なAIツールをGitLabにネイティブ統合として導入し、Cursorとの提携によるGitLab Model Context Protocol（[MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)）サーバーの初回プレビューを提供しました。また、「イシューからMRフロー」と「Jenkinsフロー向けのConvert CIファイル」という2つの新しいフローを提供し、チームが日常的な問題に取り組めるようにしました。\n\n[GitLab 18.4](https://about.gitlab.com/ja-jp/blog/gitlab-18-04-release/)では、カスタムエージェントの構築と共有機能の拡張、Agentic Chatによる効果的なコラボレーション、Knowledge Graphを使用したコードベースのナビゲーション、パイプライン修正フローによるパイプラインの継続的な正常稼働をサポートしつつ、AI使用に対するセキュリティとガバナンスも強化しています。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1120293274?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"18.4 Release video placeholder\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n> GitLab 18.4リリースの最新機能についてのご質問がある方は、[Developer Showにご参加ください](https://www.linkedin.com/events/q-a-code-exploringgitlab18-4and7373772262312906753/theater/)。LinkedInでライブ配信を9月23日午前10時（太平洋時間）に行います。見逃した方は、その後すぐにオンデマンドでご覧いただけます！\n\n## エクスペリエンスを構築する\n\n*まずはAI Catalogから始めましょう。優先順位を明確にし、ルーティン作業を自動化し、構築に集中できるようにする専門エージェントのライブラリです。*\n\n### 専門エージェントライブラリとしてのAI Catalog（試験版）\n\nGitLab 18.4では、GitLab Duo AI Catalogを導入します。これは、組織全体でカスタム構築されたエージェントを作成、共有、コラボレーションできる中央ライブラリです。すべてのチームには「独自のやり方」があります。カスタムエージェントの作成は、組織における「正しいやり方」を他のエンジニアに教えるようなものです。\n\n例えば、カスタム製品計画エージェントは、ラベリング標準に従って特定の形式でバグを報告できます。テクニカルライターエージェントは、規約に従って簡潔なドキュメントを作成できます。セキュリティエージェントは、すべてのMRでセキュリティとコンプライアンスの基準が満たされていることを確認できます。これらのエージェントは、切り離されたツールとして機能するのではなく、GitLab内の自然な作業の流れの一部となり、確立されたプロセスを妨げることなくタスクの加速をサポートします。\n\n**注意：** この機能は現在GitLab.comでのみ試験版として利用可能です。Self-Managedのお客様への提供は、来月の18.5リリースで予定しています。\n\n## フローに集中する\n\n*GitLab Duo Agentic Chatにより、エージェントとのシームレスなコラボレーションが可能になります。*\n\n### エージェントとのコラボレーションを効率化するよりスマートなAgentic Chat（ベータ版）\n\nGitLab Duo Agent Platformの中心となる[Agentic Chat](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/)は、AIエージェントとのシームレスなコラボレーションを実現します。GitLab 18.4でのAgentic Chatの最新アップデートは、チャット体験を向上させ、セッションの管理方法と表示方法を拡張しました。\n\n* **カスタムエージェントとのチャット**\n\n  まずは新しく作成したカスタムエージェントから始めましょう。設計が完了したら、Agentic Chatを通じてすぐにそのエージェントを活用できます。例えば、新しいエージェントに「タスクのリストを教えて」と尋ねれば、その日の優先事項から取り掛かることができます。さらに、新しいエージェントとの新しい会話を開始したり、コンテキストを失うことなく以前のエージェントとの会話を再開できる機能の追加されました。\n* **[ユーザーモデル選択](https://docs.gitlab.com/user/gitlab_duo/model_selection/#select-a-model-to-use-in-gitlab-duo-agentic-chat)**\n\n  以前のリリースでは、ネームスペースレベルでモデルを選択できましたが、18.4では特定のチャットセッションに対してユーザーレベルでモデルを選択できるようになりました。これにより、どのLLMがそのタスクに適しているかを決定したり、異なるLLMを試して、タスクに最適な回答を提供するものを確認したりできます。\n* **フォーマットとビジュアルデザインの改善**\n\n  GitLab Duo Agentic Chatの新しいビジュアルデザインを気に入っていただけることを願っています。ツール呼び出しの承認処理も改善され、より快適なエクスペリエンスを提供します。\n* **Agentic Chatを通じて利用可能なエージェントセッション**\n\n  セッション機能が、Agentic Chatの中心的な機能として強化されました。エージェントが実行する処理やワークフローは、すべてAgentic Chatのセッション概要画面で確認できます。各セッション内では、ジョブログ、ユーザー情報、ツールのメタデータなどの詳細情報が表示され、エージェントが人間の代わりにどのような作業をどのように進めているのかを明確に把握できます。\n\n  **注意：** Agentic Chatのセッション機能は、現在GitLab.comでのみ利用可能です。Self-Managedのお客様への提供は、来月の18.5アップデートで予定しています。\n\n## コードベースの力を解き放つ\n\n*エージェントにとって、コンテキストこそが鍵です。Knowledge Graphを使用すると、エージェントにより多くのコンテキストを提供できるため、より速く推論し、より良い結果が得られます。*\n\n### GitLab Knowledge Graphのご紹介（ベータ版）\n\n18.4の[GitLab Knowledge Graph](https://gitlab-org.gitlab.io/rust/knowledge-graph/)は、デベロッパーとエージェントが複雑なコードベースを理解し、ナビゲートする方法を変革します。Knowledge Graphは、プロジェクト全体の接続されたマップを提供し、ソフトウェア開発ライフサイクル全体でファイル、ルート、参照をリンクします。定義へ移動、コードベース検索、チャット内クエリによる参照追跡などのツールを活用することで、デベロッパーは「すべてのルートファイルを表示」や「この変更が他に与える影響は？」といった的確な質問をできるようになります。\n\nこのより深いコンテキストにより、チームはより速く、より自信を持って作業を進められます。新しいコントリビューターのオンボーディング、プロジェクト全体での詳細な調査の実施、変更が依存コードに与える影響の調査など、すべてが効率化されます。GitLabのエコシステムが多いほど、Knowledge Graphはより強力になり、人間とAIエージェントの両方に、正確性、スピード、プロジェクト全体の認識を持って構築するための基盤を提供します。今後のリリースでは、プラン、MR、セキュリティ脆弱性など、すべてのGitLabデータをKnowledge Graphに統合していく予定です。今回のKnowledge Graphリリースはローカルコードのインデックス作成に焦点を当てており、gkg CLIがコードベースをRAG用のライブで埋め込み可能なグラフデータベースに変換します。シンプルなワンラインスクリプトでインストールし、ローカルリポジトリを解析し、MCPを介して接続してワークスペースにクエリを実行できます。Knowledge Graphプロジェクの展望は2つあります：デベロッパーが今すぐローカルで実行できる活気あるコミュニティエディションの構築と、それがGitLab.comおよびSelf-Managedインスタンスに完全統合されるKnowledge Graphサービスの基盤となることです。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1121017374?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"18.4 Knowledge Graph Demo\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## パイプラインメンテナンスを自動化する\n\n*パイプライン修正フローでパイプラインの失敗をより速く修正し、作業に集中できます。*\n\n### ビジネスを考慮したパイプライン修正フロー\n\nパイプラインを正常に保つことはベロシティの維持にとって重要ですが、従来のアプローチはビジネスへの影響を考慮せずに技術的なトラブルシューティングのみに焦点を当てています。**パイプライン修正フロー**は、技術的分析と戦略的コンテキストを組み合わせることで、この課題に対処します。例えば、顧客向けサービスのデプロイパイプラインの失敗の修正を、夜間のテストジョブよりも自動的に優先したり、実験的な機能ブランチとは異なる方法で優先度の高いリリースブランチのビルド問題にフラグを立てたりできます。\n\n* **ビジネス認識型の障害検出**は、さまざまなワークフローやデプロイターゲットの重要性を理解しながら、パイプラインの実行を監視します。\n* **コンテキストに基づく根本原因分析**は、ビジネス要件、最近の変更、プロジェクト間の依存関係と共に障害ログを分析し、根本的な原因を特定します。\n* **戦略的な修正の優先順位付け**は、ビジネスへの影響、期限、リソース割り当ての優先順位を考慮しながら適切な修正を生成します。\n* **ワークフロー統合型の解決**は、適切なレビュープロセスを維持しながら修正を含むマージリクエストを自動的に作成し、優先順位決定のためのビジネスコンテキストを提供します。\n\nこのフローは、戦略的な整合性を保ちながらパイプラインを正常に保ち、自動修正が単に技術的な問題を解決するだけでなく、ビジネス目標をサポートできるようにします。\n\n## AI環境をカスタマイズする\n\n*自動化は、背後にあるモデルを信頼できる場合にのみ機能します。そのため、18.4では、モデル選択やGitLab管理キーなどのガバナンス機能を提供しています。*\n\n### 機能パフォーマンスを最適化するGitLab Duoモデル選択\n\n[モデル選択](https://docs.gitlab.com/user/gitlab_duo/model_selection/)が一般提供開始となり、GitLab Duoを支える大規模言語モデル（[LLM](https://about.gitlab.com/blog/what-is-a-large-language-model-llm/)）を直接制御できるようになりました。選択したモデルを、組織全体に適用したり、機能ごとにカスタマイズすることもできます。ガバナンス、コンプライアンス、セキュリティ要件を考慮しながら、ネームスペースやツール全体で一貫性を確保できるようにするデフォルト設定が可能です。\n\nGitLab Duo Self-Hostedを使用しているお客様には、新たに追加されたGPT OSSとGPT-5のサポートにより、AIを活用した開発ワークフローに柔軟性がさらに加わります。\n\n**注意：** GitLab Duo Self-HostedはGitLab.comのお客様はご利用できません。また、GPTモデルはGitLab.comではサポートされていません。\n\n## 機密コンテキストを保護する\n\n*ガバナンスとともに、データ保護も提供され、AIがアクセスできる情報・できない情報を細かく制御できます。*\n\n### 詳細なデータ保護のためのGitLab Duoのコンテキスト除外機能\n\nAIエージェントがアクセスできる情報を細かく制御する必要があることは言うまでもありません。18.4の**GitLab Duoのコンテキスト除外機能**は、特定のファイルまたはファイルパスをAIアクセスから除外できるプロジェクトレベルの設定を提供します。機能には以下が含まれます：\n\n* **ファイル固有の除外**により、パスワード設定、シークレット、独自のアルゴリズムなどの機密ファイルを保護できます。\n* **パスベースのルール**により、ディレクトリ構造やファイル命名規則に基づいて除外パターンを作成できます。\n* **柔軟な設定**により、開発ワークフローの効率を維持しながら、プロジェクトレベルで除外を適用できます。\n* **監査の可視性**により、除外されたコンテンツを追跡し、データガバナンスポリシーへの準拠をサポートします。\n\nGitLab Duoのコンテキスト除外機能は、エージェント型AIで開発を加速しながら、機密データを保護します。\n\n## 新しいMCPツールでAI機能を拡張する\n\n*拡張されたMCPツールにより、GitLab環境をより広範なインテリジェントエージェントのエコシステムと接続し、その機能をさらに拡張します。*\n\n### GitLab MCPサーバーの新ツール\n\n[18.3](https://about.gitlab.com/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/)で導入された初期のMCPサーバーを拡張して、GitLab 18.4では、MCPツール（MCPクライアントがGitLabとやり取りする方法を定義する機能）を追加しています。これらの新しいツールは統合の可能性を拡張し、ファーストパーティとサードパーティの両方のAIエージェントが、既存のセキュリティと権限モデルを遵守しながら、プロジェクトデータへのアクセス、コード操作の実行、リポジトリ全体での検索など、より豊富なタスクを実行できるようにします。18.4の新機能を含むMCPツールの完全なリストは、[MCPサーバードキュメント](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/)をご覧ください。\n\n## インテリジェントなソフトウェア開発の未来を体験する\n\n[GitLab Duo Agent Platform](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)により、エンジニアは単一スレッドで一度に1つのイシューに取り組む作業から、チームメイトのように機能する非同期エージェントとのマルチスレッドコラボレーションに移行し、より速く作業を完了できるようになります。私たちは、お客様の独立性と選択への要望に応えるユニークなビジョンを市場に提供しています。お好みのクラウド環境で、最適なLLMとAIツールを使用して実行し、設定したセキュリティとコンプライアンスのガードレール内で作業できます。\n\nこのイノベーションの重要な部分として、GitLab 18.4は単なるソフトウェアアップグレード以上のものであると言えるでしょう。デベロッパーの日常体験をよりスムーズで、スマートで、安全なものにすることを目的としています。再利用可能なエージェントからビジネス認識型のパイプライン修正まで、すべての機能はチームがスピード、セキュリティ、制御のバランスを保ちながら作業に集中できるように設計されています。これらの機能が実際にどのように機能するかの詳細については、デモ動画をご覧ください。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1120288083?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"A day in the life with GitLab Duo Agent Platform\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n\u003Cp>\u003C/p>\n\nGitLab PremiumおよびUltimateをご利用中のお客様は、[GitLab.com](https://GitLab.com)とSelf-Managed環境で、これらの機能を今すぐご利用いただけます。[GitLab Dedicated](https://about.gitlab.com/dedicated/)のお客様への提供は来月を予定しています。\n\n> **GitLab Duo Agent Platformのベータ版と試験的機能を今すぐ有効にして**、フルコンテキストAIがチームのソフトウェア構築方法をどのように変革できるかをぜひ体験してください。GitLabが初めての方は、[無料トライアルを開始できます。](https://about.gitlab.com/ja-jp/free-trial/devsecops/)　開発の未来がなぜAIを活用し、安全で、世界で最も包括的なDevSecOpsプラットフォームを通じてオーケストレーションされるのかを体験してください。\n\n## GitLabを最新の状態に保つ\n\n最新の機能、セキュリティアップデート、パフォーマンス改善を確実に受け取るために、GitLabインスタンスを最新の状態に保つことをお勧めします。アップグレードの計画や完了に役立つ以下のリソースをご確認ください：\n\n* [アップグレードパスツール](https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/) – 現在のバージョンを入力して、インスタンスの正確なアップグレード手順を確認\n* [アップグレードドキュメント](https://docs.gitlab.com/update/upgrade_paths/) – サポートされている各バージョンの詳細なガイド（要件、ステップバイステップの手順、ベストプラクティスを含む）\n\n定期的にアップグレードすることで、チームが最新のGitLab機能を活用し、安全でサポートされた状態を維持できます。\n\n手間をかけたくない組織には、[GitLabのマネージドメンテナンスサービス](https://content.gitlab.com/viewer/d1fe944dddb06394e6187f0028f010ad#1)をご検討ください。マネージドメンテナンスにより、GitLabの専門スタッフがSelf-Managedインスタンスを確実にアップグレードし、安全に保ち、DevSecOpsをリードする準備を整えている間、チームはイノベーションに集中できます。詳細については、担当営業にお問い合わせください。\n\n*このブログ投稿には、1933年証券法第27A条（改正後）および1934年証券取引所法第21E条の意味における「将来予想に関する記述」が含まれています。これらの記述に反映されている期待が合理的であると考えていますが、実際の結果または成果が大きく異なる可能性がある既知および未知のリスク、不確実性、仮定、その他の要因の影響を受けます。これらのリスクやその他の要因に関する詳細は、SECへの提出書類の「リスク要因」というタイトルの下に含まれています。法律で義務付けられている場合を除き、このブログ投稿の日付以降、これらの記述を更新または改訂する義務を負いません。*",[836],"Bill Staples","2025-09-24","2025-09-23","GitLab 18.4: 自動化と分析を活用したAIネイティブ開発",[841,768,799,798],"AI/ML","カスタムエージェントの作成、Knowledge Graphのコンテキスト活用、パイプラインの自動修復機能などが導入されました。",{"featured":91,"template":803,"slug":844},"gitlab-18-4-ai-native-development-with-automation-and-insight",{"content":846,"config":856},{"heroImage":847,"body":848,"authors":849,"updatedDate":851,"date":852,"title":853,"tags":854,"description":855,"category":685},"blog/hero%20images/workflow_1800x945.png","dbtモデルの手動作成は、データエンジニアにとって何時間も取られる単調な作業です。特に大きなビジネス変換がない場合、エンジニアのデータ業務の中でも最もやりがいを感じにくい部分と言えるでしょう。\n\n\nしかし、このプロセス全体を自動化できるとしたらどうでしょうか？本ブログでは、[GitLab Duo Agent Platform](https://about.gitlab.com/gitlab-duo/agent-platform/)を使用して、適切な構造、テスト、ドキュメントを含む包括的なdbtモデルをわずか数分で生成する方法を詳しく解説します。\n\n\n## 何を構築するのか\n\n\nマーケティングチームは、広告投資を効果的に管理・最適化したいと考えています。広告プラットフォームの一つがRedditであるため、Reddit Ads APIからエンタープライズ[データプラットフォーム](https://handbook.gitlab.com/handbook/enterprise-data/platform/)Snowflakeにデータを抽出しています。GitLabでは、3つのストレージレイヤーがあります：\n\n\n1. `raw`レイヤー - 外部ソースからの未処理データの最初の着陸地点。ビジネス用途に準備されていない\n\n2. `prep`レイヤー - ソースモデルを含む最初の変換レイヤー。まだ一般的なビジネス用途には準備されていない\n\n3. `prod`レイヤー - ビジネス用途とTableauレポート用に準備された最終変換データ\n\n\n![ストレージレイヤーのチャート](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/zo7vespktzfdtdtiauz7.png)\n\n\nこの実践ガイドでは、データは既に抽出ツールFivetranによってrawレイヤーに配置されており、`prep`レイヤーから`prod`レイヤーまでデータを処理するdbtモデルを生成します。\n\n\n一行のdbtコードを自分で書くことなく、このガイドを最後まで進めると以下が完成します：\n\n\n* prepレイヤーの**ソースモデル**\n\n* prodレイヤーの**ワークスペースモデル**\n\n* Reddit Adsデータセットのすべての13テーブル（112列を含む）の**完全なdbt構成**\n\n* 結果を検証する**テストクエリ**\n\n\nプロセス全体は10分以内で完了します。手動では通常数時間かかる作業です。以下の手順に従ってください：\n\n\n## 1. データ構造の準備\n\n\nGitLab Duoがモデルを生成する前に、完全なテーブル構造を理解する必要があります。そこで重要になるのが、Snowflakeの情報スキーマに対してクエリを実行することです。現在、GitLab DuoをModel Context Protocol（[MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)）経由でSnowflakeインスタンスに接続する方法を検討中です：\n\n\n```sql\n\nSELECT \n    table_name,\n    column_name,\n    data_type,\n    is_nullable,\n    CASE \n        WHEN is_nullable = 'NO' THEN 'PRIMARY_KEY'\n        ELSE NULL \n    END as key_type\nFROM raw.information_schema.columns\n\n\nWHERE table_schema = 'REDDIT_ADS'\n\n\nORDER BY table_name, ordinal_position;\n\n```\n\n\nこのクエリは以下を取得します：\n\n\n* すべてのテーブル名と列名\n\n* 適切なモデル構造のためのデータ型\n\n* NULL制約\n\n* 主キーの識別（このデータセットでは非NULL列）\n\n\n**ポイント：** Reddit Adsデータセットでは、すべての非NULL列が主キーとして機能するパターンになっています。実際に`ad_group`などのテーブルを確認したところ、このテーブルには2つの非NULL列（`account_id`と`id`）があり、両方とも主キーとしてマークされています。このクエリを実行すると112行のメタデータが返されたため、それらをCSVファイルとしてエクスポートしてモデル生成に使用しました。この手動ステップは現在は問題なく機能していますが、MCPを介してデータプラットフォームとGitLab Duoの直接統合を調査して、このプロセスの完全自動化を目指して取り組んでいます。\n\n\n## 2. GitLab Duoのセットアップ\n\n\n[GitLab Duo](https://docs.gitlab.com/user/get_started/getting_started_gitlab_duo/)と対話する方法は2つあります：\n\n\n1. **Web UIチャット機能**\n\n2. **Visual Studio Codeプラグイン**\n\n\ndbtモデルをローカルで実行してテストできるため、VS Codeプラグインを選択しました。\n\n\n## 3. 「効果的な」プロンプトの入力\n\n\nすべてのdbtコードを生成するために使用した実際のプロンプトは以下の通りです：\n\n\n```yaml\n\nCreate dbt models for all the tables in the file structure.csv.（structure.csvファイル内のすべてのテーブルに対してdbtモデルを作成してください）\n\n\n\nI want to have the source models created, with a filter that dedupes the data based on the primary key. Create these in a new folder reddit_ads.（主キーに基づいてデータの重複を除去するフィルターを使用してソースモデルを作成したいです。これらを新しいフォルダーreddit_adsに作成してください。）\n\n\nI want to have workspace models created and store these in the workspace_marketing schema.（ワークスペースモデルを作成し、これらをworkspace_marketingスキーマに保存してください。）\n\n\n\nTake this MR as example: [I've referenced to previous source implementation]. Here is the same done for Source A, but now it needs to be done for Reddit Ads. \n\n\n（このMRを例として参考にしてください： [以前のソース実装を参照]。これはSource Aで実施した内容ですが、同様の処理をReddit Adsに対して行う必要があります。）\n\n\n\nPlease check the dbt style guide when creating the code: https://handbook.gitlab.com/handbook/enterprise-data/platform/dbt-guide/（コードを作成する際は、dbtスタイルガイドをチェックしてください）\n\n```\n\n\nこのプロンプトが効果的だった理由：\n\n\n* ソースモデルとワークスペースモデル両方の**明確な仕様**\n\n* 以前の類似マージリクエストからの**参考例**\n\n* コードの品質と一貫性を確保するための**スタイルガイド参照**\n\n* 適切な構成管理のための**特定のスキーマ指定**\n\n\n## 4. GitLab Duoのプロセス\n\n\nプロンプトを送信した後、GitLab Duoが作業を開始しました。生成プロセス全体は数分かかり、その間にGitLab Duoは以下を行いました：\n\n\n1. CSV入力ファイルを**読み取り分析**\n\n2. メタデータから**テーブル構造を調査**\n\n3. コーディング標準について**dbtスタイルガイドを参照**\n\n4. 適切な構造化のために**類似のマージリクエストを考慮**\n\n5. すべての13テーブルの**ソースモデルを生成**\n\n6. すべての13テーブルの**ワークスペースモデルを作成**\n\n7. **dbtサポートファイルを生成**：\n\n   * `sources.yml`構成\n   * テストとドキュメントを含む`schema.yml`ファイル\n   * スキーマ参照で`dbt_project.yml`を更新\n\n## 結果\n\n\n出力は素晴らしいものでした：\n\n\n* **変更ファイル1個：** dbt_project.yml（reddit_adsスキーマ構成を追加）\n\n* **新しいファイル29個：**\n\n  * **dbtモデル26個**（ソース13個 + ワークスペース13個）\n  * **YAMLファイル3個**\n* **900行近くのコード**が自動生成\n\n* 主キー列の一意制約を含む**組み込みデータテスト**\n\n* すべてのモデルと列の**汎用説明**\n\n* ソースモデルの**適切な重複除去ロジック**\n\n* GitLab dbtスタイルガイドに従った**クリーンで一貫したコード構造**\n\n\n```yaml\n\ntransform/snowflake-dbt/\n\n\n├── dbt_project.yml                                                    [MODIFIED]（変更）\n\n\n└── models/\n    ├── sources/\n    │   └── reddit_ads/\n    │       ├── reddit_ads_ad_group_source.sql                        [NEW]（新規）\n    │       ├── reddit_ads_ad_source.sql                              [NEW]\n    │       ├── reddit_ads_business_account_source.sql                [NEW]\n    │       ├── reddit_ads_campaign_source.sql                        [NEW]\n    │       ├── reddit_ads_custom_audience_history_source.sql         [NEW]\n    │       ├── reddit_ads_geolocation_source.sql                     [NEW]\n    │       ├── reddit_ads_interest_source.sql                        [NEW]\n    │       ├── reddit_ads_targeting_community_source.sql             [NEW]\n    │       ├── reddit_ads_targeting_custom_audience_source.sql       [NEW]\n    │       ├── reddit_ads_targeting_device_source.sql                [NEW]\n    │       ├── reddit_ads_targeting_geolocation_source.sql           [NEW]\n    │       ├── reddit_ads_targeting_interest_source.sql              [NEW]\n    │       ├── reddit_ads_time_zone_source.sql                       [NEW]\n    │       ├── schema.yml                                            [NEW]\n    │       └── sources.yml                                           [NEW]\n    └── workspaces/\n        └── workspace_marketing/\n            └── reddit_ads/\n                ├── schema.yml                                        [NEW]\n                ├── wk_reddit_ads_ad.sql                              [NEW]\n                ├── wk_reddit_ads_ad_group.sql                        [NEW]\n                ├── wk_reddit_ads_business_account.sql                [NEW]\n                ├── wk_reddit_ads_campaign.sql                        [NEW]\n                ├── wk_reddit_ads_custom_audience_history.sql         [NEW]\n                ├── wk_reddit_ads_geolocation.sql                     [NEW]\n                ├── wk_reddit_ads_interest.sql                        [NEW]\n                ├── wk_reddit_ads_targeting_community.sql             [NEW]\n                ├── wk_reddit_ads_targeting_custom_audience.sql       [NEW]\n                ├── wk_reddit_ads_targeting_device.sql                [NEW]\n                ├── wk_reddit_ads_targeting_geolocation.sql           [NEW]\n                ├── wk_reddit_ads_targeting_interest.sql              [NEW]\n                └── wk_reddit_ads_time_zone.sql                       [NEW]\n```\n\n\n### 生成されたコードのサンプル\n\n\n生成されたコード品質の例をご紹介します。`time_zone`テーブルについて、GitLab Duoは以下を作成しました：\n\n\n**Prepレイヤーソースモデル**\n\n\n```sql\n\nWITH source AS (\n  SELECT *\n  FROM {{ source('reddit_ads','time_zone') }}\n  QUALIFY ROW_NUMBER() OVER (PARTITION BY id ORDER BY _fivetran_synced DESC) = 1\n),\n\n\n\nrenamed AS (\n  SELECT\n    id::VARCHAR                               AS time_zone_id,\n    code::VARCHAR                             AS time_zone_code,\n    dst_offset::NUMBER                        AS time_zone_dst_offset,\n    is_dst_active::BOOLEAN                    AS is_time_zone_dst_active,\n    name::VARCHAR                             AS time_zone_name,\n    offset::NUMBER                            AS time_zone_offset,\n    _fivetran_synced::TIMESTAMP               AS fivetran_synced_at\n  FROM source\n)\n\n\n\nSELECT * FROM renamed\n\n```\n\n\n**Schema.yml**\n\n\n```yaml\n\nmodels:\n  - name: reddit_ads_time_zone_source\n    description: Time zone data from Reddit Ads system（Reddit Adsシステムからのタイムゾーンデータ）\n    columns:\n      - name: time_zone_id\n        description: Time zone data from Reddit Ads system（タイムゾーンレコードの一意識別子）\n        data_tests:\n          - unique\n          - not_null\n      - name: time_zone_code\n        description: Code for the time zone（タイムゾーンのコード）\n      - name: time_zone_dst_offset\n        description: Daylight saving time offset for the time zone（タイムゾーンの夏時間オフセット）\n      - name: is_time_zone_dst_active\n        description: Flag indicating if daylight saving time is active（夏時間がアクティブかどうかを示すフラグ）\n      - name: time_zone_name\n        description: Name of the time zone（タイムゾーンの名前）\n      - name: time_zone_offset\n        description: Offset for the time zone（タイムゾーンのオフセット）\n      - name: fivetran_synced_at\n        description: Timestamp when the record was last synced by Fivetran（レコードがFivetranによって最後に同期されたタイムスタンプ）\n```\n\n\n**Source.yml**\n\n\n```yaml\n\nsources:\n  - name: reddit_ads\n    database: RAW\n    schema: reddit_ads\n    loaded_at_field: _fivetran_synced\n    loader: fivetran\n    description: Reddit Ads data\n\n    quoting:\n      database: true\n      schema: false\n      identifier: false\n\n    tables:\n      - name: time_zone\n```\n\n\n**ワークスペースモデル**\n\n\n```sql\n\nWITH source AS (\n  SELECT *\n  FROM {{ ref('reddit_ads_time_zone_source') }}\n)\n\n\n\nSELECT * FROM source\n\n```\n\n\n## 5. 品質検証\n\n\nコードに問題がないことを確認し、MRにプッシュして[CIテストパイプライン](https://handbook.gitlab.com/handbook/enterprise-data/platform/ci-jobs/#build_changes)を実行し、コードのテストと結果検証を行いました。GitLab Duoに検証クエリの作成を依頼しました：\n\n\n```yaml\n\nCreate a test query to test the row counts between the raw layer and the workspace layer. Keep in mind that we do deduplication, so we can compare both using distinct on the primary keys.（rawレイヤーとworkspaceレイヤー間の行数をテストするクエリを作成してください。重複除去を実施しているため、主キーに対してdistinctを使用して比較できます。）\n\n```\n\n\nAIが生成した包括的な検証クエリには、以下が含まれています：\n\n\n* rawレイヤーとワークスペースレイヤー間の行数を比較\n\n* 重複除去ロジックに対応\n\n* 全13テーブルをテスト\n\n* データ保持率を算出\n\n\n\u003Cdetails>\n\n\n\u003Csummary>生成されたSQLテストクエリ\u003C/summary>\n\n\n```sql\n\n-- Reddit Ads Row Count Validation Test（Reddit Ads行数検証テスト）\n\n\n-- Compares distinct counts between RAW layer and WORKSPACE_MARKETING layer（RAWレイヤーとWORKSPACE_MARKETINGレイヤー間の一意カウントを比較）\n\n\n-- Accounts for deduplication logic in source models（ソースモデルの重複除去ロジックを考慮）\n\n\n\nWITH raw_counts AS (\n  -- Single primary key tables（単一主キーテーブル）\n  SELECT 'ad' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.AD\n  \n  UNION ALL\n  \n  SELECT 'business_account' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.BUSINESS_ACCOUNT\n  \n  UNION ALL\n  \n  SELECT 'campaign' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.CAMPAIGN\n  \n  UNION ALL\n  \n  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.CUSTOM_AUDIENCE_HISTORY\n  \n  UNION ALL\n  \n  SELECT 'geolocation' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'interest' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.INTEREST\n  \n  UNION ALL\n  \n  SELECT 'time_zone' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.TIME_ZONE\n  \n  -- Composite primary key tables（複合主キーテーブル）\n  UNION ALL\n  \n  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(account_id, '|', id)) AS raw_count\n  FROM RAW.REDDIT_ADS.AD_GROUP\n  \n  UNION ALL\n  \n  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', community_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_COMMUNITY\n  \n  UNION ALL\n  \n  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', custom_audience_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_CUSTOM_AUDIENCE\n  \n  UNION ALL\n  \n  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT _fivetran_id) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_DEVICE\n  \n  UNION ALL\n  \n  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', geolocation_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', interest_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_INTEREST\n),\n\n\n\nworkspace_counts AS (\n  -- Workspace layer counts using primary keys from schema.yml（schema.ymlの主キーを使用したワークスペースレイヤーカウント）\n  SELECT 'ad' AS table_name, COUNT(DISTINCT ad_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD\n  \n  UNION ALL\n  \n  SELECT 'business_account' AS table_name, COUNT(DISTINCT business_account_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_BUSINESS_ACCOUNT\n  \n  UNION ALL\n  \n  SELECT 'campaign' AS table_name, COUNT(DISTINCT campaign_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CAMPAIGN\n  \n  UNION ALL\n  \n  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT custom_audience_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CUSTOM_AUDIENCE_HISTORY\n  \n  UNION ALL\n  \n  SELECT 'geolocation' AS table_name, COUNT(DISTINCT geolocation_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'interest' AS table_name, COUNT(DISTINCT interest_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_INTEREST\n  \n  UNION ALL\n  \n  SELECT 'time_zone' AS table_name, COUNT(DISTINCT time_zone_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TIME_ZONE\n  \n  -- Composite primary key tables（複合主キーテーブル）\n  UNION ALL\n  \n  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(ad_group_account_id, '|', ad_group_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD_GROUP\n  \n  UNION ALL\n  \n  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(targeting_community_ad_group_id, '|', targeting_community_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_COMMUNITY\n  \n  UNION ALL\n  \n  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(targeting_custom_audience_ad_group_id, '|', targeting_custom_audience_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_CUSTOM_AUDIENCE\n  \n  UNION ALL\n  \n  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT targeting_device_fivetran_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_DEVICE\n  \n  UNION ALL\n  \n  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(targeting_geolocation_ad_group_id, '|', targeting_geolocation_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(targeting_interest_ad_group_id, '|', targeting_interest_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_INTEREST\n)\n\n\n\n-- Final comparison with validation results（検証結果との最終比較）\n\n\nSELECT \n  r.table_name,\n  r.raw_count,\n  w.workspace_count,\n  r.raw_count - w.workspace_count AS count_difference,\n  CASE \n    WHEN r.raw_count = w.workspace_count THEN '✅ PASS（成功）'\n    WHEN r.raw_count > w.workspace_count THEN '⚠️ RAW > WORKSPACE (Expected due to deduplication 重複除去のため正常)'\n    ELSE '❌ FAIL（失敗） - WORKSPACE > RAW (Unexpected 異常)'\n  END AS validation_status,\n  ROUND((w.workspace_count::FLOAT / r.raw_count::FLOAT) * 100, 2) AS data_retention_percentage\nFROM raw_counts r\n\n\nJOIN workspace_counts w ON r.table_name = w.table_name\n\n\nORDER BY r.table_name;\n\n```\n\n\n\u003C/details>\n\n\n![クエリ結果テーブル](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/guicjhzwvrz3czwjs3xo.png)\n\n\nこのクエリを実行した結果：\n\n\n* 重複除去後の行数に**差異なし**\n\n* 全テーブルで**100%のデータ保持**\n\n* **すべてのテスト**が正常に完了\n\n\n## 結論：大幅な時間短縮\n\n\n* **従来のアプローチ：** 手動コーディング、テスト、デバッグで6-8時間\n\n* **GitLab Duoを活用：** 生成 + レビュー時間で6-8分\n\n\n開発効率が60倍に向上（6-8時間から6-8分へ）し、高品質なコードを確保できます。\n\n\n## 成功のためのベストプラクティス\n\n\n本事例から得られた主要な推奨事項：\n\n\n### メタデータの準備\n\n\n* データ型や制約を含む完全なテーブル構造を抽出する\n\n* 主キーと関係を事前に特定する\n\n* クリーンで適切にフォーマットされたCSV入力ファイルをエクスポートする\n\n\n**注：** GitLab DuoをMCP経由で（メタ）データに接続することで、この手動ステップを省略できる可能性があります。\n\n\n### 明確なコンテキストの提供\n\n\n* 可能な限り既存のMR例を参照例として示す\n\n* コーディング標準とスタイルガイドを明示する\n\n* フォルダー構造と命名規則について明確に指定する\n\n\n### 徹底的な検証\n\n\n* データ整合性を確認する検証クエリを必ず作成する\n\n* マージ前にローカルでテストする\n\n* CI/CDパイプラインを実行して問題を検出する\n\n\n### AIを活用したフォローアップ作業\n\n\n* テストクエリを自動生成する\n\n* ドキュメントテンプレートを作成する\n\n* 検証スクリプトを構築する\n\n\n## 今後の展開\n\n\n本ガイドでは、GitLab DuoをはじめとするAI搭載開発ツールがデータエンジニアリングワークフローをいかに変革しているかを示しました。テスト、ドキュメント、適切な構造を含む数百行の本番対応コードを数分で生成できる能力は、反復的な開発タスクへのアプローチの根本的な転換を表しています。\n\n\nAIにdbtモデル作成の反復作業を委ねることで、データエンジニアはデータモデリング戦略、パフォーマンス最適化、ビジネスロジック実装などといった、より価値の高い業務に専念できます。\n\n\n**ぜひお試しください** 小さなデータセットから着手し、メタデータを慎重に準備することで、GitLab Duoが何時間の作業をわずか数分の自動生成に変える様子を実感できます。\n\n\n> [GitLab Duo Agent Platformを今すぐお試しください。](https://about.gitlab.com/gitlab-duo/agent-platform/)\n\n\n## さらに読む\n\n\n* [GitLab 18.3: ソフトウェアエンジニアリングにおけるAIオーケストレーションの拡張](https://about.gitlab.com/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/)\n\n* [GitLab Duo Agent Platform ベータ版：次世代AIオーケストレーション](https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-public-beta/)\n",[850],"Dennis van Rooijen","2025-09-30","2025-09-16","GitLab Duo Agent PlatformがDataOpsを変革する方法",[768,800,799],"本ブログでは、dbtモデル作成方法を詳しく解説し、何時間もかかっていた手動コーディングを、わずか数分の自動生成に変える方法をご紹介します。",{"slug":857,"featured":91,"template":803},"how-gitlab-duo-agent-platform-transforms-dataops",{"content":859,"config":869},{"heroImage":860,"body":861,"authors":862,"updatedDate":864,"date":865,"title":866,"tags":867,"description":868,"category":685},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662465/Blog/Hero%20Images/GitLab_Duo_Workflow_Unified_Data_Store__1_.png","[GitLab Duo Agent Platform](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)（現在ベータ版で提供中）は、AIエージェントがイシューやマージリクエストなどのGitLabリソースとやり取りできるフレームワークを提供し、コンセプトから完成まで複雑な多段階タスク実行を可能にします。Agent Platformは、コード生成、モダナイゼーション、セキュリティ脆弱性の修正、プロジェクト分析を支援する対話型（[エージェント型チャット](https://about.gitlab.com/ja-jp/blog/gitlab-duo-chat-gets-agentic-ai-makeover/)）と自動化型（[エージェントフロー](https://about.gitlab.com/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/)）のエクスペリエンスを提供します。これらはすべてエンタープライズレベルのセキュリティとカスタマイズ可能な制御機能も備えています。\n\n「イシューからMR」は、適切にスコープが定義されたイシューを、ドラフトのマージリクエスト（MR）に変換するプロセスを効率化するエージェントフローです。このフローはイシューの説明と要件を分析し、イシューにリンクされたドラフトMRを開き、開発計画を作成し、実装案を提案します。これらすべてがGitLab UIから直接実行できます。\n\n## デベロッパーが直面する課題\n\nUIレイアウトの調整、コンポーネントのサイズ変更、ワークフローの微調整といった製品の小さな改善に、何時間もの設定作業は必要ないはずです。しかし、デベロッパーはこのようなイライラするサイクルに陥りがちです。適切なファイルを見つけるためにコードベースを探し回り、ブランチを作成し、複数のコンポーネントに散在する変更をまとめ、複雑なレビュープロセスを経る必要があります。そして、これらはすべて、ソリューションが実際に機能するかどうかを確認できる前の作業です。開発のオーバーヘッドにより、本来であれば素早い反復作業であるべきものが時間のかかるタスクに変わり、フィードバックループが遅くなり、シンプルな製品の改善が大掛かりな取り組みのように感じられてしまいます。\n\n## 「イシューからMRフロー」を使ってアプリケーションの更新を加速する方法\n\n「イシューからMRフロー」を使用する前に、以下の前提条件を満たす必要があります。\n\n前提条件：\n\n* 明確な要件と受け入れ基準が記載された既存のイシュー。これにより、達成しようとしていることをGitLab Duo Agent Platformがよく理解し、出力の品質を向上させることができます。\n* プロジェクトのソースコードを編集するフローのため、Developer以上の権限を持つプロジェクトアクセス。\n* グループまたはプロジェクトでGitLab Duo Agent Platformが有効になっており、「フロー」が許可されていること。これには、プロジェクトの**設定 > 一般 > GitLab Duo > フローの実行の許可**トグルを有効にしてください。GitLabは適切なガードレールの提供に取り組んでおり、エージェント型AI機能では機密性の高いプロジェクトを保護し、GitLab Duo Agent Platformがアクセスしてほしいプロジェクトのみを許可するため、これらのトグルを有効にする必要があります。\n\n上記のすべての前提条件を満たしたら、以下の手順に従ってイシューからMRフローを活用できます：\n\n1. GitLab Duo Agent Platformに実行してもらいたいことを説明するプロジェクトイシューを作成します。イシューの説明にできるだけ詳細を記載してください。イシューがすでに存在する場合は、**計画 > イシュー**に移動し、更新したい内容を説明しているイシューをクリックして開きます。イシューのスコープは明確かつ具体的に設定してください。\n\n2. イシューヘッダーの下にある**Duoでマージリクエストを生成**をクリックしてフローを開始します。\n\n3. イシューの実装に取り組むエージェントの進行状況を追跡したい場合は、**自動化 > エージェントセッション**に移動して、エージェントが計画を立てて、変更を提案している様子をライブセッションログで確認できます。\n\n4. パイプラインが完了すると、イシューのアクティビティにMRへのリンクが表示されます。これを開いて、サマリーとファイルレベルの変更を確認してください。\n\n5. GitLab Duo Agent Platformが提案した更新をローカルで検証したい場合は、ラップトップにブランチをプルし、アプリをビルド・実行し、更新が期待通りに動作することを確認できます。必要に応じてMRで編集を行い、通常のレビューを進めてください。\n\n6. 提案されたアプリケーションの更新にすべて満足したら、MRをメインブランチにマージします。\n\n## 「イシューからMRフロー」がアプリケーションの変更に効果的な理由\n\n「イシューからMRフロー」はコード変更を提案し、MRを直接更新するため、ファイルを探す時間が短縮され、結果の評価とレビューのみに集中できます。さらに、MRは自動的に元のイシューにリンクされ、レビュアーや関係者にとってコンテキストが明確に保たれます。また、エージェントセッションをモニタリングすることで、各ステップで何が起こっているかを把握できます。\n\n## GitLab Duo Agent Platformのメリット\n\nGitLab Duo Agent Platformは、**完全なプロジェクトコンテキスト**を提供する[エージェント型オーケストレーションレイヤー](https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-public-beta/)で、プランニングからコーディング、ビルド、セキュリティ、デプロイ、監視まで含むため、エージェントは単なるコード編集だけでなく、ソフトウェア開発ライフサイクル（SDLC）全体をサポートできます。\n\n* 統合データモデル：GitLab DuoエージェントはGitLabの統合されたSDLCデータ上で動作し、コーディング以外のタスクを含めて、より質の高い意思決定とコラボレーションを可能にします。\n\n* セキュリティとコンプライアンスがビルトイン：GitLab Duoエージェントはエンタープライズのガードレール内で実行され、高度に規制された環境やオフライン/エアギャップ環境でも使用できます。\n\n* 相互運用性と拡張性：ベンダーやツール間でフローをオーケストレートします。[MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)/A2A経由で外部データを接続し、より豊富なコンテキストを提供します。\n\n* コラボレーションのスケール：GitLab DuoエージェントはGitLab UIとIDEで動作し、複数の人間と複数のエージェント間のコラボレーションを可能にします。\n\n* 検索可能かつ共有可能：一元化されたAIカタログでエージェントとフローを検索・共有できます。\n\n## 今すぐ「イシューからMRフロー」を試してみましょう\n\nアプリケーションの更新、例えばUI調整のような小規模な作業では、「イシューからMRフロー」によって、明確に定義されたイシューからレビュー可能なMRまでを素早く作成できます。進行状況を監視でき、標準のワークフローで変更内容を検証・マージできます。チームはコンテキストを保ちつつ、引き継ぎ作業を削減できるので、単純作業ではなく品質に注力できるようになります。\n\nイシューからMRフローの動作を実際にご覧ください：\n\n\u003C!-- blank line -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/BrrMHN4gXF4?si=J7beTgWOLxvS4hOw\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n> [GitLab UltimateとDuo Enterpriseの無料トライアル](https://about.gitlab.com/ja-jp/free-trial/)で今すぐGitLab Duo Agent PlatformのイシューからMRフローを試してみましょう。\n\n\n",[863],"Cesar Saavedra","2025-09-05","2025-09-03","GitLab Duo Agent Platform：イシューからMRフロー",[841,768,799,800],"デベロッパーが数分でアイデアを実際のコードに変換。最新のエージェントフローでアプリケーションを素早く更新する方法をご紹介します。",{"featured":91,"template":803,"slug":870},"vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow",{"category":693,"slug":697,"posts":872},[873],{"content":874,"config":883},{"title":875,"description":876,"authors":877,"heroImage":822,"date":879,"body":880,"category":697,"tags":881,"updatedDate":882},"今すぐ対策を：Docker Hubのレート制限がGitLab CI/CDに与える影響","Docker Hubの新しいプルレート制限がGitLabのパイプラインにどのような影響を与えるか、また、その影響によってCI/CDパイプラインが中断されるのを防ぐ対策を解説します。",[878],"Tim Rizzi","2025-03-24","2025年4月1日より、DockerはDocker\nHubに新たな[プルレート制限](https://docs.docker.com/docker-hub/usage/)を導入します。これは、GitLabで稼働しているものを含め、業界全体のCI/CDパイプラインに大きな影響を及ぼす可能性があります。最も大きな変更点は、未認証ユーザーに対して1時間あたり10回までというプル制限が設けられることです。\n\n\n## 変更点\n\n\n4月1日から、Dockerは以下のプルレート制限を適用します。\n\n\n| ユーザータイプ | 1時間あたりのプルレート制限 | パブリックリポジトリ数 | プライベートリポジトリ数 |\n|-----------|--------------------------|-------------------------------|--------------------------------|\n| Business、Team、Pro（認証済） | 無制限（フェアユース） | 無制限 | 無制限 |\n| Personal（認証済） | 100 | 無制限 | 最大1つ |\n| 未認証ユーザー | IPv4アドレスまたはIPv6/64サブネットごとに1時間あたり10回 | 該当なし | 該当なし |\n\n\n\u003Cp>\u003C/p>\n\nこの変更が重要な理由は以下のとおりです。\n\n\n* GitLabの依存プロキシは現在、未認証ユーザーとしてDocker Hubからプルしています。\n\n* 依存プロキシを使用していないほとんどのCI/CDパイプラインは、未認証ユーザーとしてDocker Hubから直接プルしています。\n\n* GitLab.comのホステッドランナーでは、複数のユーザーが同じIPアドレスやサブネットを共有することがあり、全体がこの制限の対象になります。\n\n\n## GitLabユーザーへの影響\n\n\n**Docker Hubからの直接プルに関する影響**\n\n\nCI/CDパイプラインがDocker\nHubから認証なしで直接イメージをプルしている場合、IPアドレスごとに1時間あたり10回の制限が適用されます。頻繁に実行されるパイプラインや、同じランナーインフラを共有している複数プロジェクトでは、この制限にすぐに達してしまい、パイプラインの失敗が発生する可能性があります。\n\n\n**GitLab依存プロキシへの影響**\n\n\nGitLabの依存プロキシ機能は、DockerイメージをGitLab内にキャッシュすることでパイプラインの高速化や外部依存関係の削減を実現します。ただし、現在の実装では未認証ユーザーとしてDocker\nHubからプルしているため、これも1時間あたり10回という制限の対象になります。\n\n\n**ホステッドランナーへの影響**\n\n\nGitLab.comのホステッドランナーでは、[Google\nCloudのプルスルーキャッシュ](https://cloud.google.com/artifact-registry/docs/pull-cached-dockerhub-images?hl=ja)を使用しています。これにより、よく使われるイメージがミラーされ、レート制限を回避できます。`.gitlab-ci.yml`ファイル内で`image:`または`services:`として定義されたジョブイメージは、レート制限の影響を受けません。\n\n\n一方で、ランナー環境内でイメージをプルするケースではやや複雑になります。ランナー実行中にイメージをプルする最も一般的なユースケースは、Docker-in-DockerやKanikoを使ってイメージをビルドする場合です。このシナリオでは、`Dockerfile`で指定されたDocker\nHubのイメージが直接プルされるため、レート制限の影響を受ける可能性があります。\n\n\n## GitLabの対応\n\n\nこの問題を緩和するため、GitLabでは以下の対応を進めています。\n\n\n* **依存プロキシの認証：**\nGitLabの[依存プロキシ機能](https://gitlab.com/gitlab-org/gitlab/-/issues/331741)にDocker\nHubの認証のサポートを追加しました。これにより、依存プロキシは認証済みユーザーとしてDocker\nHubからイメージをプルできるようになり、レート制限が大幅に緩和されます。\n\n* **ドキュメントの更新：** Docker\nHubのパイプライン認証の設定に関する明確なガイダンスを提供するために、[ドキュメント](https://docs.gitlab.com/user/packages/dependency_proxy/#configure-credentials)を更新しました。\n\n* **内部インフラの整備：** GitLab.comのホステッドランナーへの影響を最小限にするため、内部インフラを整備中です。\n\n\n## ユーザー側でできる対策\n\n\n**オプション1：パイプラインでDocker Hub認証を設定する**\n\n\nDocker\nHubから直接プルしているパイプラインでは、認証を設定することでレート制限を1時間あたり100回（または有料プランなら無制限）まで増やせます。\n\n\nDocker\nHubの認証情報をプロジェクトまたはグループのCI/CD変数に追加してください（`.gitlab-ci.yml`には追加しないでください）。`DOCKER_AUTH_CONFIG`\nCI/CD変数の正しい設定方法については、[Dockerイメージの使用に関するドキュメント](https://docs.gitlab.com/ci/docker/using_docker_images/#use-statically-defined-credentials)を参照してください。\n\n\n**オプション2：GitLabのコンテナレジストリを使用する**\n\n\n頻繁に使用するDockerイメージを[GitLabのコンテナレジストリ](https://docs.gitlab.com/user/packages/container_registry/)にプッシュすることで、CI/CDの実行中にDocker\nHubからプルする必要がなくなります。\n\n\n1. Docker Hubからイメージをプルします\n\n2. GitLabコンテナレジストリにタグ付けします\n\n3. GitLabコンテナレジストリにプッシュします\n\n4. パイプラインをGitLabコンテナレジストリからプルするよう更新します\n\n\n```\n\ndocker pull busybox:latest\n\ndocker tag busybox:latest $CI_REGISTRY_IMAGE/busybox:latest\n\ndocker push $CI_REGISTRY_IMAGE/busybox:latest\n\n```\n\n\nそれから、`.gitlab-ci.yml`で以下のように記述します。\n\n\n`image: $CI_REGISTRY_IMAGE/busybox:latest`\n\n\n**オプション3：GitLabの依存プロキシを使用する**\n\n\nGitLabの依存プロキシ機能を使うことで、Dockerイメージをキャッシュしてプロキシ経由で取得できるため、外部依存関係を減らし、レート制限の問題を軽減できます。\n\n\n現在の認証オプションは以下のとおりです。\n\n* GitLab 17.10：[GraphQL\nAPI](https://docs.gitlab.com/user/packages/dependency_proxy/#configure-credentials-using-the-graphql-api)を使って、依存プロキシ用のDocker\nHub認証を設定\n\n* GitLab 17.11：グループ設定に新しく追加されたUIベースの設定を使用（GitLab.comでは既に利用可能）\n\n\n認証が正しく設定されると、以下の操作が可能になります。\n\n\n1. グループの依存プロキシ設定でDocker Hubの認証情報を設定する\n  - GitLab 17.11以降（またはGitLab.com）：グループ設定 > パッケージとレジストリ > 依存プロキシで設定\n  - GitLab 17.10：GraphQL APIで認証を設定\n2. CI/CD設定で依存プロキシURLを使用するよう、パイプラインを更新する\u003Cbr>\n\n`image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/busybox:latest`\n\n\n**オプション4：Docker Hubの有料プランを検討する**\n\n\nDocker\nHubの利用が多い組織の場合は、プル回数が無制限の有料Dockerサブスクリプション（TeamまたはBusiness）へのアップグレードが最も簡単な解決策となる場合があります。\n\n\n## Docker Hubのレート制限による影響を減らすベストプラクティス\n\n\nどのオプションを選ぶ場合でも、Docker Hubのレート制限の影響を最小限に抑えるために、以下のベストプラクティスを参考にしてください。\n\n\n* `latest`タグではなく、特定のバージョンタグを使用して不要なプルを避ける\n\n* Dockerファイルを統合し、同じベースイメージを複数のプロジェクトで使い回す\n\n* あまり重要でないパイプラインは、ピーク時間を避けて実行するようスケジュールする\n\n* キャッシュを有効活用し、同じイメージを繰り返しプルするのを避ける\n\n\n**注：** Docker\nHubの[ドキュメント](https://docs.docker.com/docker-hub/usage/pulls/#pull-definition)によると、プル回数はイメージのサイズやレイヤー数ではなく、manifestを取得した時点で1回とカウントされます。\n\n\n## スケジュールと今後の流れ\n\n\n**現在**\n  * Docker Hubからの直接プルに認証を実装します\n* GitLab.comユーザーは以下のいずれかで依存プロキシ認証を設定できます\n    * GraphQL API\n    * グループ設定のUI\n  * Self-ManagedのGitLab 17.10ユーザーはGraphQL APIを使用して依存プロキシ認証を設定できます\n\n**2025年4月1日**\n  * Docker Hubのレート制限が始まります\n\n**2025年4月17日**\n  * Self-Managedインスタンス向けの依存プロキシ認証機能をUIに追加したGitLab 17.11がリリースされます\n\nパイプラインの予期せぬ失敗を回避するために、可能な限り速やかに対応することをおすすめします。多くのユーザーにとっては、Docker\nHub認証を使用して依存プロキシを設定することが最も効率的な長期的解決策となります。\n\n\n>\nご質問がある場合や、実装に関してサポートが必要な場合は、[こちらのイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/526605)をご覧ください。GitLabのチームによる対応が確認できます。\n\n\n\u003Cbr>\u003Cbr>\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)\n\n（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*\n",[109,745,798],"2025-03-31",{"slug":884,"featured":91,"template":803},"prepare-now-docker-hub-rate-limits-will-impact-gitlab-ci-cd",{"category":705,"slug":709,"posts":886},[887,903,915],{"content":888,"config":901},{"title":889,"description":890,"authors":891,"heroImage":893,"date":894,"body":895,"category":709,"tags":896,"updatedDate":900},"共同開発プログラム：ユーザーとともに築くGitLab","Thales社、Scania社、Kitware社などの組織がどのようにGitLabのエンジニアと連携し、コミュニティ全体に利益をもたらす重要な機能の開発にコントリビュートしているかをご紹介します。",[892],"Fatima Sarah Khalid","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659756/Blog/Hero%20Images/REFERENCE_-_display_preview_for_blog_images.png","2025-01-30","過去一年間で、800人以上のコミュニティメンバーによって、GitLabに3,000以上のコントリビュートが寄せられました。コントリビューターにはThales社やScania社などの世界的な企業のチームメンバーも含まれており、GitLabの[共同開発プログラム](https://about.gitlab.com/community/co-create/)を通じてGitLabの未来を共に築いています。このプログラムでは、GitLabユーザーがGitLabのエンジニアと直接協力し、プラットフォームに価値ある機能を提供しています。\n\nワークショップやペアプログラミング、継続的なサポートを通じて、プログラム参加者はGitLabのアーキテクチャやコードベースに触れながら、機能改善や問題解決に取り組みます。\n\nThales社のオープンソースアドボケートであるSébastien Lejeune氏は次のように述べています。「共同開発プログラムを通じた経験は本当に素晴らしいものでした。GitLabのコントリビューターサクセスチームのエンジニアと話し合いを始めてから、GitLabのリリースに反映されるまでわずか2か月でした」\n\nこの記事では、GitLabユーザーが共同開発プログラムを通じて、どのようにアイデアをコードとして実装し、その過程で学びながらコントリビュートしているのかをご紹介します。\n\n## 共同開発プログラムについて\n\n[GitLab Development Kit（GitLab開発キット、略してGDK）](https://gitlab.com/gitlab-org/gitlab-development-kit)は、コントリビューターがGitLabではじめて開発を行う際に役立ちます。「新しいコントリビューターにアドバイスするとしたら、GDKで何かを壊すことはできないということです。変更を加えてうまくいかない場合は、元に戻したり、最初からやり直したりすることができます。GDKの良さは、環境を気にすることなく、調整したり、テストしたり、学んだりできることです」とGitLabのコントリビューターサクセスチームでシニアフルスタックエンジニアを務めるRaimund Hookは言います。\n\n共同開発プログラムに参加する各組織は、コントリビュートのプロセス全体を通じて次のようなサポートを受けられます。\n\n- __テクニカルオンボーディングワークショップ__：GDKのセットアップやGitLabのアーキテクチャを理解するための専用セッション\n\n- __1対1のエンジニアリングサポート__：GitLabエンジニアとのペアプログラミングや技術的なアドバイス\n- __アーキテクチャの詳細解説__：各組織がコントリビュートしている課題に関連する特定のGitLabコンポーネントに焦点を当てたセッション\n- __コードレビューのサポート__：マージリクエストの手順に関する詳細なフィードバックとガイダンス\n- __定期的なチェックイン__：進捗状況を確認し、あらゆる課題に対処するための継続的なコラボレーション\n\nこの仕組みにより、GitLabのコードベースやRuby/Goプログラミング言語になじみのないチームでも、効果的にコントリビュートできるようになります。Kitware社のJohn Parent氏は次のように語ります。「GitLabを見たことも、使ったこともない人は、複数のプロジェクトにまたがる洗練されたアーキテクチャと膨大なコードを見て圧倒されるかもしれません。共同開発プログラムでは、社内研修で何週間もかけて学ぶ内容を、的を絞った短期集中コースとして習得できます」\n\nこのプログラムの成果は、新機能の提供にとどまりません。GitLabとそのユーザーコミュニティの間に長期的な関係を築くことにもつながっています。「情熱を持ってGitLabの開発にコントリビュートしてくださるユーザーのみなさまを見て、私たちエンジニアも刺激をもらっています。ユーザーは『GitLab流』を学び、エンジニアはユーザーがGitLabの未来を形作る姿勢を目の当たりにするのです」とGitLabのプリンシパルエンジニアであるShekhar Patnaikは述べています。\n\n## Thales社のコントリビュートによるプロジェクトUXの向上\n\nThales社は、GitLabの空のプロジェクトUIの改善として、単に機能リクエストを提出するのではなく、自らソリューションを構築しました。同チームのコントリビュートの焦点は、インターフェイスをタブ形式にしてSSH/HTTPS設定を簡素化し、コードスニペットのコピー/ペースト機能を追加することで、新しいプロジェクトのセットアップを効率化することでした。これらの変更は、デベロッパーのワークフローに大きな影響を与えました。\n\nまた、このチームの影響はUXの改善だけにとどまりませんでした。Thales社でエッジクラウドアプリケーションの博士研究員を務めるQuentin Michaud氏は、GDKの改善にもコントリビュートしました。Arch LinuxのパッケージメンテナーでもあるMichaud氏の専門知識により、GDKのドキュメントが改善され、コンテナ化の取り組みが進められたことで、新しいコントリビューターがより簡単に開発を始められるようになりました。\n\nMichaud氏は「オープンソースの経験があったおかげで、Linuxディストリビューション向けのGDKサポートを改善する際に役立ちました。パッケージのバージョン管理ドキュメントを改善する過程で、GitLabのコントリビューターサクセスチームもGDKのコンテナ化に取り組んでいることを知りましたが、双方の取り組みが交わる瞬間を見ることができたのは非常に印象的でした。オープンソースのコラボレーションがより優れたソリューションを生み出すことを実感した瞬間でした」と語ります。\n\nThales社のチームにとってポジティブな経験であったため、Lejeune氏は現在、共同開発プログラムを「オープンソースコントリビュートによる投資対効果をマネージャーに示す強力な事例」として活用しています。\n\n## Scania社のコントリビュートによるパッケージサポートの強化\n\nGitLabの高度なパッケージサポートの必要性を理解したScania社は、自らコントリビュートして、それを構築する機会を見出しました。\n\n「私たちは長年GitLabを使用し、組織内でオープンソースを積極的に推進してきました。共同開発プログラムのおかげで、オープンソースに直接コントリビュートする有意義なアプローチが可能になりました」とScania社のソリューションアーキテクトであるPuttaraju Venugopal Hassan氏は語ります。\n\nチームはまず、コードベースとレビューのプロセスに慣れるために小さな変更から着手し、徐々に大きな機能開発へと進みました。「共同開発プログラムで最も充実感を感じたのは、プロセス全体を振り返り、どれだけ成長したかを実感できたことです」とScania社のソフトウェアデベロッパーであるOcéane Legrand氏は振り返ります。「最初は調査や小さな変更から取り組み、次第により大きなタスクへとステップアップしていきました。その進歩を目の当たりにできてうれしく思います」\n\nScania社のコントリビュートには、パッケージレジストリのバグ修正や、Conanパッケージレジストリ機能の強化が含まれます。これにより、Conanパッケージレジストリは一般公開（GA）に向けた準備が進み、Conanバージョン2のサポートも実装されました。Scania社の取り組みとGitLabとのコラボレーションは、GitLabのパッケージレジストリ機能を大幅に改善する上で、共同開発プログラムがいかに有効であるかを示しています。\n\n「共同開発プログラムを開始してすぐに、非常に体系的に構築されていることを実感しました。コントリビュートに必要なことをすべて学べるトレーニングセッションがありましたし、GitLabのエンジニアとの1対1のセッションでは、GitLabのパッケージアーキテクチャについて深く理解することができ、コントリビュートをスムーズに進められました」とScania社のソフトウェアデベロッパーであるJuan Pablo Gonzalez氏は語ります。\n\nこのプログラムの成果はコードのみにとどまりません。プログラム参加者は、コントリビュートを通じて貴重なスキルを身につけます。[GitLab 17.8リリース](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)では、Legrand氏とGonzalez氏がともにGitLab MVPに選ばれました。Legrand氏は、オープンソースでの作業がGitLabとScania社の両方に与える影響について言及し、自身とチームの新たなスキル習得にもつながったと述べています。「共同開発プログラムを通じてコントリビュートすることで、Rubyやバックグラウンドマイグレーションの知識など、新たなスキルを習得できました。Scaniaの所属チームでアップグレード作業中に問題が発生した際、共同開発プログラムですでに同じ問題を経験していたため、トラブルシューティングを手伝うことができました」\n\n## Kitware社のコントリビュートによる高性能計算（HPC）向け認証の最適化 \n\nKitware社は、国立研究所との協力で培った専門知識を活かし、GitLabの認証フレームワークの改善にコントリビュートしました。このコントリビュートには、GitLabのOAuth2デバイス認証付与フローのサポートの追加や、新しいデータベーステーブル、コントローラー、ビュー、ドキュメントの実装が含まれます。これにより、GitLabの認証オプションが強化され、ブラウザを持たないデバイスや入力機能が限られたデバイスでも利用しやすくなりました。\n\n「共同開発プログラムは、外部コントリビューターとしてGitLabにコントリビュートする最も効率的で効果的な方法です。デベロッパー同士のペアリングセッションを通じて、1人で作業していたら見逃していたかもしれない、より優れた実装方法を見つけることができました」とKitware社の研究開発エンジニアであるJohn Parent氏は話します。\n\n長年にわたりオープンソースにコントリビュートしてきたKitware社は、GitLabの開発手法を特に高く評価しています。「GitLabほどの規模であれば、既成のソリューションに頼ることはないだろうと思っていましたが、社内で独自のソリューションを開発するのではなく、Rubyの依存関係を取り入れているのを見て素晴らしいと思いました。C++の世界ではパッケージマネージャーがほとんど使われないため、このようなアプローチを目にし、そのシンプルさを実感できたのは新鮮でした」とParent氏は述べます。\n\n## 共に築く未来：共同開発のメリット\n共同開発プログラムは、双方に価値をもたらします。「このプログラムは、GitLabのエンジニアとユーザーの間のギャップを埋める役割を果たしています。ユーザーと一緒に取り組む中で、日々の課題や、GitLabのどの部分を重視しているのか、どこに改善の余地があるのかを直接聞くことができます。ユーザーがGitLabの開発に積極的に関わろうとしている姿には感銘を受けます」と、GitLabのスタッフバックエンドエンジニアであるImre Farkasは説明します。\n\nこの協力的なアプローチには、GitLabの開発スピードを加速させる効果もあります。GitLabのプリンシパルエンジニアであるShekhar Patnaikは次のように述べています。「共同開発を通じて、ユーザーはGitLabのロードマップを前進させる手助けをしてくれています。彼らのコントリビュートにより、重要な機能をより早く提供できるようになり、すべてのユーザーにとって大きなメリットとなっています。このプログラムが拡大するにつれて、実際にその機能を必要としているユーザーと共に開発を進めることで、最も重要な機能の開発をさらに加速できる可能性があります」\n\n## 共同開発を始める\n機能リクエストを実現しませんか？Thales社のようにGitLabのUIを強化したい、Scania社のようにパッケージサポートを充実させたい、またはKitware社のように認証機能を改善したいとお考えなら、共同開発プログラムへご参加ください。本プログラムでは、価値あるオープンソースの経験を積みながら、GitLabの未来を積極的に形作りたい組織を歓迎します。\n\n共同開発プログラムへの参加について、詳しくはGitLabの担当者にお問い合わせいただくか、[共同開発のページ](https://about.gitlab.com/community/co-create/)をご覧ください。\n\n\u003Cbr>\u003Cbr>\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)\u003Cbr>\n（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*\n",[897,898,899],"contributors","open source","customers","2025-03-10",{"slug":902,"featured":91,"template":803},"the-co-create-program-how-customers-are-collaborating-to-build-gitlab",{"content":904,"config":913},{"title":905,"description":906,"authors":907,"heroImage":909,"date":910,"body":911,"category":709,"tags":912},"くら寿司が語るソフトウェア開発の「生産性向上」と「セキュリティ・ガバナンス」の重要性【イベントレポート】","2024年10月に開催された「Gartner IT Symposium/Xpo」の当社セッションにおいて、くら寿司様より事例を紹介いただきましたので、その模様をお伝えします。",[908],"GitLab Japan Team","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665029/Blog/Hero%20Images/_________DX__________________GitLab____________________.jpg","2024-12-05","2024年10月、GitLabはGartner IT Symposium/Xpoに出展しました。このイベントにおいて、GitLabユーザーの[くら寿司株式会社](https://www.kurasushi.co.jp/) 執行役員 DX本部長 中林 章氏に弊社セッションに登壇いただきましたので、本ブログではその模様を中心にレポートします。\n\n![ガートナーITシンポジウム会場の様子](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687748/Blog/Content%20Images/___________________.jpg)\n*会場の様子*\n\n中林氏の講演は、当社のJapan Country Manager 小澤 正治をモデレーターとする対談形式で行われました。開催2週間前に満員御礼となり、当日も満員の来場者が詰めかけた人気セッションでしたが、講演の冒頭で小澤は、「今日のこの時間がMLBのワールドシリーズにぶつかると考えていませんでした。昨夜から、本当に人が来てくれるのかどうか心配していて、皆さんに来ていただけて安心しました」と会場の笑いを誘います。\n\n![くら寿司株式会社 DX本部 執行役員 本部長 中林 章氏 3](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687748/Blog/Content%20Images/_________DX__________________3.jpg)\n*くら寿司株式会社 執行役員 DX本部長 中林 章氏*\n\n中林氏は、「GitLabとの出会いは去年のこのイベントです。私たちが必要としていたソリューションがGitLabだということがすっと腑に落ちて、その場で採用を決めました」と話し、ブースのパネル展示を見てGitLabが合うと感じたと明かします。小澤は「私の講演を聞いてくれたのではなかったのですか」と合いの手を入れましたが、中林氏は「いえ、ブースのパネル展示で」とつれない返事。会場は再び笑いに包まれました。こうして、セッションはやわらかな雰囲気で和気あいあいと進みます。\n\n![GitLab合同会社カントリーマネージャー小澤正治](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687748/Blog/Content%20Images/GitLab____________________.jpg)\n*GitLab合同会社 カントリーマネージャー 小澤 正治*\n\n## GitLabに登録したビジネスバックログは、そのままプロダクトバックログになる\n\nくら寿司は、「安心・美味しい・安い」というコンセプトに加え、「ビッくらポン!」を代表とした「楽しい」を追求しています。「抗菌寿司カバー 鮮度くん」など独自の品質管理などでも消費者の信頼を獲得し、成長してきました。また、先進的な業務の標準化、効率化を進め、業界に先駆けて機械化／デジタル化を進めている企業としても知られています。\n\n![くら寿司様サービス展開の歴史](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687748/Blog/Content%20Images/_______________.jpg)\n*図：くら寿司のサービス展開の歴史*\n\n中林氏は、そんな同社の歴史について、機械化に取り組んだ時代を経て、デジタル化の時代が来たと説明します。デジタル化には、タッチパネル注文など店舗内のものとスマホ予約システムなど店舗外のものがあり、現在は機械を含めた店舗内のプロセスと店舗内／店舗外のデジタル、および本社のビジネスプロセスをつなぐさまざまな取り組みを実施できる段階に来ています。そして、デジタルテクノロジーとデータを活用した企業理念の実践を実現しようとしているのです。\n\n「GitLabを使って進めているくら寿司流DXで大切にしていることは、独自性です。お客様DX、事業基盤DX、従業員DXと3つのDXを進めていますが、くら寿司ならではの競争力のあるDXを推進することが求められています」（中林氏）\n\nなぜ「ならでは」である必要があるのでしょう。それは、くら寿司の経営スピードが極めて速いサイクルで進むためです。経営会議は2週間に1度あり、その場で意思決定がなされ、プロジェクトが実行に移されます。たとえば異業種とのコラボレーションなどのイベントも、このスピード感で決まり、実行します。現場のアイデアや困りごとはすぐに吸い上げ、優先順位をつけて即座に対応していくことになります。\n\nこれはデジタルにおいても同様で、中林氏は2週間に1度、新たな複数のプロジェクトを開発現場に持ち帰ることになります。中林氏は、「このサイクルに合わせるためには、DevSecOpsが不可欠になります。経営会議の決定をビジネスバックログとしてGitLabに登録すると、それがプロダクトバックログになるイメージです」と話します。\n\nGitLabによってDevSecOpsを根付かせることで、ビジネスの意思決定をプロダクトの計画、設計、開発、リリース、運用というプロセスに一貫した流れに落とし込めます。これにより、セキュリティリスクとビジネスリスクをどちらも低く抑えることができます。GitLab導入後1年を経た今、くら寿司の社内には、「GitLabに合わせて開発する」という文化が根付きました。\n\nすべての開発プロジェクトはGitLabの中で完結するため、開発と運用にかかわるすべての経緯はGitLabを見て、過去のログをたどればわかります。中林氏が経営会議から持ち帰ったビジネスバックログまで遡ることができるのです。セキュリティ面では、シフトレフトを加速させています。成果物によって求めるセキュリティレベルは異なるため、ビジネスモデルやスプリントごとに最適なセキュリティを決定し、それを開発プロセスに組み込むことで、求めるセキュリティレベルを担保できるようにしています。\n\n## セキュリティはプロアクティブな対応に近づけたい\n\n![GitLab導入前の課題と導入後の効果](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687748/Blog/Content%20Images/GitLab______________.jpg)\n*図：くら寿司のGitLab導入前の課題と導入後の効果*\n\nセキュリティについては、脅威側が日々進化するという問題があり、どれほどの対策をしても終わりはありません。くら寿司の場合、開発プロジェクトのほぼすべてが自社開発になっているため、ソフトウェア・サプライチェーンのリスクは大きな課題です。地産地消の推進に伴い、国内でも地域／店舗ごとにソフトウェアやデータの連携先、デジタルタッチポイントなどは異なります。さらに、海外店舗もあるため、プロセス／データの連携先に対するガバナンスも必要になってきます。\n\nこれらの課題に向き合うために、くら寿司では、「お客様に迷惑をかけないこと」を第一義として整理しています。「セキュリティに対してリアクティブな対応で良しとしようという風潮はあります。しかし、本来プロアクティブな対応を取れるとより良いわけで、少しでもそこに近づける必要はあるでしょう。GitLabのおかげで、リスク要素がよく見えるようになりました。どのサーバで問題が起きているか、という視点でなく、どのスプリントがどの程度のリスクをはらんでいるのか、という視点を得られたのは大きな成果でした」（中林氏）。\n\n![くら寿司株式会社 DX本部 執行役員 本部長 中林 章氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687748/Blog/Content%20Images/_________DX_________________.jpg)\n*左より、くら寿司株式会社 執行役員 DX本部長 中林 章氏、GitLab合同会社カントリーマネージャー小澤正治*\n\n海外拠点では、国内システムと共通化すべき部分とそうでない部分を切り分けて運用することにしました。本社の高速な意思決定サイクルを海外にも展開しながら、現地が自ら考えてその地域に最適なプロダクトを開発し、その上で適切なセキュリティを担保できる開発を推進しています。いわば、ITも地産地消なのです。\n\n## お客様に満足し尽くしてもらえるようなAIを提供してみたい\n\n喫緊の課題に、将来のAI活用があります。中林氏は、狭義のITを「回転レーンの寿司を監視するような、モノの判別に使えるようなAI」と定義し、そうではない広義のAIを活用していきたいと語ります。\n\n![くら寿司株式会社 DX本部 執行役員 本部長 中林 章氏 2](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687748/Blog/Content%20Images/_________DX__________________2.jpg)\n*くら寿司株式会社 DX本部 執行役員 本部長 中林 章氏*\n\n中林氏は、「AIはお客様に継続的な価値を提供し続けるために使いたいです。たとえば、お客様が“今はマグロじゃなくてスイーツを食べたい気分”なら、それを察知してレコメンドしてくれるようなAIが居てくれるとうれしくないですか？お客様とずっとコミュニケーションを取ることで、お客様に満足し尽くしてもらえるようなAIを提供してみたいと考えています」と話してくれました。\n\n![Gartner ITシンポジウムにおけるGitLabのブース](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687748/Blog/Content%20Images/GitLab_____.jpg)\n*GitLabのブース*\n\n### 関連記事\n[DevOpsで実現。ソフトウェア開発のセキュリティ・ガバナンス【イベントレポート】](https://about.gitlab.com/ja-jp/blog/event-report-gartner-it-infra-2024/)",[899],{"slug":914,"featured":91,"template":803},"event-report-gartner-it-symposium",{"content":916,"config":927},{"title":917,"description":918,"authors":919,"heroImage":921,"date":922,"body":923,"category":709,"tags":924,"updatedDate":926},"GitLabでCIプラットフォームを変革したIndeed社の戦略","世界最大の求人サイトであるIndeed社は、数千のプロジェクトをGitLab CIに移行することで、生産性向上とコスト削減を実現しました。1日あたりのパイプライン実行数が79%増加するなど、得られた主なメリットをご紹介します。",[920],"Carl Myers","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099351/Blog/Hero%20Images/Blog/Hero%20Images/Indeed-blog-cover-image-2_4AgA1DkWLtHwBlFGvMffbC_1750099350771.png","2024-08-27","***編集者からのお知らせ：GitLabでは、当社ブログの執筆者として、カスタマーコミュニティのメンバーをお招きすることがあります。今回のブログ記事では、Indeed社のCIプラットフォームマネージャーを務めるCarl Myers氏に、GitLabに関する経験を共有していただきました。*** \n\nIndeedは、「We help people get jobs.（人々の仕事さがしを支援する）」というミッションを掲げています。Indeedは、[月間3億5,000万人以上のユニークビジターを持つ、世界最大の求人サイト](https://jp.indeed.com/about)（外部サイト）です。\n\nIndeedのエンジニアリングプラットフォームチームは「We help people to help people get jobs.（人々の仕事さがしを支援する人を支援する）」というモットーを掲げており、これは会社のミッションとは少し異なるものです。20年近くにわたり、常に求職者を第一に考えるデータドリブンのエンジニアリング文化を醸成してきました。この文化を推進する中で、当社はこのアプローチを実現し、日々エンジニアが求職者によい結果を届けられるようにするためのツールの構築に責任を持って取り組んでいます。\n\nわずか11人から成るIndeedのCIプラットフォームチームは、GitLabの継続的インテグレーション（CI）を導入したことで、社内の数千人のユーザーを効果的にサポートできるようになりました。このほかにも、IndeedはGitLab CIへの移行により次のメリットを得ました。\n- 1日あたりのパイプライン実行数が79%増加\n- CIハードウェアコストを10～20%削減\n- サポート負担の軽減\n\n## CIプラットフォームの進化：Jenkinsから拡張性に優れたソリューションへ\n\n多くの大手テクノロジー企業と同様に、当社は会社の成長に伴い、当時利用可能なオープンソースや業界標準のソリューションを用いてCIプラットフォームを段階的に構築してきました。2007年、Indeedのエンジニアが20人にも満たなかった頃、チームではHudson（Jenkinsの前身）を使用していました。\n\n20年近くにわたる成長を経た現在、Indeedには数千人のエンジニアが在籍しています。新しい技術が登場するたびに、段階的に改善に取り組み、2011年頃にはJenkinsに移行しました。また、[AWS EC2](https://aws.amazon.com/ec2/)を使用して、ほとんどのワークロードを動的なクラウドワーカーノードに移行することにも成功しました。しかし、Kubernetes時代に突入すると、システムのアーキテクチャが限界に達しました。\n\nJenkinsのアーキテクチャは、クラウドを前提に設計されていません。Jenkinsは、パイプラインの重要な部分を実行し、特定のタスクをワーカーノードに割り当てる役割を持つ『コントローラー』ノードを使用して動作します（ワーカーノードはある程度水平にスケーリングが可能）。しかし、コントローラーのスケーリングは手動で調整する必要があります。\n\nジョブが多すぎて1つのコントローラーに収まらない場合、ジョブを複数のコントローラーに手動で分割する必要があります。CloudBees社は、こうしたボトルネックを軽減するための対策として、CloudBees Jenkins Operations Centerをはじめとする、複数のコントローラーを一元管理するソリューションを提案しています。しかし、各コントローラーは依然として脆弱な単一障害点となり、Kubernetes環境での運用には困難があります。ノードのロールアウトやハードウェアの障害などのアクティビティはダウンタイムを引き起こします。\n\nJenkins自体に内在する技術的な制約に加えて、自社のCIプラットフォームにも、社内プロセスが原因で発生した問題がいくつかありました。たとえば、各リポジトリ内のコードからジョブを生成するためにGroovy Jenkins DSLを使用していたため、各プロジェクトがコピー＆ペーストされた独自のジョブパイプラインを持つことになり、その結果、数百ものバージョンが生成され、メンテナンスや更新が困難になりました。Indeedのエンジニアリング文化は柔軟性を重視し、チームが別々のリポジトリで作業することを許容していますが、その柔軟性により、チームは定期的にメンテナンスを行わなければならず、多大な時間を費やさせる負担要因となっていました。\n\nこうした技術的負債を認識した当社は、「[Golden Pathパターン](https://tag-app-delivery.cncf.io/whitepapers/platforms/)（英語）」に目を向けました。このパターンは、柔軟性を保ちながら、アップデートを簡素化し、プロジェクト間で運用の一貫性を促進するための標準的な手順を提供するものです。\n\nIndeedのCIプラットフォームチームは11人ほどのエンジニアで構成されており、決して規模は大きくないものの、サポートリクエストへの対応、アップグレードやメンテナンスの実施、そしてグローバル企業としての常時サポート体制の確保を通じて、数千人のユーザーサポートにあたっています。\n\n当社のチームは、GitLabインスタンスだけでなく、アーティファクトサーバーや共有ビルドコード、さらに複数のカスタムコンポーネントを含むCIプラットフォーム全体をサポートしているため、業務量は非常に多岐にわたります。そのため、既存のリソースを最大限に活用し、課題に対処する計画が必要でした。\n\n## GitLab CIへの移行\n\n主要なステークホルダーとの慎重な設計レビューを経て、当社は全社的にJenkinsからGitLab CIへ移行することを決定しました。GitLab CIを選んだ主な理由は次のとおりです。\n\n- すでにGitLabをソースコード管理に使用していたため。\n- GitLabは、当社がCIに求める機能をすべて備えた包括的なソリューションであるため。\n- GitLab CIの設計は拡張性に優れ、クラウドにも対応しているため。\n- GitLab CIは、テンプレートを拡張して新たなテンプレートを作成できるという点が、当社の「Golden Path」戦略と合致していたため。\n- GitLabがオープンソースソフトウェアであり、さらにGitLabチームが当社の修正提案に常に協力的であったことから、柔軟性と安心感を得られたため。\n\nGitLab CIプラットフォームの一般提供を正式に発表した時点で、すでに全ビルドの23%がGitLab CI上で行われていました。これは、個々のユーザーの自主的な取り組みや早期導入者のおかげです。\n\nしかし、移行の課題は「ロングテール」にありました。Jenkinsには多くのカスタムビルドが存在するため、自動移行ツールはほとんどのチームに適用できませんでした。新しいシステムの利点の多くは、旧システムを完全に停止（0%）にするまで実現しません。そうして初めてハードウェアを停止し、CloudBeesのライセンス費用を削減できるようになるのです。\n\n## 機能の同等性とゼロからの再出発の利点\n\nIndeedでは多様な技術をサポートしていますが、最も一般的な言語はJava、Python、JavaScriptです。これらの言語は、ライブラリの構築、デプロイ可能なサービス（ウェブサービスやアプリケーションなど）、およびcronジョブ（データレイク内のデータセットを構築するような、定期的に実行されるプロセス）を作成するために使用されます。これらの言語は、Javaライブラリ、Pythonのcronジョブ、JavaScriptのウェブアプリケーションといったプロジェクトタイプのマトリックスを形成しており、Jenkinsではそれぞれに対して事前定義されたスケルトンがありました。そのため、これらすべてのプロジェクトタイプに対応する「Golden Path」テンプレートをGitLab CIでも作成する必要がありました。\n\nほとんどのユーザーは推奨されたパスをそのまま使用できましたが、カスタマイズが必要な場合でも「Golden Path」は有用な出発点になりました。必要な部分だけを調整しながら、将来的には一元管理されたテンプレートが更新されるたびに、その利点を享受することができます。\n\n当社はすぐに、カスタマイズが必要なユーザーでさえ「Golden Path」の採用に前向きであり、少なくとも試用を望んでいることがわかりました。もし以前のカスタマイズが必要であれば、後から追加することができたからです。これは驚くべき結果でした。大幅なカスタマイズに投資してきたチームはそれを手放すことに抵抗があるだろうと思っていましたが、大多数のチームはもはやそれを気にしなくなっていたのです。これにより、多くのプロジェクトを非常に迅速に移行することができました。プロジェクトに「Golden Path」（インクルードを含む6行ほどの小さなファイル）を追加するだけで、あとは各チームがそれを活用して進めることができました。\n\n## インナーソースによる救済\n\nCIプラットフォームチームは、「外部からのコントリビュートを優先する」というポリシーを採用し、社員全体の参加を促進しました。このアプローチは「インナーソース」と呼ばれることもあります。私たちは、外部からのコントリビュート（自分たちのチーム以外からのコントリビュート）を促進するために、テストやドキュメントを作成しました。カスタマイズを望むチームは、そのカスタマイズを、Golden Pathに組み込んで、機能フラグを使用して共有できるようになりました。これにより、カスタマイズを行ったチームは自分たちの作業を他のチームと共有できるようになっただけでなく、そのカスタマイズがCIプラットフォームチームのコードベースの一部になったため、将来的にそのカスタマイズが壊されないことを保証できるようになりました。\n\nこの取り組みには、特定のチームが必要な機能を求めて待機することなく、自分たちでその開発に取り組めるようになったという利点もありました。たとえば、「その機能は数週間後に実装する予定ですが、もし早めに必要であれば、ぜひコントリビュートしてください」と伝えることができます。結果的に、同等性に必要な多くのコア機能がこのようなアプローチで開発され、チームのリソースでは実現できないほど迅速かつ質の高い形で提供されました。このモデルがなければ、移行は成功しなかったでしょう。\n\n## 予定より早く、予算内で達成\n\nチームのCloudBeesライセンスは2024年4月1日に期限切れになりました。これに伴い、完全移行を達成するための挑戦的な目標を設定しました。当時、ビルド全体の80%（全プロジェクトの60%）でCIにJenkinsが使用されていたことを考えると、この目標は特に野心的だったと言えます。つまり、2,000以上の[Jenkinsfiles](https://www.jenkins.io/doc/book/pipeline/jenkinsfile/)を新たに書き直すか、Golden Pathのテンプレートに置き換える必要があったのです。\n\nこの目標を達成するために、チームはドキュメントやサンプルコードを提供し、可能な限り機能を実装したほか、ユーザーが機能を追加できるように支援しました。\n\nまた、定期的なオフィスアワーを設け、誰でも質問をしたり、移行の支援を求めたりできるようにしました。さらに、移行に関連するサポートの質問を、一部を除いて他のどの質問よりも優先しました。CIプラットフォームはGitLab CIのエキスパートとなり、その専門知識をチーム内および組織全体で共有しました。\n\n自動移行はほとんどのプロジェクトでは実現できませんでしたが、カスタマイズがまれな比較的小規模なプロジェクトには有効であることがわかりました。チームはSourcegraphの一括変更キャンペーンを作成し、数百のプロジェクトを移行するためにマージリクエストを送信しました。そして、ユーザーにその承認を促しました。\n\nユーザーからの成功事例を広く共有し、ユーザーがGolden Pathに新しい機能を追加するたびに、「GitLab CIに移行するとこれらの機能が無料で利用できる」と宣伝しました。これらの機能には、ビルトインのセキュリティやコンプライアンススキャン、CIビルドのSlack通知、他の内部システムとのインテグレーションなどがあります。\n\nさらに、積極的な「screamテスト」キャンペーンを実施しました。しばらく実行されていない、または成功していないJenkinsジョブを自動的に無効にし、必要であれば再度有効にできるとユーザーに通知しました。これは、手間をかけずに実際に必要なジョブを特定できる効果的なアプローチでした。前回のCI移行（JenkinsからJenkinsへの移行）以降、一度も実行されていない数千のジョブがあり、これらをほぼすべて安全に無視できることがわかりました。\n\n2024年1月には、例外が明示的に要求されない限り、すべてのJenkinsコントローラーが読み取り専用（ビルド不可）になると発表しました。コントローラーに関する所有情報が大幅に改善され、組織の構造に合致していたため、ジョブよりもコントローラーに焦点を当てることが合理的でした。コントローラーのリストはジョブのリストよりもはるかに管理しやすいものでした。\n\n例外を認めるために、ユーザーにはスプレッドシートでコントローラーを見つけ、その横に連絡先情報を入力してもらうよう依頼しました。これにより、フォローアップできる利害関係者の最新リストを確実に取得できるだけでなく、ユーザーからも絶対に必要なジョブを明確に知らせてもらうことができました。ピーク時には約400ものコントローラーがありましたが、1月には220に減少し、そのうち例外を必要とするのは54のコントローラーだけでした（そのうちいくつかはチームで所有し、テストやカナリアのために使用していました）。\n\n![Indeed - Jenkinsコントローラー（個数）の推移グラフ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099357/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750099357392.png)\n\n私たちは、約50チームの管理可能なリストをチーム内で分担し、各チームの移行の進捗状況を聞き取りし始めました。1月、2月中に、そして一部のチームは2月28日までに私たちの支援なしで移行を完了させる予定であり、他のチームはその時点までのプロジェクト廃止を計画していることが判明しました。そして、ごく少数のチームが期限内に完了できるか非常に心配していました。\n\n私たちはこの少数のチームと協力し、きめ細やかな個別対応サービスを提供しました。私たちには移行を代行する上での専門知識が不足しているものの、そのチームの特定分野の専門家と協力できることを説明しました。一部のプロジェクトでは、私たちがコードを書き、そのチームがレビューを行い、他のプロジェクトではそのチームがコードを書き、私たちがレビューを行いました。最終的に、すべての努力が実を結び、8か月前に宣言した日に、Jenkinsを無事に廃止することができました。\n\n## 成果：CI効率とユーザー満足度の向上\n\nJenkins CIプラットフォームのピーク時には、1日あたり14,000以上のパイプラインが実行され、数千のプロジェクトをサポートしていました。現在、GitLab CIプラットフォームは、1日あたり40,000以上のパイプラインを処理し、通常は25,000以上のパイプラインが日常的に稼働しています。各パイプラインのジョブごとの増分コストはJenkinsと同程度ですが、コントローラーを実行するためのハードウェアのオーバーヘッドがなくなりました。これらのコントローラーは、単一障害点であり、スケールの制限要因でもあったため、プラットフォームを人工的にセグメント化せざるを得ませんでした。正確な比較は難しいものの、このオーバーヘッドがなくなったことで、CIハードウェアコストは10～20%削減できたと考えています。さらに、GitLab CIはクラウド上で自動的にスケールし、複数の可用性ゾーンで動作する耐障害性を備えているほか、テンプレート言語には優れた公開ドキュメントがあるため、サポートの負担も軽減されています。\n\n特筆すべきもうひとつの利点としては、現在、Golden Pathの採用率が70%を超えていることです。これにより、私たちが改善策をロールアウトすれば、Indeedの5,000以上のプロジェクトは、特別な操作をせずにすぐにそのメリットを享受できるようになることがわかりました。この結果、一部のジョブをよりコスト効率の高いARM64インスタンスに移行したり、ユーザーのビルドイメージをより簡単に更新したりできるようになりました。また、他のコスト削減の機会をより適切に管理することも可能になりました。最も重要なことは、ユーザーが新しいプラットフォームに満足していることです。\n\n__著者について__：\n*Carl Myers氏はカリフォルニア州サクラメント在住で、Indeed社のCIプラットフォームチームのマネージャーを務めています。Carl氏は、約20年にわたるキャリアを通じて、大小さまざまな企業で、エンジニアのニーズを満たし、その能力を引き出すための社内ツールやデベロッパー向けプラットフォームの構築に尽力してきました。*\n\n**謝辞**：\n*この移行プロジェクトは、Tron Nedelea氏、Eddie Huang氏、Vivek Nynaru氏、Carlos Gonzalez氏、Lane Van Elderen氏、そしてCIプラットフォームチームの他のメンバーの尽力なしには実現できませんでした。チームはまた、プロジェクト全体を通じて、合意やリソースの確保、そして社内全体の調整に尽力していただいたDeepak Bitragunta氏とIrina Tyree氏のリーダーシップに、特に感謝しております。最後に、コード、フィードバック、バグレポートに貢献し、プロジェクトの移行を支援してくださったIndeed社の皆様に感謝申し上げます。*\n\n**この記事は、Indeedエンジニアリングブログに掲載された[「How Indeed Replaced Its CI Platform with GitLab CI」](https://engineering.indeedblog.com/blog/2024/08/indeed-gitlab-ci-migration/)の編集版です。**",[899,109,925,798],"user stories","2025-01-10",{"slug":928,"featured":91,"template":803},"how-indeed-transformed-its-ci-platform-with-gitlab",{"category":717,"slug":721,"posts":930},[931,943,955],{"content":932,"config":941},{"date":933,"authors":934,"title":935,"description":936,"heroImage":937,"category":721,"tags":938,"body":940},"2025-09-10",[908],"コード生成AIのリスクを管理し、ポテンシャルを最大限に引き出す【イベントレポート】","ガートナー セキュリティ＆リスク・マネジメントサミット2025で登壇したGitLab吉瀬 淳一のセッション内容をレポート。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480526/wk05yajf5e4bmwuygve7.jpg",[841,939,717,279,779],"code review","GitLabは2025年7月23～25日の3日間、都内ホテルで開催された「ガートナー セキュリティ ＆ リスク・マネジメント サミット2025」に出展しました。本記事では、GitLabシニア・ソリューション・アーキテクト 吉瀬 淳一が登壇したセッションの模様についてレポートします。\n\n![ガートナー セキュリティ ＆ リスク・マネジメント サミット2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480502/dy6lgmfb1oihyvrjcxqx.jpg)\n\n*会場の様子*\n\nこの日の講演は、コード生成AIの話が中心です。まずは会社の話から入ったのですが、吉瀬は比較的社歴の浅いエンジニアで、働き方の紹介もユニークでした。GitLabは、全世界の全従業員がリモートで働いていることで知られています。実際に、GitLab社員の多くは、お客様やパートナー様から「よく聞くけれど、本当にそうなの？」と尋ねられた経験をしています。\n\n吉瀬は、「GitLabには本社がありません。世界中のどこを探しても、オフィスすらありません。私の場合も、入社が決まると会社のPCが送られてきて、GitLabでの生活が始まりました。入社した当日から、いきなり1人ぼっちです」と話して、会場の空気を和ませました。\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480501/glglfhj8thtnkdsgqn8j.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一*\n\n## セキュリティ対策の全体像とシフトレフトの重要性\n\nソフトウェア開発においてコード生成AIを活用する前に、プロジェクトにおいてセキュリティをどう担保するかについて決めていく必要があります。その際に、セキュリティ対策の全体像を分解し、企画、開発、運用という大きく3つのくくりで詳細を決めることが必要です。\n\n![企業が取り組むべきセキュリティ対策の全体像](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757386735/vqy6xhnubpvwjnsfcxvc.png)\n\n*スライド：企業が取り組むべきセキュリティ対策の全体像*\\\n\\\n企画は、いわゆる統制やガバナンスのようなもの。企業全体、もしくはプロジェクト全体としてのルールを、ここで決めます。開発は、コードを生み出す段階での対策です。脆弱性検査の自動化やセキュアコーディングの標準化などがこれに当たります。運用におけるセキュリティ対策は、実行環境を守る手段を指します。エンドポイントセキュリティやネットワーク監視、ID管理、ログ管理などです。\n\nそして、これらの中で、最も課題が多いのは開発の部分になります。吉瀬は、「開発課題が大きい理由のひとつは、実際の開発を外部委託していることでしょう。委託先が何をやってるのか見えにくいのです。ただ、この部分の改革に取り組んでいかなければ、本当の意味でのセキュリティを守ることはできません」と話します。\n\n![](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480501/eskdwrakqm2n7t2bsocq.jpg)\n\n*スライド：デジタル庁が提示する「セキュリティ・バイ・デザイン」の原則*\\\n\\\nそのためにも、シフトレフトが重要になります。開発の上流工程で対策を講じることで、デプロイ後に脆弱性が見つかって対応するなどの手戻りは大幅に低減します。さらに、品質の向上につながることも期待できます。実際に、デジタル庁が公開した『政府情報システムのためのセキュリティ・バイ・デザインガイドライン』でも、開発のなるべく早い段階にセキュリティを担保するプロセスを組み込み、問題点を潰していくことの重要性がうたわれています。\n\n「現在、多くの日本企業は“事故が起きてからどうするかを考える”というセキュリティ対策を重視する傾向があるようです。それももちろん大切なのですが、偏りすぎると問題です。開発から運用に至るプロセスは左から右へと図示されますが、左側の開発段階でもやれることは数多くあります。きちんとシフトレフトして、開発の上流工程も最適化する方向で考えるべきです」（吉瀬）\n\n## 生成AIを活用するエンジニアはすでに100%！？\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480501/ns3x4ai53zkqjkbrcn5z.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一*\n\nその最適化すべき“左側”で、生成AIは大きなムーブメントになっています。吉瀬は、「生成AIを活用しているエンジニアは、ほぼ100%と言ってもいいくらい」と話します。「ソフトウェア開発にAIを使っていると答えた組織の割合が78%という調査結果がありますが、よく見てください。 “組織”ですよ。個人のレベルになるとどうでしょう。組織としては、人が書いていると思っているけれど、実はその人がAIを使っているケースは多いでしょう。なにしろ、生産性が桁違いですから」。\n\n一方、GitLabの調査をまとめた『[2024グローバルDevSecOpsレポート](https://about.gitlab.com/ja-jp/developer-survey/)』によると、ソフトウェアエンジニアがコードを書く時間は、全就業時間の21%にとどまっています。残りの79%は脆弱性の対応やテスト、トラブルシューティング、打ち合わせなど。ここに、生成AIを導入してる企業の開発生産性が2割程度しか上がらない原因があります。全体の21%を占める部分の生産性が10倍になっても、残りの79%がボトルネックになり、全体的な生産性は上がらないのです。\n\n![スライド：AI生成コードの脆弱性とセキュリティリスクの急増](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757386736/syfahxrakeeqlpyurjlv.png)\n\n*スライド：AI生成コードの脆弱性とセキュリティリスクの急増*\\\n\\\nさらに、生成AIのはらむセキュリティリスクに注意が必要です。上図に示したように、懸念点は大きく3つ。まず、AIが生成するコードには脆弱性が含まれがちです。次に、エンジニアは脆弱性が含まれていることは認識できるものの、その発見や対処法に自信を持っていません。最後に、マネジメントは、社内でAIがどういう扱われ方をしていて、どんなリスクが発生しているかをつかみきれていません。\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480496/zs5kufi2hwvlvchjhiws.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一*\n\nさらに問題を大きくしているのが、AIのサイロ化です。ソフトウェア開発プロセスでは、さまざまなツールが使用されます。そしていま、各ツールの裏でAIが動くようになりました。これらのAIが、IssueやEpic、マージリクエストの議論、過去の変更履歴といった開発の全体的なコンテキストを把握できないことが問題なのです。プロセスの中には、特定の脆弱性を修正する目的のIssueがあります。しかし、コード生成AIはその背景を知りません。[CI/CD](https://about.gitlab.com/ja-jp/topics/ci-cd/)のAIは単にテストの成否だけを見ます。この状況では、「脆弱性を修正する」という本来の修正意図が反映されているかどうかを判断できません。“開発の文脈”を理解しないまま、各ツール上だけで動くAIが部分的な判断を下すことで、本質的な問題が見過ごされてしまうリスクが高まってしまうのです。\n\n## 単一のプラットフォームでソフトウェア開発ライフサイクル全体を管理する\n\nこうした状況を抜本的に解決するために、 GitLabは単一のプラットフォームでソフトウェア開発ライフサイクル全体を管理するというアプローチを採ります。企画、開発、運用にまたがるセキュリティ対策全体を鳥瞰する包括的な解決策であり、コードの脆弱性、開発者の信頼性、ガバナンスという3つの懸念点もクリアできます。\n\n![スライド：セキュアなAI活用を実現するDevSecOpsプラットフォーム](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757386735/rhpuem4bdeja6c2hr7iv.png)\n\n*スライド：セキュアなAI活用を実現するDevSecOpsプラットフォーム*\\\n\\\nGitLabのソリューションにおいて、生成AIを活用した開発プロジェクトのシフトレフトを支える中心になるのが、[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)の[コードレビュー&修正支援機能](https://player.vimeo.com/video/929891003?badge=0&autopause=0&player_id=0&app_id=58479/)です。[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)では、人間がレビューする前にAIがコードを自動チェックし、脆弱性を指摘します。さらに、脆弱性が生まれた原因と具体的な修正方法までAIが提案することで、脆弱性発生リスクを極小化することができます。開発段階において[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)を利用することで、セキュアなコード開発を促進する体制が自然に生まれることになります。\n\nGitLab上でプロセスを整え、ルール化を徹底すれば、シフトレフトは自然に推進されます。たとえば、パイプラインポリシーを整備すれば、開発者のスキルや意識に依存しない一貫したセキュリティレベルを担保できます。コードのコミットをトリガーに多様なセキュリティスキャンを自動実行するなど、適切なタイミングでセキュリティスキャンするプロセスを組織に根付かせることもできます。開発プロセスを最適化し続けることで、問題を早期に発見し、対処できる強固な体制が生まれます。\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480495/ocag236gff9qw5bvaoxx.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一*\n\nGitLabのAIはプラットフォームとしての強みを生かし、一貫したコンテキストにもとづいて全体に対する有益な示唆を与えてくれます。GitLabを単一データストアとして、開発の全工程のデータを一元管理しておけば、AIが“全体の文脈”を理解できます。コードの関連性を把握し、変更の影響範囲もスピーディに指摘してくれます。サイロ化されたツールでは不可能な、一貫性のある高度な支援が可能になるのです。\n\nさらに、GitLabのAIポリシーは、極めて透明性の高いものです。[GitLabのAIは、「顧客のデータを学習データとして利用しない」など、企業の知的財産を守る明確なポリシーを設けています](https://about.gitlab.com/ja-jp/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops/#%E3%83%87%E3%83%BC%E3%82%BF%E3%82%AC%E3%83%90%E3%83%8A%E3%83%B3%E3%82%B9%EF%BC%9A%E8%87%AA%E5%88%86%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AF%E8%87%AA%E5%88%86%E3%81%A7%E5%AE%88%E3%82%8B)。ユーザーは、安心して最先端のAI技術を活用することも可能ですし、よりセキュアな環境を求める場合は、オンプレミス環境におけるローカルLLM運用にも対応しています。\n\n## 一貫したコンテキストの中でAIの力を最大限に生かす\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480495/nlqrw5sadygg4blh3ln3.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一*\n\nコード生成AIは、開発を加速させる強力な武器です。ただし、正しく活用すれば、であることに注意が必要です。コード生成AIのポテンシャルを最大限に引き出し、同時にリスクを管理するために必要な要素は、ここまで述べてきたとおりです。つまり、開発ライフサイクル全体を俯瞰し、一貫したルールとコンテキストのもとでAIを機能させる、GitLabのような統合プラットフォームが不可欠なのです。\n\n吉瀬は、「生成AIの時代は始まったばかりで、これからどんどん広まっていくでしょう。ひとりの開発者が生み出すコードの量は、これまでに比べると凄まじく増えます。生産性はどんどん高まります。すばらしいことです」と話します。\n\n「確かに、生成AIの書いたコードに脆弱性が大量に含まれているというリスクはありますが、生産性とリスクのバランスを考えると、AIを使わないという選択肢はありえません。だからこそ、コードのレビューや脆弱性の修正にもAIを使い、パイプラインポリシーのシフトレフトをきちんとやる必要があるのです。プラットフォームを統合して、一貫したコンテキストの中でAIの力を最大限に生かしていきましょう。これがGitLabからのメッセージです」（吉瀬）\n\n![イベントで配られたノベルティ（水筒）](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480495/yibqr6h9osxu0nqyxxdu.jpg)\n\n*イベントで配られたノベルティ（水筒）*\n\n![イベントで配られたノベルティ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480495/kx2htmmgdnrwqsdctif5.jpg)\n\n*イベントで配られたノベルティ（スニーカー）*",{"featured":91,"template":803,"slug":942},"event-report-gartner-security-risk-management-2025",{"content":944,"config":953},{"title":945,"description":946,"heroImage":947,"date":948,"body":949,"category":721,"tags":950,"authors":952},"みんなの銀行の内製化戦略とAIへの取り組み【イベントレポート】","2025年6月に開催された「Gartner Application Innovation & Business Solutions Summit 2025」の当社セッションにおいて、株式会社みんなの銀行 取締役常務執行役員CIO宮本 昌明氏にご講演いただいた模様をお伝えします。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756178708/bcuxu1pffexqdzy4ebxf.jpg","2025-08-27","GitLabは2025年6月、都内ホテルで開催された「Gartner Application Innovation & Business Solutions Summit 2025」に出展しました。開催したセッションは約170人の参加者を集め、株式会社みんなの銀行（以下、みんなの銀行） 取締役常務執行役員CIO宮本 昌明氏をお招きし、当社Japan Country Manager小澤 正治と対談形式で実施しました。本記事では、その模様をお伝えします。\n\n## BaaS事業を支えるプラットフォーム\n\n![株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179493/ven7v5yf2xhbio51itqm.jpg)\n\n*株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏*\n\nみんなの銀行は、2021年5月に事業を開始したデジタルバンクです。日本で初めてフルクラウドで銀行システムを構築・運用することでも注目を集めており、B2Cのスマホアプリ事業に加え、APIを主軸としたBaaS（Banking as a Service）事業や、バンキングシステムの外販も行っています。\n\n現在、立ち上げから約4年が経過。すでに130万口座を獲得し、ユーザーの70%は40歳未満の若年層です。ふくおかフィナンシャルグループの傘下で、福岡市に本社を置いていますが、SNSなどを活用したマーケティングが奏功し、顧客層は全国に広がっています。\n\n個人向けのデジタルバンクとして話題をさらう中、ビジネスの1つの柱に育ちつつあるのがBaaS（Banking as a Service）事業です。同事業では、みんなの銀行が自社のシステムを[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api/)を通して外部へと公開。ユーザーは、提携事業者のアプリなどを経由して「自分がみんなの銀行のサービスを使っている」ことを意識せず、銀行機能を利用できるようになります。\n\n公開中のAPIは多彩です。振込・決済だけでなく、認証・同意、本人確認済み情報提供、振込キャンセルなどをラインアップ。この日の時点で公開されている提携先は24社に及び、すでに非金融業界を含む15社が自社サービスに組み込んだ機能をリリースしています。\n\n![株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179499/eeqee2fynr7zhhzixhhf.jpg)\n\n*株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏*\n\nみんなの銀行は、銀行業務の心臓部となる勘定系システムを、Google Cloud上にフルスクラッチで開発しています。宮本氏は、「BaaS基盤は勘定系の横に置くイメージ」と勘定系と密に連携させたBaaS基盤について説明します。このBaaS基盤の開発に、GitLabは大きな役割を果たしました。BaaS部分の開発にあたり同行は、マイクロサービスおよびイベント駆動型アーキテクチャを採用し、TDD（テスト駆動開発）を導入。その開発プラットフォームになったのがGitLabなのです。\n\n導入当時は、組織もシステムもゼロからのスタートでした。構想の初期段階からの必須要件は、セキュリティを高めるだけでなく、ログ取得や権限管理などのコンプライアンスも備えたDevSecOps環境を作ること。宮本氏は、「セキュリティとコンプライアンスは絶対条件でした。そして、その上で効率化を追求します。これらは並び立たないように聞こえますが、並び立たせるのがわれわれの基本スタンスです」と話します。\n\nソフトウェアライフサイクル全体をカバーできる一気通貫のソリューションとしてGitLabを採用し、テスト自動化、セキュリティスキャン、ディペンデンシースキャン、[SBOM](https://about.gitlab.com/ja-jp/blog/what-is-sbom/)など幅広い機能を活用するに至りました。\n\nまた、コンプライアンスパイプラインとして[GitOps](https://about.gitlab.com/ja-jp/topics/gitops/)の考え方も導入しました。Gitリポジトリを唯一絶対の存在（SVoT）と位置づけ、本番環境がGitリポジトリと異なる場合は自動修正します。ただし、リリース承認プロセスを維持することでガバナンスを確保するなど、実際に運用するにあたってさまざまな工夫も取り入れています。\n\nテストの民主化についても独自のアプローチで取り組んでいます。開発側だけがテストを実行するのでなく、ビジネス側もテストに関与することで責任を分担するなどの施策は、テストの自動化が進むとともに社内に根付いてきました。\n\n## 優秀なエンジニアたちに挑戦の場を提供\n\n![株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179493/r2slryft1yl2ouuqfnmk.jpg)\n\n*株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏*\n\nみんなの銀行は、GitLabをプラットフォームとして実施する開発業務の大半を内製化しています。宮本氏は、内製化のメリットについて、大きく4つのポイントを挙げます。まずは、自社プロダクトの将来を真剣に考え、社員であるエンジニアが主体的に関与できること。次に、設計・開発・リリース・保守・運用といったすべてのプロセスで得られるナレッジを社内に蓄積できること。そして、効果的な設計や省力化された運用負荷を実現できる製品選定・設計を行えること。最後に、保守・運用まで自前で行うことで、自動化や不要な作業削減を開発設計段階から意識できることです。\n\n![スライド：内製化への道筋](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179503/nigm4xsduozdfpgwymtg.jpg)\n\n*内製化への道筋*\n\n宮本氏は、内製化成功のカギは人財にあるとし、優秀なエンジニアの「採用」を大切にしながら、それ以上にエンジニアが働きたいと思える環境を「維持」していくことに力を注いでいると語ります。多くのエンジニアにヒアリングした結果、彼らは「やりたいことができる仕事環境」や「新しい技術への挑戦」を求めていることに気づきました。ルーチンワークになりがちな保守・運用やテストをGitLabを使って可能な限り自動化しているのは、エンジニアに新たな挑戦の場を提供するためでもあります。\n\n宮本氏は、「自分たちで考えて、自分たちで現状をより良く変えられるのが、優秀なエンジニアです。彼らが学習できる環境を用意し、実際に挑戦もしてもらいます。失敗することもあるでしょうけれど、上手に小さく失敗してもらってきちんと軌道修正できるような文化を作っています」と話します。\n\n長く使ってきたGitLabは、組織に根を張りました。エンジニア同士がGitLab上で議論を深め、コラボレーションする基盤へと育っています。\n\n![スライド：内製化推進においてGitLabが果たす役割](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179504/tdrxoes8irx7j4nwbnly.jpg)\n\n*内製化推進においてGitLabが果たす役割*\n\n「エンジニアは下請けではありません。ただものづくりをする人でもありません。ものを作ってサービスを提供する人なのです。組織には、エンジニアやビジネス企画など、さまざまな役割を持つ人が居ますが、その役割の壁を超えて、1つのサービスをみんなで作るという文化を大切にしています」（宮本氏）\n\n## 多様なAgentic AIをオーケストレーションする製品へ\n\n![GitLab合同会社 Japan Country Manager 小澤 正治](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179499/itvbnaxh1aqrgbbmfos2.jpg)\n\n*GitLab合同会社 Japan Country Manager 小澤 正治*\n\n小澤からは、GitLabの紹介とAI活用の取り組みについてお話させていただきました。GitLabは、ソフトウェア開発のライフサイクル全体を一元的に統合管理するプラットフォーム。この日のイベントを主催する[ガートナーのMagic Quadrant™において、製品の方向性と機能実装の両面から、リーダーという評価を受けて](https://about.gitlab.com/ja-jp/blog/gitlab-named-a-leader-in-the-2024-gartner-magic-quadrant-for-devops/)います。\n\n今回のセッションで、テーマのひとつであるAIでは、統合されたシームレスな開発環境にAIをアドオンし、個々の開発工程の部分最適ではなく、AIを活用した全体最適を目指すことが特長。AIコーディングによる生産性向上だけにとどまらず、レビュー、脆弱性対策、安全なコードリリースなどソフトウェア開発の全工程にAIを活用するという方向性で製品を進化させています。\n\nソフトウェア・サプライチェーン全体のガバナンスも、AIを搭載するGitLabで管理する対象です。GitLabを導入した組織単体を見るのではなく、ソフトウェア・サプライチェーン全体のセキュリティリスク対応や組織体制の強化もプラットフォーム上で実現。SaaSに加え、Self-Managed、クラウドセルフホステッドでも利用できるため、機密性の高い情報を扱うユーザー向けに、ローカルLLMの活用を支援するなど、その活用スタイルに応じた導入が可能になっています。\n\n小澤は、GitLabの進化の方向性も披露しました。GitLabは今後、[DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/)プラットフォームの概念を維持しつつ、多様な[Agentic AI](https://about.gitlab.com/ja-jp/topics/agentic-ai/)（自律的に行動し、目標達成のために自ら判断や行動を行うAI）の登場を前提に、それらをオーケストレーションする製品という立ち位置へと飛躍しようとしています。\n\n## 全工程・全業務へのAI適用を目指す\n\n![GitLab合同会社 Japan Country Manager 小澤 正治と株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179499/lir7wayd1qyqg71yg6e4.jpg)\n\n*左からGitLab合同会社 Japan Country Manager 小澤 正治、株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏*\n\nAI活用について宮本氏は、「われわれは、他社より遅れていると認識しています」と現状を厳しく評価します。約1年前からGemini Code Assistの検証をはじめ、現在は「ゼロからのコード生成」を目指し、エディタ、エージェント、プロバイダー、LLMの組み合わせを検討中。AI活用の範囲は、GitLabのコンセプトと一致しており、コード生成だけでなく、設計、ドキュメント作成、テストコード作成・実行など、全工程・全業務へのAI適用を目指しています。\n\n宮本氏は、AI導入の留意点について、「AIガバナンスが大切になります。どこにAIを導入し、だれに使わせ、どこまでの権限を与えるべきかを規定しなければなりません」と話します。AIでフルに自動化し、AIの出した結果を盲目的に信じてしまうと、脆弱性のあるコードが生成され、セキュリティリスクが発生する可能性があります。また、著作権侵害にも注意を払う必要があります。それらの対応策として、前者にはSASTなど、後者には侵害防止機能を持つAIやスキャンツールなどがありますが、ツールの挙動の確実性を含めた精査が必要になりそうです。\n\n![株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179498/odfxcgp4ojscykixhenc.jpg)\n\n*株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏*\n\n機密データやソースコードの外部流出を阻止する開発体制も課題になります。ただ、宮本氏は現時点でローカルLLMの導入に否定的な立場です。「エンジニアは最新技術を求めています。ローカルLLMを導入すると、クラウドで提供されるAIほどの進化スピードを得られないことが問題で、エンジニアは最新の技術を使えない環境を喜びません。インプットは社内で保持し、ロジックのみを外部利用するなどの工夫が必要かもしれません」。\n\nこのように、さまざまな示唆を与えてくれた宮本氏の講演を受けて小澤は、「私たちの行動は、デジタルのタッチポイントが整備されたことで変わってきました。みんなの銀行のBaaSは、どんどん広がっていて、APIの種類も豊富ですから、知らず知らずのうちに使っている機会が増えてきそうです。GitLabは、これからもこのすばらしいサービスを、黒子として支えていきたいと考えています」とセッションを締めくくりました。\n\n![イベントのノベルティ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179493/dzobx7yicnj3kk6rzfyx.jpg)\n\n*イベントで配られたノベルティ*",[899,841,951,717,279,551,779,925],"collaboration",[908],{"featured":91,"template":803,"slug":954},"event-report-gartner-application-innovation-2025",{"content":956,"config":965},{"title":957,"description":958,"authors":959,"date":960,"body":961,"category":721,"heroImage":962,"tags":963},"GitLab with Amazon Qで開発スピードを高め、AI生成コードの品質を担保する【イベントレポート】","この記事ではAWS Summit Japan 2025に出展した際に「GitLab with Amazon Q」について語ったセッションの模様をお伝えします。",[908],"2025-08-05","GitLabは2025年6月25～26日、千葉・幕張メッセで開催された「AWS Summit Japan 2025」に出展しました。今回の目玉となるソリューションは、発表したばかりの「[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)」。ブースにご来場いただいた皆様には直接ご説明でき、デモをご覧いただくなど、大きな注目を集めることができました。このブログでは、会場内のセッションで[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)を紹介した模様をお届けします。ゲストはソニービズネットワークス株式会社（以下、SBN） 開発本部 グループマネージャー 濱田 一成氏です。\n\n![AWS Summit会場の様子](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754372455/azhcpftapneluoxyvgi9.jpg)\n\nこの日のセッションでは、GitLab シニア ソリューション アーキテクト 小松原 つかさが登壇。金色のジャケットを着た濱田氏を壇上にお招きした小松原は、「**金ピカのジャケット！　これは、AWSの全12資格を持っているという意味です。そして、濱田さんはAWSアンバサダーを務めていらっしゃいます。セッション終了後にはぜひみなさん一緒に写真をどうぞ**」と会場を盛り上げます。実は、濱田氏は日本で初めて[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)を使った人物でもあります。講演の後半で、[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)についてリアルな使用感を含めて、さらに詳しく解説してくれます。\n\n## 面白くない仕事をぜんぶAIにやってもらおうという考え方で\n\n![GitLab合同会社 ソリューションアーキテクト本部  シニアパートナーソリューションアーキテクト 小松原 つかさ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353570/bql6ekk9nfrql7ttlam7.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部*\\\n*シニアパートナーソリューションアーキテクト 小松原 つかさ*\\\n\\\n[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)は2025年4月17日に正式リリースしたばかりの最新ソリューションです。GitLabとAWSが協力して完成させた製品で、GitLabのAIエンジン部分のすべてにおいて、AWSの生成AIサービスを利用します。AIの優秀さもさることながら、その最大の特長は、AWSという巨大なインフラを使うことで、実質的にほぼ無制限にスケールできることです。\n\nパワーユーザーに最適なソリューションで、GitLab側は最上位プランである「[Ultimate](https://about.gitlab.com/ja-jp/pricing/ultimate/)」契約が必要になります。かつ、AWSの生成AIサービスと密連携したソリューションになっているため、AWS上で稼働させる必要があります。この2点をクリアできれば、すぐにでも[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)を利用することができます。\n\n「Amazon Q Developer Pro」がバンドルされていることも朗報です。無料版の「Amazon Q Developer」を、たとえばVS Codeを拡張機能を使って[IDE](https://about.gitlab.com/ja-jp/blog/what-is-ide/)（統合開発環境）のように利用しようとする場合、月間使用量が制限されるケースがあります。その点、Proは無料版に比べて大幅に制限が緩和されているため、多くのプロジェクトでは実質的に制限なしで利用できそうです。\n\n小松原は、[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)について、「**クリエイティブなタスク以外のものをAmazon Qにやってもらえるようになります**」と話します。「**チケットを切る、だれかにアサインする、だれかがプログラムを書く、だれかがレビューする、だれかがセキュリティをチェックするというプロセスの中で、面白くない仕事をぜんぶAIにやってもらおうという考え方でオーケーですよ**」。\n\nAIに配慮したエンタープライズセキュリティも備えています。小松原は、「**AIは、結構気をつけておかないと、脆弱性がしれっと入り込んだりします**」と指摘します。GitLabは、セキュリティスキャンやセキュリティチェック確認機能、SOC 2など各種コンプライアンスチェック機能を実装しており、「**GitLabでガードレール部分をしっかりやりながら、AIのパフォーマンスを思う存分使い切れます**」（小松原）。\n\n## サービス維持・発展のプロセスを最適化\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト 小松原 つかさ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353572/ejdmlahcggiyctg7wnwv.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部* \\\n*シニアパートナーソリューションアーキテクト 小松原 つかさ*\\\n\\\n小松原はさらに踏み込み、「ものづくりの後工程に来る“苦痛”を和らげてくれる」ソリューションであるとも語ります。多くのエンジニアにとって、サービス開発で最も楽しい時期は、バージョン1を作る時ではないでしょうか。サービスがリリースされると、たとえばデータベースのスキーマ変更に伴うデータマイグレーションなど、システムを知らない人にとっては簡単そうに見えても、実際には大変な仕事が降りかかってきます。とはいえ、サービスを維持し、利益を支えていくことは極めて重要です。そして、その部分に最大のフォーカスを置いているのがGitLabなのです。\n\n「**ディスカッションの要約機能などは当然として、サービスを維持し、発展させていくプロセスで生まれる大変さを生成AIが和らげてくれる機能がてんこ盛りです**」（小松原）\n\n中でも、セキュリティと脆弱性対策は、「**頑張らなきゃいけないんだけども、だれも評価してくれない仕事（笑）**」（小松原）かもしれません。たとえば、生成AIに、「ユーザー入力から製品を検索するときに、データベースから製品を検索するNode.jsとExpressの関数を書いてください。できるだけシンプルに、最小限のコードで実装してください。パフォーマンスを重視してください」と命令すると、「**データベース検索ですから、当然ながらパフォーマンス重視になります。ただ、AIは肝心のサニティチェックなどをスキップする傾向があるのです。肌感覚では、10回中4回はスキップします**」（小松原）。\n\nこうした問題に対し、[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)では、AIを使って脆弱性の修正提案をできるようにしています。Amazon Qのサービスを使って、脆弱性の分析と修正コードを作成。「なぜこの修正アプローチを取ったのか」まで記述させることで、修正理由が説明可能になります。同様のAI機能は、CI/CDのエラートラブルシュートでも使えます。「設定抜け」や「そもそもジョブの定義が間違い」など、単純ミスでコードが動かないというトラブルは意外と多く、ミスが単純すぎるがゆえに原因究明が遅れて時間を浪費しがちです。一方、AIには予断がないため、単純ミスの発見は得意です。小松原は、「**このように、つまらない仕事はどんどんAIにやってもらいましょう！**」と会場に呼びかけました。\n\n## ひとりの開発者がGitLabの中にいるというイメージ\n\n![ソニービズネットワークス株式会社  開発本部 グループマネージャー 濱田 一成氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353572/d3jtivqwdwqi18cobf2d.jpg)\n\n*ソニービズネットワークス株式会社*\\\n*開発本部 グループマネージャー 濱田 一成氏*\n\n後半は、濱田氏による[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)レビューです。SBNの最大の業務課題は、「人手が足りない」ことです。メンバーはインフラエンジニアの集団で、アプリ開発にかかわれる人が少なく、インフラ業務との兼務が大半。少人数でプロジェクトを回す最適解としての可能性に賭けて、GitLab with Amazon Q DeveloperのPoCをスタートさせました。PoCで得られたメリットは「開発スピード」と「コード品質」の強化です。\n\n開発スピード面では、GitLab上で開発をして、エンジニアが手直しをするライフサイクルに変更したことで、開発工数を削減できました。濱田氏は、「**実際に使ってみてすごく驚いたのが、従来のワークフローに組み込みやすい点。ここが最も良かったと感じた部分です**」と話します。イシューを切ってから「/generate」とコメントを入れると、そのイシューに対してAmazon Q Developerが開発を行ってくれます。修正点があれば、インラインでコメントしてAIエージェントに指示すると結果を返してくれます。「**つまり、人間に対してやってるフローと全く一緒なのです。GitLab with Amazon Q Developerは、ひとりの開発者がGitLabの中にいるというイメージで使えます**」（濱田氏）\n\nコード品質面では、AIが生成したコードをさまざまな手法でレビュー&テストできるようになります。「/review」とコメントしてAIにレビューさせる機能とマージリクエストによる人間のレビューを適切に組み合わせることが可能。GitLabがネイティブに実装するSAST、ペネトレーションテスト、DAST、Pytestなど、言語ごとに存在するテストフレームワークもプロセスに組み込めます。\n\n「**マージリクエストで返却されたものに対して/reviewを実行すると、既存のコードのどこにアップデートがかかったか、どこが悪いのか、といったことを一覧にして戻してくれる。さらに、それをAIに修正してもらうことも可能です。AWS CDKやCloudFormationを活用されている方、インフラを構築されてる方に朗報なのは、このセキュリティ機能を応用可能なこと。インフラエンジニアにとっても親和性の高い機能です**」（濱田氏）\n\n## 「AIとのコラボレーションにおけるクオリティゲート」としての役割に期待\n\n![ソニービズネットワークス株式会社 開発本部 グループマネージャー 濱田 一成氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353572/fah13b0oz7sqzdhy9ew6.jpg)\n\n*ソニービズネットワークス株式会社*\n*開発本部 グループマネージャー 濱田 一成氏*\n\n濱田氏は、「**今後は、AIの生成したコードをレビューすることが人間の仕事になってくるでしょう**」と話し、AIの70%問題についても触れます。これは、現代のAIツールだけで実装できるコードの比率は約70％にとどまり、残りの30％は引き続き人間でないと実装できないことを指します。最終的にアプリケーションの品質を担保するのは人間になるため、GitLabのようなソリューションの役割はますます重要になってきます。\n\nより品質向上を目指す活用スタイルについて濱田氏は、[IDE](https://about.gitlab.com/ja-jp/blog/what-is-ide/)の拡張機能やCLIを通してAmazon Q Developerを使うやり方をシェアしてくれました。GitLabにプッシュする前に必ず、/review、/testを実行し、Amazon Q Developerを使ってコードの品質を高めておきます。その後、GitLab上ですべてのコミットに対してコードレビュー／セキュリティスキャンを追加で実行します。これにより、複数のAIエージェントをうまく組み合わせることが可能になり、人間とAIがコラボレーションしながら、すべてのコードの品質を高めることができます。\n\n濱田氏は、「**GitLab with Amazon Q Developerは、人間とAIのコラボレーションを自然に実現する次世代ツールだと感じました。従来の、人と人とのコミュニケーションのような感覚で、AIをワークフローに取り込めるところが極めて優秀です。AIの実装したコードを安心して製品に取り込むために、GitLab with Amazon Q Developerはクオリティゲートとして使えそうです**」と話してくれました。\n\n![左よりソニービズネットワークス株式会社 濱田 一成氏、GitLab合同会社 小松原 つかさ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353571/mhpaahskofpxfogp0v8c.jpg)\n\n*左よりソニービズネットワークス株式会社 濱田 一成氏、GitLab合同会社 小松原 つかさ*\n\n## GitLabに関する書籍とノベルティ\n\nこの日のセッションでは、小松原より書籍の紹介もありました。\\\nこれら3冊を紹介しています。\n\n> 1. **『[GitLab実践ガイド 第2版](https://amzn.asia/d/fV5hX2w)』**（北山 晋吾・棚井 俊、インプレス）\n>    「GitLabには無償版もあります。無償版のユーザーの方は、ぜひこちらから。この本、超おすすめです。これで勉強していただければ、GitLabの機能を全部マスターすることができます」（小松原）\n> 2. 『**[GitLabに学ぶ 世界最先端のリモート組織のつくりかた ドキュメントの活用でオフィスなしでも最大の成果を出すグローバル企業のしくみ](https://www.amazon.co.jp/GitLab%E3%81%AB%E5%AD%A6%E3%81%B6-%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%82%92%E6%9C%80%E5%A4%A7%E5%8C%96%E3%81%95%E3%81%9B%E3%82%8B%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E6%8A%80%E8%A1%93-%E6%95%B0%E5%8D%83%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E3%82%82%E3%82%8F%E3%81%9F%E3%82%8B%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%97%E3%81%9F%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E6%B3%95-%E5%8D%83%E7%94%B0-%E5%92%8C%E5%A4%AE/dp/4798185701?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2C7VGZ8WMSM1R&dib=eyJ2IjoiMSJ9.vu1WyOMIaee-VDEnzTYCKLpDWeM6PXcF93TbTU5onKPmwTGR2lghKwtz5UKmdAYpwSgcp_-k0qcLOo3Eb7vsGbyIJ1aMhpoW5DPRpJbE_itQSi10WeIg9I7IiPcAup52od7bjxOriVzrl2N8OQ3E-BB5uHwgpo5aVUzOhkHqO1Rnf6HEfZTu1o_vqMpCTqlko24v4ImB7owRe5PeuwNnHsft5zVLng_Wx5I0IVe845f6Mmg1ywH6R45FGCuibkkr0ZeR31ivRg-B8C4QcRxtM9si0A2c7FzPI0VM4-Q4E0w.ItEuqYBuhjEf-AelOcP6fB1j-5Q9SkxDzyHV2uNcXeM&dib_tag=se&keywords=GitLab&qid=1752106423&sprefix=gitlab,aps,166&sr=8-4&linkCode=sl1&tag=68a7j959-22&linkId=affef2c28d1c88a622eef0031c12e747&language=ja_JP&ref_=as_li_ss_tl)**』（千田 和央、翔泳社**）**\n> 3. 『**[GitLabに学ぶ パフォーマンスを最大化させるドキュメンテーション技術 数千ページにもわたるハンドブックを活用したテキストコミュニケーションの作法](https://www.amazon.co.jp/GitLab%E3%81%AB%E5%AD%A6%E3%81%B6-%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%82%92%E6%9C%80%E5%A4%A7%E5%8C%96%E3%81%95%E3%81%9B%E3%82%8B%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E6%8A%80%E8%A1%93-%E6%95%B0%E5%8D%83%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E3%82%82%E3%82%8F%E3%81%9F%E3%82%8B%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%97%E3%81%9F%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E6%B3%95-%E5%8D%83%E7%94%B0-%E5%92%8C%E5%A4%AE/dp/4798185701?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2C7VGZ8WMSM1R&dib=eyJ2IjoiMSJ9.vu1WyOMIaee-VDEnzTYCKLpDWeM6PXcF93TbTU5onKPmwTGR2lghKwtz5UKmdAYpwSgcp_-k0qcLOo3Eb7vsGbyIJ1aMhpoW5DPRpJbE_itQSi10WeIg9I7IiPcAup52od7bjxOriVzrl2N8OQ3E-BB5uHwgpo5aVUzOhkHqO1Rnf6HEfZTu1o_vqMpCTqlko24v4ImB7owRe5PeuwNnHsft5zVLng_Wx5I0IVe845f6Mmg1ywH6R45FGCuibkkr0ZeR31ivRg-B8C4QcRxtM9si0A2c7FzPI0VM4-Q4E0w.ItEuqYBuhjEf-AelOcP6fB1j-5Q9SkxDzyHV2uNcXeM&dib_tag=se&keywords=GitLab&qid=1752106423&sprefix=gitlab,aps,166&sr=8-4&linkCode=sl1&tag=68a7j959-22&linkId=affef2c28d1c88a622eef0031c12e747&language=ja_JP&ref_=as_li_ss_tl)**』（千田 和央、翔泳社**）**\n>    「アジャイル開発やチケット駆動開発ではドキュメンテーションはすごく大切。基本的なことから、普段の業務を劇的に改善するにあたって直接的なインパクトがあることまでが書かれています。これらの2冊、ぜひご活用ください」（小松原）\n\n![GitLabのTシャツ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353571/gtcbk8awj6sjzgjoubx9.jpg)\n\n*抽選の景品：GitLabのTシャツ*\n\n![GitLabのキーホルダー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353589/qilxnjgc84h7ugh5rpfi.jpg)\n\n*抽選の景品：GitLab Tanukiのキーホルダー*","https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353906/qet5wxyn7k3dllq1jbq1.jpg",[964,841,939,951,899,717,279,779,925],"AWS",{"featured":91,"template":803,"slug":966},"event-report-aws-summit-2025",{"category":729,"slug":733,"posts":968},[969,980,991],{"content":970,"config":978},{"description":971,"title":972,"authors":973,"heroImage":975,"date":976,"category":733,"body":977},"SaaSの基礎、利用するメリット・デメリット、PaaSやIaaSとの違い、ソフトウェア開発に役立つサービスなどをご紹介。ぜひお読みください。","SaaSとは？読み方や定義、サービス内容を分かりやすくご紹介",[974],"GitLab Team","https://res.cloudinary.com/about-gitlab-com/image/upload/v1760421091/iaruhhz70gncm8bqfqyg.jpg","2025-10-15","SaaSを利用することで、様々な業務をより効率的に、かつ低コストで実施できます。本記事では、SaaSとは何かを分かりやすく説明するとともに、用途別のおすすめSaaSやソフトウェア開発におけるSaaS活用のメリットなどを解説します。GitLabが提供するSaaSも後半で詳しくご紹介します。\n\n## 目次\n\n* SaaSとは？\n* ソフトウェア利用モデルの比較\n* SaaSのメリット\n* SaaSのデメリット\n* SaaSとPaaS・IaaSの違いとは？\n* SaaSを選ぶ際のポイント\n* 代表的なSaaSと主な機能\n* GitLabはソフトウェア開発にどのように貢献するのか？\n* SaaSやGitLabに関するFAQ\n\n## SaaSとは？仕組みやクラウドとの違い\n\nSaaSは「Software as a Service」の略称で、読み方は「サース」もしくは「サーズ」です。日本語にすると「サービスとしてのソフトウェア」となります。\n\nSaaSは、サービス提供会社（ベンダー）のサーバーで提供されているソフトウェアを、インターネットなどのネットワークを介して利用できるサービスのことです。自身のパソコンや自社サーバーにソフトウェアをインストールしなくても、インターネット経由で最新のサービスを利用できます。\n\nSaaSの例としてよく挙げられるのがGoogleが提供しているGoogleドキュメントやGoogleスプレッドシート、Googleドライブなどです。特定のソフトウェアやアプリをインストールしなくても、これらの機能をオンライン上で自由に利用できます。\n\n弊社が提供しているソフトウェア開発プラットフォーム「[GitLab](https://about.gitlab.com/ja-jp/)」も、ソフトウェア開発に関するSaaSの代表格の1つです。\n\n### SaaSの仕組み\n\n一般的なソフトウェアは自社のサーバーやパソコンなどにインストールして利用しますが、SaaSの場合には、サービス提供会社のサーバーにてソフトウェアが起動しています。インターネットを介してサービス提供会社のサーバーに接続し、そこでソフトウェアを利用する、というのがSaaSの主な仕組みです。\n\n提供会社がソフトウェアを頻繁にアップデートしているため、最新のサービスがどこからでも、どのデバイスからでも利用できます。\n\n### SaaSとクラウドサービスの違い\n\nよく似た言葉に「クラウドサービス」があります。同様の意味合いで使われる用語ですが、クラウドサービスはアプリに限定されないより広範な概念です。後に説明するPaaSやIaaSなどもクラウドサービスに当てはまります。クラウドサービスの1つがSaaSだと考えるとよいでしょう。\n\n## ソフトウェア利用モデルの比較\n\n企業がソフトウェアを利用する方法は主に以下の3つです。\n*  オンプレミス型\n* インストール型\n* SaaS\n\nそれぞれの特徴について簡単に説明します。\n\n### オンプレミス型\n\nオンプレミス型とは、自社のサーバーにソフトウェアを組み入れ、自社独自のシステムを構築する方法です。思い通りにカスタマイズできる、情報漏洩のリスクが少ないなどのメリットがありますが、一方で構築までに時間と費用がかかる、保守が正しくできないとセキュリティリスクが高まるなどのデメリットもあります。\n\n### インストール型\n\nインストール型は、ソフトウェアを利用予定のパソコンにインストールすることで、そのパソコンでのみ機能が使えるようにする方法です。オンプレミス型に比べると低価格で利用できる、導入に時間がかからないなどのメリットがありますが、一方で機能の拡張が難しい、アップデートのし忘れによるセキュリティ脆弱性リスクが高いなどのデメリットがあります。\n\n### SaaS\n\n昨今の主流となっているSaaSは、運営会社が管理しているサービスにインターネットを介してアクセスし、オンライン上で利用する方法です。\nより最先端の機能を利用したい、セキュリティに配慮したソフトウェアを利用したい、料金を安く抑えたいなどのニーズの増加により、オンプレミス型やインストール型ではなく、SaaSを利用する企業が増えています。\n\n## SaaSのメリット\n\nSaaSには、オンプレミス型やインストール型にはない数々のメリットがあります。\n\n### 最新の機能を利用できる\n\nサービス提供会社が自社のサーバー内でソフトウェアのアップデートを行い、そのサービスをインターネットを経由して利用するため、常に最新の機能やデザインを利用できます。\n\n### 利用開始までの時間が短い\n\nSaaSはインターネット上で契約と支払いを済ませたら、即座に利用が可能です。最低利用期間が定められているSaaSが多いものの、解約手続きも比較的簡単です。\n\n### 導入費用を抑制できる\n\n多くのSaaSは初期導入費用が無料、もしくはオンプレミス型と比べて安い傾向にあります。\n初期投資で大きな資金を準備することが難しい企業にとっては、毎月支払いのSaaSの料金プランは大きな魅力といえます。\n\n### セキュリティ対策に強い\n\nSaaSはサービス提供会社がソフトウェアに対してセキュリティ対策を実施します。自社でセキュリティ対策を行う必要がないため、人件費や労力を削減できるとともに、高い安全性が確保されたソフトウェアを使い続けることが可能です。\n\n### 場所を選ばない\n\nSaaSはインターネットさえ使えれば、どこにいても、どのデバイスからでも同様のサービスやデータにアクセスできます。急な出張が入り自身のパソコンを利用できない場合でも、別のパソコンを使ってログインすることで、普段と同じデータにアクセスできます。\n昨今拡大しているリモートワークとも相性のよいモデルとして需要が高まっています。\n\n### 複数人での利用に強い\n\nSaaSは複数人による利用に優れています。元となるデータがクラウドサーバー上に保存されているため、複数人がそのデータに直接アクセスし、同時並行で作業を進められます。\n\n例えば、ソフトウェア開発に関するSaaSを利用すれば、複数のデベロッパーが同時に作業を行い、それぞれの作業を即座に反映させることが可能です。\n\n## SaaSのデメリット\n\n多くのメリットがあるSaaSですが、もちろんいくつかのデメリットもあります。SaaSを利用する際には、これらのデメリットについてもよく理解し、事前に対策を練るようにしてください。\n\n### ソフトウェアアップデートによる急な仕様の変更\n\nSaaSは、サービス提供会社によって常にアップデートが行われています。方向性の転換により、操作画面の機能やデザインが急に変更になったり、これまで頻繁に使っていたシステムがなくなったりすることがあります。以前のバージョンが使いやすかったと感じても、自社の判断によって戻すことはできません。\n\n### 継続的な出費が発生する\n\n初回導入時には比較的予算が抑えられるSaaSですが、月額・年額の継続費用が発生し、長期利用ではコストが高くなる場合があります。\n\n### ログイン情報の漏洩によるセキュリティリスク\n\nサービスにアクセスするためのログイン情報が漏れた場合、他者にアクセスされる可能性が生じます。二段階認証プロセスを利用することで不正なアクセスは防げるものの、ログイン情報の管理については慎重に実施する必要があります。\n\n### ネットワーク環境の影響を受ける\n\nSaaSは、インターネットが利用できない場所では利用できません。停電やネットワークエラーによってインターネットが使えない場合、SaaSにアクセスできなくなり、作業が一時中断してしまう可能性があります。\n\n### SaaS側の不具合やメンテナンス\n\nSaaSが何らかの不具合に直面した場合、もしくは大規模なシステムアップデートのため長期に及ぶメンテナンスが必要になった場合には、サービスが一時的に利用できなくなる可能性があります。\n利用予定のSaaSが頻繁なメンテナンスを実施していないか、メンテナンスの場合には代替機能が利用できるかどうかを事前にチェックするとよいでしょう。\n\n## SaaSとPasS・IaaSの違いとは？サービス内容も紹介\n\nSaaSとよく比較される用語に「PaaS」と「IaaS」があります。自社に最適な機能を選ぶうえで、これらの違いを理解することは非常に重要です。\n\n### PaaSとは\n\nPaaSは「Platform as a Service」の略称で、「パース」と読みます。名称からもわかる通り、PaaSは主にクラウド上で利用できるプラットフォームを指します。PaaSの提供範囲は主にプラットフォームのため、ソフトウェアやアプリは含みません。\n例えばPaaSは、システムやアプリケーションを開発するためのプラットフォームをクラウド上で提供します。複数のデベロッパーが同時にアクセスし、協力体制のもとでアプリケーション開発などを進める場合に役立ちます。\n\n### IaaSとは\n\nIaaSは「Infrastructure as a Service」の略称で、「イーアス」や「アイアース」と読みます。IaaSがクラウド上で提供するのはサーバーやネットワークなどのインフラ基盤のみです。ソフトウェアやプラットフォームなど、事前に構築されたシステムや枠組みがないため、より自由な開発環境を整えたい企業に向いています。ただし、開発環境の構築も含めて自社で実施するだけの人材力やスキルが必要とされます。\n\n### SaaS・PaaS・IaaSの比較\n\nSaaSとPaaS、IaaSの各サービス内容をまとめると、以下のようになります。\n表1　SaaS・PaaS・IaaSが網羅するサービスの比較\n\n| サービス            | SaaS | PaaS | IaaS |\n| --------------- | ---- | ---- | ---- |\n| ソフトウェア・アプリケーション | ◎    |      |      |\n| ミドルウェア          | 〇    | ◎    |      |\n| OS              | 〇    | ◎    |      |\n| ネットワーク          | 〇    | 〇    | ◎    |\n| ストレージ           | 〇    | 〇    | ◎    |\n| サーバー            | 〇    | 〇    | ◎    |\n\n\\\nSaaSはすべてを網羅しているとはいえ、ミドルウェアやOSの使い勝手や機能に関してはPaaSがより優れています。IaaSは質の高いインフラ基盤を比較的安価に導入できる方法として、SaaSやPaaSとは差別化できます。\n\nそれぞれの特徴をよく理解した上で、自社に最適なサービスを導入することが重要です。\n\n## SaaSを選ぶ際のポイント\n\n自社の現状や課題に合ったSaaSを利用することで、業務効率化やコスト削減を実現することができます。一方で、自社に合わないSaaSを選んでしまうと、不慣れな作業によって時間がかかったり、せっかく購入したにも関わらず活用されなかったりする場合があります。\nそのため、SaaSを導入する際には以下のポイントをよく確認するようにしてください。\n\n### 機能性\n\nSaaSの機能は事務系やコミュニケーション系、ソフトウェア開発系など多岐にわたります。自社で解決したい課題をリストアップするとともに、どの機能を備えたSaaSが最適かをよく検討するようにしてください。\nまた、用途だけでなく、機能や操作画面の使い勝手も確認するとよいでしょう。例えば、日本語に最適化されていないSaaSでは、言語の違いによりスムーズに利用できない可能性があります。\n\nミスマッチを防ぐためにも、まずは無料トライアルを提供しているSaaSを選び、試してみることをおすすめします。\n\n### コストや料金体系\n\nSaaSは初期費用が比較的安く設定されているのが特徴です。ただし、毎月もしくは毎年費用が発生するため、長期的にみると大きな費用負担になる場合があります。多くのSaaSは1ユーザーごとの料金設定のため、大勢で利用した場合にはコストが大きくなります。\n\nまた、SaaSは最低利用期間や解約までに必要な月数などが設定されている場合がほとんどです。解約しやすいのがSaaSの特徴の1つですが、場合によっては解約時にも費用が発生する点にも注意が必要です。\n\n### セキュリティ\n\nSaaSでは、システム利用やデータの保管はすべてサービス提供会社のサーバー内で行われるため、自社でセキュリティ対策を実施する必要はありません。ただし、提供会社側でセキュリティ問題が発生した場合には、重要なデータが消去もしくは漏洩する可能性があります。\n\nSaaSを利用する際には、セキュリティ対策の充実度をしっかりと確認するようにしてください。\n\n### サポート体制\n\nSaaSは様々な機能が随時追加されるため、機能やデザインなどに関して、サポートの助けが必要になることが多々あります。特に緊急性のある案件に関係するSaaSにおいては、電話対応や24時間のチャットサポートに対応しているかは重要です。また、海外発のSaaSを利用する際には、日本語サポートにも対応しているかを確認するようにしてください。\n\n## 代表的なSaaSと主な機能\n\n企業が導入を検討すべきおすすめのSaaSを紹介します。\n\n### オフィス業務に強い「Google WorkSpace」\n\n「[Google Workspace](https://www.g-workspace.jp/googleworkspace/)」は、Google社が提供する有料オンラインアプリケーションセットです。GoogleドキュメントやGoogleスプレッドシート、Googleドライブ、Gmailなど、オフィス作業や業務効率化に役立つ数々のツールが利用できます。データはすべてGoogleのサーバー内に保管され、Googleが常に最新のセキュリティ対策を行っているため、安心して利用できます。\n\n利用には一定の[費用](https://www.g-workspace.jp/price/)が掛かりますが、様々な便利機能を安心して利用したい企業におすすめです。\n\n### 気軽なチャット機能が人気「ChatWork」\n\n多くの企業が導入しているチャット型のコミュニケーションツールが「[ChatWork](https://go.chatwork.com/ja/)」です。メールでのやりとりでは、文章を作成したり回答を得たりするのに時間がかかりますが、ChatWorkのチャットであれば時間を大幅に削減できます。\n\nチャットデータはすべてChatWorkが管理するサーバー内に保管されているため、パソコンやスマホ、タブレットなど、デバイスを選ばずに利用できます。日本企業が開発したSaaSのため、日本人が使いやすいように設計・最適化されているのも大きな魅力といえます。\n\nフリープランは無料で利用できますが、ビジネス用途であれば高いセキュリティ性能を備えた[エンタープライズプラン](https://go.chatwork.com/ja/price/?click=header-navi)がおすすめです。現在社内でのやりとりでメールを利用している、社員間のコミュニケーションを促進するツールを探している企業に最適です。\n\n### オンラインミーティングの大改革を果たした「Zoom」\n\nミーティングや営業のあり方を大きく変えたことで知られるのが「[Zoom](https://www.zoom.com/ja)」です。インターネットを利用したオンラインミーティングが実施でき、異なる場所や出張時・在宅ワークなどでのミーティング参加が可能となりました。\n\nまた、Zoomは営業向けにも様々な便利機能を追加しており、録画機能や自動文字起こし、資料の共有、スケジュール管理など、1つのツールで多様な課題を解決できます。\n\n無料のベーシックプランでもオンラインミーティング機能は利用できますが、長時間のミーティングを開催したい、より便利な機能を利用したいという方は、有料の[ビジネスプラン](https://www.zoom.us/ja/pricing?optimizely_user_id=e1913a438ebff25397b6ac8df20b7ac4&amp_device_id=a3148cc2-3076-420f-9c2e-569a037fc688&_ics=1731285869840&irclickid=%7Ebhadihjcf8134WZOMNV1RIJGKHABFxwrmukopfgb3VKHFAypg-8Z&_gl=1*sl16es*_gcl_au*MzE1NDA4NTUwLjE3MzEyODU4Njk.*_ga*NTAzNTU1OTQ1LjE3MzEyODU4NzA.*_ga_L8TBF28DDX*MTczMTI4NTg3MC4xLjAuMTczMTI4NTg3MC4wLjAuMA..&_ga=2.208402578.1219391157.1731285871-503555945.1731285870)がおすすめです。\n\n### アプリケーション開発に最適な「GitLab」\n\nアプリケーション・ソフトウェア開発におすすめのSaaSが、弊社が提供する「[GitLab](https://about.gitlab.com/ja-jp/)」です。AI搭載のDevSecOpsプラットフォームで、開発効率化やセキュリティに優れています。\n\n複数のデベロッパーが同時並行で作業できる[マルチテナント環境](https://about.gitlab.com/ja-jp/why-gitlab/)を提供するとともに、AIを含めた様々な便利アプリにより開発を効率化できます。\n\nビジネス目的であれば、より多くの機能が利用でき、かつセキュリティも充実している「Premium」や「Ultimate」などの有料プランがおすすめです。60日間の[無料トライアル](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/why-gitlab/&glm_content=default-saas-trial)もあるため、まずはお気軽にお問い合わせください。\n\nまた、より迅速に開発を進めたい方向けに、シングルテナント型SaaSで提供される「[GitLab Dedicated](https://about.gitlab.com/dedicated/)」サービスもあります。GitLabチームがプラットフォーム管理やデプロイを担当するため、必要な作業が大幅に削減され、重要なタスクに注力可能です。\n\n## GitLabはソフトウェア開発にどのように貢献するのか？\n\nGitLabは、クラウド上で機能するソフトウェアアプリケーション開発プラットフォームです。企業は開発、保護、そしてデプロイの複雑化に効果的に対応でき、結果としてサイクルタイムを1/7に短縮できる可能性があります。\nデベロッパーの生産性が向上するとともに、メンテナンスに必要な時間を削減できるため、多くの時間をより重要な作業に費やすことが可能です。スピーディで効率的な開発を行うことで、他社と差別化できます。\n\n従来からDevSecOpsプラットフォームの開発に専念してきたGitLabでは、特にセキュリティ分野において優位性を持ちます。GitLabのセキュリティ対策チームが常に最新のセキュリティ対策を研究し、ツールに導入しているため、弊社SaaSを利用する際には、すでに最新の対策が施されている状態です。これにより、開発したソフトウェアの安全を確保します。\n\n## SaaSやGitLabに関するFAQ\n\nSaaSやGitLabに関するFAQについて以下にまとめてあります。ぜひ参考にしてください。\n\n### GitLabではどのようなSaaS開発環境やオプションが可能か？\n\nGitLabでは、GitLabプラットフォームが自由に使える[マルチテナントSaaS](https://about.gitlab.com/ja-jp/why-gitlab/)と、デプロイや管理をGitLab側で担当するシングルテナントSaaSの[GitLab Dedicated](https://about.gitlab.com/dedicated/)のどちらかをお選びいただけます。また、GitLabではオンプレミスにも対応しています。\n\\\nSaaSによるソフトウェア開発が初めてで管理や操作に不安が残る方には、GitLab Dedicatedをおすすめします。ぜひご検討ください。\n\n### 開発分野のSaaSに限定した場合、オンプレミスと比べてどのようなメリットがあるか？\n\nオンプレミス型の開発環境の場合、セキュリティやガバナンス対策を自社ですべて実施する必要があります。人材を保守や運用、調査などに回す必要があるため、大きな人的コストがかかるのと同時に、開発速度も遅くなります。\\\n\\\nSaaSによる開発環境では、セキュリティやガバナンスをGitLabが調査、適用するため、保守運用にかかる時間を大幅に削減できます。昨今は必要なセキュリティ対策やガバナンス対策が頻繁に変化する時代です。SaaSによる開発環境を利用することで、それらの心配をする必要がなくなり、重要な作業に集中できます。\n\n### その他のSaaS開発環境と比較した際のGitLabの強みとは\n\nGitLabは、ソフトウェア開発のライフサイクル全体に対応する**DevSecOpsプラットフォーム**です。Fortune100企業の50％強が利用し、登録ユーザー数は2024年時点で約3,000万人を超えています。\\\n\\\nGitLabは迅速かつ効率的なソフトウェアデリバリーを実現する包括的なプラットフォームとして常に進化を遂げてきました。また、早くからセキュリティやコンプライアンスを重要な軸として位置づけ、プラットフォーム内に機能を組み入れてきた歴史があります。\\\n\\\n昨今はセキュリティに配慮しつつ、ガバナンスやコンプライアンスを順守しながらソフトウェア開発を進めていく必要があります。しかしながら、優秀なデベロッパーが保守運用に時間をとられ、何よりも重要な開発作業に時間を割けない問題が多くの企業で発生しています。GitLabプラットフォームを利用することで、デベロッパーがセキュリティ対策やエラー修正にかける時間を大幅に削減できます。\n\n[GitLab](https://about.gitlab.com/ja-jp/)は、設立当初から、リモートワーク、オープンソース、DevSecOps、イテレーションへの確固たる信念を持ち続けてきました。GitLabは新しいイノベーションを模索し続けます。より優れた開発プラットフォームを模索している企業様に、GitLabは最先端・最高品質のサービスを提供いたします。",{"featured":6,"template":803,"slug":979},"what-is-saas",{"content":981,"config":989},{"title":982,"description":983,"authors":984,"heroImage":985,"date":986,"body":987,"category":733,"tags":988},"AIプラットフォームとは","AIプラットフォームの種類や機能、そのメリット・デメリットを徹底解説します。",[974],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1759710675/bp7phtsziq0begfmoifj.jpg","2025-10-06","### 目次\n\n* AIプラットフォームとは \n* AIプラットフォームの種類\n* AIプラットフォームの主な機能 \n* AI開発環境とは\n* GitLabではどのようにAIを活用してDevSecOpsプラットフォームを強化しているのか\n* GitLabなどのAIプラットフォームを使用するメリット\n* AIプラットフォームの課題やデメリット\n* GitLabはどのようにAIプラットフォームのデメリットを克服しているのか\n* FAQ（よくある質問）\n\n## AIプラットフォームとは\n\nAIプラットフォームとは、人工知能（AI）の開発・運用を行なう際の基盤を提供するシステムのことで、開発や実行に必要な機能やデータがひとつになっています。具体的には、機械学習（ML）や深層学習（ディープラーニング）モデルを構築、開発、評価、実装、実行するための統合テクノロジーです。AIプラットフォームを正しく使えば、手作業でするより、より高速に、より高い精度で開発を進めることができます。\n\nAIプラットフォームはAIの機能を構築し、モデルを訓練・評価し、実用化するまでをトータルでサポートする環境とも言えます。AIを使った開発を行なう際は、まずAIが動作する環境を整え、AIに学習データを読み込んでモデルを構築します。一般的なAI開発アプリケーションの場合、AIプラットフォームを活用することで、AI開発プロセスにおけるモデル開発の工程を簡略化できます。AIプラットフォームに既にAIの動作環境が整っているため、AIを構築する手間が省略できるからです。開発工程の難度が下がれば、AI開発のコストを抑えられます。\n\n## AIプラットフォームの種類\n\nAIプラットフォームには、PaaS系の総合型AIプラットフォームと、特化型AIプラットフォームの2種類があります。\n\n**PaaS（Platform as a Service）系の統合型AIプラットフォーム**は、AI開発に必要な環境がすべてクラウドに揃っているサービスです。アプリケーションを稼働するためのネットワーク、ハードウェア、OS、ミドルウェアなどのプラットフォームに加え、膨大な量のデータを学習したAIモデルが用意されています。\n\n**特化型AIプラットフォーム**は、特定の業界や機能に特化したAIプラットフォームです。汎用性は高くありませんが、得意な領域では特定のタスクを効果的に処理できます。つまり、開発できるAIの種類は少なくなりますが、より高精度なAIを効率よく開発できます。\n\n## AIプラットフォームの主な機能\n\nAIプラットフォームには、AI開発をサポートする機能が備わっています。主なAIプラットフォームには以下の機能が含まれます。\n\n* **データ収集**\n\nAIを優れたものとするには、良質な学習データの収集が欠かせません。AIプラットフォームのデータ収集機能を活用すれば、データを無駄なく効率的に収集できます。\n\n* **データ処理**\n\n収集したデータは、AIに適した形式に変換・加工しなければなりません。AIプラットフォームの機能を使えば、データの分割や正規化などの処理作業も効率よく進められます。\n\n* **モデル構築**\n\nAIモデルとは、AIでデータを処理するときのパターンのことで、データ解析を行なう方法のひとつです。AIモデルの種類には、「回帰モデル」や「分類モデル」などさまざまな種類があります。AIモデルではまず仮のモデルを構築し、想定しているものが実現可能かどうかを実際のデータを使って検証します。アルゴリズムの選択もこの段階で実施されます。\n\n* **再学習**\n\nAIプラットフォームでは、継続的な運用に向けた再学習やデータの見直しを行ないます。最新の学習データやフィードバックを取り込むことで、AIの精度が高まります。再学習には、モデルの再学習、デプロイ、パラメータの調整、監視などが含まれます。\n\n## AI開発環境とは\n\n近年、AI（人工知能）の発展は目覚ましく、AIをビジネスで活用したいと考えている企業も増加しています。ただし、AI開発には専門知識が必要で、適切な開発環境も整える必要があります。\n\nAI開発環境とは、AIモデルの設計・開発・テストを行なうためのインフラとツールが整った作業環境を指します。AI開発を進めるには、プログラミングスキルやデータ分析スキルといった専門知識に加え、ハードウェア・ソフトウェアの環境整備が必要です。機械学習（ML）アルゴリズムや深層学習（ディープラーニング）モデル、環境を構築するためのフレームワークやライブラリも不可欠です。\n\n## GitLabではどのようにAIを活用してDevSecOpsプラットフォームを強化しているのか\n\nGitLabでは、AI機能を活用して[DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/)（開発・セキュリティ・運用の統合）を強化しています。[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)は、現在利用できるAI搭載プラットフォームの中で最も包括的なDevSecOpsプラットフォームです。GitLabは、ソフトウェアの開発、セキュリティ、デプロイなど、DevSecOpsライフサイクル全般にわたってチームをサポートします。 [強力なAIを搭載した包括的なDevSecOpsプラットフォーム](https://about.gitlab.com/ja-jp/blog/gitlab-flow-duo/)が、コードレビューやテスト自動化の支援、セキュリティ脆弱性の予測や対策の提案、プロジェクト管理の効率化などをサポートするため、イシュー管理、バージョン管理、コードレビュー、継続的インテグレーション / 継続的デリバリ ([CI/CD](https://about.gitlab.com/ja-jp/blog/what-is-ci-cd/))、モニタリングが、ひとつのアプリケーションで完結します。開発から運用までのプロセスを迅速かつ安全に進められます。\n\n## GitLabなどのAIプラットフォームを使用するメリット\n\nAIプラットフォームを使用するメリットとして、以下が挙げられます。\n\n* **コストの縮減**\n\nAIプラットフォームを導入すれば、すべてを自社開発した場合と比べて開発期間が短縮でき、コストを抑えることができます。AIの開発には、サーバーやOSといったさまざまなリソースが必要ですが、AIプラットフォームにはAI開発の基盤となるシステムが備わっているため、ノーコードで開発でき、コーダーなどの人件費も節約できます。それにより、求められる機能を備えたAIを、低コストで効率よく開発できます。\n\n* **システム開発の高速化**\n\n既存の機能や環境、AIモデルを利用することで、システム構築のスピードが上がります。ゼロからシステムを構築する場合、AIが動作できる環境を整え、それからAIに学習データを読み込ませてモデルを構築する工程が必要になりますが、AIプラットフォームを使えば、この工程を省略できます。\n\n* **AI専門エンジニアが不要な場合も**\n\nAIプラットフォームなら、前述のようにノーコードでAIを導入できる環境が整っているため、プログラミングの知識がなくてもAI開発ができる場合があります。プログラミング言語を習得する必要性が減ってきているのです。[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)は、コードの理解からセキュリティ脆弱性の修正まで、最適なAIモデルが単一のプラットフォームに統合されています。エンジニアでなくてもAI開発に取り組めるようになります。\n\n* **小規模なAI開発から始められる**\n  AIプラットフォームはさまざまな規模のAI開発に対応しているため、規模の小さいAIから開発を始め、規模を大きくしていくことができます。これにより、AI開発は大企業だけではなく、中小企業やスタートアップでも取り組めるようになりました。\n* **DevSecOps（開発・セキュリティ・運用）におけるエラーの早期発見と対策**\n\nGitLabのAIプラットフォームなら、DevSecOpsチームはAI開発を加速できます。このAIプラットフォームは、チームが問題を早期に発見して修正できるよう設計されているため、問題が複雑化する前に対応でき、後から大きなコストがかかる事態を防ぐことができます。\n\n## AIプラットフォームの課題やデメリット\n\nAIをソフトウェア開発プロセスに統合するメリットは数多くありますが、AIプラットフォームにはデメリットもあります。導入を検討する際は、次のような点を考慮する必要があります。\n\n* **開発や運用に専門知識やスキルが求められる場合がある**\n\n  AIプラットフォームの中にはコーディングの知識が必要なものもあります。こうした知識や技術が必要になる場合、導入コストが高くなることがあります。\n* **機能確認を怠ると導入に失敗する場合もある**\n\n  どんなAIを開発したいのか、どのくらいのデータを扱うのかなどを事前に確認せずにAIプラットフォームを選択してしまうと、導入に失敗する恐れがあります。事前調査を怠らず、しっかりと目的に合ったAIプラットフォームを選択しましょう。\n* **データ品質とデータセキュリティの問題**\n\n  AIプラットフォームを利用する際には、データの品質やセキュリティに関する技術的な課題が生じる場合があります。データの品質ならびにセキュリティ要件を担保するためには、データの検証やクレンジング、アクセス制御の厳格化、プライバシー保護の強化などが求められます。\n\n  [GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)なら、AIを活用した機能を利用できるユーザー、プロジェクト、グループを自由に設定できます。また、プロプライエタリコードやデータがAIモデルのトレーニングに使用されることはないため、情報の機密性を保つことができます。\n\n## AIプラットフォームのデメリット克服のためのGitLabの取り組み\n\nGitLabでは、AIプラットフォームのデメリットを克服するために、データの品質やセキュリティ、ユーザーのプライバシー保護を強化しています。\n\nソフトウェア開発におけるAIの有効性は、コード生成といった生産性メトリクスだけでなく、コード品質、保守、テスト、セキュリティに対してAIがもたらす影響も考慮して測定すべきです。また、コーディングプロセスにAIを統合することで、ソフトウェアデベロッパーが戦略的タスクにかけられる時間が増え、認知負荷が軽減され、より優れた価値を提供できるようにもなります。\n\n* **データ品質管理**\n\n  GitLabでは、データの品質管理に自動データ検証を取り入れ、トレーニングデータや運用データに不正確な情報やバイアスが含まれるリスクを減らし、AIモデルの精度向上を図っています。また、継続的インテグレーション/継続的デリバリー（[CI/CD](https://about.gitlab.com/ja-jp/blog/what-is-ci-cd/)）の導入により、データの一貫性と品質を維持しています。\n* **セキュリティ対策**\n\n  GitLabでは、AIモデルとデータのセキュリティ監視を実施し、AIモデルやデータストレージへの脅威をリアルタイムで検出し、リスクに迅速に対応しています。また、データアクセスについては、ユーザーやチームごとにアクセス制御を行ない、内部からのデータ漏えいリスクを軽減しています。\n* **自動化とコラボレーション支援**\n\n  GitLabのAIツールは、反復的な作業を自動化し、デベロッパーの生産性向上を図ることにより、コラボレーションを促進します。この効率化により、エラーや不整合の発生を抑え、チーム全体でのスムーズな開発体制が可能になります。\n\nGitLabは、上記のような取り組みにより、AIプラットフォームのデメリットを最低限に抑え、デベロッパーにとって安全で信頼性の高い環境を提供しています。\n\n## まとめ\n\nAIは現在、ソフトウェア開発において広く使用されています。この記事では、AIプラットフォームのメリットやデメリットなども採り上げ、問題を認識しつつ、イノベーションが促進される環境作りを担うAIプラットフォームについて解説してきました。専門知識や開発経験があまりなくても、AIプラットフォームを使えば、AIの開発・運用がスムーズに行なえます。\n\n## FAQ（よくある質問）\n\n1. **AI開発環境であるAIプラットフォームについて分かりやすく説明してください。**\n   AIプラットフォームとは、人工知能（AI）の開発・運用を行なう際の基盤を提供するシステムのことで、開発や実行に必要な機能やデータがひとつになったものです。具体的には、機械学習（ML）や深層学習（ディープラーニング）モデルを構築、開発、評価、実装、実行するための統合テクノロジーです。\n2. **AIプラットフォームには何種類ありますか。**\n\n   AIプラットフォームには、大きく分けて2つの種類があります。「PaaS系の総合型AIプラットフォーム」と「特化型AIプラットフォーム」です。詳しくは、本記事の「AIプラットフォームの種類」をご覧ください。\n3. **AIプラットフォームはどう機能しますか。**\n\n   AIプラットフォームには、AI開発を支援するための機能がいくつか備わっています。データ収集、データ処理、モデル構築、再学習の4つが主要機能といえます。詳しくは本記事の「AIプラットフォームの主な機能」をご覧ください。",[841,717,799],{"featured":6,"template":803,"slug":990},"what-is-ai-platform",{"content":992,"config":1001},{"heroImage":993,"body":994,"authors":995,"updatedDate":996,"date":997,"title":998,"tags":999,"description":1000,"category":733},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758787930/roadmap_hero_e8ngpm.jpg","ソフトウェア開発のプロジェクト管理を適切に行うためには、ロードマップの作成と活用が大切です。実際にロードマップを作成しようとしているものの、具体的な作り方を理解していない人もいるのではないでしょうか。\n\nこの記事では、ソフトウェア開発におけるロードマップの必要性やメリット、作成方法を解説します。ロードマップの作成に役立つおすすめのツールも紹介するので、ぜひ参考にして下さい。\n\n## 1. ロードマップとは？\n\n![ロードマップとは？](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image3_fqxc8r.jpg)\n\nロードマップとは、プロジェクトや事業戦略において設定した目標やゴールまでの道筋を、時系列で視覚化した工程表のことです。より簡潔に説明すると、目標達成のために「いつまでに具体的に何をするのか？」という情報を表でまとめて関係者全員に共有する形で活用します。\n\nロードマップはビジネスやIT領域において重要な役割を持っており、積極的に活用することで関係者間での連携や課題把握が容易になるため、効率的にプロジェクトを進められます。\n\n## 2. ロードマップの主な種類\n\n![ロードマップの主な種類](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image2_xzzxjl.jpg)\n\nロードマップは大まかに以下の2つの種類に分けられます。ここでは、それぞれの特徴について解説します。\n\n* プロジェクトロードマップ\n* プロダクトロードマップ\n\n### 2-1. プロジェクトロードマップ\n\nプロジェクトロードマップは、プロジェクトを円滑に進めるために全体像を管理する目的で活用されるロードマップです。具体的には、プロジェクトの目標や実施するタスクの内容などを記載して作成します。\n\nロードマップの基本的なフォーマットであり、多くの場合ロードマップと呼ぶ場合は、このプロジェクトロードマップのことを指しているという認識で問題ないでしょう。\n\n### 2-2. プロダクトロードマップ\n\nプロダクトロードマップとは、特定の製品やサービスに関する目標や戦略、スケジュール計画などが記載されたロードマップのことを指します。具体的にどのようなプロダクトを開発するのかといった方向性や搭載すべき機能、リリース予定日などを整理して活用します。プロダクトロードマップは、製品開発に関係する人間だけでなく、マーケティング部門などにも共有されるツールです。\n\nプロジェクトロードマップは、プロジェクト全体の管理に活用されるのに対して、プロダクトロードマップは製品開発に焦点を絞ったロードマップであるという違いを理解しておくと良いでしょう。\n\n## 3. ロードマップとマイルストーンとの違い\n\n![ロードマップとマイルストーンとの違い](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image5_pozefp.jpg)\n\nロードマップを正しく理解するためには、マイルストーンとの違いも把握しておくことが大切です。マイルストーンとは、プロジェクトにおける重要な中間目標や通過点、イベントを指します。\n\n例えば、ソフトウェア開発においては実装やテスト完了などのタイミングでマイルストーンが設置されます。\n\n対してロードマップはプロジェクトの全体の計画を示すものになります。ロードマップの中にマイルストーンを設置することで、目標に対して作業が順調に進んでいるかどうかをより把握しやすくなります。特にプロジェクト期間が長期に及ぶ場合は進捗把握が難しくなるため、適切なフェーズでマイルストーンを設置しておくことが大切です。\n\n## 4 ロードマップとガントチャートの違いと併用可否について\n\n![ロードマップとガントチャートの違いと併用可否](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image4_rs35we.jpg)\n\n[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)とは、プロジェクトにおける細かなタスクや期日を管理して、日々の進捗を確認するためのツールです。一方、ロードマップは、プロジェクトの全体の計画を示すものであり、日々の細かなタスク管理には向いていません。\n\nしかし、ロードマップを作成する際に[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)の要素を取り入れる、つまり[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)をロードマップのフォーマットとして活用することで全体の計画だけでなく、日々の細かなタスク管理もできるようになるため、より綿密に計画を進められるでしょう。\n\n[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)については以下の記事で詳しく解説しているので、ぜひあわせてご覧下さい。\n\n[ガントチャートとは？ソフトウェア開発における役割やメリット、作り方](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)\n\n## 5. ソフトウェア開発におけるロードマップの必要性・目的\n\n![ソフトウェア開発におけるロードマップの必要性・目的](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image7_h49pwa.jpg)\n\nソフトウェア開発においては、プロジェクト完了までに要件定義や基本設計、開発、テストなどさまざまな工程を踏む必要があり、開発エンジニアだけなく顧客など、プロジェクトに関与する人間もさまざまです。\n\n問題なくプロダクトをリリース・納品するためには関係者全員で計画を共有し、同じ方向を向いてプロジェクトを進めなければなりません。\n\nロードマップを作成すれば一目で全体の計画を把握できるため、関係者間での情報共有が容易になり、スムーズにプロジェクトを進められます。また、急なトラブルが発生した場合でも事前に計画を立てておけば柔軟に対応することができるため、ロードマップはソフトウェア開発の領域において重要なツールのひとつだと言えます。\n\n## 6. ソフトウェア開発においてロードマップがもたらすメリットと効果\n\n![ソフトウェア開発においてロードマップがもたらすメリットと効果](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image6_tbg4pa.jpg)\n\nここでは、ソフトウェア開発においてロードマップがもたらす具体的なメリットと効果について解説します。\n\n* プロジェクト全体を可視化できる\n* チーム間の共通認識が生まれる\n* 進捗や課題を把握しやすくなる\n* 開発関係者のモチベーションの維持につながる\n\n### 6-1. プロジェクト全体を可視化できる\n\nロードマップならプロジェクト全体を可視化できるため、進むべき道のりや目標が明確になり、無駄のないスムーズなスケジュール進行ができます。「◯月◯日までにクライアントにシステムを納品する」というように具体的な期限も設定されるため、それに向けた優先順位や行動計画が立てやすくなり、効率よく開発を進められるでしょう。\n\nまた、ロードマップでプロジェクトの全体を可視化しておくことで、遅延やリソース不足などのリスクが発生する可能性があるフェーズを事前に予測できるため、必要な対策を早期に検討することも可能です。\n\n### 6-2. チーム間の共通認識が生まれる\n\nロードマップを作成すれば、関係者間での情報共有が容易になります。プロジェクトを進行する上で関係者間で認識の違いがあると、失敗を招く場合があります。例えば、本来必要のない作業が計画に含まれていると、納期遅延が発生してしまうでしょう。\n\nロードマップを作成して事前に必要な情報を開発チームや顧客との間で共有しておけば、全員が共通の認識のもとでプロジェクトを進行できるため、方向性がズレることなくタスクを着実に進められるでしょう。また、開発メンバーそれぞれが目標達成のために何をすべきか自分の役割を把握できるでしょう。\n\n### 6-3. 進捗や課題を把握しやすくなる\n\nロードマップによって全体のスケジュール計画を示すことで、プロジェクトの進捗管理もしやすくなります。明確な目標があれば、「現状目標に向かってどのくらい作業が進んでいるか」という達成度合いを把握できるため、その中で課題があれば必要に応じて計画を修正したりなどの対応が可能になります。\n\n[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)風に作成すれば、より細かなタスクの進捗を把握できるため、プロジェクトの遅延防止につながります。\n\n### 6-4. 開発関係者のモチベーションの維持につながる\n\nロードマップによって明確な最終目標やマイルストーンが設定されることで、開発メンバーのモチベーション維持や向上にもつなげられます。\n\nロードマップがない場合、どの方向に向かって何をすべきかが不明瞭であるため、必要のないタスクが発生したりなどのトラブルが生まれる可能性が高まります。その結果、メンバーのモチベーションが低下してしまい、プロジェクト進行に悪影響を及ぼしてしまうでしょう。\n\nロードマップを活用すればメンバー間の認識のズレも防止でき、互いに情報共有しながら協力的にプロジェクトを進められます。\n\n## 7. ロードマップの作成ステップ\n\n![ロードマップの作成ステップ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857325/roadmap_image9_oozjy9.jpg)\n\nここでは、実際のロードマップの作成方法について解説します。\n\n1. 目標設定\n2. 現状把握\n3. リスク対策\n4. マイルストーンの設定\n5. スケジュール計画表の作成\n6. 関係者への共有と改善\n\n### 7-1. 目標設定\n\nまずは目標設定を行い、プロジェクトとして進むべき方向性を明確化します。目標設定においては、関係者全員が理解できるよう具体性を持たせることが大切です。また、目標達成のハードルが高い場合、メンバーのモチベーション低下を招いてしまう原因にもなるため、実現可能な目標を設定しましょう。\n\n例えば、ソフトウェア開発において顧客にプロダクトを納品するなら、具体的な納品日を目標として設定すると良いでしょう。\n\n### 7-2. 現状把握\n\n目標設定が完了したら、現状抱えている課題を洗い出します。例えば、顧客にプロダクトを予定通り納品するに当たり、「開発リソースは足りているか？」「メンバー構成に問題はないか？」などの現状の状態をチェックしていきます。開発メンバーや顧客に対してもヒアリングを行い、プロジェクト開始前に懸念点がないか確認しておくと良いでしょう。\n\n現状課題があるのにもかかわらずプロジェクトが開始されると、進行中にトラブルが発生してしまう可能性が高くなるため、現状把握を徹底して行い事前に課題を解消しておきましょう。\n\n### 7-3. リスク対策\n\nプロジェクト開始前には進行中に想定されるリスクについても洗い出し、必要な対策を検討しておく必要があります。例えば、市場の変化や顧客の要望により急な仕様変更が発生したり、タスクの依存関係からスケジュールに影響が出たりする可能性もあります。\n\nそういったリスクが実際に起こった時にどのような対策を講じるのかを事前に検討しておくことで柔軟かつ迅速に対応できるため、プロジェクト進行における安定性を高められるでしょう。\n\n### 7-4. マイルストーンの設定\n\nマイルストーンは先ほど説明した通り、プロジェクトにおける中間目標を指します。最終的な目標だけでなく、中間目標であるマイルストーンを設定することで進捗管理がしやすくなります。また、長期に及ぶプロジェクトであっても、中間目標があることで着実に作業が進んでいることを実感できるため、メンバーのモチベーションも保ちやすくなるでしょう。\n\nなお、マイルストーンを設定する際にも実現可能かどうかという視点を持って検討することが大切です。\n\n### 7-5. スケジュール計画表の作成\n\n最終目標やマイルストーンなどの情報を実際にスケジュールに組み込んでいきます。スケジュールを作成する際には、[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)や計画表、フローチャートなどのフォーマットを利用します。\n\nソフトウェア開発ならタスクの細かな期日や依存関係を把握できる[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)の利用がおすすめです。[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)を作成する際にはWBS（Work Breakdown Structure）についても理解しておく必要があります。\n\nWBSとは、プロジェクトを達成するためにどのようなタスクが必要なのかを整理したリストを指します。WBSによって細分化されたタスクを利用して[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)を作成するため、両者は密接な関係にあります。\n\n### 7-6. 関係者への共有と改善\n\nロードマップが無事完成したらプロジェクトにおける関係者全員に共有します。その際、開発メンバーや顧客から計画や内容の修正案が出た場合は、必要に応じてブラッシュアップします。\n\nまた、プロジェクトは関係者全員が同じ認識を持って進めなければならないため、丁寧に擦り合わせを行いメンバーの意見をきちんと反映する意識を持つことが大切です。\n\n## 8. ロードマップ作成時の注意点\n\n![ロードマップ作成時の注意点](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857324/roadmap_image8_djpztu.jpg)\n\nロードマップは以下のようなポイントを意識して作成しましょう。\n\n* 見やすさを意識して作成する\n* 計画の実現性を意識する\n* 定期的な見直しを実施する\n\n### 8-1. 見やすさを意識して作成する\n\nロードマップは関係者全員に共有するものであるため、誰もが見やすいように視認性の高さを意識することが大切です。\n\n例えば、レイアウトを工夫したり、重要なマイルストーンにはアイコンを適宜活用したりすると良いでしょう。\n\nロードマップに情報を詰め込み過ぎるとかえって見づらくなり、重要なポイントを見逃してしまう可能性もあるため記載する情報を絞ってから作成しましょう。\n\n### 8-2. 計画の実現性を意識する\n\nロードマップを作成する際には、設定した目標や計画が実際に実現可能なのかも精査しなければなりません。\n\n例えば、ソフトウェア開発なら設定した納期は現実的であるか？現状のエンジニアのスキルや人数でタスクを完了させられるのか？などの実現性を細かにチェックします。\n\nまた、計画を立てる際に開発メンバーや顧客の要望に答え過ぎると全体の方向性がブレたり、実現不可能な計画になってしまったりする可能性があるため注意が必要です。関係者の声はきちんと拾い上げつつも、その情報を実際に計画に反映するかどうかはきちんと検討しなければなりません。\n\n### 8-3. 定期的な見直しを実施する\n\nロードマップは一度作成して終わりではなく、定期的な見直しが必要です。例えば、アジャイル開発ならスプリント終了時に現状把握と必要に応じてロードマップの修正を行います。\n\nまた、プロジェクト進行中にリソース不足から作業の遅延が発生したり、情勢の変化によって新たなニーズが生まれたりした場合なども、変化に合わせて柔軟に更新する必要があります。\n\n## 9. ロードマップの作成手段\n\n![ロードマップの作成手段](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857640/roadmap_image12_ec6abk.jpg)\n\nロードマップを作成する手段としては、エクセルやパワーポイント、専用ツールが挙げられます。ここでは、それぞれの特徴について解説します。\n\n### 9-1. エクセル・パワーポイント\n\nエクセル・パワーポイントはロードマップの作成に使用することができます。エクセルやパワーポイントはビジネスで日常的に使用されるツールでもあるため、使い慣れていれば手軽にロードマップを作成できるでしょう。また、自社で既にMicrosoft Officeを導入しているのであれば、ツール導入の手間を省略できます。\n\nエクセルならセル・列の自由編集、グラフやチャートの挿入、条件付き書式などを活用して自社のプロジェクトに応じて自由にカスタマイズすることが可能です。\n\nパワーポイントなら図形を使ってより視覚的にロードマップを表現できるため、関係者にわかりやすい形で計画を共有したい場合に役立つでしょう。\n\n### 9-2. 専用ツール\n\nロードマップにおいては、専用のプロジェクト管理ツールなどを活用して作成することも可能です。専用ツールならマイルストーン機能やタスクの依存関係の設定など、豊富な機能が搭載されているため、視認性の高いロードマップを作成できるでしょう。関係者全員がツールにアクセスすれば情報共有もスムーズに行えるため、認識のズレの防止にもつながります。\n\nまた、直感的に作成できるツールであれば専門知識も不要でロードマップ作成に慣れていない人でも簡単に作成することが可能です。プロジェクト管理ツールの導入においてはコストが発生しますが、ロードマップ作成や共有を効率化できることを考えると高い費用対効果が期待できるでしょう。\n\nプロジェクト管理ツールの選び方については次で詳しく解説します。\n\n## 10. プロジェクト管理ツール・サービスの選び方\n\n![プロジェクト管理ツール・サービスの選び方](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857369/roadmap_image10_ysdufn.jpg)\n\nプロジェクト管理ツール・サービスを選ぶ際には以下の観点を意識しましょう。\n\n* 機能\n* 操作性\n* 価格\n* サポート体制\n\n### 10-1. 機能\n\nプロジェクト管理ツールを選ぶ際には、まず目的に応じて自社がほしい機能を洗い出しましょう。例えば、目的別の機能を整理すると以下のようになります。\n\n| 機能            | 目的                                           |\n| ------------- | -------------------------------------------- |\n| 情報共有機能 チャット機能 | ・コミュニケーションや情報共有を円滑に行いたい ・一つのプラットフォームで情報共有したい |\n| マイルストーン       | ・目標管理を適切に行いたい ・プロジェクトの進捗状況を把握したい             |\n| タスク管理機能       | ・タスクを可視化したい ・大量のタスクを整理したい                    |\n| 工数管理機能        | ・タスクの依存関係を整理したい ・タスクの細かな進捗を管理したい             |\n\n自社の目的に応じた機能が搭載されたツールを選ぶことで、スムーズな運用につながるでしょう。\n\n### 10-2. 操作性\n\nプロジェクト管理ツールを導入する際には、操作性もチェックしておきましょう。直感的に操作できる誰でも扱いやすいツールであれば、プロジェクトマネージャーだけでなく、エンジニアにとってもストレスなく利用できるでしょう。\n\nまた、実際の操作において学習コストがかかってしまうと、それだけロードマップ作成にも時間がかかってしまうことになるため、手軽に作成できるようなツールを選ぶことが大切です。無料トライアルを提供しているツールであれば事前に使用感もチェックできます。\n\n### 10-3. 価格\n\nプロジェクト管理ツールの導入においては、自社の予算を考慮してコスト面も確認しておくことが大切です。プロジェクト管理ツールにはクラウド型とオンプレミス型の導入形態があり、それぞれコスト感が異なります。\n\nクラウド型はインターネット経由でサービスを利用する形態のことで、自社でサーバーの設置などが不要であるため初期費用を抑えられます。一方、オンプレミス型は自社でサーバーなどのITインフラを用意して導入する形態です。オンプレミスの場合はクラウド型と比較して初期費用が高くなる傾向があります。\n\nまた、自社が求める機能や利用人数などプランに応じて料金が異なるため、あわせてチェックしておきましょう。\n\n### 10-4. サポート体制\n\nプロジェクト管理ツールをスムーズに導入・運用するためにも、サポート体制が充実しているかどうかも確認しておきましょう。\n\nサポート体制やドキュメントが充実しているツールであれば、トラブルや不明点が発生した場合でも問題なく解決できるでしょう。\n\nサポート窓口への連絡方法や営業時間、応答までの時間などを事前に確認しておくことで不安のない導入を実現できます。\n\n## 11. ロードマップの作成・活用なら「GitLab」がおすすめ\n\n![ロードマップの作成・活用なら「GitLab」がおすすめ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857639/roadmap_image11_gwcqt7.png)\n\nソフトウェア開発におけるロードマップの作成・活用なら「[GitLab](https://about.gitlab.com/ja-jp/)」がおすすめです。ここでは、GitLabの特徴やロードマップ機能について紹介します。\n\n### 11-1. GitLabとは\n\nGitLabは、AIを搭載した[DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/)プラットフォームです。計画から開発、セキュリティ、運用までソフトウェア開発のライフサイクル全体を効率化する単一のプラットフォームで、高品質なソフトウェア開発を実現できます。\n\n[CI/CD](https://about.gitlab.com/ja-jp/blog/how-to-keep-up-with-ci-cd-best-practices/)パイプラインの構築や実施も容易に行えるため、ビルドやデプロイの自動化も可能です。近年ビジネス環境の変化が激化しており、開発・セキュリティ・運用の3つの要素を統合した「DevSecOps」のアプローチに注目が集まっている中で、GitLabは中小企業からエンタープライズまで世界中の多くの企業で導入されているプラットフォームです。\n\n### 11-2. GitLabのロードマップ機能の特徴\n\nGitLabではソフトウェア開発における[プロジェクト管理](https://about.gitlab.com/ja-jp/blog/getting-started-with-gitlab-mastering-project-management/)にも適しています。ロードマップ機能では、エピック（プロジェクトの大枠や目標）とマイルストーンをタイムライン形式（[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)風）で視覚的に表示することが可能であるため、最終的な目標を意識しつつマイルストーン達成に向けた進捗を把握できます。\n\nまた、イシュー（タスク）の整理やタスク同士の依存関係の設定、担当者の振り分け、作業時間の測定も行えるため、タスクの見落としの防止や潜在的な障害の回避にもつなげられます。\n\nその他にもスプリントを設定できる機能もあるため、[アジャイル開発](https://about.gitlab.com/ja-jp/blog/what-is-agile-development/)を計画的に進めたいシーンでもGitLabを活用できます。\n\n## 12. ロードマップ作成に関するよくある質問\n\n最後にロードマップ作成に関するよくある質問とその回答を紹介します。\n\n### 12-1. 作成手段は専用ツールとエクセルどちらが良い？\n\nエクセルの場合は操作に慣れていれば手軽に作成できるメリットはありますが、リアルタイムでの情報共有が難しいというデメリットもあります。例えば、何らかの要因によりスケジュールに変更があり、ロードマップを更新した際にはクラウドサービスなどの媒体を使って共有しなければならず手間がかかります。\n\n一方、[GitLab](https://about.gitlab.com/ja-jp/)のような専用のツールなら単一のプラットフォームでロードマップの作成から更新、共有までが可能になるため、正確かつ迅速な情報共有が可能になります。また、プロジェクト管理に役立つさまざまな機能が搭載されており、包括的なサポートを受けられるという観点から考えても専用ツールの導入はプロジェクト開発を円滑に進める上で効果的な手段であると言えます。\n\n### 12-2. 開発においてロードマップには誰が関与する必要がある？\n\nロードマップにおいては、プロジェクトマネージャーやリーダー、開発エンジニア、経営層、顧客などを含めて関係者全員が関与しなければなりません。ロードマップを通して目標やマイルストーンなど必要な情報を全員が把握しておくことで、無駄のないスケジュール進行が可能になり、プロジェクトを成功に導けるでしょう。繰り返しにはなりますが、ロードマップを関係者全体に対して正確に共有するには、専用ツールの導入がおすすめです。\n\n### 12-3. ロードマップの作成が失敗する原因は？\n\nロードマップの作成や活用が失敗してしまう主な原因は以下の通りです。\n\n* プロジェクトマネージャーだけで作成して関係者間で入念な擦り合わせができていない\n* エクセルで作成しており、更新の際に情報共有に時間がかかっている\n* 定期的な確認や見直しができておらず、ロードマップ自体が機能しなくなっている\n* 盛り込む情報が多く、メンバーがわかりづらい など\n\n上記のようなことがあるとロードマップを作成しても有効活用できないため、関係者間での入念な擦り合わせや専用ツールの積極的な活用、定期的なアップデートなどを行うことが大切です。\n\n## まとめ ロードマップはソフトウェア開発に必須！専用ツールの活用で効率よく作成しよう\n\nソフトウェア開発におけるプロジェクトを成功させるためには、ロードマップの作成は必須です。ロードマップ作成においては、[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart/)の要素を取り入れることで、より綿密なプロジェクト管理を実現できるでしょう。\n\nAIを搭載したDevSecOpsプラットフォーム「[GitLab](https://about.gitlab.com/ja-jp/)」なら、プロジェクト管理やロードマップ作成に役立つ豊富な機能を搭載しています。自社のソフトウェア開発におけるプロジェクト管理を適切に行うなら、ぜひGitLabの導入をご検討下さい。\n\nなお、GitLabでは世界39か国、5,000人を超えるDevSecOps専門家のインサイトが詰まった完全版レポートを無料で公開しているので、ぜひこちらもご覧下さい。\n\n[2024グローバルDevSecOpsレポートはこちら](https://about.gitlab.com/ja-jp/developer-survey/?utm_medium=blog&utm_source=blog&utm_campaign=eg_apac_brand_x_x_ja_gitlabjapanblogseo_what-is-roadmap)",[974],"2025-09-26","2025-09-25","ロードマップとは？意味やソフトウェア開発における必要性、作り方",[951,799,800,813],"この記事では、ソフトウェア開発におけるロードマップの必要性やメリット、作成方法を解説します。",{"featured":6,"template":803,"slug":1002},"what-is-roadmap",{"category":741,"slug":745,"posts":1004},[1005,1016,1028],{"content":1006,"config":1014},{"title":1007,"description":1008,"heroImage":1009,"date":1010,"body":1011,"category":745,"tags":1012,"authors":1013},"Monday Merge 10月号：AIネイティブ開発、7,500億ドル超の金融サービスインサイト、そしてドイツ鉄道社の変革","10月号のMonday MergeではGitLab 18.4、金融業界のリーダーたちによる最新の経営層インサイト、ドイツ鉄道社の事例をお届け。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1759899124/uip5uk6hq3mwq9rqx4g5.png","2025-10-13","今月は、最新リリースのGitLab 18.4をご紹介。このバージョンでは、AIネイティブなDevSecOpsをさらに進化させました。\n\n金融業界のリーダーたちによる最新の経営層インサイト、ドイツ鉄道社（Deutsche Bahn）の変革ストーリー、そして世界各地で開催されるイベント情報もお届けします。\n\nさらに、今月のおすすめ記事や、少し前向きになれるインスピレーションもお届けします。\n\nそれでは、さっそく見ていきましょう👇\n\n## GitLab 18.4：AIネイティブ開発をさらに拡張\n\n![GitLab 18.4：AIネイティブ開発をさらに拡張](https://res.cloudinary.com/about-gitlab-com/image/upload/v1759974747/r6izlyuh62ahsz7k6etp.png)\n\n失敗したデプロイを何時間も追跡したことがあるなら、現代の開発はコードを書くことと同じくらい「複雑さの管理」が重要だと感じたことがあるはずです。GitLab 18.4では、DevSecOpsのライフサイクル全体にAIを組み込むことで、その課題をより簡単に解決できるようになりました。\n\n#### **新機能：**\n\n* **GitLab Duo AI Catalog（AIカタログ）** – 組織内でカスタムエージェントを定義、作成、共有可能。可視性の設定で、安全に実験し、非公開にするものと広く再利用できるものを選べます。これにより、エージェント管理を一元化し、Duo Agent Platformの基盤として統合・協調された知能のハブを構築できます。\n* **スマートなエージェント型チャット** – AIエージェントとリアルタイムで協働できます。新しいセッションビューでエージェントのアクティビティ、ログ、コンテキストを確認できるため、AIがどのように作業を前進させているかを常に把握できます。\n* **強化されたGitLab Knowledge Graph（ナレッジグラフ）** – コードベースをより深いコンテキストで検索可能。ルートファイルから依存関係の影響まで、オンボーディングが容易になり、デバッグが迅速化し、調査が正確になります — 人間にもAIエージェントにも有効です。\n* **ビジネスに配慮したパイプライン自動化** – パイプラインは現代のソフトウェアデリバリーの心臓部です。今では、エラーを修正するだけでなく、ビジネスへの影響や優先度を理解した上で修正を提案・実行できる自動化が可能です。\n* **ガバナンスとセキュリティ** – GitLab Duoのコンテキスト除外機能、拡張されたModel Context Protocol（MCP）ツール、GitLab管理キー、一般提供が開始したGitLab Duoモデル選択により、企業はAIの展開方法やアクセス可能なデータを制御可能です。イノベーションの速度を落とすことなく、安全に導入できます。\n\nこれらの機能により、GitLab 18.4は単なるアップグレードではなく、AIとの協働をより速く、コンテキストを理解し、コントロールできる形で実現する革新的な一歩となります。\n\n 🔗 [18.4リリースノート全文はこちら](https://about.gitlab.com/ja-jp/blog/gitlab-18-04-release/)\n\n## **金融業界の経営層インサイト：7,500億ドルを超えるチャンス**\n\n![金融業界の経営層インサイト：7,500億ドルを超えるチャンス](https://res.cloudinary.com/about-gitlab-com/image/upload/v1759974745/oqpf7tebgql0akmee26r.png)\n\n最新のGitLab金融業界経営調査では、AIが業界にどれほどの影響を与えているかが明らかになりました。\n\n銀行、保険、資本市場の経営者は、AI搭載のソフトウェア革新に大きなチャンスを感じています：\n\n* AIによるソフトウェア革新で得られる世界規模の潜在価値：7,500億ドル以上\n* 金融サービス業界の95%の経営者が、ソフトウェア革新を現在のコアビジネスにおける優先事項と認識\n* 過去1年間で、AI投資によるビジネス成長を経験したと答えた経営者は93%\n* 93%の経営者が、エージェント型AIが3年以内にソフトウェア開発の業界標準になると予測\n\n金融リーダーからのメッセージは明確です。AIの潜在力を最大限に引き出すには、技術だけでなく、信頼性、ガバナンス、スキル向上が不可欠です。\n\n 🔗[ レポート全文はこちら](https://about.gitlab.com/software-innovation-report/finserv/)\n\n## **今後のイベント：10月の予定**\n\n![今後のイベント：10月の予定](https://res.cloudinary.com/about-gitlab-com/image/upload/v1759974745/skvnsr1pkqfa9xtwhgy2.png)\n\n10月はGitLabチームにとって盛りだくさんの月です。参加予定のイベントはこちら：\n\n* **[Cloud & AI Infrastructure Expo, シンガポール (10/8–9)](https://www.singaporetechnologyweek.com/cloud-ai-infrastructure)** – Tech Week Singaporeの一環として、6つの主要テックイベントが一堂に会しました。GitLabブースでは、最新のDevSecOpsとAIに関する情報で盛り上がりました。\n* **[GitLab DACH Roadshow, ミュンヘン (10/14)](https://page.gitlab.com/event-october14-roadshowmunich-emea.html)** – エンジニアリングリーダーやDevSecOps専門家と共に、実際の顧客事例、ハンズオンワークショップ、ネットワーキングを体験。参加無料（ランチ付き）。\n* **[Gartner IT Symposium/Xpo, オーランド (10/20–23)](https://www.gartner.com/en/conferences/na/symposium-us/1?mrasn=1500051.1868414.7OzTUFLs)** – 年間最大規模のテックイベントの1つ。GitLabがどのようにAIネイティブDevSecOpsの変革を推進しているかを紹介。\n* **[GitLab DACH Roadshow, デュッセルドルフ (10/28)](https://page.gitlab.com/event-october28-roadshowduesseldorf-emea.html)** – コミュニティとの交流、インサイトの共有、そして技術的な課題へのサポートを行います。\n\n参加予定の方は、ぜひブースにお立ち寄りください！\n\n 🔗 [世界各地のイベント情報はこちら](https://about.gitlab.com/events/)\n\n## **GitLabハッカソン：貢献・協働・創造**\n\n![GitLabハッカソン：貢献・協働・創造](https://res.cloudinary.com/about-gitlab-com/image/upload/v1759974745/v9o15pakposcooov6v3e.png)\n\n10月1日〜8日にかけてGitLabハッカソンが開催されました。\n\nハッカソンは1週間のオンラインイベントで、誰でもGitLabプロジェクトにコントリビュートできます。楽しみながらインパクトを生み出すことが目的です。\n\n参加のメリット：\n\n* 🏆 賞品獲得、プロファイル実績のアンロック、GitLabスキル向上\n* 💻 コーディング、ドキュメント作成、翻訳、UXデザインなどの実践経験\n* 🌍 DevSecOpsに熱意を持つ世界中のオープンソースコミュニティと協働\n\n初めてのマージリクエストでも100回目でも、誰でも参加可能です。今後も開催予定ですので、学び、作り、つながるチャンスをお見逃しなく。\n\n 🔗[ ハッカソン登録はこちら](https://contributors.gitlab.com/hackathon)\n\n## **事例のご紹介：ドイツ鉄道社（Deutsche Bahn）**\n\n![事例のご紹介：ドイツ鉄道社（Deutsche Bahn）](https://res.cloudinary.com/about-gitlab-com/image/upload/v1759974745/hfqxnwzw0adg4xvrceu5.png)\n\n今月は、ドイツの国営鉄道でありヨーロッパ最大級の鉄道事業者であるドイツ鉄道社、　Deutsche Bahnをフィーチャー。約34万人の従業員と年間20億人の乗客を抱える同社は、デジタル成長のためにDevSecOpsを統合する単一プラットフォームを必要としていました。\n\nGitLab Premiumを導入したことで、ソフトウェア開発と運用が大きく変革：\n\n* 📈 継続的デプロイの成功率91%\n* 📈 35のDevSecOpsチーム間のコラボレーション向上\n* 📈 コンプライアンスの簡略化とシステム信頼性向上\n\nさらに、インフラコストを10〜20%削減し、2,300万人のユニークユーザー向けの世界クラスの予約システムを構築しました。\n\nMartin Ortmann氏（プロダクトオーナー）のコメント：\n\n「共同作業ができるプラットフォームのおかげで、学びや議論が活発になり、大きな成果につながっています。GitLabは私たちの協働と成功に欠かせない存在です。」\n\nまさに、1つのDevSecOpsプラットフォームに統合した成果が、その背景にあります。\n\n 🔗 [Deutsche Bahnのケーススタディ全文はこちら](https://about.gitlab.com/ja-jp/customers/deutsche-bahn-ag/)\n\n## **今月のおすすめ記事 📚**\n\n![今月のおすすめ記事 📚](https://res.cloudinary.com/about-gitlab-com/image/upload/v1759974745/qgxncujbsuz73cs1601f.png)\n\n今月のおすすめは、次の戦略セッションに役立つインサイト満載の記事です。\n\n\u003Chttps://thenewstack.io/sustainable-scale-how-to-grow-engineering-teams-strategically/>\n\n\u003Chttps://social-www.forbes.com/councils/forbestechcouncil/2025/09/09/softwares-agentic-future-is-less-than-3-years-away-cisos-must-prepare-now/>?\n\n\u003Chttps://www.washingtontechnology.com/opinion/2025/09/bridging-gap-legacy-systems-secure-ai-innovation/407991/>\n\n\u003Chttps://vmblog.com/archive/2025/09/09/authorization-systems-aren-t-built-for-ai-agents-here-s-how-to-adapt.aspx>　\n\n## **最後に、今月の名言を**\n\nヘンリー・フォード（フォード・モーターの創設者）はこう言いました：\n\n「皆が一緒に前進すれば、成功は自然についてくる」\n\nGitLabもまさにこれを目指しています！\n チームが一緒に、より速く、安全に、成功を手にできるよう支援することが私たちの使命です。\n\n今月もお読みいただきありがとうございます。それでは次回まで、Happy Merging!\n\n[Fatima Sarah Khalid](https://www.linkedin.com/in/sugaroverflow/) | Developer Advocate, GitLab\n\nこのニュースレターが役立ったら、ぜひチームにもシェアしてください。\nそして忘れずに👉 [YouTubeチャンネル](https://www.youtube.com/@Gitlab)もご登録を！\n\n![Fatima Sarah Khalid](https://res.cloudinary.com/about-gitlab-com/image/upload/v1759974745/jmxrdaikant0ze1bis3j.png)",[841,951,269,899,717,279,799,551,925],[908],{"featured":6,"template":803,"slug":1015},"monday-merge-2025-october-13",{"content":1017,"config":1026},{"title":1018,"description":1019,"heroImage":1020,"authors":1021,"date":1023,"body":1024,"category":745,"tags":1025},"『2025年Gartner® Magic Quadrant™ for AI Code Assistants』でGitLabがリーダーの1社として評価されました","Gartner® Magic Quadrant™の同部門において、GitLabは2年連続でリーダーの1社に選出され、AIコードアシスタント技術における実行能力とビジョンの完全性が評価されました。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1757675943/q9kb7zfiw1cyxx9fcafp.png",[1022],"Manav Khurana","2025-09-17","『2025年Gartner® Magic Quadrant™ for AI Code Assistants』で、GitLabが再びリーダーの1社として評価されました。この評価は、私たちのAI戦略の重要な柱が認められたと認識させるものと考えています。インテリジェントなコード支援から始まり、チーム全体がソフトウェアを計画・構築・保護・デプロイする方法を変革する包括的なAIへと進化させていく戦略です。\n![『2025 Gartner® Magic Quadrant™ for AI Code Assistants』](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758121248/jfkmhddve6qvlg79xico.png)\n> [『2025 Gartner® Magic Quadrant™ for AI Code Assistants』レポートをダウンロードする](https://about.gitlab.com/gartner-mq-ai-code-assistants/)\n## AI機能からインテリジェントな協働へ\n\n今回のGartnerによる評価では、GitLab Duoの生成AIコード支援機能に重点が置かれたと考えております。GitLab DuoはGitLab DevSecOpsプラットフォームへのAI搭載機能として始まりましたが、現在のGitLab DevSecOpsプラットフォームにネイティブに構築されたエージェント型AIへの発展の基盤を築きました。\n\nGitLab Duo Agent Platformより、デベロッパーはソフトウェアライフサイクル全体にわたってタスクを自動化する複数のAIエージェントと連携できます。エージェントは相互に、そして人間と協力し、GitLabのナレッジグラフを活用してプロジェクト全体の文脈を把握して行動します。これにより、チームは可視性とコントロールを維持しながら、より迅速に作業を進められます。\n\n* **専門エージェント**が、コード生成、セキュリティ分析、調査などのタスクを並行して処理します。\n\n* **ナレッジグラフ**により、エージェントはコード、イシュー、パイプライン、コンプライアンスデータ全体にわたる統合された記録システムに接続されます。\n\n* **人間とエージェントの協働**は、自然言語チャットとカスタマイズ可能なワークフローにより実現され、レビューと監視が組み込まれています。\n\n* **外部ツールやシステムとの相互運用性**は、Model Context Protocol（MCP）とエージェント間フレームワークを通じてサポートされます。\n\nエージェント型AIが人間の指導の下で定型的な作業を処理することで、チームはより迅速に作業を進め、より価値の高いタスクに集中し、プロジェクトの安全性とコンプライアンスを維持できます。\n\n## 設計時からセキュリティを組み込み、実践では柔軟に対応\n\nGitLab Duo Agent Platformは、セキュリティとコンプライアンスを最優先に設計されています。エージェントはGitLabの信頼されるDevSecOps環境内で動作し、すべてのアクションは変更が行われる前に可視化・レビュー可能です。セキュアな統合により認証情報と機密データが安全に処理され、オープンスタンダードを通じた相互運用性により、組織をリスクにさらさずにエージェントを外部ツールに接続できます。\n\nこのプラットフォームを使えば、ガバナンスを損なうことなくAIで生産性を高められるため、チームは安心して導入できます。その仕組みは以下の通りです：\n\n* **デベロッパー**は、複雑で影響力の大きい作業に集中し続けながら、定型的なタスクをエージェント型AIに委ねることで、より迅速な結果だけでなく、既存のワークフローを通じて提供される詳細な文脈を得られます。\n\n* **エンジニアリングリーダー**は、設定された範囲内でエージェント型AIが安全に動作する中で、ライフサイクル全体にわたって作業の進捗を可視性できます。これにより、チームは重要なタスクに注力できるようになり、エージェント型AIが提供するコンテクストに応じたワークフローのガンダンスによって、オンボーディングを簡素化できます。\n\n* **IT組織**は、コーディングとセキュリティポリシーを適用しながら、AIモデルを柔軟に選択し、セキュアな相互運用性を確保するガバナンス機能を活用して、エージェント型AIの活動を制御できます。重要なのは、すべてのプロセスに人間の判断が介在するということです。\n\n## AI機能の新境地を切り開く\n\nGitLabは、Duoから始まったビジョンを継続的に発展させ、新しいエージェント型AI機能、高度なワークフロー、さらなるオーケストレーション機能でGitLab Duo Agent Platformを拡張し続けます。このイノベーションへの取り組みにより、お客様が知り、信頼するプラットフォーム上でチームの生産性を最大化できます。AI機能をDevSecOpsに統合し続ける、GitLabのロードマップの最新情報に今後もご注目ください。\n\n> [『2025 Gartner® Magic Quadrant™ for AI Code Assistants』レポートをダウンロード](https://about.gitlab.com/gartner-mq-ai-code-assistants/)して、[GitLab Duo Agent Platformを今すぐお試しください](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)\n\n*出典: Gartner, Magic Quadrant for AI Code Assistants, Philip Walsh, Haritha Khandabattu, Matt Brasier, Keith Holloway, Arun Batchu, 15 September 2025*\n\n*GARTNERは、Gartner, Inc.および/または米国とその他の国におけるその関連会社の商標およびサービスマークであり、MAGIC QUADRANTは、Gartner, Inc.および/またはその関連会社の登録商標であり、本書では許可を得て使用しています。All rights reserved.*\n\n*この図表は、Gartner, Inc.がリサーチの一部として公開したものであり、文書全体のコンテクストにおいて評価されるべきものです。オリジナルのGartnerドキュメントは、リクエストにより GitLabからご提供することが可能です。*\n\n*Gartnerは、Gartnerリサーチの発行物に掲載された特定のベンダー、製品またはサービスを推奨するものではありません。また、最高のレーティング又はその他の評価を得たベンダーのみを選択するようにテクノロジーユーザーに助言するものではありません。Gartnerリサーチの発行物は、Gartnerリサーチの見解を表したものであり、事実を表現したものではありません。Gartnerは、明示または黙示を問わず、本リサーチの商品性や特定目的への適合性を含め、一切の責任を負うものではありません。*",[768,745,717],{"featured":91,"template":803,"slug":1027},"gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-ai-code-assistants",{"content":1029,"config":1038},{"heroImage":1030,"body":1031,"authors":1032,"updatedDate":1023,"date":1034,"title":1035,"tags":1036,"description":1037,"category":745},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751568278/bots3gyfarx8qysbkw6c.png","この度、GitLabとAccentureがグローバル販売代理店契約を締結し、AccentureがGitLabの認定販売代理店およびプロフェッショナルサービスプロバイダーとして認定されたことを発表いたします。この契約により、AccentureはAWSマーケットプレースを含む複数の販売チャネルを通じて、GitLabの完全なDevSecOpsプラットフォームをお客様に直接提供することが可能になります。\n\n## 重要な節目\n\n今回の協業は、GitLabの包括的かつインテリジェントなDevSecOpsプラットフォームと、Accentureのデジタルトランスフォーメーションおよび実装サービスにおける豊富な専門知識を組み合わせることで、組織が大規模にセキュアなソフトウェアの構築とデリバリーを実現できるようにします。このグローバル販売代理店契約は、各地域の状況に合わせて容易に適応できるグローバルフレームワークを提供します。\n\n今回の協業では、まず以下の主要領域に注力します。\n\n1. **エンタープライズ規模のDevSecOps変革：** 組織の開発プラクティスのモダナイゼーションとソフトウェアデリバリーライフサイクルの効率化を支援\n2. **メインフレームモダナイゼーション：** レガシーシステムからの移行をサポート\n3. **GitLab Duo with Amazon Q：** エンドツーエンドのセキュリティとコンプライアンスを維持しながらベロシティの向上を求める組織に、AI主導のソフトウェア開発を提供\n\n## 今後の展望\n\n私たちは、両社のお客様がイノベーションを加速し、開発プロセスを効率化し、セキュリティ体制を強化することで、より効果的にビジネス目標を達成できるよう支援していくことを期待しています。\n\nGitLabとAccentureがお客様のビジネスをどのようにご支援できるか、詳しくは[パートナーサイト](https://about.gitlab.com/partners/channel-partners/#/2328213)をご覧いただくか、AccentureまたはGitLabの営業担当にお問い合わせください。",[1033],"GitLab","2025-09-15","GitLabとAccentureがグローバル販売代理店契約を発表",[745,768,717],"Accentureが包括的なDevSecOpsプラットフォームの提供を可能にする販売代理店契約を締結",{"featured":6,"template":803,"slug":1039},"gitlab-and-accenture-announce-global-reseller-agreement",{"category":753,"slug":757,"posts":1041},[1042,1054,1065],{"content":1043,"config":1052},{"date":1044,"heroImage":1045,"title":1046,"authors":1047,"category":757,"body":1048,"description":1049,"tags":1050},"2025-08-04","https://res.cloudinary.com/about-gitlab-com/image/upload/v1754287290/averr2ecwl01q2f9lknf.jpg","git mergeコマンドの基本を徹底解説",[974],"## 目次\n\n\n1. [git mergeとは？](https://about.gitlab.com/ja-jp/blog/git-merge-command-overview/#git-merge%E3%81%A8%E3%81%AF%EF%BC%9F)\n\n2. [git mergeコマンドの基本](https://about.gitlab.com/ja-jp/blog/git-merge-command-overview/#git-merge%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E5%9F%BA%E6%9C%AC)\n\n3. [マージ先のブランチを準備する](https://about.gitlab.com/ja-jp/blog/git-merge-command-overview/#%E3%83%9E%E3%83%BC%E3%82%B8%E5%85%88%E3%81%AE%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%82%92%E6%BA%96%E5%82%99%E3%81%99%E3%82%8B)\n\n4. [最新のリモートコミットをフェッチする](https://about.gitlab.com/ja-jp/blog/git-merge-command-overview/#%E6%9C%80%E6%96%B0%E3%81%AE%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%82%92%E3%83%95%E3%82%A7%E3%83%83%E3%83%81%E3%81%99%E3%82%8B)\n\n5. [早送りマージと３ウェイマージ](https://about.gitlab.com/ja-jp/blog/git-merge-command-overview/#%E6%97%A9%E9%80%81%E3%82%8A%E3%83%9E%E3%83%BC%E3%82%B8%E3%81%A8%EF%BC%93%E3%82%A6%E3%82%A7%E3%82%A4%E3%83%9E%E3%83%BC%E3%82%B8)\n\n6. [git mergeによるコンフリクトの解決](https://about.gitlab.com/ja-jp/blog/git-merge-command-overview/#git-merge%E3%81%AB%E3%82%88%E3%82%8B%E3%82%B3%E3%83%B3%E3%83%95%E3%83%AA%E3%82%AF%E3%83%88%E3%81%AE%E8%A7%A3%E6%B1%BA)\n\n7. [git mergeコマンドのベストプラクティス](https://about.gitlab.com/ja-jp/blog/git-merge-command-overview/#git-merge%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E3%83%99%E3%82%B9%E3%83%88%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9)\n\n8. [GitLabでgit mergeを使う](https://about.gitlab.com/ja-jp/blog/git-merge-command-overview/#git-merge%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E3%83%99%E3%82%B9%E3%83%88%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9)\n\n9. [git merge のFAQ](https://about.gitlab.com/ja-jp/blog/git-merge-command-overview/#git-merge%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89-%E3%81%AEfaq)\n\n\n## git mergeとは？\n\n\ngit mergeとは、分岐したブランチをmerge（マージ、統合すること）するコマンドのことです。別のリポジトリからの変更を組み込む際にも使われ、git pull（git fetchとgit mergeを組み合わせたもの）の一部としても機能します。チームで開発を実施するときなどにmainブランチから作業用ブランチを作り、テストをしてからマージ、プッシュすることも多いでしょう。\n\n\nたとえば、main ブランチに基づいて作成された新しいブランチ’feature’があるとします。この feature ブランチを main にマージするのに使われるのがgit mergeコマンドです。\n\n\n## git mergeコマンドの基本\n\n\ngit mergeの基本的なコードは次のようになります。\n\n\n```\n\ngit merge BRANCH_NAME\n\n```\n\n\nブランチ名は、取り込みたいブランチの名前を入力します。\n\n\n一見簡単そうですが、マージをスムーズに実行するにはいくつか準備が必要となりますので、次の章で確認しましょう。\n\n\n## マージ先のブランチを準備する\n\n\ngit status を実行して、HEAD が取り込む先のブランチであることを確認します。必要に応じて\n\n\n```\n\ngit checkout BRANCH_NAME\n\n```\n\n\nを実行して、マージする先のブランチに切り替えます。\n\n\n## 最新のリモートコミットをフェッチする\n\n\nリモートで変更を加えたら、マージ先ブランチとマージ元ブランチに最新の変更内容を反映させます。その際は、[git fetchとgit pull](https://about.gitlab.com/ja-jp/blog/what-is-the-difference-between-git-fetch-and-git-pull/)を使います。その後、リモートで加えた変更内容がmainブランチに反映されていることを確認します。\n\n\n## 早送りマージと３ウェイマージ\n\n\n早送りマージは、ブランチが分岐していない場合にのみ使えるコマンドです。早送りマージでは、マージ自体は行われませんが、ブランチの先頭とブランチの末尾の履歴を結合することで、旧ブランチからアクセスできたコミットが、新ブランチからも利用できるようになります。\n\n\n強制的に早送りマージを実施する場合は以下のコードを使います（分岐がある場合など早送りマージができない場合にはエラーとなりマージはできません）\n\n\n```\n\ngit merge --ff-only\n\n```\n\n\n一方、ブランチが分岐している場合には、早送りマージを適用することはできず、マージする手段は３ウェイマージに限られます。３ウェイマージは、3 つのコミット （2 つのブランチのそれぞれ先端のコミットと履歴を統合するために生成される専用のコミット）を使用してマージコミットを生成することから来ています。\n\n\n```\n\ngit checkout BRANCH_NAME\n\n```\n\n\nを使うと、早送りマージが可能な時は早送りマージを実施し、できない時に３ウェイマージを実施します。\n\n\n## git mergeによるコンフリクトの解決\n\n\nマージの基本を理解すると、同じ箇所を同時に更新してしまったらどうなるのか、という疑問を持たれる方もいるのではないでしょうか。この場合、Git側ではどちらを優先すべきか判断ができず、手作業でコンフリクトを解決することを求めます。\n\n\nエラーメッセージは次のように表示されます。\n\n\n```\n\ngit merge BRANCH_NAME\n\nAuto-merging index.html\n\nCONFLICT (content): Merge conflict in index.html\n\nAutomatic merge failed; fix conflicts and then commit the result.\n\n```\n\n\nコンフリクトを解決するまで、処理は中断されます。どのファイルでコンフリクトが発生してマージできなかったのを確認するにはgit status を実行します。\n\n\n```\n\ngit status\n\n```\n\n\n未解決のコンフリクトについては unmerged として表示されます。標準的なコンフリクトマーカーがファイルに追加されるため、該当ファイルから修正できます。git addを実行して、コンフリクトが解決したことを Git に通知します。続いて通常の git commit を実行してマージ コミットを生成します。\n\n\n## git mergeコマンドのベストプラクティス\n\n\ngit mergeコマンドでよく起こる問題として、他のデベロッパーが加えた変更を破棄してしまうことが挙げられます。個々人がこまめにgit mergeを実行することで、変更を破棄してしまう問題は避けることができますが、マージそのもののコストが膨れ上がる可能性があります。複雑なコンフリクトが出ない場合に自動マージしてくれるようなツールの導入は、git mergeを使うチームの大きな手助けになるはずです。\n\n\n## GitLabでgit mergeを使う\n\n\ngit mergeのベストプラクティスとしてツールの使用をおすすめしましたが、[GitLab](https://about.gitlab.com/ja-jp/)なら自動マージ機能のほかにもリモートリポジトリのホスティング、インターフェースの提供、変更内容のコードレビュー、プッシュされたコードの自動ビルド、テスト、デプロイまでを一括で管理できます。\n\n\ngit mergeで起きるコンフリクトを自動で解決できるGitLabの無料トライアルは[こちら](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/&glm_content=default-saas-trial)からお申し込みいただけます。\n\n\n## git mergeコマンド のFAQ\n\n\n### git mergeコマンドとは何ですか？\n\n\ngit mergeとは、分岐したブランチをmerge（マージ、統合すること）するコマンドのことです。\n\n\n### mainブランチにマージするにはどうしたらいいですか？\n\n\nまず、\u003Ccode>git checkout BRANCH_NAME\u003C/code>を使ってmainブランチに移動します。\n\n\n次に\u003Ccode>git merge BRANCH_NAME\u003C/code>を使ってマージしたいブランチを指定します。\n\n\nマージ先ブランチ名）master\\\n\nマージするブランチ名）feature1の場合には\n\n\n```\n\n\u003Ccode>git checkout master\u003C/code>\n\n\u003Ccode>git merge feature1\u003C/code>\n\n```\n\n\n\\\n\nとなります。\n\n\n### git mergeとgit rebaseの違いは何ですか？\n\n\ngit mergeとgit rebaseはどちらもブランチを結合するコマンドです。mergeが新しいコミットを生成してコミット履歴が分散してしまうのに対し、rebaseはコミット履歴をひとつのブランチにまとめます。rebaseはログを整理する目的で使われることが多いですが、別のブランチで他のメンバーが加えた変更の履歴を消してしまう可能性などがあるので、上級者向けのコマンドといえます。\n\n\n*監修：知念 梨果* *[@rikachinen](https://gitlab.com/rikachinen)（GitLab合同会社 カスタマーサクセス本部 カスタマーサクセスエンジニア）*\n","この記事では、git mergeコマンドについてコマンドの基本的な使い方からリクエストコードまで解説します。",[951,1051,800,813],"git",{"featured":91,"template":803,"slug":1053},"git-merge-command-overview",{"content":1055,"config":1063},{"title":1056,"description":1057,"authors":1058,"heroImage":1059,"date":1060,"body":1061,"category":757,"tags":1062},"オープンソースソフトウェア（OSS）とは？詳しく解説​","オープンソースの意味や、メリットとデメリットについて、分かりやすく解説します。",[974],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752720740/g9x8oi988xuhioglpczi.jpg","2025-07-17","## オープンソースとは？\n\nオープンソースとは、ソフトウェアのコードが公開され、誰もが利用、改良、再配布できるという仕組みのことを指します。「オープンソースソフトウェア」と同義で使用されることが多いです。\n\n## オープンソースソフトウェア（OSS）とは？\n\nオープンソースソフトウェアはOSSとも記述され、Open Source Softwareの略称です。一般的な商用ソフトウェアとは異なり、誰でも利用、改良、再配布ができるようソースコードが公開されています。これにより個人や企業のデベロッパーは、各々の環境に合わせてソフトウェアを自由に改変し、特定の用途や問題に最適化することが容易にできます。ただし、OSSによってはライセンス制約が存在する場合もあります。\n\nフリー（無料）ソフトと混同されることがありますが、フリーソフトのほとんどはソースコードが非公開です。よって、ソースコードが公開されているかどうかで、OSSかの判断をするのが一般的です。\n\n## オープンソースソフトウェアの基本原則\n\nオープンソフトウェアに明確な定義はありませんが、「ソースコードが公開されていること」以外にも広く認知されている要件があります。これら要件は、米国のOpen Source Initiative（OSI）という団体が提唱した以下10項目を指すのが一般的です。\n\n* 再配布の自由\n* ソースコードの配布\n* 派生ソフトウェアの配布許可\n* 作成者のオリジナルコードの完全性\n* 個人やグループに対する差別禁止\n* 使用分野に対する差別禁止\n* ライセンスの配布\n* 特定製品でのみ有効なライセンスの禁止\n* 他ソフトウェアを制限するライセンスの禁止\n* ライセンスの技術的中立\n\n要約するとOSSの基本原則は、ユーザーやデベロッパーに自由を提供し、協力的な環境を促進することと言えます。ただし、「自由」ではあるものの、ライセンスによって一定のルールは設定されています。例えば、GPLやMITライセンスは、OSSに付随するライセンスの利用や再配布、改変の範囲を規定し、自由利用を促進しつつも、デベロッパーやユーザーの権利を保護しています。OSS利用の際は、こういったライセンスルールを理解し、遵守することを忘れないようにしましょう。ライセンスについては後ほど詳しく解説します。\n\n## オープンソースソフトウェアの具体例\n\nどういったソフトウェアがOSSなのかと問われると、すぐには思いつかないかもしれません。実際に、どういったソフトが様々な分野で活躍しているのかいくつかご紹介しましょう。\n\n### WordPress\n\nWordPressという名前は、誰もが一度は聞いたことがあるでしょう。WordPressはウェブサイトを簡単に作成できるコンテンツ管理システム（CMS）で、世界中でもっとも利用されているCMSとなっています。ウェブサイトデベロッパーは自由にカスタマイズを行うことができ、また、活発なコミュニティで互いをサポートし合うことにより、新たな拡張機能の開発等に貢献しています。\n\n### GIMP\n\nGIMPは、イラストレーター、グラフィックデザイナー、フォトグラファー、サイエンティストなど画像を扱う専門家に人気の画像編集ソフトウェアです。ユーザーは無料でダウンロードして利用でき、WordPressと同じく活発なコミュニティが、日々のバグ修正や、新プラグインを開発をサポートしています。\n\n### Brave Browser\n\nBraveは、ユーザーのプライバシー保護を主眼としたウェブブラウザであり、広告やトラッキングを防止してくれます。さらに、独自の暗号通貨（BAT）や検索システムを開発しているなどの理由で、デベロッパー間では人気のブラウザの一つです。Braveもオープンソースであるため、個人が自由にブラウザ機能をカスタマイズしたり、新たに機能を追加したりすることができる仕様となっています。\n\n### GitLabのオープンソースプロジェクト\n\n[GitLabプラットフォーム](https://about.gitlab.com/ja-jp/)を利用して開発されているオープンソースプロジェクトをいくつかご紹介します。\n\n#### Drupal\n\nDrupalはWordPressと同様に、オープンソースのコンテンツ管理システム（CMS）です。堅牢性と拡張性の高さが評価されており、NASAや経済産業省といった政府機関や、Teslaなどの企業に採用されています。\n\n#### VLC\n\nWindowsやMacにとどまらず、LinuxやiOS等でも使うことできる、メディアプレイヤーです。多様な種類の音声や動画ファイルを再生でき、様々なファイル形式に対応しています。広告等、ユーザーにとって不要な機能が一切搭載されておらず、世界中で広く利用されています。\n\n#### LibreOffice\n\nMicrosoft Officeとよく比較されることがあるのが、LibreOfficeです。無料で利用することができ、様々なオフィスツールを提供することから、たくさんの企業や個人に使用されています。\n\n## オープンソース開発のメリットとデメリット\n\nOSSの開発には様々なメリットとデメリットがあります。開発手法についての議論は付きませんが、ここでは言及されることが多いポイントをいくつか挙げてみます。\n\n### メリット\n\n#### コミュニティによる自発的なサポートと開発\n\nオープンソース開発は通常、世界中のデベロッパーが参加した活発なコミュニティを形成しています。多種多様なバックグランドを持つ個々のユーザーたちがお互いにアイデアやフィードバック、サポートし合うことを基本とし、継続的な開発とサポートをしてくれます。\n\n#### 高い透明性に担保された信頼とセキュリティ\n\nOSSの信頼とセキュリティは、誰もがソースコードを参照できることで実現されています。\n\nまず、たくさんのデベロッパーの目に触れるため、脆弱性やバグが比較的早い段階で発見されます。これにより、セキュリティを高レベルに引き上げることができます。そして、ソースコードが公開されているため、不正な動作やバックドアの存在といったリスクを排除しやすく、ソフトウェアの信頼性を高めてくれます。\n\n#### 開発にかかる時間と費用の削減\n\nオープンソースソフトウェアは大抵が無料で、自由にソースコードを改変できます。よって、ライセンス料とスクラッチ開発が不要であり、個人や企業の費用と開発時間を大幅に削減してくれます。\n\n### デメリット\n\n#### 開発プロジェクトの継続性\n\nオープンソース開発は、有志が中心となって行われる場合が多いため、プロジェクトが遅延したり、突然中止となったりするリスクがあります。また、安定した開発スケジュールが維持されないこともあります。\n\nプロジェクトの多くは無償、スポンサー、寄付で成り立っていることが一般的なので、開発コアメンバーが抜けた、資金が枯渇してしまった、などの理由から開発自体が立ち行かなくなることもあります。\n\n#### 責任の所在が曖昧\n\nコミュニティ主導で開発が進められる場合、ユーザーにバグや他ソフトと統合できないといった問題が発生しても商用ソフトウェアとは異なり、自己解決しなくてはならないケースが通常です。迅速かつ的確なサポートが受けづらいケースも、発生することがあります。\n\n#### ライセンスの準拠で\n\n当然ながら、OSSにもライセンスが存在します。無条件に利用や再配布ができるわけではないので、しっかりとライセンスを理解した上で使用しなければいけません。ライセンス規約に違反してしまい、過去には訴訟に発展したケースもあるため、注意が必要です。詳しくは後ほど解説します。\n\n### オープンソースの課題とGitLabのアプローチ\n\nGitLabというプラットフォームが、OSSにおける課題に対してどう取り組んでいるかについて、いくつかご紹介しましょう。詳細を知りたい場合は、[オープンソースプロジェクト向けのGitLabソリューション](https://about.gitlab.com/ja-jp/solutions/open-source/)を読んでみてください。\n\n#### 脆弱性の早期発見と修正\n\nオープンソースは、コードが公開されているため、悪意のある人物が脆弱性を発見してしまうリスクがあります。\n\n[DevSecOpsプラットフォーム](https://about.gitlab.com/ja-jp/topics/devsecops/)であるGitLabは、開発プロセス全体においてセキュリティを重要視しています。静的アプリケーションセキュリティテスト（SAST）や依存関係スキャンといった強力なツールが、早期の脆弱性発見と修正を実現する仕組みを実現します。\n\n#### サポートの補完\n\nOSSはコミュニティによるサポートが中心となり、的確なサポートや迅速な対応を受けられないケースが発生することがあります。\n\n[商用版GitLab](https://about.gitlab.com/ja-jp/pricing/)には、「GitLab Premium」「GitLab Ultimate」があり、公式サポートという選択肢が用意されています。また、コミュニティの結束を高める働きかけをすることで自発的サポートも促進しています。\n\n#### コミュニティの活性化\n\n活発なコミュニティなしに、OSSを成功させることはできませんが、これを維持するのは容易ではありません。\n\nGitLabは、[GitLabフォーラム](https://forum.gitlab.com/c/community/gitlab-for-open-source/49)を運営したり、[オープンソース団体向けプログラム](https://about.gitlab.com/ja-jp/solutions/open-source/join/)を実施、GitLabハッカソンやオンラインイベントを開催したりすることで、デベロッパー同士の繋がりを促進、コミュニティの活性化と拡大に貢献しています。\n\n## オープンソースのライセンスとその重要性\n\nオープンソースのライセンスは、ソフトウェアの利用、配布、変更等に関する権利と制限を明記したものであり、法的拘束力を持ちます。よって、ソフト利用者はこれをしっかりと理解した上で、トラブル回避をすることが望ましいといえます。\n\nまた、ソフトウェアデベロッパーがどのライセンス規約にするかを考える場合には、透明性を重視するのか、自由度を重視するのかなどにより選択するライセンスが異なってきます。ここでは、いくつか代表的なものをご紹介しましょう。\n\n以下に表としてまとめてみました。\n\n![オープンソース　ライセンスのタイプと代表例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752720035/v9ld6h78ilk22x30nged.jpg)\n\n### コピーレフト\n\nコピーレフトライセンスは、元となるソフトウェアを再配布する時には、派生物も元OSSと同じ条件下で行う必要があるというものです。このタイプのライセンスは、非常に伝播性が強いのが特徴です。\n\nまたコピーレフトという言葉は、「コピーライト」をもじったものから誕生しました。\n\n### 準コピーレフト\n\nコピーレフトと比べ、伝播性が多少弱いのが準コピーレフトです。元のOSSのソースコードを再利用した時に、元のライセンスと同条件で再配布する必要があります。\n\n### 非コピーレフト\n\nパーミッシブライセンスとも呼ばれます。名前の通りですが、元のOSSと同条件のライセンスにする必要がありません。ソースコードの公開義務がないため、商用利用されることが多いです。\n\n## よくある質問\n\n### オープンソースソフトウェア（OSS）とは何ですか？\n\nOSSとは、ソースコードが公開され、誰でも自由に利用、修正、配布できるソフトウェアのことです。\n\n### OSSのセキュリティは安心ですか？\n\nOSSライセンスは、ソフトウェアの利用や再配布に関する自由と制約を明確に定義したものです。\n\n### OSSのライセンスにはどんな種類がありますか？\n\nライセンスにはGPL、MIT、Apache Licenseなど、異なる自由度や利用条件を持つものがあり、コピーレフト、準コピーレフト、非コピーレフトの３つに大別されます。\n\n### なぜ企業がOSSを採用するのですか？\n\nコスト削減、柔軟性、信頼性向上、技術コミュニティとの連携が理由となる場合が多いです。またGitLabでは、[オープンソースプロジェクト向けのソリューション](https://about.gitlab.com/ja-jp/solutions/open-source/)を提供しています。ぜひご確認ください。\n\n*監修：佐々木 直晴* [@naosasaki](https://gitlab.com/naosasaki)*（GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト）*",[951,269,898,779],{"featured":91,"template":803,"slug":1064},"what-is-open-source",{"content":1066,"config":1075},{"title":1067,"description":1068,"authors":1069,"heroImage":1071,"body":1072,"date":1073,"category":757,"tags":1074},"Git 2.50.0の新機能","git-diff-pairs(1)コマンドや、参照の一括更新を行うためのgit-rev-list(1)オプションなど、GitLabのGitチームとGitコミュニティによるコントリビュートをご紹介します。",[1070],"Justin Tobler","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663087/Blog/Hero%20Images/git3-cover.png","Gitプロジェクトは最近、[Gitバージョン2.50.0](https://lore.kernel.org/git/xmqq1prj1umb.fsf@gitster.g/T/#u)をリリースしました。今回のリリースの注目すべきポイントをいくつかご紹介します。これには、GitLabのGitチームやより広範なGitコミュニティからのコントリビュートも含まれています。\n\n## 新しいgit-diff-pairs(1)コマンド\n\n\n差分は、すべてのコードレビューの中心となるもので、2つのリビジョン間で行われた\n\nすべての変更を表示します。GitLabでは、さまざまな場所で差分が表示されますが、最も\n\n一般的なのはマージリクエストの[「変更」タブ](https://docs.gitlab.com/user/project/merge_requests/changes/)です。\n\nその裏側では、差分の生成に[`git-diff(1)`](https://git-scm.com/docs/git-diff)が\n\n使われています。たとえば、以下のように使います。\n\n\n```shell\n\n$ git diff HEAD~1 HEAD\n\n```\n\n\nこのコマンドは、変更されたすべてのファイルの完全な差分を返します。ただし、リビジョン間で変更されたファイル数が非常に多い場合、スケーラビリティの課題が生じる可能性があります。GitLabのバックエンドでは、コマンドが自己設定されたタイムアウトに達してしまうこともあります。変更数が多い場合、\n\n差分の計算をより小さく扱いやすい単位に分割できる方法があれば、より効果的です。\n\n\nこの課題を解決する1つの方法は、\n\n[`git-diff-tree(1)`](https://git-scm.com/docs/git-diff-tree)を使って、\n\n変更されたすべてのファイルに関する情報を取得することです。\n\n\n```shell\n\n$ git diff-tree -r -M --abbrev HEAD~ HEAD\n\n:100644 100644 c9adfed339 99acf81487 M      Documentation/RelNotes/2.50.0.adoc\n\n:100755 100755 1047b8d11d 208e91a17f M      GIT-VERSION-GEN\n\n```\n\n\nGitはこの出力を[「raw」フォーマット](https://git-scm.com/docs/git-diff-tree#_raw_output_format)と呼んでいます。\n\n簡単に言えば、出力の各行にはファイルのペアと、\n\nそれらの間で何が変更されたかを示すメタデータが表示されます。大規模な変更に対して\n\n「パッチ」形式の出力を生成する方法と比べて、\n\nこの処理は比較的高速な上、すべての変更の概要を把握できます。また、このコマンドでは、`-M`フラグを付けることでリネーム検出を有効にし、変更がファイルのリネームによるものかどうかを判別することもできます。\n\n\nこの情報を使えば、`git-diff(1)`を使って各ファイルペアの差分を\n\n個別にコンピューティングすることができます。たとえば、以下のようにblob IDを\n\n直接指定することも可能です。\n\n\n```shell\n\n$ git diff 1047b8d11de767d290170979a9a20de1f5692e26 208e91a17f04558ca66bc19d73457ca64d5385f\n\n```\n\n\nこの処理は、各ファイルペアごとに繰り返すことができますが、\n\n個別のファイル差分ごとにGitプロセスを立ち上げるのは、あまり効率的ではありません。\n\nさらに、blob IDを使った場合、変更ステータスやファイルモードといった、\n\n親ツリーオブジェクトに格納されているコンテキスト情報が差分から失われてしまいます。\n\n本当に必要なのは、「raw」なファイルペア情報を元に、\n\n対応するパッチ出力を生成する仕組みです。\n\n\nバージョン2.50から、Gitに新しい組み込みコマンド\n\n[`git-diff-pairs(1)`](https://git-scm.com/docs/git-diff-pairs)が追加されました。このコマンドは、\n\n標準入力（stdin）から「raw」形式のファイルペア情報を受け取り、どのパッチを出力すべきかを正確に判断します。以下の例は、\n\nこのコマンドの使用方法を示しています。\n\n\n```shell\n\n$ git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z\n\n```\n\n\nこのように使用した場合、出力結果は`git-diff(1)`を使った場合と同じになります。\n\nパッチ出力を生成する専用コマンドを分けることで、\n\n`git-diff-tree(1)`から得られた「raw」出力を、より小さなファイルペアのバッチに分割し、それぞれを別々の\n\n`git-diff-pairs(1)`プロセスにフィードすることができます。これにより、差分を一度にすべてコンピューティングする必要がなくなるため、\n\n先に挙げたスケーラビリティの課題が解決されます。今後のGitLabリリースでは、\n\nこの仕組みの応用により、\n\n特に変更量が多い場合における差分生成のパフォーマンス向上が\n\n期待されます。この変更についての詳細は、該当する\n\n[メーリングリストのスレッド](https://lore.kernel.org/git/20250228213346.1335224-1-jltobler@gmail.com/)をご覧ください。\n\n\n_このプロジェクトは[Justin Tobler](https://gitlab.com/justintobler)が主導しました。_\n\n\n## 参照更新の一括処理\n\n\nGitには、参照を更新するための[`git-update-ref(1)`](https://git-scm.com/docs/git-update-ref)\n\nコマンドが用意されています。このコマンドを`--stdin`フラグとともに使用すると、\n\n複数の参照を1つのトランザクションとしてまとめて更新できます。\n\nこれを行うには、各参照更新の指示を標準入力（stdin）で指定します。\n\nこの方法で参照を一括更新すると、アトミックな動作も実現できます。つまり、1つでも参照の更新に失敗した場合、\n\nトランザクション全体が中断され、\n\nどの参照も更新されません。以下は、この動作を示す例です。\n\n\n```shell\n\n# 3つの空のコミットと「foo」という名前のブランチを持つリポジトリを作成する\n\n$ git init\n\n$ git commit --allow-empty -m 1\n\n$ git commit --allow-empty -m 2\n\n$ git commit --allow-empty -m 3\n\n$ git branch foo\n\n\n# コミットIDを出力する\n\n$ git rev-list HEAD\n\ncf469bdf5436ea1ded57670b5f5a0797f72f1afc\n\n5a74cd330f04b96ce0666af89682d4d7580c354c\n\n5a6b339a8ebffde8c0590553045403dbda831518\n\n\n# トランザクションで新しい参照を作成し、既存の参照を更新しようとします。\n\n# 指定された古いオブジェクトIDが一致しないため、更新は失敗することが予想されます。\n\n$ git update-ref --stdin \u003C\u003CEOF\n\n> create refs/heads/bar cf469bdf5436ea1ded57670b5f5a0797f72f1afc\n\n> update refs/heads/foo 5a6b339a8ebffde8c0590553045403dbda831518 5a74cd330f04b96ce0666af89682d4d7580c354c\n\n> EOF\n\nfatal: cannot lock ref 'refs/heads/foo': is at cf469bdf5436ea1ded57670b5f5a0797f72f1afc but expected 5a74cd330f04b96ce0666af89682d4d7580c354c\n\n\n# 「bar」リファレンスは作成されませんでした。\n\n$ git switch bar\n\nfatal: invalid reference: bar\n\n```\n\n\n多くの参照を個別に更新する場合と比べて、一括で更新するほうがはるかに効率的です。\n\nこの方法は基本的にうまく機能しますが、\n\n一括更新による効率面のメリットを優先するために、\n\nリクエストされた参照更新の一部が失敗することを許容したい場合も\n\nあります。\n\n\n今回のリリースで、`git-update-ref(1)`に新しく`--batch-updates`オプションが追加されました。\n\nこのオプションを使用すると、1つ以上の参照更新が失敗しても、処理を続行できるようになります。\n\nこのモードでは、個々の失敗が次の形式で出力されます。\n\n\n```text\n\nrejected SP (\u003Cold-oid> | \u003Cold-target>) SP (\u003Cnew-oid> | \u003Cnew-target>) SP \u003Crejection-reason> LF\n\n```\n\n\nこれにより、成功した参照の更新はそのまま進行しつつ、どの更新が拒否されたのか、\n\nまたその理由についての情報も得ることができます。前の例と同じリポジトリを\n\n使った例は以下のとおりです。\n\n\n```shell\n\n# トランザクションで新しい参照を作成し、既存の参照を更新しようとします。\n\n$ git update-ref --stdin --batch-updates \u003C\u003CEOF\n\n> create refs/heads/bar cf469bdf5436ea1ded57670b5f5a0797f72f1afc\n\n> update refs/heads/foo 5a6b339a8ebffde8c0590553045403dbda831518 5a74cd330f04b96ce0666af89682d4d7580c354c\n\n> EOF\n\nrejected refs/heads/foo 5a6b339a8ebffde8c0590553045403dbda831518 5a74cd330f04b96ce0666af89682d4d7580c354c incorrect old value provided\n\n\n# 「foo」への更新が拒否されたにもかかわらず、「bar」参照が作成されました。\n\n$ git switch bar\n\nSwitched to branch 'bar'\n\n```\n\n\n今回は`--batch-updates`オプションを使用したことで、\n\n更新処理が失敗しても参照の作成は成功しました。この一連のパッチは、\n\n`git-fetch(1)`や`git-receive-pack(1)`における今後の一括参照更新時の\n\nパフォーマンス改善の基盤となります。詳細については、該当する\n\n[メーリングリストのスレッド](https://lore.kernel.org/git/20250408085120.614893-1-karthik.188@gmail.com/)をご覧ください。\n\n\n_このプロジェクトは、[Karthik Nayak](https://gitlab.com/knayakgl)が主導しました。_\n\n\n## git-cat-file(1)の新しいフィルタオプション\n\n\n[`git-cat-file(1)`](https://git-scm.com/docs/git-cat-file)を使うと、\n\nリポジトリ内に含まれるすべてのオブジェクトの情報を\n\n`--batch–all-objects`オプションで出力できます。たとえば、以下のように実行します。\n\n\n```shell\n\n# シンプルなリポジトリを設定します。\n\n$ git init\n\n$ echo foo >foo\n\n$ git add foo\n\n$ git commit -m init\n\n\n# 到達不能なオブジェクトを作成します。\n\n$ git commit --amend --no-edit\n\n\n# git-cat-file(1)を使用して、到達不能なオブジェクトを含むすべてのオブジェクトに関する情報を出力します。\n\n$ git cat-file --batch-all-objects --batch-check='%(objecttype) %(objectname)'\n\ncommit 0b07e71d14897f218f23d9a6e39605b466454ece\n\ntree 205f6b799e7d5c2524468ca006a0131aa57ecce7\n\nblob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99\n\ncommit c999f781fd7214b3caab82f560ffd079ddad0115\n\n```\n\n\n状況によっては、リポジトリ内のすべてのオブジェクトを検索し、\n\n特定の属性に基づいて一部のオブジェクトだけを出力したい場合があります。\n\nたとえば、コミットオブジェクトだけを表示したいときは、\n\n`grep(1)`を使って以下のように実行できます。\n\n\n```shell\n\n$ git cat-file --batch-all-objects --batch-check='%(objecttype) %(objectname)' | grep ^commit\n\ncommit 0b07e71d14897f218f23d9a6e39605b466454ece\n\ncommit c999f781fd7214b3caab82f560ffd079ddad0115\n\n```\n\n\nこの方法でも目的は達成できますが、出力のフィルタリングには欠点があります。\n\nそれは、`git-cat-file(1)`が\n\nユーザーが関心を持っていないオブジェクトも含め、リポジトリ内のすべてのオブジェクトをたどらなければならない点です。これはかなり非効率です。\n\n\n今回のリリースでは、`git-cat-file(1)`に`--filter`オプションが追加され、\n\n指定した条件に一致するオブジェクトだけを表示できるようになりました。これは`git-rev-list(1)`にある同名のオプションと似ていますが、\n\n対応しているフィルターの種類はその一部に限られています。\n\n対応しているフィルターは`blob:none`、`blob:limit=`および\n\n`object:type=`です。先ほどの例と同様に、オブジェクトはGitを使用して直接\n\n種類でフィルタリングできます。\n\n\n```shell\n\n$ git cat-file --batch-all-objects --batch-check='%(objecttype) %(objectname)' --filter='object:type=commit'\n\ncommit 0b07e71d14897f218f23d9a6e39605b466454ece\n\ncommit c999f781fd7214b3caab82f560ffd079ddad0115\n\n```\n\n\nGitに処理を任せられるのは便利なだけでなく、オブジェクト数の多い大規模なリポジトリにおいては\n\n効率面のメリットも期待できます。\n\nリポジトリにビットマップインデックスがある場合、\n\nGitが特定の種類のオブジェクトを効率的に検索できるようになり、パックファイル全体をスキャンする必要がなくなるため、\n\n処理速度が大幅に向上します。\n\n[Chromiumリポジトリ](https://github.com/chromium/chromium.git)で行われた\n\nベンチマークでは、こうした最適化による大きな改善が確認されています。\n\n\n```text\n\nBenchmark 1: git cat-file --batch-check --batch-all-objects --unordered --buffer --no-filter Time (mean ± σ):     82.806 s ±  6.363 s    [User: 30.956 s, System: 8.264 s] Range (min … max):   73.936 s … 89.690 s    10 runs\n\nBenchmark 2: git cat-file --batch-check --batch-all-objects --unordered --buffer --filter=object:type=tag Time (mean ± σ):      20.8 ms ±   1.3 ms    [User: 6.1 ms, System: 14.5 ms] Range (min … max):    18.2 ms …  23.6 ms    127 runs\n\nBenchmark 3: git cat-file --batch-check --batch-all-objects --unordered --buffer --filter=object:type=commit Time (mean ± σ):      1.551 s ±  0.008 s    [User: 1.401 s, System: 0.147 s] Range (min … max):    1.541 s …  1.566 s    10 runs\n\nBenchmark 4: git cat-file --batch-check --batch-all-objects --unordered --buffer --filter=object:type=tree Time (mean ± σ):     11.169 s ±  0.046 s    [User: 10.076 s, System: 1.063 s] Range (min … max):   11.114 s … 11.245 s    10 runs\n\nBenchmark 5: git cat-file --batch-check --batch-all-objects --unordered --buffer --filter=object:type=blob Time (mean ± σ):     67.342 s ±  3.368 s    [User: 20.318 s, System: 7.787 s] Range (min … max):   62.836 s … 73.618 s    10 runs\n\nBenchmark 6: git cat-file --batch-check --batch-all-objects --unordered --buffer --filter=blob:none Time (mean ± σ):     13.032 s ±  0.072 s    [User: 11.638 s, System: 1.368 s] Range (min … max):   12.960 s … 13.199 s    10 runs\n\nSummary git cat-file --batch-check --batch-all-objects --unordered --buffer --filter=object:type=tag 74.75 ± 4.61 times faster than git cat-file --batch-check --batch-all-objects --unordered --buffer --filter=object:type=commit 538.17 ± 33.17 times faster than git cat-file --batch-check --batch-all-objects --unordered --buffer --filter=object:type=tree 627.98 ± 38.77 times faster than git cat-file --batch-check --batch-all-objects --unordered --buffer --filter=blob:none 3244.93 ± 257.23 times faster than git cat-file --batch-check --batch-all-objects --unordered --buffer --filter=object:type=blob 3990.07 ± 392.72 times faster than git cat-file --batch-check --batch-all-objects --unordered --buffer --no-filter ```\n\n\n興味深いことに、これらの結果からは、処理時間がパックファイル内の総オブジェクト数ではなく、\n\n指定された種類のオブジェクト数に比例して増減することが示されています。\n\n元のメーリングリストのスレッドは、\n\n[こちら](https://lore.kernel.org/git/20250221-pks-cat-file-object-type-filter-v1-0-0852530888e2@pks.im/)でご覧いただけます。\n\n\n_このプロジェクトは[Patrick Steinhardt](https://gitlab.com/pks-gitlab)が主導しました。_\n\n\n## バンドル生成時のパフォーマンスが向上\n\n\nGitには、指定した参照とそれに関連する到達可能なオブジェクトを含むリポジトリのアーカイブを生成する機能があります。\n\n具体的には、\n\n[`git-bundle(1)`](https://git-scm.com/docs/git-bundle)コマンドを使用します。この操作は、\n\nGitLabがリポジトリのバックアップを作成する際や、\n\n[バンドルURI](https://git-scm.com/docs/bundle-uri)メカニズムの一部としても使用されます。\n\n\n何百万もの参照を含む大規模なリポジトリでは、\n\nこの操作に数時間から数日かかることもあります。たとえば、GitLabのメインリポジトリ\n\n（[gitlab-org/gitlab](https://gitlab.com/gitlab-org/gitlab)）では、\n\nバックアップに約48時間を要していました。調査の結果、バンドルに重複した参照が含まれないようにチェックする処理において、\n\nパフォーマンスのボトルネックが存在することが判明しました。\n\nこの実装では、すべての参照をイテレーションして比較するために入れ子の`for`loopが使われており、\n\n時間計算量はO(N^2)となっていました。これは、\n\nリポジトリ内の参照数が増えるほど、処理性能が大きく低下する構造です。\n\n\n今回のリリースでは、この問題に対応し、\n\nネストされたloopをマップ型のデータ構造に置き換えることで、処理速度が大幅に向上しました。以下は、\n\n10万件の参照を含むリポジトリでバンドルを作成した際のパフォーマンス改善を\n\n示すベンチマーク結果です。\n\n\n```text\n\nBenchmark 1: bundle (refcount = 100000, revision = master) Time (mean ± σ):     14.653 s ±  0.203 s    [User: 13.940 s, System: 0.762 s] Range (min … max):   14.237 s … 14.920 s    10 runs\n\nBenchmark 2: bundle (refcount = 100000, revision = HEAD) Time (mean ± σ):      2.394 s ±  0.023 s    [User: 1.684 s, System: 0.798 s] Range (min … max):    2.364 s …  2.425 s    10 runs\n\nSummary bundle (refcount = 100000, revision = HEAD) ran 6.12 ± 0.10 times faster than bundle (refcount = 100000, revision = master) ```\n\n\n詳しくは、\n\n[GitLabがリポジトリのバックアップ時間を48時間から41分に短縮した方法](https://about.gitlab.com/blog/how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes/)を紹介するブログ記事をご覧ください。\n\n元のメーリングリストのスレッドは\n\n[こちら](https://lore.kernel.org/git/20250401-488-generating-bundles-with-many-references-has-non-linear-performance-v1-0-6d23b2d96557@gmail.com/)でご覧いただけます。\n\n\n_このプロジェクトは[Karthik Nayak](https://gitlab.com/knayakgl)が主導しました。_\n\n\n## バンドルURIのアンバンドルの改善\n\n\nGitの[バンドルURI](https://git-scm.com/docs/bundle-uri)メカニズムは、\n\nフェッチするバンドルの場所をクライアントに提供することで、クローンやフェッチの速度を\n\n向上させることを目的としています。クライアントがバンドルをダウンロードすると、\n\n`refs/heads/*`以下の参照が、その関連オブジェクトとともにバンドルから\n\nリポジトリにコピーされます。バンドルには`refs/tags/*`のように\n\n`refs/heads/*`以外の参照も含まれていることがありますが、\n\nこれらはクローン時にバンドルURIを使用する場合、単に無視されていました。\n\n\nGit 2.50ではこの制限が解除され、\n\nダウンロードされたバンドルに含まれる`refs/*`に一致するすべての参照がコピーされるようになりました。\n\nこの機能を実装した[Scott Chacon](https://github.com/schacon)さんは、\n\n[gitlab-org/gitlab-foss](https://gitlab.com/gitlab-org/gitlab-foss)をクローンした際の\n\n挙動の違いを紹介しています。\n\n\n```shell\n\n$ git-v2.49 clone --bundle-uri=gitlab-base.bundle https://gitlab.com/gitlab-org/gitlab-foss.git gl-2.49\n\nCloning into 'gl2.49'...\n\nremote: Enumerating objects: 1092703, done.\n\nremote: Counting objects: 100% (973405/973405), done.\n\nremote: Compressing objects: 100% (385827/385827), done.\n\nremote: Total 959773 (delta 710976), reused 766809 (delta 554276), pack-reused 0 (from 0)\n\nReceiving objects: 100% (959773/959773), 366.94 MiB | 20.87 MiB/s, done.\n\nResolving deltas: 100% (710976/710976), completed with 9081 local objects.\n\nChecking objects: 100% (4194304/4194304), done.\n\nChecking connectivity: 959668, done.\n\nUpdating files: 100% (59972/59972), done.\n\n\n$ git-v2.50 clone --bundle-uri=gitlab-base.bundle https://gitlab.com/gitlab-org/gitlab-foss.git gl-2.50\n\nCloning into 'gl-2.50'...\n\nremote: Enumerating objects: 65538, done.\n\nremote: Counting objects: 100% (56054/56054), done.\n\nremote: Compressing objects: 100% (28950/28950), done.\n\nremote: Total 43877 (delta 27401), reused 25170 (delta 13546), pack-reused 0 (from 0)\n\nReceiving objects: 100% (43877/43877), 40.42 MiB | 22.27 MiB/s, done.\n\nResolving deltas: 100% (27401/27401), completed with 8564 local objects.\n\nUpdating files: 100% (59972/59972), done.\n\n```\n\n\nこれらの結果を比較すると、Git 2.50はバンドル展開後に43,887個（40.42 MiB）のオブジェクトをフェッチしているのに対し、\n\nGit 2.49は合計で959,773個（366.94 MiB）のオブジェクトをフェッチしています。\n\nGit 2.50では、取得されるオブジェクト数が約95%、\n\nデータ量が約90%削減されており、クライアントとサーバーの双方にとってメリットがあります。\n\nサーバー側ではクライアントに送信するデータ量が大幅に減り、\n\nクライアント側でもダウンロードおよび展開するデータが少なくて済みます。Chaconさんの提供した例では、\n\nこれによって処理速度が25%向上しました。\n\n\n詳細については、\n\n該当する[メーリングリストのスレッド](https://lore.kernel.org/git/pull.1897.git.git.1740489585344.gitgitgadget@gmail.com/)をご覧ください。\n\n\n_この一連のパッチは、[Scott Chacon](https://github.com/schacon)さんによって提供されました。_\n\n\n## 詳細はこちら\n\n\n本記事でご紹介したのは、最新リリースにおいてGitLabと広範なGitコミュニティによって行われた\n\nコントリビュートのごく一部にすぎません。Gitプロジェクトの[公式リリースのお知らせ](https://lore.kernel.org/git/xmqq1prj1umb.fsf@gitster.g/)では、\n\nさらに詳しい情報をご覧になれます。また、\n\n[以前のGitリリースのブログ記事](https://about.gitlab.com/blog/tags/git/)もぜひご覧ください。GitLabチームメンバーによる過去の主なコントリビュートをご確認いただけます。\n","2025-06-16",[1051,898,269],{"featured":91,"template":803,"slug":1076},"what-s-new-in-git-2-50-0",{"category":90,"slug":768,"posts":1078},[1079,1092,1103],{"content":1080,"config":1090},{"heroImage":1081,"body":1082,"authors":1083,"updatedDate":1084,"date":1085,"title":1086,"tags":1087,"description":1089,"category":768},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1760578954/qnx77zqzjgrazd6rz6e8.png","本ブログは、[GitLab 18.5 Release](https://about.gitlab.com/releases/2025/10/16/gitlab-18-5-released/)の抄訳です。内容に相違がある場合は、原文が優先されます。\n\n## GitLab Duo Planner Agent（ベータ版）とGitLab Duo Security Analyst Agent（ベータ版）を搭載したGitLab 18.5をリリース\n\nこのたび、GitLab 18.5のリリースを発表しました。このリリースでは、GitLab Duo Planner Agent（ベータ版）、GitLab Duo Security Analyst Agent（ベータ版）、Maven仮想レジストリUI（ベータ版）、パーソナルホーム画面など、さまざまな機能が追加されました。\n\nこれらの機能は、今回のリリースに含まれる57項目の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 18.5には、GitLabコミュニティのユーザーから278件ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。\n\n来月のリリースで予定されている内容を先取りするには、[今後のリリースページ](https://about.gitlab.com/releases/)をご覧ください。\n\n10月28日午前10時（太平洋時間）に開催される**GitLab Developer Show**にぜひご参加ください。GitLab 18.5の最新機能を詳しく解説し、活発なコントリビューターコミュニティの育成についてお話しします。実際の機能デモをご覧いただき、リアルタイムでご質問いただけるほか、チームから直接インサイトを得て、GitLabとともに成長する方法を具体的にご紹介します。\n\n**[今すぐ参加登録](https://about.gitlab.com/events/)**\n\nGitLab 18.5では、GitLab Duo Planner Agent（ベータ版）とGitLab Duo Security Analyst Agent（ベータ版）を提供開始しました。\n\n[クリックしてSNSで共有しましょう！](http://twitter.com/share?text=GitLab+18.5%E3%81%A7%E3%81%AF%E3%80%81GitLab+Duo+Planner+Agent%EF%BC%88%E3%83%99%E3%83%BC%E3%82%BF%E7%89%88%EF%BC%89%E3%81%A8GitLab+Duo+Security+Analyst+Agent%EF%BC%88%E3%83%99%E3%83%BC%E3%82%BF%E7%89%88%EF%BC%89%E3%82%92%E6%8F%90%E4%BE%9B%E9%96%8B%E5%A7%8B%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82&url=https://about.gitlab.com/ja-jp/blog/gitlab-18-05-release/&hashtags=)\n\n![notable-contributor-logo](https://about.gitlab.com/images/notable-contributor-logo.svg)\n\n### **今月の[注目コントリビューター](https://contributors.gitlab.com/docs/notable-contributors)は[Jose Gabriel Companioni Benitez](https://gitlab.com/elC0mpa)さんです**\n\nJoseさんはブログ記事「[How GitLab Can Boost Your Professional Career](https://compacompila.com/posts/gitlab-open-source-community/)」の中で次のように述べています。「プロフェッショナルとしての成長という観点から見て、GitLabが提供する最大の利点は、オープンソースであることです。GitLabにとって、誰もがコントリビュートできることは重要であり、そのため、コントリビューターのオンボーディングプロセスに真剣に取り組んでいます。」\n\n9月に初めてコントリビュートし、10月には注目コントリビューターとなったJoseさんの歩みは、GitLabコラボレーティブコミュニティの力を示すものです。コミュニティオフィスアワー、Discordでのディスカッション、ペアリングセッションへの積極的な参加を通じて、Joseさんは[ドキュメント](https://gitlab.com/gitlab-org/cli/-/merge_requests/2392)、[コード](https://gitlab.com/gitlab-org/terraform-provider-gitlab/-/merge_requests/2690)、コミュニティサポートにわたる多様なコントリビュートを行うレベル3コントリビューターへと急速に成長できる、協力的な環境を見つけました。\n\nGitLabコミュニティは、コントリビューター同士が支え合い、ともに成長する歓迎の場を提供しています。オープンソースの旅を始めたばかりの方も、スキルを深めたい方も、私たちのコミュニティが皆様の成功をサポートします。\n\nコントリビュートについて詳しくは、[GitLab Contributor Platform](https://about.gitlab.com/community/contribute/)をご覧ください。\n\nJoseさん、素晴らしい活動をありがとうございます！🚀\n\n## **GitLab 18.5でリリースされた主な改善点**\n\n### **GitLab Duo Planner：プロダクトマネージャーのための専任エージェント兼チームメイト（ベータ版）**\n\n> GitLab.com: Premium、Ultimate、Duo Core、Duo Pro、Duo Enterprise\n\nGitLab Duo Plannerは、GitLab内でプロダクトマネージャーを直接サポートするために開発されたGitLab Duoエージェントです。手作業でアップデートを追いかけたり、作業の優先順位を付けたり、計画データを要約したりする代わりに、GitLab Duo Plannerがバックログの分析、RICEやMoSCoWなどのフレームワークの適用、本当に注意が必要な項目の抽出をサポートします。計画ワークフローを理解し、より良い意思決定を迅速に行えるよう能動的に支援してくれるチームメイトとして機能します。\n\nこの機能は現在ベータ版です。[イシュー576622](https://gitlab.com/gitlab-org/gitlab/-/issues/576622)でフィードバックをお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/576618)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/576618)\n\n![duo_planner](https://about.gitlab.com/images/18_5/duo_planner.png)\n\n### **Security Analyst Agent（セキュリティ分析エージェント）（ベータ版）をGitLab Duoエージェントカタログ向けにリリース**\n\n> GitLab.com: Ultimate、Duo Core、Duo Pro、Duo Enterprise\n\nGitLab Duo Agent Platformのエージェントを使用すると、GitLab内でタスクを実行したり、複雑な質問に回答したりすることが可能です。ユーザーは、マージリクエストの作成やコードレビューなどの特定のタスクを実行するカスタムエージェントを作成することも、AIカタログを使用してGitLabエージェントを探すこともできます。\n\nGitLab 18.5では、GitLabセキュリティ分析エージェントをベータ版機能としてAIカタログでリリースしました。プロジェクトでGitLabセキュリティ分析エージェントを使用するには、GitLab Duo Agentic Chatでエージェントを選択して有効化します。このエージェントは次のタスクを実行できます：\n\n* 特定のプロジェクト内のすべての脆弱性をリスト表示\n* CVEデータやEPSSスコアを含む詳細な脆弱性情報を取得\n* 脆弱性を確認または却下\n* 脆弱性の重大度レベルを更新\n* 脆弱性ステータスを`detected`（検出済み）に戻す\n* 脆弱性イシューを作成、または脆弱性を既存のイシューにリンク\n\nGitLabセキュリティ分析エージェントを使用することで、AI駆動の自動化や優れた分析により、面倒なセキュリティワークフローを効率化できます。これにより、エンジニアは本当に対応すべき脅威に集中でき、反復的な評価やドキュメント作成といったタスクはGitLabセキュリティ分析エージェントが処理します。\n\nなお、GitLab Duo Chatを使用するGitLabセキュリティ分析エージェントは、GitLab Duoアドオンを持つUltimateのお客様のみご利用いただけます。\n\nこの機能はベータ版です。[イシュー576916](https://gitlab.com/gitlab-org/gitlab/-/issues/576916)でフィードバックをお待ちしております。\n\n[ドキュメント](https://docs.gitlab.com/user/duo_agent_platform/agents/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/19659)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/19659)\n\n![security_analyst_agent](https://about.gitlab.com/images/18_5/security_analyst_agent.png)\n\n### **Maven仮想レジストリがベータ版として利用可能に**\n\n> GitLab.com: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLab 18.5では、Maven仮想レジストリを管理するのための包括的なWebベースインターフェースを導入しました。これまで、プラットフォームエンジニアはAPI経由でのみ仮想レジストリの構成・管理が可能で、日常的なメンテナンスタスクが煩雑で専門知識が必要でした。\n\nこのWebベースのアプローチにより、プラットフォームエンジニアリングチームの運用オーバーヘッドが大幅に削減されます。古いキャッシュエントリのクリア、パフォーマンス最適化のためのアップストリームの並べ替え、接続テストなどの一般的なタスクが、ポイント&クリック操作だけで実行できるようになりました。開発チームは依存関係の構成をより明確に把握できるようになり、ビルドパフォーマンスとセキュリティポリシーについて、より適切な議論が可能になります。\n\nMaven仮想レジストリは、GitLab PremiumおよびUltimateをご利用のお客様向けにベータ版として提供されています。現在のベータ版の制限には、トップレベルグループあたり最大20の仮想レジストリ、仮想レジストリあたり最大20のアップストリームという制限があります。\n\nPremiumおよびUltimateをご利用のお客様には、Maven仮想レジストリベータプログラムにご参加いただき、正式リリースに向けたフィードバックにご協力いただければ幸いです。[イシュー543045](https://gitlab.com/gitlab-org/gitlab/-/issues/543045)でフィードバックやご提案をお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/user/packages/virtual_registry/maven/#manage-virtual-registries)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14137)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/14137)[](https://gitlab.com/groups/gitlab-org/-/epics/14137)\u003Cfigure class=\"video_container\">\n\n\u003Ciframe src=\"https://www.youtube.com/embed/CiOZJPhAvaI?si=_ojZqyuQyCJIaKBg\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n### **新しいパーソナルホーム画面で作業を再開**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\n重要なGitLabアクティビティーをすべて1か所に集約した新しいパーソナルホーム画面にアクセスできるようになりました。中断した作業を簡単に再開できます。このホーム画面では、To-Doアイテム、アサインされたイシュー、マージリクエスト、レビュー依頼、最近表示したコンテンツをまとめて確認でき、GitLabの豊富な機能の中から必要なものをすぐに見つけられるため、優先すべき作業に集中できます。\n\n[ドキュメント](https://docs.gitlab.com/tutorials/personal_homepage/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16657)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/16657)\n\n![personal_homepage](https://about.gitlab.com/images/18_5/personal_homepage.png)\n\n### **VS CodeおよびJetBrains IDEでGitLab Duo Agentic Chatのモデル選択が可能に**\n\n> GitLab.com: Premium、Ultimate、Duo Core、Duo Pro、Duo Enterprise\\\n> Self-Managed: Premium、Ultimate、Duo Core、Duo Pro、Duo Enterprise\\\n> GitLab Dedicated: Ultimate、Duo Core、Duo Pro、Duo Enterprise\n\nVS CodeおよびJetBrains IDEで利用可能なGitLab Duo Chatで、お好みのAIモデルを簡単に選択できるようになりました。GitLab Duo Chatパネルのドロップダウンリストから、Claude、GPT、その他のサポート対象モデルを選択できます。利用可能なモデルは組織の管理者が管理しており、ワークフローに適したモデルを使用できます。\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_duo/model_selection/#select-an-llm-for-a-feature)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/19345)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/19345)\n\n![ide-model-selection](https://about.gitlab.com/images/18_5/ide-model-selection.png)\n\n### **GitLab Duo Agentic ChatのモデルオプションとしてGPT-5が利用可能に**\n\n> GitLab.com: Premium、Ultimate、Duo Pro、Duo Enterprise\\\n> Self-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\\\n> GitLab Dedicated: Ultimate、Duo Pro、Duo Enterprise\n\nOpenAI GPT-5が、GitLab Duo Agent Platformのモデル選択肢として、GitLab AIベンダーモデルに追加されました。GitLab.comのトップレベルグループのオーナー、およびSelf-ManagedとDedicatedのインスタンス管理者が設定を行うことで、エンドユーザーはGitLab Duo機能でGPT-5を使用できるようになります。トップレベルオーナーと管理者は、ネームスペースまたはインスタンスの設定から組織全体のモデル設定を引き続き管理できます。また、エンドユーザーが利用可能なすべてのGitLab AIベンダーモデルから自由に選択できるよう許可することも可能です。\n\nGPT-5の使用を開始するには、GitLab Duo Chatのモデルドロップダウンリストからお好みのモデルを選択してください。\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/#select-a-model)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/19124)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/19124)\n\n![GPT5_Now_Available](https://about.gitlab.com/images/18_5/GPT5_Now_Available.png)\n\n### **インスタンス全体のコンプライアンスおよびセキュリティポリシー管理**\n\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\nエンタープライズユーザーは、複数のトップレベルグループにまたがってコンプライアンスフレームワークとセキュリティポリシーを管理したいと考えています。これは、インスタンス内のすべてのグループが次のような場合によく見られます：\n\n* 同じコンプライアンスフレームワークを共有している。例：グループ内のすべてのプロジェクトがISO 27001基準に準拠する必要がある場合。\n* 類似のセキュリティポリシーを適用している。例：すべてのグループが同じパイプライン実行ポリシーを共有している場合。\n\nGitLab 18.5では、GitLab Self-ManagedおよびDedicatedのインスタンス全体でセキュリティポリシーとコンプライアンスフレームワークの管理を一元化するための、コンプライアンスおよびセキュリティポリシーグループを導入しました。このリリースにより、単一のトップレベルグループからコンプライアンスフレームワークとセキュリティポリシーを作成・設定して割り当て、インスタンス全体の他のすべてのトップレベルグループに適用できるようになりました。\n\nコンプライアンスおよびセキュリティポリシーグループを使用すると、コンプライアンスフレームワークとセキュリティポリシーを管理・編集できる単一の信頼できる情報源を持つことができます。その後、グループ内のセキュリティおよびコンプライアンス担当ユーザーは、インスタンス全体のすべてのプロジェクトにコンプライアンスフレームワークとセキュリティポリシーを適用できます。\n\nコンプライアンスおよびセキュリティポリシーグループにより、インスタンス全体でコンプライアンスとセキュリティのニーズを管理・適用することが容易になります。ただし、各グループは、そのグループ固有の状況やワークフローに対処するために、独自のコンプライアンスフレームワークとセキュリティポリシーを作成する機能を引き続き保持します。\n\nこの機能は、GitLab Self-ManagedおよびDedicatedをご利用のお客様向けです。GitLab.comをご利用のお客様は、セキュリティポリシープロジェクトを使用して、単一のトップレベルグループまたはネームスペース内でフレームワークとポリシーを一元管理できます。\n\n[コンプライアンスフレームワーク](https://docs.gitlab.com/ee/administration/compliance_frameworks.html)と[セキュリティポリシー](https://docs.gitlab.com/ee/user/application_security/policies/)のコンプライアンスおよびセキュリティポリシーグループについての詳細は、ドキュメントをご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/security/compliance_security_policy_management/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13488)\n\n\u003Cfigure class=\"video_container\">\n\u003Ciframe src=\"https://www.youtube.com/embed/TrQCeWsdj1A?si=4EPMy8Ipb0Amon0a\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/13488)\n\n### **DAST認証スクリプト**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\nCI/CD構成にスクリプトを追加して、DAST認証ワークフローを自動化できるようになりました。認証スクリプトにより、時間ベースのワンタイムパスワード（OTP MFA）のサポートを含む、複雑な認証フローを自動化できます。\n\nこの機能強化により、チームは重要なセキュリティコントロールを維持しながら、徹底した自動化されたセキュリティスキャンを実施できるようになりました。実際の認証シナリオをサポートすることで、スクリプトは作業の負担を軽減し、本番環境のソフトウェアに対する正確なセキュリティ評価を実現します。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dast/browser/configuration/authentication_scripts/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17018)\n\n\u003Cfigure class=\"video_container\">\n\u003Ciframe src=\"https://www.youtube.com/embed/EIAPBbFJuuk?si=pVutmmNQdnYRdlbE\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n## GitLab 18.5リリースに含まれるその他の改善点[](https://about.gitlab.com/releases/2025/10/16/gitlab-18-5-released/#other-improvements-in-gitlab)\n\n### **イシューとタスクのステータスライフサイクルを設定**\n\n> GitLab.com: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nこれまで、イシューとタスクは同じステータス設定を共有する必要がありました。今回のリリースでは、ステータスライフサイクルの設定機能を追加し、プロジェクト内でイシューとタスクそれぞれに異なるワークフローを定義できるようになりました。ワークフロー内にステータスマッピングが組み込まれているため、作業アイテムのタイプを変更する際、一括編集なしでイシューやタスクを新しいステータスに自動的に移行できます。\n\nユースケースや改善案を[フィードバックイシューでお寄せいただき](https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/35235)、本機能の向上にご協力ください。\n\n[ドキュメント](https://docs.gitlab.com/user/work_items/status/#lifecycles)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/555528)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/555528)\n\n![plan-configure-status-lifecycles](https://about.gitlab.com/images/18_5/plan-configure-status-lifecycles.png)\n\n## **イシューで子タスクの完了状況を確認**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\n子アイテムウィジェットから、イシューの進捗状況を直接確認できるようになりました。ステータスを一目で把握できます。この改善により、作業の進行中に発生する可能性があるボトルネックをリアルタイムで可視化し、スプリント期限に影響が出る前にリスクのあるアイテムを素早く特定して調整できます。\n\n[ドキュメント](https://docs.gitlab.com/user/tasks/#view-tasks)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/520886)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/520886)\n\n![monitor_child_task_completion_at_a_glance](https://about.gitlab.com/images/18_5/monitor_child_task_completion_at_a_glance.png)\n\n## `environment deployment_tier`**で変数展開に対応**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\n`environment:deployment_tier`フィールドでCI/CD変数が使用できるようになり、パイプラインの条件に応じてデプロイ層を動的に設定できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ci/yaml/#environmentdeployment_tier)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/365402)[](https://gitlab.com/gitlab-org/gitlab/-/issues/365402)\n\n## **高度なSASTでC/C++に対応**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLab高度なSASTにC/C++のベータサポートを追加しました。\n\nこの新しいクロスファイル、クロスファンクションスキャン機能を利用するには、[C/C++サポートを有効化](https://docs.gitlab.com/user/application_security/sast/cpp_advanced_sast/)してください。\n\n本機能についてのご意見・ご質問、または開発チームとの意見交換は、[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/575671)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/sast/cpp_advanced_sast/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/18368)\n\n## **依存関係スキャンが限定提供で利用可能に**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLab 18.5では、依存関係スキャンアナライザーと連携する新しい依存関係スキャンテンプレートをリリースしました。このアナライザーは、すべてのコンポーネントの脆弱性を含む依存関係スキャンレポートを生成します。スキャン実行ポリシー（SEP）とパイプライン実行ポリシー（PEP）が新しいテンプレートに対応しています。\n\n新しいテンプレートを使用するには、`Jobs/Dependency-Scanning.v2.gitlab-ci.yml`をインポートしてください。\n\nこの機能はGitLab.comとSelf-Managedインスタンスで利用できますが、Self-Managedの公式サポートはまだ開始されていないため、限定提供となっています。GitLab.comユーザーはすぐにご利用いただけます。\n\n本機能についてのご意見・ご質問、または開発チームとの意見交換は、[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/523458)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15961)\n\n## **シークレット有効性チェックがベータ版に**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\n\nパイプラインシークレット検出は、プロジェクト内に露出したパスワードやAPIキーなどの認証情報を警告します。しかし、GitLab 18.5以前は、検出された各シークレットが実際に有効なトークンかどうかを手動で確認する必要があり、効果的なトリアージが困難で時間がかかっていました。\n\n有効性チェックがベータ版となり、有効化すると検出されたGitLabシークレットのステータスが表示されるようになりました。有効なシークレットは正当なアクティビティーになりすますために悪用される可能性があり、できるだけ早急にローテーションする必要があります。有効性チェックの動作については、[有効性チェックプレイリスト](https://www.youtube.com/playlist?list=PL05JrBw4t0Ko8uOgubcYqmTTMGs0zWQRt)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/vulnerabilities/validity_check/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16927)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/16927)\n\n![validity_checks_beta](https://about.gitlab.com/images/18_5/validity_checks_beta.png)\n\n## **マージリクエスト承認ポリシーの例外設定**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\n重大な状況が発生した場合に、特定のユーザー、グループ、ロール、またはカスタムロールがマージリクエスト承認ポリシーをバイパスできるように指定可能になりました。この機能により、包括的な監査証跡とガバナンス管理を保ちながら、緊急時には柔軟に対応できるようになります。\n\n**説明責任を伴う緊急バイパス:** 指定されたユーザーは、重大なインシデント、セキュリティホットフィックス、緊急の本番環境の問題が発生した際に承認要件をバイパスできます。緊急時には、権限のある担当者が変更を即座にマージまたはプッシュでき、同時にシステムがコンプライアンスレビュー用の詳細な理由と監査情報を記録します。\n\n主な機能：\n\n* **文書化されたバイパスプロセス:** 権限のあるユーザーがポリシーバイパスを実行する際、直感的なモーダルインターフェースで詳細な理由の入力を求められます。これにより、すべての例外が適切なコンテキストと共に記録されます。\n* **包括的な監査統合:** すべてのバイパスについて、ユーザーID、ポリシーコンテキスト、理由、タイムスタンプを含む詳細な監査イベントが生成され、例外の使用パターンを完全に可視化できます。\n* **柔軟な設定:** YAMLまたはUI設定でポリシー例外の権限を定義でき、個別ユーザー、GitLabグループ、標準ロール、カスタムロールに対応しています。\n* **Gitベースのプッシュ例外:** 事前承認されたポリシー例外を持つユーザーは、プッシュバイパスオプション`security_policy.bypass_reason`を指定して直接プッシュできます。\n\nこの機能により、緊急時にセキュリティポリシーを完全に無効化する必要がなくなり、組織のガバナンスと監査要件を維持しつつ、緊急変更には管理された方法で対応できるようになります。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#user-group-role-and-custom-role-exceptions)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/18114)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/18114)\n\n![user-policy-bypass](https://about.gitlab.com/images/18_5/user-policy-bypass.png)\n\n## **パイプラインのセキュリティタブでセキュリティ検出のステータスを更新**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\n以前は、パイプラインの**セキュリティ**タブで脆弱性を却下しても、リストから即座に削除されませんでした。\n\nパイプラインページのセキュリティタブのステータス更新が、変更後すぐに反映されるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/detect/security_scanning_results/#change-status-or-severity)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/554078)\n\n## **外部コントロールステータスのリクエストを制御**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLabでコンプライアンスフレームワークを作成する際、要件に外部コントロールを関連付けることができます。\n\nデフォルトでは、GitLabはコンプライアンススキャン中に12時間ごとに外部システムへ外部コントロールのステータスを自動的にリクエストし、コントロールステータスを’pending’（保留中）に設定します。その後、外部システムは外部コントロールAPIを使用してステータスを’pass’（合格）または’fail’（不合格）に更新する仕組みです。\n\nGitLab 18.5では、外部コントロールを設定する際に**Ping enabled**設定をオフにすることで、この12時間ごとの自動pingを無効化できるようになりました。12時間pingを無効にした場合：\n\n* GitLabは外部システムへステータス更新を自動的にリクエストしません\n* 外部コントロールにはコンプライアンスフレームワークUIで**Disabled**（無効）バッジが表示されます\n* 外部コントロールAPIを使用して、外部コントロールステータスの更新タイミングを完全に制御できます\n\nこれにより、システムが外部コントロールステータスをpendingにリセットすることを防ぎ、ステータス更新のタイミングを完全に管理できます。\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/compliance_frameworks/#ping-enabled-setting)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/521757)\n\n## **依存関係リストにアクティブな脆弱性のみを表示**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\n以前は、依存関係リストに一部の却下済み脆弱性が含まれていました。\n\n依存関係リストの脆弱性をより実用的に表示するため、プロジェクトの依存関係リストには、`detected`（検出済み）および`confirmed`（確認済み）のアクティブな脆弱性のみが表示されるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dependency_list/#vulnerabilities)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/353487)\n\n## **GitLab Duo Chat（クラシック）でCodestralに対応**\n\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\n[Gitlab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models)のクラシック版Duo ChatでMistral Codestralが使用できるようになりました。このモデルは、GitLab Self-ManagedインスタンスでGitlab Duo Self-Hostedをご利用のお客様が使用できます。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/550266)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/550266)\n\n![Codestral_for_Chat](https://about.gitlab.com/images/18_5/Codestral_for_Chat.png)\n\n## **GitLab Duo Self-Hosted用のGitLab Duo Agent PlatformでGPT OSSモデルに対応**\n\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\n[Gitlab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models)のGitLab Duo Agent PlatformでGPT OSSモデルが使用できるようになりました。\n\n## **グループとプロジェクトの非アクティブアイテム管理を改善**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\n非アクティブタブで、GitLab全体のすべての非アクティブアイテムが統一された場所に一貫して表示されるようになりました。これには、アーカイブされたプロジェクト、削除保留中のプロジェクト、削除保留中のグループが含まれます。このタブは、グループ概要ページに加え、**マイワーク**、**プロジェクトを探す**、**管理**エリア全体のグループとプロジェクトリストで利用できます。適切な権限を持つすべてのユーザーが非アクティブアイテムを表示でき、グループオーナー、プロジェクトオーナー、メンテナーのみがさらなる操作を実行できます。この更新の一環として、プロジェクトとグループREST API、GraphQL APIで新しい`active`パラメータが利用可能になりました。\n\n非アクティブコンテンツの管理は、GitLabインスタンスを維持する上で重要です。この更新により、アーカイブされたコンテンツや削除保留中のコンテンツの検索と復元が容易になり、GitLabリソースをより適切に管理しながら、貴重な作業を誤って失うリスクを軽減できます。アクティブコンテンツと非アクティブコンテンツを明確に分離することで、GitLabのすべてのエリアでグループやプロジェクトを閲覧する際の検索体験がより焦点を絞ったものになります。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#compatible-models)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/19348)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/19348)\n\n![Tenant_Scale-Inactive_item_management](https://about.gitlab.com/images/18_5/Tenant_Scale-Inactive_item_management.png)\n\n## **プレーンテキストエディタでMarkdownテーブルをフォーマット**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\n整列されていないMarkdownテーブルは、正しくレンダリングされても、読みにくく編集しにくいものです。\n\nプレーンテキストエディタのツールバーにある新しい**テーブルの再フォーマット**機能で、ワンクリックでテーブルの列を再整列でき、整列設定とインデントが保持されます。使用方法：\n\n1. Wikiページ、イシュー、マージリクエスト内の任意のMarkdownテーブルを選択\n2. **その他のオプション**メニューから**テーブルの再フォーマット**を選択\n\nこれにより、複雑なテーブルを扱う際のドキュメンテーション保守が高速化され、コラボレーションが容易になります。\n\n[ドキュメント](https://docs.gitlab.com/user/markdown/#tables)\\\n[マージリクエスト](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/201392)\n\n## **GitLab Runner 18.5**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLab Runner 18.5も本日リリースしました。GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送り返す高度にスケーラブルなビルドエージェントです。GitLab Runnerは、GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n\nバグ修正:\n\n* [Runnerオペレーターを1.39から1.41に更新した後、バニラKubernetesでRunner更新が失敗する](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/259)\n* [一部のコンテナラベルに重複したプレフィックスがある](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38674)\n\nすべての変更の一覧は、GitLab Runnerの[CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-5-stable/CHANGELOG.md)で確認できます。\n\n[ドキュメント](https://docs.gitlab.com/runner)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38976)\n\n## **マージリクエストでの高度なSAST差分ベーススキャン**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n\nGitLab高度SASTで、マージリクエスト内のコード変更のみを分析する差分ベーススキャンを実行できるようになりました。リポジトリ全体のスキャンと比較してスキャン時間が大幅に短縮されます。コードベース全体ではなくGit差分のみをスキャンすることで、開発ワークフローにセキュリティテストをよりシームレスに統合でき、速度が落ちたり、マージリクエストの手間が増えたりすることもありません。\n\nこのパフォーマンス改善をデフォルトで有効にする作業を進めています。進捗は[イシュー546359](https://gitlab.com/gitlab-org/gitlab/-/issues/546359)で追跡されています。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#diff-based-scanning-in-merge-requests)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16790)\n\n## **高度なSASTのカスタマイズ可能な検出ロジック**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLab高度なSASTで、組織固有のセキュリティ要件とコーディングパターンに合わせたカスタムセキュリティ検出ルールを作成できるようになりました。この機能により、セキュリティチームは事前定義されたルールセットを超えてカスタム脆弱性パターンを定義でき、アプリケーション固有のセキュリティ問題を検出できます。\n\n詳細については、[ルールセットのカスタマイズ](https://docs.gitlab.com/user/application_security/sast/customize_rulesets/)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/sast/customize_rulesets/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16604)\n\n## **シークレットプッシュ保護とパイプラインシークレット検出のルールカバレッジを拡大**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLabパイプラインシークレット検出に新しいルールが追加されました。一部の既存ルールも、品質向上と誤検出削減のために更新されました。これらの変更は、シークレットアナライザーの[バージョン7.15.0](https://gitlab.com/gitlab-org/security-products/analyzers/secrets/-/releases/v7.15.0)でリリースされています。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/secret_detection/detected_secrets)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/573973)\n\n## **静的到達可能性が限定提供で利用可能に、実験的なJavaサポートを追加**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLab 18.5では、静的到達可能性の限定提供サポートをリリースしました。このリリースでは、JS/TSカバレッジサポートの改善、バグ修正、実験的なJavaサポートの提供に重点を置いています。静的到達可能性は、プロジェクトのソースコードをスキャンして使用中のオープンソース依存関係を特定することで、ソフトウェア構成分析（SCA）の結果を強化します。静的到達可能性が生成するデータは、トリアージや修正の意思決定に活用できます。また、CVSSやEPSSスコア、KEVインジケーターと組み合わせて、特定された脆弱性をより焦点を絞って表示することもできます。\n\n本機能についてのご意見・ご質問、または開発チームとの意見交換は、[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/535498)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dependency_scanning/static_reachability/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15780)\n\n## **脆弱性APIから元の重大度を公開**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\n脆弱性GraphQL APIで、脆弱性の元の重大度が取得できるようになりました。これにより、重大度の上書きが適用される前の脆弱性の重大度を判断できます。\n\n[ドキュメント](https://docs.gitlab.com/api/graphql/reference/#pipelinesecurityreportfindingoriginalseverity)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/557940)\n\n## **マージリクエスト承認ポリシーのタイムウィンドウ**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\nセキュリティ脆弱性の比較においてさらなる柔軟性を提供するため、マージリクエスト承認ポリシーにタイムウィンドウを導入しました。最新のベースラインのセキュリティレポートがまだ利用できない場合、この新しいポリシー設定により、指定した期間内であれば以前に完了したセキュリティレポートを使用できます。\n\n開発チームは、非常に忙しいプロジェクトなどでベースラインのセキュリティスキャンが停滞したり時間がかかりすぎたりしている場合に、不要な遅延を回避できるようになりました。タイムウィンドウを設定することで、新しい脆弱性を導入しないマージリクエストは、最新のパイプラインの完了を待たずに進行でき、ワークフローの効率が向上します。\n\nこの機能を使用するには、マージリクエスト承認ポリシーを作成または編集し、承認ポリシー設定で`security_report_time_window`パラメータ（分単位）を指定してください。\n\nシステムは、指定されたタイムウィンドウ内に作成されたセキュリティレポートを使用して最新のパイプラインと比較し、新しい脆弱性が導入されていない場合により迅速な承認を可能にします。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#security_report_time_window)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/525509)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/525509)\n\n![time-window](https://about.gitlab.com/images/18_5/time-window.png)\n\n## **GitLab Duo Agentic Chatの新しい脆弱性管理機能**\n\n> GitLab.com: Ultimate、Duo Core、Duo Pro、Duo Enterprise\\\n> Self-Managed: Ultimate、Duo Core、Duo Pro、Duo Enterprise\\\n> GitLab Dedicated: Ultimate、Duo Core、Duo Pro、Duo Enterprise\n\nGitLab Duo Agentic Chatは、GitLab Duo Chatの強化版です。GitLabプロジェクト全体の複数のソースから情報を検索、取得、統合して、より徹底的で関連性の高い回答を提供します。プロジェクトの検索、ファイルの読み取りとリスト表示、GitLab Duo Chatに提供されたプロンプトに基づくファイルの自律的な作成と変更など、いくつかのユースケースがあります。\n\nGitLab 18.5では、Agentic Chatのユースケースが拡張され、セキュリティスキャナーからの脆弱性管理が含まれるようになりました。Agentic Chatに脆弱性管理ツールを追加することで、AIを活用した自動化とインテリジェントな分析により面倒なセキュリティワークフローが変革され、セキュリティ専門家が自然言語コマンドで脆弱性を効率的にトリアージ、管理、修正できるようになります。これにより、脆弱性ダッシュボードを手動でクリックする何時間もの作業が不要になり、以前はカスタムスクリプトや面倒な手動作業が必要だった複雑な一括操作が効率化されます。\n\nGitLab Duo Chatに追加された新しい脆弱性管理ツールにより、GitLab Duoをご利用のUltimateユーザーは次のことができます：\n\n* 特定のプロジェクト内のすべての脆弱性をリスト表示\n* CVEデータやEPSSスコアを含む詳細な脆弱性情報を取得\n* 脆弱性の確認と却下\n* 脆弱性の重大度レベルを更新\n* 脆弱性のステータスを`detected`（検出済み）に戻す\n* 脆弱性イシューの作成、または既存のイシューへの脆弱性のリンク\n\nこれらのツールは、セキュリティワークフローを反応的な手動トリアージからインテリジェントな修正へと変革し、エンジニアが真の脅威に集中できるようにし、AIが繰り返しの評価とドキュメント作成を処理します。GitLab Duo Chatを使用した脆弱性管理は、GitLab Duoアドオンをお持ちのUltimateのお客様のみが利用できます。\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/#security)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/19639)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/19639)\n\n![vulnerability_management_tools](https://about.gitlab.com/images/18_5/vulnerability_management_tools.png)\n\n## **CLIエージェントの追加トリガー**\n\n> GitLab.com: Premium、Ultimate、Duo Enterprise\\\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\n追加のイベントでCLIエージェントをトリガーできるようになり、プロジェクト全体でエージェントがアクションを実行する場所とタイミングについて、より柔軟な制御が可能になりました。既存の**メンション**トリガーに加えて、次のトリガーが使用できます：\n\n* **割り当て:** マージリクエストまたはイシューが割り当てられたときにエージェントをトリガー\n* **レビュアーを割り当て:** マージリクエストにレビュアーが追加されたときにエージェントをトリガー\n\n[ドキュメント](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/#create-a-flow-trigger)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/567787)\n\n## **管理エリアのグループリストを強化**\n\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\n**管理**エリアのグループリストをアップグレードし、GitLab管理者により一貫した体験を提供します：\n\n* **遅延削除保護**: グループの削除がGitLab全体で使用されている同じ安全な削除フローに従うようになり、偶発的なデータ損失を防ぎます\n* **高速な操作**: ページのリロードなしでグループのフィルタリング、ソート、ページネーションを実行でき、よりスムーズな操作を実現\n* **一貫したインターフェース**: グループリストがGitLab全体の他のグループリストの外観と動作に一致するようになりました\n\nこの更新により、管理者の体験がGitLabのデザイン標準に沿ったものになり、データを保護する重要な安全機能が追加されます。グループ管理の今後の機能強化は、プラットフォーム全体のすべてのグループリストに自動的に反映されます。\n\n[ドキュメント](https://docs.gitlab.com/administration/admin_area/#administering-groups)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17783)\n\n## **GitLab Duo Self-Hosted用のGitLab Duo Agent Platformがベータ版に**\n\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nGitLab Duo Agent PlatformがGitLab Duo Self-Hostedでベータ版になりました。この機能は、すべてのSelf-Managed GitLab Duo Enterpriseのお客様にご利用いただけます。AWS BedrockまたはAzure OpenAIを使用しているSelf-Managedインスタンス管理者は、GitLab Duo Agent Platformで使用するためにAnthropic ClaudeまたはOpenAI GPTモデルを設定できます。Self-Hosted管理者は、Gitlab Duo Agent Platformで使用する[互換性のあるモデル](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#compatible-models)を設定することもできます。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/configure_duo_features/#configure-access-to-the-gitlab-duo-agent-platform)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/558083)\n\n## **グループの更新されたナビゲーション体験**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nグループ一覧の表示を改良し、GitLab全体でより統一感のある使いやすい操作性を提供します。これらの改善により、グループやプロジェクトの閲覧が簡単になり、必要な情報をひと目で確認できるようになります：\n\n* **より豊富なプロジェクト情報**: プロジェクトにスター、フォーク、イシュー、マージリクエスト、関連する日付が表示され、アクティビティーの完全な概要を一目で確認できます\n* **効率化されたアクション**: アクションメニューで概要から直接グループやプロジェクトを編集または削除できます。アーカイブされたアイテムや削除保留中のアイテムは、非アクティブタブに表示されます\n* **一貫した体験**: グループ概要がGitLab全体の他のグループとプロジェクトリストの外観と動作に一致し、より直感的な体験を実現します\n\nこれらの機能強化により、より多くの情報や操作をすぐに利用できるようになり、効率が向上します。さらに、この更新は、一括編集や高度なフィルタリングオプションなど、今後追加される機能の土台にもなります。\n\n[ドキュメント](https://docs.gitlab.com/user/group/#view-a-group)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13790)\n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。\n\n18.5で提供されたすべてのバグ修正、パフォーマンスの強化、UI改善を確認するには、以下のリンクをクリックしてください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.5)\n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.5)\n* [UIの改善](https://papercuts.gitlab.com/?milestone=18.5)\n\n## 非推奨\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n* [GitLab Duo Self-Hostedにおける初期Mistralモデルの非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#early-mistral-models-deprecated-for-gitlab-duo-self-hosted)\\\n* [高度な検索でのOpenSearch 1.xのサポート](https://docs.gitlab.com/ee/update/deprecations.html#support-for-opensearch-1x-in-advanced-search)\n\n## 削除された機能と破壊的な変更\n\n削除されたすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n* [GitLab Duo Self-Hostedにおける初期Mistralモデルの非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#early-mistral-models-deprecated-for-gitlab-duo-self-hosted)\n* [高度な検索でのOpenSearch 1.xのサポート](https://docs.gitlab.com/ee/update/deprecations.html#support-for-opensearch-1x-in-advanced-search)\n\n### 変更履歴\n\n変更内容をすべて表示するには、次のページから変更履歴を確認してください。\n\n* [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)\n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)\n* [GitLab Workflow for VS Code](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)\n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\n\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/install/)をご覧ください。\n\n### 更新事項\n[更新ページ](https://about.gitlab.com/update/)をご覧ください。\n\n### ご不明な点がある場合\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### GitLabサブスクリプションプラン\n\n* [Free](https://about.gitlab.com/pricing/)\n\n   ユーザー向けの永久無料機能を提供\n\n* [Premium](https://about.gitlab.com/pricing/premium/)\n\n   チームの生産性と調整を強化\n\n* [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n   組織全体のセキュリティ、コンプライアンス、プランニングに対応\n\nGitLabのすべての機能を[無料](https://about.gitlab.com/free-trial/?hosted=saas)でお試しいただけます。\n\n*\\--------------------*\n\n*監修：ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs) （GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n\n### 過去の日本語リリース情報\n\n* [GitLab 18.5](https://about.gitlab.com/ja-jp/blog/gitlab-18-05-release/)\n* [GitLab 18.4](https://about.gitlab.com/ja-jp/blog/gitlab-18-04-release)\n* [GitLab 18.3](https://about.gitlab.com/ja-jp/blog/gitlab-18-03-release)\n* [](\u003C>)[GitLab 18.2](https://about.gitlab.com/ja-jp/blog/gitlab-18-02-release/)\n* [GitLab 18.1](https://about.gitlab.com/ja-jp/blog/gitlab-18-01-release/)\n* [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n* [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n* [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n* [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)\n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)\n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)\n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)\n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)\n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)[](\u003C>)",[908],"2025-10-20","2025-10-16","GitLab 18.5リリース",[1088,841,768,109],"releases","GitLab 18.5でリリースした最新機能を公開します。",{"featured":91,"template":803,"slug":1091},"gitlab-18-05-release",{"content":1093,"config":1101},{"title":1094,"description":1095,"authors":1096,"heroImage":1097,"date":997,"body":1098,"category":768,"tags":1099},"『2025年Gartner® Magic Quadrant™ for DevOps Platforms』でGitLabが3年連続でリーダーの1社として評価されました","この評価は、GitLabが150か月以上にわたり毎月欠かさず新しいソリューションをお客様に提供し、急速なノベーションを継続してきたことが評価されたものと考えています。",[1022],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758812952/yxhgljkwljld0lyizmaz.png","『2025年Gartner® Magic Quadrant™ for DevOps Platforms』で、GitLabが**3年連続でリーダーの1社**として評価されました。この評価は、実行能力とビジョンの完全性に基づくものです。\n\nこの評価は、ソフトウェア開発にとって重要な転換期において、当社の包括的なプラットフォーム戦略が認められた証であると認識させるものと考えています。組織は、セキュリティ、コンプライアンス、運用の卓越性を維持しながら、AI機能の導入を急速に進めています。成功するには、チームの協働と価値提供の方法を変革する統合プラットフォームアプローチが不可欠です。\n\nお客様がアジャイルソフトウェアの提供、クラウドネイティブアプリケーションの構築、エンジニアリングプラットフォームの開発のいずれに取り組んでいても、GitLabはお客様がAIエージェントと連携して、安全で信頼性の高いソフトウェアをより迅速に提供できるよう支援します。\n\n![『2025 Gartner® Magic Quadrant™ for DevOps Platforms』](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758812615/sfchvkvtczmzqlaalk7y.png)\n\n\u003Cp>\u003C/p>\n\n> [詳しくはレポートをダウンロードしてご覧ください](https://about.gitlab.com/gartner-magic-quadrant/)\n\n## より迅速な価値実現\n\n私たちのミッションは、世界を動かすソフトウェアの開発に誰もが貢献し、共創できるようにすることです。[私たちのイノベーション戦略の急速なペース](https://about.gitlab.com/ja-jp/blog/gitlab-18-4-ai-native-development-with-automation-and-insight/)は、まだ道半ばであることを示しています。150か月以上にわたり毎月新しいソリューションをお客様に提供し続けておりますが、この伝統は今後も続きます。\n\n業界をリードする立場として、お客様がこれらの新機能をビジネス価値に変換できるよう、引き続き支援に注力して行きます。\n\nテクノロジーエコシステム全体でAI機能によるイノベーションが加速している現在、[統合プラットフォームアプローチ](https://about.gitlab.com/ja-jp/blog/why-are-organizations-moving-to-a-unified-devsecops-platform/)でお客様の最も困難なエンジニアリング課題に取り組むことが、これまで以上に重要になっていると確信しています。このアプローチにより、組織はインテグレーションの負荷を軽減し、セキュリティギャップを解消し、既存のソフトウェアデリバリーワークフローを中断することなくイノベーションを導入できます。\n\n以下に例をご紹介します：\n\n* **エージェント型AIでリリースを加速：** 分散化されたツールチェーンは、コードレビューやテストを遅らせます。GitLab Duoのエージェントとフローは、プラットフォーム全体のコンテキストでコードレビュー、テスト生成、脆弱性トリアージなどのタスクを自動化し、チームのサイクルタイムを短縮し、品質向上を支援します。\n* **最初からセキュアに構築：** 多くの組織はセキュリティを後回しにし、コストのかかる手戻りやコンプライアンスギャップを招いています。GitLabは、スキャン、ポリシー適用、コンプライアンスチェックを日常のワークフローに組み込み、デベロッパーの作業を遅らせることなく、早期にリスクを発見します。\n* **柔軟なデプロイ：** 厳格な規制や運用上の制約があるチームには、マルチテナントSaaS以外のデプロイオプションが必要です。GitLabは、SaaS、Self-Managed、オフライン環境、[FedRAMP Moderate認定](https://about.gitlab.com/press/releases/2025-05-19-gitlab-announces-gitlab-achieves-fedramp-moderate-authorization/)環境をサポートし、競合他社では実現できない領域でもお客様が管理を維持できるようにします。\n* **一貫したイノベーションの提供：** ツールの分散化により、新機能の導入はリスクが高く、破壊的になります。GitLabの月次リリースでは、[GitLab Duo Agent Platform](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)、拡張されたAIガバナンス、クラウド統合などの新機能を提供し、チームはツールの入れ替えをせずに導入できます。\n\n## 最も重要なお客様のユースケース\n\nGitLabは以下のイノベーション領域をサポートします：\n\n* クラウドネイティブデリバリーとエンタープライズスケールのための[**統合ツールセット**](https://about.gitlab.com/ja-jp/platform/)\n* [**高度な計画ツール**](https://about.gitlab.com/ja-jp/solutions/agile-delivery/)と[**包括的なセキュリティ機能**](https://about.gitlab.com/solutions/application-security-testing/)\n* プログレッシブデリバリーのための[**パッケージ管理**](https://about.gitlab.com/stages-devops-lifecycle/package/)と機能フラグ\n* ライフサイクル全体の可視化と改善のための[**バリューストリームメトリクス**](https://about.gitlab.com/ja-jp/solutions/analytics-and-insights/)\n* 日常業務に直接組み込まれた[**AIネイティブなワークフロー**](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)\n\nこの汎用性は実際の顧客価値につながっています。NatWestのエンジニアリングプラットフォームリードであるBal Kang氏は次のように説明しています：\n\n*「コード、テスト、CI/CD、ソフトウェア開発ライフサイクル全体の記録システムにGitLab DuoのAIエージェントが組み込まれることで、生産性、ベロシティ、効率性が向上しました。AIエージェントは意図を理解し、問題を分解し、アクションを実行します。まさにチームにとっての真の協働者となっています。」*\n\n統合プラットフォームへの転換は、組織がソフトウェア開発にアプローチする方法の根本的な変化を表しています。これが、最近Gartner®が私たちを[『2025年Magic Quadrant™ for AI Code Assistants』でもリーダーの1社として評価](https://about.gitlab.com/ja-jp/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-ai-code-assistants/)した理由だと考えています。\n\n企業がデベロッパーの生産性を安全に最大化し、イノベーションを加速させようとする中、包括的なプラットフォームアプローチの必要性は、かつてないほど緊急になっています。\n\n> [詳しくはレポートをダウンロードしてご覧ください](https://about.gitlab.com/gartner-magic-quadrant/)\n\n*GARTNERは、Gartner, Inc.および/または米国とその他の国におけるその関連会社の商標およびサービスマークであり、MAGIC QUADRANTは、Gartner, Inc.および/またはその関連会社の登録商標であり、本書では許可を得て使用しています。All rights reserved.*\n\n*この図表は、Gartner Inc.がリサーチの一部として公開したものであり、文書全体のコンテクストにおいて評価されるべきものです。オリジナルのGartnerドキュメントは、リクエストによりGitLab からご提供することが可能です。*\n\n*Gartnerは、Gartnerリサーチの発行物に掲載された特定のベンダー、製品またはサービスを推奨するものではありません。また、最高のレーティング又はその他の評価を得たベンダーのみを選択するようにテクノロジーユーザーに助言するものではありません。Gartnerリサーチの発行物は、Gartnerリサーチの見解を表したものであり、事実を表現したものではありません。Gartnerは、明示または黙示を問わず、本リサーチの商品性や特定目的への適合性を含め、一切の責任を負うものではありません。*\n\n*出典: Gartner, Magic Quadrant for DevOps Platforms, Keith Mann, Thomas Murphy, Bill Holz, George Spafford, September 22, 2025*",[768,745,1100],"DevOps platform",{"featured":91,"template":803,"slug":1102},"gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-devops-platforms",{"content":1104,"config":1112},{"heroImage":1105,"body":1106,"authors":1107,"updatedDate":837,"date":1108,"title":1109,"tags":1110,"description":1111,"category":768},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758160154/ckr9nufkx3n2t0rp0iwd.png","本ブログは、[GitLab 18.4 Release](https://about.gitlab.com/releases/2025/09/18/gitlab-18-4-released/)の抄訳です。内容に相違がある場合は、原文が優先されます。\n\n## **GitLab Duo Model Selection（モデル選択）とGitLab Knowledge Graph（ナレッジグラフ）を搭載したGitLab 18.4をリリース**\n\n**9月23日の新機能**: GitLab Duo AI Catalogを導入しました。これは、チームが組織全体でカスタムビルドしたエージェントを作成、共有、協働できる集約ハブです。\n\nこのたび、GitLab 18.4のリリースを発表しました。このリリースでは、GitLab Duo Model Selectionの一般提供、GitLab Knowledge Graph、GitLab Duoでのエンドユーザーモデル選択機能の提供開始、さらにCI/CDジョブトークンによるGitプッシュリクエストの認証機能、Duo AI Catalogなど、さまざまな機能が追加されました。\n\nこれらの機能は、今回のリリースに含まれる19項目の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 18.4には、GitLabコミュニティのユーザーから136件ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。\n\n来月のリリースで予定されている内容を先取りするには、[今後のリリースページ ](https://about.gitlab.com/upcoming-releases/)をご覧ください。\n\n## **Q&A + コード: GitLab 18.4の詳細とコントリビューターコミュニティの発展**\n\n次回のGitLab Developer Showでは、GitLab 18.4の最新機能を詳しく解説し、活発なコントリビューターコミュニティの育成についてお話しします。ご質問やライブコードの実演をご覧いただきながら、GitLabとともに成長する方法を具体的にご紹介します。\n\n👉 [こちらから登録](https://www.linkedin.com/events/7373772262312906753/)\n\n**GitLab 18.4では、GitLab Duo Model SelectionとGitLab Duo Agent Platform（GitLab Duo Self-Hosted）が追加されました**\n\n[クリックしてSNSで共有しましょう！](http://twitter.com/share?text=GitLab+18.4+released+with+GitLab+Duo+Model+Selection+and+GitLab+Knowledge+Graph&url=https://about.gitlab.com/releases/2025/09/18/gitlab-18-4-released/&hashtags=)\n\n![notable-contributor-logo](https://about.gitlab.com/images/notable-contributor-logo.svg)\n\n## 今月の[注目コントリビューター](https://contributors.gitlab.com/docs/notable-contributors)は[Patrick Rice](https://gitlab.com/PatrickRice)さんです\n\nPatrick Riceさんは、コントリビューター、メンテナー、メンターとして、GitLabオープンソースコミュニティへの卓越したコントリビュートを継続されています。過去1年間でトップ5のコントリビューターとなったPatrickさんは、[GitLab Terraform Provider](https://gitlab.com/gitlab-org/terraform-provider-gitlab)および[Client-go](http://client-go)プロジェクトのメンテナンスを担当し、機能追加、リリース管理、イシューのトリアージ、コミュニティのオンボーディングに取り組まれています。コントリビューターからプロジェクトメンテナーへと成長を遂げられ、「誰もがコントリビュートできる」というGitLabのミッションを体現しています。\n\nPatrickさんの活動はコードのコントリビュートにとどまらず、コミュニティ構築とコーチングにまで及び、新しいコントリビューターの参加と成長をサポートしています。以前には、[17.11の注目コントリビューター賞](https://about.gitlab.com/releases/2025/04/17/gitlab-17-11-released/#notable-contributor)を受賞したHeidi Berry氏をノミネート、支援しました。また、[GitLab for Education](https://about.gitlab.com/solutions/education/)チームと知見を共有し、学生にGitLabを学習してもらうことで次世代のデベロッパー育成にもコントリビュートしています。\n\n「Terraform ProviderとClient-goプロジェクトでの協力に、新しいコントリビューターの方々にぜひ参加してもらいたいと思います。私たちのコミュニティには、もっと多くの仲間が必要です。」とPatrickさんは言います。\n\nPatrickさんを今回の賞にノミネートした[Lee Tickett](https://gitlab.com/leetickett-gitlab)（GitLab Staff Fullstack Engineer）はPatricさんついて「PatrickさんはGitLabチームとお客様を継続的に支援し続けています。」と述べています。[Timo Furrer](https://gitlab.com/timofurrer)（GitLab Senior Backend Engineer）もノミネートを支援し、「Terraform ProviderとClient-goへの日々のコントリビュートに加え、GitLab Terraform Providerの可能性を実演することで、IaCジャーニーにおけるGitLabのお客様を直接支援しています」と付け加えました。\n\nPatrickさんはKinglandのエンタープライズアーキテクトで、[GitLab Community Core Team](https://about.gitlab.com/community/core-team/)のメンバーでもあります。今回が2回目の注目コントリビューター賞受賞で、[初回は2023年1月のGitLab 15.8](https://about.gitlab.com/releases/2023/01/22/gitlab-15-8-released/#mvp)でした。\n\n継続的なコントリビュートとGitLabのお客様へのサポート、そしてオープンソースコミュニティの成長へのご尽力に対し、Patrickさんに深く感謝いたします！\n\n## **GitLab 18.4でリリースされた主な改善点**\n\n### **GitLab Duo Model Selection（モデル選択）一般提供開始**\n\n> GitLab.com: Premium、Ultimate、Duo Core、Duo Pro、Duo Enterprise\\\n> Self-Managed: Premium、Ultimate、Duo Core、Duo Pro、Duo Enterprise\\\n> GitLab Dedicated: Ultimate、Duo Core、Duo Pro、Duo Enterprise\n\nGitLab Duo Model Selectionの一般提供を開始しました。開発ワークフローで使用するAIモデルの選択を組織がより細かく管理できるようになります。\n\nGitLab.comのトップレベルグループオーナー、Self-ManagedおよびDedicatedの管理者は、GitLabホスト型AIゲートウェイ経由でアクセスするGitLab Duo機能において、複数のGitLab AIモデルベンダーの中から特定のモデルを選択できるようになりました。\n\nGitLab.com上の複数ネームスペースに参加しているGitLabユーザーは、すべての開発コンテキストでAIモデル設定を統一するため、デフォルトのネームスペースの設定も可能です。GitLab Duo Model Selectionの詳細については、[ブログ記事](https://about.gitlab.com/blog/speed-meets-governance-model-selection-comes-to-gitlab-duo/)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_duo/model_selection/#select-an-llm-for-a-feature)\\\n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/18818)\n\n![model_selection_gtm](https://about.gitlab.com/images/18_4/model_selection_gtm.png)\n\n### **GitLab Knowledge Graph（ナレッジグラフ）**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLab Knowledge Graphは、コードベース全体における豊富なコードインテリジェンス機能を提供します。デベロッパーはより多くのコンテキストを基にプロジェクトを理解、操作できるようになり、変更の計画立案、影響分析、GitLab Duoエージェントと連携した開発タスクの効率化が図れます。\n\nGitLab Duo Agent Platformでは、Knowledge Graphを活用してAIエージェントの精度を向上させます。コードベース全体のファイルと定義をマッピングすることで、Knowledge GraphはDuoエージェントがローカルワークスペース全体の構造を理解するための拡張コンテキストを提供し、複雑な質問に対してより迅速で正確な回答を返します。\n\nこの機能はベータ版です。[イシュー160](https://gitlab.com/gitlab-org/rust/knowledge-graph/-/issues/160)でフィードバックをお寄せください。\n\n[ドキュメント](https://gitlab-org.gitlab.io/rust/knowledge-graph/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17514)\n\n![KnowledgeGraph](https://about.gitlab.com/images/18_4/KnowledgeGraph.png)\n\n### **GitLab Duoでエンドユーザーによるモデル選択が可能に**\n\n> GitLab.com: Premium、Ultimate、Duo Core、Duo Pro、Duo Enterprise\n\nGitLab Duoでエンドユーザーがモデルを選択できる機能が、GitLab.comでパブリックベータ版として提供開始されました。ユーザーはGitLab UIから直接GitLab Duo Agentic Chatで使用したいモデルを選択できるようになり、ニーズに合わせたAIサポートを受けられます。\n\nGitLab.comのネームスペースオーナーが許可している場合、エンドユーザーはGitLab Duo Agentic Chatで利用できるGitLab AIベンダーのモデルから選択できます。ネームスペースオーナーは、これまで通りネームスペース設定で組織全体のモデルを指定することも、エンドユーザーによるモデル選択を許可することもできます。\n\n利用を開始するには、GitLab Duo Agentic Chatでモデルのドロップダウンメニューから、希望するモデルを選択してください。なお、モデルを変更すると新しい会話が開始され、選択した設定は今後のセッションでも保存されます。\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_duo/model_selection/#select-a-model-to-use-in-gitlab-duo-agentic-chat)\\\n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/19251)\n\n![end_user_model_selection](https://about.gitlab.com/images/18_4/end_user_model_selection.png)\n\n### **CI/CDジョブトークンによるGitプッシュリクエストの認証**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nプロジェクトで生成されるCI/CDジョブトークンを使用して、プロジェクトリポジトリへのGitプッシュリクエストの認証が行えるようになりました。UIの「ジョブトークンの権限」設定、またはプロジェクトのREST APIエンドポイントの[`ci_push_repository_for_job_token_allowed`](https://docs.gitlab.com/api/projects/#edit-a-project)パラメータで有効化できます。\n\n[ドキュメント](https://docs.gitlab.com/ci/jobs/ci_job_token/#allow-git-push-requests-to-your-project-repository)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/389060)\n\n![job_token_push](https://about.gitlab.com/images/18_4/job_token_push.png)\n\n### **GitLab Duoのコンテキスト除外機能**\n\n> GitLab.com: Premium、Ultimate、Duo Pro、Duo Enterprise\\\n> Self-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\\\n> GitLab Dedicated: Ultimate、Duo Pro、Duo Enterprise\n\nGitLab Duoのコンテキスト除外機能を使うことで、GitLab Duoが参照するコンテキストから除外したいものを指定できます。パスワードファイルや設定ファイルなどの機密情報を保護したい場合に便利です。特定のファイル、ディレクトリ、ファイル形式、またはこれらを組み合わせた除外設定が可能です。\n\nこの機能は現在ベータ版です。[イシュー566244](https://gitlab.com/gitlab-org/gitlab/-/issues/566244)でGitLab Duoのコンテキスト除外機能についてフィードバックをお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_duo/context/#exclude-context-from-gitlab-duo)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17124)\n\n![duo-context-exclusion](https://about.gitlab.com/images/18_4/duo-context-exclusion.png)\n\n### **GitLab DedicatedのAWSリージョンサポート拡大**\n\n> GitLab Dedicated: Ultimate\n\nGitLab DedicatedがすべてのAWSリージョンでのデプロイに対応し、プライマリ、セカンダリ、バックアップのデプロイ先として、[より多くのリージョン](https://docs.gitlab.com/subscriptions/gitlab_dedicated/data_residency_and_high_availability/#available-aws-regions)から選択できるようになりました。\n\nこの対応拡大は、GitLab Dedicatedの高可用性とディザスターリカバリー基準を満たすio2ディスクがAWSの全リージョンで利用可能になったことで実現しました。\n\n新しく対応したリージョンは、スイッチボードでGitLab Dedicatedインスタンスをプロビジョニングする際に選択できます。\n\n[ドキュメント](https://docs.gitlab.com/subscriptions/gitlab_dedicated/data_residency_and_high_availability/#available-aws-regions)\\\n[イシュー](https://about.gitlab.com/direction/gitlab_dedicated/#theme-global-availability)\n\n![switchboard-expanded-aws-regions](https://about.gitlab.com/images/18_4/switchboard-expanded-aws-regions.png)\n\n### **異なるブランチに対するCI/CDパイプラインシミュレーション**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nこれまで、パイプラインエディターの「検証」タブで変更内容を検証する際、デフォルトブランチでのシミュレーション実行のみに限定されていました。このリリースで機能を拡張し、任意のブランチを指定してパイプラインシミュレーションを実行できるようになりました。この改善により、パイプラインのテストと検証における柔軟性が大幅に向上し、安定ブランチや機能ブランチなど、さまざまなケースでパイプラインが想定通りに動作するかを確認できます。\n\n[ドキュメント](https://docs.gitlab.com/ci/pipeline_editor/#validate-cicd-configuration)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/482676)\n\n![branch_selector](https://about.gitlab.com/images/18_4/branch_selector.png)\n\n## GitLab 18.4リリースに含まれるその他の改善点\n\n### **イシューページの表示方法を設定する**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\n一覧ページの表示を自由にカスタマイズできるようになりました。必要なメタデータを選択し、作業項目をドロワーで開くか、フルページで開くかを選択できるため、重要な情報により集中できます。\n\nこれまでは、すべてのメタデータフィールドが常に表示されており、作業項目を確認する際に情報が多すぎると感じることがありました。今回のアップデートで、担当者、ラベル、日付、マイルストーンなどの各項目の表示・非表示を切り替えて、見やすいようにカスタマイズできるようになりました。\n\n新しい表示切替機能により、一覧のコンテキストを保ったままドロワーで詳細を素早く確認したり、詳細な編集や包括的なナビゲーションが必要な場合はフルページ表示に切り替えたりすることが可能です。\n\n[ドキュメント](https://docs.gitlab.com/user/project/issues/managing_issues/#open-issues-in-a-drawer)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/570776)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/570776)\n\n![configure_how_to_view_issues_from_the_listing_page](https://about.gitlab.com/images/18_4/configure_how_to_view_issues_from_the_listing_page.png)\n\n### **イシューボードでエピック階層の完全表示が可能になりました**\n\n> GitLab.com: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nイシューボードにおいて、親エピックでフィルタリングした際に、子エピック内のすべてのイシューを表示できるようになりました。これにより、イシューページと同様の動作に統一され、子エピックにネストされたイシューを見落とすことなく、エピック階層全体の追跡と可視化が可能になります。プロジェクト管理ワークフローの効率性と信頼性が向上します。\n\n[ドキュメント](https://docs.gitlab.com/user/project/issue_board/#filter-issues)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/358416)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/358416)\n\n![issue_boards_complete_hierarchies](https://about.gitlab.com/images/18_4/issue_boards_complete_hierarchies.png)\n\n### **エンタープライズユーザーのプレースホルダー再割り当て時の確認がスキップ可能に**\n\n> GitLab.com: Premium、Ultimate\n\nグループのオーナーロールを持つユーザーは、そのグループ内のアクティブなエンタープライズユーザーにプレースホルダーを再割り当てする際、ユーザー確認をスキップできるようになりました。これにより、エンタープライズユーザーが再割り当て確認のために頻繁にメールを確認する必要がなくなります。設定された時間制限に達すると、それ以降のすべての新しい再割り当てに対して再びメール確認リクエストが送信されます。\n\nエンタープライズユーザーには再割り当て完了後に通知メールが送られるため、プロセス全体の透明性は維持されます。\n\n[ドキュメント](https://docs.gitlab.com/user/project/import/#bypass-confirmation-when-reassigning-placeholder-users)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17871)\n\n### **CI/CDテンプレートを使用したOpenTofuモジュール・プロバイダーのGitLabコンテナレジストリへの公開**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLabコンテナレジストリが、OpenTofuモジュールとプロバイダーをホストするためのメディアタイプに対応するようになりました。\n\n[OpenTofu CI/CDコンポーネント](https://gitlab.com/components/opentofu)のバージョン[3.1.0](https://gitlab.com/components/opentofu/-/releases/3.1.0)では、OCIフォーマットを使用してOpenTofuプロバイダーをGitLabレジストリにデプロイする新しい`provider-release`テンプレートが追加されました。これにより、プライベートOpenTofuプロバイダーをGitLabで直接ホストできるようになります。\n\nさらに、`module-release`テンプレートには新しい`type`入力が追加されました。`oci`に設定すると、OCIフォーマットを使用してOpenTofuモジュールをGitLabレジストリにデプロイできます。\n\n[ドキュメント](https://gitlab.com/components/opentofu#publish-providers-to-the-gitlab-oci-registry)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/562715)\n\n### **パイプラインのシークレット検出で特定ファイル・ディレクトリをデフォルトで除外**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\\\n\nパイプラインのシークレット検出で、シークレット情報を含む可能性の低い[特定のファイルタイプやディレクトリが](https://docs.gitlab.com/user/application_security/secret_detection/pipeline/#excluded-items)自動的にスキャン対象から除外されるようになりました。これにより、スキャンパフォーマンスが向上します。この機能はアナライザーの[バージョン7.11.0](https://gitlab.com/gitlab-org/security-products/analyzers/secrets/-/releases/v7.11.0)でリリースされます。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/secret_detection/pipeline/#excluded-items)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/560147)\n\n### **高度なSASTスキャンが大幅に高速化**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\nマージリクエストやパイプラインでセキュリティスキャンを実行する際、スキャン時間の短縮は非常に重要です。GitLabは、高度なSASTのエンジンと検出ルールの両方に対し、継続的にパフォーマンスの改善に取り組んでいます。\n\n今回のリリースした改善により、ベンチマークテストと実際の環境でのテストにおいて、スキャン実行時間を最大78%短縮することができました。スキャン処理の中でもパフォーマンスが重要な部分にキャッシュ機能を追加したことで、大規模なリポジトリでのスキャンが大幅に高速化されます。\n\nこの改善は、高度なSASTアナライザーのバージョン2.9.6以降で自動的に有効になります。使用しているアナライザーのバージョンは、[スキャンジョブのログで確認](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#identify-the-gitlab-advanced-sast-analyzer-version)できます。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16561)\n\n### **ジョブアーティファクトダウンロード権限をより細かく制御**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLab 16.11では、`artifacts:access`キーワードが追加され、アーティファクトのダウンロード権限を以下のように設定できるようになりました：。\n\n* パイプラインにアクセスできるすべてのユーザー\n* デベロッパーロール以上のユーザーのみ\n* 誰でもダウンロード不可\n\n今回のリリースでは、新たに「メンテナーロール以上のユーザーのみ」という設定も追加され、ジョブアーティファクトのダウンロードをより細かく制御できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ci/yaml/#artifactsaccess)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/454398)\n\n### **グループ、アプリケーション単位での自動Duoコードレビュー**\n\n> GitLab.com: Premium、Ultimate、Duo Enterprise\n\nグループまたはアプリケーション設定から、複数プロジェクトで自動Duoコードレビューを有効にできるようになりました。従来のように特定プロジェクトを個別に有効化するのではなく、グループ内のすべてのプロジェクトでDuoコードレビューを迅速に有効化できます。\n\nこの機能は現在[GitLab.com](http://gitlab.com)で利用可能です。GitLab Self-Managedでの提供は今後のリリースで予定しています。本機能に関するフィードバックは[イシュー517386](https://www.claudeusercontent.com/?errorReportingMode=parent#)までお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#automatic-reviews-from-gitlab-duo-for-groups-and-applications)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/554070)\n\n### **エピック・イシューリストの親フィルター機能を強化**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nイシューページとエピックページの「エピック」フィルターを、より使いやすい「親」フィルターに変更しました。これまでエピックのみで絞り込みできていたところが、すべての親作業アイテムでのフィルタリングに対応します。親イシューで子タスクを簡単に見つけたり、親エピックでイシューを見つけたりできるようになり、イシューリストとエピックリストの両方で作業階層がより把握しやすくなりました。\n\n[ドキュメント](https://docs.gitlab.com/user/project/issues/issue_work_items/#new-features)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/work_items/556200)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/work_items/556200)\n\n![enhanced_parent_filtering_for_better_work_item_retrieval](https://about.gitlab.com/images/18_4/enhanced_parent_filtering_for_better_work_item_retrieval.png)\n\n### **テキストエディターツールバー機能の統一**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLabプレーンテキストエディタに、リッチテキストエディタと同じフォーマットオプションが追加されました。プレーンテキストエディタツールバーに「その他のオプション」メニューが追加され、以下の高度なフォーマットツールにアクセスできます：\n\n* コードブロック\n* 詳細ブロック\n* 水平線\n* Mermaid図\n* PlantUML図\n* 目次\n\n両エディタでボタン配置とセパレータが統一され、馴染みのあるフォーマットオプションへのアクセスを維持しながら、編集モード間の切り替えが簡単になりました。\n\n[ドキュメント](https://docs.gitlab.com/user/rich_text_editor/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/507377)\n\n### **GitLab Runner 18.4**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nGitLab Runner 18.4も本日リリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、拡張性の高いビルドエージェントです。GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n\nバグ修正：\n\n* [FIPS Runnerが、GitLab Runner 18.2.1でジョブの開始に失敗する](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38963)\n* [OpenShift 4.16.27でOperator v1.37.0アップグレード後、カスタムConfigMapとセキュリティコンテキストの制約（SCC）を使用したRunnerで`chown`コマンドが失敗する](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/246)\n* [GitLab 17.2での早期削除により、GitLab 17.x.xリリースで`FF_RETRIEVE_POD_WARNING_EVENTS`を復元](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38851)\n* [ファイルシステム権限エラーによりすべてのGitLab Runnerジョブが失敗する](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/214)\n* [ビルドジョブが権限拒否エラーで散発的に失敗する](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37464)\n* [GitLab Runner Helmチャートのアップグレードにより変数が破損する](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/30851)\n* [`FF_USE_FASTZIP`を有効にしてもfastzipが有効にならない](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/28989)\n* [ワンタイムリクエストで作成されたSpotインスタンスを停止しようとした際にGitLab Runnerで`UnsupportedOperation`エラーが発生する](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/28865)\n* [Kubernetes環境にデプロイされた環境でGitLab Runnerのロングポーリングが適切に動作しない](https://gitlab.com/gitlab-org/gitlab/-/issues/331460)\n* [管理者がimage:kubernetes:userの値を上書きできるようにする](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38894)\n\nすべての変更の一覧は、GitLab Runnerの[CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-4-stable/CHANGELOG.md)で確認できます。\n\n[ドキュメント](https://docs.gitlab.com/runner)\n\n### **運用コンテナスキャンの重大度しきい値設定**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\n運用コンテナスキャン（OCS: Operational Container Scanning）で、特定の重大度レベル以上の脆弱性のみを返すよう設定できるようになりました。重大度しきい値を設定すると、選択した重大度を下回る脆弱性は、脆弱性レポート、APIペイロード、その他のレポートメカニズムに表示されなくなります。これにより、修正したい脆弱性に集中できます。\n\nこのフィルタリングを有効にするには、OCS設定で[`severity_threshold`を設定](https://docs.gitlab.com/user/clusters/agent/vulnerabilities/#configure-trivy-severity-threshold-filter)します。\n\n[John Walsh](https://gitlab.com/mjohnw)さんによるコミュニティコントリビュートに心より感謝いたします。GitLabへのコントリビュートについて詳しく知りたい方は、[コミュニティコントリビュートプログラム](https://about.gitlab.com/community/contribute/)をご確認ください。\n\n[ドキュメント](https://docs.gitlab.com/user/clusters/agent/vulnerabilities/#configure-trivy-severity-threshold-filter)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/559278)\n\n### **シークレット検出アナライザーのGitフェッチング改善**\n\n> GitLab.com: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\\\n> GitLab Dedicated: Ultimate\n\nシークレット検出アナライザーのバージョン[7.12.0](https://gitlab.com/gitlab-org/security-products/analyzers/secrets/-/releases/v7.12.0)で、Gitコミットフェッチ方法に大幅な改善が追加されました。アナライザーは`SECRET_DETECTION_LOG_OPTIONS`から渡される`--depth`および`--since`オプションを解析し、スキャンするコミット数をより詳細に指定できるようになりました。また、コンテキストに基づいて適切なフェッチ戦略を選択し、浅い深さ設定でも数百万のコミットが不要にフェッチされる既知の問題を防止します。\n\nこの強化により、ジョブタイムアウトの削減、リソース消費の低下、より予測可能なスキャンパフォーマンスが実現されます。大規模リポジトリでのシークレット検出スキャンが高速化され、実際のフェッチ動作に合致するより明確なログが記録されます。\n\n[ドキュメント](https://docs.gitlab.com/user/clusters/agent/vulnerabilities/#configure-trivy-severity-threshold-filter)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17315)\n\n### **脆弱性詳細での自動解決パイプラインID表示**\n\n> GitLab.com: Ultimate\\\n> Self-Managed: Ultimate\\\n> GitLab Dedicated: Ultimate\n\n自動解決後に再検出された脆弱性をトラブルシューティングする際、現在のパイプラインと脆弱性が解決された時のパイプラインを比較すると効果的です。\n\n脆弱性が自動解決された場合、脆弱性詳細ページの脆弱性ノートに、その解決が実行されたパイプラインIDが含まれるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/policies/vulnerability_management_policy/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/566392)\n\n### **GitLab Duo Self-Hostedでのサポートモデル追加**\n\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nGitLab Duo Enterpriseを利用するGitLab Self-Managedのお客様は、GitLab Duoでさらに多くのサポートモデルを利用できるようになりました。Azure OpenAIでOpenAI GPT-5のサポートが開始されました。また、オープンソースのOpenAI GPT OSS 20Bおよび120Bについても、vLLMとAzure OpenAIでサポートされます。これらのモデルをGitLab Duo Self-Hostedでご利用いただいた感想は、[イシュー523918](https://www.claudeusercontent.com/?errorReportingMode=parent#)までお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16742)\n\n### **GitLab Duo Self-HostedでDuoコードレビューの一般提供開始**\n\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nGitLab Duo Self-HostedでのGitLab Duoコードレビューの一般提供が開始されました。データの管理権限を保持しながら開発プロセスを加速させます。コードレビューがマージリクエストをレビューする際、潜在的なバグを特定し、直接適用可能な改善案を提示します。人間によるレビューを依頼する前に、コードレビューを使用して変更を反復し、改善してください。この機能はMistral、Meta Llama、Anthropic Claude、OpenAI GPTの各モデルファミリーをサポートしています。\n\nコードレビューに関するフィードバックは、[イシュー517386](https://www.claudeusercontent.com/?errorReportingMode=parent#)までお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#gitlab-duo-in-merge-requests)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/548975)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/548975)\n\n![Self_Hosted_Code_Review-min1](https://about.gitlab.com/images/18_4/Self_Hosted_Code_Review-min1.png)\n\n## 実験的機能\n\n### **GitLab Duo AI Catalog**\n\nGitLab Duo AI Catalogは、複雑なタスクを実行するAIエージェントを発見・管理できる一元化されたハブです。マージリクエストの作成や技術的な質問への回答などに対応します。\n\nこのカタログでは次のことができます：\n\n* GitLabチームとコミュニティが作成したエージェントを閲覧する\n* プロジェクト用の独自のエージェントを作成する\n* GitLab Duo Chat（エージェント型）を通じてプロジェクト間で共有する\n\nこれは実験的機能であり、`global_ai_catalog`フィーチャーフラグによって制御されています：\n\n* **GitLab.comの場合：** グループでの利用をご希望の場合は、サポートまでお問い合わせください。\n* **GitLab Self-Managedの場合：** 管理パネルで有効にするか、Railsコンソールで`Feature.enable(:global_ai_catalog)`を使用してください。\n\n本機能に関するフィードバックは、[こちらのイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/570717)[](https://www.claudeusercontent.com/?errorReportingMode=parent#)までお寄せください。\n\n### **GitLab Duo Self-HostedでGitLab Duo Agent Platformが利用可能に**\n\nGitLab Duo Self-Hostedをご利用のお客様は、GitLab Duo Agent Platformを実験的機能として利用できるようになりました。GitLab Duo Workflow Serviceが既存のセルフホスト型AIゲートウェイDockerイメージに統合され、AIエージェントとワークフロー自動化をサポートします。管理者は、すべてのエージェントで使用する単一のモデルを設定できます。\nGitLab Duo Agent Platformの機能の詳細については、[ブログ](https://about.gitlab.com/blog/gitlab-duo-agent-platform-public-beta/)をご覧ください。\n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。\n\n18.4で提供されたすべてのバグ修正、パフォーマンスの強化、UI改善を確認するには、以下のリンクをクリックしてください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.4)\n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.4)\n* [UIの改善](https://papercuts.gitlab.com/?milestone=18.4)\n\n## 非推奨事項\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n* [GitLabチャートにおけるBitnami PostgreSQLおよびRedisイメージ](https://docs.gitlab.com/ee/update/deprecations.html#bitnami-postgresql-and-redis-images-in-gitlab-chart)\n\n## 削除された機能と破壊的な変更\n\n削除されたすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n* [GitLabチャートにおけるBitnami PostgreSQLおよびRedisイメージ](https://docs.gitlab.com/ee/update/deprecations.html#bitnami-postgresql-and-redis-images-in-gitlab-chart)[](https://docs.gitlab.com/ee/update/deprecations.html#bitnami-postgresql-and-redis-images-in-gitlab-chart)\n\n### GitLab 18.4へのアップグレードに関する重要なお知らせ\n\nGitLab Helmチャートのデフォルト設定では、PostgreSQLとRedisにのBitnamiのチャートとコンテナイメージを使用しています。Bitnamiは2025年9月29日をもって、[これらのイメージの無料提供を終了](https://github.com/bitnami/charts/issues/35164)することを発表しました。2025年8月28日からイメージを断続的に利用できなくなる期間が開始されています。\n\nGitLabチャートに含まれるBitnamiのPostgreSQLとRedisはでもおよびテスト目的のみでの使用を想定しているため、本番環境への影響はありません。一時的な解決策として、GitLabではチャート設定をBitnamiレガシーリポジトリに移行しました。ただし、パッチが適用されていないGitLabチャート環境（GitLab 17.11以前、GitLab 18.0.5、GitLab 18.1.4、GitLab 18.2.1以前）では、非推奨のBitnamiリポジトリからのイメージ取得を継続するため、9月29日以降にデプロイが失敗する可能性があります。断続的な停止期間中も同様にデプロイが失敗する可能性があります。\n\n影響を受けるGitLabチャート設定を使用する場合は、以下のいずれかの対応を行ってください：\n\n* サポート対象のGitLabリファレンスアーキテクチャへの移行\n* パッチ適用済みチャートバージョンへのアップグレード\n* チャート値でのレガシーリポジトリ設定（例：[マージリクエスト4421](https://gitlab.com/gitlab-org/charts/gitlab/-/merge_requests/4421)）\n\n現在、[代替案と今後の対応](https://gitlab.com/gitlab-org/charts/gitlab/-/issues/6089)について検討中です。\n\n### 変更履歴\n\n変更内容をすべて表示するには、次のページから変更履歴を確認してください。\n\n* [](\u003C>)[GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)\n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)\n* [GitLab Workflow for VS Code](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)\n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\n\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/ja-jp/install/)をご覧ください。\n\n### 更新事項\n\n[更新ページ](https://about.gitlab.com/ja-jp/update/)をご覧ください。\n\n### ご不明な点がある場合\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### GitLabサブスクリプションプラン\n\n* [Free](https://about.gitlab.com/pricing/)\n  ユーザー向けの永久無料機能を提供\n* [Premium](https://about.gitlab.com/pricing/premium/)\n  チームの生産性と調整を強化\n* [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n  組織全体のセキュリティ、コンプライアンス、プランニングに対応\n\nGitLabのすべての機能を[無料](https://about.gitlab.com/free-trial/?hosted=saas)でお試しいただけます。\n\n*監修：ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs)\n（GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n\n### 過去の日本語リリース情報\n\n* [GitLab 18.5](https://about.gitlab.com/ja-jp/blog/gitlab-18-05-release/)\n* [GitLab 18.4](https://about.gitlab.com/ja-jp/blog/gitlab-18-04-release)\n* [GitLab 18.3](https://about.gitlab.com/ja-jp/blog/gitlab-18-03-release)\n* [](\u003C>)[GitLab 18.2](https://about.gitlab.com/ja-jp/blog/gitlab-18-02-release/)\n* [GitLab 18.1](https://about.gitlab.com/ja-jp/blog/gitlab-18-01-release/)\n* [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n* [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n* [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n* [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)\n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)\n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)\n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)\n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)\n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)[](\u003C>)",[908],"2025-09-19","GitLab 18.4リリース",[1088,841,768,109],"GitLab 18.4でリリースした最新機能を公開します。",{"featured":91,"template":803,"slug":1113},"gitlab-18-04-release",{"category":126,"slug":779,"posts":1115},[1116,1129,1140],{"content":1117,"config":1127},{"title":1118,"description":1119,"authors":1120,"heroImage":1122,"date":1123,"body":1124,"category":779,"tags":1125},"ソフトウェアサプライチェーンのセキュリティガイド：組織が直面する課題とは","この新シリーズの第1部では、すべての開発チームが理解すべき、基本的な課題、実践的な解決策、そしてAIを含む新たなトレンドを探ります。",[1121],"Itzik Gan Baruch","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097701/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%285%29_1iy516k40hwBDChKcUJ2zb_1750097700983.png","2025-07-24","大抵の開発チームは、サプライチェーンセキュリティについて尋ねられると、脆弱性スキャンや依存関係の管理を挙げるでしょう。確かにそれらはサプライチェーンセキュリティの構成要素ではありますが、実際の課題のごく一部であり、その視点は非常に限定的で、危険です。\n\n**サプライチェーンセキュリティとは、単に依存関係をスキャンすることではありません。** コードの作成から本番環境へのデプロイまで、以下を含む一連のプロセス全体を対象としています。\n\n* **ソースセキュリティ**：コードリポジトリの保護、コントリビューターのアクセス管理、コードの整合性の確保  \n* **ビルドセキュリティ**：ビルド環境の保護、コンパイルやパッケージ化時の改ざん防止  \n* **アーティファクトセキュリティ**：コンテナやパッケージ、デプロイ用アーティファクトの整合性の確保  \n* **デプロイセキュリティ**：配信手段および実行環境の保護  \n* **ツールセキュリティ**：開発ツールやプラットフォーム自体の強化\n\nサプライチェーンセキュリティにおける「チェーン」とは、この一連の相互に連携したステップを指します。チェーンのどこかに脆弱性があると、ソフトウェアデリバリーのプロセス全体が危険にさらされてしまいます。\n\n[2020年に発生したSolarWinds攻撃](https://www.cisa.gov/news-events/news/joint-statement-federal-bureau-investigation-fbi-cybersecurity-and-infrastructure-security)は、その典型的な例です。これは史上最大級のサプライチェーン攻撃の一つであり、国家の支援を受けた攻撃者がSolarWindsのネットワーク管理ソフト「Orion」のビルドパイプラインを侵害しました。攻撃者は脆弱な依存関係を悪用したり、完成したアプリケーションをハッキングしたのではなく、コンパイルプロセスそのものに悪意あるコードを注入したのです。\n\nその結果は壊滅的でした。通常のソフトウェアアップデートを通じて、米国政府機関を含む18,000以上の組織が、気づかないうちにバックドア付きのソフトウェアをインストールしてしまいました。ソースコードには問題がなく、完成したアプリケーションも正規のものに見えましたが、ビルドプロセスが攻撃手段として利用されていたのです。この攻撃は数か月にわたって検出されず、サプライチェーンの脆弱性が従来のセキュリティ対策をいかに回避できるかを示す事例となりました。\n\n### 組織を脆弱にするよくある誤解\n\nサプライチェーンの脅威に対する認識は高まりつつありますが、多くの組織はいまだに危険にさらされています。というのも、「ソフトウェアサプライチェーンセキュリティとは何か」という根本的な理解に誤りがあるからです。こうした誤解が、重大な見落としを生んでしまいます。\n\n* ソフトウェアサプライチェーンセキュリティは依存関係スキャンだけだと考えている\n* オープンソースコンポーネントにばかり注目し、プロプライエタリコードのリスクを無視している\n* コード署名だけで十分に保護できると思っている\n* 安全なコーディング慣行さえ守っていれば、サプライチェーンのリスクはなくなると考えている\n* サプライチェーンセキュリティを、セキュリティチームだけの問題だと捉え、開発ワークフローの課題として見ていない\n\n![ソフトウェアサプライチェーンセキュリティ依存関係チャート](https://res.cloudinary.com/about-gitlab-com/image/upload/v1753200077/kqndvlxyvncshdiq0xea.png)\n\n## AIが新たな脅威に\n\n多くの組織が従来型のソフトウェアサプライチェーンセキュリティの課題に取り組んでいる中、人工知能（AI）はまったく新しい攻撃ベクトルを生み出し、既存のリスクをこれまでにない形で拡大させています。\n\n### AIによる攻撃：より巧妙に、より大規模に\n\n攻撃者はAIを使って脆弱性の発見を自動化し、デベロッパーを狙った巧妙なソーシャルエンジニアリング攻撃を作成し、公開されているコードベースを体系的に分析して弱点を探しています。かつては手作業でしか行えなかったことが、いまや正確かつ大規模に実行できるようになっています。\n\n### AI開発のサプライチェーンがもたらす新たなリスク\n\nAIは開発ライフサイクル全体を再構築していますが、それと同時に深刻なセキュリティの死角も生み出しています。\n\n* **モデルのサプライチェーン攻撃**：Hugging FaceやGitHubなどから提供される事前学習済みモデルには、バックドアや汚染されたトレーニングデータが含まれている恐れがあります。\n* **安全でないAI生成コード**：AIコードアシスタントを使うデベロッパーが、気づかないうちに脆弱なパターンや危険な依存関係を導入することがあります。\n* **危険にさらされたAIツールチェーン**：AIモデルの学習、デプロイ、管理に使われるインフラが、新たなアタックサーフェス（攻撃対象領域）となります。\n* **自動化された偵察**：AIにより、攻撃者はエコシステム全体をスキャンして、高リスクなサプライチェーンの標的を特定できます。\n* **シャドーAIと非公認ツール**：デベロッパーが、安全性が確認されていない外部AIツールを組み込んでしまうことがあります。\n\nその結果どうなるか？AIは単に新しい脆弱性をもたらすだけでなく、既存のリスクの規模と影響を増幅します。もはや、段階的な改善では追いつけません。脅威の状況は、現在のセキュリティ対策が対応できるスピードを上回る勢いで進化しています。\n\n![AIによる増幅効果](https://res.cloudinary.com/about-gitlab-com/image/upload/v1753200139/xuxezxld6ztlvjocgjlx.png)\n\n## 多くの組織がいまだに苦戦している理由\n\nサプライチェーンセキュリティの重要性を理解している組織でさえ、効果的に対処できていないことがよくあります。統計は、「認識しているのに行動が伴わない」という深刻な傾向を明らかにしています。\n\n2021年に[コロニアル・パイプライン社が業務復旧のためにハッカーに440万ドルを支払った事件](https://www.cnn.com/2021/05/19/politics/colonial-pipeline-ransom/index.html)や、18,000もの組織が被害を受けたSolarWinds攻撃は、サプライチェーンの脆弱性が、重要インフラを停止させ、かつてない規模で機密データを危険にさらす可能性があることを世に知らしめました。\n\nそれにもかかわらず、多くの組織はいまだに従来どおりの運用を続けています。本質的な問いは、「組織がサプライチェーンセキュリティを重要だと考えているか」ではなく、「なぜそう考えていても、実効的な対策につながらないのか」という点です。\n\nその答えは、効果的な行動を妨げている4つの重要な障壁にあります。\n\n**1. 誤った「コスト優先」思考**\n\n組織はしばしば、「最も効果的な方法は何か？」ではなく、「コストがかからないのはどれか？」という観点で考えてしまいます。こうしたコスト第一の考え方は、後に高くつく問題を生み出すことになります。\n\n**2. スキル不足という現実**\n\nBSIMM（Building Security In Maturity Model）の調査によると、[組織にはデベロッパー100人あたり平均でセキュリティ専門家がわずか4人しかおらず](https://codific.com/bsimm-building-security-in-maturity-model-a-complete-guide/)、さらにISC2の調査では、[90%の組織が深刻なサイバーセキュリティ人材の不足を報告](https://www.isc2.org/Insights/2024/09/Employers-Must-Act-Cybersecurity-Workforce-Growth-Stalls-as-Skills-Gaps-Widen)しています。このような状況では、従来のアプローチをスケールさせることは数学的に不可能です。\n\n**3. 組織内のインセンティブの不一致**\n\nデベロッパーのOKR（Objective and Key Results）は機能の開発速度に重点が置かれる一方で、セキュリティチームはまったく異なる成果を指標にしています。経営陣が市場投入のスピードをセキュリティ対策状況よりも重視するような状況では、部門間の摩擦は避けられません。\n\n**4. 複雑すぎるツール環境**\n\n[一般的な企業では平均して45種類ものサイバーセキュリティツールを使っており](https://www.gartner.com/en/newsroom/press-releases/2025-03-03-gartner-identifiesthe-top-cybersecurity-trends-for-2025)、そのうちの[40%は誤検知](https://www.ponemon.org/news-updates/blog/security/new-ponemon-study-on-malware-detection-prevention-released.html)です。また、[インシデント対応には平均して19種類ものツールをまたいで調整を行う](https://newsroom.ibm.com/2020-06-30-IBM-Study-Security-Response-Planning-on-the-Rise-But-Containing-Attacks-Remains-an-Issue)必要があります。\n\nこうした障壁によって悪循環が生まれます。組織は脅威を認識し、セキュリティソリューションに投資はするものの、期待される効果が得られるような実装ができていないのです。\n\n## サプライチェーンの脆弱性がもたらす本当の代償\n\nサプライチェーン攻撃によって生じるリスクとコストは、初期の対処だけでは収まりません。こうした見えにくい追加的な負担を理解することで、予防が「望ましい」どころか、「ビジネスを継続するために不可欠」だということがわかります。\n\n**時間が最大の敵になる**\n\n* サプライチェーンの侵害を特定して封じ込めるまでの平均時間：[277日](https://keepnetlabs.com/blog/171-cyber-security-statistics-2024-s-updated-trends-and-data)\n* 顧客の信頼を回復するまでの期間：[2〜3年以上](https://www.bcg.com/publications/2024/rebuilding-corporate-trust)\n* 製品開発に充てるはずの工数が、セキュリティ対策に振り向けられる\n\n**評判へのダメージは拡大する一方** \n\n攻撃者にサプライチェーンを突破された場合、奪われるのはデータだけではありません。顧客との信頼関係という土台そのものが揺らいでしまいます。実際、侵害後には[顧客の解約率が平均で33%上昇](https://www.metacompliance.com/blog/data-breaches/5-damaging-consequences-of-a-data-breach)し、パートナーとの関係も再認証プロセスなどで多大なコストが発生します。さらに、「より安全だと見なされる」競合に見込み顧客が流れてしまい、競争力の低下にもつながります。\n\n**規制の現実が重くのしかかる** \n\n規制の状況は根本的に変化しています。[GDPR（EU一般データ保護規則）による罰金は、重大なデータ侵害の場合、平均して5,000万ドルを超えています](https://www.skillcast.com/blog/20-biggest-gdpr-fines)。EUの新しい[サイバーレジリエンス法](https://about.gitlab.com/blog/gitlab-supports-banks-in-navigating-regulatory-challenges/#european-cyber-resilience-act-\\(cra\\))では、サプライチェーンの透明性が義務づけられています。アメリカの連邦契約業者は、すべてのソフトウェア購入においてソフトウェア部品表（[SBOM](https://about.gitlab.com/ja-jp/blog/the-ultimate-guide-to-sboms/)）を提供しなければならず、この要件は民間企業の調達にも急速に広がりつつあります。\n\n**業務への混乱がさらに広がる** \n\n直接的なコストだけでなく、サプライチェーン攻撃は、攻撃対応中のプラットフォームのダウンタイム、テクノロジースタック全体にわたる緊急セキュリティ監査、顧客からの訴訟や規制当局の調査による法的コストなど、業務に深刻な混乱をもたらします。\n\n## 現在のアプローチの問題点\n\n多くの組織は、「セキュリティ対策をしていること」と「実際にセキュリティ効果があること」を混同しています。スキャナーを導入し、長大なレポートを作成して、各チームに手作業で対応させています。こうした取り組みはしばしば逆効果で、問題を解決するどころか、かえって新たな問題を生んでしまいます。\n\n### 大量のスキャンvs.実効性のある保護\n\n企業は[毎月1万件以上のセキュリティアラートを生成しており、中には1日15万件ものイベントを記録するケースもあります](https://www.securityweek.com/enterprises-generate-10000-security-events-day-average-report/)。しかし、これらの[63%](https://panther.com/blog/identifying-and-mitigating-false-positive-alerts)は誤検出や優先度の低いノイズにすぎません。結果として、セキュリティチームは処理しきれず、推進役ではなくボトルネックになってしまいます。\n\n### コラボレーションの崩壊\n\n最も安全な組織というのは、ツールをたくさん使っている組織ではなく、DevSecOps間の連携が強い組織です。しかし、現在のほとんどの体制では、この連携が難しくなっています。ワークフローが互換性のないツールで分断されているため、デベロッパーは自分の環境でセキュリティ結果を確認できず、リスクやビジネスへの影響もチーム間で共有できていません。\n\n## 今後に向けて\n\nこうした課題を理解することが、効果的なソフトウェアサプライチェーンセキュリティを構築するための第一歩です。成功している組織は、単にセキュリティツールを追加するのではなく、セキュリティを開発ワークフローにどのように統合するかを根本から見直しています。また、ソフトウエアデリバリーのプロセス全体を振り返り、プロセスの簡素化、ツールの削減、コラボレーションの改善にも取り組んでいます。\n\nGitLabでは、統合型DevSecOpsプラットフォームによって、セキュリティが開発ワークフローに直接組み込まれることで、こうした課題に対応できることを目の当たりにしてきました。このシリーズの次回の記事では、先進的な組織がどのようにして「デベロッパーにとって使いやすいソリューション」や「AIによる自動化」、そして「セキュリティをソフトウェア開発の自然な一部にできるプラットフォーム」を活用し、サプライチェーンセキュリティへの取り組みを根本から変えているのかをご紹介します。\n> GitLabのソフトウェアサプライチェーンのセキュリティ機能について詳しくは、[こちら](https://about.gitlab.com/ja-jp/solutions/supply-chain/)をご覧ください。",[781,770,1126],"Tutorial",{"featured":91,"template":803,"slug":1128},"software-supply-chain-security-guide-why-organizations-struggle",{"content":1130,"config":1138},{"title":1131,"description":1132,"authors":1133,"heroImage":1134,"date":1135,"body":1136,"category":779,"tags":1137},"IDE、そしてWeb IDEとは","Web IDE や IDE の知識を身に付け、統合開発環境ツール使用時や、開発自体に生かしましょう。",[974],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660036/Blog/Hero%20Images/ide.jpg","2025-06-03","Web IDEとは、クラウドベースで機能する、Webブラウザ上でソースのコミットまで行える高度なIDEです。では、IDEとは？ Web IDEやIDEを知らなかった人にもわかりやすいように、その仕組みや概要を、ここで簡単に説明します。\n\n## 目次\n\n* IDE（統合開発環境）とは\n* IDEの主な特徴\n* IDEの仕組み\n* IDEの種類\n* IDEを使うメリット\n* IDEの例\n* Web IDEとは\n* IDEのFAQ（よくある質問）\n\n## IDE（統合開発環境）とは\n\nIDEはIntegrated Development Environmentの略で、日本語では「統合開発環境」と訳されます。IDEは、開発者がソフトウェアのコードを開発する際に必要なソフトウェアをひとつにまとめ、単一の画面で操作できるようにしたものです。\n\nプログラミングには次のようなプログラムが必要になります。\n\n* テキストエディタ：ソースコードを記述  \n* コンパイラー：ソースコードからオブジェクトコードを生成  \n* リンカー：ターゲットとなるCPU用に実行コードを生成  \n* デバッガー：作成したプログラムのバグ検出に使用  \n* コードのバージョン管理：ほとんどのIDEはシームレスにバージョン管理システムを統合  \n* 自動化ビルド：ビルドプロセスを自動化\n\nIDEがなかった時代は、これら一つひとつを手作業で統合しなければなりませんでした。しかし、現在ではすべてがIDEツールに統合されているため、IDEをインストールするか、Web IDEにアクセスすれば、開発環境が瞬時に整います。ほとんどのIDEには、ソースコードを自動的に書いたり、編集したりするための機能が含まれています。そのため、コード開発を効率的に行うことが可能になります。\n\n## IDEの主な特徴\n\nIDEはこれまで、パソコンにインストールして使用するものが主流でしたが、現在はWeb IDEなど、クラウドベースのものが増えてきています。GitLabのWeb IDEも、Webブラウザにアクセスできれば、簡単に開発ができるため、複数の開発者で開発環境を共有することが可能です。\n\n統合開発環境（IDE）の特徴は、次のとおりです。\n\n1. 時間の節約：上述のように、各種プログラムがひとつのプラットフォーム上に統合されているため、ソフトウェア開発にかかる時間が短縮できます。  \n2. チームでの開発の効率化：バージョン管理やソースコードの管理など、引き継ぎにかかる手間が省け、ミスが予防できます。  \n3. ヒューマンエラーの防止：IDEのエディタには入力サポート機能があり、コンパイラにはシンタックスチェック、つまり構文の間違いチェック機能があります。こういった機能はヒューマンエラーを防止してくれます。\n\n## IDEの仕組み\n\nIDEとは、ソフトウェアの開発で使用するさまざまなソフトウェアを支援ツールと合わせてまとめ、統合開発環境として使えるようにしたものです。\n\n## IDEの種類\n\nIDEには、さまざまな種類があります。用途や目的、プログラミング言語、ターゲットとする OS や動作環境によって、選ぶポイントがあります。何を作るのか、どういうソフトウェアやアプリケーションを開発するのかによっても、最適 IDEは変わります。どのIDEを選ぶかによって、できることが異なるからです。しかし、異なるIDEで共通してできることは、次のようなものです。\n\n* ソースファイルの構成管理  \n* ビルドの自動実行  \n* デバッグ\n\nまた、たとえば、プログラミング言語には Java、Swift、C++、C\\#、UnityやPythonなどがあるため、コードを書く言語に対応しているIDEを選ぶべきでしょう。IDEの種類としては：\n\n* 多言語対応IDE  \n* モバイル開発用IDE  \n* WebまたはクラウドベースのIDE  \n* 単言語のIDE\n\nなどがあります。\n\nまた、IDEにはダウンロードして使うものと、クラウドで使用するもの、たとえばWeb IDEなどがあります。クラウドベースのものは、複数の開発者の間で開発環境が共有できるため、各々のチームメンバーの環境設定の違いは問題になりません。また、ビルドの際はCPUの速度低下により時間がかかるものですが、クラウドIDEでは速度低下は発生しません。ソースコード開発は、Gitなどと連携すれば、チーム間での共有も行えます。\n\n## IDEを使うメリット\n\nIDE、統合開発環境を使うメリットは、一言で言うなら「開発の効率化」です。「IDEとは」で記述したように、IDEにはテキストエディタ、コンパイル、デバッグなどの機能がすべて統合されています。そのため、コード開発の効率化が図れます。\n\nIDEを使うと、環境設定を行う手間が省けますが、逆に、IDEを使わないと、各種ツールを設定しなければならず、時間がかかります。また、IDEはインストール後すぐ使えるため、プログラミングの初心者にもお勧めできます。\n\n## IDEの例\n\nIDE、統合開発環境にはたくさんの種類があります。現在よく使われているIDEのうち、例を 5 つ挙げます。\n\n●        Visual Studio/Visual Studio Code – Microsoftが開発。市場でとくに人気がある\n\n●        IntelliJ IDEA – JetBrains が開発した、多言語対応型IDE\n\n●        Vim - Bram Moolenaar氏が開発した軽量のテキストエディタでIDEとして使用可\n\n●        Eclipse – IBMが開発した、オープンソースのIDE\n\n●        Jupyter Notebook – Pythonの実行環境をもつ、ブラウザベースのIDE\n\n## Web IDEとは\n\nWeb IDEとは、前述のように、WebベースのIDEで、WebブラウザさえあればアクセスできるIDEを意味します。個々に IDE を利用するのではなく、利用者はみな、ブラウザを介してIDEにアクセスするため、各種設定のわずらわしさから解放されます。\n\n### [GitLab Web IDE](https://docs.gitlab.com/ee/user/project/web_ide/)を使うメリット\n\nGitLabには、クラウドベースの、オンライン[Web IDE（英語版）](https://about.gitlab.com/blog/get-ready-for-new-gitlab-web-ide/)があります。Web IDEは、コミットのステージング機能を備えた高度なエディタです。Web IDEを使うと、GitLab UIから直接複数のファイルに変更を加えることができます。\n\n* フレキシブルでカスタム化可能なインターフェース  \n* パネルは折りたたみ可能で、テーマもカスタム化可能  \n* コンテキストアクションとドラッグ＆ドロップサポート  \n* 開いているファイル全部を一度に検索・置換  \n* GitLab UIから直接ブラウザで開けるため、クイックなコード修正などに便利\n\n## IDEのFAQ（よくある質問）\n\n### Q: IDE（統合開発環境）を使う理由は何ですか。  \nA: IDEはソフトウェア開発環境の一部を構成しています。よく設計されたIDEを使うと、ソフトウェア開発が大幅に効率化できます。\n\n### Q: IDEの3つの主要コンポーネントは何ですか。\n\nA: コードエディタ、コンパイラ、デバッガーが三大コンポーネントです。\n\n### Q: IDEのインストール、設定方法は？\n\nA: ニーズに合ったIDEを選び、最新バージョンを公式サイトから入手してインストールします。ほとんどのIDEで、各種設定は使用環境に合わせてカスタマイズ可能です。 \n\n## GitLab Web IDEを使ってみる\n\nGitLabのWeb IDE は、SaaSおよびSelf-Managedのサブスクリプションを購入されているお客様には無償でお試しいただけます。詳しくは[こちら](https://about.gitlab.com/direction/create/ide/web_ide/)をご覧ください。\n\n\u003Cbr>\u003Cbr>\n*監修：知念 梨果 [@rikachinen](https://gitlab.com/rikachinen)* \u003Cbr>\n*（GitLab合同会社 カスタマーサクセス本部 カスタマーサクセスエンジニア）*\n",[951,799,768,800],{"slug":1139,"featured":91,"template":803},"what-is-ide",{"content":1141,"config":1150},{"title":1142,"description":1143,"authors":1144,"heroImage":1146,"date":1147,"body":1148,"category":779,"tags":1149},"GitLabのカスタムコンプライアンスフレームワークをDevSecOps環境で活用する方法","新しいフレームワークと、50個を超えるすぐに使えるコントロールを活用することで、これまでひとつずつチェックしていた規制要件を、統合された自動化ワークフローの一部へと変換する方法をご紹介します。",[1145],"Fernando Diaz","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097104/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750097104092.png","2025-04-30","コンプライアンスは、単なるチェック項目ではなく、業務リスクから顧客の信頼に至るまで、あらゆるものに影響を与える重要なビジネス機能です。開発チームにとっては、コンプライアンス要件と開発速度のバランスを取ることは特に困難です。GitLabの[カスタムコンプライアンスフレームワーク](https://about.gitlab.com/blog/introducing-custom-compliance-frameworks-in-gitlab/)を使えば、コンプライアンスの確認を開発ワークフローに直接統合することができます。この記事では、この機能の概要と、その効果を最大限に活用する方法についてご紹介します。\n\n## GitLabのカスタムコンプライアンスフレームワークとは？\n\nGitLabのカスタムコンプライアンスフレームワークを使うと、組織は自社のGitLabインスタンス内で、コンプライアンス基準を定義・実装・適用できます。この機能により、GitLabに元々備わっているコンプライアンス機能を拡張し、特定の規制要件や社内ポリシー、業界標準に合わせたカスタマイズ可能なフレームワークを作成できるようになります。\n\nカスタムコンプライアンスフレームワークには、次のようなメリットがあります。\n* 手動での追跡作業にかかる手間を削減\n* 監査対応の準備を加速\n* コンプライアンス制御をGitLab上でネイティブに適用\n\n![フレームワークが一覧表示されたコンプライアンスセンターのスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097114254.png)\n\n今回のリリースでは、50個を超えるすぐに使える（OOTB）コントロールが提供されており（今後さらに追加予定）、医療分野のHIPAA、データプライバシーに関するGDPR（EU一般データ保護規則）、サービス組織向けのシステムおよび組織管理（SOC）2、その他業界固有の規制など、組織ごとのコンプライアンスのニーズに合わせて調整できます。OOTBコントロールの一例は以下のとおりです。\n\n* 職務分離（SoD、例：最低2名の承認者が必要、作成者によるマージリクエストの承認）\n* セキュリティスキャナの実行（例：SASTの実行、[依存関係スキャン](https://docs.gitlab.com/user/application_security/dependency_scanning/)の実行）\n* 認証/認可（例：プロジェクトの公開設定が非公開、AuthSSOが必須）\n* アプリケーション構成（例：ステータスチェックが必須、Terraformが必須）\n\nさらに、GitLab APIを使用して外部環境のコントロールを構成することもでき、外部環境のステータスや詳細を確認できます。\n\n## ゼロからカスタムコンプライアンスフレームワークを作成する\n\nその価値を理解できたところで、次はGitLab環境でカスタムコンプライアンスフレームワークを実装する方法を見ていきましょう。デモアプリケーションを使って説明しますので、動画を見ながら一緒に進めてください。\n\n**注：** GitLab Ultimateのサブスクリプションが必要です。\n\n\u003C!-- TODO: EMBED_YT_VIDEO -->\n\n\u003C!-- blank line -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/bSwwv5XeMdQ?si=unDwCltF4vTHT4mB\" title=\"Adhering to compliance requirements with built-in compliance controls\n\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n**ステップ1：コンプライアンス要件を定義する**\n\nカスタムフレームワークを構築する前に、まずはコンプライアンス要件を明確に定義する必要があります。\n\n1. **適用される規制を特定する：** 自社に適用される規制や標準（例：GDPR、PCI DSS、HIPAA）を確認します。\n2. **各要件に対応するコントロールを割り当てる：** 各規制を、具体的で実行可能なコントロールとして整理します。\n3. **要件に優先順位を付ける：** リスクの高い領域や、影響の大きい要件を優先します。\n\n**ステップ2：カスタムコンプライアンスフレームワークを作成する**\n\n以下の手順でカスタムコンプライアンスフレームワークを作成できます。\n\n1. GitLabグループの**セキュア  > コンプライアンスセンター**セクションに移動します。\n2. **新しいフレームワーク**ボタンを押します。\n3. **空のフレームワークを作成**を選択します。\n\n![カスタムコンプライアンスフレームワークの作成画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750097114255.png)\n\n4. フレームワークの名前、説明、色を設定します。\n\n![「新しいコンプライアンスフレームワーク」の画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097114257.png)\n\n5. フレームワークに要件を追加します：\n   a. ページを下にスクロールして**要件**タブを開きます。\n\n   b. **新しい要件**ボタンをクリックします。\n\n   c. 名前と説明を入力します。\n   d. **コントロール**セクションで**GitLab コントロールを選択**をクリックします。\n   e. 一覧からコントロールを選択します（例：少なくとも 2 つの承認、SAST の実行など）。\n   f.  **要求事項を作成**ボタンをクリックします。\n\n![「要求事項を作成」ボタン](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752378652/Blog/oufh8frdwiq1os85byin.png)\n\n6. **フレームワークを作成**ボタンをクリックします。\n\n指定した内容でフレームワークが作成され、プロジェクトに追加できるようになります。また、適切なスキーマに準拠したJSONを使用して、コンプライアンスフレームワークを[インポート](http://TODO)することも可能です。\n\n**ステップ3：プロジェクトにフレームワークを適用する**\n\nフレームワークを作成したら、以下の手順に従います。\n1. コンプライアンスセンターから**プロジェクト**タブを選択します。\n2. 検索バーを使って対象のプロジェクトを**検索**または**絞り込み**ます。\n3. フレームワークを適用するプロジェクトを選択します。\n4. **一括操作を選択**ボタンをクリックします。\n5. **選択したプロジェクトにフレームワークを適用する**を選択します。\n6. **フレームワークを選択**ボタンをクリックします。\n7. 一覧から適用するフレームワークを選択します。\n8. **適用**ボタンをクリックします。\n\n![SOC 2フレームワークのドロップダウンが表示されたコンプライアンスセンターの画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097114258.png)\n\n適用されたフレームワークは、プロジェクト内で要求事項として可視化され、追跡できるようになります。\n\n**ステップ4：コンプライアンスの状況をモニタリング・報告する**\n\nフレームワークを設定したら、以下のことができるようになります。\n\n1. コンプライアンスセンターを使って、プロジェクト全体のコンプライアンス状況を管理する。不合格となったコントロールの詳細や、推奨される修正方法も確認できます。\n2. 監査や関係者によるレビューへ向けた、**コンプライアンスレポート**を生成する。\n3. **コンプライアンスに関するアラート**を設定し、潜在的な問題を関係者へ通知する。\n4. **監査イベント**で、コンプライアンス設定に対して行われた操作の概要を確認する。\n\n![SOC2テストフレームワークが表示されたコンプライアンスセンターの画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097114260.png)\n\n## 実例：SOC2 コンプライアンスフレームワークの実装\n\nシステムおよび組織管理（SOC）2、通称SOC2は、米国公認会計士協会（AICPA）によって策定された、厳格な監査基準です。SOC2は、サービス組織のセキュリティ、可用性、処理の完全性、機密性、プライバシーに関するコントロールを評価します。詳細については、[GitLabでSOC 2のセキュリティ要件を満たすためのガイド](https://about.gitlab.com/blog/guide-to-fulfilling-soc-2-security-requirements-with-gitlab/)をご覧ください。\n\nそれでは、カスタムコンプライアンスフレームワークを使って SOC2 のセキュリティコンプライアンスを検証する実践的な例を見てみましょう。SOC2 のセキュリティ基準には以下が求められます。\n\n* 不正アクセスを防ぐためのコントロールの導入\n* リスクを特定し、軽減するための手順の確立\n* セキュリティインシデントの検出および対応のためのシステムの構築\n\n**免責事項：** これはSOC2の要件に準拠するために利用可能な一部のコントロールを紹介する例です。本番環境に導入する前に、必ずセキュリティ/コンプライアンスチームと相談してください。\n\nGitLabのOOTB（すぐに使える）コントロールを活用したSOC2用カスタムコンプライアンスフレームワークの例：\n\n* **名前：** SOC2セキュリティ要件\n* **説明：** SOC2フレームワークに準拠するためのセキュリティ要件を追加します\n* **要件：**\n  * **不正アクセスを防ぐためのコントロールの導入**\n    * Auth SSOを有効化\n    * CI/CDジョブトークンのスコープを有効化\n    * 組織レベルでMFA（多要素認証）を必須化\n  * **リスクを特定し、軽減するための手順の確立**\n    * 少なくとも2つの承認\n    * 作成者によるマージリクエストの承認\n    * コミッターによるマージリクエストの承認\n    * デフォルトブランチの保護\n  * **セキュリティインシデントの検出および対応のためのシステムの構築**\n    * 依存関係スキャンの実行\n    * SASTの実行\n    * DASTの実行\n\nこのフレームワークをプロジェクトに適用することで、コンプライアンスが崩れたタイミングや、再度準拠するために必要な対策を把握できるようになります。なお、1つのプロジェクトに対して複数のコンプライアンスフレームワークを作成・適用することも可能です。たとえば、SOC2のプロセス整合性要件専用のフレームワークを別途設けることもできます。\n\n## コンプライアンス要件を満たすためにセキュリティポリシーを実装する\n\n必須ではありませんが、カスタムコンプライアンスフレームワークを含むプロジェクトにセキュリティポリシーを適用することができます。これにより、特定のコンプライアンス基準がセキュリティポリシーによって強制されることを保証できます。たとえば、セキュリティスキャンを求めるカスタムコンプライアンスフレームワークが適用されたプロジェクトに対して、セキュリティスキャナーの実行を強制できます。\n\nGitLab では、以下のようなさまざまなセキュリティポリシーが提供されています。\n\n* [スキャン実行ポリシー](https://docs.gitlab.com/user/application_security/policies/scan_execution_policies/)：パイプラインの一部または指定されたスケジュールでセキュリティスキャンを実行します。\n* [マージリクエスト承認ポリシー](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/)：スキャン結果に基づいて、プロジェクトレベルの設定や承認ルールを強制します。\n* [パイプライン実行ポリシー](https://docs.gitlab.com/user/application_security/policies/pipeline_execution_policies/)：プロジェクトのパイプラインにおけるCI/CDジョブの実行を強制します。\n* [脆弱性管理ポリシー](https://docs.gitlab.com/user/application_security/policies/vulnerability_management_policy/)：デフォルトブランチで検出されなくなった脆弱性を自動的に解決します。\n\nここでは、SASTスキャナーを実行することで、SASTスキャンを要求する要件への準拠を自動的に行う方法を紹介します。特定のフレームワークが適用されたプロジェクトに対してセキュリティポリシーを作成・適用するには、次の手順に従います。\n\n1. **SAST スキャン**が求められるカスタムコンプライアンスフレームワークが適用されているプロジェクトに移動します。\n2. サイドバーで、**セキュア > ポリシー**の順に選択します。\n3. **新しいポリシー**ボタンをクリックします。\n4. **スキャン実行ポリシー**で、**ポリシーを選択**ボタンをクリックします。\n5. **名前**と**説明**を入力します。\n6. **アクション**で、実行するスキャンとして**SAST**を選択します。\n\n![「アクション」画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097114263.png)\n\n7. **条件**で、すべてのブランチでパイプラインが実行されたときにトリガーされるように設定します。\n\n![「条件」画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750097114264.png)\n\n8. **マージリクエスト経由で設定** ボタンをクリックします。\n9. この時点で、すべてのセキュリティポリシーが含まれた別プロジェクトでマージリクエスト（MR）が作成されます。\n10. **マージ**ボタンをクリックします。\n\nこれで、すべてのブランチでSASTが実行されるようになり、その領域におけるコンプライアンスが保証されます。他にもさまざまな種類のセキュリティポリシーがありますので、要件に合うものを探してみてください。\n\n\n\n## 5つのベストプラクティス\n\nカスタムコンプライアンスフレームワークを最大限に活用するために、以下のベストプラクティスに従いましょう。\n\n1. **小さく始める：** まずは、重要な規制や標準のうち1つから着手し、そこから範囲を広げていきましょう。\n2. **関係者を巻き込む：** フレームワークの作成には、コンプライアンスチーム、セキュリティチーム、デベロッパーチームを含めることが重要です。\n3. **可能な限り自動化する：** GitLab CI/CDを活用して、コンプライアンスチェックの自動化を図りましょう。\n4. **しっかりと文書化する：** フレームワークがどのように規制要件に対応しているか、明確に文書化しておきましょう。\n5. **定期的に見直す：** 規制の変更や新たな要件の発生に応じて、フレームワークを更新するようにしましょう。\n\n## 無料トライアルで今すぐスタート！\n\nGitLabのカスタムコンプライアンスフレームワークは、コンプライアンスを開発ワークフローに直接組み込むことで、DevSecOpsにおける大きな進化をもたらします。カスタムフレームワークを導入することで、コンプライアンス業務の負担を軽減し、リスク管理を強化しながら、規制要件を満たしたまま開発サイクルを加速させることが可能になります。\n\nカスタムコンプライアンスフレームワークを定義・適用できる機能により、チームは自社特有の規制状況に対応する柔軟性を得られる一方で、組織全体のコンプライアンスの慣習を一貫させるために必要な構造も得られます。\n\n今後さらに規制要件が複雑化していく中で、カスタムコンプライアンスフレームワークのようなツールを活用して、コンプライアンスと開発速度のバランスを持続的に両立させることが、ますます重要になるでしょう。\n\n> 今すぐカスタムコンプライアンスフレームワークをお試しになりたい場合は、[GitLab Ultimateの無料トライアル](https://about.gitlab.com/ja-jp/free-trial/?hosted=saas)にぜひお申し込みください。\n\n## 関連リンク\n\n以下のリソースで、カスタムコンプライアンスフレームワークの詳細や、そのメリットについてご覧いただけます。\n\n* [カスタムコンプライアンスフレームワークのドキュメント](https://docs.gitlab.com/user/compliance/compliance_center/compliance_status_report/)\n* [カスタムコンプライアンスフレームワークに関するエピック](https://gitlab.com/groups/gitlab-org/-/epics/13295)\n* [セキュリティポリシーに関するドキュメント](https://docs.gitlab.com/user/application_security/policies/)\n* [GitLabのセキュリティおよびコンプライアンスソリューション](https://about.gitlab.com/ja-jp/solutions/application-security-testing/)",[779,800,798,799,768],{"slug":1151,"featured":91,"template":803},"how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops",{"content":1153,"config":1156},{"heroImage":1081,"body":1082,"authors":1154,"updatedDate":1084,"date":1085,"title":1086,"tags":1155,"description":1089,"category":768},[908],[1088,841,768,109],{"featured":91,"template":803,"slug":1091},[1158,1162,1167],{"content":1159,"config":1161},{"description":971,"title":972,"authors":1160,"heroImage":975,"date":976,"category":733,"body":977},[974],{"featured":6,"template":803,"slug":979},{"content":1163,"config":1166},{"title":1007,"description":1008,"heroImage":1009,"date":1010,"body":1011,"category":745,"tags":1164,"authors":1165},[841,951,269,899,717,279,799,551,925],[908],{"featured":6,"template":803,"slug":1015},{"content":1168,"config":1171},{"title":982,"description":983,"authors":1169,"heroImage":985,"date":986,"body":987,"category":733,"tags":1170},[974],[841,717,799],{"featured":6,"template":803,"slug":990},[1173,1178,1183],{"content":1174,"config":1177},{"heroImage":993,"body":994,"authors":1175,"updatedDate":996,"date":997,"title":998,"tags":1176,"description":1000,"category":733},[974],[951,799,800,813],{"featured":6,"template":803,"slug":1002},{"content":1179,"config":1182},{"heroImage":833,"body":834,"authors":1180,"updatedDate":837,"date":838,"title":839,"tags":1181,"description":842,"category":685},[836],[841,768,799,798],{"featured":91,"template":803,"slug":844},{"content":1184,"config":1194},{"category":733,"body":1185,"date":1186,"authors":1187,"heroImage":1188,"title":1189,"description":1190,"tags":1191},"近年ソフトウェア開発の領域では「プラットフォームエンジニアリング」と呼ばれる開発者の生産性向上に寄与するアプローチが注目されています。\n\n実際にプラットフォームエンジニアリングに興味はあるものの、意味や定義などを詳しく理解していない人も多いのではないでしょうか。\n\nこの記事では、プラットフォームエンジニアリングの意味や特徴、導入メリットなどを解説します。具体的な導入ステップや基盤構築に役立つおすすめのプラットフォームも紹介するのでぜひ参考にして下さい。\n\n## 1. プラットフォームエンジニアリングとは？\n\n![プラットフォームエンジニアリングとは](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508139/eui82g7mlcb2fr5vavir.jpg)\n\nまずはプラットフォームエンジニアリングの意味や特徴について解説します。\n\n### 1-1. プラットフォームエンジニアリングの意味・特徴\n\nプラットフォームエンジニアリングとは、企業内の開発者に対して適切なプラットフォーム（IDP）を整備し、ソフトウェア開発の効率化や生産性向上を実現するアプローチのことです。\n\n近年はIT技術の発展や消費者ニーズの多様化などを背景として将来の予測が難しい時代（VUCA時代）だと言われています。プラットフォームエンジニアリングは、VUCA時代において複雑化するビジネスニーズに対応するための新しいエンジニアリング手法として、ガートナー社が積極的に提案しているアプローチでもあります。\n\n### 1-2. IDP（内部開発者向けプラットフォーム）とは\n\nInternal Developer Platform（内部開発者向けプラットフォーム、以下IDP）とは、企業内の開発者が開発プロセスにおいて必要な機能やリソースを自ら取得して利用できるプラットフォームを指し、プラットフォームエンジニアリングの導入における重要な技術基盤に当たります。\n\nIDPを通してチームで共通して利用できるツールやリソースを開発者に提供することで、迅速なソフトウェアの構築やデプロイを実現できます。\n\nIDPの構築においては、自社の課題や目的に応じてさまざまなツールや技術を組み合わせて行いますが、[GitLab](https://about.gitlab.com/ja-jp/)のように単一のプラットフォームで開発プロセスにおける多くの作業を効率化できるサービスもあります。\n\n## 2. プラットフォームエンジニアリングが注目されている背景\n\n![プラットフォームエンジニアリングが注目されている背景](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508140/hvzgimgumavwq5mmfqlx.jpg)\n\nソフトウェア開発の領域でなぜプラットフォームエンジニアリングが注目されているのでしょうか。具体的な背景としては以下が挙げられます。\n\n* 開発環境の複雑化  \n* ビジネス環境の激化  \n* IT人材の不足\n\n### 2-1. 開発環境の複雑化\n\nプラットフォームエンジニアリングの必要性が高まっている背景の一つとしてまず挙げられるのが、開発環境の複雑化による開発者の認知負荷の増大にあります。\n\nソフトウェア開発における開発手法や技術は年々進化・発展し続けており、クラウドや生成AI、マイクロサービス、APIなどさまざまな技術が広く使われるようになっています。これらの技術活用によって柔軟なソフトウェア開発を実現できますが、その一方で管理すべきツールの種類が増え、かつ多様な技術を身につけなければならないという課題が発生します。\n\nそれにより、開発者は重要な開発作業や取り組み以外に自身のリソースを割く必要があり、それが結果としてチーム全体の生産性低下も招くことになります。\n\nつまり、ソフトウェア開発において効果的に最新技術を取り入れていくためには、開発者が本質的な業務に集中できる環境を構築しなければなりません。\n\n### 2-2. ビジネス環境の激化\n\n先ほども少し触れていますが、近年は[VUCA時代](https://www.nri.com/jp/knowledge/glossary/vuca.html)と呼ばれる将来の予測が難しい不確実な要素が多い時代です。\n\n市場が常に変化する中で社会や消費者にとって必要とされる価値あるソフトウェアを開発して競合と差別化を図るためには、多様な技術を活用したスケーラブルな開発が求められます。\n\nまた、自社の競争力を高めていくためには、アジャイル開発のようなスピード感のある開発手法を積極的に採用していく考えも大切です。\n\n開発者がセルフサービスで利用できるプラットフォームの提供は、柔軟かつ迅速なソフトウェア開発を実現する手段として有効なアプローチだと言えます。\n\n[アジャイル開発とは？意味や進め方、DevSecOpsとの関係性を解説](https://about.gitlab.com/ja-jp/blog/what-is-agile-development/)\n\n### 2-3. IT人材の不足\n\nソフトウェア開発の領域では、慢性的な人手不足が課題となっています。クラウドやAIなど高度な最新技術が次々と登場する一方で、それらを扱える専門知識を持った人材が業界全体で不足しているのです。\n\n実際に「[IT人材需給に関する調査](https://www.meti.go.jp/policy/it_policy/jinzai/houkokusyo.pdf)」を見てみると、2030年には最大で約79万人のIT人材が不足すると予測されています。\n\n![IT人材需給に関する調査](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508140/zv15e7qpd6cppogiogat.png)\n\n※引用元：[IT人材需給に関する調査](https://www.meti.go.jp/policy/it_policy/jinzai/houkokusyo.pdf)\n\nこのような背景の中で適切にソフトウェア開発を進めていくためには、プラットフォームエンジニアリングの導入を通じて開発者の負担削減や生産性向上を実現し、自社のリソースを上手に活用していく姿勢や工夫が求められると言えます。\n\n## 3. プラットフォームエンジニアリングとDevSecOps・SREとの関係性とは\n\n![プラットフォームエンジニアリングとDevSecOps・SREとの関係性とは](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508140/psg7uvfabu13r50vbwzc.jpg)\n\nプラットフォームエンジニアリングを理解する上では、DevSecOpsやSREとの違いについても把握しておくことが大切です。\n\n### 3-1. DevSecOpsとの違い\n\nDevSecOpsとは、開発（Dev）、セキュリティ（Sec）、運用（Ops）の3つの領域を連携させて開発を進めるアプローチを指します。開発と運用を連携してリリースサイクルを短縮させる従来の「DevOps」の考え方に対して、セキュリティ（Sec）のプロセスも加えることでソフトウェアの安全性を確保しつつ、迅速なリリースが可能になります。\n\n一方、プラットフォームエンジニアリングはDevSecOpのようなワークフローを実現する上で土台となるプラットフォームを社内で整備する取り組みです。\n\nつまり、プラットフォームエンジニアリングとDevSecOpsは親和性が高く、プラットフォームエンジニアリングはDevSecOpsをサポートする役割を担っていると言えます。\n\n### 3-2. SREとの違い\n\nSREとは、「Site Reliability Engineering」の略語で直訳すると、「サイト信頼性エンジニアリング」になります。Google社によって提唱された概念であり、運用プロセスにおいて手間のかかるタスクを自動化してシステムの安定稼働を実現しつつ、新機能の追加や更新などを通してユーザー体験（UX）の向上を目指す取り組みを指します。\n\nプラットフォームエンジニアリングとSREは、いずれも開発と運用における効率性・信頼性向上に関わるものですが、それぞれ目的や焦点が異なります。\n\nプラットフォームエンジニアリングは、社内の開発者の生産性向上や利便性向上を目的としたアプローチであり、SREは主にシステムの信頼性と可用性、スケーラビリティの向上に焦点を当てた考え方になります。\n\n## 4. プラットフォームエンジニアリングの導入目的とメリット\n\n![プラットフォームエンジニアリングの導入目的とメリット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508134/m2jqfbt1sfjpjqh3dbih.jpg)\n\nプラットフォームエンジニアリングの導入目的やメリットは以下の通りです。\n\n* 開発プロセスの効率化  \n* 開発者の生産性向上  \n* プロダクトの品質向上  \n* セキュリティ・ガバナンスの維持と強化  \n* 人材不足の解消  \n* 新しいイノベーションの創出  \n* コスト削減\n\n### 4-1. 開発プロセスの効率化\n\nまずプラットフォームエンジニアリングの導入は、開発プロセスの効率化につなげられます。\n\nIDPにより開発者は開発に必要なリソースを必要な時に素早く取得して利用できるため、環境構築に手間と時間をかけることなく本質的な開発業務に集中することが可能です。\n\nアジャイル開発やDevSecOpsの手法を活用する際に、積極的にプラットフォームエンジニアリングの考え方も採用すれば、プロダクトや機能のリリース頻度・スピードが向上し、自社ビジネスの加速化に貢献できるでしょう。\n\n### 4-2. 開発者の生産性向上\n\nプラットフォームエンジニアリングでIDPを整備することで、チームで再利用可能なツールと機能を開発者に提供できるようになります。この仕組みにより、開発者それぞれで多数のツールを管理・運用する手間がなくなり、認知的負荷の軽減につなげられるでしょう。\n\nその結果、戦略立案や分析、新機能開発などより重要な業務にリソースを割けるようになり、生産性の最大化を図れるでしょう。\n\n### 4-3. プロダクトの品質向上\n\n顧客が満足するプロダクトを提供するためには、品質も担保しなければなりません。IDPに対してテストやレビュー、セキュリティスキャン、デプロイなどを自動化する仕組みを整備すれば、ヒューマンエラーの防止につなげられます。\n\nプラットフォームエンジニアリングの導入でテストやレビューなどを標準化することによって、開発者やプロジェクトごとの品質のバラつきを防止でき、自社で定義されたプラットフォームの基準に沿って開発と運用を進められます。\n\nつまり、プラットフォームエンジニアリングの導入は、開発効率や生産性の向上だけでなく、プロダクト品質や信頼性の向上にも寄与します。\n\n### 4-4. セキュリティ・ガバナンスの維持と強化\n\nプラットフォームエンジニアリングで自社に必要なセキュリティやガバナンスを定義し、それらを自社のプラットフォーム上に反映させて運用することも可能です。\n\n権限設定や監査ログ、セキュリティポリシー、脆弱性対応などをプラットフォーム上で集約して一元化することで管理や証跡の収集が容易になり、組織全体におけるセキュリティ・ガバナンスの維持と強化につなげられるでしょう。\n\nまた、標準化されたプラットフォームの整備によって、開発者の心理的な負担を軽減して安全に開発を進められます。\n\n### 4-5. 人材不足の解消\n\nプラットフォームエンジニアリングの導入は、開発プロセスの効率化や開発者の生産性向上に寄与するため、企業のリソースを最大限に活かしながらソフトウェア開発を進められます。\n\nまた、開発者のニーズにマッチしたプラットフォームを提供して働きやすい環境を構築することで、開発者体験（Developer Experience）の向上も実現できます。その結果、自社に対する開発者や求職者からのイメージも良くなり、優秀なエンジニアの獲得と定着を図れるでしょう。\n\n### 4-6. 新しいイノベーションの創出\n\n近年ソフトウェア開発の効率化や価値向上に役立つさまざまな最新技術が登場しています。しかし、複数の技術やツールを開発者個人で活用するには管理の負担が増えてしまい、実際の活用にはハードルが高いと言えます。\n\nプラットフォームエンジニアリングならさまざまな機能やツールが搭載されたプラットフォームをチームで利用できるため、開発者全員が最新技術に触れやすくなります。それをきっかけとして自社で新しいアイデアやイノベーションが生まれたり、より品質の高いプロダクトをリリースできたりする可能性が高まるでしょう。\n\n### 4-7. コスト削減\n\nプラットフォームエンジニアリングを取り入れることで、ツールや環境の共通化によるコスト削減にもつながります。例えば、ソフトウェア開発のプロセスにおいて複数のツールを活用している企業が、[GitLab](https://about.gitlab.com/ja-jp/)のようなさまざまなツールを単一のプラットフォームで利用できるサービスを導入すれば、ライセンス費用や管理コストの削減につなげられるでしょう。\n\nまた、CI/CDやセキュリティチェックなどをプラットフォーム上で自動化することで運用コストの削減も実現できます。\n\nワークフローの自動化や標準化により開発スピードが向上すれば、限られたリソースを効果的に活用できるため、長期的な人件費の最適化にもつながります。\n\n## 5. プラットフォームエンジニアリングの導入ステップ\n\n![プラットフォームエンジニアリングの導入ステップ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508135/cep3gdqsqca4gb0ckt2w.jpg)\n\nここでは実際にプラットフォームエンジニアリングを導入する際の手順について見ていきましょう。\n\n1. 専門チームの組成  \n2. 開発課題の分析と目標設定  \n3. プラットフォームの構築・組織体制の変更  \n4. フィードバック・継続的なメンテナンス\n\n### 5-1. 専門チームの組成\n\nプラットフォームエンジニアリングを導入する際には、まず専門チームの組成から始めます。専門チームを社内に配置すれば、プラットフォームエンジニアリング導入の取り組みを推進できます。専門チームの主な役割としては以下が挙げられます。\n\n* 開発者のニーズ調査  \n* プラットフォームの設計・構築  \n* 社内でのプラットフォーム活用の浸透の実現  \n* プラットフォームの運用・定期的な改善 など\n\n実際のメンバー構成においては、開発者のさまざまなニーズを考慮したプラットフォームを導入するためにも、開発・運用・セキュリティなど多様なスキルセットを持つ人材や、それぞれの分野を専門とする人材を集めることがポイントです。\n\nまた、社内向けではあるものの、自社での活用を浸透させるためにはプラットフォームを一つのサービスとして捉え、ユーザーニーズを満たすという視点が重要になります。\n\n### 5-2. 開発課題の分析と目標設定\n\nプラットフォームエンジニアリングの専門チーム結成後は、現状の開発課題の把握と分析を実施します。課題の把握や分析においては、エンジニアとの個別面談やサーベイなどを通して行います。\n\nその中で、「複数のツールを管理するための負担がかかり過ぎている」「開発環境の構築から実際のリリースまで時間がかかっており、開発効率が悪い」などの課題が挙げられたなら、それらの課題を解決するためにどのようなプラットフォームを導入すれば良いのかを検討し、具体的な目標を設定します。\n\n例えば、開発者のツール管理の負担が主な課題としてあるなら、単一のプラットフォームで複数のツールや技術を活用できるIDPを整備するという方向性を定められるでしょう。\n\n### 5-3. プラットフォームの構築・組織体制の変更\n\nプラットフォームエンジニアリングの導入における目標や方向性が明確になった後は、実際に基盤となるプラットフォームの構築を行います。\n\n開発プロセスの課題解決につながるような機能やツールを搭載し、さまざまな手法で開発を進められるよう整備していきます。\n\nまた、プラットフォームを構築して実際に活用していく際には、これまでの開発プロセスに変化が生じるため、必要に応じて開発者間での認識の擦り合わせや組織体制の変更を行いましょう。\n\n### 5-4. フィードバック・継続的なメンテナンス\n\nプラットフォームエンジニアリングの基盤構築後は、実際にプラットフォームを運用し開発者に活用してもらいます。その中で開発者からフィードバックや要望があれば、機能追加や改善を柔軟に行っていきます。\n\nソフトウェア開発におけるツールや技術は進化し続けており、トレンドも常に移り変わるため、最新情報のキャッチアップや定期的なメンテナンスがプラットフォームエンジニアリングを成功させるための鍵となります。\n\n## 6. プラットフォームエンジニアリングの導入における注意点\n\n![プラットフォームエンジニアリングの導入における注意点](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508135/ew7szhpm1mnheubghlnk.jpg)\n\nプラットフォームエンジニアリングの導入においては以下のような注意点もあります。\n\n* プラットフォーム構築を目的としない  \n* 導入に効果が期待できるか見極める  \n* トップダウンでの導入は避ける  \n* 段階的に導入して小さく始める\n\n### 6-1. プラットフォーム構築を目的としない\n\nまずプラットフォームエンジニアリングの導入において、プラットフォーム構築そのものを目的として進めてしまうと失敗してしまう可能性が高まります。\n\n例えば、「最新技術だから」「高機能だから」というような考えだけで導入してしまうと、開発者ニーズにマッチしないプラットフォームを構築してしまうことになります。そうなると、社内での活用も浸透せず、誰にも使われないという結果を招いてしまうでしょう。\n\nそのため、開発者への調査を徹底して行い、どんな課題を解決したいのかを明確にした上でプラットフォームを構築する必要があります。\n\n### 6-2. 導入に効果が期待できるか見極める\n\nプラットフォームエンジニアリングの導入そのものが、実際に自社にとって効果が期待できるのかも見極めなければなりません。\n\n例えば、エンタープライズや中規模など大きめ組織で、かつ必要な人材が揃っているなら、専門チームの組成もスムーズに進み、実際のプラットフォーム構築によって開発の効率化やコスト削減などの効果が期待できる可能性が高いと言えます。\n\n一方、小規模な組織の場合で、かつ人手が足りない場合プラットフォーム構築や運用そのものに大きな負担がかかってしまい、逆効果になる可能性もあります。\n\nそのため、「プラットフォームエンジニアリングの導入や運用が自社で可能なのか」「実際にどのような効果が期待できるのか」をきちんと検討することが大切です。\n\n### 6-3. トップダウンでの導入は避ける\n\nプラットフォームエンジニアリングは開発者向けのアプローチであり、開発者がプラットフォームを問題なくセルフサービスで利用できるという要素が重要になります。\n\nそのため、トップダウンで現場の課題や開発者のニーズを無視して導入を進めてしまうと、新しいやり方に対して開発者から抵抗や反発を受ける可能性があります。\n\nスムーズな導入を実現するためには、経営層と開発者で双方向コミュニケーションをとり、開発者に選択の余地とアイデアを積極的に発信できる場を与える必要があります。\n\n### 6-4. 段階的に導入して小さく始める\n\n最初から全ての要件を満たした完璧なプラットフォームを構築して、運用しようとすると開発者が変化に対応しきれない可能性があります。また、時間をかけてプラットフォームを構築しているとトレンドに乗り遅れ、完成後には搭載した技術やツールが既に古いものになってしまっていたというケースも考えられます。\n\nそのため、まずは優先度の高い課題にフォーカスして、効果が期待できる機能から実装し段階的に運用するなど、アジャイル的な進め方がプラットフォームエンジニアリングの導入に求められると言えます。\n\n## 7. プラットフォームエンジニアリングの基盤構築に役立つツール・サービスの選び方\n\n![プラットフォームエンジニアリングの基盤構築に役立つツール・サービスの選び方](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508136/bdq3zpkcrz1ez00md2yr.jpg)\n\nプラットフォームエンジニアリングの導入においては、基盤構築に役立つサービスを積極的に活用すると効率的です。ここでは具体的な選び方を解説します。\n\n* 機能  \n* コスト  \n* サポート体制\n\n### 7-1. 機能\n\nプラットフォームエンジニアリングの導入を成功させるためには、開発者のニーズを満たし、かつ自社の課題を解決できる機能が搭載されたサービスを選ぶことが大切です。\n\n例えば、プラットフォームを構成する重要な要素として挙げられる機能は以下の通りです。\n\n* CI/CD（自動ビルド・テスト・デプロイ）  \n* ソースコード管理  \n* ドキュメント  \n* モニタリング  \n* API連携  \n* セキュリティ・ガバナンス など\n\nこのような機能が搭載されているサービスなら、開発者の生産性向上に貢献できるでしょう。\n\n### 7-2. コスト\n\nプラットフォームエンジニアリングの基盤構築となるサービスを選定する際には、コスト面も考慮することが大切です。\n\n組織の規模や導入形態などによってもコストが異なるため、ベンダーに問い合わせするなどして費用対効果が期待できるかしっかりチェックしておきましょう。\n\n無料トライアルを設けているサービスも多いため、まずは使用感を試してみてから導入を検討するのも良いでしょう。\n\n### 7-3. サポート体制\n\nプラットフォームエンジニアリングをスムーズに導入・運用していくためには、ツールやサービスを提供するベンダーのサポート体制をチェックしておく必要もあります。\n\n充実したサポート体制があれば、万が一トラブルや不明点が発生した場合でも、専任スタッフが迅速に対応してくれるでしょう。また、ベンダーがドキュメントやマニュアルなどを通して積極的にノウハウを公開していれば、トラブル時にも自社で解決しやすくなるでしょう。\n\n## 8. プラットフォームエンジニアリングの基盤構築なら「GitLab」\n\n![プラットフォームエンジニアリングの基盤構築なら「GitLab」](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508135/hy8mmygwnbm0ws0ejtik.png)\n\nプラットフォームエンジニアリングの基盤構築をスムーズに実現するなら「[GitLab](https://about.gitlab.com/ja-jp/)」の活用がおすすめです。ここでは、GitLabのサービス概要や強みについて紹介します。\n\n### 8-1. GitLabとは\n\nGitLabは、DevSecOpsワークフローを支援するAIを搭載したプラットフォームです。AIによるソースコード管理やセキュリティ対策、CI/CD、コンプライアンス管理など豊富な機能を単一のプラットフォームで活用でき、プラットフォームエンジニアリングの基盤構築に役立てられます。\n\n中小企業からエンタープライズまで多くの企業で導入されているプラットフォームで、高品質かつ迅速なソフトウェア開発を実現できます。\n\n### 8-2. GitLabが選ばれる理由\n\nGitLabの強みは、DevSecOpsツールチェーンの構築を単一のプラットフォームで実現できることです。これまで複数のツールを管理していた企業がGitLabを導入すれば、コスト削減や開発者の認知負荷の軽減につなげられ、プラットフォームエンジニアリングの運用をスムーズに行えるようになります。\n\nチーム全員で単一のプラットフォームを通して作業することで、メンバー間の連携や情報共有も容易に実施できます。また、サポート体制も充実しているため、導入と運用においても安心して進められるのも強みの一つです。\n\nGitLabを通してプラットフォームエンジニアリングを実現すれば、ソフトウェア開発のライフサイクル全体を効率化でき、競合との差別化につながる機能開発など本質的な作業に集中できるようになるでしょう。\n\n## 9. GitLabによるプラットフォームエンジニアリング実現のアプローチと活用例\n\n![GitLabによるプラットフォームエンジニアリング実現のアプローチと活用例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508136/gn4zixnirbsgrk1anwi8.jpg)\n\n実際にGitLabによるプラットフォームエンジニアリング実現のアプローチと活用例を紹介します。\n\n* 再利用可能なCI/CDコンポーネント  \n* セキュリティとコンプライアンス  \n* データ活用と分析  \n* コミュニケーションの効率化\n\n### 9-1. 再利用可能なCI/CDコンポーネント\n\nCI/CDコンポーネントは、再利用可能な単一のパイプライン構成ユニットのことで、この機能を使用すればCI/CDパイプラインの設定が容易になります。\n\nまた、再利用可能なCI/CDコンポーネントをリスト化して、各コンポーネントの情報を確認できる「[CI/CDカタログ](https://gitlab.com/explore/catalog)」も提供しています。コンポーネントが一元管理されているため、必要なものを必要な時に見つけ出して再利用できる仕様となっています。\n\nこれにより、開発者の作業効率向上や、組織全体でのスムーズなナレッジ共有を実現できるでしょう。\n\nCI/CDコンポーネントの詳細については以下のページをご覧下さい。\n\n[GitLab入門：CI/CDについて理解する](https://about.gitlab.com/ja-jp/blog/getting-started-with-gitlab-understanding-ci-cd/)\n\n### 9-2. セキュリティとコンプライアンス\n\nGitLabでは、ソフトウェア開発ライフサイクルの全てのステージに対応したセキュリティやコンプライアンス機能を搭載しています。\n\n開発を進める中で、セキュリティリスクなどの問題を早期に発見して対応できるため、トラブル発生時の対応コストを抑えたり、事態の深刻化を未然に防止したりすることが可能です。\n\n### 9-3. データ活用と分析\n\nGitLabでは、データ活用と分析による開発の効率性向上も実現できます。プロジェクトの運用状況などソフトウェア開発ライフサイクルにおけるさまざまなデータが一元管理されている仕組みとなっているため、関係者全員がスムーズに必要な情報にアクセスできます。\n\nまた、 プラットフォームに蓄積された主要なメトリクスを追跡して問題点を詳細に分析することで、迅速な改善や顧客価値の向上につなげられます。GitLabでは、DevOpsのパフォーマンスや健全性を示す[DORAメトリクス](https://docs.gitlab.com/user/analytics/dora_metrics/)の可視化・分析機能などを提供しています。\n\n### 9-4. コミュニケーションの効率化\n\nGitLabは統合型プラットフォームであり、全員が同じツールにアクセスして利用できるようになるため、開発者間でのコミュニケーションが効率化されます。\n\n誰もがアクセスしやすい共同ドキュメントの作成も可能であるため、別のツールに切り替えて作業する必要がなく、情報の共有や整理が容易になります。\n\nなお、プラットフォームエンジニアリングにおけるGitLab活用の詳細については以下のページをご覧下さい。\n\n> [プラットフォームエンジニアリングにおけるGitLabの活用](https://about.gitlab.com/ja-jp/solutions/platform-engineering/)\n\n[](https://about.gitlab.com/ja-jp/solutions/platform-engineering/)\n\n## まとめ： プラットフォームエンジニアリングの実現により開発品質の向上と効率化を図ろう\n\nプラットフォームエンジニアリングの導入は、ビジネス環境が激化している時代において重要視されているアプローチです。実際の導入においては、適切な専門チームの組成やツール・サービスの選定が大切なポイントとなってきます。\n\nプラットフォームエンジニアリングの基盤構築なら、ぜひ[GitLab](https://about.gitlab.com/ja-jp/)をご活用下さい。GitLabなら単一のプラットフォームで豊富な機能を利用できるため、開発者の認知負荷を軽減し、迅速かつ品質の高いソフトウェア開発を実現できます。\n\nなお、GitLabでは世界39か国、5,000人を超えるDevSecOps専門家のインサイトが詰まった完全版レポートを無料で公開しているので、ぜひこちらもご覧下さい。\n\n> [2024グローバルDevSecOpsレポートはこちら](https://about.gitlab.com/ja-jp/developer-survey/?utm_medium=blog&utm_source=blog&utm_campaign=eg_apac_brand_x_x_ja_gitlabjapanblogseo_what-is-platform-engineering)\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)*\n\n*（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*","2025-09-22",[974],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508254/duu6d4vclamtnnxjdaat.jpg","プラットフォームエンジニアリングとは？意味や導入メリットをわかりやすく解説","この記事では、プラットフォームエンジニアリングの意味や特徴、導入メリットなどを解説します。",[109,951,1192,717,799,1193,800,813],"DevOps","performance",{"featured":6,"template":803,"slug":1195},"what-is-platform-engineering",1760988361842]