Azure Microsoft Cloud Account: ใช้การจำลองการทำงานของ Azure DevOps GitHub อัตโนมัติเพื่อสร้าง CI/CD ที่นุ่มนวล

เมฆ 2026-06-01 阅读 8
1

ในการพัฒนาประจำวันของทีม R & D จำนวนมากคุณมักจะเห็นฉาก "เย็บแปลกๆ" ที่ไร้สาระ:

การจัดการโครงการใช้ Jira ราคาแพงรหัสโฮสต์อยู่ใน GitLab ที่สร้างขึ้นในเครื่องระบบอัตโนมัติ (CI) ใช้แพตช์ซ้อนกันและ Jenkins ซึ่งมักจะวางสายเนื่องจากหน่วยความจำล้นและการตรวจสอบโครงการและเอกสารขั้นสุดท้ายจะถูกยัดลงใน Microsoft Teams หรือ SharePoint ทันทีที่มีการเปิดตัวเวอร์ชันใหม่ผู้จัดการผลิตภัณฑ์ก็กระตุ้น Jira อย่างเมามันและผู้พัฒนาก็พูดถึง Merge Request ใน GitLab อย่างสั่นๆการดำเนินการและการบำรุงรักษาก็ไปที่ Jenkins ด้วยตนเองเพื่อ "สร้าง" ในขณะที่บูชาพระเจ้าและในที่สุดก็มีข้อผิดพลาดทุกคนอยู่บนแพลตฟอร์มที่แตกต่างกันโยนหม้ออย่างบ้าคลั่งและหมดแรง

ห่วงโซ่เครื่องมือ "Wanguo Brand" แบบนี้ไม่เพียงแต่มีค่าใช้จ่ายในการบำรุงรักษาที่สูงอย่างน่ากลัวแต่ "เกาะข้อมูล" ที่แยกออกจากระบบต่างๆยังเป็นตัวการสำคัญอันดับหนึ่งที่ขัดขวางความคล่องตัวของทีม

ในความเป็นจริงหลังจากได้รับ GitHub และสร้าง Azure ขึ้นมาใหม่อย่างมาก Microsoft ได้ทำการเชื่อม DevOps สมัยใหม่แบบวงปิดในระดับโลกแล้วในสถาปัตยกรรมชั้นยอดของโรงงานขนาดใหญ่มี "Microsoft Family Bucket Combination Boxing" ที่ถือได้ว่าเป็นเพดานประสิทธิภาพ:

ใช้ Azure Boards เพื่อรับบอร์ดโครงการที่คล่องตัวล็อกรหัสในคลังสินค้า GitHub ใช้พลังการประมวลผลแบบดั้งเดิมบนคลาวด์ของ GitHub Actions เพื่อระเบิด CI (การผสานรวมอย่างต่อเนื่อง) และในที่สุดก็ถ่ายภาพผลิตภัณฑ์ที่คอมไพล์ลงใน Azure App Service (การปรับใช้อย่างต่อเนื่อง, ซีดี).

สายการประกอบทั้งหมดราบรื่นราวกับผ้าไหมและทั้งสายใช้เครือข่ายกระดูกสันหลังป้องกันสูงที่สร้างขึ้นเองของ Microsoft เพื่อยุติการดึงข้ามแพลตฟอร์มโดยสิ้นเชิงวันนี้เราปฏิเสธการเทศนาอย่างเป็นทางการใดๆโดยไม่ต้องพูดถึงแนวคิดที่น่าเบื่อเริ่มต้นโดยตรงจากศูนย์และพาคุณไปใช้สถาปัตยกรรมแบบไม่ใช้เซิร์ฟเวอร์เพื่อสร้างอาคารสูงบนพื้นดินใน10นาทีเพื่อสร้างสายการประกอบอัตโนมัติ CI/CD ระดับโรงงานขนาดใหญ่

