Continuous Integration
-
flaky tests#Testing #Continuous Integration テスト実行において偽陽性として不安定に落ちるテストのこと
-
Terraform#Continuous Integration #Continuous Delivery HashiCorp 製の Infrastructure as Code ツール。API を宣言的な設定ファイルにコード化し、インフラの作成・変更・バージョン管理を安全かつ予測可能に行う provider がクラウド / SaaS の API を抽象化し、低レベル(compute / storage / network)から高レベル(DNS・SaaS 機能)まで同じ記法で扱う 設定は HCL で記述し、現状を state ファイルで追跡。write → plan → apply のワークフローで plan が適用前の差分を提示する 2023-08 にライセンスを MPL 2.0 → BUSL 1.1(source-available の非 OSS)へ変更 https://developer.hashicorp.com/terraform
-
SonarQube#Security #Testing #Continuous Integration #Programming コード品質とセキュリティを継続的に検査するオープンソースの静的解析プラットフォーム 35以上のプログラミング言語に対応し、バグ、脆弱性、セキュリティホットスポット、コードスメルを検出する 主な機能 Quality Gates - デプロイ可否を判断するカスタマイズ可能な品質基準 SAST機能 - 静的コード解析によるセキュリティ脆弱性の検出 AI CodeFix - AIによるコード品質・セキュリティ問題の自動修正提案 IDE統合 - リアルタイムフィードバックと修正提案 DevSecOpsのシフトレフトセキュリティを実現し、適応度関数のコード品質カテゴリに該当する https://www.sonarsource.com/products/sonarqube/
-
Infrastructure as CodeInfrastructure as Code #Continuous Integration #Continuous Delivery インフラストラクチャとしてのプロセスや環境、設定等をコードで管理し文書化する方針 Infrastructure as Code とは - IaC の説明 - AWS
-
クラウドネイティブで実現する マイクロサービス開発・運用 実践ガイド
-
Kubernetesパターン 第2版
-
safe-settings#Continuous Integration リポジトリ設定を policy-as-code で組織横断に宣言・適用する GitHub App(Probot ベース)。admin リポジトリに設定を集中管理し、各 repo の実設定を GitHub API 経由で宣言状態へ収束させる、repo 設定版の Infrastructure as Code。Platform Engineering の guardrails 実装の一つ 設定は admin repo の 3 階層(.github/settings.yml=org / suborgs/*.yml / repos/*.yml)で各 repo にマージ適用、優先度は repo > suborg > org full sync(CRON)で drift を検出・修正、PR では nop モードで dry-run 差分を提示 管理対象は GitHub API で扱う設定のみ(branch protection / labels / collaborators / teams / topics / custom properties / environments / rulesets 等)。ファイル内容は扱えず .github/workflows/*.yml の配布はできない(GitHub Actions の強制は ruleset / required workflows 経由) Organization 専用で個人アカウントでは動かない https://github.com/github/safe-settings
-
DevSecOps#Security #Continuous Integration #Continuous Delivery DevOpsにセキュリティを統合したアプローチ ソフトウェア開発ライフサイクル(SDLC)の全段階にセキュリティを組み込む 主要な原則 シフトレフトセキュリティ 開発初期段階からセキュリティを考慮 自動化 CI/CDパイプラインへのセキュリティテストの統合 SAST / DAST の併用 コラボレーション 開発・セキュリティ・運用チームの協働 https://www.devsecops.org/
-
Hadolint#Continuous Integration Dockerfileの構文チェック、ベストプラクティス検証、セキュリティ脆弱性検出を行うSASTツール Haskellで実装され、ShellCheckを統合することでRUN命令内のbashスクリプトも検証する 主な機能: Dockerfileの構文エラー検出 ベストプラクティス違反の警告(例: Non-root User、マルチステージビルド) セキュリティ脆弱性の検出 CIパイプラインへの統合が容易 Dockerイメージとしても配布されており、ローカル環境へのインストール不要で実行可能 hadolint.yamlで出力形式やルールをカスタマイズ可能 https://hadolint.dev/ https://github.com/hadolint/hadolint
-
Quay.io#Cloud Native #Security #Continuous Integration Red Hatが提供するコンテナイメージレジストリサービス コンテナイメージの保存・配布を行い、SAST脆弱性スキャナーClairによる自動セキュリティスキャンを統合している 3つの提供形態がある Quay.io - Red Hatが運用するホスト型サービス。パブリックリポジトリは無料 Red Hat Quay - オンプレミスまたはプライベートクラウドにデプロイ可能。Operatorとしても提供 Project Quay - Apache 2.0ライセンスのOSS版 Docker Hubの代替として、エンタープライズ向けのアクセス制御やイメージ署名機能を備える https://quay.io/ https://www.projectquay.io/
-
SASTStatic Application Security Testing #Security #Testing ソースコード、バイトコード、バイナリを解析してセキュリティ脆弱性を検出するテスト手法 ホワイトボックステストとも呼ばれ、アプリケーションを実行せずにコードを分析する 特徴 DevSecOpsのシフトレフトを実現 #Continuous Integrationパイプラインに統合可能 SQLインジェクション、XSS、バッファオーバーフロー等を検出 https://owasp.org/www-project-devsecops-guideline/latest/02a-Static-Application-Security-Testing
-
BSRBuf Schema Registory #Continuous Integration #Continuous Delivery Bufが提供するProtocol Buffersツール群のうちの一つ Protobufファイル群をモジュールとしてバージョン管理することができる。 モジュールとしてのドキュメンテーションをサポートし依存関係管理も可能 Overview - Buf Docs
-
テストサイズ
-
zizmor#Security #Continuous Integration GitHub Actionsワークフローの静的解析を行うSASTツール。サプライチェーン攻撃や認証情報窃取につながる workflow 設定の不備を検出する Rust製。.github/workflows/ 配下の YAML を解析し、命名された audit ID 単位で検出 / ignore を行える 主な audit カテゴリ: dangerous-triggers template-injection unpinned-uses excessive-permissions overprovisioned-secrets https://zizmor.sh/ https://github.com/zizmorcore/zizmor
-
hk#Continuous Integration Rust 製 Git hook manager。pre-commit や pre-push などのフック契機で linter / formatter を実行する 並行実行を file lock で安全化し、staged 変更を守りつつ並列度を最大化する性能設計 主要 linter / formatter を組み込み、外部 tool 提供は mise と統合 設定は Pkl で型付き記述する https://github.com/jdx/hk https://hk.jdx.dev/
-
エリック・エヴァンスのドメイン駆動設計
-
Clever/microplane#Continuous Integration Platform Engineering Go 言語で書かれた、多数の Git リポジトリへ一括で変更を加える CLI ツール。マイクロサービス のように小さなリポジトリが多数に分かれた構成で有用と公式は述べている init → clone → plan → push → merge の 5 段階のワークフローで、ターゲットリポジトリの選定からスクリプトベースの一括編集・差分プレビュー・PR 作成・マージまでを順に進める。バックエンドは GitHub と GitLab(self-hosted 含む) https://github.com/Clever/microplane
-
認知負荷個人やチームの認知容量に対する負荷のこと 認知負荷は3つに分類することができる 課題内在性認知負荷 問題領域のタスクの難易度に関する負荷、研修・技術選定・ペアプログラミング等で解消する 課題外在性認知負荷 タスクを実施する環境に関する負荷、#Continuous Integrationによる自動化等で解消する 学習関連負荷 知識の構築に関する負荷、学習によって増やすべき負荷とされる 情報過多にご用心!生産性の低下を招く「認知的過負荷」への対処法 ── 海の向こうからオピニオン その70 (1/2) - チームの教科書|アトラシアン株式会社
-
ストラングラーフィグアプリケーションStranglerFigApplication #Continuous Integration Martin Fowlerによる理論。既存のシステムを置き換える際、既存のシステムの周辺に新規のシステムを追加していき段階的に置き換える。 イチジクの成長段階に似ていることからFigの命名を含んでいる。 原文はこちら
-
GitHub Actions#Continuous Integration #Continuous Delivery
-
サークルオブライフ
-
Atlas#Data Engineering #Continuous Integration #Continuous Delivery #Documentation データベーススキーマの最新の状態をコードとして管理し、変更時の差分を元に自動でマイグレーションクエリを生成してくれるようなDevOpsツール PostgreSQLやMySQLといった代表的なデータベース管理システムに対応している Atlas CloudによってWeb上での可視化も可能 Ariga社によって開発されている https://atlasgo.io/docs
-
create-github-app-token#Continuous Integration GitHub Actions の workflow 内で GitHub App のインストールアクセストークンを発行する公式 Action actions/create-github-app-token。App の ID と private key を渡すと、対象を絞ったトークンを払い出す 特徴 発行されるインストールトークンは 1 時間で失効する短命トークン。post step で自動 revoke され、明示しない限り他 job へは渡らない owner / repositories でアクセス先リポジトリを限定し、権限を細かく絞れる デフォルトの GITHUB_TOKEN(権限が制限的で後続 CI をトリガできない)や PAT の代替として使い、GitHub App の bot 名義で commit / comment できる https://github.com/actions/create-github-app-token
-
lefthook#Continuous Integration Git hooks マネージャ。Go 製単一バイナリで lefthook.yml に hook 定義を書き、lefthook install で .git/hooks/ に展開する。Evil Martians がメンテナンス pre-commit / pre-push / commit-msg 等の hook 種別をサポートし、カスタムタスクグループも作れる ジョブを並列実行でき、glob / regex によるファイル絞り込み、tag でグループ単位の実行制御 ローカル上書き用に lefthook-local.yml を分離可能 https://lefthook.dev/ https://github.com/evilmartians/lefthook
-
Trivy#Security #Cloud Native #Continuous Integration コンテナイメージ、Kubernetes、IaC、リポジトリを対象とした包括的な脆弱性・設定ミス・シークレットスキャナー Aqua Securityによって開発されたオープンソースツール 主な機能: 脆弱性スキャン - コンテナイメージ、ファイルシステム、gitリポジトリ IaC設定ミス検出 - Dockerfile、Kubernetesマニフェスト、Terraformなど シークレット検出 - APIキー、パスワード等の機密情報 SBOM生成 - ソフトウェア部品表の作成と検出 ライセンススキャン DevSecOpsのシフトレフトセキュリティを実現し、CI/#Continuous Deliveryパイプラインに統合可能 SASTツールの一種として静的解析を実行する。--format sarif で SARIF 出力に対応し GitHub Code Scanning に取り込める https://trivy.dev/ https://github.com/aquasecurity/trivy
-
Google Cloud/Artifact Registry#Cloud Native #Continuous Integration Google Cloudが提供するフルマネージドなコンテナイメージおよび言語パッケージのレジストリサービス Docker/OCIイメージに加え、Maven・npm・Python・Go・apt・yum・Helmなど複数の形式に対応する 旧サービスのContainer Registryの後継として位置付けられている Artifact Registry のドキュメント | Google Cloud
-
DevOps capabilities/Trunk-based development#Continuous Integration トランクベース開発。DevOps capabilitiesの1つで、Fast Flowに分類される Working in small batchesをベースに少なくとも1日に一回はトランクブランチにマージをする テストの自動化も重要な要素となる DORA | Capabilities: Trunk-based Development
-
DevOps capabilities/Continuous integration#Continuous Integration DevOps capabilitiesの1つ、Fast Feedbackに分類される CIを実現するには次の要素が必要としている 自動化されたビルドプロセス 自動化されたテストスイート チェックイン毎の自動ビルドとテスト また次の2つも効果に繋がる Trunk-based development Working in small batches メンテナンス容易な自動化テストのためにはTDDを実践すると良い DORA | Capabilities: Continuous integration
-
DevOps capabilities/Working in small batches#Continuous Integration DevOps capabilitiesの1つ、Fast Flowに分類される 価値提供フローの可視化、チームによる実験、顧客フィードバックの可視化と組み合わせることで高いソフトウェアデリバリパフォーマンスに寄与する バッチサイズの最小化にはINVESTの原則を用いると良い DORA | Capabilities: Working in small batches
-
Betterleaks#Security #Continuous Integration Gitleaks の開発元が手がける、シークレット(API キー・トークン・認証情報)を検出するスキャナー。GitHub/GitLab などの Git リポジトリ(Organization 単位も可)、S3、ローカルディレクトリなど複数のソースに対応する DevSecOps のシフトレフトとして CI に組み込み、コードや成果物へのシークレット混入を検出する https://github.com/betterleaks/betterleaks
-
pre-commit#Continuous Integration git commit 実行時に自動で呼ばれる Git クライアントサイド hook。.git/hooks/pre-commit に実行可能スクリプトを置くだけで有効になる コミット作成前に実行され、非ゼロで終了すると commit が中断される 引数は渡されず、ステージ済みの変更を検査する用途が一般的(lint・format・シークレットスキャン等) git commit --no-verify で bypass できる https://git-scm.com/docs/githooks#_pre_commit
-
Renovate/GitHub Action#Continuous Integration Renovate を GitHub Actions 上でセルフホストする公式 Action renovatebot/github-action。ホスト型 Mend Renovate App を使わず、自前リポジトリの workflow から依存更新 PR を回す前提のセットアップ 設定 workflow の on.schedule(cron)で定期実行する(例: 0/15 * * * *) 設定ファイルは configurationFile で指定(JS / JSON)。RENOVATE_ 接頭辞の環境変数はそのままコンテナへ渡る renovate-version で実行する Renovate(Docker イメージ)のバージョンを固定できる https://github.com/renovatebot/github-action
-
Renovate/Mend Self-hosted App#Continuous Integration Renovate を自前インフラで運用する Mend 公式の商用セルフホスト版(Community Edition / Enterprise Edition)。GitHub では自分で GitHub App を登録し、その bot として依存更新 PR を回す GitHub Action が workflow から CLI を都度実行するのに対し、こちらは Docker コンテナで常駐するサーバーとして動くのが違い 特徴 組み込みジョブスケジューラ(デフォルト毎時)が全リポジトリをキューに投入し、cron の構築・監視が不要 webhook リスナー(/webhook)で App 追加・main への設定変更・Renovate PR の close/merge 等に即応し、優先度付きキューで処理する ホスト型のクラウド Mend Renovate App とは別で、GitHub Enterprise Server など自前環境向け https://github.com/mend/renovate-ce-ee
-
"Swarming" をコンセプトに掲げるアジャイルチームのベストプラクティス#Agile #Team Organization #Continuous Integration #Continuous Delivery Swarmingをコンセプトに掲げたアジャイルチームのベストプラクティスについての、XP祭り2024での自身の発表 関連Scrapは以下 自己組織化 ストラングラーフィグアプリケーション トランクベース モノリスからマイクロサービスへ 関数型ドメインモデリング
-
Book/エクストリームプログラミング
-
Renovate#Continuous Integration 依存とロックファイルの更新 Pull Request を自動生成するツール。公式は "Automated dependency updates. Multi-platform and multi-language." を標榜し、90+ のパッケージマネージャに対応する Mend.io が維持する OSS(AGPL-3.0-only)で、GitHub / GitLab / Bitbucket / Azure DevOps / Gitea / Forgejo / AWS CodeCommit / Gerrit など 9 つの Git プラットフォームで動く 特徴 リポジトリ内の依存定義を自動検出し、設定スケジュールに沿って更新 PR を作成(monorepo も検出) 設定は renovate.json / .renovaterc などを配置(最初に見つかった 1 つで停止)。preset で設定を共有・再利用できる Dependency Dashboard — 全更新の状態を 1 つの Issue に集約して可視化 grouping で複数更新を 1 PR にまとめ、automerge で条件を満たした PR を自動マージ 非推奨依存の置き換え(replacement)を提案 npm パッケージ / Docker イメージとしてセルフホストするほか、Mend Renovate App(ホスト型)も使える https://docs.renovatebot.com/ https://github.com/renovatebot/renovate
-
抽象化によるブランチ#Continuous Integration Martin Fowlerが示した、抽象化レイヤーを介して大規模な変更を段階的に行う手法 BranchByAbstraction
-
tj-actions/changed-files#Continuous Integration GitHub Actions の workflow 内で、PR / push で変更されたファイルの一覧を出力する community action tj-actions/changed-files。後続 step は出力を参照し、変更パスに応じて処理を分岐できる https://github.com/tj-actions/changed-files
-
GITHUB_TOKEN#Continuous Integration GitHub Actions が各 workflow run の開始時に自動発行する組み込みトークン。secrets.GITHUB_TOKEN または github.token で参照でき、その run 内で GitHub API / Git 認証に使う 実体は github-actions[bot] という GitHub App のインストールアクセストークンで、job が終わると失効する短命トークン(最長 24 時間) 特徴 権限は workflow の permissions キーで制御し、最小権限の付与が推奨される 権限のスコープは workflow が置かれたリポジトリに限定される GITHUB_TOKEN で起こしたイベントは新たな workflow run をトリガしない(再帰実行の防止)。このため bot 起点で後続 CI を回すには GitHub App トークンや PAT が必要になる https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication
-
Buf CLI#Continuous Integration Bufが提供するProtocol Buffersツール群のうちのCLIツール protoc に代わる高速なコンパイルやスタブ生成が可能。その他CIに組み込むようなlinterや破壊的変更検出の機能を有している https://buf.build/docs/cli/
-
DevOps2009年に10+ Deploys Per Day: Dev and Ops Cooperation at Flickrにて初めて登場した言葉 開発とオペレーションを一つのチーム内で両立させる 広義な用語ではあるが、共通して以下のような手法が定義されることが多い #Continuous Integration #Continuous Delivery Infrastructure as Code マイクロサービス