การบูรณาการอย่างต่อเนื่องกับการส่งมอบเทียบกับการปรับใช้งาน
ความแตกต่างที่สำคัญระหว่างการบูรณาการอย่างต่อเนื่อง การส่งมอบ และการปรับใช้
- การบูรณาการอย่างต่อเนื่องเป็นแนวทางในการทดสอบการเปลี่ยนแปลงแต่ละครั้งในโค้ดเบสโดยอัตโนมัติ ในขณะที่การจัดส่งอย่างต่อเนื่องเป็นแนวทางในการรับการเปลี่ยนแปลงคุณสมบัติใหม่ การกำหนดค่า และการแก้ไขข้อบกพร่อง ในทางกลับกัน Continuous Deployment เป็นแนวทางในการพัฒนาซอฟต์แวร์ในวงจรอันสั้น
- CI จะดำเนินการทันทีหลังจากที่นักพัฒนาเช็คอิน ขณะอยู่ในการจัดส่งแบบต่อเนื่อง โค้ดที่พัฒนาแล้วจะถูกจัดส่งอย่างต่อเนื่องจนกว่าโปรแกรมเมอร์จะพิจารณาว่าพร้อมที่จะจัดส่ง และในการปรับใช้แบบต่อเนื่อง นักพัฒนาจะปรับใช้โค้ดโดยตรงกับขั้นตอนการผลิตเมื่อได้รับการพัฒนา
- การรวมแบบต่อเนื่องใช้การทดสอบหน่วย ในทางตรงกันข้าม การจัดส่งแบบต่อเนื่องใช้การทดสอบตรรกะทางธุรกิจ ในการปรับใช้อย่างต่อเนื่อง จะใช้กลยุทธ์การทดสอบใดๆ
- CI หมายถึงการกำหนดเวอร์ชันของซอร์สโค้ดในขณะที่การจัดส่งแบบต่อเนื่องหมายถึงวิวัฒนาการเชิงตรรกะของ CI และการปรับใช้แบบต่อเนื่องหมายถึงการใช้งานซอร์สโค้ดแบบอัตโนมัติ
การบูรณาการอย่างต่อเนื่องคืออะไร?
การบูรณาการอย่างต่อเนื่องเป็นวิธีการพัฒนาซอฟต์แวร์ที่สมาชิกในทีมสามารถบูรณาการงานของตนได้อย่างน้อยวันละครั้ง ในวิธีนี้ ทุกการรวมจะถูกตรวจสอบโดยบิลด์อัตโนมัติเพื่อค้นหาข้อผิดพลาด
ในการบูรณาการอย่างต่อเนื่องหลังจากการคอมมิตโค้ด ซอฟต์แวร์จะถูกสร้างขึ้นและทดสอบทันที ในโปรเจ็กต์ขนาดใหญ่ที่มีนักพัฒนาจำนวนมาก การคอมมิตจะเกิดขึ้นหลายครั้งในหนึ่งวัน ด้วยรหัสการคอมมิตแต่ละรายการจะถูกสร้างและทดสอบ หากผ่านการทดสอบ จะมีการทดสอบบิลด์สำหรับการปรับใช้ หากการปรับใช้สำเร็จ โค้ดจะถูกพุชไปสู่การใช้งานจริง คอมมิต สร้าง ทดสอบ และปรับใช้นี้เป็นกระบวนการต่อเนื่อง และด้วยเหตุนี้จึงเป็นชื่อการรวม/ปรับใช้อย่างต่อเนื่อง
การจัดส่งแบบต่อเนื่องคืออะไร?
การส่งมอบอย่างต่อเนื่องเป็นวิธีการทางวิศวกรรมซอฟต์แวร์ที่ทีมงานพัฒนาผลิตภัณฑ์ซอฟต์แวร์ในวงจรอันสั้น ช่วยให้มั่นใจได้ว่าซอฟต์แวร์สามารถเผยแพร่ได้อย่างง่ายดายทุกเมื่อ
เป้าหมายหลักของการส่งมอบอย่างต่อเนื่องคือการสร้าง ทดสอบ และเผยแพร่ซอฟต์แวร์ด้วยความเร็วและความถี่ที่ดี ช่วยให้คุณลดต้นทุน เวลา และความเสี่ยงในการส่งมอบการเปลี่ยนแปลงโดยอนุญาตให้มีการอัปเดตบ่อยครั้งในการผลิต
การปรับใช้อย่างต่อเนื่องคืออะไร
การใช้งานอย่างต่อเนื่องคือก วิศวกรรมซอฟต์แวร์ กระบวนการที่มีการส่งมอบฟังก์ชันการทำงานของผลิตภัณฑ์โดยใช้การปรับใช้อัตโนมัติ ช่วยให้ผู้ทดสอบตรวจสอบว่าการเปลี่ยนแปลงโค้ดเบสนั้นถูกต้องและเสถียรหรือไม่
ทีมงานสามารถบรรลุการใช้งานอย่างต่อเนื่องโดยอาศัยโครงสร้างพื้นฐานที่ทำให้ขั้นตอนการทดสอบต่างๆ เป็นแบบอัตโนมัติ เมื่อการรวมแต่ละครั้งตรงตามเกณฑ์การเผยแพร่นี้ แอปพลิเคชันจะได้รับการอัปเดตด้วยรหัสใหม่
ความแตกต่างระหว่างการบูรณาการอย่างต่อเนื่องกับการส่งมอบอย่างต่อเนื่องและการปรับใช้อย่างต่อเนื่อง
นี่คือข้อแตกต่างที่สำคัญระหว่างการบูรณาการอย่างต่อเนื่องกับการจัดส่งอย่างต่อเนื่องกับการปรับใช้อย่างต่อเนื่อง
การบูรณาการอย่างต่อเนื่อง | การจัดส่งแบบต่อเนื่อง | การปรับใช้อย่างต่อเนื่อง |
---|---|---|
CI เป็นวิธีการทดสอบการเปลี่ยนแปลงแต่ละครั้งใน codebase โดยอัตโนมัติ | ซีดีเป็นวิธีการรับการเปลี่ยนแปลงคุณสมบัติใหม่ การกำหนดค่า และการแก้ไขข้อบกพร่อง | ซีดีเป็นแนวทางในการพัฒนาซอฟต์แวร์ในวงจรอันสั้น |
CI หมายถึงการกำหนดเวอร์ชันของซอร์สโค้ด | CD หมายถึงวิวัฒนาการเชิงตรรกะของ CI | CD หมายถึงการใช้งานซอร์สโค้ดแบบอัตโนมัติ |
CI มุ่งเน้นไปที่การทดสอบอัตโนมัติเพื่อตรวจสอบว่าซอฟต์แวร์ไม่มีข้อผิดพลาดหรือจุดบกพร่อง | มุ่งเน้นที่การเผยแพร่การเปลี่ยนแปลงใหม่ให้กับลูกค้าของคุณอย่างเหมาะสม | เน้นการเปลี่ยนแปลงในทุกขั้นตอนของไปป์ไลน์การผลิตของคุณ |
CI จะดำเนินการทันทีหลังจากที่นักพัฒนาเช็คอิน | ในซีดี โค้ดที่พัฒนาแล้วจะถูกส่งอย่างต่อเนื่องจนกว่าโปรแกรมเมอร์จะพิจารณาว่าพร้อมที่จะจัดส่ง | ในซีดี นักพัฒนาจะปรับใช้โค้ดโดยตรงกับขั้นตอนการผลิตเมื่อได้รับการพัฒนา |
ช่วยให้คุณระบุและแก้ไขปัญหาได้ตั้งแต่เนิ่นๆ | ช่วยให้นักพัฒนาสามารถตรวจสอบการอัปเดตซอฟต์แวร์ได้ | ช่วยให้คุณสามารถปรับใช้และตรวจสอบคุณสมบัติและแนวคิดใหม่ๆ ได้อย่างรวดเร็ว |
มันใช้การทดสอบหน่วย | ใช้การทดสอบตรรกะทางธุรกิจ | มีการใช้กลยุทธ์การทดสอบใดๆ |
ทีมพัฒนาส่งคำขอรวมโค้ดอย่างต่อเนื่องแม้ว่ากระบวนการทดสอบจะทำงานอยู่ก็ตาม | คุณส่งโค้ดเพื่อตรวจสอบซึ่งสามารถแบทช์เพื่อเผยแพร่ได้ | ปรับใช้โค้ดโดยใช้กระบวนการอัตโนมัติ |
คุณต้องมีเซิร์ฟเวอร์การรวมอย่างต่อเนื่องเพื่อมอนิเตอร์ที่เก็บหลัก | คุณจำเป็นต้องมีรากฐานที่แข็งแกร่งในการบูรณาการอย่างต่อเนื่อง | คุณต้องมีวัฒนธรรมการทดสอบที่ดี |
ข้อดีของการบูรณาการอย่างต่อเนื่อง
ข้อดี/ประโยชน์ของการบูรณาการอย่างต่อเนื่องมีดังนี้:
- ช่วยให้คุณสร้างซอฟต์แวร์ที่มีคุณภาพดีขึ้น
- ช่วยให้คุณสามารถทำการทดสอบซ้ำได้
- CI ช่วยให้นักพัฒนาซอฟต์แวร์ทำงานได้อย่างอิสระบนฟีเจอร์ต่างๆ แบบคู่ขนาน
- สามารถเพิ่มการมองเห็นและเปิดใช้งานการสื่อสารได้มากขึ้น
- กระบวนการ CI ช่วยเพิ่มจำนวนพนักงานและผลลัพธ์การส่งมอบของทีมวิศวกร
- การบูรณาการอย่างต่อเนื่องช่วยให้คุณพัฒนาผลิตภัณฑ์ที่อาจจัดส่งได้สำหรับบิลด์อัตโนมัติเต็มรูปแบบ
- ช่วยคุณลดความเสี่ยงโดยทำให้การปรับใช้งานเร็วขึ้นและคาดการณ์ได้มากขึ้น
- ข้อเสนอแนะทันทีเมื่อเกิดปัญหา
- หลีกเลี่ยงความสับสนในนาทีสุดท้าย ณ วันที่วางจำหน่าย และเวลาจะทำให้การสร้างเป็นไปโดยอัตโนมัติ
- ช่วยลดความเสี่ยงและทำให้กระบวนการปรับใช้สามารถคาดการณ์ได้มากขึ้น
- CI ให้ข้อเสนอแนะทันทีเมื่อมีปัญหา
- คุณสามารถดูกระบวนการบูรณาการได้แบบเรียลไทม์
- สามารถหลีกเลี่ยงความยุ่งยากในนาทีสุดท้ายในวันที่เผยแพร่ได้
- รุ่นปัจจุบันมีให้ใช้งานอย่างต่อเนื่อง
- นำเสนอสินค้าที่สามารถจัดส่งได้อย่างสม่ำเสมอ
- การค้นหาประวัติการสร้างซอฟต์แวร์นั้นค่อนข้างง่าย
- CI ให้ความเสถียรของโค้ด
ข้อดีของการจัดส่งอย่างต่อเนื่อง
ข้อดี/ประโยชน์ของการจัดส่งอย่างต่อเนื่องมีดังนี้:
- ทำให้กระบวนการเผยแพร่ซอฟต์แวร์เป็นแบบอัตโนมัติเพื่อให้การส่งมอบมีประสิทธิภาพ รวดเร็ว และปลอดภัยยิ่งขึ้น
- การปฏิบัติตามซีดีช่วยเพิ่มผลผลิตโดยช่วยให้ผู้พัฒนาไม่ต้องทำงานด้วยตนเองและต้องพึ่งพาสิ่งที่ซับซ้อน
- ช่วยให้คุณค้นพบจุดบกพร่องของซอฟต์แวร์ตั้งแต่เนิ่นๆ ในกระบวนการจัดส่ง
- CD ช่วยให้ทีมธุรกิจของคุณสามารถส่งข้อมูลอัปเดตให้กับลูกค้าได้ทันทีและบ่อยครั้ง
- ช่วยให้มั่นใจได้ว่าซอฟต์แวร์พร้อมสำหรับการผลิตเสมอ
- คุณสามารถเผยแพร่ซอฟต์แวร์ได้บ่อยขึ้น ซึ่งจะช่วยให้คุณได้รับผลตอบรับจากลูกค้าของคุณอย่างรวดเร็ว
- มีความกดดันน้อยลงในการตัดสินใจเกี่ยวกับการเปลี่ยนแปลงเล็กๆ น้อยๆ
ข้อดีของการใช้งานอย่างต่อเนื่อง
ข้อดี/ประโยชน์ของการปรับใช้อย่างต่อเนื่องมีดังนี้:
- ช่วยให้คุณทำงานที่ซ้ำซ้อนได้โดยอัตโนมัติ
- CD ทำให้การใช้งานของคุณสมบูรณ์แบบโดยไม่กระทบต่อความปลอดภัย
- ปรับขนาดจากแอปพลิเคชันซอฟต์แวร์ตัวเดียวไปจนถึงพอร์ตโฟลิโอไอทีขององค์กรได้อย่างง่ายดาย
- คุณสามารถจัดส่งแอปพลิเคชันแบบคลาวด์เนทีฟและแอปพลิเคชันแบบดั้งเดิมได้
- โดยให้มุมมองเดียวในทุกสภาพแวดล้อมและแอปพลิเคชัน
- คุณสามารถเชื่อมต่อที่มีอยู่ของคุณ เครื่องมือ DevOps และสคริปต์ลงในขั้นตอนการทำงานที่เหมาะสม
- ซีดีช่วยให้คุณสามารถเพิ่มผลผลิตโดยรวมได้
- คุณสามารถรวมกระบวนการและทีมเข้ากับไปป์ไลน์แบบรวมได้
ข้อเสียของการบูรณาการอย่างต่อเนื่อง
ข้อเสีย/ข้อเสียของการรวมอย่างต่อเนื่องมีดังนี้:
- ต้องใช้เวลาตั้งค่าเริ่มต้นและการฝึกอบรมเพื่อทำความคุ้นเคยกับเซิร์ฟเวอร์ Cl
- ชุดทดสอบที่ได้รับการพัฒนาอย่างดีจำเป็นต้องใช้ทรัพยากรจำนวนมากสำหรับเซิร์ฟเวอร์ Cl
- ต้องใช้เซิร์ฟเวอร์และสภาพแวดล้อมเพิ่มเติม
- คุณต้องมีการแปลงกระบวนการที่คุ้นเคยในโปรเจ็กต์เดียว
- มันต้องรอเมื่อนักพัฒนาหลายคนรวมโค้ดของตนในเวลาเดียวกัน
- ทีมของคุณควรเขียนการทดสอบอัตโนมัติสำหรับฟีเจอร์ใหม่หรือการแก้ไขข้อบกพร่องทั้งหมด
- คุณต้องมีเซิร์ฟเวอร์ CI ที่มอนิเตอร์พื้นที่เก็บข้อมูลหลักและรันการทดสอบสำหรับการคอมมิตโค้ดใหม่
- นักพัฒนาซอฟต์แวร์ควรรวมการเปลี่ยนแปลงของตนให้บ่อยที่สุดเท่าที่จะทำได้
- ขั้นตอนการทดสอบหน่วยควรผ่านสำหรับการปรับใช้
ข้อเสียของการจัดส่งแบบต่อเนื่อง
ข้อเสีย/ข้อเสียของการจัดส่งแบบต่อเนื่องมีดังนี้:
- คุณควรทราบแนวทางปฏิบัติในการบูรณาการอย่างต่อเนื่องก่อนที่คุณจะดำเนินการจัดส่งอย่างต่อเนื่อง
- การปรับใช้ยังคงเป็นแบบแมนนวล ดังนั้นจึงต้องใช้เวลามากในการส่งมอบผลิตภัณฑ์ซอฟต์แวร์
- การทดสอบอัตโนมัติควรเขียนและทำงานได้อย่างถูกต้อง
- การทดสอบที่ผิดพลาดอาจนำไปสู่ความเสียหายขณะการทดสอบคุณภาพ
- จำเป็นต้องมีการประสานงานในทีมเนื่องจากควรรวบรวมการเปลี่ยนแปลงโค้ดอย่างสม่ำเสมออย่างมีประสิทธิภาพ
- การส่งมอบอย่างต่อเนื่องต้องใช้เซิร์ฟเวอร์รวมที่เชื่อถือได้และแข็งแกร่งสำหรับการทดสอบอัตโนมัติซึ่งมีค่าใช้จ่ายสูง
ข้อเสียของการปรับใช้อย่างต่อเนื่อง
ข้อเสีย/ข้อเสียของการปรับใช้อย่างต่อเนื่องมีดังนี้:
- วัฒนธรรมการทดสอบของคุณควรดีเนื่องจากคุณภาพของชุดเป็นตัวกำหนดว่าการเผยแพร่ซอฟต์แวร์จะดีเพียงใด
- ขั้นตอนเอกสารจำเป็นต้องตามทันการใช้งาน
- การเผยแพร่การเปลี่ยนแปลงที่สำคัญจำเป็นต้องได้รับการรับรองจากฝ่ายการตลาด ความช่วยเหลือ และการสนับสนุน และแผนกอื่นๆ
แนวทางปฏิบัติที่ดีที่สุดในการบูรณาการอย่างต่อเนื่อง
ต่อไปนี้คือแนวทางปฏิบัติที่ดีที่สุดที่สำคัญบางส่วนในขณะที่ใช้การผสานรวมอย่างต่อเนื่อง
- สร้างซอฟต์แวร์ของคุณโดยอัตโนมัติ
- รักษาการสร้างให้เร็วที่สุด
- ทุกการกระทำควรส่งผลให้เกิดการสร้าง
- ปรับใช้อัตโนมัติ
- กระทำตั้งแต่เนิ่นๆและบ่อยครั้ง
- คุณไม่ควรกระทำรหัสที่เสียหาย
- แก้ไขความล้มเหลวของการสร้างทันที
- สร้างในทุกสภาพแวดล้อมเป้าหมาย สร้างสิ่งประดิษฐ์จากทุกบิลด์
- การสร้างซอฟต์แวร์จะต้องดำเนินการในลักษณะเพื่อให้สามารถทำงานอัตโนมัติได้
- ไม่ต้องพึ่ง IDE
- สร้างและทดสอบทุกสิ่งเมื่อมีการเปลี่ยนแปลง
- สคีมาฐานข้อมูลนับเป็นทุกอย่าง
- ช่วยให้คุณค้นหาตัวชี้วัดที่สำคัญและติดตามตัวชี้วัดเหล่านั้นด้วยภาพ
- เช็คอินบ่อยและเร็ว
- การควบคุมโค้ดต้นฉบับที่แข็งแกร่งยิ่งขึ้น
- การบูรณาการอย่างต่อเนื่องกำลังทำการทดสอบหน่วยทุกครั้งที่คุณคอมมิตโค้ด
- สร้างและทดสอบอัตโนมัติทุกคน
- รักษาบิลด์ให้รวดเร็วด้วยการปรับใช้อัตโนมัติ
แนวทางปฏิบัติที่ดีที่สุดในการจัดส่งอย่างต่อเนื่อง
แนวทางปฏิบัติที่ดีที่สุดที่สำคัญบางส่วนในการดำเนินการจัดส่งอย่างต่อเนื่องมีดังนี้
- จะต้องเริ่มขั้นตอนแรกทุกครั้งที่เช็คอิน
- แต่ละด่านควรเรียกใช้ด่านถัดไปอย่างรวดเร็วเมื่อสำเร็จ
- รักษาเวอร์ชันของซอร์สโค้ด
- ดำเนินการสร้างและปรับใช้อัตโนมัติ
- ปรับใช้กับอินสแตนซ์หนึ่งของ a เครื่องเสมือน ขณะนั้น.
- ดำเนินการทดสอบหน่วยและบูรณาการ
- คุณต้องสร้างห้องสมุดของคุณเพียงครั้งเดียว
- ทีมงานควรใช้วิธีการเผยแพร่อัตโนมัติแบบเดียวกันสำหรับแต่ละสภาพแวดล้อม
- วิธีนี้ช่วยให้คุณสามารถขจัดข้อขัดแย้งและปัญหาในนาทีสุดท้ายได้
- ในกรณีที่สถานะใดๆ ล้มเหลว คุณควรหยุดกระบวนการชั่วคราวและแก้ไขปัญหาโดยอัตโนมัติ
แนวทางปฏิบัติที่ดีที่สุดในการปรับใช้อย่างต่อเนื่อง
ต่อไปนี้เป็นแนวทางปฏิบัติที่ดีที่สุดที่สำคัญบางส่วนขณะใช้งานการปรับใช้อย่างต่อเนื่อง:
- คุณควรใช้ตัวติดตามปัญหาสำหรับงานการพัฒนา
- ในระบบควบคุมเวอร์ชันของคุณ คุณควรสร้างสาขาที่มีหมายเลขปัญหาและคำอธิบายของการเปลี่ยนแปลงใดๆ ที่คุณทำ
- เมื่อซอฟต์แวร์พร้อมสำหรับการปรับใช้ คุณสามารถสร้างคำขอดึงสำหรับสาขาได้
- การปรับใช้ซอฟต์แวร์กับเซิร์ฟเวอร์ staging ก่อนการผลิตจริง
- Promoลองใช้ซอฟต์แวร์ของคุณเมื่อคุณพอใจกับคุณภาพแล้ว
ความท้าทายของการบูรณาการอย่างต่อเนื่อง
ต่อไปนี้เป็นความท้าทายของการบูรณาการอย่างต่อเนื่อง:
- ทำให้กระบวนการพัฒนาช้าลง
- เปิดเผยปัญหาและแบ่งปันประเด็นต่างๆ
- อาจทำให้ขาดการบำรุงรักษาการควบคุมเวอร์ชัน
- มันสามารถบังคับให้คุณจัดการกับปัญหาได้
- ความยากในการสร้างที่เก็บโค้ดอัตโนมัติ
- จะต้องไม่คอมมิตโค้ดที่ยังไม่ทดสอบหรือใช้งานไม่ได้
ความท้าทายของการส่งมอบอย่างต่อเนื่อง
ความท้าทายในการส่งมอบอย่างต่อเนื่องมีดังนี้:
- คุณต้องรักษาการจัดส่งอย่างต่อเนื่องให้มีประสิทธิภาพโดยไม่ต้องรบกวนเวลา
- คุณต้องรับมือกับแผนการเปิดตัวที่มีกำหนดเวลาอันจำกัด
- การสื่อสารเฉพาะผลิตภัณฑ์ที่ไม่ดีของทีมอาจนำไปสู่การแก้ไขรวมถึงความล่าช้าในการปรับใช้
- ทีมธุรกิจควรมีงบประมาณในการมีโครงสร้างพื้นฐานที่จำเป็นในการสร้างซอฟต์แวร์ที่น่าประทับใจยิ่งขึ้น
- การติดตามข้อมูล/สารสนเทศควรใช้โดยทีมวิจัยและพัฒนา
- องค์กรควรตรวจสอบให้แน่ใจว่าซอฟต์แวร์โอเพ่นซอร์สเหมาะสมกับขั้นตอนการทำงานปัจจุบันอย่างไร
ความท้าทายของการปรับใช้อย่างต่อเนื่อง
ต่อไปนี้เป็นความท้าทายของการปรับใช้อย่างต่อเนื่อง:
- ซีดีต้องมีการวางแผนอย่างต่อเนื่องเพื่อให้เผยแพร่บ่อยครั้งและรวดเร็ว
- ตรวจสอบความสอดคล้องระหว่างความต้องการของบริบททางธุรกิจและการพัฒนาแอปพลิเคชัน
- การส่งมอบอย่างรวดเร็วจะต้องไม่แยกออกจากกระบวนการพัฒนาซอฟต์แวร์เพียงอย่างเดียว
- กระแสควรไปพร้อมกับภาพรวม วงจรการพัฒนาซอฟต์แวร์.
- ผลการทดลองจะต้องเชื่อมโยงกับแผนงานซอฟต์แวร์อย่างต่อเนื่อง
อะไรคือความแตกต่างระหว่างการบูรณาการอย่างต่อเนื่อง การส่งมอบอย่างต่อเนื่อง และการปรับใช้อย่างต่อเนื่อง?
CI เป็นแนวทางในการทดสอบการเปลี่ยนแปลงโค้ดเบสแต่ละรายการโดยอัตโนมัติ ในขณะที่การจัดส่งแบบต่อเนื่องเป็นแนวทางในการรับการเปลี่ยนแปลงคุณสมบัติใหม่ การกำหนดค่า และการแก้ไขจุดบกพร่อง ในทางกลับกัน การปรับใช้แบบต่อเนื่องเป็นแนวทางในการพัฒนาซอฟต์แวร์ในวงจรอันสั้น หากต้องการนำวิธีการเหล่านี้ไปใช้อย่างมีประสิทธิผล คุณอาจต้องพิจารณาใช้วิธีใดวิธีหนึ่ง เครื่องมือบูรณาการอย่างต่อเนื่อง 20 อันดับแรก.