Jaynarol Blog

Docker : สร้าง Private Registry ของตัวเองด้วย Nexus

ในหัวข้อนี้เป็นการแบ่งปันที่ผมลองผิดลองถูกเกือบวัน เรื่องของเรื่องคือโปรเจคที่ผมดูแลจะใช้วิธีการแบ่งส่วนงานเป็นส่วนๆแบบแยกจากกันขาดและเรียกมารวมกันทีหลัง เช่นในระดับโปรแกรมที่เขียนด้วย Java ต้องเขียนแต่ละส่วนเป็น jar และ import ผ่าน Maven โปรเจคที่เขียนด้วย Node ก็ใช้ NPM และสุดท้ายคือในระดับ Infrastructure ก็ต้องใช้ Docker Image แยกแต่ละส่วนและมาประกอบกันด้วย Docker Compose นั่นเองครับ

ปัญหาคือไฟล์งานมันไม่ควรเป็นสาธารณะ อยากมี Repository ทั้ง Mavan NPM และ Docker แบบส่วนตัว อยากให้มันดูแลง่ายที่สุด อยากให้มันมีระบบจัดการสิทธิ์ และสุดท้ายคือใช้ Cost น้อยที่สุดครับ

Continue Reading

Docker : จัดเก็บและจัดการ Logs ด้วย PapertrailApp

สวัสดีครับ บทความนี้ต่อเนื่องจากบทความ เข้าใจและจัดการ Logs ด้วย Syslog ซึ่งในบทความนั้นเราได้สร้าง Syslog Container เพิ่มขึ้นมาในระบบเพื่อใช้รับ Logs จาก Container อื่นๆ แต่บทความนี้จะพูดถึงการจัดเก็บ Logs ด้วยวิธีที่คล้ายๆกันแต่ผลลัพธ์เจ๋งกว่าเยอะครับ

Continue Reading

Docker : ใช้งาน Crontabs + ตั้งเวลา Log Rotation อัตโนมัติ

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

Continue Reading

Docker : เข้าใจและจัดการ Logs ด้วย Syslog

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

Continue Reading

Docker : แก้ปัญหา IP เมื่อ CloudFlare + HAProxy + Apache

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

แต่ไม่ใช่กับเคสนี้ เพราะเสริชแล้วไม่เจอเลยต้องลองผิดลองถูกเองหลายชั่วโมงเลย – -*

เรื่องของเรื่องคือระบบเดิมเป็น Cloudflare > Apache ทีนี้พอเอา HAProxy มาคั่นปัญหาเรื่อง IP ก็เกิดทันที (Cloudflare + HAProxy + Apache)

Continue Reading

Docker : จัดการโปรเจคทั้งระบบด้วย Docker Compose – Part 3 (Database)

สวัสดีครับ หายไปหลายวันกลับมาเขียนต่อได้สักที บทความนี้เป็นบทความต่อเนื่องนะครับ ใครที่หลงเข้ามายังไม่ได้อ่าน 1, 2 แนะนำให้อ่านทั้งหมดก่อนครับ

Database

ในบรรดาระบบที่ผมได้กล่าวไป ผมยกให้เจ้านี่แหละเป็นตัวป่วนที่สุด สมัยที่ยังไม่ได้ใช้ docker การ ship project ไปทั้ง db เป็นเรื่องที่ชวนปวดหัวมากๆเรื่องนึงเลยทีเดียว ยิ่งถ้าในทีมมีการเปลี่ยนโครงสร้าง db ขึ้นมานะ…

Continue Reading

Docker : จัดการโปรเจคทั้งระบบด้วย Docker Compose – Part 2 (Structure)

สวัสดีครับ บทความนี้เป็นบทที่ 2 ต่อเนื่องจาก จัดการโปรเจคทั้งระบบด้วย Docker Compose – Part 1 ดังนั้นเพื่อความไม่งงถึงที่มาที่ไปแนะนำให้อ่าน Part 1 ก่อนนะครับ

โครงสร้างของโปรเจค

หัวข้อนี้ผมจะพาดูว่าข้อมูลไฟล์ภายใน Repo ที่ผมให้ Clone เพื่อทดสอบในบทที่แล้วว่าประกอบด้วยอะไรบ้าง จะได้ง่ายต่อการเข้าใจที่มาของคำสั่งต่างๆใน docker-compose.yml ซึ่งเป็นหัวใจในการทำงานของระบบครับ

Continue Reading

Docker : จัดการโปรเจคทั้งระบบด้วย Docker Compose – Part 1 (Overview)

สวัสดีครับ บทความนี้ผมตั้งใจทำมากๆ เพราะผมมองว่า Docker Compose คือหัวใจสำคัญของ Docker ในการจัดการโปรเจคทั้งระบบ ไม่ว่าจะเป็นด้าน Infrastructure Network Service Database และอีกมากมาย เรียกได้ว่าเป็น Infrastructure as Code (IaC) ได้เลย บทความนี้จะใช้ความรู้เกี่ยวกับ Docker จากทุก Blog ที่ผมเคยเขียน ซึ่งใครที่อ่าน+ทำตามบทความนี้จนจบและเข้าใจ ผมเชื่อว่าคุณจะได้ความรู้พื้นฐานที่สามารถนำไปต่อยอดได้อีกไกลแน่นอนครับ

Continue Reading

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

Continue Reading

Docker : รู้จักและใช้งาน Dockerfile

สวัสดีครับ หลังจากได้เห็นภาพรวมการใช้งาน Docker ไปบ้างเล็กน้อยจากบทความก่อนๆ วันนี้ผมจะลงรายละเอียดเรื่องที่มาที่ไปของ Docker image และการสร้าง Docker image ของเราเองด้วย Dockerfile ครับ สำหรับท่านที่ยังไม่เคยเล่น Docker จริงๆจังๆ ก่อนเข้าเนื้อหาบทความหลักผมอยากย้ำตรงนี้ให้ทราบก่อนนิดนึงครับว่า ความสามารถของ Docker นั้นเจ๋งและทรงพลังมาก บทความนี้เป็นแค่ติ่งเล็กๆของพื้นฐานเองครับ ที่ต้องบอกไว้ก่อนเพราะกลัวจะเบื่อและคิดว่า Docker ไม่มีอะไรน่าสนใจไปซะก่อน ยังไงรอติดตามบทความผมไปเรื่อยๆผมจะพารู้ไปทีละขั้นๆนะครับ

Continue Reading