ขั้นตอนแรก: การรื้อลึก "แบบจำลองการเชื่อมโยงเวลาอวกาศสี่มิติ" ของถังครอบครัว

ก่อนที่จะคลิกที่คอนโซลคุณต้องสร้างแบบจำลองการทำงานของโลกทางกายภาพที่ด้านล่างของถังครอบครัวในใจของคุณหลายคนคิดว่ามันจะยุ่งเหยิงถ้ามีเครื่องมือมากเกินไปอันที่จริงเกมหมากรุกของ Microsoft นั้นละเอียดอ่อนมากและแต่ละคนก็ทำหน้าที่ของตัวเอง:

ศูนย์บัญชาการ: Azure Boards (ความต้องการและความคืบหน้าถูกล็อค): นี่คือ "สมอง" ของโครงการผู้จัดการผลิตภัณฑ์เขียน User Story ที่นี่และสถาปนิกก็ถอด Task ออกสิ่งที่น่าทึ่งที่สุดคือรายการงานทุกรายการที่นี่มี ID เฉพาะ (เช่น #45)

ไลบรารีสินทรัพย์รหัส: GitHub Enterprise: หลังจากนักพัฒนาได้รับงาน #45แล้วให้เขียนโค้ดในเครื่องเมื่อพวกเขาใส่รหัส git ลงใน GitHub เพียงเขียน Fixes AzureBoards ในข้อความคอม it

#45,GitHub และ Azure Boards จะเปิดอุโมงค์อวกาศทันทีการ์ดบนป้ายโฆษณาจะกะพริบจาก "กำลังพัฒนา" เป็น "เสร็จสมบูรณ์" โดยอัตโนมัติและประวัติการเปลี่ยนแปลงโค้ดจะถูกติดตั้งโดยอัตโนมัติภายใต้รายการข้อกำหนดเพื่อให้ได้ระดับพิกเซลการติดตามการตรวจสอบ

เครื่องบินทิ้งระเบิดหนัก: GitHub Actions (การรวมอย่างต่อเนื่อง CI): ตราบใดที่รหัสรวมอยู่ในสาขาหลักเครื่องเสมือน (Runner) ที่โฮสต์อย่างสมบูรณ์ในพื้นหลัง GitHub จะถูกปลุกขึ้นทันทีคุณไม่จำเป็นต้องกำหนดค่าเซิร์ฟเวอร์ด้วยตัวเองมันจะดึงสภาพแวดล้อมขึ้นโดยอัตโนมัติเรียกใช้การทดสอบหน่วยและบรรจุลงในแพ็คเกจบีบอัดไบนารี

จุดจบ: Azure App Service (การปรับใช้อย่างต่อเนื่องซีดี): แพ็กเกจที่คอมไพล์จะถูกฉีดเข้าไปในเว็บคอนเทนเนอร์ที่ Azure โฮสต์โดยตรงผ่านช่องทางที่ไม่มีการเข้ารหัสของ Microsoft intranet ที่ปลอดภัยและผู้ใช้ทั่วโลกจะเห็นว่าฟีเจอร์ใหม่ออนไลน์ในไม่กี่วินาที.

ขั้นตอนที่สอง: การฝึกการต่อสู้จริงหนึ่ง-การเชื่อมต่อสองอาณาจักรเปิดอุโมงค์อวกาศระหว่าง Boards และ GitHub

ตรวจสอบให้แน่ใจว่าคุณมีบัญชี GitHub และบัญชี Azure อยู่แล้ว

1.สร้างคำสั่งความคล่องตัวของคุณ

ลงชื่อเข้าใช้พอร์ทัล Azure DevOps สร้างองค์กรใหม่และสร้างโครงการใหม่ที่เรียกว่า project-omega เลือก Scrum หรือ Agile สำหรับกระบวนการ

เมื่อเข้าสู่โครงการแล้วให้คลิก "การตั้งค่าโครงการ" ที่มุมล่างซ้าย

ค้นหา "GitHub connections" ในเมนูด้านซ้ายแล้วคลิก "Connect your GitHub account"

หลังจากเสร็จสิ้นการอนุญาตให้ตรวจสอบคลังสินค้าส่วนตัวของ GitHub (เช่นโอเมก้า-เว็บ-แอป) ที่คุณเตรียมไว้สำหรับการทดลองนี้แล้วคลิกบันทึก

2.เขียนรหัสด้วย "รหัสลับ"

ตอนนี้ไปที่ Azure Boards

Boards (Kanban)

สร้างงานใหม่ในสมมติว่า ID ที่ระบบกำหนดโดยอัตโนมัติคือ

ห้า

ใช้ในพื้นที่ NET 8หรือ Java เขียนโค้ดหน้าเว็บง่ายๆไม่กี่บรรทัดเมื่อส่งโค้ดในบรรทัดคำสั่งให้จงใจพิมพ์รหัสลับของข้อกำหนดผู้ผลิตรายใหญ่ต่อไปนี้:

แบช

Git add.

คำสั่ง git-m "feat: การพัฒนาอินเทอร์เฟซการเข้าสู่ระบบหลักเสร็จสมบูรณ์เชื่อมโยง Boards AB #5"

Git push origin main

ปาฏิหาริย์เกิดขึ้น:

ณจุดนี้คุณกลับไปที่หน้า Azure Boards รีเฟรชคุณจะพบว่า ID คือ

ห้า

พื้นที่พัฒนาภายในของการ์ดได้ดึงการส่ง GitHub โดยอัตโนมัติและแม้แต่บรรทัดที่มีการเปลี่ยนแปลงรหัสทั้งสองโลกเปิดอย่างสมบูรณ์!

ขั้นตอนที่สาม: การฝึกซ้อมการต่อสู้จริง2

-เขียนสายการประกอบฮาร์ดคอร์ของ GitHub Actions โดยตรงไปยังระบบคลาวด์

รหัสอยู่ใน GitHub แล้วและตอนนี้เราต้องดึงกิจกรรม GitHub ขึ้นมาเพื่อให้สามารถถ่ายภาพผลิตภัณฑ์สำเร็จรูปบน Azure App Service โดยอัตโนมัติในขณะที่รหัสถูกรวมเข้าด้วยกัน

ขั้นตอนที่1: ไปที่ปลาย Azure เพื่อสมัคร "Publish Profile"

สถาปัตยกรรม Dachang ห้ามเขียนรหัสผ่านบัญชีผู้ดูแลระบบคลาวด์ในรหัสโดยเด็ดขาดเราต้องใช้ข้อมูลประจำตัวที่ปลอดภัยที่สุด

เข้าสู่คอนโซล Azure และเข้าสู่หน้ารายละเอียดของ Azure App Service (บริการแอพ) ที่คุณสร้างไว้ล่วงหน้า

ในแถบเมนูด้านบนให้คลิก "รับโปรไฟล์สิ่งพิมพ์" (รับโปรไฟล์การเผยแพร่)

ในขณะนี้คอมพิวเตอร์ของคุณจะดาวน์โหลดคีย์การเข้ารหัสที่ซับซ้อนโดยอัตโนมัติไฟล์ข้อความ PublishSettings 。เปิดและเลือกทั้งหมดเพื่อคัดลอก

กลับไปที่หน้าคลังสินค้า GitHub ของคุณและคลิกที่ "Settings"-> "Secrets and variables"-> "Actions"

คลิก "การเก็บรักษาใหม่" ชื่อนี้เรียกว่า AZURE_WEBAPP_PUBLISH_PROFILE โพสต์เนื้อหาที่คุณเพิ่งคัดลอกแล้วคลิกบันทึกประตูนิรภัยถูกล็อค!

ขั้นตอนที่2: YAML, จัดสายการประกอบอัตโนมัติ

สร้างไดเร็กทอรีที่ซ่อนอยู่ใหม่ในไดเร็กทอรีรากของโปรเจ็กต์ภายใน

.Github/workflows/

, สร้างไฟล์

Deploy.yml

ไฟล์

เอกสารนี้เป็น "พิมพ์เขียวตราเหล็ก" ของเราเราต้องใช้ไวยากรณ์ที่เปิดเผยอย่างแท้จริงเพื่อให้กิจกรรม GitHub ทำงานโดยอัตโนมัติ:

ชื่อ: Omega สาย CI-CD อัตโนมัติที่ทันสมัย

# เงื่อนไขทริกเกอร์: ตราบใดที่สาขาหลักมีรหัสดันขึ้นปืนทั้งหมดจะดังขึ้นทันที

On:

Push:

Branches: ["main"]

Jobs:

Build-and-deploy:

Runs-on: Ubuntu-latest # เครื่องบินทิ้งระเบิด Linux ล่าสุดที่โฮสต์ฟรีอย่างเป็นทางการโดยใช้ GitHub

Steps:

#1.ดึงรหัสไปยังสภาพแวดล้อมการสร้างเครื่องเสมือน

-Name: ขั้นตอนที่1: ดึงซอร์สโค้ดล่าสุด

Uses: ac

Tions/checkout @ v4

#2.ฉีด. NET สภาพแวดล้อมการทำงาน (ถ้าเป็น Java ให้เปลี่ยนเป็น actions/setup-java)

-Name: ขั้นตอนที่สอง: เริ่มต้นแกนไมโครซอฟท์. NET สิ่งแวดล้อม

Uses: actions/setup-dotnet @ v4

With:

Dotnet-version: '8.0.x'

#3.ขึ้นอยู่กับการกู้คืนและการรวบรวมหลัก

-Name: ขั้นตอนที่สาม: ขึ้นอยู่กับการกู้คืนและการรวบรวมระดับอุตสาหกรรม

วิ่ง: |

Dotnet restore

Dotnet publish -c Release-o. /Publish-folder

#4.การจัดส่งข้ามพรมแดนไปยัง Azure

-Name: ขั้นตอนที่4: การจัดส่งข้ามพรมแดนไปยัง Azure App Service

Uses: azure/webapps-deloy @ v3

With:

App-name: 'your-azure-webapp-name' # แทนที่ด้วยชื่อเว็บแอพจริงบน Azure ของคุณ

Publish-profile: $ {secrets.AZURE_WEBAPP_PUBLISH_PROFILE }} # ดึงข้อมูลรับรองความปลอดภัยของเราที่ถูกล็อคใน GitHub

