Explore Azure Pipelines
- Pipelines in DevOps
- พยายาม reset focus from silos to an end-to-end flow of value.
- สร้าง Flow Pipelines โดยหาจุดที่ทำซ้ำ (repeatable), reliable incrementally-improving process และดัน Automation Build > Test > Deploy และ Deploy นอกจาก Script แล้วตัว platform provisioning (สร้าง Infra) และconfiguration management (จัดการการตั้งค่า)
- ถ้า Jenkins จะเป็น JenkinsFile ใช้ Groovy และของ Azure ก็มี Azure Pipelines และ Azure Pipelines key terms
- Knowledge check: Explore Azure Pipelines
Manage Azure Pipeline agents and pools
- Host Type - Microsoft-hosted agent ตอน Pipeline ทำงาน มันสร้าง Instance (VM) ขึ้นมา พอเสร็จปิด) / Self-hosted agent
- Job Types
- Agent pool jobs.
- Container jobs - Run Container บน Agent Pool
- Deployment group jobs.
- Agentless jobs. (Server Jobs)
- Introduction to agent pools (ใน Jenkins executer)
- ปกติจะทำกำหนดระดับ Org แต่ถ้า Project ไหนมันพิเศษไปกำหนดเฉพาะได้ specifying pools for jobs.
- Understand typical situations for agent pools - Training | Microsoft Learn
- Predefined agent pool - VM ที่ MS เตรียมไว้ให้
- Communicate with Azure Pipelines (Pull Model)
- Agent register ลงใน Agent Pool (Each agent has a public-private key pair แลกกันตอนนี้) และได้ listener OAuth token เพื่อจะด Job Queue
- ถ้ามีงาน Agent จะได้ job-specific OAuth token เพื่อมาเข้าถึง resource พิเศษ เช่น Code / upload test results
- payload ใช้ asymmetric encryption
- Communicate to deploy to target servers
- เมื่อเราใช้ agent deploy artifacts ให้กับ Target Server ที่ต้องการเราต้องมี "line of sight" (Agent Connect กับ Server ปลายทางได้)
- Microsoft-hosted agent - ต่อกับ Azure ได้อยู่แล้ว
- แต่ถ้า Target Server อยุ่ On-premise ใช้ Self-hosted agent แทน
- เมื่อเราใช้ agent deploy artifacts ให้กับ Target Server ที่ต้องการเราต้องมี "line of sight" (Agent Connect กับ Server ปลายทางได้)
- Examine other considerations
- Authentication - Personal access token (PAT)
- Interactive VS service - ใครรันจะเป็น Owner ของ Process ที่ Agent ทำงาน แต่แบบแรกแนะนำลองแบบ Interactive
- แบบ Interactive - ปิด Screen Server +ทำ Auto Logon (เพิ่ม Security Risk)
- แบบ Service - Background Process
- Agent Version - format {major}.{minor}
- Question and Answer
- self-hosted agents performance ดีกว่า Microsoft-hosted agents
- self-hosted agent, run incremental builds ต่างกับ Microsoft-hosted agent ที่งานจบ Agent ถูก Destroy
- Microsoft-hosted agent Start ช้ากว่า เพราะเสียเวลา Allocate Resource และสร้างช่วงนึง
- multiple self-hosted agents ลงเครื่องเดียวกัน ทำได้
- self-hosted agents performance ดีกว่า Microsoft-hosted agents
- Describe security of agent pools
- Org Level - Administrator / Service Account (Create Project Agent Pool) / Reader
- Project Level - Administrator / User (authoring build / release pipelines จาก Project Pool) / Reader
- Lab4 : Configure agent pools and understanding pipeline styles
- Knowledge check: Manage Azure Pipeline agents and pools
Describe pipelines and concurrency
- Parallel jobs are purchased at the organization level (Shared ทุก Project ถึงแม้ว่าแต่ละ Project มี Config ไว้ แต่จะมี Capacity มาสุดตามที่ซื่อไว้ใน organization level
- Estimate parallel jobs
- Simple - ในทีมมี DEV 4-5 คนน่าจะมี 1 Parallel Job
- Detailed - ใน ORG มีหลายทีมไหม อย่างน้อย 1 Parallel Job แล้วมีอาจจะดูตามจำนวน Active Branch / 1 ORG มีหลาย APP ต้องแยกตาม App เผื่อ
- Public VS Private projects
- Public - Default read only ทุก project
- Private - ต้อง Grant ก่อน
- เงินๆทองๆเนอะ Describe Azure Pipelines and open-source projects
- Azure Pipeline
- มี Visual Designer ด้วยนะ แต่ต้องเลือกจาก Classic Editor
- YAML เป็น Code Config ข้อดีมี Keep Version เหมือน Code เลย Create your first pipeline - Azure Pipelines
- Knowledge check: Describe pipelines and concurrency
Explore Continuous Integration
- Introduction to continuous integration
- process (repeatable + robust) of automating the build and testing of code every commit change (small task completion)
- 4 pillars of continuous integration
- Version control system - GIT / SVN เป็นต้น
- Package management system - NuGet / Maven / NPM เป็นต้น
- Continuous integration system - Jenkins / Azure DevOps เป็นต้น
- Automated build process - ANT / Gradle เป็นต้น
- Benefits of continuous integration
- Key Benefit: Rapid Feedback for Code Quality
- Reducing build times for quick feedback and early detection of problems (risk reduction)
- Better managing technical debt and conducting code analysis
- Reducing long, complex, and bug-inducing merges
- Increasing confidence in codebase health long before production deployment
- Describe build properties
- Build number formatting
- Build status
- Authorization and timeouts - ไม่ใช้ Job มันกิน Resouce นานเกินไป ปกติบน Jenkins เราไม่เคยทำเลย 55
- Badges - Status ของสิ่งที่สนใจ เช่น การ Build / Test
- Lab5 : Enable Continuous Integration with Azure Pipelines
- Knowledge check: Explore Continuous Integration
Reference
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.