Slide 1

Slide 1 text

"[VSF΋ͳ͔ͳ͔ྑ͍Ͱ͢Αʂ 1)1FSͷҝͷ"[VSFೖ໳ 2024/06/24 PHPΧϯϑΝϨϯε෱Ԭ2024 JCOMגࣜձࣾ Θͨͳ΂(@kaz_29)

Slide 2

Slide 2 text

WHO? ౉ลҰ޺ (Θͨͳ΂ ͔ͣͻΖ) @kaz_29 JCOMגࣜձࣾ

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Agenda • PHPΛ࣮ߦՄೳͳαʔϏε • ֤αʔϏεͷ֓ཁ঺հ • ࠷ۙΑ͘࢖͏αʔϏεɾߏ੒ͷ঺հ • WebαʔϏεΛఏڙ͢Δ্ͰΑ͘࢖͏֤छαʔϏεͷ঺հ • ·ͱΊ

Slide 5

Slide 5 text

Azure App Service Azure App Service on Linux

Slide 6

Slide 6 text

• 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/

Slide 7

Slide 7 text

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_… }}

Slide 8

Slide 8 text

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/TTTIEVTSTCJOTTIEPGTUBSUVQT 4/CJOTIPQUTUBSUVQTUBSUVQTI 4/TOHJOYNBTUFSQSPDFTTVTSTCJOOHJOY 4/OHJOYXPSLFSQSPDFTT 4/TQIQGQNNBTUFSQSPDFTT VTSMPDBMFUDQIQGQNDPOG 4/QIQGQNQPPMXXX 4/QIQGQNQPPMXXX https://azure.microsoft.com/ja-jp/pricing/details/app-service/linux/

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Azure App Service Web Apps for Containers

Slide 11

Slide 11 text

• 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/

Slide 12

Slide 12 text

Azure Container Instances

Slide 13

Slide 13 text

"[VSF$POUBJOFS*OTUBODFT ֓ཁ • ΦϯσϚϯυͰίϯςφΛ࣮ߦ͢ΔαʔϏε Hyper-VͰ෼཭͞Εͨίϯςφʔ • ࠷େ8vCPU / 32GiB ೔ຊϦʔδϣϯͰ͸·ͩͰ͕͢ɺGPUΛ࢖͑Δߏ੒͕ϓϨϏϡʔͰެ։த • AKSͷεέʔϧઌͱͯ͠΋ར༻Մೳ AKSͰΞΫηε͕ूதͨ͠ࡍͷΦϑϩʔυઌͱͯ͠࢖͑Δ

Slide 14

Slide 14 text

Azure Container Apps

Slide 15

Slide 15 text

Azure Container Apps ֓ཁ • ϑϧϚωʔδυk8sϕʔεͷΞϓϦέʔγϣϯϓϥοτϑΥʔϜ • KEDAΛར༻ͨ͠ಈతεέʔϦϯά HTTP / TCP / Azure Storage Queue / Azure Service Bus / Azure Event Hubs etc… • ϓϥϯ • Consumption Plan(ফඅ) • Dedicated(ઐ༻) • ैྔ՝ۚϫʔΫϩʔυϓϩϑΝΠϧ • ઐ༻ϫʔΫϩʔυϓϩϑΝΠϧ

Slide 16

Slide 16 text

Azure Container Apps ར༻Մೳͳ CPU ͱϝϞϦ IUUQTMFBSONJDSPTPGUDPNKBKQB[VSFDPOUBJOFSBQQTDPOUBJOFST

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

͜͜·Ͱͷ·ͱΊ 1)1Λ࣮ߦՄೳͳ1BB4 • Azure App Service on Linux MSۘ੡ͷLinux؀ڥ • Web Apps for Containers DockerΛ࣮ߦՄೳͳαʔϏε • Azure Container Instances ΦϯσϚϯυͰίϯςφΛ࣮ߦ͢ΔαʔϏε • Azure Container Apps ϑϧϚωʔδυk8sϕʔεͷΞϓϦέʔγϣϯϓϥοτϑΥʔϜ

Slide 19

Slide 19 text

ͦͷ΄͔ͷΑ͘࢖͏αʔϏε • 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πʔϧ

Slide 20

Slide 20 text

Azure Static WebApps

Slide 21

Slide 21 text

Azure Static WebApps ֓ཁ • ੩తίϯςϯπ഑৴༻ͷαʔϏε • ෳ਺ͷ؀ڥ(slotతͳ΋ͷ) • ΧελϜυϝΠϯରԠ(ূ໌ॻແྉɺࣗಈߋ৽) • ଳҬ෯ - 100 GB (αϒεΫϦϓγϣϯ͋ͨΓ) • ೝূ • API࿈ܞ(Functions / Container Apps) • ϓϥϯ • Free(ফඅ) • Standard(ઐ༻) • SLAɺଳҬ௒աՄೳ(ैྔ՝ۚ)

Slide 22

Slide 22 text

͓͢͢Ίͷߏ੒ ࠷ۙΑ͘࢖͏ߏ੒ "[VSF'SPOU%PPS 4UBUJD8FC"QQT "[VSF'SPOU%PPS "[VSF%BUBCBTF GPS1PTUHSF42- "[VSF$POUBJOFS"QQT "1* 2VFVF8PSLFS 8FC)PPL "[VSF4UPSBHF2VFVF

Slide 23

Slide 23 text

·ͱΊ • PHPͷ࣮ߦ؀ڥ Azure App Service on Linux Web Apps for Containers Azure Container Instances Azure Container Apps • ؔ࿈αʔϏε

Slide 24

Slide 24 text

͓͠·͍