Package:. /Publish-folder

บันทึกไฟล์นี้โดยตรง

Git push

ระเบิดเข้าไปใน GitHub

ขั้นตอนที่สี่: ช่วงเวลาแห่งการเป็นพยานถึงปาฏิหาริย์-ทิ้งแป้นพิมพ์ด้วยมือทั้งสองข้างและชื่นชมพายุเฮอริเคนอัตโนมัติอย่างเงียบๆ

ในขณะที่รหัสถูกผลักขึ้นให้เปิดคลังสินค้า GitHub ของคุณทันทีและคลิกที่ด้านบน

"การกระทำ"

หน้าแท็บ

คุณจะเห็นวงกลมความคืบหน้าสีทองกำลังหมุนอย่างบ้าคลั่งคลิกเพื่อเข้าไปคุณจะเห็นว่าสี่ขั้นตอนที่เขียนใน YAML ตอนนี้กำลังเพิ่มความสว่างให้กับตะขอสีเขียวเหมือนขบวนพาเหรด (

)。

ส่วนการสร้าง: เครื่องเสมือน Ubuntu ที่โฮสต์โดย GitHub เสร็จสิ้นการดึงและคอมไพล์โค้ดภายในเวลาไม่ถึง15วินาที

ส่วนการปรับใช้: แพ็กเกจไบนารีที่คอมไพล์ผ่านช่องคีย์ PUBLISH_PROFILE ที่เพิ่งฝังข้ามการป้องกันเครือข่ายสาธารณะและฉีดเข้าไปในคอนเทนเนอร์คลาวด์ของ Microsoft โดยตรง

