ก้าวแรกสู่ Microservice (มั้ง) กับ Nginx reserve proxy แบบง่ายๆ

ช่วงนี้ Microservice มาแรงเหลือเกิน ที่ไหนๆก็บอกว่าตัวเองใช้ Microservice เลยสงสัยขึ้นมาว่าไอเจ้า Microservice มันคืออะไรนะ ทำอะไรนะ อ่านไปเรื่อยๆไปสะดุดอยู่ที่ Nginx เอ๊ะ!! ไอนี่ชื่อมันคุ้นๆ เลยลองเล่นซะหน่อย!!(บ่าแล้วใจ๋)

ทำความรู้จักกับเจ้า Nginx กันก่อน เท่าที่เราเข้าใจเจ้า Nginx เป็น Web server สามารถทำอะไรได้หลายอย่าง เช่น reverse proxy,load balancer,etc.. ข้อดีข้อเสียส่วนตัวเรายังไม่ค่อยเห็นภาพมากนัก(ยังไม่เคยใช้นี่หว่า!!) บทความนี้เราขอ focus ที่ตัว reserve proxy นะ เริ่มกันเลย

โจทย์

  1. create api 2 ชุด(ภาษาอะไรก็ได้นะ บทความนี้เราใช้ Go )
  2. นำ api ไปไว้ใน docker
  3. setup Nginx สำหรับ reverse proxy กับ api ทั้ง 2 ชุด
ประมาณนี้

1.create api

หลังจากนั้นลอง build แล้วทดสอบ

ดูดีเลย

2.นำ api ไปไว้ใน docker สร้าง Dockerfile

เรียบร้อยดีแล้วก็ทำการ build docker image

อ๊ะๆ!! อย่าลืม build api ตาม OS ด้วยนะ

GOOS=linux GOARCH=amd64 go build -o <file output name> -v main.go

แล้วทำไมหล่ะ คำตอบก็คือ…… exec file ตอนที่ build เพื่อทดสอบในข้างต้น มันจะ build ตาม OS ของเครื่องนั้น ประมาณว่า ถ้า build ด้วย windows จะไม่สามารถ run บน OS อื่นที่ไม่ใช่ windows ได้ ถ้าไม่เห็นภาพลองทำดูครับ ดังนั้น OS บน Docker เป็น linux ดังนั้นเราต้อง build .exec file ให้เป็น OS นั้นๆด้วยนะ

หลังจากได้ docker image มาแล้ว มาทดสอบกัน

ดูดีแฮะ ทำแบบนี้อีกรอบสำหรับ api ตัวที่ 2

3. setup Nginx สำหรับ reverse proxy ลง Nginx เลยจ้า หลังจากนั้น สร้าง serv.conf ไว้ประมาณนี้นะ

มาทดสอบกันสักนิด

ดูดีต่อเนื่อง

A: หึ่มมมม!!!เสร็จแล้วหรอ
B: ครับ
A: ทำไมง่ายจัง
B: ลองทำดูครับ
A: ไม่เห็นเกี่ยวกับ Microservice ตรงไหนเลย
B: เอ่อออ….

ก็ประมาณนี้ครับ

ยากไหม?? ความคิดเรานะ ต้องบอกก่อนว่า ที่เราลองทำเป็นแค่เรื่อง พื้นฐาน หรือที่ภาษาอังกฤษเค้าเรียกว่า Basic!! โบ๊ะ!! บ๊ะ!! โบ๊ะ!! บ๊ะ!! :) สำหรับมือใหม่อย่างตัวเราเองถือว่า ไม่ยากไม่ง่าย ใช้เวลาพอสมควร … ส่วนเจ้า ​Nginx ยังมีเรื่องหลายเรื่องให้เรียนรู้ หวังว่าพอเป็นไอเดียนะฮะได้บ้างนะครับ