แซนด์บ็อกซ์บนคลาวด์

โค้ดของคุณรันที่ไหน ทุกงานของ TaskGoblin ทำงานอยู่ในแซนด์บ็อกซ์บนคลาวด์ที่แยกอิสระและคงอยู่ต่อเนื่อง — ไม่เคยรันบนแล็ปท็อป — โดยข้อมูลรับรองของคุณถูกฉีดเข้าไปรอบๆ ตัวเอเจนต์ ไม่ได้ส่งให้มันโดยตรง

TaskGoblin คือเอเจนต์บนคลาวด์ ซึ่งหมายความว่าคำถามที่สำคัญที่สุด — โค้ดของฉันรันที่ไหน? — มีคำตอบเดียว: ในแซนด์บ็อกซ์บนคลาวด์ที่แยกอิสระ ไม่เคยรันบนแล็ปท็อปของใคร หน้านี้อธิบายว่าแซนด์บ็อกซ์นั้นคืออะไร ทำไมมันจึงแยกอิสระ และมันคงความแยกอิสระไว้ได้อย่างไรเมื่อทีมของคุณเติบโตขึ้น

แซนด์บ็อกซ์คืออะไร

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

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

การแยกอิสระ: หนึ่งขอบเขตต่อหนึ่งองค์กร

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

ความต่อเนื่อง: มันจำสภาพแวดล้อม ไม่ใช่แค่ตัวงาน

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

ความลับอยู่นอกตัวเอเจนต์

เอเจนต์ไม่เคยเห็นข้อมูลรับรองของคุณ สิทธิ์เข้าถึง git ภายในแซนด์บ็อกซ์ถูกจัดสรรตามองค์กรในเวลารัน — โทเค็น OAuth ของ GitLab หรือโทเค็นการติดตั้ง GitHub ที่เพิ่งออกใหม่ — และถูกฉีดเข้าไปในสภาพแวดล้อมรอบๆ ตัวเอเจนต์ แทนที่จะส่งให้มันในฐานะสิ่งที่ต้องอ่าน เอเจนต์ใช้สิทธิ์ที่จำเป็นในการโคลนและพุชได้ โดยที่ความลับของคุณไม่เคยเข้าไปอยู่ในบันทึกบทสนทนาหรือบริบทของมันเลย

นี่คือขอบเขตที่ตั้งใจวางไว้ ไม่ใช่ผลพลอยได้: ข้อมูลรับรองพร้อมใช้งานสำหรับเครื่องมือ git ในแซนด์บ็อกซ์ แต่ไม่เคยเป็นส่วนหนึ่งของเนื้อหาที่เอเจนต์อ่านหรือใช้คิด

แซนด์บ็อกซ์แบบกำหนดเอง

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

แซนด์บ็อกซ์แบบโฮสต์เอง

ทีมที่มีข้อกำหนดด้านการปฏิบัติตามกฎหรือถิ่นที่อยู่ของข้อมูลสามารถรันแซนด์บ็อกซ์บนโครงสร้างพื้นฐานของตัวเองได้ ตัวควบคุมยังคงจัดตารางและขับเคลื่อนงานเหมือนเดิม แต่คอนเทนเนอร์ที่เช็กเอาต์และรันโค้ดของคุณอยู่ภายในสภาพแวดล้อมของคุณ — ดังนั้นซอร์สโค้ด อาร์ติแฟกต์จากการบิลด์ และสถานะการรันจึงไม่เคยออกนอกขอบเขตที่คุณควบคุม นี่คือทางเลือกที่ควรใช้เมื่อคำว่า "บนคลาวด์" ต้องหมายถึงคลาวด์ของคุณ

ไปต่อที่ไหน

  • เอเจนต์ทำงานอย่างไร — ขั้นตอนทั้งหมดตั้งแต่ทริกเกอร์จนถึง merge request เทรด และความจำส่งต่อ
  • มอบหมายงานให้เอเจนต์ — ทุกวิธีในการเริ่มการรัน และการทำงานแบบขนานใช้หนึ่งแซนด์บ็อกซ์ต่อหนึ่งงานอย่างไร
  • Loops — การรันแบบวนซ้ำที่ใช้โมเดลแซนด์บ็อกซ์เดียวกันตามจังหวะ