โดยปกติแล้วกระบวนการทั้งหมดต้องการเพียง

45วินาทีถึง1นาที

。เมื่อรายการสุดท้ายสว่างขึ้นคุณเปิดเบราว์เซอร์และป้อนชื่อโดเมนไซต์ Azure ของคุณฟังก์ชันทางธุรกิจใหม่ได้รับการนำเสนออย่างสมบูรณ์แบบทั่วโลก

เมื่อมองย้อนกลับไปที่ป้าย Azure Boards เนื่องจากคุณได้ฝังรหัสลับไว้ใน Commit ID นั้นคือ

ห้า

งานนี้ได้รับการจัดเก็บอย่างหรูหราและอัตโนมัติในคอลัมน์ "ออนไลน์" ทีมงานกระบวนการทั้งหมดไม่ได้จัดการประชุมการจัดตำแหน่งไม่ได้ไปที่คอนโซลและคลิกเมาส์การเรียกรหัสบริสุทธิ์นั้นเนียนและสะดวกสบายมาก

ขั้นตอนที่ห้า: ประวัติความเป็นมาของการหลีกเลี่ยงเลือดและน้ำตาภายใต้โครงสร้างถังครอบครัวระดับองค์กร

โซลูชัน Microsoft Family Barrel นี้ใช้งานได้ง่ายมากและเกิดมาพร้อมกับสายเลือดของผู้ผลิตรายใหญ่แต่เพื่อให้อยู่รอดในสนามรบเชิงพาณิชย์ของการทำงานร่วมกันหลายคนและการส่งข้อมูลความถี่สูงในฐานะหัวหน้าสถาปนิกคุณต้องเชื่อมข้อกำหนดด้านล่างสองข้อต่อไปนี้ให้กับทีมทันที:

