คู่มือ Git-Push-Deploy Add-On สำหรับ การ Deploy
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
มีตัวเลือกมากมายในการ Deploy ซอร์สโค้ดของคุณจากที่เก็บ Git ไปยังคอนเทนเนอร์รวมถึงการ Deploy คอนเทนเนอร์ทั้งหมดการ Deploy ซ้ำทันทีผ่านวอลุ่มหรือแนวทาง “git clone” อย่างไรก็ตามเมื่อพูดถึงกระบวนการอัตโนมัติของกระบวนการนี้และการย้ายไปสู่การใช้งานอย่างต่อเนื่องนักพัฒนาจำนวนมากอาจเผชิญกับความซับซ้อนเนื่องจากพวกเขาจำเป็นต้องรู้วิธีรวมส่วนประกอบของแอปพลิเคชันทั้งหมดเข้ากับจุดเชื่อมต่อที่จำเป็นอย่างเหมาะสม
โดยเฉพาะในโลกของคอนเทนเนอร์คุณต้องจัดการบิลด์ของสแต็กอิมเมจของคุณและจัดการกับความซับซ้อนเพิ่มเติมของไปป์ไลน์ CI/CD และการ Deploy คอนเทนเนอร์ใหม่ทั้งหมดอาจไม่ใช่แนวทางที่ดีที่สุดหากคุณดำเนินการบ่อยครั้งโดยไม่มีการเปลี่ยนแปลงการกำหนดค่าในระบบปฏิบัติการสแตกของแอปพลิเคชันเซิร์ฟเวอร์หรือการขึ้นต่อกัน
เพื่อให้การ Deploy อัตโนมัติง่ายขึ้นแพลตฟอร์ม PaaS ได้เตรียมส่วนพิเศษเฉพาะไว้Git-Push-ปรับใช้แพ็กเกจสำหรับการจัดส่งโค้ดลงในอิมเมจคอนเทนเนอร์ที่สร้างไว้ล่วงหน้าแพคเกจนี้ใช้การกำหนดค่าจำนวนหนึ่งเพื่อตั้งค่าการ Deploy การเปลี่ยนแปลงที่คอมมิตโดยอัตโนมัติภายในพื้นที่จัดเก็บข้อมูลซอร์สแอปพลิเคชัน Git ของคุณไปยังคลาวด์ทำให้พร้อมสำหรับการทดสอบเพิ่มเติมโดยมีความล่าช้าน้อยที่สุด
ข้อมูลจำเพาะ Git-Push-Deploy
แพ็คเกจ Git-Push-Deploy สามารถรวมเข้ากับที่เก็บ GitHub และ GitLab ได้ได้รับการพัฒนาเพื่อส่งการอัปเดตอัตโนมัติภายในของคุณชวา,PHP,ทับทิม,Node js, และหลามแหล่งที่มาของแอปพลิเคชันและสามารถนำไปใช้กับเซิร์ฟเวอร์แอปพลิเคชันทั้งหมดได้เทมเพลตสแต็กที่ผ่านการรับรอง.
ขั้นตอนการทำงานขึ้นอยู่กับภาษาการเขียนโปรแกรมที่ใช้ในโปรเจ็กต์ของคุณ:
- สำหรับโปรเจ็กต์ที่ใช้ Javaแพ็คเกจเริ่มต้นการสร้าง Environment ที่แยกจากกันด้วยNode การสร้าง Mavenซึ่งจะรับผิดชอบในการโต้ตอบกับพื้นที่จัดเก็บข้อมูล Git ระยะไกลทริกเกอร์บิลด์แอปพลิเคชันของคุณและการ Deploy ไปยังเซิร์ฟเวอร์แอปพลิเคชัน
- สำหรับแอปพลิเคชัน PHP/Ruby/Node.js/Pythonแพคเกจตั้งค่าไปป์ไลน์สำหรับการ Deploy โปรเจ็กต์โดยตรงไปยังบริบท ROOT บนเว็บเซิร์ฟเวอร์ (ในที่นี้ให้พิจารณาว่าเซิร์ฟเวอร์แอป Ruby มาพร้อมกับโหมดการ Deploy แทนที่จะเป็นบริบทภายในแดชบอร์ดแม้ว่าตำแหน่งของโปรเจ็กต์จริงจะเหมือนกันก็ตาม)
บันทึก:ที่Git-Push-ปรับใช้ส่วนเสริมใช้งานได้กับค่าเริ่มต้นเท่านั้นรากบริบทบนแอปพลิเคชันเซิร์ฟเวอร์ด้วยเหตุนี้ให้พิจารณาประเด็นต่อไปนี้ก่อนการติดตั้ง:
- หากคุณมีแอปพลิเคชันที่ปรับใช้กับบริบท ROOT แล้วแอปพลิเคชันนั้นจะถูกเขียนทับโดยการติดตั้งแพ็คเกจหากต้องการเก็บไว้ให้ย้ายแอปพลิเคชันของคุณไปยังบริบทที่กำหนดเอง
- ส่วนเสริมรองรับการอัปเดตแบบพุชทริกเกอร์สำหรับแอปพลิเคชันที่ใช้งานกับบริบท ROOT เท่านั้นดังนั้นการ Deploy งานที่มีการจัดการจะต้องยังคงอยู่ในบริบทนี้เพื่อให้แน่ใจว่าการทำงานที่เหมาะสมของแพ็คเกจ
- ไม่รองรับบริบทที่กำหนดเอง (ไม่ใช่รูท) และบริบทหลายรายการสำหรับพื้นที่จัดเก็บข้อมูลเดียวกัน
การกำหนดค่าล่วงหน้าของพื้นที่จัดเก็บข้อมูล
เพื่อการติดตั้งส่วนเสริมที่เหมาะสมคุณจะต้องจัดเตรียมโทเค็น API ส่วนบุคคลสำหรับบัญชี Git ของคุณซึ่งช่วยให้แพ็คเกจสามารถตั้งค่า webhook สำหรับพื้นที่จัดเก็บข้อมูลที่เกี่ยวข้องซึ่งจะเริ่มปรับใช้แอปพลิเคชันใหม่ทุกครั้งที่มีส่วนสนับสนุนการเปลี่ยนแปลงใดๆในโค้ด
เรามาสร้างอันหนึ่งกันด้านล่างนี้เรามีคำแนะนำสำหรับทั้งสองอย่างGitHubและGitLabที่เก็บหากคุณใช้ Git VCS อื่นโปรดดูขั้นตอนที่คล้ายกันในเอกสารประกอบ
การสร้างโทเค็นการเข้าถึงบน GitHub
เพื่อรับกโทเค็นการเข้าถึงส่วนบุคคลสำหรับบัญชี GitHub ของคุณนำทางไปยังการตั้งค่า > การตั้งค่านักพัฒนา > โทเค็นการเข้าถึงส่วนบุคคลและเลือกประเภทโทเค็นที่ต้องการ (คลาสสิคหรือเนื้อละเอียด). คลิกที่สร้างโทเค็นใหม่ปุ่ม.
* สำหรับคลาสสิคโทเค็น (ซึ่งให้สิทธิ์เข้าถึงที่เก็บข้อมูลทั้งหมดของคุณ) ระบุ: *บันทึก- คำอธิบายโทเค็น *หมดอายุ- ระยะเวลาที่ถูกต้องสำหรับโทเค็น *เลือกขอบเขต- สำหรับตัวอย่างของเราทำเครื่องหมายที่อย่างน้อยซื้อคืนและผู้ดูแลระบบ:repo_hookขอบเขต
* สำหรับเนื้อละเอียดโทเค็น (ซึ่งให้การเข้าถึงพื้นที่จัดเก็บข้อมูลเฉพาะ) ระบุ: *ชื่อโทเค็นและคำอธิบาย- ชื่อและคำอธิบายที่ไม่ซ้ำของโทเค็น (ไม่บังคับ) *เจ้าของทรัพยากร- โทเค็นจะสามารถทำการเปลี่ยนแปลงทรัพยากรที่เป็นของเจ้าของทรัพยากรที่เลือกเท่านั้น *หมดอายุ- ระยะเวลาที่ถูกต้องสำหรับโทเค็น *การเข้าถึงพื้นที่จัดเก็บข้อมูล- เลือกคลังที่ต้องการ *สิทธิ์- อนุญาตอย่างน้อยอ่านและเขียนเข้าถึงเพื่อเว็บฮุคและอ่านเข้าถึงเพื่อข้อมูลเมตาและสารบัญ
คลิกสร้างโทเค็นที่ด้านล่างของหน้าให้ตรวจสอบและยืนยันในหน้าต่างป๊อปอัป
อย่าลืมคัดลอกและบันทึกค่าโทเค็นที่สร้างขึ้นทันทีเนื่องจากคุณจะไม่สามารถดูได้อีกหลังจากออกจากหน้านี้
ตอนนี้คุณสามารถดำเนินการต่อไปได้ติดตั้งแพ็คเกจ Git-Push-Deployส่วนด้านล่าง
การสร้างโทเค็นการเข้าถึงบน GitLab
เพื่อสร้างกโทเค็นการเข้าถึงส่วนบุคคลบน GitLabป้อนบัญชีของคุณการตั้งค่าและเปลี่ยนไปที่โทเค็นการเข้าถึงแท็บ
ที่นี่ระบุโทเค็นเสริมชื่อ, ของมันหมดอายุวันที่ (เว้นว่างไว้ได้) และทำเครื่องหมายที่เอพีไอขอบเขตการอนุญาต
คลิกที่สร้างโทเค็นการเข้าถึงส่วนบุคคลปุ่ม.
บนหน้าที่ปรากฏขึ้นให้คัดลอกและจัดเก็บค่าโทเค็นการเข้าถึงของคุณไว้ในที่ที่ปลอดภัยชั่วคราว (เนื่องจากคุณจะไม่สามารถดูได้อีกหลังจากออกจากหน้านี้)
ตอนนี้คุณพร้อมสำหรับการติดตั้งแพ็คเกจแล้ว
หากรันโปรเจ็กต์ที่ใช้ Java คุณต้องตรวจสอบให้แน่ใจว่ามีการโต้ตอบที่เหมาะสมกับ Node Maven build โดยการเพิ่ม Project Object Model พิเศษ (ปอม) ไปยังโครงสร้างของมัน
ดังนั้นจงสร้างกpom.xmlในรูทที่เก็บโปรเจ็กต์ของคุณโดยมีเนื้อหาต่อไปนี้เป็นพื้นฐานบังคับ:
xml
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<build>
<finalName>${project.artifactId}</finalName>
</build>
</project>
ค่าทางเลือกคือ:
- รหัสกลุ่ม- กลุ่มของโครงการ (เช่นชื่อบริษัท)
- รหัสสิ่งประดิษฐ์- ชื่อของโครงการ
- รุ่น- เวอร์ชันแอปพลิเคชันของคุณ
พารามิเตอร์ที่เหลือควรไม่เปลี่ยนแปลง
ติดตั้งแพ็คเกจ Git-Push-Deploy
หากคุณกำลังจะใช้ Environment ที่สร้างขึ้นก่อนหน้านี้โปรดทราบว่าแพ็คเกจจะเขียนทับแอปพลิเคชันที่ปรับใช้กับรากบริบท. ดังนั้นเพื่อให้แอปพลิเคชันของคุณใช้งานอยู่แล้วให้ย้ายไปยังบริบทที่กำหนดเองเราขอแนะนำให้สร้าง Environment ใหม่แล้วดำเนินการติดตั้งต่อ:
- คลิกที่ตลาดปุ่มที่ด้านบนของแดชบอร์ดและค้นหาGit-Push-ปรับใช้ส่วนเสริม:
- ในเฟรมที่เปิดอยู่ให้ระบุรายละเอียดต่อไปนี้เกี่ยวกับที่เก็บและ Environment เป้าหมายของคุณ:
- สาขา- สาขาโครงการที่จะใช้
- ผู้ใช้- ป้อนข้อมูลเข้าสู่ระบบบัญชี Git ของคุณ
- โทเค็น- ระบุโทเค็นการเข้าถึงที่คุณสร้างไว้ก่อนหน้านี้สำหรับการสร้างเว็บฮุค
- ชื่อ Environment- เลือก Environment ที่แอปพลิเคชันของคุณจะถูกปรับใช้
- Node- ชื่อเซิร์ฟเวอร์แอปพลิเคชัน (ถูกดึงโดยอัตโนมัติเมื่อเลือก Environment)
- รอสักครู่เพื่อให้แพลตฟอร์มดึงแหล่งที่มาของแอปพลิเคชันของคุณจาก GitHub และกำหนดค่าเว็บฮุคสำหรับการ Deploy อย่างต่อเนื่อง
ปิดกรอบการแจ้งเตือนเมื่อการติดตั้งเสร็จสิ้น
- ผลลัพธ์จะเป็นดังนี้ขึ้นอยู่กับประเภทโครงการ:
- สำหรับที่ใช้ Javaโครงสร้างพื้นฐานคุณจะเห็น Environment ใหม่ปรากฏบนแดชบอร์ดของคุณด้วยมาเวนสร้าง Node ภายในมันจะสร้างและปรับใช้แอปพลิเคชันของคุณกับรากบริบทบนเว็บเซิร์ฟเวอร์ทุกครั้งที่อัปเดตซอร์สโค้ด
บันทึก:Maven อาจต้องใช้เวลาพอสมควรในการคอมไพล์โปรเจ็กต์ (แม้ว่าการติดตั้งแพ็คเกจจะเสร็จสิ้นแล้วก็ตาม) ดังนั้นคุณต้องรอสักครู่ก่อนเปิดตัวสามารถติดตามความคืบหน้าของการดำเนินการในปัจจุบันได้แบบเรียลไทม์ผ่านทางvcs_updateไฟล์บันทึกบน Maven
- สำหรับอิง PHPโครงสร้างพื้นฐาน (และภาษาอื่นๆที่รองรับ) แอปพลิเคชันของคุณจะถูกปรับใช้โดยตรงกับเซิร์ฟเวอร์ที่เลือกราก.
บันทึก:สำหรับทับทิมแอปพลิเคชันเซิร์ฟเวอร์โครงการส่วนให้ข้อมูลเกี่ยวกับโหมดการใช้งาน (การพัฒนาโดยค่าเริ่มต้น) แทนที่จะเป็นบริบทในขณะที่ตำแหน่งแอปจริงอ้างอิงถึงรูทเซิร์ฟเวอร์เช่นกัน
หากต้องการเริ่มการสมัครของคุณให้คลิกที่เปิดในเบราว์เซอร์ถัดจากเว็บเซิร์ฟเวอร์ของคุณ
แค่นั้นแหละ! ขณะนี้เวอร์ชันใหม่ของแอปพลิเคชันของคุณจะถูกส่งไปยังเซิร์ฟเวอร์แอปพลิเคชันโดยอัตโนมัติเมื่อมีการส่งข้อมูลไปยังพื้นที่จัดเก็บข้อมูลแต่ละครั้ง
นโยบายการ Deploy ใหม่สำหรับสแต็กต่างๆ
ตารางด้านล่างแสดงลักษณะการทำงานของเซิร์ฟเวอร์แอปพลิเคชันต่างๆหลังจากได้รับโค้ดที่อัปเดต
| ชื่อสแต็ค | นโยบาย |
|---|---|
| Tomcat | รีสตาร์ท |
| TomEE | รีสตาร์ท |
| GlassFish | Hot Redeploy ผ่าน Server API |
| ท่าเทียบเรือ | รีสตาร์ท |
| เจบอส | รีสตาร์ท |
| WildFly | รีสตาร์ท |
| สปริงบูต | รีสตาร์ท |
| Apache PHP | ZDT ขั้นสูง |
| NGINX PHP | ZDT ขั้นสูง |
| Apache Ruby | โหลดซ้ำอย่างสง่างาม |
| NGINX รูบี้ | โหลดซ้ำอย่างสง่างาม |
| NodeJS | รีสตาร์ท |
| หลาม | รีสตาร์ท |
เพื่อกำจัดการหยุดทำงานของแอปพลิเคชันที่เป็นไปได้สำหรับเซิร์ฟเวอร์ด้วยรีสตาร์ทอัปเดตนโยบายขยายขนาดออกเพื่อใช้งานบนคอนเทนเนอร์หลายตัวในกรณีนี้การอัปเดตที่จำเป็นจะถูกนำไปใช้กับอินสแตนซ์ตามลำดับโดยมีการหน่วงเวลา 30 วินาทีตามค่าเริ่มต้น
ทดสอบการ Deploy อัตโนมัติจาก Git
และตอนนี้เรามาตรวจสอบว่ากระบวนการนี้ทำงานอย่างไรทำการปรับเปลี่ยนโค้ดเล็กน้อยใน repo และตรวจสอบให้แน่ใจว่าทุกอย่างเป็นไปโดยอัตโนมัติ:
- คลิกแก้ไขไฟล์นี้สำหรับบางรายการภายในที่เก็บโครงการของคุณและยอมรับการเปลี่ยนแปลงตัวอย่างเช่นเราจะแก้ไขข้อความที่หน้าเริ่มต้น HelloWorld ของเรา
2. ด้วยเหตุนี้ webhook ที่เหมาะสมจะถูกกระตุ้นให้ปรับใช้การเปลี่ยนแปลงที่ทำไว้ใน Environment การโฮสต์ของคุณ - โปรดดูที่พื้นที่จัดเก็บข้อมูลการตั้งค่า > เว็บฮุคส่วนรายละเอียด
การคลิกที่รายการจัดส่งจะแสดงรายการของการส่งมอบล่าสุดที่เริ่มต้นโดยเว็บฮุคและผลลัพธ์ของการดำเนินการ
- ในฐานะจุดตรวจสอบสุดท้ายให้กลับไปที่หน้าแอปพลิเคชันของคุณแล้วรีเฟรช (ในขณะที่จำไว้ว่า Maven อาจต้องใช้เวลาเพิ่มอีกนาทีในการสร้างและปรับใช้โปรเจ็กต์ที่ใช้ Java ของคุณ)
แค่นั้นแหละ! อย่างที่คุณเห็นการปรับเปลี่ยนได้ถูกนำมาใช้เรียบร้อยแล้วดังนั้นโซลูชันจึงทำงานได้ตามที่ตั้งใจไว้
เพียงอัปเดตโค้ดของคุณดำเนินการตามปกติแล้วการเปลี่ยนแปลงทั้งหมดจะถูกส่งไปยัง Environment PaaS ของคุณโดยอัตโนมัติไม่จำเป็นต้องสลับระหว่างกระบวนการหรือทำการอัปเดตด้วยตนเองซึ่งช่วยลดข้อผิดพลาดของมนุษย์และเร่งเวลาออกสู่ตลาดสำหรับแอปพลิเคชันของคุณ


