#author("2023-07-03T21:39:22+09:00","default:irrp","irrp") →SRE/DevOps →アジャイル →テスト・品質管理 →IaC(Infrastructure as Code) →AWSの開発支援系サービス ←AWS Codeシリーズについてはこちらへ →システム運用 #contents *概要 [#ue753071] -CI=継続的インテグレーションとは、プログラマがソースコードを変更したら頻繁にリポジトリに登録し、自動でビルドとテストを行うこと。 --テストコードはあらかじめ作成しておく。 --Jenkins や CircleCI などのCIツールを使って自動化する。 -CD=継続的デリバリーとは、テストをパスしたソフトウェアを自動で実稼働環境にリリースできる状態にすること --※継続的デプロイとは、そこからさらにデプロイまでやること -CI/CDパイプラインとは、CI/CDを実践するために必要な一連のステップを自動化したもの --(CI):コーディング→ビルド→インテグレート→テスト→(CD):リリース→デプロイ→オペレート -[[CI/CDを超ざっくり解説!【何となく理解するIT】 - YouTube>https://www.youtube.com/watch?v=TrpmtrXIe-w]] 2020 *一般記事 [#z6046fcf] -[[CI/CDがどのように導入されていったのか? - コドモン Product Team Blog>https://tech.codmon.com/entry/2023/05/02/085733]] 2023.4 -[[ウォーターフォールを殺しにきている書籍「継続的デリバリーのソフトウェア工学」を読んだ - 勘と経験と読経>https://agnozingdays.hatenablog.com/entry/2023/04/02/183859]] 2023.4 --[[【書籍】継続的デリバリーのソフトウェア工学 もっと早く、もっと良いソフトウェアを作るための秘訣>https://amzn.to/3nM5XFe]] -[[AWS コンテナ Lambda の CI/CD 環境をサクっとつくる (最小構成) – TechHarmony>https://blog.usize-tech.com/aws-container-lambda-cicd/]] 2023.3 -[[[Developers Summit 2023] ソフトウェアテスト新時代の幕開け: 機械学習とデータサイエンスで実現するテスト運用の高度化 - Speaker Deck>https://speakerdeck.com/takanabe/developers-summit-2023-evolution-of-software-testing-by-machine-learning]] 2023.2 -[[AWS sam pipelineを使うとLambdaをデプロイするCI/CDパイプラインをどうやって作ればいいか分かりそうになる - Qiita>https://qiita.com/PG-practice/items/efa5b5ff093e0df66ab8]] 2023.2 -[[ML Pipeline CI/CD - GMOインターネットグループ グループ研究開発本部(次世代システム研究室)>https://recruit.gmo.jp/engineer/jisedai/blog/ml-pipeline-ci-cd/]] 2023.1 --GCPで機械学習パイプラインの本格運用 -[[Retty の Terraform CI/CD 解体新書 - Retty Tech Blog>https://engineer.retty.me/entry/2022/11/18/130000]] 2022.11 -[[Stages of a CI/CD Pipeline - DEV Community>https://dev.to/pavanbelagatti/stages-of-a-cicd-pipeline-2bmp]] 2022.8 -[[読書メーターのデプロイの流れについて - BOOK☆WALKER Tech Blog>https://developers.bookwalker.jp/entry/2022/07/01/161429]] 2022.6 Pull Requestをmasterブランチにmerge GitHub Actionsで「リリース準備」アクションを実行するとGitHubのレポジトリにtag pushされる tag pushにhookし、CircleCIがイメージを作成してAmazonECRにpushする CircleCIがescpressoを利用して開発環境のECS(Fargate)にデプロイする CircleCIがSlackで開発環境にデプロイされたことを通知する 開発環境で動作確認し、問題なければCircleCI上で本番環境へのデプロイ承認ボタン*1を押す CircleCIがescpressoを利用して本番環境のECS(Fargate)にデプロイする CircleCIがSlackで本番環境にデプロイされたことを通知する -[[ネイティブアプリに対応した CI サービスの料金を比較しました|たかやま>https://blog.zaim.co.jp/n/n63422787985f]] 2022.4 --Bitrise, Codemagic, CircleCI, GitHub Actions -[[デプロイ今昔 - Hatena Developer Blog>https://developer.hatenastaff.com/entry/2020/06/26/150300]] 2020.6 -[[猿でもわかる CI/CD - YouTube>https://www.youtube.com/watch?v=T-lk2cPGI7s]] 2020.5 -[[Azure環境向けCI/CDパイプラインを自動作成できるDevOps Starterが便利すぎた>https://docs.microsoft.com/ja-jp/azure/devops-project/overview]] 2021.10 -[[Infrastructure as Code(IaC)とは?インフラをコードとして管理でき、コスト削減などのメリットも!>https://udemy.benesse.co.jp/development/system/iac.html]] 2021.4 -[[CI/CDのエキスパートが解説:CI/CDとは何か? なぜ今、必要とされるのか?>https://codezine.jp/article/detail/11083]] 2018.9 -[[継続的デリバリ vs 継続的デプロイ>http://www.ryuzee.com/contents/blog/4422]] -[[Cybozu新人研修資料 CI/CD>https://blog.cybozu.io/entry/2021/07/20/100000#CICD]] 2021.7 -[[AWS (ECS + RDS)+ CircleciによるCI/CDの理解(初学者がインプットすべき情報)~用語と概念理解編~>https://qiita.com/sukezane/items/0325b8057492459c702c]] 2019.8 -[[AWS Lambda CI/CD俺的ベストプラクティス>https://sue445.hatenablog.com/entry/2019/08/11/103713]] 2019.8 -[[Continuous Integration@Martin Fowler:http://martinfowler.com/articles/continuousIntegration.html]] *GitHub Actions [#e434e081] →GitHub関連 -[[GitHubカスタムアクションの作り方(JavaScript編) - Alternative Architecture DOJO>https://aadojo.alterbooth.com/entry/2023/05/23/180453]] 2023.5 -[[GitHub Actions でテストを並列化して CI 時間を短縮する - Gunosy Tech Blog>https://tech.gunosy.io/entry/actions_parallel]] 2023.4 -[[GitHub Actionsと仲良くなったよ | IIJ Engineers Blog>https://eng-blog.iij.ad.jp/archives/18963]] 2023.4 -[[GitHub Actionsと"仲良くなる"ための練習方法 - Speaker Deck>https://speakerdeck.com/tsubakimoto_s/github-actionsto-zhong-liang-kunaru-tamenolian-xi-fang-fa]] 2023.3 -[[GitHub Actions上でテストを約3倍早くした話 - KAKEHASHI Tech Blog>https://kakehashi-dev.hatenablog.com/entry/2023/03/14/103000]] 2023.3 -[[コスト安なCI環境を目指してオートスケールするCI環境を構築する - ISID テックブログ>https://tech.isid.co.jp/entry/2023/03/06/%E3%82%B3%E3%82%B9%E3%83%88%E5%AE%89%E3%81%AACI%E7%92%B0%E5%A2%83%E3%82%92%E7%9B%AE%E6%8C%87%E3%81%97%E3%81%A6%E3%82%AA%E3%83%BC%E3%83%88%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8BCI%E7%92%B0]] 2023.3 -[[GitHub Actionsで「matrixの全テストが通らないとマージできないようにする」設定を簡単に行う方法 - 私が歌川です>https://blog.utgw.net/entry/2020/08/24/135749]] 2023.2 -[[Microsoft Defender for DevOps の始め方2 - GitHub Actions 上でのコンテナーイメージの脆弱性スキャン - Qiita>https://qiita.com/YoshiakiOi/items/857d1fc4e7a557bad2ef]] 2023.2 -[[GitHub Actions+AWS SAM で CI/CD を構築してみた|SHIFT Group 技術ブログ|note>https://note.com/shift_tech/n/n1bf843ca0a78]] 2023.1 -[[GitHub ActionsでAWS ECSを使ったCI/CD環境を構築してみる - APC 技術ブログ>https://techblog.ap-com.co.jp/entry/2022/12/09/161347]] 2022.12 -[[【Unity】GitHub Actions × Game CIでWebGLのCI/CD環境構築(デプロイ先はNetlify) - Qiita>https://qiita.com/OKsaiyowa/items/ac86f1a220652309890e]] 2022.10 -[[Push時はCIのみ、Merge時はCIおよびCDを実行するGitHub Actionsを作る(Workflowの再使用) | DevelopersIO>https://dev.classmethod.jp/articles/create-a-workflow-with-github-actions-that-executes-ci-only-at-the-time-of-push-and-ci-and-cd-when-merging/]] 2022.8 -[[GitHub Actionsって何?触ってみて理解しよう!入門・逆引きリファレンス - Qiita>https://qiita.com/yu-ichiro/items/b50ceb0008edc3c0312e]] 2022.7 -[[Gtihub Actionsでオンプレミス環境のCI/CDを実行する方法 - ISID テックブログ>https://tech.isid.co.jp/entry/2022/07/04/Gtihub_Actions%E3%81%A7%E3%82%AA%E3%83%B3%E3%83%97%E3%83%AC%E3%83%9F%E3%82%B9%E7%92%B0%E5%A2%83%E3%81%AECI/CD%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95]] 2022.7 -[[github actionsのjobを高速にするために取った対策 - Qiita>https://qiita.com/itouoti/items/37e0420b232a1c694288]] 2022.6 --ブランチとの修正差分に影響ある部分だけテストを実行する、というのだけど、影響範囲の見極めは大丈夫なのか? -[[GitHub ActionsでEC2インスタンスの自動停止をするようにした - Qiita>https://qiita.com/ohakutsu/items/71822981ba8e14cfdd8b]] 2022.6 -[[GitHub Actions 逆引きリファレンス | gkzz.dev>https://gkzz.dev/posts/github-actions-tips/]] 2022.5 -[[GitHub ActionsとCypressを使って、テスト自動化環境をゼロから構築する - Qiita>https://qiita.com/EIKINAKAYAMA/items/e0b9550152c19e229263]] 2022.5 -[[GitHub Actions入門 ── ワークフローの基本的な構造からOICDによる外部サービス認証まで - エンジニアHub|Webエンジニアのキャリアを考える!>https://eh-career.com/engineerhub/entry/2022/05/20/093000]] 2022.5 -[[Push時はCIのみ、Merge時はCIおよびCDを実行するGitHub Actionsを作る(Workflowの再使用) | DevelopersIO>https://dev.classmethod.jp/articles/create-a-workflow-with-github-actions-that-executes-ci-only-at-the-time-of-push-and-ci-and-cd-when-merging/]] 2022.4 -[[GitHub Actionsでsetup-node actionを使って依存関係をキャッシュする | DevelopersIO>https://dev.classmethod.jp/articles/caching-dependencies-in-workflow-execution-on-github-actions/]] 2022.4 -[[GitHub Actions が OpenID Connect をサポートし、デプロイがよりセキュアに出来るようになりました! - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/github-actions-oidc]] 2021.11 -[[GitHubがCI/CDサービスを標準サポートへ>https://jp.techcrunch.com/2019/08/09/2019-08-08-github-actions-is-now-a-ci-cd-service/]] 2019.8 -[[Github Actionsが使えるようになったので使ってみる>https://qiita.com/1915keke/items/8b18097d2981e88eca93]] 2019.8 -[[GitHubの新機能「GitHub Actions」でワークフローを自動化しよう>https://codezine.jp/article/detail/11450]] 2019.4 *GitLab [#w8f342a0] -[[GitLabの基本機能についてまとめてみた〜今からGitLabを始めたい方向け〜 | DevelopersIO>https://dev.classmethod.jp/articles/gitlab-function-202304/]] 2023.4 -[[GitLabに入門してみた〜アカウント作成〜 | DevelopersIO>https://dev.classmethod.jp/articles/gitlab%e3%81%ab%e5%85%a5%e9%96%80%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f%ef%bd%9e%e3%82%a2%e3%82%ab%e3%82%a6%e3%83%b3%e3%83%88%e4%bd%9c%e6%88%90%ef%bd%9e/]] 2023.3 -[[GitLab CI/CD のビルド環境から外部のリポジトリを取得する - Linkode.TechBlog>https://blog.linkode.co.jp/entry/2023/03/31/120000]] 2023.3 -[[GitLab で AWS Lambda を自動デプロイしてみる - RAKUS Developers Blog | ラクス エンジニアブログ>https://tech-blog.rakus.co.jp/entry/20230105/gitlabci]] 2023.1 -[[CI/CDのスクリプトを開発/テスト/不具合対応しやすくする方法を考えてみる - Qiita>https://qiita.com/dtsu/items/9d5924caae8eb3487c68]] 2022.12 -[[GitLabCI/CD入門 ~とりあえず動かす - Qiita>https://qiita.com/Jazuma/items/fcf87e5b222314a951fd]] 2022.10 -[[GitLabCI/CDについて - Qiita>https://qiita.com/komekome111/items/98f7e5811080f9041bdd]] 2022.6 -[[OpenID Connect を利用して GitLab CI/CD をセキュアに実施する - aptpod Tech Blog>https://tech.aptpod.co.jp/entry/2022/07/15/110000]] 2022/7 -[[GitLabのCI/CDで超重要なrulesの全てを理解する | DevelopersIO>https://dev.classmethod.jp/articles/sample-to-understand-rules/]] 2021.12 -[[GitLabの運用方法を入門者向けに解説!GitHubとの違いも比較。ダウンロード、日本語化する方法も紹介!| ITフリーランスエンジニア案件ならA-STAR(エースター)>https://agency-star.co.jp/column/gitlab]] 2020 -[[GitLab自社運用のための注意点とノウハウ(2018/06版)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社>https://techracho.bpsinc.jp/morimorihoge/2018_06_04/57628]] 2018 -[[オープンソースのプロジェクト管理/GitLabとは>https://www.ossnews.jp/oss_info/GitLab/1]] 2021.9 -[[GitLab って何?>https://qiita.com/masakura/items/29f8949379fa86dac22c]] 2016 *CircleCI [#zc3a0c7b] -[[Visual Studio CodeでCircleCIの拡張機能が公開されてたので触ってみた - とことんDevOps | 日本仮想化技術が提供するDevOps技術情報メディア>https://devops-blog.virtualtech.jp/entry/20230221/1676947431]] 2023.2 -[[#Unity と #CircleCI を組み合わせてゲーム開発にCI/CDを導入してみた | DevelopersIO>https://dev.classmethod.jp/articles/unity-circleci-demo/]] 2023.1 -[[コードカバレッジを測定してみた - hacomono TECH BLOG>https://techblog.hacomono.jp/entry/2022/12/13/070000]] 2022.12 -[[warning絶許マンがCIで捗る話し - Qiita>https://qiita.com/suzukiplan/items/6aaa46af86bb6de13184]] 2022.10 -[[CircleCiとCodeシリーズの料金比較 - Qiita>https://qiita.com/mk_yjn43/items/a0d430ff0080bd7d1ea1]] 2022.6 -[[CircleCIとAWSをOpenID Connect 認証で連携する - Qiita>https://qiita.com/suzucir/items/5b76ae7d80944d5d3c85]] 2022.4 -[[GitHubのDependabotが作るプルリクエストで動くCI/CDで、デプロイさせたくない | DevelopersIO>https://dev.classmethod.jp/articles/github-dependabot-ci-cd-not-run-deploy-workflow/]] 2022.4 -[[CircleCIが無料枠を大幅拡大。1カ月あたり6000分のビルド時間、ユーザー数無制限、最大30件までのジョブ同時実行など − Publickey>https://www.publickey1.jp/blog/22/circleci1600030.html]] 2022.1 -[[3年の運用で編み出した CircleCI 超設計大全 - Qiita>https://qiita.com/dodonki1223/items/98dbdac6f31f9b486ecf]] 20201.12 -[[CircleCIを使ってコンテナイメージをAWS LambdaへデプロイするCI/CD環境を構築してみた - Qiita>https://qiita.com/y-aka/items/c5c5fd969a6db9aa97fc]] 2021.11 *Cloud Build [#a7afaf89] -[[CI/CDをCloud Buildへ乗り換えたついでにリリースを10分以上短縮した話 - commmune Engineer Blog>https://tech.commmune.jp/entry/2023/02/28/112000]] 2023.2 -[[GCP CI/CD Pipeline: Build Docker images after commits to a repo branch (Github) - DEV Community 👩‍💻👨‍💻>https://dev.to/af/gcp-cicd-pipeline-build-docker-images-after-commits-to-a-repo-branch-github-3381]] 2022.9 -[[GCP CI/CD Pipeline: Build Docker images after commits to a repo branch (Google Cloud Source Repositories) - DEV Community 👩‍💻👨‍💻>https://dev.to/af/gcp-cicd-pipeline-build-docker-images-after-commits-to-a-repo-branch-google-cloud-source-repositories-500o]] 2022.9 -[[Cloud Build を知ってみよう | フューチャー技術ブログ>https://future-architect.github.io/articles/20210315/]] 2021 *Dagger [#w536f2a7] -[[好きな言語でCI/CDを実装できる!DaggerのNode.js SDKを試してみた! | DevelopersIO>https://dev.classmethod.jp/articles/dagger_nodejs_sdk_get_started/]] 2022.12 -[[Go言語でポータブルなCI/CDパイプラインが定義可能に。「Dagger」がGo SDKを発表 − Publickey>https://www.publickey1.jp/blog/22/gocicddaggergo_sdk.html]] 2022.10 -[[Daggerを使用してCIパイプラインを作成する - Qiita>https://qiita.com/yuua0216/items/d6d52d4ee52c84c77639]] 2022.6 -[[コンテナベースのCI/CDツール「Dagger」を試してみよう - Qiita>https://qiita.com/takumi3488/items/dd34e9c729acca17a7eb]] 2022.4 -[[Docker創始者らが開発、ビルド/テスト/デプロイの自動化をポータブルにするツール「Dagger」登場。そのままローカルでもGitHubでもCircleCIでも実行可能に − Publickey>https://www.publickey1.jp/blog/22/dockerdaggergithubcircleci.html]] 2022.4 *Jenkins [#s716c21b] -[[jenkins学習メモ1 インストール〜環境構築 - Qiita>https://qiita.com/fsd-osw/items/446d44855719048d5948]] 2023.2 -[[【入門】初めてのJenkins - RAKUS Developers Blog | ラクス エンジニアブログ>https://tech-blog.rakus.co.jp/entry/20230216/jenkins#Jenkins%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AE%E6%B3%A8%E6%84%8F%E7%82%B9]] 2023.2 -[[Jenkinsfile + Jenkins Shared LibrariesでCI設定のコピペを撲滅する>https://engineering.linecorp.com/ja/blog/jenkinsfile-jenkins-shared-libraries]] 2023.1 -[[Jenkins と Github を連携させる Webhook と SCMポーリング - Qiita>https://qiita.com/att55/items/e3c9aa008008664392e8]] 2022.3 -[[Jenkins で静的解析のグラフを作るとコードを読まなくてもソフトウェアの品質が分かって面白い>http://shunirr.hatenablog.jp/entry/2013/05/05/180922]] 2013.5.5 * ビルド/インテグレーション支援ツール [#ve1ab99e] →Maven関連 -[[1. ガイド — OMakeマニュアル 日本語訳>https://omake-japanese.osdn.jp/index.html]] 2014 -[[OMake つかったらC言語でプログラム書く手間がバカみたいに減った>http://d.hatena.ne.jp/hayamiz/20081203/1228296644]] 2008 -[[MSBuild使いこなし:http://www.atmarkit.co.jp/fdotnet/special/msbuild01/msbuild01_01.html]] -[[MSBuild徹底理解:http://www.atmarkit.co.jp/fdotnet/special/msbuild02/msbuild02_01.html]] --ただしMSBUildは.NET 2.0でしか使えない点に注意 ** Gradle [#q9ce08eb] -[[初めてのgradle build(Java) - Qiita>https://qiita.com/tatesuke/items/6e30dc8891d0857f240e]] 2017 -[[Gradle入門>https://qiita.com/vvakame/items/83366fbfa47562fafbf4]] 2018.6 -[[【Spring】ローカル環境からAWSを使うときのgradleの設定 - Qiita>https://qiita.com/ZZ_E_N/items/49eaf449a747565a2bf0]] 2022.4 *CI/CDに使うツール [#rdeeb3b7] |カテゴリ|役割|ツール例|h |リポジトリ/バージョン管理ツール|ソースコードのバージョンや成果物を管理|[[Git/GitHub>Git関連]]/AWS CodeCommit| |CIツール|コードに変更があると、ビルドやテストを実行するため各種ツールにコードを連携|Jenkins/Travis CI/CircleCI/GitLabCICD/AWS CodePipeline| |構成管理ツール|インフラ基盤の構築を自動化したり、構築手順を管理|Terraform/Ansible/Chef/Puppet/AWS CloudFormation/AWS CDK| |ビルドツール|ビルドに必要な処理を自動実行|Gradle/Ant/[[Maven>Maven関連]]/AWS CodeBuild| |テストデータ準備ツール|テストに必要なデータを準備|DELPHIX| |テストツール|操作テストや負荷テストを実施して、サプリケーションの品質をチェック|UFT One/LoadRunner Professional/sonarQude| *Twelve Factor App [#sa304bf3] -[[Beyond the Twelve-Factor App を元にした アプリケーション開発のプラクティス考察 - FLINTERS Engineer's Blog>https://labs.septeni.co.jp/entry/2023/02/20/120000]] 2023.2 -[[モダンなWebアプリのあるべき姿 Twelve-Factor App (AWSやIaCであるTerraformと絡めたら) - Qiita>https://qiita.com/yoshii0110/items/fc9e75406a74da579f4b]] 2022.6 -[[The Twelve-Factor App (日本語訳)>https://12factor.net/ja/]] 2018 --[[Twelve-Factor Appを噛み砕いてみた - Qiita>https://qiita.com/supreme0110/items/17c58c660137e23ef713]] 2018