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

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

RUK-COM PAAS / DEPLOYMENT

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

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

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

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

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

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

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

Image 1: GitHub CI/CDเพื่อให้การ Deploy อัตโนมัติง่ายขึ้น Platform PaaS ได้เตรียมส่วนพิเศษเฉพาะไว้Git-Push-DeployPackage สำหรับการจัดส่ง Code ลงใน Container Image ที่สร้างไว้ล่วงหน้าแพคเกจนี้ใช้การกำหนดค่าจำนวนหนึ่งเพื่อตั้งค่าการ Deploy การเปลี่ยนแปลงที่คอมมิตโดยอัตโนมัติภายในพื้นที่จัดเก็บข้อมูลซอร์ส Application Git ของคุณไปยัง Cloud ทำให้พร้อมสำหรับการทดสอบเพิ่มเติมโดยมีความล่าช้าน้อยที่สุด

ข้อมูลจำเพาะ Git-Push-Deploy

Package Git-Push-Deploy สามารถรวมเข้ากับ Git RepositoryHub และ GitLab ได้ได้รับการพัฒนาเพื่อส่งการอัปเดตอัตโนมัติภายในของคุณชวา,PHP,ทับทิม,Node js, และหลามแหล่งที่มาของ Application และสามารถนำไปใช้กับ Application Server ทั้งหมดได้TemplateStack ที่ผ่านการรับรอง.

ขั้นตอนการทำงานขึ้นอยู่กับภาษาการเขียนโปรแกรมที่ใช้ในโปรเจ็กต์ของคุณ:

  • สำหรับโปรเจ็กต์ที่ใช้ JavaPackage เริ่มต้นการสร้าง Environment ที่แยกจากกันด้วยNode การสร้าง Mavenซึ่งจะรับผิดชอบในการโต้ตอบกับพื้นที่จัดเก็บข้อมูล Git ระยะไกลทริกเกอร์บิลด์ Application ของคุณและการ Deploy ไปยัง Application Server
  • สำหรับ Application PHP/Ruby/Node.js/Pythonแพคเกจตั้งค่าไปป์ไลน์สำหรับการ Deploy โปรเจ็กต์โดยตรงไปยังบริบท ROOT บนเว็บ Server (ในที่นี้ให้พิจารณาว่า Server แอป Ruby มาพร้อมกับโหมดการ Deploy แทนที่จะเป็นบริบทภายใน Dashboard แม้ว่าตำแหน่งของโปรเจ็กต์จริงจะเหมือนกันก็ตาม)

บันทึก:ที่Git-Push-Deployส่วนเสริมใช้งานได้กับค่าเริ่มต้นเท่านั้นรากบริบทบน Application Server ด้วยเหตุนี้ให้พิจารณาประเด็นต่อไปนี้ก่อนการติดตั้ง:

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

การกำหนดค่าล่วงหน้าของพื้นที่จัดเก็บข้อมูล

เพื่อการติดตั้งส่วนเสริมที่เหมาะสมคุณจะต้องจัดเตรียมโทเค็น API ส่วนบุคคลสำหรับบัญชี Git ของคุณซึ่งช่วยให้ Package สามารถตั้งค่า webhook สำหรับพื้นที่จัดเก็บข้อมูลที่เกี่ยวข้องซึ่งจะเริ่ม Deploy Application ใหม่ทุกครั้งที่มีส่วนสนับสนุนการเปลี่ยนแปลงใดๆใน Code

เรามาสร้างอันหนึ่งกันด้านล่างนี้เรามีคำแนะนำสำหรับทั้งสองอย่างGitHubและGitLabที่เก็บหากคุณใช้ Git VCS อื่นโปรดดูขั้นตอนที่คล้ายกันในเอกสารประกอบ

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

เพื่อรับกโทเค็นการเข้าถึงส่วนบุคคลสำหรับบัญชี GitHub ของคุณนำทางไปยังการตั้งค่า > การตั้งค่านักพัฒนา > โทเค็นการเข้าถึงส่วนบุคคลและเลือกประเภทโทเค็นที่ต้องการ (คลาสสิคหรือเนื้อละเอียด). คลิกที่สร้างโทเค็นใหม่ปุ่ม.

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

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

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

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

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

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

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

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

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

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

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

หากรันโปรเจ็กต์ที่ใช้ 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>

ค่าทางเลือกคือ:

  • รหัสกลุ่ม- กลุ่มของโครงการ (เช่นชื่อบริษัท)
  • รหัสสิ่งประดิษฐ์- ชื่อของโครงการ
  • รุ่น- เวอร์ชัน Application ของคุณ

Parameter ที่เหลือควรไม่เปลี่ยนแปลง

ติดตั้ง Package Git-Push-Deploy

หากคุณกำลังจะใช้ Environment ที่สร้างขึ้นก่อนหน้านี้โปรดทราบว่า Package จะเขียนทับ Application ที่ Deploy กับรากบริบท. ดังนั้นเพื่อให้ Application ของคุณใช้งานอยู่แล้วให้ย้ายไปยังบริบทที่กำหนดเองเราขอแนะนำให้สร้าง Environment ใหม่แล้วดำเนินการติดตั้งต่อ:

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

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

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

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

  1. รอสักครู่เพื่อให้ Platform ดึงแหล่งที่มาของ Application ของคุณจาก GitHub และกำหนดค่า Webhook สำหรับการ Deploy อย่างต่อเนื่อง

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

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

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

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

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

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

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

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

ตารางด้านล่างแสดงลักษณะการทำงานของ Application Server ต่างๆหลังจากได้รับ Code ที่อัปเดต

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

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

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

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

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

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

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

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

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

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