1.ตัดรูปแบบเดิมของ "สาขาหลัก" (การป้องกันสาขา)

ทีมมือใหม่หลายทีมพบว่ามันสะดวกเกินไปเมื่อพวกเขาใช้สายการประกอบนี้เป็นครั้งแรกดังนั้นไม่ว่าจะเป็นนักพัฒนาอาวุโสหรือนักศึกษาฝึกงานที่เพิ่งเข้ามาใหม่ในทีมพวกเขาจะไปที่นั่นโดยตรงทุกวัน

Main

สาขาบน

Push

รหัส

ภัยพิบัติ: หากวันหนึ่งนักศึกษาฝึกงานเขียนการวนซ้ำโดยไม่ได้ตั้งใจหรือบังคับให้มีการใช้รหัสที่ไม่สามารถใช้งานได้ GitHub Actions จะรวบรวมและเผยแพร่รหัสขยะนี้โดยอัตโนมัติภายใน1นาทีสภาพแวดล้อมการผลิตนำไปสู่อัมพาตขนาดใหญ่ของระบบออนไลน์โดยตรง

การดำเนินการหลีกเลี่ยงหลุมมาตรฐานของโรงงานขนาดใหญ่: ต้องเปิด "การดำเนินการป้องกันสาขา" เข้าสู่การตั้งค่าคลังสินค้า GitHub และบังคับล็อคสาขาหลักคำสั่งทางปกครอง: ห้ามมิให้ผู้ใดผลักดันสาขาหลักโดยตรงโดยเด็ดขาด! ก่อนอื่นคุณต้องสร้างสาขาการทำงานในเครื่องและส่ง Pull Request (PR) หลังจากเขียนเสร็จและกำหนดค่าใน GitHub: เฉพาะเมื่อผลการรวมอย่างต่อเนื่องของ GitHub Actions (การทดสอบหน่วยเสร็จสิ้น) เป็นสีเขียวและสถาปนิกอาวุโสอย่างน้อยหนึ่งคนลงนามในการตรวจสอบด้วยตาเปล่ารหัสจะรวมเข้ากับสาขาหลักได้หรือไม่ใช้กระบวนการเพื่อติดขัดข้อผิดพลาดระดับต่ำ

