ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บนแพลตฟอร์ม

RUK-COM PAAS / DEPLOYMENT

คู่มือ Git-Push-Deploy Add-On สำหรับ การ Deploy

คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี

ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง

คู่มือภาษาไทย

คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง

มีตัวเลือกมากมายในการ Deploy ซอร์สโค้ดของคุณจากที่เก็บ Git ไปยังคอนเทนเนอร์รวมถึงการ Deploy คอนเทนเนอร์ทั้งหมดการ Deploy ซ้ำทันทีผ่านวอลุ่มหรือแนวทาง “git clone” อย่างไรก็ตามเมื่อพูดถึงกระบวนการอัตโนมัติของกระบวนการนี้และการย้ายไปสู่การใช้งานอย่างต่อเนื่องนักพัฒนาจำนวนมากอาจเผชิญกับความซับซ้อนเนื่องจากพวกเขาจำเป็นต้องรู้วิธีรวมส่วนประกอบของแอปพลิเคชันทั้งหมดเข้ากับจุดเชื่อมต่อที่จำเป็นอย่างเหมาะสม

โดยเฉพาะในโลกของคอนเทนเนอร์คุณต้องจัดการบิลด์ของสแต็กอิมเมจของคุณและจัดการกับความซับซ้อนเพิ่มเติมของไปป์ไลน์ CI/CD และการ Deploy คอนเทนเนอร์ใหม่ทั้งหมดอาจไม่ใช่แนวทางที่ดีที่สุดหากคุณดำเนินการบ่อยครั้งโดยไม่มีการเปลี่ยนแปลงการกำหนดค่าในระบบปฏิบัติการสแตกของแอปพลิเคชันเซิร์ฟเวอร์หรือการขึ้นต่อกัน

Image 1: GitHub CI/CDเพื่อให้การ 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 ของคุณนำทางไปยังการตั้งค่า > การตั้งค่านักพัฒนา > โทเค็นการเข้าถึงส่วนบุคคลและเลือกประเภทโทเค็นที่ต้องการ (คลาสสิคหรือเนื้อละเอียด). คลิกที่สร้างโทเค็นใหม่ปุ่ม.

Image 5: GitHub generate token* สำหรับคลาสสิคโทเค็น (ซึ่งให้สิทธิ์เข้าถึงที่เก็บข้อมูลทั้งหมดของคุณ) ระบุ: *บันทึก- คำอธิบายโทเค็น *หมดอายุ- ระยะเวลาที่ถูกต้องสำหรับโทเค็น *เลือกขอบเขต- สำหรับตัวอย่างของเราทำเครื่องหมายที่อย่างน้อยซื้อคืนและผู้ดูแลระบบ:repo_hookขอบเขต

Image 6: GitHub classic token* สำหรับเนื้อละเอียดโทเค็น (ซึ่งให้การเข้าถึงพื้นที่จัดเก็บข้อมูลเฉพาะ) ระบุ: *ชื่อโทเค็นและคำอธิบาย- ชื่อและคำอธิบายที่ไม่ซ้ำของโทเค็น (ไม่บังคับ) *เจ้าของทรัพยากร- โทเค็นจะสามารถทำการเปลี่ยนแปลงทรัพยากรที่เป็นของเจ้าของทรัพยากรที่เลือกเท่านั้น *หมดอายุ- ระยะเวลาที่ถูกต้องสำหรับโทเค็น *การเข้าถึงพื้นที่จัดเก็บข้อมูล- เลือกคลังที่ต้องการ *สิทธิ์- อนุญาตอย่างน้อยอ่านและเขียนเข้าถึงเพื่อเว็บฮุคและอ่านเข้าถึงเพื่อข้อมูลเมตาและสารบัญ

คลิกสร้างโทเค็นที่ด้านล่างของหน้าให้ตรวจสอบและยืนยันในหน้าต่างป๊อปอัป

อย่าลืมคัดลอกและบันทึกค่าโทเค็นที่สร้างขึ้นทันทีเนื่องจากคุณจะไม่สามารถดูได้อีกหลังจากออกจากหน้านี้

Image 7: GitHub copy tokenตอนนี้คุณสามารถดำเนินการต่อไปได้ติดตั้งแพ็คเกจ Git-Push-Deployส่วนด้านล่าง

การสร้างโทเค็นการเข้าถึงบน GitLab

เพื่อสร้างกโทเค็นการเข้าถึงส่วนบุคคลบน GitLabป้อนบัญชีของคุณการตั้งค่าและเปลี่ยนไปที่โทเค็นการเข้าถึงแท็บ

ที่นี่ระบุโทเค็นเสริมชื่อ, ของมันหมดอายุวันที่ (เว้นว่างไว้ได้) และทำเครื่องหมายที่เอพีไอขอบเขตการอนุญาต

Image 9: GitLab Generating Access Tokenคลิกที่สร้างโทเค็นการเข้าถึงส่วนบุคคลปุ่ม.

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

Image 10: GitLab Copy Access Tokenตอนนี้คุณพร้อมสำหรับการติดตั้งแพ็คเกจแล้ว

หากรันโปรเจ็กต์ที่ใช้ 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 ใหม่แล้วดำเนินการติดตั้งต่อ:

  1. คลิกที่ตลาดปุ่มที่ด้านบนของแดชบอร์ดและค้นหาGit-Push-ปรับใช้ส่วนเสริม:

