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
初めてのKubernetes 本番運用でハマった話
oku053
0
120
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
180
スマートグラスで並列バイブコーディング
hyshu
0
290
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
3
4.3k
act1-costs.pdf
sumedhbala
0
210
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
170
関数型プログラミングのメリットって何だろう?
wanko_it
0
170
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
850
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
110
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.4k
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
620
Featured
See All Featured
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
360
The Curse of the Amulet
leimatthew05
2
13k
sira's awesome portfolio website redesign presentation
elsirapls
0
300
The browser strikes back
jonoalderson
0
1.4k
Utilizing Notion as your number one productivity tool
mfonobong
4
390
Odyssey Design
rkendrick25
PRO
2
730
Into the Great Unknown - MozCon
thekraken
41
2.6k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Discover your Explorer Soul
emna__ayadi
2
1.2k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
410
Technical Leadership for Architectural Decision Making
baasie
3
440
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
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