diff --git a/.vitepress/config.mts b/.vitepress/config.mts index c6d12ea..1ccf316 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -15,6 +15,7 @@ export default defineConfig({ '/paths/aspnet-core': { base: '/paths/aspnet-core/', items: sidebarASPNetCore()}, '/paths/devops': { base: '/paths/devops/', items: sidebarDevOps()}, '/paths/java': { base: '/paths/java/', items: sidebarJava()}, + '/paths/azure': { base: '/paths/azure/', items: sidebarAzure()}, }, socialLinks: [ { icon: 'github', link: 'https://github.com/ThaiProgrammer/tpa-path' } @@ -88,7 +89,7 @@ function sidebarDevOps(): DefaultTheme.SidebarItem[] { items: [ { text: 'Language', - collapsed: false, + collapsed: true, base: '/paths/devops/100-language/', items: [ { text: 'python', link: '100-python' }, @@ -109,7 +110,7 @@ function sidebarJava(): DefaultTheme.SidebarItem[] { items: [ { text: 'Java fundamentals', - collapsed: false, + collapsed: true, base: '/paths/java/100-java-fundamentals/', items: [ { text: 'Basic Syntax', link: '100-basic-syntax' }, @@ -128,3 +129,34 @@ function sidebarJava(): DefaultTheme.SidebarItem[] { } ] } +function sidebarAzure(): DefaultTheme.SidebarItem[] { + return [ + { + text: 'Azure', + items: [ + { + text: 'Fundamentals', + collapsed: true, + base: '/paths/azure/fundamental/', + items: [ + { text: 'Introduction', link: '000-index' }, + { text: 'Cloud Concepts', link: '001-cloud-concepts' }, + { text: 'Azure Account, Support Options, Architecture, Service Guarantees, Manage Services Tools', link: '002-architecture-service-guarantees' }, + { text: 'Core Cloud Services (Compute Options, Data Storage Options, Networking Options)', link: '003-core-cloud-services' }, + { text: 'Security, Responsibility and Trust in Azure', link: '004-security-responsibility-trust' }, + { text: 'Standards Infrastructure, Resources Organization', link: '005-standards-infrastructure' }, + { text: 'Predict Costs and Optimize Spending', link: '006-predict-optimize-costs' } + ] + }, + { + text: 'Certifications Path', + collapsed: true, + base: '/paths/azure/certification/', + items: [ + { text: 'Certifications Path', link: '000-index' } + ] + }, + ] + } + ] +} diff --git a/index.md b/index.md index a8cc792..b293dc2 100644 --- a/index.md +++ b/index.md @@ -17,6 +17,9 @@ hero: } features: + - title: Web Development Guideline + details: รวบรวมเนื้อหาที่คิดว่าเป็นประโยชน์ให้เห็นภาพกว้างในการเข้ามาทำงานในสาย Web Developers + link: /paths/web-guideline - title: ASP.Net Core details: ขั้นตอนแนะนำในการเตรียมความพร้อมเพื่อพัฒนา Website ด้วย ASP.NET Core ในปี 2024 link: /paths/aspnet-core @@ -26,5 +29,11 @@ features: - title: Java details: ขั้นตอนการเตรียมความพร้อมสู่การเป็นนักพัฒนา Java ในปี 2024 link: /paths/java + - title: Cloud Computing + details: ทำความเข้าใจว่า Cloud Computing คืออะไร + link: /paths/intro-to-cloud + - title: Azure + details: รวบรวมเนื้อหาที่เกี่ยวกับการใช้งาน Microsoft Cloud - Azure ในการพัฒนาระบบ + link: /paths/azure --- diff --git a/paths/azure/certification/000-index.md b/paths/azure/certification/000-index.md new file mode 100644 index 0000000..cbb5240 --- /dev/null +++ b/paths/azure/certification/000-index.md @@ -0,0 +1,74 @@ +--- +title: Azure Certifications Path +showMetadata: true +editable: true +--- + +# Microsoft Azure Certifications Path +ผมอยากขออธิบายแนวทางการสอบวัดระดับ Microsoft Azure Certifications เผื่อเป็นแนวทางสำหรับท่านที่ต้องการต่อยอดใบ Certificate ซึ่งมีด้วยกันอยู่ 4 ระดับครับ + +[ดูรายละเอียดเพิ่มเติมได้ที่นี้](https://www.microsoft.com/en-us/learning/browse-all-certifications.aspx) + +ระดับที่ 1 : Fundamentals +- Microsoft Certified: Azure Fundamentals (ศึกษาเพิ่มเติม [ที่นี้](../fundamental/000-index)) +- Microsoft Certified: Azure AI Fundamentals +- Microsoft Certified: Azure Data Fundamentals + +ระดับที่ 2 : Associate +- Microsoft Certified: Azure Database Administrator Associate +- Microsoft Certified: Azure Security Engineer Associate +- Microsoft Certified: Azure Administrator Associate +- Microsoft Certified: Azure AI Engineer Associate +- Microsoft Certified: Azure Data Engineer Associate +- Microsoft Certified: Azure Data Scientist Associate +- Microsoft Certified: Azure Developer Associate + +ระดับที่ 3 : Expert +- Microsoft Certified: DevOps Engineer Expert +- Microsoft Certified: Azure Solutions Architect Expert + +ระดับที่ 4: Specialty +- Microsoft Certified: Azure IoT Developer Specialty +- Microsoft Certified: Azure for SAP Workloads Specialty + +## Certification Path for Developer +ในหัวข้อนี้ผมอยากจะแนะนำ Path สำหรับการเรียนรู้และการสอบวัดผลเพื่อได้รับ Certificate โดยอิงจากตำแหน่ง Software Developer นะครับ + +### Exam AZ-900 -> Azure Fundamentals ★ + +เมื่อเราทำการสอบ AZ-900 ผ่านแล้ว เราจะได้รับ Certificate Azure Fundamentals + +![Azure Fundamental Path](images/azure-certificate-path-01.png) + +

+ภาพจาก k21academy +

+ +- ศึกษาข้อมูลการสอบเพิ่มเติมได้ที่ [docs.microsoft.com](https://docs.microsoft.com/en-us/learn/certifications/exams/az-900) + + +### Exam AZ-204 -> Azure Developer Associate ★★ +เมื่อเราทำการสอบ AZ-204 ผ่านแล้ว เราจะได้รับ Certificate Azure Developer Associate + +![Azure Developer Associate Path](images/azure-certificate-path-02.png) + +

+ภาพจาก k21academy + +

+ +- แนวทางการเตรียมตัวสอบ [AZ-204 รีวิว การเตรียมตัวสอบ](https://www.youtube.com/watch?v=bLhs9gXOank) + +- ศึกษาข้อมูลการสอบเพิ่มเติมได้ที่ [docs.microsoft.com](https://docs.microsoft.com/en-us/learn/certifications/exams/az-204) + +### Exam AZ-400 -> Azure DevOps Engineer Expert ★★★ +เมื่อเราทำการสอบ AZ-400 ผ่านแล้ว เราจะได้รับ Certificate Azure DevOps Engineer Expert + +![Azure DevOps Engineer Expert Path](images/azure-certificate-path-03.png) + +

+ภาพจาก k21academy + +

+ +- ศึกษาข้อมูลการสอบเพิ่มเติมได้ที่ [docs.microsoft.com](https://docs.microsoft.com/en-us/learn/certifications/exams/az-400) \ No newline at end of file diff --git a/paths/azure/certification/images/azure-certificate-path-01.png b/paths/azure/certification/images/azure-certificate-path-01.png new file mode 100644 index 0000000..855cfdf Binary files /dev/null and b/paths/azure/certification/images/azure-certificate-path-01.png differ diff --git a/paths/azure/certification/images/azure-certificate-path-02.png b/paths/azure/certification/images/azure-certificate-path-02.png new file mode 100644 index 0000000..6f58991 Binary files /dev/null and b/paths/azure/certification/images/azure-certificate-path-02.png differ diff --git a/paths/azure/certification/images/azure-certificate-path-03.png b/paths/azure/certification/images/azure-certificate-path-03.png new file mode 100644 index 0000000..65afa5a Binary files /dev/null and b/paths/azure/certification/images/azure-certificate-path-03.png differ diff --git a/paths/azure/fundamental/000-index.md b/paths/azure/fundamental/000-index.md new file mode 100644 index 0000000..2826235 --- /dev/null +++ b/paths/azure/fundamental/000-index.md @@ -0,0 +1,30 @@ +# **Microsoft Azure Fundamental** + +Microsoft Azure Fundamental เป็นองค์ความรู้เบื้องต้นในการทำความรู้จักกับ Cloud โดยอ้างอิงจากบริการบน Azure ซึ่งเป็นบริการ Cloud จากทาง Microsoft + +เนื้อหานั้นเหมาะสมกับการเริ่มต้นใช้ Cloud ทำให้เราสามารถนำความรู้ที่ได้นี้ไปต่อยอดกับ Cloud Provider เจ้าอื่นๆเช่น AWS หรือ GCP ครับ ไม่ได้จำกัดแค่การใช้งานบน Azure อย่างเดียว + +ตัวอย่างเช่น + +- เรียนรู้ Public Cloud, Private Cloud และ Hybrid Cloud มีความแตกต่างกันอย่างไร +- เรียนรู้ Cloud Service Model Iaas, PaaS และ SaaS มีความแตกต่างกันอย่างไร +- รวมไปถึงบริการของ Azure นั้นเราสามารถนำแนวทางการใช้ไปเปรียบเทียบกับ Cloud Provider เจ้าอื่นๆได้อีกด้วยครับ + +สำหรับประเภทของ Azure Certificate สามารถศึกษาได้ [ที่นี้](https://www.dotnetthailand.com/cloud-hosting/azure/azure-certificate-path) + +# **ในเนื้อหานั้นจะประกอบไปด้วย** + +- Cloud Concepts +- Azure Services +- Azure Workloads +- Security +- Privacy Pricing +- Support + +# **ผู้เรียนควรที่จะมาความรู้เบื้องต้นดังต่อไปนี้** + +- Networking +- Storage +- Compute +- Application Support +- Application Development \ No newline at end of file diff --git a/paths/azure/fundamental/001-cloud-concepts.md b/paths/azure/fundamental/001-cloud-concepts.md new file mode 100644 index 0000000..12c5942 --- /dev/null +++ b/paths/azure/fundamental/001-cloud-concepts.md @@ -0,0 +1,143 @@ +--- +title: Cloud Concepts +showMetadata: true +editable: true +order: 0 +--- + +# Cloud Concepts — Principles of cloud computing + +## Cloud Computing คืออะไร +คือบริการให้เช่าทรัพยากรบนคอมพิวเตอร์โดยที่เราจ่ายเงินค่าบริการเท่าที่ใช้ตามจริงเท่านั้น ตัวอย่างบริการก็เช่น +- Compute Power เช่น Linux Servers และ Web Applications +- Storage เช่น ไฟล์, ฐานข้อมูล +- Networking เช่น การเชื่อมต่ออย่างปลอดภัยระหว่าง Cloud Provider และผู้ใช้ +- Analytics เช่น Visualizing Telemetry และ Performance Data + +## Cloud Provider คืออะไร +คือผู้ให้บริการที่มีมาตรฐานทั้ง 5 คุณสมบัตินี้ครับ (Five characteristics of cloud computing) เช่น Microsoft, Amazon และ Google +- On-demand self-service +- Broad network access +- Multi-tenancy and resource pooling +- Rapid elasticity and scalability +- Measured service + +ศึกษารายละเอียดเพิ่มเติมได้ [ที่นี้](https://www.saladpuk.com/basic/cloud101) + +## ประโยชน์ของ Cloud Computing +- คุ้มค่าต่อการลงทุน (Cost-Effective) +- สามารถปรับขนาดได้ (Scalable) +- มีความยืดหยุ่นสูง (Elastic) +- เราดูแลเฉพาะพัฒนาระบบเพียงอย่างเดียว อย่างอื่นให้ Cloud - Provide ช่วยดูแลให้ (Current) +- น่าเชื่อถือ (Reliable) +- มีบริการครอบคลุมทั่วโลก (Global) +- มีความปลอดภัยสูง (Secure) + +## Cloud Computing Compliance +Azure จริงจังกับเรื่องการของบริการที่ตอบรับกับ Compliance ต่างๆในระดับสากล ตัวอย่างเช่น GDPR ในสหภาพยุโรป, HIPAA, ISO และยังรวมไปถึง PDPA ของประเทศไทยด้วยน่ะครับ + +ศึกษารายละเอียดเพิ่มเติมได้ที่ [ที่นี้](https://docs.microsoft.com/en-us/microsoft-365/compliance/offering-home?view=o365-worldwide) + +![](images/cloud-concepts-01.png) + +

+ตัวอย่าง Compliance Offerings ครับ +

+ +## Economies of Scale +เป็นจุดเด่นของ Cloud Computing ที่ช่วยลดต้นทุนแต่ได้ผลลัพธ์ที่มากขึ้นในการดำเนินกิจการ โดยจะมีแผนการลงทุนสองรูปแบบที่เกี่ยวข้องได้แก่ + +### Capital Expenditure (CapEx) +เป็นการลงทุนค่าใช้จ่ายโดยทั่วไปของ On-Premises Data Center ที่ต้องลงทุนล่วงหน้าไปกับ Physical Infrastructure ซึ่งจะมีค่าใช้จ่ายล่วงหน้าที่สูงมาก เพราะต้องลงทุนกับ Server, Storage, Network, Backup, Disaster Recovery, Data Center Infrastructure และยังต้องการผู้เชี่ยวชาญในการดูแลอีกด้วยครับ + +> ข้อดีของ CapEx คือทราบตัวเลขการลงทุนที่ชัดเจนว่าจะต้องจ่ายแค่ไหนและเมื่อไร เพราะสามารถวางแผนค่าใช้จ่ายได้ล่วงหน้าตั้งแต่เริ่มโครงการ หรือจะวางแผนตามรอบระยะเวลางบประมาณ + +### Operational Expenditure (OpEx) +เป็นการลงทุนค่าใช้จ่ายบน Cloud Computing ซึ่งเป็นการลงทุนกับสินค้าและบริการเท่าที่ได้ใช้งานและไม่มีค่าใช้จ่ายล่วงหน้าเหมือน CapEx + +ค่าบริการมีได้หลายรูปแบบ เช่น เรียกเก็บตามจำนวนผู้ใช้งาน, ตามระยะเวลาที่ใช้งาน CPU, RAM, IOPS หรือตามปริมาณพื้นที่จัดเก็บข้อมูล รวมไปถึงการคิดค่าบริการตามจำนวน bandwidth ที่ใช้ทั้งนี้ เช่น backup traffic และ data recovery traffic + +เราจำเป็นต้องหมั่นตรวจสอบการใช้บริการอยู่เสมอ เพื่อให้ทรัพยากรได้ถูกใช้งานอย่างเต็มที่ไม่สูญเปล่าเพื่อประหยัดต้นทุนให้ได้มากที่สุด + +> ข้อดีของ OpEx คือ ความสามารถในการปรับเปลี่ยนบริการให้สอดคล้องกับความต้องการที่เปลี่ยนแปลงทางธุรกิจที่มีความผันผวนได้เป็นอย่างดี สามารถทดลองใช้บริการบางอย่างเพื่อทดลองและสามารถยกเลิกได้เมื่อเสร็จสิ้น เพิ่มค่าใช้จ่ายเมื่อมีบริการที่ต้องการสูงขึ้น และลดได้เมื่อมีความต้องการที่ลดลง + +## Cloud Service Models +คือรูปแบบการให้บริการบน Cloud Computing โดยจะขอพูดถึงเฉพาะรูปแบบที่ได้รับความนิยม 3 ประเภทน่ะครับ คือ IaaS, PaaS และ SaaS + +![](images/cloud-concepts-02.png) + +

+ขอบคุณภาพจาก robertgreiner

+ +### On-Premise +เราจะต้องดูแลทุกอย่างเองทั้งหมด ทั้ง Hardware และ Software เช่น จะตั้งค่า Network ยังไง จะ Patch OS เมื่อไหร่ ติดตั้งโปรแกรมอะไรบ้าง ไฟดับ เน็ทหลุด harddisk เสีย ต่างๆ ซึ่งปัญหาพวกนี้เราต้องดูแลเองทั้งหมดเลย + +### Infrastructure as a Service (IaaS) +เป็นรูปแบบการให้บริการพื้นฐานบน Cloud Cumputing เหมาะสำหรับสถานะการณ์ที่เราอยากจะได้เครื่องเซิฟเวอร์ไปใช้งาน แต่ให้ Cloud Provider เป็นผู้ดูแล Physical Infrastructure โดยเราจะเน้นไปที่ความยืดหยุ่นในการใช้งานที่มากที่สุด เช่นเราสามารถจัดการได้ว่าจะ Patch OS เมื่อไหร่ จะติดตั้งโปรแกรม หรือลง Antivirus โดย + +เป็นรูปแบบที่ย้ายจาก On-Premises มาง่ายที่สุด (“Lift & Shift”) + +> ตัวอย่างบริการ: Container Service, Virtual Machines, Azure Storage Accounts + +### Platform as a Service (PaaS) +เป็นบริการมุ่งเน้นไปที่การอำนวยความสะดวกให้ผู้ใช้บริการสามารถสร้างแอปพลิเคชันได้อย่างรวดเร็ว โดยไม่ต้องกังวลกับ Infrastructure เพราะเราเน้นดูแค่ โปรแกรมและข้อมูลที่ใช้ ส่วนอื่นๆทาง Azure จะเป็นคนดูแลให้ครับ เช่น Windows เราก็ไม่ต้องคอย update หรือ จัดการกับความปลอดภัยต่างๆด้วยตัวเราเอง + +> ตัวอย่างบริการ: Azure App Service, Azure SQL Database, Azure Functions + +### Software as a Service (SaaS) +เป็นบริการที่มีไว้เพื่อเน้นให้ End Customer ใช้งานโปรแกรมที่อยู่บนคลาว์อย่างเดียวเท่านั้น ดังนั้นในระดับนี้เราจะไม่ต้องไปยุ่งอะไรกับการตั้งค่าเลย + +> ตัวอย่างบริการ: Dynamics 365, Outlook, Office 365 + +![](images/cloud-concepts-03.png) + +

+ภาพเปรียบเทียบความสามารถในการจัดการ IaaS, PaaS, SaaS จาก nigelfrank.com ซึ่งเราจะพบว่า IaaS สามารถควบคุมได้มากสุด (แต่ก็แลกมากด้วยเวลาในการดูแลรักษาที่เยอะกว่า) จนมาถึง SaaS ที่ควบคุมได้น้อยแต่ใช้งานได้เร็วครับ +

+ +![](images/cloud-concepts-04.png) + +ถ้าใครสนใจเนื้อหาประเภทของ Cloud Services ต่างๆ ผมขอแนะนำบทความจาก [สลัดผัก](https://www.saladpuk.com/cloud/azure101/service-types) น่ะครับ + +## Cloud Deployment Models + +### Public Cloud +เป็นรูปแบบบริการที่นิยมมากที่สุด เพราะลูกค้าไม่ต้องดูแล Hardware เอง ให้ Cloud Provider เป็นผู้ดูแลและปรับปรุงให้ระบบทันสมัยอยู่ตลอดเวลา เข้าถึงด้วย Internet ช่วยลดต้นทุนโดยการแชร์ทรัพยากรกับผู้ใช้บริการรายอื่นๆ ด้วย + +> ข้อดีของ Public Cloud คือ จ่ายค่าบริการตามการใช้งานจริง ไม่มี CapEx (ค่าใช้จ่ายล่วงหน้า), เราไม่ต้องรับภาระในการบำรุงรักษาหรืออัปเดตฮาร์ดแวร์ ทำให้ได้ ความสามารถในการปรับขนาดของบริการได้อย่างรวดเร็ว, ไม่จำเป็นต้องมีความรู้ในการติดตั้งและใช้งานมากนัก + +### Private Cloud +เราติดตั้ง Cloud Environment ลงใน Data-center ของเราเอง จัดการกำหนดสิทธิการเข้าถึงทรัพยากรเพื่อใช้ภายในองค์กรของเรา โดยเราต้องรับภาระเพิ่มเติมในการการจัดซื้อและบำรุงรักษา Hardware และ Software + +> ข้อดีของ Private Cloud คือ รองรับการทำงานในองกรณ์ได้เต็มที่, เชื่อมต่อด้วย Network ภายใน, ควบคุมจัดการทรัพยากรได้มาก, ทรัพยากรไม่ได้ถูกแบ่งกับบุคคลหรือองค์กรภายนอก + +### Hybrid Cloud +เป็นรูปแบบผสมระหว่าง Public และ Private Cloud เพื่อปรับใช้ทรัพยากรที่ตอบโจทย์ขององค์กร +เช่น ในกรณีที่เราไม่สามารถนำข้อมูลบางอย่างขึ้น Public Cloud ได้เนื่องด้วยข้อจำกัดด้านกฎหมาย เช่น เรามีข้อมูลทางการแพทย์ที่ไม่สามารถเปิดเผยต่อสาธารณะได้ทำให้เราจำต้องเก็บไว้ในฐานข้อมูลส่วนตัวเท่านั้น เราจึง Host Web Application บน Public Cloud แต่เชื่อมต่อมายัง Database ที่มีความปลอดภัยสูงที่อยู่ใน Private Cloud ของเรา + +> ข้อดีของ Hybrid Cloud คือ มีทางเลือกในการควบคุมต้นทุน (Economies of Scale) โดยเลือกใช้ Public Cloud ในกรณีที่ต้นทุนที่ต่ำกว่า หรือใช้ Private Cloud ในกรณีที่ Public Cloud มีต้นทุนที่สูงกว่า, รวมไปถึงการควบคุมด้าน Security, Compliance และ รองรับ Legacy Applications ขององค์กร + +![](images/cloud-concepts-05.png) + +## เนื้อหาเพิ่มเติมที่เกี่ยวข้องกับการสอบครับ +- [Digital Skill — Azure Fundamentals (ภาษาไทย)](https://course.digitalskill.org/courses/course-v1:Microsoft+AZ-LEARN-0+2019/about) +- [ExamTopics — AZ-900 Exam Actual Questions](https://www.examtopics.com/exams/microsoft/az-900/view/1/) +- [Facebook — Data TH.com — Data Science ชิลชิล (ภาษาไทย)](https://www.facebook.com/datasciencechill/posts/872166769835048/) +- [Github — Microsoft Certified Azure Fundamentals (ภาษาไทย)](https://github.com/Tizcom/AZ-900/blob/main/Microsoft%20Azure%20Fundamentals_Handout.pdf) +- [Medium — Azure AZ-900 Exam Preparation Guide: How to pass in 3 days](https://medium.com/weareservian/azure-az-900-exam-preparation-guide-how-to-pass-in-3-days-dabf5534507a) +- [Medium — วีธีลงทะเบียนสอบ AZ-900 Online ที่บ้านด้วย Azure Exam Voucher](https://medium.com/@ponggun/%E0%B8%A7%E0%B8%B5%E0%B8%98%E0%B8%B5%E0%B8%A5%E0%B8%87%E0%B8%97%E0%B8%B0%E0%B9%80%E0%B8%9A%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AA%E0%B8%AD%E0%B8%9A-az-900-online-%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-azure-exam-voucher-c0d027253d34) +- [Medium — AZ-900 รีวิวแนวข้อสอบและวิธีลงสอบที่ศูนย์สอบ](https://link.medium.com/bX2BY3vin8) +- [Medium — AZ-900 สรุปละเอียดสุดๆ](https://medium.com/@manita.swwp/virtual-academy-for-microsoft-azure-fundamental-in-thai-language-f5354c2f8634) +- [Microsoft Learn-Azure Fundamentals](https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals/) +- [Udemy — Microsoft Azure — Beginner’s Guide + AZ-900 (มีค่าใช้จ่าย)](https://www.udemy.com/course/microsoft-azure-beginners-guide) +- [WhizLabs — AZ-900 (มีค่าใช้จ่าย)](https://www.whizlabs.com/learn/course/microsoft-azure-az-900) +- [Workshop เล็กๆจาก Microsoft สำหรับ AZ-900 ครับผม](https://microsoftlearning.github.io/AZ-900T0x-MicrosoftAzureFundamentals/) + +## สรุป +เนื้อหาในบทความนี้เป็นการปูทางความรู้ในด้าน Cloud Computing ที่ช่วยให้เราเข้าใจรูปแบบและบริการของ Cloud มากยิ่งขึ้นน่ะครับ เพื่อช่วยให้ผู้อ่านที่กำลังสนใจจะสอบ Microsoft Certified: Azure Fundamentals (AZ-900) ได้เข้าใจเนื้อหาเพื่อเตรียมตัวในการสอบมาก + +ในบทถัดไปจะเป็นรายละเอียดที่เกี่ยวกับ Azure มากขึ้นน่ะครับ +- Introduction to Microsoft Azure +- Azure architecture and service guarantees +- Create an Azure account +- Manage services with the Azure portal diff --git a/paths/azure/fundamental/002-architecture-service-guarantees.md b/paths/azure/fundamental/002-architecture-service-guarantees.md new file mode 100644 index 0000000..df390d7 --- /dev/null +++ b/paths/azure/fundamental/002-architecture-service-guarantees.md @@ -0,0 +1,191 @@ +--- +title: Azure Account, Support Options, Architecture, Service Guarantees, Manage Services Tools +showMetadata: true +editable: true +order: 1 +--- + +# Azure Account, Support Options, Architecture, Service Guarantees, Manage Services Tools + +![](images/architecture-service-guarantees-01.png) + +

Image from + mwesterink

+ + ## Introduction to Microsoft Azure + + บริการทั้งหมดบน Azure จะทำงานอยู่บน Microsoft Data Center ที่ครอบคลุมพื้นที่ทั่วโลกจึงทำให้เรารองรับลูกค้าได้ทั้งในและต่างประเทศครับ + +เราสามารถเลือกบริการที่เป็นและไม่ได้เป็นของ Microsoft นะครับ เช่นการใช้งาน Windows หรือ Linux Server รวมไปถึงความยืดหยุ่นในการเพิ่มลดบริการที่ใช้ให้ตอบโจทย์กับปริมาณงานตามสถานะการครับ + +Azure มีบริการที่หลากหลายครอบคลุมที่ช่วยลดเวลาการพัฒนาระบบและค่าใช้จ่ายได้เยอะเลยครับ โดยก่อนที่เราจะเริ่มเลือกใช้บริการบน Azure เรามาเรียนรู้โครงสร้างการออกแบบ Data Center และการรับประกันในบริการต่างๆบน Azure กันครับ + +![](images/architecture-service-guarantees-02.png) + +## Azure Service Guarantees + +### Service-Level Agreements (SLAs) +เป็นการรับประกันการใช้บริการจาก Microsoft ให้ลูกค้าได้บริการที่มีคุณภาพในช่วงเวลาที่กำหนด เช่น ถ้าระบบล่มจะ Down นานขนาดไหนกว่าจะกลับมาใช้ได้อีกครั้ง + +ถ้าเกิดเหตุการที่บริการไม่สามารถใช้งานได้เกินกว่าที่กำหนดใน SLAs นั้น ทาง Microsoft จะทำการชดเชยให้กับเราครับ + +โดยแต่ล่ะ Service จะมี SLAs ที่ต่างกันน่ะครับซึ่งเป็นเรื่องสำคัญที่เราต้องคำนึงถึง SLAs มากๆเพื่อสามารถให้คำมั่นกับลูกค้าได้ถึงระยะเวลาที่ระบบสามารถดำเนินการ + +![](images/architecture-service-guarantees-03.png) + +

ตารางเปรียบเทียบ SLA กับ Downtime ในหน่วย สัปดาห์, เดือน และ ปี

+ +### Compose SLAs across Services +การนำ SLAs ในแต่ละบริการมาใช้ร่วมกันนั้นทำให้เกิดการคำนวนหา SLAs สุทธิ ซึ่งเราเรียกว่า Composite SLAs + +ตัวอย่างเช่น นำ SLAs 99.95% มาใช้ร่วมกันกับบริการ SLAs 99.99% จะได้ผลลัพธ์ดังนี้ + +> (SLAs 99.95%) x (SLAs 99.99%) = SLAs 99.94% + +![](images/architecture-service-guarantees-04.png) + +## Azure Architecture + +### Azure Region +เป็นการรวมกลุ่มของ Microsoft Data Center ในเขตพื้นที่ต่างๆเข้าด้วยกัน โดยเราสามารถเพิ่มประสิทธิภาพการเข้าถึงบริการได้ด้วยการเลือก Region ที่ใกล้กับลูกค้าที่สุด + +เราจำเป็นต้องศึกษาและคำนวนราคาก่อนเลือกใช้งานบริการใน Region นั้นเพราะราคาบริการในแต่ละ Region จะมีราคาที่ไม่เท่ากันน่ะครับ + +> ตอนนี้ Azure มี Region ทั้งหมด 60+ Regions ที่ครอบคลุมพื้นที่ 140 ประเทศทั่วโลกครับ + +![](images/architecture-service-guarantees-05.png) + +### Special Region +เป็น Regions พิเศษเพื่อเพื่อรองรับกับข้อกฏหมายและมาตราฐานสำหรับบางพื้นที่โดยเฉพาะ เราไม่สามารถเข้าไปใช้งาน Special Region เหล่านี้ได้ + +ตัวอย่างเช่น Region สำหรับรัฐบาลสหรัฐ (US DoD Central, US Gov Virginia, lowa) หรือ Region ใน เยอรมัน เช่น Germany Central/ Northeast/ West Central/ North + +บาง Region ไม่ได้ดูแลโดย Microsoft โดยตรง เช่น 21Vianet ที่ดูแลให้กับจีนโดยเฉพาะ (China East, North) + +### Geography +ย้อนกลับไปทบทวน Region กันก่อนน่ะครับ โดย Region คือกลุ่มของ Data Center + +ส่วน Geography คือกลุ่มของ Region ครับซึ่งมีจุดประสงค์เพื่อการรองรับข้อกำหนดต่างๆในพื้นที่แต่ล่ะเขต และยังรวมไปถึงในเรื่องของการทำ Fault Tolerant ในระดับ Region ครับ โดยเมื่อมี Region ใด Region นึงใช้งานไม่ได้ ก็จะยังสามารถใช้ Region ใน Geography เดียวกันได้ + +มีทั้งหมด 4 Geography ได้แก่ Americas, Europe, Asia Pacific, Middle East and Africa + +### Availability Sets +คือการจัดการบริการที่เราใช้ให้มี High Availability อยู่ภายใน Data Center เดียวกัน ซึ่งเน้นไปที่การป้องกัน Hardware Failure ครับ + +โดย Azure จะทำสำรองบริการให้เราบน Physical สำรองใน Data Center เดียวกัน ถ้า Physical นึงไม่สามารถใช้งานได้ ก็ยังสามารถใช้งาน Physical อื่นที่อยู่ใน Data Center เดียวกันได้ครับ ได้ SLA 99.95% ครับ + +สามารถใช้ได้กับบางบริการเท่านั้น เช่น Azure Virtual Machine + +### Availability Zone +คือการจัดการ Data Center ที่อยู่กันคนละสถานที่ แต่อยู่ภายใน Region เดียวกัน โดยมีจุดประสงค์เพื่อสร้าง High Availability ในระดับ Data Center โดยถ้า Data Center ใดไม่สามารถใช้งานได้ ก็ยังสามารถใช้งาน Data Center อื่นที่อยู่ใน Region เดียวกันได้ SLA 99.99% ครับ + +สามารถใช้ได้กับบางบริการเท่านั้น เช่น Azure Virtual Machine และมีบริการเฉพาะบาง Region เท่านั้น ได้แก่ Central US, East US 2, West US 2, West Europe, France Central, North Europe, Southeast Asia + +### Region Pair +Region ใน Geography เดียวกันที่มีระยะห่างจากกันอย่างน้อย 300 Miles จะมีการ Pair กันเพื่อการทำการสำรองการใช้งานในระดับ Region + +![](images/architecture-service-guarantees-06.png) + +

+Image from mwesterink

+ +![](images/architecture-service-guarantees-07.png) + + +## Reliability + +### Resiliency +คือความสามารถในการกู้คืนระบบให้กลับมาทำงานได้ดังเดิมเมื่อระบบเกิดปัญหาขึ้น โดยหลีกเลี่ยงทั้ง Downtime และ Data Loss + +Resiliency นั้นประกอบไปด้วยการทำ High Availability (เช่นการทำ Cluster ของ Web Server หลายๆเครื่อง ถ้าพังเครื่องนึงก็ยังมีเหลือเครื่องอื่น) และ Disaster Recovery (เช่นการ Backup และ Recovery จาก Site นึงไปอีก Site นึง) + +## Azure Account +เราจำเป็นต้องใช้ Microsoft Account ในการเปิดใช้งาน Azure นะครับ + +### Free Account +โดยในการใช้งานขั้นต้นเราสามารถเลือกสร้าง Free Account ได้จากลิ้งนี้นะครับ + +[ลิ้ง](https://azure.microsoft.com/en-us/free/) + +โดยเราจะได้รับเครดิต 200 USD สำหรับทดลองใช้ Azure ใน 30 แรกนะครับ หลังจากนั้นเราจะสามารถใช้บางบริการ Free ได้อีก 12 เดือน และบางบริการที่ Free ตลอดไปครับ + +Free Account จะถูกระงับสิทธิการเป็นสมาชิกเมื่อ Credit หมด หรือถึงระยะเวลาที่ +กำหนดน่ะครับ + +### Azure Subscription +คือพื้นที่ที่รวบรวมข้อมูลการใช้บริการบน Azure ซึ่งเราจะต้องจ่ายเมื่อถึงสิ้นเดือนครับ + +รูปแบบการคิดเงินของ Azure จะเป็นแบบ Pay as You Go นะครับ คือจ่ายเท่าที่เราใช้ตามจริง โดยเราสามารถซื้อ Subscription ได้จาก 3 ช่องทางคือ +- ผ่าน Azure Portal (จ่ายผ่านบัตรเครดิต, PostPaid) +- ตัวแทนของ Microsoft (Volumn License, PrePaid) +- Partner ของ Microsoft (PostPaid) + +เราวางแผนในการออกแบบ Subscription ได้หลายรูปแบบ เช่น แบ่งตามทีม, แบ่งตามองค์กร, แบ่งตามลูกค้า + +![](images/architecture-service-guarantees-08.png) + +

+Azure Subscription Image from cloudinfrastructureservices.co.uk +

+ +### Azure Support Option +แนะนำบางส่วนของบริการ Support ฟรีที่น่าสนใจครับ +- Azure Service Health ช่วยแจ้งเตือนเราในกรณีที่บริการของเราอยู่ใน Data Center ที่มี Maintenance Plan +- Azure Advisor ที่ปรึกษาส่วนตัวที่น่ารักมากครับ ทั้งแนะนำ Security ที่ควรติดตั้ง, ปรับแต่ง Service ให้มี Performance ที่ดีขึ้น และยังรวมไปถึงตรวจสอบการใช้งานเพื่อแนะนำการปรับลดให้เหมาะสมกับงาน โดยชี้แจงเป็นค่าใช้จ่ายที่ลดลงให้เราเห็นชัดๆเลยครับ + + +ส่วนในแบบเสียเงินจะมีอยู่ 3 บริการคือ Developer, Standard, Professional Direct ถ้าสนใจรายละเอียดเพิ่มเติมดูได้ที่ Link นี้นะครับ + +[ลิ้ง](https://azure.microsoft.com/en-us/support/plans/) + +## Manage Services Tools +เราสามารถจัดการกับบริการบน Azure ได้หลายช่องทางไม่ว่าจะเป็น Web Application, Mobile Application และ Command Line น่ะครับ + +### Azure Portal +เป็น Web UI ที่นิยมใช้งานกันมากครับ + +![](images/architecture-service-guarantees-09.png) + +### Azure Powershell and Azure Command-Line Interface +เป็นการใช้งานแบบ Command-Line รันที่เครื่องของเรา + +![](images/architecture-service-guarantees-10.png) + +### Azure Cloud Shell +เป็นการใช้งาน Command-Line แบบรันบน Web UI + +![](images/architecture-service-guarantees-11.jpg) +

+Azure Cloud Shell Image from thomasmaurer.ch +

+ + +### Azure Mobile App + +![](images/architecture-service-guarantees-12.png) +

+Azure Mobile App Image from azure.microsoft.com +

+ +## เนื้อหาเพิ่มเติมที่เกี่ยวข้องกับการสอบครับ +- [Digital Skill — Azure Fundamentals (ภาษาไทย)](https://course.digitalskill.org/courses/course-v1:Microsoft+AZ-LEARN-0+2019/about) +- [ExamTopics — AZ-900 Exam Actual Questions](https://www.examtopics.com/exams/microsoft/az-900/view/1/) +- [Facebook — Data TH.com — Data Science ชิลชิล (ภาษาไทย)](https://www.facebook.com/datasciencechill/posts/872166769835048/) +- [Github — Microsoft Certified Azure Fundamentals (ภาษาไทย)](https://github.com/Tizcom/AZ-900/blob/main/Microsoft%20Azure%20Fundamentals_Handout.pdf) +- [Medium — Azure AZ-900 Exam Preparation Guide: How to pass in 3 days](https://medium.com/weareservian/azure-az-900-exam-preparation-guide-how-to-pass-in-3-days-dabf5534507a) +- [Medium — วีธีลงทะเบียนสอบ AZ-900 Online ที่บ้านด้วย Azure Exam Voucher](https://medium.com/@ponggun/%E0%B8%A7%E0%B8%B5%E0%B8%98%E0%B8%B5%E0%B8%A5%E0%B8%87%E0%B8%97%E0%B8%B0%E0%B9%80%E0%B8%9A%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AA%E0%B8%AD%E0%B8%9A-az-900-online-%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-azure-exam-voucher-c0d027253d34) +- [Medium — AZ-900 รีวิวแนวข้อสอบและวิธีลงสอบที่ศูนย์สอบ](https://link.medium.com/bX2BY3vin8) +- [Medium — AZ-900 สรุปละเอียดสุดๆ](https://medium.com/@manita.swwp/virtual-academy-for-microsoft-azure-fundamental-in-thai-language-f5354c2f8634) +- [Microsoft Learn-Azure Fundamentals](https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals/) +- [Udemy — Microsoft Azure — Beginner’s Guide + AZ-900 (มีค่าใช้จ่าย)](https://www.udemy.com/course/microsoft-azure-beginners-guide) +- [WhizLabs — AZ-900 (มีค่าใช้จ่าย)](https://www.whizlabs.com/learn/course/microsoft-azure-az-900) +- [Workshop เล็กๆจาก Microsoft สำหรับ AZ-900 ครับผม](https://microsoftlearning.github.io/AZ-900T0x-MicrosoftAzureFundamentals/) + +## สรุป + +ในบทความนี้เราได้เรียนรู้คุณภาพในบริการของ Azure ผ่านเนื้อหา Region, Geography, Availability Option, Free Account, Subscription, Support Option, Manage Services Tools + +โดยมีสิ่งที่เราต้องพิจารณาก่อนที่จะตัดสินใจเลือกใช้บริการดังนี้น่ะครับ +- เรื่องของ SLA เพื่อให้เราทราบว่าระยะเวลาที่ระบบเราทำงานได้ตามปรกติ +- เรื่องของตำแหน่งของบริการที่ตอบโจทย์ต่อ ความเร็วในการเข้าถึง, ความปลอดภัยและข้อระเบียบต่างๆของลูกค้า +- เรื่องของราคาของบริการต่างๆครับ \ No newline at end of file diff --git a/paths/azure/fundamental/003-core-cloud-services.md b/paths/azure/fundamental/003-core-cloud-services.md new file mode 100644 index 0000000..603cb5a --- /dev/null +++ b/paths/azure/fundamental/003-core-cloud-services.md @@ -0,0 +1,390 @@ +--- +title: Core Cloud Services (Compute Options, Data Storage Options, Networking Options) +showMetadata: true +editable: true +order: 2 +--- + +# Core Cloud Services (Compute Options, Data Storage Options, Networking Options) + +ในบทความนี้จะพาทำความเข้าใจในบริการหลักๆบน Azure ให้มีความคุ้นเคยกันมากขึ้นน่ะครับ เพราะว่าก่อนที่เราจะใช้บริการไหน เราควรทำความเข้าใจแนวคิดของบริการนั้นก่อนว่าทำมาเพื่อตอบโจทย์อะไร หลังจากนั้นเราจะพิจารณาถึงค่าใช้จ่ายเพื่อให้ทราบต้นทุนเบื้องต้นก่อนเลือกใช้บริการ + +![](images/core-cloud-services-01.png) + + +## Compute Options +Azure Compute คือทรัพยากรสำหรับการประมวลผลที่เราสามารถเลือกใช้งานได้ตามความต้องการ เช่นเรื่องของ CPUs บน VM, รัน Code โดยไม่ต้องเตรียม Infrastructure ด้วย Serverless Computing + +ตัวอย่างบริการได้แก่ Virtual Machines, Containers, Azure App Service, Serverless Computing + +![](images/core-cloud-services-02.png) + +

Flowchart สำหรับการเลือกใช้ Azure Compute Options จาก + docs.microsoft.com

+ + ส่วนตัวประทับใจ Flowchart ในการเลือกใช้บริการ Computation บน Azure มากๆเลยครับ ที่รองรับได้หลากหลาย Platform มากขึ้น เช่น Spring, Openshift + +- ถ้าต้องการ Managed Service ต่างๆเช่น Monitoring, Backup, ก็สามารถเลือกใช้ Azure Spring Cloud, Azure Red Hat Openshift + +- ถ้าไม่ต้องการ Managed Service ก็เลือกสร้าง VM แล้วจัดการทุกอย่างเองก็ได้ ยืดหยุ่นในการขึ้น Cloud มากๆเลยครับ + +### Virtual Machines +เป็นบริการแบบ IaaS ที่อยู่คู่กับ Azure มานานที่ช่วยให้เราสามารถสร้าง Virtual Machine โดยเบื้องหลังจะมีการทำงานอยู่บน Hyper-V + +เราสามารถเลือกขนาดความแรงของเครื่องที่เราต้องการและยังรวมไปถึง OS ต่างๆ ทั้ง Windows และ Linux + +ซึ่งราคาก็จะคิดตามขนาดและ License ของ Software ที่เลือกน่ะครับ เช่น ถ้าผมเลือก VM ที่ติดตั้ง MSSQL Standard Edition เราก็จะต้องเสียค่า License ของ MSSQL Standard ด้วยน่ะครับ + +ผมมีบทความที่เคยทำสรุปไว้เกี่ยวกับการใช้ VMs ในงานต่างๆน่ะครับเผื่อท่านใดสนใจครับผม + +- [ติดตั้ง Microsoft SQL Server 2017 Express และ Windows Server 2019 บน Azure Virtual Machine](https://medium.com/@ponggun/%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87-microsoft-sql-server-2017-express-%E0%B9%81%E0%B8%A5%E0%B8%B0-windows-server-2019-%E0%B8%9A%E0%B8%99-azure-virtual-machine-d3bc79062a09) +- [สร้าง Azure VM — Ubuntu ด้วย Free Credit จาก ม.ขอนแก่น (ไม่ต้องใช้บัตรเครดิต)](https://medium.com/@ponggun/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-azure-vm-ubuntu-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-free-credit-%E0%B8%88%E0%B8%B2%E0%B8%81-%E0%B8%A1-%E0%B8%82%E0%B8%AD%E0%B8%99%E0%B9%81%E0%B8%81%E0%B9%88%E0%B8%99-%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B8%95%E0%B9%89%E0%B8%AD%E0%B8%87%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%9A%E0%B8%B1%E0%B8%95%E0%B8%A3%E0%B9%80%E0%B8%84%E0%B8%A3%E0%B8%94%E0%B8%B4%E0%B8%95-c6dd53843d04) +- [Clone Azure VM — Windows Srver 2016 แบบรวดเร็ว](https://medium.com/@ponggun/clone-azure-vm-windows-srver-2016-%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B8%A3%E0%B8%A7%E0%B8%94%E0%B9%80%E0%B8%A3%E0%B9%87%E0%B8%A7-5c342f54f2d6) +- [[บันทึกการใช้งาน] Azure DevTest Labs](https://medium.com/@ponggun/%E0%B8%9A%E0%B8%B1%E0%B8%99%E0%B8%97%E0%B8%B6%E0%B8%81%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-azure-devtest-labs-2b2603586568) + +### Availability Sets +คือบริการที่ช่วยทำให้เราได้ระบบที่มี High Availability สำหรับปัญหาที่อาจจะเกิดขึ้นได้ใน Data Center เช่น Hardware พัง โดยระบบจะทำการสำรอง VMs ของเราไว้ในตู้ Rack ที่แตกต่างกัน แต่อยู่ใน Data Center เดียววันครับ + +ถ้า VMs ตัวนึงพัง เราก็จะยังสามารถใช้ตัวสำรองต่อได้ครับ เราจะได้ SLA 99.95% จากบริการนี้ (ต้องเลือก Harddisk เป็น SSD ด้วยน่ะครับ ถ้า Harddisk ทั่วไปจะไม่ได้ SLA) + +![](images/core-cloud-services-03.png) + +### Virtual Machine Scale Sets +คือบริการที่ช่วยให้เราสามารถเพิ่มประสิทธิภาพในการใช้งาน VMs โดยการเพิ่มจำนวนของ VMs ที่เหมือนกันขึ้นมาและกระจายการทำงานไปยัง VMs หลายๆเครื่องแทนที่จะทำแค่เครื่องเดียว + +โดยข้อควรระวัง คือ การจัดการกับ Disk น่ะครับ เพราะการเพิ่มจำนวนเครื่อง ไม่ได้เป็นการ Sync ให้ข้อมูลใน Disk ของแต่ล่ะ VMs ให้มีจำนวนที่เท่ากันอยู่ตลอดเวลา + +กล่าวคือ ณ ตอนแรกที่เริ่มสร้างเครื่องที่ 2 นั้น จะได้ทุกอย่างเหมือนเครื่องแรกเลยครับ แต่หลังจากนั้นก็จะทำงานแยกกัน เพราะงั้นจึงไม่เหมาะกับการใช้ ScaleOut Database น่ะครับ เหมาะกับการใช้ ScaleOut Web App มากกว่าครับ (แบบ Stateless) + +![](images/core-cloud-services-04.png) + +

Virtual Machine Scale Sets จาก + cloudmonix.com

+ + +### Azure App Service +คือบริการแบบ PaaS ที่ช่วยให้เราสามารถนำ Code หรือ Container ของเราไปรันเป็น Web App, RESTful API, Background Jobs ของเราได้โดยที่ไม่ต้องกังวลในเรื่องของ Infrastructure เลย และยังมาพร้อมกับคุณสมบัติในเรื่องของ High Availability และ Auto ScaleOut อีกด้วยครับ การทำ CI/CD ก็ทำได้สะดวกมากเพราะมีวิธีที่รองรับหลากหลายรูปแบบ + +รวมไปถึงยังมี Runtime ที่เตรียมมาให้พร้อมใช้งานในหลายภาษา เช่น Python, Node.js, PHP, ASP.Net/ASP.Net Core, Java เราแค่นำ Code ในภาษาเหล่านี้มาติดตั้งที่ App Service ก็พร้อมทำงานเลยครับ + +ผมมีบทความที่เคยทำสรุปไว้เกี่ยวกับการใช้ App Service เบื้องต้นไว้ เผื่อท่านใดสนใจน่ะครับ +- [สร้าง Azure App Service ฟรี ใน 10 นาที](https://medium.com/@ponggun/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-azure-app-service-%E0%B8%9F%E0%B8%A3%E0%B8%B5-%E0%B9%83%E0%B8%99-10-%E0%B8%99%E0%B8%B2%E0%B8%97%E0%B8%B5-e3a5c25ef749) +- [แชร์ Mock-up ให้กับทีมแบบไม่มีค่าใช้จ่ายด้วย Pencil + Azure](https://medium.com/@ponggun/%E0%B9%81%E0%B8%8A%E0%B8%A3%E0%B9%8C-mock-up-%E0%B9%83%E0%B8%AB%E0%B9%89%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%97%E0%B8%B5%E0%B8%A1%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B8%A1%E0%B8%B5%E0%B8%84%E0%B9%88%E0%B8%B2%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%88%E0%B9%88%E0%B8%B2%E0%B8%A2%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-pencil-azure-2142ee7d85f8) +- [สาธิตการติดตั้ง Azure — PaaS สำหรับ การ Migrate ASP.Net Core 2 และ Entity Framework Core](https://medium.com/@ponggun/%E0%B8%AA%E0%B8%B2%E0%B8%98%E0%B8%B4%E0%B8%95%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87-azure-paas-%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A-%E0%B8%81%E0%B8%B2%E0%B8%A3-migrate-asp-net-core-2-%E0%B9%81%E0%B8%A5%E0%B8%B0-entity-framework-core-6196eaeaefec) + +### Azure App Service Plan +เป็นบริการที่เสมือนกับให้เราเลือก Web Server เพื่อนำมาการประมวลผล App Service ที่ต้องการ + +โดยเราจะต้องเลือกว่าจะเลือก Plan บน OS ไหน (Windows, Linux) เพราะจะมีผลกับทั้งราคาและบริการเสริมที่แตกต่างกัน + +เรายังสามารถเลือกขนาดของ Web Server เพื่อให้ตอบโจทย์ต่อการทำงานเช่น Development/Test เราอาจจะเลือก Plan ที่มีไม่แรงมาก ซึ่งก็จะมีค่าใช้จ่ายที่ถูกกว่าหรือเลือกขนาดที่ใหญ่ขึ้นเพื่อใช้เป็น Production ต่อไป + +![](images/core-cloud-services-05.png) + +### Containers +ตัว Container นั้นเป็น Technology ที่ช่วยในการจัดการ Environment ในคอมพิวเตอร์หลายๆเครื่องให้เหมือนกันและทำงานได้ผลลัพธ์ในแบบเดียวกันครับ + +โดยจะทำการรวม Code, Runtime, System Tools/Libraries/Settings ที่เกี่ยวข้องเข้าด้วยกัน (เราเรียกว่า Container Image) และนำ Container Image ไปทำงานบนคอมพิวเตอร์เครื่องอื่นๆที่ติดตั้ง Container Technology ครับ + +เมื่อ Container Image ถูกนำมารันที่เครื่องจะกลายเป็น Container น่ะครับ + +โดย Docker ได้รับความนิยมมากที่สุดในตอนนี้ + +![](images/core-cloud-services-06.png) + +

Docker Container from + dotnet-architecture

+ +### Azure Container Instance (ACI) +เป็นบริการที่ทำให้เราสามารถนำ Container Image มาทำงานได้อย่างรวดเร็ว ไม่จำเป็นต้องตั้งค่าอะไรเพิ่มมากนัก + +โดยค่าใช้จ่ายจะคิดตามปริมาณการใช้งานจริง เช่นเราเปิดระบบไว้ 30 วัน แต่มีคนใช้งาน Web เราแค่ 1 วัน เราก็เสียค่าใช้จ่ายแค่ 1 วันน่ะครับ + +![](images/core-cloud-services-07.png) + +

Azure Container Instance (ACI) จาก + dotnet-architecture

+ +### Azure App Service for Containers +เป็นบริการที่คล้ายกับ Azure Container Instance (ACI) แต่จะต่างกันตรงที่การจัดการจะเป็นในมุมของการใช้ Web App Service เช่นถ้าอยาก Scaleup ก็ต้องไปเพิ่ม Size ของ App Service Plan + +ในเรื่องของค่าใช้จ่ายก็จะแตกต่างจาก Azure Container Instance (ACI) เพราะว่า ใช้รูปแบบ Azure App Service Plan ที่จะเหมาจ่ายรายเดือนตาม Plan ที่เราเลือกครับ ถึงลูกค้าจะใช้งานหรือไม่ได้ใช้งาน Web เราก็จะมีรายจ่ายคงที่ตามเดิมน่ะครับ + +![](images/core-cloud-services-08.png) + +

Azure Web App Service for Containers จาก + dotnet-architecture

+ +### Azure Kubernetes Service (AKS) +เป็นบริการที่ช่วยให้เราจัดการกับการ ScaleOut Container Images ให้มีหลายๆ Instances ได้อย่างสะดวก (เราเรียก Technology นี้ว่า Container Orchestration) ด้วย Kubernetes (K8s) ที่รันอยู่บน Azure ครับ + +![](images/core-cloud-services-09.png) + +

Azure Kubernetes Service (AKS) จาก + ilikesqldata.com

+ +### Serverless Computing +จะเป็นบริการที่เราสนใจเฉพาะการพัฒนา Code ที่จะนำมารันเท่านั้น ในส่วนของ Infrastructure นั้น Azure จะดูแลให้ + +โดยมีส่วนที่ต่างจาก App Service คือเราจะไม่สามารถปรับแต่งอะไรได้มากนัก เพราะทาง Azure จะทำให้อัตโนมัติ เช่นเรื่องของ Scaling + +และการคิดเงินจะคิดตามปริมาณการใช้งานจริง ซึ่งจะแตกต่างจาก App Service ที่คิดเหมาจ่ายตาม Package รายเดือน (App Service Plan) เพราะงั้นถ้าระบบมีผู้ใช้งานน้อยค่าใช้จ่ายก็จะถูกลงมากครับ + +#### Azure Function +เป็น Serverless Computing ในรูปแบบ Code-Based ที่รองรับหลายๆภาษาน่ะครับ โดยการทำงานจะขึ้นอยู่กับ Event ที่เราเลือกไว้ + +![](images/core-cloud-services-10.png) + +

Azure Function จาก + odetocode.com

+ +#### Azure Logic App +เป็น Serverless Computing ในรูปแบบ Web-Based Designer ที่เราสามารถเลือกขั้นตอนการทำงานได้ในรูปแบบ Worflow ได้โดยที่เราไม่ต้องเขียน Code นะครับ + +ตัวอย่างการใช้งานเช่น เขียนเงื่อนไขให้ส่ง Email ทุกครั้งที่มี Twitter จาก Microsoft + +![](images/core-cloud-services-11.png) + +

Azure Logic App จาก + docs.microsoft.com

+ +## Data Storage Options +เป็นบริการที่เกี่ยวกับการจัดเก็บข้อมูลที่มาพร้อมกับกับบริการเสริมที่ช่วยให้เราจัดเก็บข้อมูลได้อย่างมีประสิทธิภาพ + +ตัวอย่างเช่น +- การเข้ารหัสข้อมูล (Encryption) +- การสำรองข้อมูล (Backup) +- การสำรองข้อมูลไปยัง Data Center อื่นเพื่อ High Availability(Replication) +- รองรับข้อมูลหลายรูปแบบ เช่น Text/Imag/Vdeo File, SQL, NoSQL +- รองรับการใช้งาน Disk ทั้งก้อน (Virtual Disk) +- ควบคุมค่าใช้จ่ายได้ด้วยการกำหนดการเข้าถึงข้อมูล (Storage Tiers) เช่น ถ้าเป็นข้อมูลที่เข้าถึงบ่อยๆ เราควรเป็นเป็น Hot Tier ที่จะใช้เวลาในการอ่านข้อมูลได้เร็ว, แต่ถ้าข้อมูลที่เอาไว้เก็บรักษาแต่ไม่ค่อยได้เข้าถึงเราควรเลือกแบบ Cool Tier ซึ่งจะมีราคาที่ถูกกว่า แต่จะใช้เวลาในการอ่านข้อมูลนานกว่า + +### Type of Data + +![](images/core-cloud-services-12.png) + +

Type of Data จาก + researchgate.net

+ +#### Structured Data +เป็นข้อมูลในรูปแบบที่มีโครงสร้าง (Schema) ทำให้ข้อมูลที่จัดเก็บจะมีจำนวน Fields, Properties ที่เท่ากัน + +ตัวอย่างเช่นการเก็บข้อมูลในฐานข้อมูล แบบ Relational Database เช่น Microsoft SQL Server, MySql, PostgreSQL + +ข้อดีคือทำการสืบค้นข้อมูลได้ง่าย แต่ก็แลกมาด้วยโครงสร้างการจัดเก็บข้อมูลที่ซับซ้อน + +#### Semi-structured Data +จะเป็นโครงสร้างในรูปแบบลำดับขั้น (Hierarchy) ที่ไม่ได้มีโครงสร้างที่ชัดเจนแบบ Table, Row เหมือน Structured Data + +ใช้ tags หรือ keys ในการจัดการข้อมูล ตัวอย่างเช่น NoSQL เช่น Redis, Cassandra, MongoDB, Elasticsearch + +ข้อดีคือมีความยืดหยุ่นในการปรับเปลี่ยนการจัดเก็บข้อมูล, ทำ Cluster ได้ง่าย แต่ก็แลกมาด้วยการสืบค้นข้อมูลที่ซับซ้อนขึ้น + +#### Unstructured Data +คือข้อมูลที่ไม่มีโครงสร้างทำให้ไม่มีข้อจำกัดในการจัดเก็บข้อมูล ตัวอย่างเช่น Text/PDF/Document/Image/Video File + +![](images/core-cloud-services-13.png) + +

Type of Data จาก + edureka.co

+ +### Azure SQL Database +คือบริการแบบ PaaS ที่ช่วยจัดเก็บข้อมูล Structured Data ด้วย Microsoft SQL Server Database (ขอเรียกย่อๆว่า MSSQL น่ะครับ) + +โดยมีบริการเสริมที่ช่วยให้เราดูแลข้อมูลได้อย่างมีประสิทธิภาพ เช่น การเพิ่มลดขนาดในการประมวลผลของ Database Server, การทำ Failover Cluster, การสำรองและกู้คืนข้อมูล (Backup & Recovery) + +ที่เทพมากๆคือ Azure มี AI ที่ช่วยตรวจสอบการทำงานของฐานข้อมูลเราและให้คำแนะนำเพิ่มเติมครับ เช่นเราควรจะเพิ่ม Index ให้ Field นี้เป็นต้น + +ถ้าลูกค้าที่ใช้ MSSQL อยู่แล้วสามารถที่จะนำฐานข้อมูลขึ้นมาใช้บน Azure SQL Database ได้สะดวกมากครับ แต่จะติดข้อจำกัดบางอย่างที่ทำให้ไม่สามารถเอาขึ้นได้ เช่นข้อจำกัดในการ Join ข้อมูลข้าม Database, การใช้ Link Server และอาจจะต้องพิจารณาบริการอื่นแทนเช่น MSSQL on VM, SQL Managed Instance + +ผมมีสรุปบทความตัวอย่างการใช้งาน SQL Database เบื้องต้นกับงานจริงครับ เผื่อเป็นประโยชน์น่ะครับ + +- [สาธิตการติดตั้ง Azure — PaaS สำหรับ การ Migrate ASP.Net Core 2 และ Entity Framework Core](https://medium.com/@ponggun/%E0%B8%AA%E0%B8%B2%E0%B8%98%E0%B8%B4%E0%B8%95%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87-azure-paas-%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A-%E0%B8%81%E0%B8%B2%E0%B8%A3-migrate-asp-net-core-2-%E0%B9%81%E0%B8%A5%E0%B8%B0-entity-framework-core-6196eaeaefec) +- [ตรวจสอบ Query บน Azure Database ด้วย SQL Server Profiler for Azure Data Studio](https://medium.com/@ponggun/%E0%B8%95%E0%B8%A3%E0%B8%A7%E0%B8%88%E0%B8%AA%E0%B8%AD%E0%B8%9A-query-%E0%B8%9A%E0%B8%99-azure-database-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-sql-server-profiler-for-azure-data-studio-873cd1234268) +- [ติดตั้ง Microsoft SQL Server 2017 Express และ Windows Server 2019 บน Azure Virtual Machine](https://medium.com/@ponggun/%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87-microsoft-sql-server-2017-express-%E0%B9%81%E0%B8%A5%E0%B8%B0-windows-server-2019-%E0%B8%9A%E0%B8%99-azure-virtual-machine-d3bc79062a09) + + +### Azure Cosmos DB +คือบริการจัดเก็บข้อมูลแบบ Semi-structured Data โดยมีความสามารถพิเศษคือเป็น Distributed Database ที่กระจายการทำงานไปยังหลายๆ Database ซึ่งทำให้ได้ High Availability เหมาะสำหรับการจัดการข้อมูลแบบ Real-Time มากครับ + +### Azure Data Lake Storage (ADLS) +บริการจัดเก็บและวิเคราะห์ข้อมูลในระดับ Big Data โดยเฉพาะครับ + +![](images/core-cloud-services-14.png) + +### Azure Storage +คือบริการสำหรับเก็บข้อมูลต่างๆ เช่น ไฟล์รูปภาพ, ไฟล์วีดีโอ, SMB file share ซึ่งจะถูกแบ่งออกเป็น 4 ประเภท คือ BLOB, File Share, Table, Queue + +![](images/core-cloud-services-15.png) + +

Azure Storage Account จาก + abouconde.com

+ +#### Azure Blob Storage +บริการจัดเก็บ Unstructured Data ตัวอย่างเช่น Text / PDF / Document / Image / Video File + +![](images/core-cloud-services-16.png) + +

Azure Blob Storage จาก + blogit.create.pt

+ + ความเทพคือทำ Video Streaming ได้ด้วยน่ะครับเพื่อตอบโจทย์การทำงานแบบ Video-On-Demand Solution + + ![](images/core-cloud-services-17.png) + +

ตัวอย่างการนำ Azure Blob Storage ไปพัฒนาระบบ Video-On-Demand จาก + docs.microsoft.com

+ +#### Azure File Storage +บริการแบบ PaaS ที่รองรับการ Share File บน Protocal Server Message Block (SMB) ที่ช่วยให้เราเข้าถึง file ได้ผ่านการ Mount Share Drive บน Winidows, Linux, MacOS ครับผม + +รองรับการ Encryption ทั้งแบบ At Rest (ข้อมูลที่ถูกจัดเก็บอยู่ใน Storage) และแบบ In Transit (รับส่งข้อมลู) ด้วยครับ + + ![](images/core-cloud-services-18.png) + +

Azure File จาก + medium.com/@patiwat

+ +#### Azure Table Storage +เป็นบริการจัดเก็บข้อมูลแบบ Semi-Structured โดยจะจัดเก็บในรูปแบบของ NoSQL แบบ Key-Value (เก็บข้อมูลเป็น Key คู่กับข้อมูลที่เราต้องการจะเก็บนะครับ) + +![](images/core-cloud-services-19.png) + +

Azure Table Storage จาก + medium.com/@patiwat

+ +#### Azure Queue Storage +บริการ Message Queue เพื่อช่วยในการทำงานที่ต้องรองรับการรับส่งข้อมูลจำนวนมาก โดยเปลี่ยนมาเป็นการทำงานแบบ Asynchronous โดยจะเอางานที่เข้ามาใหม่จัดเก็บลงใน Queue หลังจากนั้นจะมีขั้นตอนในการดึงงานจากใน Queue เพื่อมาประมวลผลต่อ + +![](images/core-cloud-services-20.png) + +

Azure Queue Storage จาก + docs.microsoft.com

+ +เหมาะกับงานที่ไม่ได้ต้องการทันทีทันใด และไม่ได้การเรียงลำดับในการทำงาน เช่น การสร้าง Thumbnails หลังจากที่ User Upload ภาพ + +![](images/core-cloud-services-21.png) + +

Message Queue จาก + medium.com/@patiwat

+ +### Azure Disk Storage +หรือจะเรียกว่า “Azure Managed Disks” ก็ได้ครับ เป็น Virtual Disk ที่เราจะนำไปใช้ใน VMs โดยตรงเพื่อความสะดวกในการจัดการกับ Disk ครับ + +ตัวอย่างเช่น OS Disk, Data Disk + +![](images/core-cloud-services-22.png) + +#### Storage Tiers +เป็นชนิดของการความเร็วในการเข้าถึงข้อมูลและราคาที่ใช้จัดเก็บ +- **Hot Storage Tier** เหมาะสำหรับข้อมูลที่เข้าถึงบ่อยๆ ราคาพื้นที่จับเก็บ Storage แพงสุด แต่ราคาในการเข้าถึงข้อมูลถูกสุด ความเร็วในการเข้าถึงข้อมูลไวที่สุด +- **Cool Storage Tier** เหมาะสำหรับข้อมูลที่นานๆเข้าถึงที และเก็บไว้อย่างน้อย 30 วัน ราคาพื้นที่จับเก็บ Storage, ราคาในการเข้าถึงข้อมูล, ความเร็วในการเข้าถึงข้อมูล อยู่ระดับกลางๆ +- **Archive Storage Tier** เหมาะสำหรับข้อมูลที่แทบจะไม่เข้าถึง และเก็บไว้อย่างน้อย 180วัน ราคาพื้นที่จับเก็บ Storage ถูกสุด แต่ราคาในการเข้าถึงข้อมูลแพงสุด ความเร็วในการเข้าถึงข้อมูลช้าที่สุด + +![](images/core-cloud-services-23.png) + +

ตารางเปรียบเทียบค่าใช้จ่ายใน Tier ทั้ง 3 จาก + docs.microsoft.com

+ + +## Networking Options +Azure จัดเตรียมบริการที่ช่วยให้เราจัดการ Network ทั้งแบบ On Premise และ Cloud ให้ทำงานร่วมกันได้อย่างปลอดภัยและมีประสิทธิภาพครับ เรามาศึกษาบริการที่มีกันครับ : ) + +![](images/core-cloud-services-24.png) + +

Decision Tree สำหรับการเลือกใช้ Azure Networking Options จาก + docs.microsoft.com

+ + +### Azure Virtual Network +บริการฟรีในการจัดการ Network เสมือนให้กับบริการบน Azure เชื่อมต่อกันได้อย่างปลอดภัยครับ + +เช่นเมื่อเราสร้าง VMs เราก็จำเป็นต้องสร้าง Virtual Network ขึ้นมาเสมอ และยังสามารถทำ VPN Site-to-Site เพื่อเชื่อม Network ของ On-Premise และ Azure เข้าด้วยกัน + +เราจำเป็นต้องกำหนด Subnets ให้กับ Virtual Network ด้วย ซึ่งทาง Azure จะกำหนดเป็นแบบ DHCP เพื่อแจก IP ให้โดยอัตโนมัติ + +### Network Security Group (NSG) +เป็น Firewall ที่มาพร้อมกับ Virtual Machine ที่เราสร้าง เพื่อจัดการสิทธิในการเปิดปิด Port ถ้าเป็น Windows จะเปิด RDP Port 3389, ถ้าเป็น Linux จะเปิด SSH Port 22 ให้โดยอัตโนมัติ + +![](images/core-cloud-services-25.png) + +

Virtual Network, Subnet, Network Security Group จาก + brianlinkletter.com

+ +### Load Balancing in Azure +Load Balancing คือบริการที่ช่วยรองรับจำนวน Request ที่จะเข้ามายัง Servers ของเราได้อย่างเหมาะสม ด้วยการกระจาย Request ไปยังหลายๆ Servers + +โดยที่ Servers เหล่านี้ควรทำงานแบบ Stateless เพื่อให้ไม่มี State ถูกจดจำไว้ใน Server ใด Server นึง ทำให้เวลาที่ User คนเดิมถูกโยนไปยัง Server ถัดไปก็สามารถทำงานที่ค้างไว้ต่อได้ตามปรกติ + +![](images/core-cloud-services-26.png) + +Azure มีบริการ Load Balancing อยู่หลายรูปแบบดังนี้ + +#### Azure Load Balancer +ทำงานอยู่ใน OSI Model ระดับ 4 (Transport Layer) บน Protocal TCP, UDP ซึ่งเน้นทำหน้าที่ในการรับส่งข้อมูลระหว่าง 2 Endpoint เท่านั้นครับ (Source IP address and port to destination IP address and port) + +> เหมาะใช้กับ Azure Virtual Machine + +เราจะได้ Public IP เพื่อให้ User เข้าถึง Load Balancer ได้จากข้างหน้า ส่วนหลัง Load Balancer เราสามารถเลือกเป็นการสื่อสารผ่าน Private IP ในการเชื่อม Load Balancer ไปยัง Servers อื่นๆ เพื่อความปลอดภัยมากยิ่งขึ้นเพราะไม่สามารถเข้าถึงได้จากภายนอกโดยตรง + +![](images/core-cloud-services-27.png) + +

Azure Load Balancer จาก + subhendumct.com

+ +#### Azure Application Gateway +ทำงานอยู่ใน OSI Model ระดับ 7 (Application Layer) ที่นำความสามารถในการรับส่งข้อมูลจาก Transport Layer มาทำงานอื่นๆเพิ่มเติม ทำให้ Application Gateway สามารถทำงานได้มากกว่า Azure Load Balancer + +ตัวอย่างเช่นการทำ Cookie-Based Session Affinity, URL Path-Based Routing, Multisite Hosting + +> เหมาะใช้กับ Web Application (HTTP/HTTPS) เช่น Azure App Service, ACI, AKS + +![](images/core-cloud-services-28.png) + +

Azure Application Gateway จาก + subhendumct.com

+ +#### Azure Traffic Manager +บริการจัดการ Network ในกรณีที่ลูกค้าเราอยู่หลายประเทศ เราจะใช้ Traffic Manager ในการเลือก DNS Server ที่อยู่ใกล้กับลูกค้าในประเทศนั้นมากที่สุด เพื่อให้ลูกค้าเข้าถึง Web App ที่เราติดตั้งไว้ในพื้นที่นั้น + +ตัวอย่างเช่น ถ้าผู้ใช้งานมาจากยุโรป ตัว Traffic Manager จะพาผู้ใช้เข้าถึง Web App ของเราที่ติดตั้งในยุโรป +แต่ถ้าผู้ใช้งานมาจากเอเชีย ตัว Traffic Manager จะพาผู้ใช้เข้าถึง Web App ของเราที่ติดตั้งในเอเชีย + +![](images/core-cloud-services-29.png) + +

Azure Traffic Manager จาก + subhendumct.com

+ + #### Azure Content Delivery Network (CDN) +บริการกระจายข้อมูลไปยังตำแหน่งที่ใกล้กับผู้ใช้งานมากที่สุดเพื่อลดเวลาในการเข้าถึงข้อมูล ซึ่ง Azure มี CDN ที่รองรับพื้นที่ได้ทั่วโลกเลยครับ + +ตัวอย่าง Content เช่น Images Files, Document Files + +![](images/core-cloud-services-30.png) + +

CDN จาก + 5centscdn.net

+ + +## เนื้อหาเพิ่มเติมที่เกี่ยวข้องกับการสอบครับ +- [Digital Skill — Azure Fundamentals (ภาษาไทย)](https://course.digitalskill.org/courses/course-v1:Microsoft+AZ-LEARN-0+2019/about) +- [ExamTopics — AZ-900 Exam Actual Questions](https://www.examtopics.com/exams/microsoft/az-900/view/1/) +- [Facebook — Data TH.com — Data Science ชิลชิล (ภาษาไทย)](https://www.facebook.com/datasciencechill/posts/872166769835048/) +- [Github — Microsoft Certified Azure Fundamentals (ภาษาไทย)](https://github.com/Tizcom/AZ-900/blob/main/Microsoft%20Azure%20Fundamentals_Handout.pdf) +- [Medium — Azure AZ-900 Exam Preparation Guide: How to pass in 3 days](https://medium.com/weareservian/azure-az-900-exam-preparation-guide-how-to-pass-in-3-days-dabf5534507a) +- [Medium — วีธีลงทะเบียนสอบ AZ-900 Online ที่บ้านด้วย Azure Exam Voucher](https://medium.com/@ponggun/%E0%B8%A7%E0%B8%B5%E0%B8%98%E0%B8%B5%E0%B8%A5%E0%B8%87%E0%B8%97%E0%B8%B0%E0%B9%80%E0%B8%9A%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AA%E0%B8%AD%E0%B8%9A-az-900-online-%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-azure-exam-voucher-c0d027253d34) +- [Medium — AZ-900 รีวิวแนวข้อสอบและวิธีลงสอบที่ศูนย์สอบ](https://link.medium.com/bX2BY3vin8) +- [Medium — AZ-900 สรุปละเอียดสุดๆ](https://medium.com/@manita.swwp/virtual-academy-for-microsoft-azure-fundamental-in-thai-language-f5354c2f8634) +- [Microsoft Learn-Azure Fundamentals](https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals/) +- [Udemy — Microsoft Azure — Beginner’s Guide + AZ-900 (มีค่าใช้จ่าย)](https://www.udemy.com/course/microsoft-azure-beginners-guide) +- [WhizLabs — AZ-900 (มีค่าใช้จ่าย)](https://www.whizlabs.com/learn/course/microsoft-azure-az-900) +- [Workshop เล็กๆจาก Microsoft สำหรับ AZ-900 ครับผม](https://microsoftlearning.github.io/AZ-900T0x-MicrosoftAzureFundamentals/) + +## สรุป +ในบทความนี้เราได้เรียนรู้ Core Services หลักๆที่ Azure มีให้บริการ ที่มาพร้อมกับคุณภาพ,ความปลอดภัย และ รองรับการขยายตัวในอนาคตน่ะครับ เช่น +- เราเลือกใช้ บริการ Compute แบบ PaaS บน Azure App Service เพื่อติดตั้ง Website โดยดูแลเฉพาะ Code และ Configuration บางอย่าง ส่วน Infrastructure ให้ Azure ช่วยดูแล +- เราเลือกบริการ Storage บน Azure Blob Storage เพื่อจัดเก็บ Unstructured Data เช่น Text/PDF/Document/Image/Video File +- เราเลือกใช้บริการ Network บน Azure Application Gateway ในการทำ Load Balancer ในระดับ Application Layer + +หวังว่าบทความจะพอแนะนำให้เห็นภาพของบริการต่างๆบน Azure มากขึ้นน่ะครับ \ No newline at end of file diff --git a/paths/azure/fundamental/004-security-responsibility-trust.md b/paths/azure/fundamental/004-security-responsibility-trust.md new file mode 100644 index 0000000..da20212 --- /dev/null +++ b/paths/azure/fundamental/004-security-responsibility-trust.md @@ -0,0 +1,290 @@ +--- +title: Security, Responsibility and Trust in Azure +showMetadata: true +editable: true +order: 3 +--- + +# Security, Responsibility and Trust in Azure + +![](images/security-responsibility-trust-01.png) + +## Introduction +ความปลอดภัยคือเรื่องสำคัญที่เราต้องพิจารณาวางแผนเป็นลำดับต้นๆในการเลือกใช้บริการนะครับ + +ตัวอย่างเช่น +- ถ้าเราเลือก Service Model แบบ IaaS ในการสร้าง Azure VMs นั้นเราจะเลือกใช้ OS อะไร, Role อะไร (Web App, Database, Active Directory) และ เราจะจัดการความปลอดภัยยังไง + +- ถ้าเราเลือกบริการแบบ PaaS เช่น Azure App Service, Sql Database เราจะจัดการกับความปลอดภัยยังไง + +เรามาร่วมศึกษาไปด้วยกันในบทความนี้น่ะครับ + +## Share Responsibility +ความปลอดภัยในการใช้ Cloud นั้นเป็นหน้าที่ความรับผิดชอบร่วมกันทั้งผู้ให้บริการและผู้ใช้บริการครับ จึงเป็นที่มาของคำว่า Share Responsibility + +Cloud Service Model จึงเป็นปัจจัยสำคัญ (IaaS, PaaS, SaaS) เพราะเป็น Model ที่บอกถึงความรับผิดชอบของผู้ให้บริการและผู้ใช้บริการอย่างชัดเจน + +![](images/security-responsibility-trust-02.png) + +ไม่ว่าจะใช้ Service Model แบบไหน สิ่งที่ผู้ใช้บริการต้องดูแลด้วยตัวเองอยู่เสมอนะครับ คือ +- ข้อมูลของเรา (Data) +- ดูแล Endpoint ให้ปลอดภัย เช่นถ้าเราเลือกใช้ Azure App Service เราจะดูแล Web Server ยังไง +- จัดการ User Account เอง, จัดการสิทธิในการเข้าถึง Resources ต่างๆที่เราสร้างขึ้น (Access Management, ACL) + +ส่วนการเลือก Service Model จะมีผลกับความรับผิดชอบของเราที่มากขึ้นหรือน้อยลงนะครับ + +เช่น ถ้าเราเลือกบริการแบบ IaaS เช่น Azure VMs นั้นเราต้องดูแลตั้งแต่ OS เอง ทำให้เราต้องจัดการกับความปลอดภัยเอง เช่น การติดตั้ง Antivirus , ดูแล OS Security Patch เอง + +แต่ถ้าใช้ PaaS เช่น Azure App Service นั้น Microsoft จะช่วยดูแลจัดการให้เราหมดเลยในระดับ OS ทั้ง Patching, Antivirus + +## Defense-In-Depth +เป็นแนวทางในการสร้างความปลอดภัยในระบบของ Azure โดยแบ่งออกเป็น 7 Layes นะครับ + +![](images/security-responsibility-trust-01.png) + +- **Physical**: Microsoft เป็นคนดูแลและจัดการรักษาความปลอดภัยในส่วนของ Data Center โดยคนทั่วไปไม่สามารถเข้า Data Center ของ Microsoft ได้ครับ +- **Identity & Access**: เพื่อระบุว่าคนๆนั้นมีตัวตนเพื่อมอบสิทธิในการเข้าถึงบริการต่างๆที่กำหนดไว้ +- **Perimeter**: คือการป้องกันไม่ให้ผู้ใช้หรือระบบภายนอกสามารถเข้าถึงระบบของเรา เช่น การเลือกใช้ Firewall ในการเปิด Port บน Server หรือ Azure Application Gateway ในการจัดการกับการยืนยันตัวตน +- **Network**: คือการดูแลโครงข่ายในระบบเช่น Azure Virtual Network สำหรับการจัดการ Network ให้กับ VMs, VPN Site-to-Site เพื่อเชื่อม Network On-Premise กับ Network Azure +- **Compute**: คือการดูแลความปลอดภัยในระดับ Compute Service เช่น การ Config NSG เพื่ออนุญาตให้ เข้าถึง Azure VMs ได้บาง Port +- **Application**: คือเราป้องกันในระดับ Application ของเราอย่างไร เช่นการเก็บข้อมูลที่เป็นความลับของระบบ เช่น Database Connection ไว้ใน Server เท่านั้น +- **Data**: คือเราดูแลความปลอดภัยข้อมูลของเราอย่างไร เช่นการเข้ารหัสข้อมูลที่ใช้งาน + +> แนะนำ [Video](https://youtu.be/OTGMi0ksjXY) อธิบาย [Defense-In-Depth](https://youtu.be/OTGMi0ksjXY) ทั้ง 7 Layers เทียบกับบริการที่ Azure รองรับครับ + +## Azure Security Center +เป็นบริการช่วยตรวจสอบการทำงานของบริการต่างๆบน Azure ว่ามีความปลอดภัยหรือไม่ เพื่อแนะนำขั้นตอนในการทำให้บริการมีความปลอดภัยมากขึ้น โดยเบื้องหลังนั้นทาง Microsoft ใช้ AI ในการช่วยตรวจสอบน่ะครับ + +ตัวอย่างเช่น การตรวจสอบการติดตั้ง Antivirus บน VMs, การแนะนำให้เข้ารหัสฐานข้อมูล + +มีบริการอยู่ทั้งหมด 2 Tiers +- Free +- Standard (ทดลองใช้งานฟรี 30 วัน) + +![](images/security-responsibility-trust-03.png) + +### Azure Security Center Walk Through +เรามาดูตัวอย่างการใช้งานจริงของ Azure Security Center กันครับ + +![](images/security-responsibility-trust-04.png) + +

ตัวอย่างหน้าตาของ Azure Security Center ครับ เราจะพบว่าแบ่งประเภทหมวดหมู่ของการแนะนำเยอะเลย ไม่ว่าจะเป็น Compute, Data, Identity, Networking

+ +เมื่อทดลองกดเข้าไปดูรายละเอียดในส่วนของ Compute & app resources เราจะเห็นคำแนะนำที่เกี่ยวข้องเช่น แนะนำให้ Encrypted Disk สำหรับ VMs ครับ + +![](images/security-responsibility-trust-05.png) + +

ตัวอย่างคำแนะนำสำหรับบริการ Compute & app resources

+ +![](images/security-responsibility-trust-06.png) + +

รายละเอียดที่มากขึ้นของการแนะนำให้เข้ารหัส Disk ใน VM +

+ +ทดลองกดเข้าไปดูรายละเอียดในส่วนของ Identity & Access น่ะครับ เราจะเห็นคำแนะนำที่เกี่ยวข้องเช่น ให้ลบ Users ที่ได้รับสิทธิ Owner ของ Azure Subscription ที่ไม่ได้ใช้งานแล้ว + +![](images/security-responsibility-trust-07.png) + +

ตัวอย่างคำแนะนำสำหรับบริการ Identity & Access +

+ +ทดลองกดเข้าไปดูรายละเอียดในส่วนของ Networking น่ะครับ เราจะเห็นคำแนะนำที่เกี่ยวข้องเช่น ควรปิด Ports ที่ไม่ได้ใช้บน VMs + +![](images/security-responsibility-trust-08.png) + +

ตัวอย่างคำแนะนำสำหรับบริการ Networking +

+ +### บริการที่น่าสนใจของ Azure Security Center +- Threat Protection ช่วยตรวจสอบการใช้งานที่ผิดปรกติในระบบ และแจ้งเตือนผู้ใช้บริการ + +- Just-In-Time Access Control จัดการ Policy ในการเข้าถึง VMs เช่น ให้เข้า VMs ได้แค่เวลาที่กำหนด หรือ สามารถ Request ขอสิทธิในการเข้าถึง VMs ได้ + +พอเราติดตั้ง Just In Time แล้วจะมีตัวเลือกให้เราจัดการสิทธิในการเข้าถึง VMs มากขึ้นนะครับ + +![](images/security-responsibility-trust-09.png) + +ถ้าเราไม่ติดตั้ง Just-In-Time เราจะพบคำเตือน เช่น ในภาพข้างล่างน่ะครับ ว่าเรากำลังเปิด RDP Port 3389 อยู่ตลอด 24 ชั่วโมง ซึ่งถ้าตาม Practise ที่ดีแล้วเขาควรจะเปิด Remote Desktop Port นี้เฉพาะตอนที่จะใช้จริงๆเท่านั้นน่ะครับ + +![](images/security-responsibility-trust-10.png) + +## Identity And Access +เป็นกระบวนการที่เกี่ยวข้องกับ Authentication and Authorization น่ะครับ โดย +- **Authentication** คือการยืนยันตัวตน เช่นการระบุ User Password +- **Authorization** คือการมอบและตรวจสอบสิทธิในการใช้งานระบบหลังจากที่ได้รับการยืนยันตัวตนแล้วครับ + +![](images/security-responsibility-trust-11.png) + + +## Azure Active Directory +Azure มีบริการที่ช่วยเราจัดการในเรื่องของ Identity And Access ที่ชื่อว่า Azure Active Directory นะครับ + +โดยจะทำหน้าที่เป็น Identity Management On Cloud เพื่อทำหน้าที่ Authentication and Authorization ในการเข้าถึงบริการต่างๆใน Azure ครับ + +เราอาจจะกำลังใช้งาน Azure Active Directory อยู่แล้วโดยที่เราไม่รู้ตัวน่ะครับ เช่นการใช้บริการ Office 365, Azure ก็จะมีบริการของ Azure Active Directory ติดตั้งมาด้วยอยู่แล้วครับแบบ Free Edition + +![](images/security-responsibility-trust-12.png) + +

Azure AD จาก + techcommunity.microsoft.com

+ +### Azure AD and Windows Active Directory Domain Services (AD DS) + +สิ่งที่แตกต่างกันคือ Active Directory Domain Service (AD DS) ทำหน้าที่เป็น Directory Service (LDAP Service) ที่มีโครงสร้างแบบ Hierarchical (Forrest, Tree) ที่รวบรวม Resources ต่างๆเข้าด้วยกัน เช่น Computer, Printer, User, Organization มี DC, OU โดยจะทำหน้าทีเป็น Centralization ในการเข้าถึงและเชื่อมต่อ Resources ในองค์กร ช่วยให้เราทำ Single Sign On ได้สะดวก + +![](images/security-responsibility-trust-13.png) + +

ความแตกต่างของ Azure AD และ AD DS จาก + dotnetcurry.com

+ +Azure AD เป็น Identity management ไม่ใช้ Directory Service มีโครงสร้างแบบ Flat ไม่ใช่ แบบ Hierarchical ไม่มี DC, OU ทำได้แค่สร้าง User, Group Account และ Join Computer ไม่ได้ + +![](images/security-responsibility-trust-14.png) + +

AD DS (ซ้าย) และ Azure AD (ขวา)

+ +![](images/security-responsibility-trust-15.png) + +### Hybrid Connection with Azure AD Connect + +เราสามารถเข้าถึงบริการใน Azure ได้ผ่าน User Account ในองค์กร ที่อยู่ใน AD DS ได้ด้วยการ Sync User Account จาก AD DS มายัง Azure AD ด้วย Tool ชื่อ Azure AD Connect ซึ่งก็คือ Cloud Deployment Model แบบ Hybrid นั้นเองครับ + +![](images/security-responsibility-trust-16.png) + +

Azure AD Connect จาก + knowledge-junction.com

+ + +โดย Azure AD ใน Free Editioin สามารถที่จะ Sync ข้อมูลจาก AD DS ได้ทั้งหมด 500,000 Objects นะครับ เยอะโฮกกก! + +ศึกษารายละเอียดเพิ่มเติมได้ที่นี้น่ะครับ + +- [Hybrid Identity Required Ports and Protocols](https://docs.microsoft.com/en-us/azure/active-directory/hybrid/reference-connect-ports) + +### Azure AD User Types +มาจากการสร้างใน Azure AD +มาจากการ Sync จาก AD DS ซึ่งจะพบว่า Source ต่างกันนะครับ + +![](images/security-responsibility-trust-17.png) + +## Multi-Factor Authentication (MFA) +User Name, Password ไม่เพียงพอในการรักษาความปลอดภัยแล้วในทุกวันนี้ เราจำเป็นต้องการความปลอดภัยที่มากขึ้น จึงเป็นที่มาของการ Authentication แบบ Multi-Factor Authenticatioon (MFA) ที่จะเพิ่มขั้นตอนที่มากขึ้น เช่นการ ส่ง Access Code เข้า SMS ในมือถือของเราและนำมายืนยันตัวตนในระบบ + +![](images/security-responsibility-trust-18.png) + +## Role-Based Access Control (RBAC) +การจัดการสิทธิในระดับในการเข้าถึง Resources ภายใน Subscription ด้วยการรวมสิทธิเข้าด้วยกันเป็นกลุ่มและเรียกกลุ่มนั้นว่า Role โดย Azure เตรียม Built-in Role มาให้ให้เราเลือกใช้ได้เยอะเลยครับ +Azure Governance and Compliance คือการกำหนดสิทธิ กำหนด Policy ในระดับที่สูงกว่า Subscription เช่นการใช้ Azure Blueprint + +### Azure Governance and Compliance +คือการกำหนดสิทธิ กำหนด Policy ในระดับที่สูงกว่า Subscription เช่นการใช้ Azure Blueprint + +### Privileged Identity Management +การกำหนดสิทธิให้ User ภายในช่วงเวลาที่กำหนดเท่านั้น เช่นให้สิทธิในการใช้งาน Azure App Service ในระยะเวลาแค่ 5 วัน น่าสนใจมาก แต่มีบริการอยู่ใน Azure AD PREMIUM P2 นะครับ Free Edition อดดดดด(เศร้า) + +## Encryption +### Symmetric Encryption +เข้าและถอดรหัสด้วย Key เดียวกัน ทำงานเร็ว + +![](images/security-responsibility-trust-19.png) + +

ภาพจาก + clickssl.net

+ + ### Asymmetric Encryption + เป็นการเข้าและถอดรหัสด้วย Key-Pair คือเข้าด้วย Key นึง และถอดรหัสด้วย Key อีกอันนึง เช่น Public , Private key + +![](images/security-responsibility-trust-20.png) + +

ภาพจาก + clickssl.net

+ + +## Encryption on Azure Storage + +### Encryption at Rest +เป็นการ Encrypt Data ใน State ใด State นึง เช่น Data ที่เก็บอยู่ใน Storage Account +- Storage จะถูก Encrypt ด้วย Storage Service Encryption (SSE) +- Disk จะถูก Encryption ด้วย Azure Disk Encryption (ADE) +- Database จะถูก Encrypt ด้วย Transparent Data Encryptioin (TDE) + +### Encryption In Transit +การ Encrypt Data ในการรับส่งข้อมูล + +![](images/security-responsibility-trust-21.png) + +## Azure Certificate +Certificates ใน Azure จะใช้ Cryptography แบบ x.509 v3 โดยสามารถถูก Sign ได้ทั้งจาก Trusted Certificate Authority (CA)หรือ Self-Signed + +## Azure Key Vault +ช่วยเก็บรักษาข้อมูลที่ต้องการความปลอดภัยสูง เช่น Security Key หรือ Azure Certificate + +## Protect Your Network + +### Azure Firewall (PaaS) +การจัดการ Request ที่เข้าออก (Inbound/Outbound) + +### Azure Application Gateway +ใช้ในกรณีที่ต้องการกันในระดับ Application Layer โดยเน้นการป้องกัน HTTP traffic โดยเฉพาะ รวมถึงกัน Cyber Threat ต่างๆด้วยครับ + +### Network Virtual Appliances (NVAs) +จัดการ Network ประเภท Non-HTTP services ต่างๆ + +### DDos (Distributed Denial of Service) +ที่มีจุดประสงค์เพื่อทำให้เป้าหมายใช้งานไม่ได้ โดยการยิง Request มาจากหลายๆที่เข้ามาที่ระบบเรา + +![](images/security-responsibility-trust-22.png) + +

DDoS จาก + f5.com

+ +### Azure DDos Protection +เป็นบริการที่เข้ามาช่วยกันการโจมตีจาก DDoS โดยเฉพาะเลยครับ + +![](images/security-responsibility-trust-23.png) + + +### Traffic inside VMs +จัดการ Traffic ภายใน Virtual Machine ได้ด้วย Network Security Group (NSG)เช่น Virtual Network อยู่กันคนล่ะ Subnet ทำยังไงให้เชื่อมกันได้ + +Express Route ต่างจาก VPN Gateway ตรงที่ไม่ได้ใช้ Public Link แต่ใช้ Link พิเศษที่เชื่อมต่อเข้า Azure กับ On-Premise ตรงๆ เพื่อ Bandwidth ที่เยอะขึ้น, Latency ที่น้อยลง, Secure ที่มากขึ้น แต่…….ราคาก็จะสูงกว่าแบบ VPN Gateway มากน่ะครับ + +### Protect Shared Document +Azure มีบริการชื่อ Microsoft Azure Information Protection (AIP) ที่ช่วยป้องกันเอกสารและ Email ให้อยู่ในขอบเขตของการใช้งานที่ต้องการได้น่ะครับ เช่น อ่านเอกสารได้อย่างเดียวห้าม Print, อ่าน Email อ่านได้อย่างเดียวห้ามส่งต่อ + +โดยเราจะกำหนด Label เพื่อเป็นกลุ่มของ Policy ที่ต้องการได้ เช่น Label Confidential ซึ่งจะอยู่ใน Azure Active Directory PREMIUM P1/P2 เพราะงั้น Free Edition ก็อดอีกแล้ววววว + +![](images/security-responsibility-trust-24.png) + +### Azure Advanced Threat Protection (ATP) +ช่วยหาพฤติกรรมที่ไม่พึงประสงค์ในระบบและแจ้งเตือนเรา เช่นมีการ Sign in ด้วย User เราจาก ต่างประเทศ และมาจากหลายๆ Computer ทาง ATP ก็จะ Block ให้เบย + +### Understand Security Considerations for Application Lifecycle Management Solution +Microsoft มีบริการในการส่งเสริมการออกแบบและพัฒนาระบบที่เน้นความปลอดภัย ที่ชื่อว่า Microsoft Security Development Lifecycle (SDL) + +โดยมีแนวทางแนะนำ, Best Practice และมีชุดเครื่องมือในการตรวจสอบ เพื่อช่วยให้เราพัฒนาระบบที่ได้ความปลอดภัยสูงครับ + +ศึกษาเพิ่มเติมได้ที่นี้นะครับ +- [Microsoft Security Development Lifecycle (SDL)](https://www.microsoft.com/en-us/securityengineering/sdl) + +![](images/security-responsibility-trust-25.png) + +## เนื้อหาเพิ่มเติมที่เกี่ยวข้องกับการสอบครับ +- [Digital Skill — Azure Fundamentals (ภาษาไทย)](https://course.digitalskill.org/courses/course-v1:Microsoft+AZ-LEARN-0+2019/about) +- [ExamTopics — AZ-900 Exam Actual Questions](https://www.examtopics.com/exams/microsoft/az-900/view/1/) +- [Facebook — Data TH.com — Data Science ชิลชิล (ภาษาไทย)](https://www.facebook.com/datasciencechill/posts/872166769835048/) +- [Github — Microsoft Certified Azure Fundamentals (ภาษาไทย)](https://github.com/Tizcom/AZ-900/blob/main/Microsoft%20Azure%20Fundamentals_Handout.pdf) +- [Medium — Azure AZ-900 Exam Preparation Guide: How to pass in 3 days](https://medium.com/weareservian/azure-az-900-exam-preparation-guide-how-to-pass-in-3-days-dabf5534507a) +- [Medium — วีธีลงทะเบียนสอบ AZ-900 Online ที่บ้านด้วย Azure Exam Voucher](https://medium.com/@ponggun/%E0%B8%A7%E0%B8%B5%E0%B8%98%E0%B8%B5%E0%B8%A5%E0%B8%87%E0%B8%97%E0%B8%B0%E0%B9%80%E0%B8%9A%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AA%E0%B8%AD%E0%B8%9A-az-900-online-%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-azure-exam-voucher-c0d027253d34) +- [Medium — AZ-900 รีวิวแนวข้อสอบและวิธีลงสอบที่ศูนย์สอบ](https://link.medium.com/bX2BY3vin8) +- [Medium — AZ-900 สรุปละเอียดสุดๆ](https://medium.com/@manita.swwp/virtual-academy-for-microsoft-azure-fundamental-in-thai-language-f5354c2f8634) +- [Microsoft Learn-Azure Fundamentals](https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals/) +- [Udemy — Microsoft Azure — Beginner’s Guide + AZ-900 (มีค่าใช้จ่าย)](https://www.udemy.com/course/microsoft-azure-beginners-guide) +- [WhizLabs — AZ-900 (มีค่าใช้จ่าย)](https://www.whizlabs.com/learn/course/microsoft-azure-az-900) +- [Workshop เล็กๆจาก Microsoft สำหรับ AZ-900 ครับผม](https://microsoftlearning.github.io/AZ-900T0x-MicrosoftAzureFundamentals/) + +## สรุป +ในบทนี้เราได้เรียนรู้ในเรื่องของ Security, Responsibility and Trust in Azure +ด้วยแนวทาง Defense-In-Depth ทั้ง 7 Layes (Physical, Identity & Access, Perimeter, Network, Compute, Application, Data) + +ตัวอย่างของบริการ เช่น Azure Security Center, Azure Active Directory, Azure Key Vault, Azure DDos Protection, Microsoft Azure Information Protection diff --git a/paths/azure/fundamental/005-standards-infrastructure.md b/paths/azure/fundamental/005-standards-infrastructure.md new file mode 100644 index 0000000..ab70cb5 --- /dev/null +++ b/paths/azure/fundamental/005-standards-infrastructure.md @@ -0,0 +1,286 @@ +--- +title: Standards Infrastructure, Resources Organization +showMetadata: true +editable: true +order: 4 +--- + +# Standards Infrastructure, Resources Organization + +![](images/standards-infrastructure-01.png) + +## Apply and Monitor Infrastructure Standards with Azure Policy +คือการตรวจสอบระบบหลังจากที่ทำงานไปได้ระยะนึงแล้ว ว่าทำงานได้ปรกติไหม, Performance, Availability, Security เป็นยังไง รวมถึง ประเมินการใช้งาน Azure Resource ว่าเป็นไปตามมาตราฐานขององค์กรหรือไม่ + +## Governance and Compliance +เป็นการออกแบบ Policy เพื่อให้ผู้ใช้งานสร้าง Azure Resources บนมาตราฐานที่องค์กรกำหนดไว้ และ ออกแบบ Access Control เพื่อจัดการกับสิทธิในการเข้าถึง Azure Resources + +โดยเราจำเป็นต้องรู้ Requirements ให้ครบก่อนถึงจะสามารถออกแบบ Governance and Compliance ได้ + +ตัวอย่าง Policy เช่น การควบคุมการสร้าง Azure VM ได้เฉพาะ Size ที่กำหนด และ Region ต้องเป็น Southeast Asia เท่านั้น, Web ต้องเป็น HTTPS เท่านั้น, VM ต้องติดตั้ง Antivirus + +ตัวอย่าง Access Control เช่นให้สิทธิผู้ใช้บางคนในการเข้าถึง Resource Group, Subscription + +Enterprise Governance Management +ก่อนที่เราจะเปิดใช้งาน Governance and Compliance ได้นั้น เราต้องติดตั้ง Azure Management Group เพื่อเป็น Container สำหรับจัดการกับโครงสร้างของ Policy ครับ โดย Azure Management Group จะถูกวางอยู่เหนือ Subscription อีกทีนะครับ + +รูปแบบโครงสร้างของ Azure Management Group +- ระดับบนสุดคือ Root Manage Group (ลบไม่ได้ทำได้แค่เปลี่ยนชื่อ) +- ระดับถัดลงมาคือ Child Management Group +- ระดับล่างสุดคือ Resources ต่างๆ Subscription, Resource Group, Resources + +![](images/standards-infrastructure-02.png) + +

ภาพ จาก + docs.microsoft.com

+ +ถ้าเรา Assign Policy ที่ Root Management Group ก็จะ Apply ไปทั้ง Child Management Group, Resources ทั้งหมด +แต่ถ้า Assign Policy ที่ Child Management Group ก็จะ Apply ลงไปยัง Resources ทั้งหมด ของ Child Management Group นั้นเท่านั้น + +![](images/standards-infrastructure-03.png) + +> ไม่ควรให้ Management Group ลึกเกิน 6 Levels เพราะจะทำให้ Policy มีความซับซ้อนจนเกินไป ยากต่อการจัดการในภายหลัง + +## Azure Policy +เป็นบริการที่ช่วย สร้าง (Create), มอบหมาย (Assign) และจัดการ (Manage) Policy ให้กับบริการบน Azure โดย Azure จะทำการประเมินการใช้งาน Resources ของเราว่ามีตัวไหนบ้างที่ตรงตาม Policy (Compliance) และตัวไหนที่ไม่ตรงตาม Policy (Non-Compliance) + +**ขั้นตอนการใช้งาน Policy** +1. Policy Definition เป็นการเลือกเงื่อนไขต่างๆเพื่อให้ตอบโจทย์กับกฎเกณฑ์มาตราฐานในองค์กร เช่นการกำหนด VM Size โดยการจัดการจะอยู่ในรูปแบบ File JSON ซึ่งเราสามารถเลือกได้ว่าจะสร้าง Policy ใหม่ (Initiative Definition) หรือเลือกจาก Policy Built-in ที่ Azure เตรียมไว้ให้ได้เลยครับ (Policy Definition) + +![](images/standards-infrastructure-04.png) + +

+ตัวอย่าง Policy ในรูปแบบไฟล์ JSON

+ +ภายใน Policy Definition นั้นจะประกอบไปด้วย Policy หลายๆอันรวมกันเช่น +- ตรวจสอบ SQL Database ที่ไม่มีการทำ Encryption +- ตรวจสอบ OS บน VM ที่มีช่องโหว่ด้านความปลอดภัย (Vulnerabilities) + +![](images/standards-infrastructure-05.png) + +

+ตัวอย่าง Policy ทั้งแบบ Initiative Definition (Custom) และแบบ Policy Definition (Built-in)

+ +2. นำ Policy Definition ไปปรับใช้กับ Resources เช่น Azure Subscription, Resource Group และ Resources + +3. ทำการตรวจสอบผลการประเมิน Resources ว่ามี Resources ใดที่ Non-Compliance หรือไม่ เพื่อแก้ไขให้ตรงตาม Policy ต่อไป + +![](images/standards-infrastructure-06.png) + +

+ตัวอย่าง Compliance และ Non-compliance Resources ตาม Policy ทีเรากำหนดไว้

+ +## Azure Blueprints + +![](images/standards-infrastructure-07.png) + +

ภาพจาก + buchatech.com

+ +คือการออกแบบโครงสร้างของ Resources ที่เราต้องการไว้ล่วงหน้า โดยมีข้อดีคือเราสามารถนำโครงสร้างนี้ไปติดตั้งเป็น Resources จริงๆในภายหลัง สามารถทำซ้ำได้และยังสามารถควบคุมให้สอดคล้องกับ Governance and Compliance ในองค์กรด้วยได้อีกด้วยครับ + +ตัวอย่างเช่น ออกแบบการสร้าง VM ไว้ล่วงหน้าว่าถ้าสร้างแล้วต้องติดตั้ง Antivirus, Agent สำหรับการ Backup, ให้ User ที่ดูแลระบบ Remote Access เข้า VM ได้, ต้องอยู่ใน Region Southeast Asia, Encrypt Disk ใน Virtual Machine + +ซึ่งเราจะเห็นว่าเกี่ยวกับทั้ง VM, Policy, Azure Access Control ซึ่งถ้าเราสร้างเองผ่าน Azure Portal ทุกครั้งจะค่อนข้างช้าและอาจจะได้ผลลัพธ์ที่ไม่เหมือนกันทุกครั้ง (Human Error) + +การสร้าง Blueprint หรือ Template ไว้ล่วงหน้าจะช่วยให้เราติดตั้ง Resources ซ้ำๆได้อย่างสะดวกในจัดการ Deploy Template ของทรัพยากรต่างๆ และ Artifacts อื่นๆ เช่น +- การกำหนดบทบาท (Role Assignments) +- การกำหนดนโยบาย (Policy Assignments) +- Azure Resource Manager Templates +- กลุ่มทรัพยากร (Resource Groups) + +![](images/standards-infrastructure-08.png) + +

ภาพจาก + http://buchatech.com

+ + > การสร้าง Blueprints Definitions ด้วย Role Assignment, Policy Assignment, Azure Resource Manager Template และ Resource Group + + ## Service Compliance +เป็นช่องทางในการสืบค้นหาข้อมูลว่าบริการต่างๆบน Azure นั้นสอดคล้องกับ Compliance ขององค์กรต่างๆหรือไม่ เช่น GDPR, ISO โดยจะประกอบด้วยบริการดังนี้ + +### Microsoft Privacy Statement +เพื่อแจ้งวัตถุประสงค์ของการขอข้อมูลลูกค้าที่ใช้บริการ Azure เพื่อความโปร่งใสและมั่นใจได้ว่า Microsoft ไม่นำข้อมูลของลูกค้าไปเปิดเผยต่อแน่นอน + +### Microsoft Trust Center +เป็นช่องทางในการค้นหารายละเอียดของ บริการใน Azure ที่เกี่ยวข้องกับ Security, Privacy และ Compliance + +![](images/standards-infrastructure-09.png) + +

ภาพจาก + Microsoft Trust Center

+ + ### Service Trust Portal (STP) + ดู Audit Reports ว่าบริการของ Azure นั้น Comply Data Protection Standards และผ่านมาตราฐานจาก Regulator ต่างๆได้ เช่น SOC, FedRAMP, ISO 27001, PCI/DSS + +![](images/standards-infrastructure-10.png) + +

ภาพจาก + Service Trust Portal (STP)

+ + ### Compliance Manager + เป็น Risk Assessment Tool แบบ Workflow คือจะมีบริการเป็นขั้นตอนให้เราเลือกเพื่อวิเคราะห์ว่าบริการบน Azure ที่เราติดตั้งอยู่นั้นตรงกับ Compliance หรือไม่ โดยเราจะเห็นคะแนน Assessment ออกมาครับ + +![](images/standards-infrastructure-11.png) + +## Resource Monitoring +บริการในการตรวจสอบการใช้งานบริการบน Azure ซึ่งจะมี 2 ส่วนหลักๆ + +### Azure Monitor +ใช้เพื่อตรวจสอบบริการในมุมของ Performance และ Availability โดยเฉพาะ + +#### แหล่งข้อมูลของ Azure Monitor +- **Application** ข้อมูลเกี่ยวกับประสิทธิภาพและการทำงานของ Code ที่เราเขียนโดยไม่คำนึงถึงแพลตฟอร์ม +- **Operating ** ข้อมูลเกี่ยวกับระบบปฏิบัติการ(OS) ระบบเรารันอยู่สามารถดึงได้จาก Azure , Cloud Provider เจ้าอื่น , On-Premises +- **Azure Resources** ข้อมูลเกี่ยวกับการดำเนินการของทรัพยากร Azure +- **Azure Subscription** ข้อมูลเกี่ยวกับการดำเนินและจัดการ Azure Subscription +- **Azure Tenant** ข้อมูลเกี่ยวกับการดำเนินการของบริการ Azure ระดับผู้เช่า (Tenant) เช่น Azure Active Directory + + + +#### การตั้งค่า Azure Monitoring เพื่อรวบรวมข้อมูล (Diagnostic settings) + +![](images/standards-infrastructure-12.png) + +การทำงานเบื้องต้นของ Azure Monitor จะเริ่มจากการรวบรวมข้อมูลของ Resources ที่เราใช้งาน โดย +- Activity Logs จะบันทึกข้อมูุลเมื่อมีการแก้ไข Resources +- Metrics จะนำข้อมูลไปวัดผลว่า Resources มีการทำงานอย่างไร, ใช้งานไปแล้วเท่าไหร่ + +เราสามารถเพิ่มข้อมูลที่ต้องการรวบรวม โดยการเปิดใช้งาน Diagnostics และเพิ่ม Agent ไปยัง Resources ที่เกี่ยวข้อง เช่น +- เปิดใช้งาน Guest-Level Monitoring +- Performance Counters: รวบรวมข้อมูลของประสิทธิภาพ +- Event Logs: เปิดใช้งานบันทึก logs เหตุการณ์ต่างๆ +- Crash Dumps: รวบรวม Dumps Logs เมื่อระบบทำงานผิดพลาด (Crash) +- Sinks: ส่งข้อมูลการ Diagnostic ของคุณไปยังบริการอื่นๆ เพื่อการวิเคราะห์เพิ่มเติม +- Agent: กำหนดค่าการตั้งค่าAgent + +#### บริการแสดงผลข้อมูลที่ได้จาก Azure Monitor + +![](images/standards-infrastructure-13.png) + +- **Application Insights** +เป็นบริการที่ตรวจสอบเรื่องความพร้อมใช้งาน, ประสิทธิภาพ บน Azure หรือ On-Premise เพื่อให้ข้อมูลเชิงลึกเกี่ยวกับการทำงานของระบบเรา ผมชอบใช้มากๆเลยครับติดตั้งง่าย เหมาะสำหรับ Azure App Service โดยเฉพาะเลยครับ + +![](images/standards-infrastructure-14.png) + +

Application Insights + docs.microsoft.com

+ + +- **Azure Monitor for containers** เป็นบริการที่ออกแบบมาเพื่อตรวจสอบประสิทธิภาพของ container workload ที่ถูก deploy บน Kubernetes clusters ซึ่งโฮสต์บน Azure Kubernetes Service (AKS) โดย Azure Monitor for containers ช่วยให้เห็นประสิทธิภาพการทำงานได้โดยการรวบรวมหน่วยความจำและหน่วยประมวลผลจาก controllers, nodes และ containers ซึ่งมีอยู่ใน Kubernetes ผ่าน metrics API โดยมีการเก็บ container log ไว้ด้วย + +![](images/standards-infrastructure-15.png) + +

Azure Monitor Container + docs.microsoft.com

+ +- **Azure Monitor for VMs** เป็นบริการที่ตรวจสอบ Azure VM ในภาพรวม โดยการวิเคราะห์ประสิทธิภาพและความสมบูรณ์ของ Windows และ Linux VM (รวมถึงกระบวนการทำงานต่างๆ และการอาศัยการเชื่อมโยงบนทรัพยากรอื่นๆ และกระบวนการภายนอก) นอกจากนี้ Azure Monitor for VMs ยังรองรับการตรวจสอบประสิทธิภาพและแอปพลิเคชันอื่นๆ ที่เกี่ยวข้องบน VM on-premise และ VM ที่โฮสต์กับผู้ให้บริการคลาวด์อื่นๆ ด้วย + +![](images/standards-infrastructure-16.png) + +

Azure Monitor for VMs + docs.microsoft.com

+ +#### ภาพรวมการทำงานของ Azure Monitor + +![](images/standards-infrastructure-17.png) + +### Azure Service Health +ช่วยตรวจสอบ Data Center ที่เราใช้งานอยู่ ถ้า Data Center นั้นมีปัญหากระทบ Resources ที่เราใช้งาน ทาง Service Health จะแจ้งเตือนเราอัตโนมัติ + +## Control and organize Azure resources with Azure Resource Manager + +### Azure Resource Manager +เป็นบริการที่ใช้ในการ Deploy และ Management บริการบน Azure ทั้งหมดน่ะครับ + +### Resource Group +เป็นบริการฟรีที่รวบรวม Resources เข้าด้วยกันเพื่อง่ายต่อการจัดการและดูแลโดยทุกครั้งที่เราสร้าง Resource เราจะต้องเลือก Resource Group เสมอนะครับ + +![](images/standards-infrastructure-18.png) + +1 Resource อยู่ได้แค่ 1 Resource Group เท่านั้น และ Resource Group จะรวบรวมเฉพาะ Resources เท่านั้น ไม่สามารถมี Sub Resource Group ได้อีก (Nested Resource Group) + +การออกแบบ Resource Group จะขึ้นอยู่กับลักษณะของการใช้งาน เช่นอาจจะแยกตาม Site ลูกค้า, แยกตาม Project, แยกตามแผนก + +![](images/standards-infrastructure-19.png) + +การลบผ่าน Resource Group จะทำให้ Resources ทั้งหมดในนั้นถูกลบไปด้วยน่ะครับ ซึ่งผมชอบมากเพราะทำให้เรามั่นใจว่าเวลาที่เราจะลบ Resources นั้นเราลบเฉพาะกลุ่มของ Resources ที่เกี่ยวข้องกัน ไม่เผลอไปลบ Resources อื่นที่ไม่เกี่ยวข้องครับ + +Resource Group ยังช่วยให้เราจัดการกับสิทธิในการเข้าถึง Resources ได้สะดวกด้วยครับ โดยเมื่อเรามอบสิทธิให้กับผู้ใช้เข้าถึง Resources Group แล้วผู้ใช้คนนั้นก็จะสามารถเข้าถึง Resources ภายในนั้นได้ทั้งหมดเลยครับสะดวกมาก + +การจัดการกับค่าใช้จ่ายด้วย Resource Group ก็ทำได้สะดวกมากเลยครับ เพราะใน เราสามารถดูค่าใช้จ่ายรวมที่เคยขึ้นใน Resource Group นั้นได้เลย + +### Tag +ช่วยในการ Query หา Resources ที่เราต้องการครับ โดยการแปะ Tag ลงไปยัง Resources ที่สร้าง เสร็จแล้วเราก็ Query Resources ตาม Tag นั้นครับ เช่น +- Department (Finance, Marketing) +- Environment (Production, Test, Dev) + +รวมถึงยังสามารถนำไปใช้ในการกำหนด Policy, ตรวจสอบค่าใช้จ่าย ตาม Tag ได้ด้วยน่ะครับ + +![](images/standards-infrastructure-20.png) + +### Role-Based Access Control (RBAC) +เป็นการจัดการกับ Access Control ให้กับ Resources ของเราครับ โดยเลือก Built-in Role ที่ Azure เตรียมมาให้แล้ว + +ตัวอย่างการใช้งาน +- อนุญาตให้ผู้ใช้รายหนึ่งจัดการ VMs ใน Subscription และผู้ใช้อีกรายจัดการ Virtual Networks +- อนุญาตให้กลุ่มผู้ดูแลระบบฐานข้อมูล (DBA) จัดการฐานข้อมูล SQL ใน Subscription +- อนุญาตให้ผู้ใช้จัดการทรัพยากรทั้งหมดใน Resource group หนึ่งๆ เช่น VMs, เว็บไซต์ และ Virtual Subnets +- อนุญาตให้แอปพลิเคชันเข้าถึงทรัพยากรทั้งหมดใน resource group หนึ่งๆ ได้ + +![](images/standards-infrastructure-21.png) + +#### แนวทางปฏิบัติที่ดีที่สุดสำหรับ RBAC +- แยกหน้าที่และให้สิทธิ์การเข้าถึงกับผู้ใช้งานเท่าที่จำเป็น +- ควรให้สิทธิ์ผู้ใช้งานในระดับต่ำสุดที่พวกเขาต้องใช้ในการทำงาน +- ใช้ Resource Locks เพื่อให้แน่ใจว่า ไม่มีการแก้ไขหรือลบทรัพยากรที่สำคัญ + +### Resource Lock +Azure ช่วยป้องกันความผิดพลาดในการเผลอลบ Resource ได้ด้วยการปรับให้ Resource อยู่ในสถานะ Lock เหมาะกับ Resources ที่สำคัญมากๆที่ห้ามถูกลบนะครับ + +สามารถนำ Resource Lock ไปใช้กับ Subscription, Resource Group และ Resource โดยสามารถสืบทอดไปยังระดับล่างได้เมื่อกำหนด Resource Lock ในระดับที่สูงกว่า + +#### Resource Lock Mode +- **Delete** คือการอนุญาตให้เข้าถึงและใช้งาน Resources ได้ทุกอย่าง ยกเว้นไม่สามารถที่จะลบได้ +- **Read-only** จะอนุญาตเฉพาะการอ่าน (Read) Resources เท่านั้น ไม่สามารถแก้ไขหรือการลบทรัพยากรได้ +ตัวอย่างการติดตั้ง Resource Lock ไปยัง Resource Group + +![](images/standards-infrastructure-22.png) + +

ตัวอย่างการติดตั้ง Resource Lock ไปยัง Resource Group +

+ +เมื่อเราทดลองลบ Resources ที่อยู่ใน Resource Group ที่เราติดตั้ง Resource Lock ไว้จะพบ Error ว่าไม่สามารถลบได้ดังนี้ + +![](images/standards-infrastructure-23.png) + +

ลบไม่ได้นะฮ้าบบบบ เรากันไว้แร้น +

+ + + + +## เนื้อหาเพิ่มเติมที่เกี่ยวข้องกับการสอบครับ +- [Digital Skill — Azure Fundamentals (ภาษาไทย)](https://course.digitalskill.org/courses/course-v1:Microsoft+AZ-LEARN-0+2019/about) +- [ExamTopics — AZ-900 Exam Actual Questions](https://www.examtopics.com/exams/microsoft/az-900/view/1/) +- [Facebook — Data TH.com — Data Science ชิลชิล (ภาษาไทย)](https://www.facebook.com/datasciencechill/posts/872166769835048/) +- [Github — Microsoft Certified Azure Fundamentals (ภาษาไทย)](https://github.com/Tizcom/AZ-900/blob/main/Microsoft%20Azure%20Fundamentals_Handout.pdf) +- [Medium — Azure AZ-900 Exam Preparation Guide: How to pass in 3 days](https://medium.com/weareservian/azure-az-900-exam-preparation-guide-how-to-pass-in-3-days-dabf5534507a) +- [Medium — วีธีลงทะเบียนสอบ AZ-900 Online ที่บ้านด้วย Azure Exam Voucher](https://medium.com/@ponggun/%E0%B8%A7%E0%B8%B5%E0%B8%98%E0%B8%B5%E0%B8%A5%E0%B8%87%E0%B8%97%E0%B8%B0%E0%B9%80%E0%B8%9A%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AA%E0%B8%AD%E0%B8%9A-az-900-online-%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-azure-exam-voucher-c0d027253d34) +- [Medium — AZ-900 รีวิวแนวข้อสอบและวิธีลงสอบที่ศูนย์สอบ](https://link.medium.com/bX2BY3vin8) +- [Medium — AZ-900 สรุปละเอียดสุดๆ](https://medium.com/@manita.swwp/virtual-academy-for-microsoft-azure-fundamental-in-thai-language-f5354c2f8634) +- [Microsoft Learn-Azure Fundamentals](https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals/) +- [Udemy — Microsoft Azure — Beginner’s Guide + AZ-900 (มีค่าใช้จ่าย)](https://www.udemy.com/course/microsoft-azure-beginners-guide) +- [WhizLabs — AZ-900 (มีค่าใช้จ่าย)](https://www.whizlabs.com/learn/course/microsoft-azure-az-900) +- [Workshop เล็กๆจาก Microsoft สำหรับ AZ-900 ครับผม](https://microsoftlearning.github.io/AZ-900T0x-MicrosoftAzureFundamentals/) + +## สรุป +ในบทความนี้เราจะได้เรียนรู้การจัดการกับ Governance and Compliance เพื่อบังคับการใช้งานบน Azure ให้เป็นไปตามมาตราฐานที่องค์กรกำหนดน่ะครับ โดยจะมีบริการที่เกี่ยวข้องคือ Azure Manage Group, Azure Policy และ Azure Blueprints + +Azure ยังเตรียมช่องทางในตรวจสอบบริการว่าสอดคล้องกับ Compliance หรือไม่ เช่น GDPR, ISO โดยจะประกอบด้วยบริการที่เกี่ยวข้องคือ Microsoft Privacy Statement, Microsoft Trust Center, Service Trust Portal (STP) และ Compliance Manager + +เรายังได้ทราบถึงบริการด้าน Monitoring บน Azure เช่น Azure Monitor และ Azure Service Health + +ในส่วนของการจัดการกับบริการทั้งหมดของ Azure เราจะทำผ่าน Azure Resource Manager ครับ ซึ่งจะมีบริการย่อยๆที่ช่วยเราจัดการ Resources เช่น Resource Group, Tag, Role-Based Access Control และ Resource Lock ครับ + +หวังว่าเนื้อหาในบทความนี้จะช่วยให้เราเข้าใจ Governance and Compliance, Monitoring และการจัดการ Resources มากขึ้นน่ะครับ \ No newline at end of file diff --git a/paths/azure/fundamental/006-predict-optimize-costs.md b/paths/azure/fundamental/006-predict-optimize-costs.md new file mode 100644 index 0000000..3eb3688 --- /dev/null +++ b/paths/azure/fundamental/006-predict-optimize-costs.md @@ -0,0 +1,215 @@ +--- +title: Predict Costs and Optimize Spending +showMetadata: true +editable: true +order: 5 +--- + +# Predict Costs and Optimize Spending + +![](images/predict-optimize-costs-01.png) +

ย้ายจาก On Premise มา Azure แล้วราคาลดลงเยอะเลยครับพี่น้องงงงง!

+ +## Introduction +เนื้อหาในบทความนี้เป็นส่วนที่สำคัญที่สุดในการพิจารณาเลือกใช้ Azure ครับ เพราะเราต้องเลือกสมดุลระหว่างค่าใช้จ่าย (Cost) กับ ประสิทธิภาพ (Performance) ที่ได้รับ เพราะลูกค้าจำเป็นต้องทราบค่าใช้จ่ายทั้งหมดก่อนที่จะตัดสินใจว่าจะเลือกใช้บริการที่เรานำเสนอหรือไหมครับ + +คำถามที่เราต้องเตรียมคำตอบให้พร้อมอยู่เสมอคือ +- บริการที่เราจะใช้ทั้งหมดนั้นมีค่าใช้จ่ายต่อเดือนเท่าไหร่ +- เราจะลดค่าบริการยังไงได้บ้าง (ใช้ Azure Advisor ช่วยแนะนำเบื้องต้นได้น่ะครับ : P) + +ตัวอย่างการคิดค่าบริการ เช่น ค่าใช้จ่ายของ Azure VM จะประกอบไปด้วยค่าใช้จ่าย 2 ส่วนคือ +- **Compute Service** เกี่ยวข้องกับ Spec (CPU, RAM)ของ Server +- **Storage Service** เกี่ยวกับพื้นที่จัดเก็บข้อมูล (Disk) + +## Purchase Azure Products and Services + +### ประเภทของลูกค้า +- **องค์กร (Enterprise)** — ลูกค้าจากองค์กรได้มีการทำสัญญาลงนามข้อตกลงในการใช้บริการจาก Azure ซึ่งส่วนใหญ่จะจ่ายเป็นรายปี +- **สร้างผ่าน Website (Web Direct)** —เป็นกลุ่ม -ลูกค้าทั่วไปที่สมัครผ่าน Website โดยตรงซึ่งจะมีการชำระเงินแบบรายเดือนผ่าน Website +- **ผู้ให้บริการ Cloud Solution (Cloud Solution Provider)** — ลูกค้าซื้อบริการ ผ่านบริษัทคู่ค้า (Cloud Solution (CSP)) ของ Microsoft การชำระเงินจะทำผ่าน CSP ของลูกค้า + +## Azure Marketplace +เป็นพื้นที่รวบรวมบริการทั้งหมดของ Azure ที่มาจาก Microsoft และ Partners + +โดยจะมีการแบ่งตามหมวดหมู่ เพื่อให้สะดวกในการเลือกใช้และติดตั้งได้อย่างรวดเร็วครับ + +แต่เราต้องพิจารณา Publisher ให้ดีถ้า Publisher เป็น Microsoft ค่าใช้จ่ายจะคิดตาม Azure Subscription เลย แต่ถ้าเป็น Partners ค่าใช้จ่ายจะคิดอยู่ภายนอก Azure Subscription หรือก็คือจ่ายตามผู้ใช้บริการครับ + +เช่น ถ้าเราเลือก SendGrid ใน Azure Marketplace เพื่อทำบริการส่งเมล์ เราก็จ่ายกับ SendGrid โดยตรง ไม่ได้ถูกหักที่ Azure Subscription นะครับ + +ตัวอย่างบริการเด่นๆเช่น Virtual Machine Images, Security, Networking, Software as a service, Storage, Databases, Blockchain + +![](images/predict-optimize-costs-02.png) + +## Usage Meters +เมื่อใดที่เราสร้าง Resource แล้วนั้น Azure จะสร้าง Meter ขึ้นมาอย่างน้อยหนึ่ง Instance เพื่อติดตามการใช้งานและคำนวณค่าใช้บริการของเราครับ + +โดยจะมีค่าใช้จ่ายที่แตกต่างกันตามประเภทของ Resource ที่เลือก เช่น Azure VM, Azure App Service Plan และยังรวมไปถึง Pricing Tier ที่เลือก เช่น Free Tier, Standard Tier + +เมื่อเราชำระเงินตอนท้ายเดือนแล้ว Meter ก็จะถูกรีเซ็ตใหม่ เราสามารถตรวจสอบค่าใช้จ่ายบน Azure Portal ได้ตลอดเวลา เพื่อสรุปค่าใช้บริการในเดือนปัจจุบัน + +เรายังสามารถดูใบแจ้งหนี้จากรอบการเรียกเก็บเงินที่ผ่านมาได้อีกด้วยครับ + +![](images/predict-optimize-costs-03.png) +

ตัวอย่างรายงานค่าใช้จ่ายในรอบ 2 วัน

+ +## Factors Affecting Costs +มีปัจจัยหลักๆอยู่ 4 ข้อที่มีผลกับค่าบริการบน Azure นะครับ + +### Resource Type +จะเป็นปัจจัยสำคัญที่มีผลกับค่าใช้จ่ายบน Azure มากที่สุดนะครับ เช่นถ้าเราเลือก Resource ที่มี Service Model แบบ IaaS ก็จะมีค่าใช้จ่ายที่สูงกว่า PaaS หรือ SaaS ค่อนข้างมาก + +### Services +ค่าใช้จ่ายจะแตกต่างกันตามประเภทของลูกค้าน่ะครับ ไม่ว่าจะเป็น Enterprise, Web Direct และ Cloud Solution + +> ในลักษณะการจ่ายเงินแบบ Prepaid ให้ระวังการซื้อแบบ Credit ล่วงหน้า เพราะถ้า Credit หมดแล้วระบบทั้งหมดจะหยุดทำงานไปเลย และถ้าหมดเกิน 90 วันทาง Azure จะลบ Resources ของเราทั้งหมดเลยครับ ถ้าเราใช้แบบ Postpaid คือจ่ายหลังจากที่เราใช้บริการแล้วจะจัดการได้ค่อนข้างสะดวกกว่า + +### Location +ค่าใช้จ่ายในการใช้งานจะแตกต่างกันไปตาม Azure Data Center ที่มีอยู่ทั่วโลก เพราะแต่ล่ะพื้นที่ก็มีต้นทุน Infrastructure ที่แตกต่างกันครับ + +### Azure Billing Zones +จะเกี่ยวข้องกับเรื่องของข้อมูลที่เข้าและออกจาก Azure Data Center (เรียกว่า Bandwidth) ข้อมูลที่เข้าสู่ Azure Data Center (เรียกว่า Inbound) ส่วนใหญ่จะฟรี ส่วนข้อมูลที่ออกจาก Azure Data Center (เรียกว่า Outbound) จะถูกคิดเงินในรูปแบบ Azure Billing Zones โดยแต่ล่ะ Zone ก็จะมีราคาที่แตกต่างกันครับ + +- **Zone 1**: สหรัฐอเมริกา, ยุโรป, แคนาดา, สหราชอาณาจักร, ฝรั่งเศส +- **Zone 2**: เอเชียแปซิฟิก, ญี่ปุ่น, ออสเตรเลีย, อินเดีย, เกาหลี +- **Zone 3**: บราซิล +- **DE Zone 1**: เยอรมนี + +> ส่วนใหญ่จะฟรีขาออก 5 GB แรกต่อเดือน หลังจากนั้นคุณจะถูกเรียกเก็บเงินในราคาคงที่ต่อ GB + +## Azure Pricing Calculator +ก่อนที่เราจะตัดสินใจเลือกใช้บริการ เราสามารถคำนวนค่าใช้จ่ายเบื้องต้น (Estimate Costs) ได้ด้วย Azure Pricing Calculator นะครับ และนำข้อมูลนี้ไปเสนอกับทีมได้ ด้วยการ Export ออกมาเป็น Excel File + +สามารถทดลองได้ผ่าน ลิ้งข้างล่างนี้นะครับ +- [Azure Pricing calculator](https://azure.microsoft.com/en-in/pricing/calculator/) + +![](images/predict-optimize-costs-04.png) + +## Azure Advisor +ในกรณีที่ติดตั้งใช้งาน Resource ไปแล้วและอยากรู้ว่าค่าใช้จ่ายในแต่ล่ะเดือนเป็นอย่างไร สามารถที่จะปรับลดค่าใช้จ่ายให้ถูกลงได้ไหม + +เราสามารถใช้ Azure Advisor มาช่วยตรวจสอบ High Availability, Security, Performance, Operational Excellence, Cost ได้ทุก Subscription ของเราทั้งหมด และแนะนำแนวทางแก้ไขให้กับเราในการปรับการใช้งานให้เหมาะสมกับค่าใช้บริการที่ต้องเสียไปครับ (Predict and Optimize with Cost Management) + +เช่น VM ของเราใช้ CPU น้อยกว่า 5% จึงควรลด VM Size ให้เล็กลงเพื่อให้เลือก CPU ที่เหมาะสมมากขึ้นซึ่งจะช่วยประหยัดเงินได้ครับ : ) + +![](images/predict-optimize-costs-05.png) + +![](images/predict-optimize-costs-06.png) +

เมื่อลองกดเข้าไปดูรายละเอียดในส่วนของ Cost จะพบคำแนะนำให้ลด Size ของ CPU ลงเพราะว่าใช้เฉลี่ยต่อเดือนแค่ 5% ซึ่งจะช่วยประหยัดเงินได้ 101.18 USD ต่อเครื่องครับ เยอะมากกกก !

+ +## Azure Cost Management +เป็นบริการฟรีที่ช่วยสร้าง Report ในเรื่องของค่าใช้จ่าย และยังสามารถวิเคราะห์, ตั้งงบประมาณเพื่อจำกัดค่าใช้จ่ายได้อีกด้วยครับ + +![](images/predict-optimize-costs-07.png) + +## Azure Total Cost of Ownership (TCO) Calculator +เป็น Web Based Tool ที่ใช้เพื่อเปรียบเทียบค่าใช้ในการย้ายทรัพยากรบน On Premise ขึ้นมาบน Azure เพื่อเปรียบเทียบค่าใช้จ่ายว่ามีความแตกต่างกันอย่างไรบ้าง เหมาะสำหรับการวางแผนประเมินค่าใช้จ่ายในการทำ Cloud Migration ครับ + +สามารถทดลองใช้งานได้ที่นี้นะครับ +- [Total Cost of Ownership (TCO) Calculator](https://azure.microsoft.com/en-us/pricing/tco/calculator/) + +![](images/predict-optimize-costs-08.png) + +## Save on Infrastructure Costs + +### Use Azure Credit +ถ้าเราซื้อ Visual Studio Subscription จะทำให้เรามี Credit ใน Azure ให้ใช้ต่อเดือนเพิ่มเติมน่ะครับ +- 50 USD ต่อเดือนสำหรับ Visual Studio Professional +- 150 USD ต่อเดือนสำหรับ Visual Studio Enterprise + +### Use Spending Limit +ถ้าเราใช้ Azure Free Account ก็จะมีการจำกัดปริมาณการใช้งาน (Spending Limit) ของเราให้ไม่เกินที่ Azure กำหนดให้ใช้ฟรีนะครับ + +### Use Reserved Instances (RI) +เป็นทางเลือกเพื่อลดค่าใช้จ่ายสำหรับบริการ Azure VM โดยเฉพาะนะครับ +RI สามารถลดค่าใช้จ่ายลงได้เยอะเลยครับ เพราะเป็นการซื้อสัญญาล่วงหน้าในแบบ 1 ปี (ถูกกว่าแบบ Pay as you go) หรือ 3 ปี (ถูกกว่าแบบ 1 ปี) ซึ่งจะเหมาะเป็นอย่างยิ่งในการพิจารณาก่อนที่จะเริ่มสร้าง Virtual Machine ที่วางแผนไว้แล้วว่าจะใช้เป็นระยะเวลานาน, ทราบจำนวนเครื่อง, Spec ที่ต้องใช้, เปิดใช้แบบ 24x7x365 + +![](images/predict-optimize-costs-09.png) + +### Choose Low-Cost Locations and Regions +อาจจะพิจารณาเลือก Region ที่มีค่าใช้จ่ายถูกลงโดยยอมแลกกับ Latency ที่มากขึ้น และ Compliance ในการเก็บข้อมูล + +### Research Available Cost-Saving Offers +บางช่วงเวลาจะมี Promotion พิเศษ ที่ทำให้ค่าใช้บริการถูกลงนะครับ เช่นช่วงนี้ถ้าใช้ Azure App Service Linux จะใช้งานฟรีใน 1 เดือนแรก + +### Right-Size Underutilized Virtual Machines +เลือก Size ของ VM ให้เหมาะสมจะช่วยควบคุมค่าใช้จ่ายเช่นกันครับ เช่นสมมติว่าเรามี VM ด้วย Size Standard_D4sv3 แต่ VM นั้นส่วนใหญ่ไม่ได้ใช้งานถึง 90% ของเวลาทั้งหมด หากปรับขนาด VM นี้เป็น Standard_D2sv3 เราจะสามารถลดต้นทุนการประมวลผลลง 50% เลยครับ + +![](images/predict-optimize-costs-10.png) + +### Deallocate Virtual Machines in Off Hours +คือการปิดการใช้งาน VM ในช่วงเวลาที่เราได้ไม่ใช้นั้นจะช่วยควบคุมค่าใช้จ่ายได้อีกช่องทางนึงนะครับ + +โดยต้องมั่นใจว่าเรา Stop VM ของเราในแบบ Deallocate ผ่าน Azure Portal หรือ Powershell เท่านั้น + +![](images/predict-optimize-costs-11.png) + +

ภาพจาก build5nines.com

+ +เพราะใน State Deallocate นี้ Azure จะไม่คิดเงินค่า VM ของเรา (ในส่วน Computation นะครับที่ไม่คิด แต่ Storage ยังคิดตามเดิม) เพราะ Azure ไม่ได้สำรอง Compute Service ให้เรา ทำให้เวลาที่เรา Start VM จาก State Deallocate จะใช้เวลาอยู่พักนึงถึงจะรันได้ + +ถ้าแค่ Shutdown ผ่าน OS ระบบจะยังคิดเงินเหมือนเดิมน่ะครับ เพราะถ้า Shutdown แล้วระบบอยู่ใน สถานะ Stop นั้น Azure ยังสำรอง Compute Service ไว้อยู่ถ้าเรา Start มันจะเร็วมาก + +### Delete Unused Virtual Machines +ลบ VM ที่ไม่ได้ใช้เพื่อประหยัดทั้ง Compute Service และ Storage Service + +### Migrate to PaaS or SaaS Services +ค่าใช้จ่าย PaaS หรือ Saas ถูกกว่าเยอะครับ ดูแลง่ายกว่าด้วย อิอิ ^^ + +### Save on Licensing Costs +ค่าใช้จ่ายที่สำคัญอีกส่วนนึงคือเรื่องของ License นะครับ เพราะนอกจากที่เราต้องจ่ายสำหรับทรัพยากรบน Azure แล้ว License ของ Software ก็เป็นค่าใช้จ่ายเสริมที่เราต้องจ่ายด้วยเช่นกันครับ + +จะพิเศษหน่อยเฉพาะ Azure VM Windows ครับที่ไม่คิดค่า License Windows Data Center แต่ถ้าเราเอา Software อื่นมาติดตั้งที่ VM ของเราก็จะต้องเสียค่า License ของ Software นั้นเพิ่มเติมน่ะครับ + +### Azure Hybrid Benefit for Windows Server +เราสามารถประหยัดค่าบริการบน Azure ในส่วนของ Windows VM ถ้าเรามี License Windows Server ที่มาจาก On Premise แล้ว + +แต่การจะมีสิทธิ์ได้รับผลประโยชน์นี้ สิทธิ์การใช้งาน Windows ของคุณต้องได้รับการคุ้มครองโดย Software Assurance เท่านั้น + +### Azure Hybrid Benefit for SQL Server +เราสามารถนำ SQL Server License ของเราที่ได้รับความคุ้มครองโดย Software Assurance มาเป็นส่วนลดในการใช้บริการ SQL บน Azure ได้ครับ + +คุณสามารถใช้สิทธิประโยชน์นี้ได้แม้ว่าทรัพยากร Azure จะทำงานอยู่ แต่อัตราที่ลดลงจะเริ่มคำนวณตั้งแต่เวลาที่คุณเลือกไว้ใน portal และจะไม่มีการออกเครดิตย้อนหลัง + +### Use Dev/Test Subscription Offers +มีส่วนลดที่ถูกว่า Pay As You Go เหมาะสำหรับ Developer ในการนำไปพัฒนาระบบ บน Non-production Environments + +### Bring Your Own SQL Server License (BYOL) +สำหรับลูกค้า Enterprise Agreement Subscription นั้นสามารถนำ License SQL Server จาก On Premise มาเป็นส่วนลดประหยัดค่าบริการบน Azure ในส่วนของ SQL ได้น่ะครับ +ขั้นตอนจะเริ่มจากการค้นหา BYOL ใน Marketplace เพื่อค้นหา Image เหล่าที่เกี่ยวข้องเพื่อสร้าง Windows VM และติดตั้ง SQL Server + +![](images/predict-optimize-costs-12.png) + +### Use SQL Server Developer Edition +ถ้าเราต้องการทำสอบ Features ที่เหมือนกับ SQL Enterprise Edition เราสามารถใช้ SQL Developer Edition มาทดลองได้สำหรับงาน Non Production เท่านั้น + +### Use Constrained Instance Sizes for Database Workloads +ราคาของ SQL License จะมีผลกับจำนวนของ CPU โดยตรง เพราะงั้นถ้าเราลดจำนวนลง CPU ลงให้เหมาะสม เราจะสามารถประหยัดค่าใช้จ่ายได้มากขึ้นครับ + +![](images/predict-optimize-costs-13.png) + +## เนื้อหาเพิ่มเติมที่เกี่ยวข้องกับการสอบครับ +- [Digital Skill — Azure Fundamentals (ภาษาไทย)](https://course.digitalskill.org/courses/course-v1:Microsoft+AZ-LEARN-0+2019/about) +- [ExamTopics — AZ-900 Exam Actual Questions](https://www.examtopics.com/exams/microsoft/az-900/view/1/) +- [Facebook — Data TH.com — Data Science ชิลชิล (ภาษาไทย)](https://www.facebook.com/datasciencechill/posts/872166769835048/) +- [Github — Microsoft Certified Azure Fundamentals (ภาษาไทย)](https://github.com/Tizcom/AZ-900/blob/main/Microsoft%20Azure%20Fundamentals_Handout.pdf) +- [Medium — Azure AZ-900 Exam Preparation Guide: How to pass in 3 days](https://medium.com/weareservian/azure-az-900-exam-preparation-guide-how-to-pass-in-3-days-dabf5534507a) +- [Medium — วีธีลงทะเบียนสอบ AZ-900 Online ที่บ้านด้วย Azure Exam Voucher](https://medium.com/@ponggun/%E0%B8%A7%E0%B8%B5%E0%B8%98%E0%B8%B5%E0%B8%A5%E0%B8%87%E0%B8%97%E0%B8%B0%E0%B9%80%E0%B8%9A%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AA%E0%B8%AD%E0%B8%9A-az-900-online-%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-azure-exam-voucher-c0d027253d34) +- [Medium — AZ-900 รีวิวแนวข้อสอบและวิธีลงสอบที่ศูนย์สอบ](https://link.medium.com/bX2BY3vin8) +- [Medium — AZ-900 สรุปละเอียดสุดๆ](https://medium.com/@manita.swwp/virtual-academy-for-microsoft-azure-fundamental-in-thai-language-f5354c2f8634) +- [Microsoft Learn-Azure Fundamentals](https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals/) +- [Udemy — Microsoft Azure — Beginner’s Guide + AZ-900 (มีค่าใช้จ่าย)](https://www.udemy.com/course/microsoft-azure-beginners-guide) +- [WhizLabs — AZ-900 (มีค่าใช้จ่าย)](https://www.whizlabs.com/learn/course/microsoft-azure-az-900) +- [Workshop เล็กๆจาก Microsoft สำหรับ AZ-900 ครับผม](https://microsoftlearning.github.io/AZ-900T0x-MicrosoftAzureFundamentals/) + +## สรุป +ในบทความนี้เราได้เรียนรู้แนวทางในการจัดการกับค่าใช้จ่ายบน Azure อย่างมีประสิทธิภาพดังนี้ +- 4 ปัจจัยที่มีผลในเรื่องของราคา ประกอบไปด้วย Resource Type, Services, Location, Azure Billing Zones +- แนวทางในการประเมินค่าใช้จ่ายด้วย Azure Pricing Calculator ก่อนที่จะใช้งานจริงๆ +- หลังจากที่เราใช้งานระบบไปสักพักนึงแล้ว เราสามารถควบคุมค่าใช้จ่ายให้เหมาะสมมากขึ้น ด้วย Azure Advisor +- วิเคราะห์ค่าใช้จ่ายที่เกิดขึ้นอย่างละเอียดด้วย Azure Cost Management +- เปรียบเทียบค่าบริหารระหว่าง On-premise และ On Azure +- แนวทางในการลดค่าใช้จ่าย เช่น การใช้ Reserved Instances (RI), เลือก VM Size ที่เหมาะสม, ย้าย IaaS ไปเป็น PaaS +- ลดค่าใช้จ่ายในส่วนของ Software License ด้วยการนำ License จาก On-premise มาใช้ หรือ เลือก Development License สำหรับบงาน Non-production + +ผมหวังว่าเนื้อหาในบทความนี้จะช่วยให้เราเข้าใจแนวทางในการจัดการกับค่าใช้จ่ายบน Azure มากขึ้นน่ะครับ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-01.png b/paths/azure/fundamental/images/architecture-service-guarantees-01.png new file mode 100644 index 0000000..20ca741 Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-01.png differ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-02.png b/paths/azure/fundamental/images/architecture-service-guarantees-02.png new file mode 100644 index 0000000..572760b Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-02.png differ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-03.png b/paths/azure/fundamental/images/architecture-service-guarantees-03.png new file mode 100644 index 0000000..4053c08 Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-03.png differ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-04.png b/paths/azure/fundamental/images/architecture-service-guarantees-04.png new file mode 100644 index 0000000..9522d8a Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-04.png differ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-05.png b/paths/azure/fundamental/images/architecture-service-guarantees-05.png new file mode 100644 index 0000000..ab1c42e Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-05.png differ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-06.png b/paths/azure/fundamental/images/architecture-service-guarantees-06.png new file mode 100644 index 0000000..20ca741 Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-06.png differ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-07.png b/paths/azure/fundamental/images/architecture-service-guarantees-07.png new file mode 100644 index 0000000..9df7cc1 Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-07.png differ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-08.png b/paths/azure/fundamental/images/architecture-service-guarantees-08.png new file mode 100644 index 0000000..291211a Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-08.png differ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-09.png b/paths/azure/fundamental/images/architecture-service-guarantees-09.png new file mode 100644 index 0000000..0b702a8 Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-09.png differ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-10.png b/paths/azure/fundamental/images/architecture-service-guarantees-10.png new file mode 100644 index 0000000..84681d6 Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-10.png differ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-11.jpg b/paths/azure/fundamental/images/architecture-service-guarantees-11.jpg new file mode 100644 index 0000000..3cba551 Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-11.jpg differ diff --git a/paths/azure/fundamental/images/architecture-service-guarantees-12.png b/paths/azure/fundamental/images/architecture-service-guarantees-12.png new file mode 100644 index 0000000..4719d4e Binary files /dev/null and b/paths/azure/fundamental/images/architecture-service-guarantees-12.png differ diff --git a/paths/azure/fundamental/images/cloud-concepts-01.png b/paths/azure/fundamental/images/cloud-concepts-01.png new file mode 100644 index 0000000..0476802 Binary files /dev/null and b/paths/azure/fundamental/images/cloud-concepts-01.png differ diff --git a/paths/azure/fundamental/images/cloud-concepts-02.png b/paths/azure/fundamental/images/cloud-concepts-02.png new file mode 100644 index 0000000..0d63ad9 Binary files /dev/null and b/paths/azure/fundamental/images/cloud-concepts-02.png differ diff --git a/paths/azure/fundamental/images/cloud-concepts-03.png b/paths/azure/fundamental/images/cloud-concepts-03.png new file mode 100644 index 0000000..cec0af2 Binary files /dev/null and b/paths/azure/fundamental/images/cloud-concepts-03.png differ diff --git a/paths/azure/fundamental/images/cloud-concepts-04.png b/paths/azure/fundamental/images/cloud-concepts-04.png new file mode 100644 index 0000000..627c738 Binary files /dev/null and b/paths/azure/fundamental/images/cloud-concepts-04.png differ diff --git a/paths/azure/fundamental/images/cloud-concepts-05.png b/paths/azure/fundamental/images/cloud-concepts-05.png new file mode 100644 index 0000000..0b988b9 Binary files /dev/null and b/paths/azure/fundamental/images/cloud-concepts-05.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-01.png b/paths/azure/fundamental/images/core-cloud-services-01.png new file mode 100644 index 0000000..fb9efc0 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-01.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-02.png b/paths/azure/fundamental/images/core-cloud-services-02.png new file mode 100644 index 0000000..227e4e4 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-02.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-03.png b/paths/azure/fundamental/images/core-cloud-services-03.png new file mode 100644 index 0000000..49de706 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-03.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-04.png b/paths/azure/fundamental/images/core-cloud-services-04.png new file mode 100644 index 0000000..9831bce Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-04.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-05.png b/paths/azure/fundamental/images/core-cloud-services-05.png new file mode 100644 index 0000000..2ea83b1 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-05.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-06.png b/paths/azure/fundamental/images/core-cloud-services-06.png new file mode 100644 index 0000000..18ed752 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-06.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-07.png b/paths/azure/fundamental/images/core-cloud-services-07.png new file mode 100644 index 0000000..22b3837 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-07.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-08.png b/paths/azure/fundamental/images/core-cloud-services-08.png new file mode 100644 index 0000000..4f57f28 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-08.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-09.png b/paths/azure/fundamental/images/core-cloud-services-09.png new file mode 100644 index 0000000..fb9efc0 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-09.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-10.png b/paths/azure/fundamental/images/core-cloud-services-10.png new file mode 100644 index 0000000..17e7266 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-10.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-11.png b/paths/azure/fundamental/images/core-cloud-services-11.png new file mode 100644 index 0000000..7f2ec7a Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-11.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-12.png b/paths/azure/fundamental/images/core-cloud-services-12.png new file mode 100644 index 0000000..502b48c Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-12.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-13.png b/paths/azure/fundamental/images/core-cloud-services-13.png new file mode 100644 index 0000000..48e38d4 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-13.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-14.png b/paths/azure/fundamental/images/core-cloud-services-14.png new file mode 100644 index 0000000..6615329 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-14.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-15.png b/paths/azure/fundamental/images/core-cloud-services-15.png new file mode 100644 index 0000000..7573901 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-15.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-16.png b/paths/azure/fundamental/images/core-cloud-services-16.png new file mode 100644 index 0000000..870ff43 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-16.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-17.png b/paths/azure/fundamental/images/core-cloud-services-17.png new file mode 100644 index 0000000..7c0d738 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-17.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-18.png b/paths/azure/fundamental/images/core-cloud-services-18.png new file mode 100644 index 0000000..a2b2bd7 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-18.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-19.png b/paths/azure/fundamental/images/core-cloud-services-19.png new file mode 100644 index 0000000..89196ba Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-19.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-20.png b/paths/azure/fundamental/images/core-cloud-services-20.png new file mode 100644 index 0000000..846ec58 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-20.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-21.png b/paths/azure/fundamental/images/core-cloud-services-21.png new file mode 100644 index 0000000..b354d38 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-21.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-22.png b/paths/azure/fundamental/images/core-cloud-services-22.png new file mode 100644 index 0000000..d5b0f46 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-22.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-23.png b/paths/azure/fundamental/images/core-cloud-services-23.png new file mode 100644 index 0000000..85286e2 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-23.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-24.png b/paths/azure/fundamental/images/core-cloud-services-24.png new file mode 100644 index 0000000..30ea82c Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-24.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-25.png b/paths/azure/fundamental/images/core-cloud-services-25.png new file mode 100644 index 0000000..ab7f11a Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-25.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-26.png b/paths/azure/fundamental/images/core-cloud-services-26.png new file mode 100644 index 0000000..63bb497 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-26.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-27.png b/paths/azure/fundamental/images/core-cloud-services-27.png new file mode 100644 index 0000000..558f4f4 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-27.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-28.png b/paths/azure/fundamental/images/core-cloud-services-28.png new file mode 100644 index 0000000..308a6e5 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-28.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-29.png b/paths/azure/fundamental/images/core-cloud-services-29.png new file mode 100644 index 0000000..bb52df5 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-29.png differ diff --git a/paths/azure/fundamental/images/core-cloud-services-30.png b/paths/azure/fundamental/images/core-cloud-services-30.png new file mode 100644 index 0000000..53156d5 Binary files /dev/null and b/paths/azure/fundamental/images/core-cloud-services-30.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-01.png b/paths/azure/fundamental/images/predict-optimize-costs-01.png new file mode 100644 index 0000000..59c624c Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-01.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-02.png b/paths/azure/fundamental/images/predict-optimize-costs-02.png new file mode 100644 index 0000000..b9fc3bd Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-02.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-03.png b/paths/azure/fundamental/images/predict-optimize-costs-03.png new file mode 100644 index 0000000..0a34357 Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-03.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-04.png b/paths/azure/fundamental/images/predict-optimize-costs-04.png new file mode 100644 index 0000000..50985a4 Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-04.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-05.png b/paths/azure/fundamental/images/predict-optimize-costs-05.png new file mode 100644 index 0000000..b43d797 Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-05.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-06.png b/paths/azure/fundamental/images/predict-optimize-costs-06.png new file mode 100644 index 0000000..23e5cd4 Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-06.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-07.png b/paths/azure/fundamental/images/predict-optimize-costs-07.png new file mode 100644 index 0000000..5bffb75 Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-07.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-08.png b/paths/azure/fundamental/images/predict-optimize-costs-08.png new file mode 100644 index 0000000..2d47169 Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-08.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-09.png b/paths/azure/fundamental/images/predict-optimize-costs-09.png new file mode 100644 index 0000000..6345167 Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-09.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-10.png b/paths/azure/fundamental/images/predict-optimize-costs-10.png new file mode 100644 index 0000000..17d30fb Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-10.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-11.png b/paths/azure/fundamental/images/predict-optimize-costs-11.png new file mode 100644 index 0000000..7d90edd Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-11.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-12.png b/paths/azure/fundamental/images/predict-optimize-costs-12.png new file mode 100644 index 0000000..d440423 Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-12.png differ diff --git a/paths/azure/fundamental/images/predict-optimize-costs-13.png b/paths/azure/fundamental/images/predict-optimize-costs-13.png new file mode 100644 index 0000000..5eb0381 Binary files /dev/null and b/paths/azure/fundamental/images/predict-optimize-costs-13.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-01.png b/paths/azure/fundamental/images/security-responsibility-trust-01.png new file mode 100644 index 0000000..53bb1c8 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-01.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-02.png b/paths/azure/fundamental/images/security-responsibility-trust-02.png new file mode 100644 index 0000000..01f1d3b Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-02.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-03.png b/paths/azure/fundamental/images/security-responsibility-trust-03.png new file mode 100644 index 0000000..0fe1154 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-03.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-04.png b/paths/azure/fundamental/images/security-responsibility-trust-04.png new file mode 100644 index 0000000..b17d36c Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-04.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-05.png b/paths/azure/fundamental/images/security-responsibility-trust-05.png new file mode 100644 index 0000000..ca58822 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-05.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-06.png b/paths/azure/fundamental/images/security-responsibility-trust-06.png new file mode 100644 index 0000000..4dce71d Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-06.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-07.png b/paths/azure/fundamental/images/security-responsibility-trust-07.png new file mode 100644 index 0000000..bcd985f Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-07.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-08.png b/paths/azure/fundamental/images/security-responsibility-trust-08.png new file mode 100644 index 0000000..c0f7d12 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-08.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-09.png b/paths/azure/fundamental/images/security-responsibility-trust-09.png new file mode 100644 index 0000000..fb6baf6 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-09.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-10.png b/paths/azure/fundamental/images/security-responsibility-trust-10.png new file mode 100644 index 0000000..43efa8c Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-10.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-11.png b/paths/azure/fundamental/images/security-responsibility-trust-11.png new file mode 100644 index 0000000..3c7f505 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-11.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-12.png b/paths/azure/fundamental/images/security-responsibility-trust-12.png new file mode 100644 index 0000000..1197dbe Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-12.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-13.png b/paths/azure/fundamental/images/security-responsibility-trust-13.png new file mode 100644 index 0000000..bd7721e Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-13.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-14.png b/paths/azure/fundamental/images/security-responsibility-trust-14.png new file mode 100644 index 0000000..7b9d6a8 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-14.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-15.png b/paths/azure/fundamental/images/security-responsibility-trust-15.png new file mode 100644 index 0000000..d083eea Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-15.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-16.png b/paths/azure/fundamental/images/security-responsibility-trust-16.png new file mode 100644 index 0000000..5530c4d Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-16.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-17.png b/paths/azure/fundamental/images/security-responsibility-trust-17.png new file mode 100644 index 0000000..81076f5 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-17.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-18.png b/paths/azure/fundamental/images/security-responsibility-trust-18.png new file mode 100644 index 0000000..843cda5 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-18.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-19.png b/paths/azure/fundamental/images/security-responsibility-trust-19.png new file mode 100644 index 0000000..e290f14 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-19.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-20.png b/paths/azure/fundamental/images/security-responsibility-trust-20.png new file mode 100644 index 0000000..8f59be1 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-20.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-21.png b/paths/azure/fundamental/images/security-responsibility-trust-21.png new file mode 100644 index 0000000..45351f0 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-21.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-22.png b/paths/azure/fundamental/images/security-responsibility-trust-22.png new file mode 100644 index 0000000..8ca2c55 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-22.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-23.png b/paths/azure/fundamental/images/security-responsibility-trust-23.png new file mode 100644 index 0000000..9b0b06f Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-23.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-24.png b/paths/azure/fundamental/images/security-responsibility-trust-24.png new file mode 100644 index 0000000..f3f5004 Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-24.png differ diff --git a/paths/azure/fundamental/images/security-responsibility-trust-25.png b/paths/azure/fundamental/images/security-responsibility-trust-25.png new file mode 100644 index 0000000..e27090e Binary files /dev/null and b/paths/azure/fundamental/images/security-responsibility-trust-25.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-01.png b/paths/azure/fundamental/images/standards-infrastructure-01.png new file mode 100644 index 0000000..09711d3 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-01.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-02.png b/paths/azure/fundamental/images/standards-infrastructure-02.png new file mode 100644 index 0000000..5a358b8 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-02.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-03.png b/paths/azure/fundamental/images/standards-infrastructure-03.png new file mode 100644 index 0000000..b43051f Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-03.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-04.png b/paths/azure/fundamental/images/standards-infrastructure-04.png new file mode 100644 index 0000000..d21430b Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-04.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-05.png b/paths/azure/fundamental/images/standards-infrastructure-05.png new file mode 100644 index 0000000..9f71ef1 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-05.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-06.png b/paths/azure/fundamental/images/standards-infrastructure-06.png new file mode 100644 index 0000000..68ca19d Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-06.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-07.png b/paths/azure/fundamental/images/standards-infrastructure-07.png new file mode 100644 index 0000000..b1bf2be Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-07.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-08.png b/paths/azure/fundamental/images/standards-infrastructure-08.png new file mode 100644 index 0000000..ce06d59 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-08.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-09.png b/paths/azure/fundamental/images/standards-infrastructure-09.png new file mode 100644 index 0000000..61a4aad Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-09.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-10.png b/paths/azure/fundamental/images/standards-infrastructure-10.png new file mode 100644 index 0000000..12dce0c Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-10.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-11.png b/paths/azure/fundamental/images/standards-infrastructure-11.png new file mode 100644 index 0000000..1b34836 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-11.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-12.png b/paths/azure/fundamental/images/standards-infrastructure-12.png new file mode 100644 index 0000000..69549e3 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-12.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-13.png b/paths/azure/fundamental/images/standards-infrastructure-13.png new file mode 100644 index 0000000..0409100 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-13.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-14.png b/paths/azure/fundamental/images/standards-infrastructure-14.png new file mode 100644 index 0000000..097223c Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-14.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-15.png b/paths/azure/fundamental/images/standards-infrastructure-15.png new file mode 100644 index 0000000..87f2109 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-15.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-16.png b/paths/azure/fundamental/images/standards-infrastructure-16.png new file mode 100644 index 0000000..ff557f3 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-16.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-17.png b/paths/azure/fundamental/images/standards-infrastructure-17.png new file mode 100644 index 0000000..1660b70 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-17.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-18.png b/paths/azure/fundamental/images/standards-infrastructure-18.png new file mode 100644 index 0000000..8881c2f Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-18.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-19.png b/paths/azure/fundamental/images/standards-infrastructure-19.png new file mode 100644 index 0000000..6fd53a8 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-19.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-20.png b/paths/azure/fundamental/images/standards-infrastructure-20.png new file mode 100644 index 0000000..822b1ba Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-20.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-21.png b/paths/azure/fundamental/images/standards-infrastructure-21.png new file mode 100644 index 0000000..a0102a9 Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-21.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-22.png b/paths/azure/fundamental/images/standards-infrastructure-22.png new file mode 100644 index 0000000..8421eaf Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-22.png differ diff --git a/paths/azure/fundamental/images/standards-infrastructure-23.png b/paths/azure/fundamental/images/standards-infrastructure-23.png new file mode 100644 index 0000000..afef6dd Binary files /dev/null and b/paths/azure/fundamental/images/standards-infrastructure-23.png differ diff --git a/paths/azure/index.md b/paths/azure/index.md new file mode 100644 index 0000000..8fe0286 --- /dev/null +++ b/paths/azure/index.md @@ -0,0 +1,20 @@ +--- +outline: deep +title: 'Azure' +description: รวบรวมเนื้อหาที่เกี่ยวกับการใช้งาน Microsoft Cloud - Azure ในการพัฒนาระบบ +--- + +# Azure Roadmap + +เรียนรู้วิธีการเป็นนักพัฒนา Azure ในปี 2024 ทีละขั้นตอน ด้วยเนื้อหาที่ครอบคลุมในรูปแบบ Roadmap ที่มีคำอธิบายสั้นๆ และโต้ตอบกับผู้เรียนได้ ทำให้คุณสามารถเรียนรู้ทุกสิ่งที่จำเป็นได้ในที่เดียว + +### สิ่งที่ควรรู้เบื้องต้นในการใช้งาน Azure + +1. **การตั้งค่าและจัดการบัญชี Azure**: เริ่มต้นด้วยการสร้างบัญชี Azure และทำความเข้าใจการใช้งานพอร์ทัล Azure +2. **บริการคอมพิวท์ (Compute Services)**: รู้จักกับ Virtual Machines, App Services, และ Azure Functions +3. **บริการจัดเก็บข้อมูล (Storage Services)**: เรียนรู้เกี่ยวกับ Blob Storage, Table Storage, และ File Storage +4. **เครือข่าย (Networking)**: ทำความเข้าใจกับ Virtual Networks (VNet), Load Balancers, และ VPN Gateways +5. **การรักษาความปลอดภัย (Security)**: สำรวจ Azure Active Directory (AAD), Role-Based Access Control (RBAC), และ Key Vault +6. **การจัดการข้อมูล (Database Services)**: ทำความรู้จักกับ Azure SQL Database, Cosmos DB, และ Data Lake +7. **การตรวจสอบและการจัดการ (Monitoring & Management)**: ใช้ Azure Monitor, Log Analytics, และ Application Insights +8. **DevOps บน Azure**: เรียนรู้การใช้ Azure DevOps และการตั้งค่า CI/CD Pipeline \ No newline at end of file diff --git a/paths/intro-to-cloud/index.md b/paths/intro-to-cloud/index.md new file mode 100644 index 0000000..66e2f25 --- /dev/null +++ b/paths/intro-to-cloud/index.md @@ -0,0 +1,11 @@ +--- +outline: deep +title: 'Introduction to Cloud Computing' +description: แนะนำคำศัพท์และความรู้เบื้องต้นก่อนที่เราจะเริ่มใช้ Cloud Computing กันครับผม +--- + +# Introduction to Cloud Computing +ขึ้นปี 2024 กันแล้วนะครับ Technology ต่างๆก็เติบโตกันไปไกลมากแล้ว แต่สิ่งนึงที่ยังคงสำคัญมากๆก็คือ “พื้นฐาน” ของความรู้ในแต่ละสาขาวิชาที่เกี่ยวข้องครับผม + +บทความนี้ตั้งใจให้ผู้ที่สนใจในเรื่องของ Cloud Computing แต่ยังไม่มีความรู้ในส่วนนี้ เช่นนักเรียน นักศึกษา หรือคนที่สนใจเปลี่ยนสายงานหลักจากผ่าน Bootcamp มาทำด้าน IT ได้เข้าใจการใช้งาน Cloud Computing กันมากขึ้นนะครับ ^^ + diff --git a/paths/web-guideline/index.md b/paths/web-guideline/index.md new file mode 100644 index 0000000..a8ffddf --- /dev/null +++ b/paths/web-guideline/index.md @@ -0,0 +1,76 @@ +--- +outline: deep +title: 'Web Development Guideline' +description: Guideline สำหรับแนะนำน้องๆนักศึกษาฝึกงานนะคร้าบ +--- + +# Web Development Guideline +Guideline สำหรับแนะนำน้องๆนักศึกษาฝึกงานนะคร้าบ (จริงๆแอบมีแนะนำวิธีการทำงานและสายงาน Software Engineer ด้วยครับผม) + +เนื้อหาที่เกี่ยวข้องคร่าวๆนะครับ + +## 1. Introduction to Web Development + +**1.1. What is Web Development?** + +- **Definition:** Web development คือ กระบวนการสร้างและดูแลเว็บไซต์หรือเว็บแอปพลิเคชัน +- **Types of Web Development:** + - **Front-end Development:** การพัฒนาในส่วนที่ผู้ใช้สามารถเห็นและโต้ตอบได้ + - **Back-end Development:** การพัฒนาส่วนที่ทำงานอยู่เบื้องหลัง + - **Full-stack Development:** การพัฒนาทั้ง front-end และ back-end + +**1.2. Key Concepts and Technologies** + +- **HTML (Hypertext Markup Language):** ภาษามาร์กอัปพื้นฐานสำหรับการสร้างหน้าเว็บ +- **CSS (Cascading Style Sheets):** ภาษาที่ใช้สำหรับจัดรูปแบบและสไตล์ของหน้าเว็บ +- **JavaScript:** ภาษาสคริปต์ที่ใช้สำหรับการเพิ่มฟังก์ชันการทำงานให้กับหน้าเว็บ +- **Frameworks and Libraries:** เช่น React, Angular, Vue.js สำหรับ front-end และ Node.js, Express สำหรับ back-end + +## 2. Setting Up Your Development Environment + +**2.1. Tools and Software** + +- **Code Editors:** เช่น Visual Studio Code, Sublime Text +- **Version Control Systems:** เช่น Git, GitHub +- **Package Managers:** เช่น npm, yarn + +**2.2. Setting Up a Local Development Server** + +- **Using Node.js:** การติดตั้งและใช้งาน Node.js สำหรับการรันเซิร์ฟเวอร์ +- **Localhost and Ports:** การตั้งค่า localhost และการใช้พอร์ต + +## 3. Building Your First Web Page + +**3.1. Creating an HTML File** + +- **Basic Structure:** อธิบายโครงสร้างพื้นฐานของ HTML เช่น ``, ``, ``, `` +- **Tags and Elements:** แนะนำแท็กพื้นฐาน เช่น `

`, `

`, ``, `` + +**3.2. Adding Styles with CSS** + +- **Inline Styles:** การใช้สไตล์แบบ inline +- **Internal Stylesheets:** การใช้ `