åã«æžããããã« ãç§ãã¡ã¯ããŸããŸãªåœã®å€§èŠæš¡ãªãªã³ã©ã€ã³ã¹ãã¢ã§äœæ¥ããŠãããããå€ãã®å Žåãé«è² è·ã«çŽé¢ããŠããŸãã ãã®èšäºã§ã¯ãVirtoCommerceãã©ãããã©ãŒã ã«å®è£ ããã Azure Cloudã«ãããã€ãããã¯ã©ã€ã¢ã³ããããžã§ã¯ãã®1ã€ã§2017幎ãã©ãã¯ãã©ã€ããŒãã©ã®ããã«é²è¡ãã10åã®ãã©ãã£ãã¯å¢å ã«èããããšãã§ãããã説æããŸãã
åææ§æã¯ãCDNã䜿çšããã«é¡§å®¢ã®èŠä»¶ã«åŸã£ãŠæ§ç¯ãããŸããã äžæ¹ã§ãå³ããäºç®ãæºããå¿ èŠããããä»æ¹ã§ã¯ããªã¢ã«ã¿ã€ã ã§ã¹ã±ãŒãªã³ã°ãšæ§æå€æŽã®å¯èœæ§ãç¯ããŸããã
補åã¯æ¬¡ã®ããã«ãªããŸããã
- ããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³çšã®App Service- VirtoCommerce Storefront for ASP.NET Core 2.0ã§å®è¡ãããã¹ã«ã³ãžããã¢è«žåœåãã«3ã€ã®ç¬ç«ããã¹ãã¢ããããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ãRESTful APIåŒã³åºããä»ããŠããã¯ãšã³ãã·ã¹ãã ãšå¯Ÿè©±ããŸã
- ããã¯ãšã³ãåãApp Service-ãã©ãããã©ãŒã VirtoCommerceã§åäœããåäžã®ã«ã¿ãã°ãäŸ¡æ Œãã¹ãã¢ã泚æã管çãããã©ãããã©ãŒã ã®æ©èœãšããŒã¿ã«ã¢ã¯ã»ã¹ããããã®RESTful APIãå®è£ ããŸãã
- Logic Appsã¯ãå€éšã·ã¹ãã ãšçµ±åããããã«èšèšãããŠããŸãã
- Application Insightsã¯ããœãªã¥ãŒã·ã§ã³ã®åäœãç£èŠããããã«äœ¿çšãããŸãã
2017幎ãã©ãã¯ãã©ã€ããŒã§ãããŒã±ãã£ã³ã°æ åœè ã¯ãã©ãã£ãã¯ã10åå¢å ãããšäºæž¬ããŸããã ããã«ãæ¥äžã«é»åã¡ãŒã«ãŸãã¯SMSã¡ãŒãªã³ã°ãè¡ãããšãèšç»ãããŠãããããããæç¹ã§ãªã¯ãšã¹ããæ¥æ¿ã«ããŒã¯ã«éããŠããŸããã
ããŒã1.æºå
çŸåšã®ã·ã¹ãã ã®åæãå®è¡ãããAzureãµãŒãã¹ã䜿çšããŠå®è£ ã§ãã次ã®æ±ºå®ãè¡ãããŸããã
ãã©ãã¯ãã©ã€ããŒã®æºåãããããã«ã4ã€ã®ãã€ã³ããç¹å®ããŸããã
- éçãªãœãŒã¹ïŒJavaScriptããã³CSSïŒã®CDNãã¢ã¯ãã£ãã«ããŸãã
- 補åã€ã¡ãŒãžã®CDNãã¢ã¯ãã£ãã«ããŸãã
- ãã£ã³ããŒã³äžã«ã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ãå¢ãããŸãã
- Azureã§èªåã¹ã±ãŒã«ã¢ãŠãã«ãŒã«ãæ§æããŸãã
ãããã£ãŠããã€ã¢ã°ã©ã ã¯æ¬¡ã®ããã«ãªããŸãã
éçãªãœãŒã¹ïŒJavaScriptããã³CSSïŒã®CDNã¢ã¯ãã£ããŒã·ã§ã³ã
ããã©ã«ãã§ã¯ããã¹ãŠã®ãªãœãŒã¹ïŒJavaScriptããã³CSSãã¡ã€ã«ïŒã¯ããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ããçŽæ¥ããŒããããŸãã
Azure Content Delivery NetworkïŒCDNïŒã䜿çšãããšãæŠç¥çã«é 眮ããããã€ã³ãã§éçãªWebã³ã³ãã³ãããã£ãã·ã¥ã§ããŸãã ããã«ããããŠãŒã¶ãŒã«ã³ã³ãã³ããé ä¿¡ããããã®æ倧ã¹ã«ãŒããããä¿èšŒãããŸãã CDNã¯ãWebã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã®è² è·ã軜æžããŸãã
éçãªãœãŒã¹ããã£ãã·ã¥ããããã«CDNãæ¥ç¶ããã«ã¯ã以äžãè¡ãå¿ èŠããããŸãã
- StaticAssetUrlã¡ãœããã§CDNãªã³ã¯ãçæããããã®ã³ãŒããè¿œå ããŸãã
- App Service docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-content-delivery-networkã® CDNãäœæããŸãã
- ã¢ããªã±ãŒã·ã§ã³æ§æã§CDN Urlãæ§æããŸãã
ãã®åŸã ããŒã/ã¢ã»ãã/éç/ãã©ã«ããŒãã¹ã«ã¢ã¯ã»ã¹ãããã¹ãŠã®ãªãœãŒã¹ã¯ãCDNããæ¢ã«ããŒããããŸã ã
以åã¯ãããŸããŸãªå°åã«å¯ŸããŠäžé£ã®å¶åŸ¡ãã¹ããå®è¡ããCDNã®æå¹æ§ã瀺ããŸããã
ããšãã°ã714 KBã®éçãªvendor.jsãã¡ã€ã«ã®å Žåã次ã®çµæãåŸãããŸããïŒ 216ms察705ms ã è¯ãé床ã²ã€ã³ã
705ããªç§å
216ããªç§åŸ
補åã€ã¡ãŒãžã®CDNã¢ã¯ãã£ããŒã·ã§ã³ã
ã¯ã©ã€ã¢ã³ããœãªã¥ãŒã·ã§ã³ã§ã¯ãAzure BlobãµãŒãã¹ããã€ããªãã¡ã€ã«ãŸãã¯è£œåã€ã¡ãŒãžã®ãã©ã€ããªã¹ãã¬ãŒãžãšããŠäœ¿çšããããšããå§ãããŸãã
ããã«äœ¿çšã§ããããã«ãCDNãAzure Blob Storageã«æ¥ç¶ããŠã³ã³ãã³ãããã£ãã·ã¥ã§ããŸãã Azure CDNã®äžéšãšããŠãã€ã¯ããœãããšææºããŠããããŒãããŒãµãŒãã¹ã¯ãéçºè ã«å€§éã®ã³ã³ãã³ããé ä¿¡ããããã®ã°ããŒãã«ãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ã«ãããç±³åœããšãŒããããã¢ãžã¢ããªãŒã¹ãã©ãªã¢ãåç±³ã®ç©çããŒãäžã®ã³ã³ãã¥ãŒãã£ã³ã°ã€ã³ã¹ã¿ã³ã¹ã®BLOBãšéçã³ã³ãã³ãããã£ãã·ã¥ã§ããŸãã
補åã€ã¡ãŒãžã®æ°ããCDNãäœæããã«ã¯ã次ã®ããšãè¡ãå¿ èŠããããŸãã
- Virto Commerceãã©ãããã©ãŒã ããŒãžã§ã³v2.13.18 以éãã€ã³ã¹ããŒã«ããŸãã ããã«ãAzureBlobProviderã䜿çšããŸãã
- Blobã¹ãã¬ãŒãžçšã®Azure CDNãäœæããŸãdocs.microsoft.com/en-us/azure/cdn/cdn-create-a-storage-account-with-cdn
- cdnUrlå±æ§ãAssetsConnectionStringã«èšå®ããŸãã äŸïŒprovider = AzureBlobStorage; rootPath = asset; DefaultEndpointsProtocol = https; AccountName = {AccountName}; AccountKey = {AccountKey}; cdnUrl = abc.azureedge.net
äœæ¥ã®ååŸãæ¯èŒããŸããã ããšãã°ããµã€ãºã82 KBã®jpegãã¡ã€ã«ã¯ã259ããªç§ã§ã¯ãªãã126ããªç§åŸã«åä¿¡ããŸããã
259ããªç§å
126ããªç§åŸ
ããã¢ãŒã·ã§ã³æéäžã«ã¹ã±ãŒã«ã¢ãããè¡ããŸãã
ããã©ã«ãã§ã¯ãApp Servicesã®å ŽåãAzure S2ïŒMediumãã©ã³ã«åŸã£ãŠã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ã䜿çšããŸããã倧èŠæš¡ãªCPUãŸãã¯ã¡ã¢ãªãªãœãŒã¹ã䜿çšããå¿ èŠãããå Žåã¯ããã©ã³ãS3ïŒLargeã«æ¡åŒµããæºåãã§ããŸããã
Azureã®ãã¹ãã§ã¯ãã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ã®éã®å¢å ã¯å¹³åããŠ2ã5å以å ã«ããŠã³ã¿ã€ã ãªãã§çºçããããšã瀺ãããŸããã
èªåã¹ã±ãŒã«ã¢ãŠãã«ãŒã«ãæ§æããŸãã
ã¹ã±ãŒã«ã¢ãŠãã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ãå®è¡ããç°å¢ã®æ°ãæ§æã§ããŸãã åºæ¬èšå®ã§ã¯ãã¡ããªãã¯ã«å¿ããŠããŒã«ã®æ°ã2ãã5ã«èªåçã«å¢æžããã«ãŒã«ãèšå®ããŸããã
ããã«ãããã¢ããªã±ãŒã·ã§ã³ã®éåžžã®æäœäžã«ãIT管çè ã®æéãšäºç®ãå€§å¹ ã«ç¯çŽã§ããŸãã
ç§ãã¡ã¯ã次ã®èšå®ãéžæããŸããã
- çŽåã®10åéã§CPUPercantage> 80ãŸãã¯MemoryPercentage> 90ã®å Žåãã€ã³ã¹ã¿ã³ã¹ã«ãŠã³ãã1å¢ãããŸãã
- CPUPercantageã70æªæºãMemoryPercentageã70æªæºã®å Žåãéå»10åéã«ã€ã³ã¹ã¿ã³ã¹æ°ã1æžãããŸãã
æ®å¿µãªãããããŒã¯è² è·ã§ã¯èªåã«ãŒã«ãé ãããããšãå€æããŸãã-ãããã¯é ããæçµçã«ã¯æåå¶åŸ¡ã«åãæ¿ããå¿ èŠããããŸããã éåžžãèªåã¹ã±ãŒã«ã¢ãŠãã¯éåžžã«å¹æçã§ãã
ããŒã2.ãã©ãã¯ãã©ã€ããŒ
æã§ããã ãã©ãŠã¶ã§ã¯ãéçºè ãšã·ã¹ãã 管çè ãã©ã€ãã¹ããªãŒã ã¡ããªãã¯ãéããŠããŸãã ããã¢ãŒã·ã§ã³ãæå¹ã«ãªããæåã®ã¡ãŒã«ãã¥ãŒã¹ã¬ã¿ãŒãé ä¿¡ãããŸããã ã©ã€ãã¹ããªãŒã ã§ã¯ããªã¯ãšã¹ãã®æ°ãå¢å ããŠããŸãã ããå€ãã®ãªãœãŒã¹ãå¿ èŠã§ãããèªåã«ãŒã«ã«ã¯ãããã®å€æŽã«å¯Ÿå¿ããæéããããŸããã
å¿çæéã®å¢å ãèŠãããŸãã æ°ããã€ã³ã¹ã¿ã³ã¹ãçºçããç¶æ³ãå®å®ããŸãã
éµéãã¹ãšãªãœãŒã¹ã®æ³¢ã¯èªåçã«åæžãããŸãã 次ã®æ³¢-ç»åãç¹°ãè¿ãããŸãã ãªãœãŒã¹ã«äœè£ãæãããããã«ãæåã¢ãŒãã«åãæ¿ããŠã€ã³ã¹ã¿ã³ã¹ã®æ°ãå¶åŸ¡ããããšã«ããŸããã
ã客æ§ã¯ãè² è·ã«ããããããããµã€ããã¯ããã«é«éã§ããããšã«æ³šæããŠãã ããã
æéããã®ãªã¯ãšã¹ãæ°ã®ååžã¯æ¬¡ã®ãšããã§ãã
ãã©ãã¯ãã©ã€ããŒã®æãåå7æ40åããåå9æ40å ã¹ããã2åã
ãããŠãããã¯å®æçãªéææ¥ã§ãïŒ
泚ææ°ã®å¢å ã«ãããéèŠãªãã©ã¡ãŒã¿ã«å¯ŸããããŒã¿ããŒã¹ã®è² è·ãå¢å ããŸããã éåžžãäœæ¥ãã©ã¡ãŒã¿ãŒã¯40ïŒ -50ïŒ DTUããŒã»ã³ããŒãžã§ãããšèããŠããŸãã
ãã©ãã¯ãã©ã€ããŒã§ã¯ãè² è·ã70ã80ïŒ ã«å¢å ããŸããã ãªãœãŒã¹ã100 DTUã«åŒãäžããããšã決å®ãããŸããã ãã®å Žã§ã®èšç»ã®å€æŽããããŠã³ã¿ã€ã ãªãã§2ã3å以å ã«è¡ãããåã°ãã«ã¯ããããŸããã§ããã ããã«ãããæœåšçãªåšåº«åé¡ã解決ãããŸããã ããã«å€ãã®ãªã¯ãšã¹ããããå€ãã®ãã©ãã£ãã¯ã ããå€ãã®æ³šæã ãããŠãããã¯ãã§ã«åææ¥ã®æã§ãã ãã®åŸãã¿ããªå¯ãŸããã
ããŒã3.å顧
é»ãéææ¥ã«ç«ã¡ãŸããïŒ
ãã®ãµã€ãã¯ãå²åŒãé床ã100ïŒ ã®å¯çšæ§ã§é¡§å®¢ãæºè¶³ãããŸããã åºã®é¡§å®¢ã¯ã泚æã®æ°ããµãŒãã¹ææè ã«åã°ããŸããã
ã¯ãããã®æ¥ã®ITãªãœãŒã¹ã®ã³ã¹ãã¯3åã«ãªããŸãããããã®æ¥ã®åçã¯éåžžã®1æ¥ã«æ¯ã¹ãŠ100åã«å¢å ããŠããŸãã äž»ãªã³ã¹ãã¯ãã¢ããªã±ãŒã·ã§ã³ã€ã³ã¹ã¿ã³ã¹ã®æ°ã®å¢å ãšããŒã¿ããŒã¹ãã©ã³ã®åŒãäžãã«é¢é£ããŠããããã©ãã¯ãã©ã€ããŒã®çµäºåŸã以åã®ãã©ã³ã«æ»ããŸããã
èšç®ã瀺ããããã«ãCDNæ¥ç¶ã«ããITãªãœãŒã¹ã®ã³ã¹ãã1æ¥ãããããã2ãã«å¢å ãããããã¯ã©ã€ã¢ã³ãã¯ãã®æ§æãç¶ç¶çã«æ®ãããšã«ããŸããã
æšå®ã«ãããšãéçãªãœãŒã¹ã®CDNãžã®è»¢éã«ããã以äžã®ææšãæ¹åãããŸããã
- å¹³åå¿çæéã400ããªç§ççž®ããŸããã
- ããŒãžãã¥ãŒã®èªã¿èŸŒã¿æéã1.5ç§ççž®ããŸããã
次ã¯ïŒ
- ããŒã ããŒãžãã«ããŽãªããŒãžã補åã«ãŒãã®åã¬ã³ããªã³ã°ãåé€ããããã«ããã¹ãŠã®ãµã€ããCDNã®èåŸã«é ããŸãã ç§ãã¡ã®ãããžã§ã¯ãã§ã¯ãçŸåšã®äŸ¡æ Œãã¯ã©ã€ã¢ã³ãã®å²åŒããã¹ã±ãããªã©ã®ããã«ãããè¡ãããšãã§ããŸãã javascriptãä»ããŠããŒããããŸãã
- ããã³ã ãšã³ãã·ã¹ãã ãšããã¯ãšã³ãã·ã¹ãã ã®éã§API Managementãã¢ã¯ãã£ãã«ããŸãã
- Azure API Management docs.microsoft.com/en-us/azure/api-management/api-management-howto-cacheã§ãã£ãã·ã¥ãè¿œå ããŠããã©ãŒãã³ã¹ãæ¹åããŸãã
- App Servicesãããã€ãã®å°ççäœçœ®ã«é 眮ããŸãã
ããŠã2018幎ã®æ°ãããã©ãã¯ãã©ã€ããŒã«åããŸãïŒ