We are not waiting for future, We create the future

Tags


9 เหตุผลที่เลือกใช้ Gitlab เป็น Git repository

25th January 2019

ก็เป็นเวลา 1 ปีนิดๆ มาแล้วที่พวกเรา Twin Synergy ได้ย้ายงานของเราทั้งหมดจาก Bitbucket มา Gitlab ซึ่งในตอนนั้นผมต้องการสิ่งที่มันจะสามารถทำ CI/CD ได้ และสามารถทำพวก Scrum board จัดการ Project ต่างๆ ได้ด้วย

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

เป็น Private repo บน Cloud

Gitlab นั้นมีสอง 2 แบบให้เลือกในการทำ Git repository คือใช้งานบน Cloud หรือจะติดตั้งที่เครื่อง Server เอง แต่ที่ผมเลือกใช้งานผ่าน Cloud นั้นเพราะผมไม่อยากมายุ่งยากเรื่องดูแล Server

มีสองแบบให้เลือก

สามารถทำ CI/CD ได้เลย

เมื่อเราเริ่มใช้งานก็สามารถเขียน CI/CD ได้เลยใน Project

ระบบ pipeline

ซึ่งเราสามารถเขียน Pipeline ของแต่ละ Repo ในรูปแบบ .yml นั้นหมายความว่าสามารถที่จะเก็บ code นี้ไว้ใน git ได้เลย เดียววิธีการใช้งานผมจะเขียนบทความเพิ่มเติมให้อ่านกัน ใครใจร้อนก็ไปลุยใช้งานได้เลย https://docs.gitlab.com/ee/ci/yaml/README.html

Private docker registry ให้ใช้ต่อโปรเจ็ด

สำหรับใครที่ทำ Docker สามารถทำ Docker image แล้วฝากไว้ที่นี่ได้เลย สะดวกสุดๆ

Private snippet ให้ใช้ต่อโปรเจ็ด

ใครต้องการเก็บ code หรือค่าการใช้งานต่างๆ สามารถสร้างเป็นแบบ private เก็บไว้ โดยแยกเป็นแต่ละโปรเจ็คได้ ซึ่งเราสามารถโหลดไฟล์ที่สร้างไว้นำไปใช้อื่นได้ด้วย

ระบบ Wiki ให้ใช้ต่อโปรเจ็ค

แน่นอนว่านอกจากการเขียนโค็ดแล้ว งานเอกสารก็สำคัญเช่นกัน เราสามารถเขียน wiki โดยแยกแต่ละโปรเจ็คได้ เพื่อเก็บข้อมูลวิธีการต่างๆ ไว้ได้

Secrets management

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

เก็บค่า sshkey ไว้ใช้ตอน deploy ผ่าน pipeline

โดยมันสามารถใช้งานร่วมกับ Piepline ได้ด้วย เช่น ตอนจะ Deploy ไปเซิฟเวอร์นั้นเราก็ให้มันเก็บ sshkey ไว้ แล้วเขียน pipeline ให้มันมาเรียกใช้ เป็นต้น

รองรับ Issue board

Issue board ก็เปรียบเทียบได้กับ Kanban board หรือ Scrum board โดยเราสามารถสร้าง issue แล้ว tracking เป็น branch ต่างๆ ได้เลยทำให้เราบริหารจัดการโปรเจ็คได้ง่ายขึ้น

มีระบบ Milestones

Milestones นั้นก็คือระบบที่สามารถทำเป็น Agile sprints ซึ่งก็คือการแบ่งกลุ่ม Issue ได้ว่า Issue ไหนทำวันไหนถึงวันไหน เราสามารถดูภาพรวมได้เลยว่าโปรเจ็คนี้จะจบภายในวันไหน

Milestones

เริ่มต้นใช้งาน ฟรี!!!

Features ที่ผมกล่าวมาข้างต้นทั้งหมดคือ ฟรี!!! แค่นี้ผมก็ว่าเพียงพอแล้วสำหรับทีมพัฒนาโปรแกรมจำนวน 1-10 คน ซึ่งผมพึ่งจะยอมเสียเงินให้เมื่อกันยายนปี 2018 เองนะ เพราะต้องการใช้ Feature บ้างอย่างเพิ่ม โดยค่าเสียหายคือ 4$ ต่อผู้ใช้งานต่อเดือน แม่งถูกและคุ้มมากกกกกกกกก

ไปดูเพิ่มเอาเอง https://about.gitlab.com/pricing/

เหมือนขายของปะ? แค่อยากแนะนำว่าเครื่องมือดีๆ ให้ใช้เองนะ.... :)

A single application For the entire DevOps lifecycle.
- gitlab.com

IT manager & DevOps @Twin Synergy Co.,Ltd

View Comments