Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ベンチャー入社後の3年間でDevOps実践して開発・運用体験を劇的に改善した話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tomohiko Ozawa
June 22, 2023
Programming
480
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ベンチャー入社後の3年間でDevOps実践して開発・運用体験を劇的に改善した話
Tomohiko Ozawa
June 22, 2023
More Decks by Tomohiko Ozawa
See All by Tomohiko Ozawa
カスタム GitHub Actions 超入門
kota65535
5
3.8k
Other Decks in Programming
See All in Programming
Contextとはなにか
chiroruxx
1
330
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
140
C# and C++ Interoperability - cho-dotnetnew
harukasao
0
260
Agentic UI
manfredsteyer
PRO
0
180
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
5.6k
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
270
Oxlintのカスタムルールの現況
syumai
6
1.1k
JavaDoc 再入門
nagise
1
370
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
570
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
120
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.7k
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
WENDY [Excerpt]
tessaabrams
11
38k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
860
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
Claude Code のすすめ
schroneko
67
230k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
260
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
440
How to make the Groovebox
asonas
2
2.2k
Raft: Consensus for Rubyists
vanstee
141
7.5k
Transcript
© 2023 SRE Holdings Corporation 証券コード:2980 © 2023 SRE Holdings
Corporation 3 DevOps 2023/06/21
© 2023 SRE Holdings Corporation SRE Holdings 2 2014 2019
SRE / AI DX DX IT
© 2023 SRE Holdings Corporation • (@kota65535) • • ⁃
⁃ ⁃ ⁃ CI/CD ⁃ • AWS ⁃ AWS Certified Solution Architect Professional 3
© 2023 SRE Holdings Corporation • Dev Ops • 2
• DevOps 4
© 2023 SRE Holdings Corporation • • • • DevOps
5
© 2023 SRE Holdings Corporation • Continuous Integration ⁃ •
Continuous Delivery ⁃ • Microservices ⁃ IF ⾒ • Infrastructure as Code ⁃ • Monitoring and Logging ⁃ • Communication and Collaboration ⁃ DevOps by AWS 6
© 2023 SRE Holdings Corporation 1. ⁃ ⁃ ⁃ CI/CD
2. 3. ⁃ DevOps 7
© 2023 SRE Holdings Corporation 8 Backend Java Spring Boot
MySQL OpenAPI Docker AWS ECS Python FastAPI Frontend Infra/Monitoring TypeScript React Material UI Emotion AWS S3 AWS CloudFront Vitest Cypress AWS Terraform Ansible GitHub GitHub Actions Envoy CloudWatch CI/CD X-Ray SonarCloud Trivy Vite
© 2023 SRE Holdings Corporation 9
© 2023 SRE Holdings Corporation • CI/CD : GitHub Actions
⁃ GitHub ⾒ ⁃ Action • setup-java: Java • github-openvpn-connect-action: OpenVPN • : GitHub Flow ⁃ main Feature ⁃ vs. Git Flow • Web • • ⁃ ⁃ CI/CD 10
© 2023 SRE Holdings Corporation • App Repo ⁃ ⁃
⁃ • : foo-front, foo-back ⁃ CI • Infra Repo ⁃ (Terraform) ⁃ App Repo ⁃ • : dev, stg, prod ⁃ CD 11 foo ├── build.gradle ├── foo-back └── foo-front foo-infra ├── envs │ ├── dev │ ├── prod │ └── stg ├── files └── modules
© 2023 SRE Holdings Corporation App Repo CI 12
© 2023 SRE Holdings Corporation • 1 2 • •
Pros. ⁃ ⁃ ⁃ • Cons. ⁃ CI ⁃ ⾒ • : ⁃ 1 ~8 ⁃ ⁃ ⾒ 頻 App Repo - vs 13
© 2023 SRE Holdings Corporation • • • GNU Make
⁃ ⁃ ⾒ • Bazel ⁃ ⁃ • Gradle ⁃ ⁃ Java 頻 ⁃ App Repo - 14
© 2023 SRE Holdings Corporation • Pros. ⁃ ⁃ Java
⁃ ⁃ ⁃ Gradle Wrapper ⁃ Groovy • Cons. ⁃ • • IntelliJ App Repo - Gradle 15
© 2023 SRE Holdings Corporation • Language-agnostic • clean ⁃
• check ⁃ • assemble ⁃ • build ⁃ check, assemble App Repo - Gradle 16
© 2023 SRE Holdings Corporation • App Repo - Gradle
(1/3) 17 assemble jar dockerBuild (Java) assemble npmBuild (Node) zip check test checkstyle check npmTest eslint
© 2023 SRE Holdings Corporation • App Repo - Gradle
(2/3) 18 assemble check assemble npmBuild (Node) zip check npmTest eslint assemble jar dockerBuild (Java) check test checkstyle
© 2023 SRE Holdings Corporation • App Repo - Gradle
(3/3) 19 assemble check assemble npmBuild (Node) zip check npmTest eslint assemble jar dockerBuild (Java) check test checkstyle
© 2023 SRE Holdings Corporation • • ⁃ ⁃ build
• ⁃ ⁃ check App Repo - (1/4) 20 Backend Frontend Build Check 📝
© 2023 SRE Holdings Corporation 1. ⁃ paths- lter ⁃
• • 2. ⁃ Gradle Project ⁃ App Repo - (2/4) 21 foo-back: - foo-back/** - * foo-front: - foo-front/** - * $ cd foo-back $ gradle dependentProjects –q :foo-front
© 2023 SRE Holdings Corporation • Composite Action • App
Repo - (3/4) 22 prepare-build: runs-on: ubuntu-latest outputs: changed: ${{ steps.services.outputs.changed }} # 変更されたサービスのリスト affected: ${{ steps.services.outputs.affected }} # 影響のあるサービスのリスト steps: - name: Checkout uses: actions/checkout@v3 - name: Get services uses: ./.github/actions/get-services id: services
© 2023 SRE Holdings Corporation • Matrix App Repo -
(4/4) 23 build-changed: needs: - prepare-build if: ${{ needs.prepare-build.outputs.changed != '[]' }} strategy: matrix: service: ${{ fromJSON(needs.prepare-build.outputs.changed) }} uses: ./.github/workflows/build-service.yml with: service: ${{ matrix.service }} check-affected: needs: - prepare-build if: ${{ needs.prepare-build.outputs.affected != '[]' }} strategy: matrix: service: ${{ fromJSON(needs.prepare-build.outputs.affected) }} uses: ./.github/workflows/check-service.yml with: service: ${{ matrix.service }}
© 2023 SRE Holdings Corporation App Repo - CI 24
© 2023 SRE Holdings Corporation App Repo - CI: Build
(1/4) 25
© 2023 SRE Holdings Corporation • PR / PR Push
• Gradle build / check App Repo - CI: Build (2/4) 26
© 2023 SRE Holdings Corporation • (Sonar Scanner) ⁃ ⁃
SonarCloud • PR App Repo - CI: Build (3/4) 27
© 2023 SRE Holdings Corporation • Slack • App Repo
- CI: Build (4/4) 28 •
© 2023 SRE Holdings Corporation App Repo - CI: Release
(1/6) 29
© 2023 SRE Holdings Corporation • PR / PR Push
• Gradle build / check App Repo - CI: Release (2/6) 30
© 2023 SRE Holdings Corporation • (Sonar Scanner) App Repo
- CI: Release (3/6) 31
© 2023 SRE Holdings Corporation • CodeArtifact Publish ⁃ Bundle
(Jar) ⁃ OpenAPI Document (YAML) • ECR Push ⁃ Docker Image • API & Publish ⁃ OpenAPI YAML HTML ⁃ Redoc ⁃ S3 App Repo - CI: Release (4/6) 32
© 2023 SRE Holdings Corporation • Infra Repo Release ⁃
Repository Dispatch ⁃ • • • App Repo - CI: Release (5/6) 33 { "services": [ { "name": "foo-back", "version": "1.2.3", "island": "01" } ] }
© 2023 SRE Holdings Corporation • Slack • @here ⁃
Release App Repo - CI: Release (6/6) 34
© 2023 SRE Holdings Corporation Infra Repo CD 35
© 2023 SRE Holdings Corporation Infra Repo - CD 36
© 2023 SRE Holdings Corporation • App Repo Release •
TF Infra Repo CD: Bump 37
© 2023 SRE Holdings Corporation Infra Repo CD: Plan (1/4)
38
© 2023 SRE Holdings Corporation Infra Repo CD: Plan (2/4)
39 • Bump Push • Terraform Plan
© 2023 SRE Holdings Corporation Infra Repo CD: Plan (3/4)
40 • PR PR Plan ⁃ [Click here] Plan
© 2023 SRE Holdings Corporation Infra Repo CD: Plan (4/4)
41 • main Slack Plan • Apply
© 2023 SRE Holdings Corporation Infra Repo CD: Apply (1/4)
42
© 2023 SRE Holdings Corporation Infra Repo CD: Apply (2/4)
43 • Apply OK ⁃ • Terraform Apply ⁃ Plan Plan
© 2023 SRE Holdings Corporation Infra Repo CD: Apply (3/4)
44 • ⁃ CodeDeploy ECS Blue/Green
© 2023 SRE Holdings Corporation Infra Repo CD: Apply (4/4)
45 • ⁃ CodeArtifact Bundle ⁃ Hosting S3 ⁃ CloudFront
© 2023 SRE Holdings Corporation • ⁃ GitHub Template repository
• 46
© 2023 SRE Holdings Corporation • Terraform Providers ⁃ terraform-provider-maven
⁃ terraform-provider-unarchive ⁃ terraform-provider-temporary • Terraform Modules ⁃ terraform-aws-github-work ow-dispatch ⁃ terraform-aws-github-work ow-dispatch-slack ⁃ terraform-aws-s3-deployment CI/CD OSS 47 • GitHub Actions ⁃ github-terraform-plan-comment-action ⁃ github-terraform-plan-slack-action ⁃ github-workflow-dispatch-action ⁃ github-workflow-dispatch-slack-action ⁃ github-openvpn-connect-action ⁃ github-asdf-parse-action ⁃ github-git-config-action ⁃ github-template-sync-action ⁃ github-template-rename-action
© 2023 SRE Holdings Corporation • ⁃ PR 10 Dev
⁃ ⁃ • ⁃ ⁃ • ⁃ ChatOps Apply ⁃ 築 CI/CD 48
© 2023 SRE Holdings Corporation DX (Developer Experience) 1 49
© 2023 SRE Holdings Corporation