2.ระวังพลังการประมวลผลที่มากเกินไปที่เกิดจาก "การก่อสร้างเมทริกซ์"

GitHub Actions แข็งแกร่งมาก

ใหญ่รองรับไฟล์

Strategy: matrix

เทคโนโลยีสีดำช่วยให้คุณสามารถเขียนโค้ดได้สองสามบรรทัดซึ่งสามารถใช้กับ Windows, Linux และ macOS ได้ในเวลาเดียวกัน NET 6, 7, 8เวอร์ชันต่างๆ

การทดสอบการคอมไพล์9ชุดพร้อมกัน

การเปิดเผยข้อมูลภายใน: พลังการประมวลผลของ GitHub ที่ Microsoft ให้ไว้สำหรับบัญชีฟรีแต่ละบัญชีมีจำกัด (โดยปกติ2,000นาทีต่อเดือน) หากคุณเปิดใช้งานการสร้างเมทริกซ์แบบสุ่มสี่สุ่มห้าในโครงการขนาดใหญ่ระดับองค์กรทุกครั้งที่มีคนพูดถึง PR คุณจะใช้เวลาเครื่องเสมือน9เท่าอย่างบ้าคลั่งและภายในไม่กี่วันพลังการประมวลผลฟรีของเดือนจะถูกเผาจนหมดส่งผลให้ CI ทั้งหมด/สายการประกอบซีดีจะหยุดงานโดยตรง

ข้อกำหนดการเสริมแรงแบบฮาร์ดคอร์: ในสาขาการพัฒนารายวัน (Feature Branch) การทดสอบพื้นฐานจะดำเนินการอย่างเคร่งครัดในสภาพแวดล้อมที่ถูกที่สุดและเร็วที่สุดของ Ubuntu-latest เท่านั้นเฉพาะเมื่อรหัสต้องพิมพ์แท็กจริงๆหรือรวมเข้ากับสาขารีลีสเมื่อพร้อมสำหรับการผลิตจากนั้นทริกเกอร์การรวบรวมการตรวจสอบมาตรฐานสูงของเมทริกซ์เต็ม

สรุป

การใช้ Microsoft Family Bucket เพื่อสร้างสายการประกอบอัตโนมัติ CI/CD สาระสำคัญระดับอุตสาหกรรมหลักถูกทำให้ง่ายขึ้นเป็น16คำ:

Kanban แนะนำเส้นทางรหัสลับเชื่อมต่อรวบรวมบนคลาวด์และคุ้มกันหลักฐาน

คุณได้อำลาสถานะการทำงานและการบำรุงรักษาเดิมโดยสิ้นเชิงซึ่งเครื่องมือของบุคคลที่สามถูกเย็บทุกที่ในอดีตผมร่วงทุกวันสำหรับความขัดแย้งของปลั๊กอิน Jenkins และข้อกำหนดและรหัสไม่ตรงกันโดยสิ้นเชิงโฮสต์โครงสร้างพื้นฐานและการหมุนเวียนที่ซับซ้อนทั้งหมดให้กับสมองที่ไร้รอยต่อซึ่งเชื่อมต่อกันอย่างสมบูรณ์ในระดับโรงงานขนาดใหญ่นั่งอยู่หน้าคอมพิวเตอร์ให้ความสำคัญกับการขัดรหัสธุรกิจ100% และเขียนให้เสร็จ

Git push

ส่วนที่เหลือจะถูกส่งมอบให้กับสายการประกอบดั้งเดิมของระบบคลาวด์ที่มีความเร็วแสงกะพริบ

1
← 返回新闻中心