Image 12: Install Add-Onคลิกติดตั้งเพื่อดำเนินการต่อ

  1. ในเฟรมที่เปิดอยู่ให้ระบุรายละเอียดต่อไปนี้เกี่ยวกับที่เก็บและ Environment เป้าหมายของคุณ:
  • สาขา- สาขาโครงการที่จะใช้
  • ผู้ใช้- ป้อนข้อมูลเข้าสู่ระบบบัญชี Git ของคุณ
  • โทเค็น- ระบุโทเค็นการเข้าถึงที่คุณสร้างไว้ก่อนหน้านี้สำหรับการสร้างเว็บฮุค
  • ชื่อ Environment- เลือก Environment ที่แอปพลิเคชันของคุณจะถูกปรับใช้
  • Node- ชื่อเซิร์ฟเวอร์แอปพลิเคชัน (ถูกดึงโดยอัตโนมัติเมื่อเลือก Environment)

Image 13: Configure Add-Onคลิกติดตั้งเพื่อดำเนินการต่อ

  1. รอสักครู่เพื่อให้แพลตฟอร์มดึงแหล่งที่มาของแอปพลิเคชันของคุณจาก GitHub และกำหนดค่าเว็บฮุคสำหรับการ Deploy อย่างต่อเนื่อง

Image 14: Deployed Add-On ปิดกรอบการแจ้งเตือนเมื่อการติดตั้งเสร็จสิ้น

  1. ผลลัพธ์จะเป็นดังนี้ขึ้นอยู่กับประเภทโครงการ:
  • สำหรับที่ใช้ Javaโครงสร้างพื้นฐานคุณจะเห็น Environment ใหม่ปรากฏบนแดชบอร์ดของคุณด้วยมาเวนสร้าง Node ภายในมันจะสร้างและปรับใช้แอปพลิเคชันของคุณกับรากบริบทบนเว็บเซิร์ฟเวอร์ทุกครั้งที่อัปเดตซอร์สโค้ด

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

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

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

หากต้องการเริ่มการสมัครของคุณให้คลิกที่เปิดในเบราว์เซอร์ถัดจากเว็บเซิร์ฟเวอร์ของคุณ

Image 15: Hello World Applicationแค่นั้นแหละ! ขณะนี้เวอร์ชันใหม่ของแอปพลิเคชันของคุณจะถูกส่งไปยังเซิร์ฟเวอร์แอปพลิเคชันโดยอัตโนมัติเมื่อมีการส่งข้อมูลไปยังพื้นที่จัดเก็บข้อมูลแต่ละครั้ง

นโยบายการ Deploy ใหม่สำหรับสแต็กต่างๆ

ตารางด้านล่างแสดงลักษณะการทำงานของเซิร์ฟเวอร์แอปพลิเคชันต่างๆหลังจากได้รับโค้ดที่อัปเดต

ชื่อสแต็ค นโยบาย
Tomcat รีสตาร์ท
TomEE รีสตาร์ท
GlassFish Hot Redeploy ผ่าน Server API
ท่าเทียบเรือ รีสตาร์ท
เจบอส รีสตาร์ท
WildFly รีสตาร์ท
สปริงบูต รีสตาร์ท
Apache PHP ZDT ขั้นสูง
NGINX PHP ZDT ขั้นสูง
Apache Ruby โหลดซ้ำอย่างสง่างาม
NGINX รูบี้ โหลดซ้ำอย่างสง่างาม
NodeJS รีสตาร์ท
หลาม รีสตาร์ท

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

ทดสอบการ Deploy อัตโนมัติจาก Git

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

  1. คลิกแก้ไขไฟล์นี้สำหรับบางรายการภายในที่เก็บโครงการของคุณและยอมรับการเปลี่ยนแปลงตัวอย่างเช่นเราจะแก้ไขข้อความที่หน้าเริ่มต้น HelloWorld ของเรา

Image 18: Commit Changes2. ด้วยเหตุนี้ webhook ที่เหมาะสมจะถูกกระตุ้นให้ปรับใช้การเปลี่ยนแปลงที่ทำไว้ใน Environment การโฮสต์ของคุณ - โปรดดูที่พื้นที่จัดเก็บข้อมูลการตั้งค่า > เว็บฮุคส่วนรายละเอียด

Image 19: GitHub Webhookการคลิกที่รายการจัดส่งจะแสดงรายการของการส่งมอบล่าสุดที่เริ่มต้นโดยเว็บฮุคและผลลัพธ์ของการดำเนินการ

  1. ในฐานะจุดตรวจสอบสุดท้ายให้กลับไปที่หน้าแอปพลิเคชันของคุณแล้วรีเฟรช (ในขณะที่จำไว้ว่า Maven อาจต้องใช้เวลาเพิ่มอีกนาทีในการสร้างและปรับใช้โปรเจ็กต์ที่ใช้ Java ของคุณ)

Image 20: Updated Applicationแค่นั้นแหละ! อย่างที่คุณเห็นการปรับเปลี่ยนได้ถูกนำมาใช้เรียบร้อยแล้วดังนั้นโซลูชันจึงทำงานได้ตามที่ตั้งใจไว้

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