Azure DevOps ถือเป็นเครื่องมือน้องใหม่ที่มาแรงมากในยุคนี้ เนื่องจากเป็นเครื่องมือที่ครอบคลุมการทำงานแทบจะทุก phase ใน DevOps process เลยทีเดียว
On-Prem vs On-Cloud
เราสามารถติดตั้ง Azure DevOps ได้ทั้งแบบ On-Prem และ On-cloud โดย Azure DevOps จะแบ่งออกเป็น
- Azure DevOps Server(On-Prem)
- Azure DevOps Service(On-Cloud)
Azure DevOps Pricing
สำหรับ Users ที่เป็น Basic plan หรือ Plan Free นั่นเอง ซึ่งใน Basic Plan จะมีข้อจำกัดดังนี้
- Free สำหรับ 5 users แรก ซึ่งจะไม่นับ User ที่มี License หรือ User ที่เป็น Steakholder
- สามารถซื้อ User เพิ่มได้เพียง 6 USD/เดือน
Azure DevOps ประกอบไปด้วยเครื่องมืออะไรบ้าง?
ใน Azure DevOps จะประกอบไปด้วยเครื่องมือที่ทำหน้าที่แตกต่างกันในแต่ละ Phase โดยจะแบ่งเครื่องมือต่างๆ ดังนี้
Azure Boards
เริ่มต้น Phase แรกของการทำงานแบบ DevOps ด้วย Azure Boards เราจะทำการวางแผนงาน(Plan Phase) โดยสร้าง Work Items(list ของงานที่ต้องทำ) โดยที่การทำงานของ Azure Boards จะขึ้นอยู่กับ Process Template ซึ่งจะมีให้เลือกอยู่ 4 แบบด้วยกัน ซึ่งในแต่ละ Process Template จะมีประเภทของ Work Items ไม่เท่ากันละเรียกชื่อต่างกัน
- Basic เป็น Process ที่มีประเภทของ Work Item ให้เลือกน้อยสุด เข้าใจง่ายสุดเหมาะสำหรับทีมที่เพิ่งจะเริ่มต้นทำงานแบบ Agile แต่ก็จะมีข้อเสียตรงที่เราไม่สามารถแบ่งแยกประเภทของ Work Items ให้เฉพาะเจาะจงได้ เช่นเราจะไม่สามารถแยก งานที่ทำใหม่กับการแก้ Bug ออกจากกันได้ เพราะเราเรียก Issue เหมือนกัน
- Agile เป็น Process ที่เหมาะกับ Agile ทีมที่ใช้ User Story ทั่วไป ถือว่าเป็น Process ที่น่าจะนำไปใช้มากที่สุด
- Scrum เหมือนกับ Agile Process แต่จะเปลี่ยน User story ไปเป็น Product Backlog Item และ Issue เป็น Impediment
- CMMI จะเป็น Process ที่มีความยุ่งยากมากที่สุดเนื่องจากมีประเภทของ Work Items ให้เลือกมากที่สุด สิ่งที่เพิ่มขึ้นมาใน CMMI Process คือ Change Request, Risk และ Review
หน้าที่ของ Azure Boards คือจัดการวางแผน Project ซึ่งจะเป็นจุดเริ่มต้นของการทำงานหลังจากนี้
Azure Repos
Azure Repos คือบริการจัดเก็บ Source Code ของ Azure DevOps ที่ให้ทีมพัฒนาสามารถใช้ระบบควบคุมเวอร์ชัน (Version Control) ได้ โดยรองรับทั้ง:
- Git (Distributed version control system)
- TFVC (Team Foundation Version Control) (Centralized version control system)
แนะนำให้เลือกใช้ Git
พูดง่ายๆ ก็คือ Azure Repos = Git repository ที่อยู่บน Azure นั่นเอง ซึ่งคุณสามารถใช้เก็บ Code, ดู History, แตก Branch และ ควบคุมคุณภาพด้วย Pull Requests ได้สะดวกมากๆ
Features ของ Azure Repos
- Unlimited private Git repos (ฟรี ไม่จำกัดจำนวน)
- Pull requests & Code review: รองรับการ Review Code ก่อน merge
- Branch policies: กำหนดเงื่อนไขการ merge เช่น ต้องผ่านการ review หรือ build ก่อน
- CI/CD Integration: เชื่อมต่อกับ Azure Pipelines ได้เลย
- Web-based editor: แก้ Code ผ่านหน้าเว็บได้ทันที
เข้าไปอ่านวิธีการใช้ Azure Repos ต่อได้ที่นี่
Azure Pipelines
Azure Pipelines คือเครื่องมือในการทำ CI/CD ที่ระบุ Task ต่างๆโดยเขียนลงในไฟล์ YAML ซึ่ง Pipeline จะแบ่งออกเป็น 2 ประเภทคือ
- Classic เป็นการสร้าง Pipeline จากหน้า Portal(Web GUI)
- YAML เป็นการสร้าง Pipeline โดยการเขียน Text ไฟล์ที่มีนามสกุล .yaml หรือ .yml
แนะนำให้ใช้ .yaml เป็นหลัก
เข้าไปอ่านวิธีการสร้าง Azure Pipelines ได้ที่นี่
Azure Artifacts
Azure Artifacts คือหนึ่งในบริการของ Azure DevOps ที่ใช้สำหรับ จัดเก็บและจัดการแพ็กเกจ packages หรือ Library ต่างๆ ที่นำมาใช้ในโครงการพัฒนา แบบ Private ซึ่งเราสามารถเชื่อมต่อกับ Package Manager ยอดนิยมต่างๆ เช่น
- NuGet (.NET)
- npm (Node.js)
- Maven (Java)
- PyPi (Python)
- Universal packages (อะไรก็ได้ที่เป็นไฟล์ Zip)
Azure Artifacts เหมาะสำหรับ
- สร้าง Private Package Feeds สำหรับทีม/องค์กร
- แชร์ Library/Module ที่เขียนเอง (เช่น
mycompany-utils
) - เก็บ output จาก CI/CD pipeline เช่น
.nupkg
,.jar
,.tgz
- เชื่อมกับ Azure Pipelines เพื่อ publish หรือ download อัตโนมัติ
ตัวอย่าง Workflow
- Developer A สร้าง
.nupkg
หรือ.tgz
- Pipeline ทำการ Publish ไปยัง Azure Artifacts feed
- Developer B ติดตั้ง package นั้นผ่านคำสั่ง
npm install
หรือdotnet add package
โดยเชื่อมกับ feed เดียวกัน - เวลามีการอัปเดต Developer A ก็แค่ publish version ใหม่ไปยัง feed เดิม
จุดเด่นของ Azure Artifact
- ปลอดภัย: ใช้งานได้แบบ private ภายในองค์กร
- Integrate กับ Azure Pipelines ได้ง่าย
- ตรวจสอบ version, history, และการใช้งานของแต่ละ package ได้
- รองรับหลายภาษา
Azure Test Plans
Azure Test Plans คือเครื่องมือสำหรับ จัดการการทดสอบ (Testing Management Tool) ใช้สำหรับวางแผน สร้าง และจัดการ test case, test suite, test run, รวมถึงการ track bug และวัดคุณภาพของ Software
Azure Test Plans เป็น Services ที่ไม่ฟรี
Azure Test Plans ใช้ทำอะไร?
ความสามารถหลัก | รายละเอียด |
---|---|
สร้าง Test Plan | รวม test suites และ test cases ตามฟีเจอร์หรือ sprint |
สร้าง Test Case | ระบุขั้นตอนการทดสอบ, expected result, input data, และ link กับ work items |
Manual Testing | ทดสอบด้วยมือและบันทึกผลว่า “ผ่าน” หรือ “ไม่ผ่าน” |
เชื่อมกับ Automated Test | นำผลจากการรัน Unit/Integration Tests ใน Pipeline มารายงานใน Test Plan |
Exploratory Testing | จดโน้ต, บันทึก session การทดสอบแบบไม่ตาม script |
Track Bug | เปิด bug จาก test run ได้ทันที พร้อมลิงก์กับผลทดสอบและ steps |
ตัวอย่าง Workflow
- QA สร้าง Test Plan สำหรับ Sprint 5
- สร้างชุด test case เช่น:
- TC001: Login ด้วยรหัสผิดแล้วต้องแสดง error
- TC002: สมัครสมาชิกสำเร็จ
- ทีม QA ทดสอบแต่ละ test case และบันทึกสถานะ (ผ่าน/ไม่ผ่าน)
- ถ้าพบปัญหาให้สร้าง Bug หรือ Issue ขึ้นมาและ Link กับ test case นั้น
- Dev แก้ bug แล้วแจ้งให้ QA เข้ามาทดสอบซ้ำ
- สรุปรายงานคุณภาพของ Software หรือ Component นั้นๆ
เชื่อมกับ Azure DevOps Services อื่นๆ
- Azure Boards (เชื่อม test case กับงาน)
- Azure Pipelines (ดึงผล automated test มาลง report)
- Azure Repos (ผูก test กับ version ของ Code ที่เกี่ยวข้อง)
Azure Test Plans เหมาะกับใคร?
- ทีมที่ต้องการจัดการการทดสอบเป็นระบบ
- ทีม QA ที่ต้องการรายงานผล test เป็นรอบ ๆ (Test Run)
- ทีมที่ทำงานตาม Agile / Scrum และมีการทดสอบทุก Sprint