การปรับใช้เพื่อใช้งานจริงและการแสดงละครด้วย Deploybot

เผยแพร่แล้ว: 2022-06-30

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

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

วันนี้เราจะแก้ไขปัญหานี้โดยใช้ Git และ Deploybot เพื่อทำให้กระบวนการปรับใช้ของคุณเป็นไปโดยอัตโนมัติ

การปรับใช้อัตโนมัติคืออะไร

การปรับใช้อัตโนมัติขั้นพื้นฐานมีสี่ส่วนดังแสดงในแผนภาพนี้

นักพัฒนาส่วนใหญ่เริ่มต้นด้วยโค้ดและเซิร์ฟเวอร์เท่านั้น พวกเขาทำการเปลี่ยนแปลงในสำเนาการทำงานของไซต์ จากนั้นจึงส่งการเปลี่ยนแปลงเหล่านั้นไปยังเซิร์ฟเวอร์โดยตรงผ่าน FTP เครื่องมืออย่าง Coda หรือ Dreamweaver มีการผสานรวม FTP โดยตรง คุณจึงสามารถทำได้จากภายในสภาพแวดล้อมการเข้ารหัสของคุณ

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

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

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

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

ตอนนี้คุณมีระบบที่มีลักษณะเช่นนี้

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

วิธีจัดโครงสร้างที่เก็บ Git ของคุณ

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

git init

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

config/app_config.yml

config/database.yml

config/*.sphinx.conf

config/s3_credentials.yml

*~

*.cache

*.บันทึก

*.pid

tmp/**/*

.DS_Store

db/cstore/**

db/สฟิงซ์/**

doc/api

doc/app

doc/plugins

doc/*.dot

ความคุ้มครอง/*

db/*.sqlite3

*.tmproj

*.sw?

*.esproj

_หมายเหตุ*

dwsync.xml

podcast.xml

*.kpf

*อัพโหลด/*

*.swp

*.ความคิด

*.sublime-project

*.sublime-workspace

*/node_modules/*

แท็ก

*.bak

แคช/*

จัดการไฟล์/*

mu-ปลั๊กอิน/*

dp.php

กระแสน้ำ/*

ภาษา/*

db.php

plugins/wp-rocket/cache.json

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

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

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

git checkout -b staging

คำสั่งนี้จะสร้างและตรวจสอบสาขาใหม่ หากคุณเพิ่งเริ่มใช้ git คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งที่มีอยู่ในเอกสารประกอบ Git

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

  • เอกสารการตั้งค่าที่เก็บ Bitbucket
  • เอกสารการตั้งค่าที่เก็บ Github

การตั้งค่า Deploybot

เมื่อฉันเริ่มทำงานที่ซับซ้อนมากขึ้นในฐานะนักพัฒนา เพื่อนของฉัน Duane คอยแนะนำ Deploybot ให้ฉันฟังเมื่อฉันบ่นทางออนไลน์เกี่ยวกับการปรับใช้ FTP ด้วยตนเอง ต้องใช้คำแนะนำจำนวนหนึ่งก่อนที่ฉันจะทำตามที่บอกในที่สุด แต่ตอนนี้ฉันเป็นลูกค้า Deploybot ที่มีความสุขมาหลายปีแล้ว

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

ในการเริ่มต้นสมัครบัญชี Deploybot และเชื่อมต่อ Github หรือ Bitbucket กับบัญชีของคุณ ฉันจะใช้บัญชี Bitbucket ที่มีอยู่วันนี้ เริ่มต้นด้วยการเพิ่มที่เก็บใหม่ในบัญชี Deploybot ของคุณ

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

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

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

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

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

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

เพื่อเริ่มปรับใช้กับประวัติสภาพแวดล้อมของคุณและคลิกปรับใช้

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

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

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

ในการดำเนินการนี้ คุณจะต้องตรวจสอบสาขาหลักของคุณ จากนั้นจึงรวมการเปลี่ยนแปลงจากสาขาการจัดเตรียมของคุณเป็นสาขาหลัก

คุณสามารถทำได้ด้วยคำสั่งเหล่านี้

git checkout master

git ผสานการแสดงละคร

git push origin master

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

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

ข้อควรพิจารณาในการปรับใช้อื่นๆ

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

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

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

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