อ่าน 3 นาที
ทีมซิตี้
TeamCityเป็น เซิร์ฟเวอร์ การจัดการการสร้างและการรวมระบบอย่างต่อเนื่อง / การส่งมอบอย่างต่อเนื่อง (CI/CD) ที่พัฒนาโดยJetBrains เปิดตัวครั้งแรกเมื่อวันที่ 2 ตุลาคม 2549 TeamCity...
ทีมซิตี้
| ทีมซิตี้ | |
|---|---|
| นักพัฒนา | เจ็ทเบรนส์ |
| ปล่อย | 2 ตุลาคม 2549 |
| เวอร์ชันเสถียร | 2025.11 [ 1 ] |
| เขียนเป็น | ชวา |
| ระบบปฏิบัติการ | แอปพลิ เคชันเว็บ แบบเซิร์ฟเวอร์ |
| พิมพ์ | การผสานรวมอย่างต่อเนื่อง , การส่งมอบอย่างต่อเนื่อง , การสร้างอัตโนมัติ |
| ใบอนุญาต | ซอฟต์แวร์เชิงพาณิชย์ที่เป็นกรรมสิทธิ์ซอฟต์แวร์ฟรีสำหรับทีมที่ปฏิบัติตามเงื่อนไขของซัพพลายเออร์ |
| เว็บไซต์ | www.jetbrains.com/teamcity/ |
TeamCityเป็น เซิร์ฟเวอร์ การจัดการการสร้างและการรวมระบบอย่างต่อเนื่อง / การส่งมอบอย่างต่อเนื่อง (CI/CD) ที่พัฒนาโดยJetBrains [ 2 ] เปิดตัวครั้งแรกเมื่อวันที่ 2 ตุลาคม 2549 TeamCity ได้รับการออกแบบมาเพื่อช่วยทีมพัฒนาในการสร้าง ทดสอบ และปรับใช้กระบวนการสำหรับโครงการซอฟต์แวร์บนแพลตฟอร์มและเทคโนโลยีที่หลากหลายโดยอัตโนมัติ[ 3 ] TeamCity ดำเนินงานภายใต้ โมเดลการอนุญาต แบบฟรีเมียมโดยมีระดับฟรีที่มีการกำหนดค่าการสร้างได้สูงสุด 100 รายการและใบอนุญาต Build Agent สามรายการ ในขณะที่ โครงการ โอเพนซอร์สสามารถขอใบอนุญาตฟรีได้ทั้งหมด คุณสมบัติระดับองค์กรต้องใช้ใบอนุญาตแบบชำระเงิน
ภาพรวม
TeamCity ทำหน้าที่เป็นแพลตฟอร์มส่วนกลางสำหรับ แนวทางปฏิบัติ DevOpsช่วยให้ทีมสามารถนำ เวิร์กโฟลว์ การรวมระบบอย่างต่อเนื่อง (Continuous Integration ) และการส่งมอบอย่างต่อเนื่อง (Continuous Delivery) ไปใช้ได้ระบบจะตรวจสอบระบบควบคุมเวอร์ชันเพื่อหาการเปลี่ยนแปลง และเรียกใช้การสร้าง การทดสอบ และการปรับใช้โดยอัตโนมัติตามกฎและทริกเกอร์ที่กำหนดค่าได้ อินเทอร์เฟซบนเว็บช่วยให้มองเห็นสถานะการสร้าง ผลการทดสอบ ตัวชี้วัดคุณภาพโค้ด และไปป์ไลน์การปรับใช้ได้อย่างครอบคลุม แพลตฟอร์มนี้สร้างขึ้นโดยใช้Javaและทำงานเป็นแอปพลิเคชันเซิร์ฟเวอร์ที่สามารถปรับใช้ได้ทั้งในระบบภายในองค์กรหรือในสภาพแวดล้อมคลาวด์ TeamCity รองรับการประมวลผลการสร้างแบบกระจายผ่านสถาปัตยกรรม Build Agent ช่วยให้ทีมสามารถปรับขนาดโครงสร้างพื้นฐาน CI/CD ของตนไปยังเครื่องและสภาพแวดล้อมต่างๆ ได้
คุณสมบัติหลัก
การจัดการอาคาร
- การกำหนดค่าการสร้างที่ยืดหยุ่น:รองรับกระบวนการสร้างที่ซับซ้อนพร้อมการพึ่งพา การทำงานแบบขนาน และตรรกะแบบมีเงื่อนไข
- เทมเพลตการสร้าง:เทมเพลตการกำหนดค่าที่สามารถนำกลับมาใช้ใหม่ได้ เพื่อสร้างมาตรฐานกระบวนการสร้างในโครงการต่างๆ
- การจัดการอาร์ติแฟกต์:คลังเก็บอาร์ติแฟกต์ในตัวพร้อมระบบกำหนดเวอร์ชัน นโยบายการล้างข้อมูล และการแก้ไขความสัมพันธ์ระหว่างอา ร์ติแฟกต์
- ตัวกระตุ้นการสร้าง:มีตัวกระตุ้นหลายประเภท ได้แก่ การเปลี่ยนแปลงของระบบควบคุมเวอร์ชัน (VCS), ตัวกระตุ้นตามกำหนดเวลา, ตัวกระตุ้นตามความสัมพันธ์ และตัวกระตุ้นแบบกำหนดเอง
- พารามิเตอร์การสร้าง:พารามิเตอร์ที่กำหนดค่าได้สำหรับการสร้างและการปรับใช้เฉพาะสภาพแวดล้อม
การบูรณาการและการทดสอบอย่างต่อเนื่อง
- การคอมมิตแบบมีเงื่อนไข: การตรวจสอบความถูกต้องก่อนการคอมมิต ซึ่งป้องกันไม่ให้นักพัฒนาทำลายสาขาหลักโดยการรันบิลด์บนการเปลี่ยนแปลงที่เสนอ ก่อนที่จะทำการคอมมิตอย่างเป็นทางการ
- การประมวลผลบิลด์แบบขนาน: การประมวลผลบิลด์แบบกระจายไปยังเอเจนต์บิลด์หลายตัว เพื่อให้ได้ผลลัพธ์ที่เร็วขึ้น
- การบูรณาการการทดสอบ: รองรับเฟรมเวิร์กการทดสอบหลัก ๆ อย่างเต็มรูปแบบ พร้อมรายงานโดยละเอียดและการติดตามประวัติ
- การวิเคราะห์คุณภาพโค้ด: การบูรณาการการครอบคลุมโค้ดการตรวจสอบโค้ดและการตรวจจับโค้ดซ้ำ
- การตรวจจับการทดสอบที่ไม่น่าเชื่อถือ: การระบุและติดตามการทดสอบที่ไม่น่าเชื่อถือโดยอัตโนมัติ
การบูรณาการสภาพแวดล้อมการพัฒนา
- ปลั๊กอิน IDE:การผสานรวมอย่างเป็นธรรมชาติกับIntelliJ IDEA , Eclipse , Visual Studioและ IDE ยอดนิยมอื่นๆ
- การทดสอบการเปลี่ยนแปลงล่วงหน้า:นักพัฒนาสามารถตรวจสอบความถูกต้องของการเปลี่ยนแปลงในเครื่องของตนเองก่อนที่จะส่งไปยังที่เก็บโค้ด
- การแจ้งเตือนแบบเรียลไทม์:สร้างการแจ้งเตือนสถานะผ่านอีเมล Slack และช่องทางการสื่อสารอื่นๆ
- เวอร์ชันส่วนบุคคล:การตรวจสอบความถูกต้องของเวอร์ชันส่วนตัวสำหรับนักพัฒนาแต่ละคน
การจัดการการปรับใช้และการเผยแพร่
ไปป์ไลน์การปรับใช้: เครื่องมือออกแบบไปป์ไลน์แบบภาพสำหรับเวิร์กโฟลว์การปรับใช้ที่ซับซ้อน การจัดการสภาพแวดล้อม: รองรับสภาพแวดล้อมการปรับใช้หลายแบบพร้อมเวิร์กโฟลว์การโปรโมต การจัดการการเผยแพร่: การผสานรวมกับเครื่องมือการปรับใช้และแพลตฟอร์มคลาวด์ ความสามารถในการย้อนกลับ: กลไกการย้อนกลับอัตโนมัติสำหรับการปรับใช้ที่ล้มเหลว
เทคโนโลยีที่รองรับ
ภาษาและแพลตฟอร์มการเขียนโปรแกรม
เครื่องมือสร้างและตัวจัดการแพ็กเกจ
การสนับสนุนด้านภาษาอย่างครอบคลุม:
- ภาษา Java และ JVM (Scala, Groovy, Clojure)
- .NET Framework และ .NET Core (C#, VB.NET, F#)
- JavaScript และ Node.js
- ไพธอน
- ทับทิม
- ไป
- ซี++ และ ซี
- พีพี
- สวิฟต์
- โคทลิน
เครื่องมือสร้างและตัวจัดการแพ็กเกจ กลไกการสร้างหลัก:
- Maven (ระบบนิเวศของ Java)
- Gradle (ระบบนิเวศ Java/Android)
- MSBuild (ระบบนิเวศ .NET)
- Apache Ant (ระบบนิเวศของ Java)
เอ็นจิ้นการพัฒนาเกม
- Unity (การเขียนสคริปต์ด้วยภาษา C#)
- Unreal Engine (C++, Blueprint ระบบเขียนสคริปต์แบบภาพ)
- Godot (GDScript, C#, C++)
- GameMaker Studio (GML)
- สร้าง
- Cocos2d (C++, JavaScript, Lua)
- เอ็นจิ้นและเฟรมเวิร์กเกมแบบกำหนดเอง
โปรแกรมจัดการแพ็กเกจ:
- npm และ Yarn (JavaScript/Node.js)
- NuGet (ระบบนิเวศ .NET)
- pip (Python)
- รูบี้เจมส์ (รูบี้)
การสนับสนุนการสร้างเพิ่มเติม
นอกจากนี้ TeamCity ยังรองรับฟังก์ชันพื้นฐานดังต่อไปนี้:
- การสร้างคอนเทนเนอร์ Docker
- การปรับใช้ Kubernetes
- เฟรมเวิร์กการทดสอบที่หลากหลายครอบคลุมทุกภาษาที่รองรับ
- เครื่องมือวัดความครอบคลุมของโค้ดสำหรับการวิเคราะห์คุณภาพ
- เครื่องมือวิเคราะห์แบบคงที่สำหรับการตรวจสอบโค้ด
ระบบควบคุมเวอร์ชัน
TeamCity รองรับการผสานรวมอย่างครอบคลุมกับระบบ ควบคุมเวอร์ชัน หลักๆ:
- Git (รวมถึงGitHub , GitLabและBitbucket )
- ปรอท (hg)
- การบ่อนทำลาย (svn)
- เพอร์ฟอร์ซ
- ระบบเวอร์ชันคู่ขนาน (CVS)
- ทีมสตาร์ของไมโครโฟกัส
- ClearCase (รุ่นพื้นฐานและ UCM)
- ระบบควบคุมเวอร์ชันของ Team Foundation (TFVC)
- พลาสติก SCM
- Visual SourceSafe (VSS)
- ห้องนิรภัย[ 2 ]
สถาปัตยกรรม
TeamCity ใช้สถาปัตยกรรมแบบกระจายศูนย์ซึ่งประกอบด้วย:
- TeamCity Server:ส่วนประกอบการจัดการส่วนกลางที่ทำหน้าที่เป็นโฮสต์ของเว็บอินเทอร์เฟซ จัดการการตั้งค่า และประสานงานการสร้างโปรแกรม
- Build Agents:ตัวประมวลผลแบบกระจายที่ดำเนินการงานสร้างและรายงานผลลัพธ์กลับไปยังเซิร์ฟเวอร์
- ฐานข้อมูล:พื้นที่จัดเก็บข้อมูลถาวรสำหรับประวัติการสร้าง การกำหนดค่า และข้อมูลเมตา
- พื้นที่จัดเก็บอาร์ติแฟกต์:ที่เก็บผลลัพธ์จากการสร้างโปรแกรม ไลบรารี และแพ็กเกจสำหรับการติดตั้งใช้งาน
สถาปัตยกรรมนี้ช่วยให้สามารถขยายขนาดในแนวนอนและรองรับการใช้งานระบบคลาวด์แบบไฮบริดได้
ประโยชน์
สำหรับทีมพัฒนา
วงจรการตอบรับที่รวดเร็วยิ่งขึ้น:การแจ้งเตือนทันทีเมื่อเกิดข้อผิดพลาดในการสร้างและผลการทดสอบ การประกันคุณภาพ:การตรวจสอบคุณภาพโค้ดอัตโนมัติ และการรายงานการทดสอบที่ครอบคลุม การทำงานร่วมกัน:การมองเห็นสถานะโครงการและประวัติการสร้างร่วมกัน ประสิทธิภาพการทำงานของนักพัฒนา:การผสานรวม IDE และการตรวจสอบก่อนการคอมมิตช่วยลดการสลับบริบท
สำหรับองค์กรต่างๆ
ลดความเสี่ยง:การทดสอบอัตโนมัติและการตรวจสอบความถูกต้องของการใช้งานช่วยลดปัญหาที่เกิดขึ้นในขั้นตอนการผลิต การปฏิบัติตามกฎระเบียบ : บันทึก การตรวจสอบ การควบคุมการเข้าถึง และการติดตามการใช้งานช่วยสนับสนุนข้อกำหนดด้านกฎระเบียบ ประสิทธิภาพด้านต้นทุน:ลดความพยายามด้วยตนเองในกระบวนการสร้างและใช้งาน ความสามารถในการขยายขนาด:สถาปัตยกรรมแบบกระจายช่วยสนับสนุนทีมพัฒนาที่กำลังเติบโตและโครงการที่ซับซ้อน
การเปรียบเทียบกับคู่แข่ง
TeamCity แข่งขันกับแพลตฟอร์ม CI/CD อื่นๆ เช่นJenkins , GitLab CI/CD, GitHub Actions, Azure DevOpsและCircleCI
จุดเด่นที่สำคัญ ได้แก่: ประสบการณ์ผู้ใช้:อินเทอร์เฟซเว็บที่ใช้งานง่าย พร้อมตัวเลือกการปรับแต่งที่หลากหลาย ระบบนิเวศของ JetBrains:การผสานรวมอย่างลึกซึ้งกับเครื่องมือพัฒนาของ JetBrains คุณสมบัติระดับองค์กร:ความปลอดภัย การปฏิบัติตามข้อกำหนด และความสามารถด้านการจัดการขั้นสูง การใช้งานแบบไฮบริด:ตัวเลือกการใช้งานที่ยืดหยุ่นทั้งในระบบภายในองค์กรและบนคลาวด์
การออกใบอนุญาต
TeamCity มีแพ็กเกจใบอนุญาตให้เลือกหลายระดับ:
ระดับมืออาชีพ:ฟรีสำหรับการกำหนดค่าการสร้างสูงสุด 100 รายการและเอเจนต์การสร้าง 3 ตัว ระดับ องค์กร:ใบอนุญาตเชิงพาณิชย์พร้อมการกำหนดค่าการสร้างและเอเจนต์แบบไม่จำกัดจำนวน โอเพนซอร์ส:ใบอนุญาตฟรีสำหรับโครงการโอเพนซอร์สที่มีคุณสมบัติเหมาะสม ระดับ การศึกษา:ใบอนุญาตเพื่อการศึกษาสำหรับโรงเรียนและมหาวิทยาลัย
ดูเพิ่มเติม
- ซอฟต์แวร์การรวมระบบอย่างต่อเนื่อง
- การเปรียบเทียบซอฟต์แวร์การรวมระบบอย่างต่อเนื่อง
- เดวิออปส์
- การส่งมอบอย่างต่อเนื่อง
- สร้างระบบอัตโนมัติ
- เจ็ทเบรนส์
ลิงก์ภายนอก
เว็บไซต์อย่างเป็นทางการของ TeamCity เอกสารประกอบการใช้งานTeamCity บล็อกของ TeamCity