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
PHPCon福岡2024-Azureもなかなかいいですよ.pdf
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kaz Watanabe
June 22, 2024
Technology
370
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHPCon福岡2024-Azureもなかなかいいですよ.pdf
Kaz Watanabe
June 22, 2024
More Decks by Kaz Watanabe
See All by Kaz Watanabe
開発エンジニアが取り組む DevSecOps ~ GitHub Enterprise × Azure での実践~
kaz29
0
32
Greenは本当にGreenか? - B/GデプロイとAPI自動テストで安心デプロイ
kaz29
1
190
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
480
開発エンジニアが実践するDevSecOps
kaz29
0
150
Azure Container Apps + Bicep 〜 こんな感じで運用しています
kaz29
3
1.3k
20220908_フロントエンドパフォーマンス改善.pdf
kaz29
2
200
PHP製のPodCast配信用WebアプリをReact+Next.jsなSSGで作り直してみた話
kaz29
3
710
バックエンドエンジニアの私がお勧めする SPAフロントエンド開発環境
kaz29
6
6.3k
201909-PHPCon北海道-PHPでCI_CD.pdf
kaz29
0
4.1k
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
220
Mastering Ruby Box
tagomoris
3
150
やさしいA2A入門
minorun365
PRO
7
650
DevOps Agentで始めるAWS運用 〜フロンティアエージェントが変える運用の現場〜
nyankotaro
1
330
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
29
21k
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
400
Databricks における 生成AIガバナンスの実践
taka_aki
1
360
探して_入れて_作って_使う_Agent_Skills___LT.pdf
peintangos
2
180
「コーディング」しない人のための Claude Code 入門 ChatGPT の次の一歩 — 業務に組み込む 育成・共有・自動化
rfdnxbro
2
1.2k
ABEMA の Datadog × OTel 基盤、 中から見るか? 外から見るか?
tetsuya28
0
110
Microsoft Build Keynoteふりかえり
tomokusaba
0
110
関西に縁あるMicrosoft MVPsが語るCopilotの未来
kasada
0
1.2k
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
3.6M
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Test your architecture with Archunit
thirion
1
2.3k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
220
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Statistics for Hackers
jakevdp
799
230k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How to Ace a Technical Interview
jacobian
281
24k
Mind Mapping
helmedeiros
PRO
1
240
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
160
Transcript
"[VSFͳ͔ͳ͔ྑ͍Ͱ͢Αʂ 1)1FSͷҝͷ"[VSFೖ 2024/06/24 PHPΧϯϑΝϨϯεԬ2024 JCOMגࣜձࣾ Θͨͳ(@kaz_29)
WHO? ลҰ (Θͨͳ ͔ͣͻΖ) @kaz_29 JCOMגࣜձࣾ
None
Agenda • PHPΛ࣮ߦՄೳͳαʔϏε • ֤αʔϏεͷ֓ཁհ • ࠷ۙΑ͘͏αʔϏεɾߏͷհ • WebαʔϏεΛఏڙ͢Δ্ͰΑ͘͏֤छαʔϏεͷհ •
·ͱΊ
Azure App Service Azure App Service on Linux
• MSఏڙͷLinuxڥ • GithubͳͲ͔ΒCD • Φʔτεέʔϧ Up / Down •
ෳSlotରԠ • Azure portal্͔ΒSSHͰϩάΠϯՄೳ(Ұ෦੍ݶ͋Γ) QSPEVDUJPOQSFWJFXͷ༷ʹෳ TMPUΛ࡞ͬͯ؆୯ʹ#(σϓϩΠ Azure App Service "[VSF"QQ4FSWJDFPO-JOVY 1PSUBMͰઃఆΛ͢ΔͱσϓϩΠʹ ඞཁͳઃఆ͕Ճ͞ΕɺXPSL fl PX ͕DPNNJU͞ΕΔ https://azure.microsoft.com/ja-jp/pricing/details/app-service/linux/
Azure App Service "[VSF"QQ4FSWJDFPO-JOVY https://azure.microsoft.com/ja-jp/pricing/details/app-service/linux/ # Docs for the Azure
Web Apps Deploy action: https://github.com/Azure/webapps-deploy # More GitHub Actions for Azure: https://github.com/Azure/actions name: Build and deploy PHP app to Azure Web App - phpconfuk on: push: branches: - main workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.3' - name: Check if composer.json exists id: check_files uses: andstor/file-existence-action@v1 with: files: 'composer.json' - name: Run composer install if composer.json exists if: steps.check_files.outputs.files_exists == 'true' run: composer validate --no-check-publish && composer install --prefer-dist --no-progress - name: Zip artifact for deployment run: zip release.zip ./* -r - name: Upload artifact for deployment job uses: actions/upload-artifact@v3 with: name: php-app path: release.zip deploy: runs-on: ubuntu-latest needs: build environment: name: 'Production' url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} permissions: id-token: write #This is required for requesting the JWT steps: - name: Download artifact from build job uses: actions/download-artifact@v3 with: name: php-app - name: Unzip artifact for deployment run: unzip release.zip - name: Login to Azure uses: azure/login@v1 with: client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_XXX }} tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_XXX }} subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_XXX }} - name: 'Deploy to Azure Web App' uses: azure/webapps-deploy@v2 id: deploy-to-webapp with: app-name: 'phpconfuk' slot-name: 'Production' package: . OpenID Connect(OIDC) Ͱೝূ(MSਪ) - name: Login to Azure uses: azure/login@v1 with: client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_… }} tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_… }} subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_… }}
Azure App Service "[VSF"QQ4FSWJDFPO-JOVY DBUFUDPTSFMFBTF 13&55:@/".&%FCJBO(/6-JOVY CPPLXPSN /".&%FCJBO(/6-JOVY 7&34*0/@*%
7&34*0/ CPPLXPSN ʜ DBUFUDEFCJBO@WFSTJPO QIQWFSTJPO 1)1 DMJ CVJMU.BS /54 $PQZSJHIU D 5IF1)1(SPVQ ;FOE&OHJOFW $PQZSJHIU D ;FOE5FDIOPMPHJFT XJUI;FOE01DBDIFW $PQZSJHIU D CZ;FOE5FDIOPMPHJFT QTBY 1*%55:45"55*.&$0.."/% 4/TCJOCBTICJOJOJU@DPOUBJOFSTI 4/TTTIEVTSTCJOTTIE<MJTUFOFS>PGTUBSUVQT 4/CJOTIPQUTUBSUVQTUBSUVQTI 4/TOHJOYNBTUFSQSPDFTTVTSTCJOOHJOY 4/OHJOYXPSLFSQSPDFTT 4/TQIQGQNNBTUFSQSPDFTT VTSMPDBMFUDQIQGQNDPOG 4/QIQGQNQPPMXXX 4/QIQGQNQPPMXXX https://azure.microsoft.com/ja-jp/pricing/details/app-service/linux/
Azure App Service "[VSF"QQ4FSWJDFPO-JOVY https://azure.microsoft.com/ja-jp/pricing/details/app-service/linux/ App Service Plan ΞϓϦ1 ΞϓϦ2
Worker1 Worker2 ΞϓϦ1 ΞϓϦ2
Azure App Service Web Apps for Containers
• GithubͳͲ͔ΒCD • Φʔτεέʔϧ Up / Down • ෳSlotରԠ •
Azure portal্͔ΒSSHͰϩάΠϯՄೳ(Ұ෦੍ݶ͋Γ) sshdΛࢦఆͷํ๏Ͱ্͓͛ͯ͘ඞཁ͕͋Γ·͢ Azure App Service 8FC"QQTGPS$POUBJOFST https://azure.microsoft.com/ja-jp/pricing/details/app-service/linux/
Azure Container Instances
"[VSF$POUBJOFS*OTUBODFT ֓ཁ • ΦϯσϚϯυͰίϯςφΛ࣮ߦ͢ΔαʔϏε Hyper-VͰ͞Εͨίϯςφʔ • ࠷େ8vCPU / 32GiB ຊϦʔδϣϯͰ·ͩͰ͕͢ɺGPUΛ͑Δߏ͕ϓϨϏϡʔͰެ։த
• AKSͷεέʔϧઌͱͯ͠ར༻Մೳ AKSͰΞΫηε͕ूதͨ͠ࡍͷΦϑϩʔυઌͱͯ͑͠Δ
Azure Container Apps
Azure Container Apps ֓ཁ • ϑϧϚωʔδυk8sϕʔεͷΞϓϦέʔγϣϯϓϥοτϑΥʔϜ • KEDAΛར༻ͨ͠ಈతεέʔϦϯά HTTP /
TCP / Azure Storage Queue / Azure Service Bus / Azure Event Hubs etc… • ϓϥϯ • Consumption Plan(ফඅ) • Dedicated(ઐ༻) • ैྔ՝ۚϫʔΫϩʔυϓϩϑΝΠϧ • ઐ༻ϫʔΫϩʔυϓϩϑΝΠϧ
Azure Container Apps ར༻Մೳͳ CPU ͱϝϞϦ IUUQTMFBSONJDSPTPGUDPNKBKQB[VSFDPOUBJOFSBQQTDPOUBJOFST
Azure Container Apps ࣮ߦڥͷΠϝʔδ CONTAINER APP 1 CONTAINER(S) REPLICA REVISION
1 CONTAINER(S) REPLICA REVISION 2 CONTAINER APP 2 CONTAINER(S) REPLICA REVISION 1 CONTAINER(S) REPLICA REVISION 2 CONTAINER APPS ENVIRONMENT
͜͜·Ͱͷ·ͱΊ 1)1Λ࣮ߦՄೳͳ1BB4 • Azure App Service on Linux MSۘͷLinuxڥ •
Web Apps for Containers DockerΛ࣮ߦՄೳͳαʔϏε • Azure Container Instances ΦϯσϚϯυͰίϯςφΛ࣮ߦ͢ΔαʔϏε • Azure Container Apps ϑϧϚωʔδυk8sϕʔεͷΞϓϦέʔγϣϯϓϥοτϑΥʔϜ
ͦͷ΄͔ͷΑ͘͏αʔϏε • Azure Static Web Apps ϑϩϯτΞϓϦͳͲ੩తίϯςϯπΛ৴ • Azure Container
Registry ίϯςφΠϝʔδͷཧ • Azure Front Door WAF / CDN • Azure Monitor / Log Analytics Workspace ϩάཧ • Azure Application Insights ΞϓϦέʔγϣϯϩάཧ(ϑϩϯτͷϩάऩू) • Azure Key Vault ೝূใͳͲൿಗੑͷߴ͍ใͷཧ • Azure Storage • Blob Storage ΫϥυετϨʔδ • Queue ϝοηʔδϯάετΞ • Azure Database for PostgreSQL / MySQL • Azure Web PubSub ϦΞϧλΠϜϝοηʔδϯά(WebSocket) • Bicep(ARM Template) IaCπʔϧ
Azure Static WebApps
Azure Static WebApps ֓ཁ • ੩తίϯςϯπ৴༻ͷαʔϏε • ෳͷڥ(slotతͳͷ) • ΧελϜυϝΠϯରԠ(ূ໌ॻແྉɺࣗಈߋ৽)
• ଳҬ෯ - 100 GB (αϒεΫϦϓγϣϯ͋ͨΓ) • ೝূ • API࿈ܞ(Functions / Container Apps) • ϓϥϯ • Free(ফඅ) • Standard(ઐ༻) • SLAɺଳҬաՄೳ(ैྔ՝ۚ)
͓͢͢Ίͷߏ ࠷ۙΑ͘͏ߏ "[VSF'SPOU%PPS 4UBUJD8FC"QQT "[VSF'SPOU%PPS "[VSF%BUBCBTF GPS1PTUHSF42- "[VSF$POUBJOFS"QQT "1* 2VFVF8PSLFS
8FC)PPL "[VSF4UPSBHF2VFVF
·ͱΊ • PHPͷ࣮ߦڥ Azure App Service on Linux Web Apps
for Containers Azure Container Instances Azure Container Apps • ؔ࿈αʔϏε
͓͠·͍