Jaynarol Blog

Story : Jaynarol.com Version 1.1

แต่เดิม Blog นี้รันอยู่บน Google Compute Engine ตัวเล็กสุด โดยใช้ image สำเร็จรูปของ Bitnami WordPress เหตุผลเพราะ “ให้มันรันใช้งานได้ก็พอ เรื่องอื่นช่างมัน อยากเริ่มเขียน Blog แล้ว” ถ้ามันยุ่งยากมากกลัวจะขี้เกียจไปซะก่อน หลังมันใช้งานได้ก็ปรับนู้นเพิ่มนี่ ติดตั้งอันนี้ ลบอันนู้น จนโอเคเริ่มเป็นรูปเป็นร่าง Blog ที่ต้องการ และก็ใช้งานยาวๆเรื่อยมา

ผ่านไปเดือนกว่า ช่วงนั้นได้เริ่มศึกษา Docker จริงๆจังๆ ได้ใช้ Docker กับโปรเจคหลายๆตัว หันมามอง Blog ตัวเองแว๊บนึงแล้วรู้สึกได้ทันทีเลยว่า Blog เรามีระบบภายในที่ไม่สามารถควบคุมได้มากเกินไปเพราะเราติดตั้งอัตโนมัติหมด การ Backup ลำบาก และการย้ายข้อมูลไป Host อื่นก็น่าจะลำบากมาก (คำว่าลำบากนิยามโดยเทียบกับโปรเจคที่ใช้ Docker) ด้วยความร้อนวิชาและกลัวว่าปล่อยนานไปจะยิ่งแย่ลงไปอีก จึงคิดที่จะย้าย Blog ซึ่งเป็น CMS WordPress ไปรันบน Docker

ย้อนกลับไป 2 วันก่อนการย้าย Blog เสร็จ ตอนนั้นมีความรู้สึกว่าไหนๆก็จะลงมาลุยรีเมกโครงสร้าง Jaynarol.com ใหม่อยู่แล้ว จำเป็นไหมที่ต้องใช้ WordPress อีก หา Blog Platform อื่นมาลองเล่นดีกว่า เสริชข้อมูลไปเกือบชั่วโมงพบ Blog Platform ที่ เจ๋งๆ Geekๆ มากมาย ได้รู้จัก Blog ที่เป็นแบบ Flat-File ด้วยก็วันนี้แหละ

 

Grav เป็นตัวแรกที่หยิบมาลองเล่น เพราะเห็นเขาบอกว่าไม่ต้องใช้ Database (Flat-File) อ่านเสร็จฝันไปไกลเลย “มันต้อง Maintain ง่ายมากแน่ๆ 555+” การเขียน Blog ก็ใช้ Markdown Syntax ให้อารมณ์ Geek สุดๆ การจัดเรียงข้อมูล Blog อ้างอิงตาม File Structure มีระบบ Plugins, Theme และ มี CLI ให้ใช้งานด้วย สวรรค์ของ Geek ชัดๆ

หลังจากงมไปเกือบครึ่งวันก็ได้ Grav on Docker แบบ Full Automation สมใจ เริ่มจากเขียน Blog ที่เครื่องตัวเองด้วย Markdown Syntax เซฟลงไฟล์และ Push ขึ้น Git จากนั้น Git ก็จะ Hook ไปที่เว็บและ Pull อัพเดท Blog โดยอัตโนมัติ หรือหากวันไหนอยากย้าย Blog ไป Host ใหม่ก็แค่ Clone และรัน docker-compose up -d โอ้โห สะดวกและหล่อมาก หลังจากผ่านจุดด้านงาน infra ไป ก็ต่อด้วยการ export ข้อมูลจาก WordPress ออกมาและยัดลง Grav ขั้นตอนนี้สบายๆไม่ยากอะไร แปปเดียวก็เรียบร้อย

แต่อย่างที่เห็นครับ ตอนนี้ Blog เป็น WordPress ไม่ใช่ Grav แต่อย่างใด 5555+ ที่ต้องพับทิ้งไปทั้งๆที่มัน perfect ขนาดนั้น ไม่ใช่เพราะ Grav ไม่ดีครับ ทุกอย่างดีหมด แต่มาตกม้าตายในจุดที่คาดดดดไม่ถึง นั่นก็คือ “Design” เพราะ Theme ของ Grav มีให้เลือกน้อยมาก หากจะให้ตรงตามที่ต้องการ คงต้องเสียเวลาอีกหลายวันแน่ๆในการสร้าง Theme ขึ้นมาใหม่ (งานด้าน Design นี่คืองานช้างมากสำหรับผม) หลังจากชั่งน้ำหนักแล้ว จึงเป็นอันต้องบอกลากับ Grav กันตรงนี้ แต่ก็ถือว่าเป็นการเสียเวลาที่ได้ความรู้กลับมาไม่น้อย

 

จากนั้นก็ได้ไปลอง Ghost อยู่สองสามชั่วโมง รอบนี้ทำการบ้านมาดี เลือก Theme ที่ถูกใจก่อนเลย จะได้ไม่ตายตอนจบอีก 555+ ในส่วนของ Docker นั้น Ghost ก็มี Official Image ให้อยู่แล้วด้วย งานเลยง่ายขึ้นไปอีก แปปเดียวก็รัน Blog บน Docker ในแบบ Full Automation ได้สมใจ แต่พอใช้งานจริงกับรู้สึกอึดอัดพอสมควร เนื่องจากเสพติดฟีเจอร์ต่างๆบน WP ไปแล้ว เช่นการอัพโหลดภาพด้วย Clipboard การแทรก ShortCode Bootstarp และอื่นๆต่างๆนาๆ จนตัดสินใจพับทิ้งอีกเช่นกัน หันกลับไปซบอก WordPress เหมือนเดิมดีกว่า

 

และแล้วก็มาถึงตอนสุดท้ายของเรื่องซึ่งเรียบง่ายมาก ถ้าไม่ไปติดเสียเวลาไปเล่นเรื่อยเปื่อยคงเสร็จด้วยเวลาไม่ถึงชั่วโมงแท้ๆ 555 เริ่มด้วยใช้ Docker Machine สร้าง Node ใหม่เขียน Docker Compose ให้ใช้ Official Image จาก WordPress + Mysql จูนนิดๆหน่อยๆก็ได้ WordPress ที่คุ้นเคยกลับมาต่างกันแค่รอบนี้รันใน Docker อย่างหล่อ จากนั้นก็ Export + Import ข้อมูลเดิมกลับมา ปรับแต่งนิดหน่อยก็เสร็จ ง่ายๆอย่างงั้นเลย 555+ จากนี้ก็ไม่ต้องกังวลเรื่องการ Backup ข้อมูลหาย และการย้าย Host แล้ว สบายๆไป