12factor Archive

บันทึกการนำแนวคิด 12-factors มาใช้ในการพัฒนาระบบงานด้วยภาษา Go

แนว 12-factors app นั้นเป็นแนวคิดที่สร้างมาผู้สร้างระบบ Herokuโดยถูกหยิบมาพูด หรือ ใช้งานมากขึ้นในยุคของ Cloud Native Appประกอบไปด้วย 12 ข้อ และดูเหมือนว่าจะมีคนคิดเพิ่มมาอีก 3 เป็น 15 ข้อผมเคยเขียน blog อธิบายไว้เมื่อนานมาแล้วมาครั้งนี้มีคำถามจากการแบ่งปันเรื่อง Docker + Go + Microservicesว่ามีตัวอย่างหรือไม่ จึงทำการสร้างตัวอย่างพร้อมอธิบายสั้น ๆ ไว้ให้เพื่อช่วยให้เข้าใจมากยิ่งขึ้นมาเริ่มกันเลย

Read More…

[Golang] สรุปการใช้งาน environment variable

สำหรับการจัดการพวกค่า configuration ต่าง ๆ ของระบบงาน จาก 12-factor นั้นแนะนำให้จัดการผ่าน environment variable เพื่อแยกระหว่าง code และ configuration ต่าง ๆ ออกจากกันในแต่ละ environment และช่วยลดปัญหาเรื่อง security อีกด้วย

Read More…

[Part 3] ภาคจบสำหรับการพัฒนาระบบตามแนวคิด 12 Factor

มาทำความรู้จักกับ 4 ข้อสุดท้ายสำหรับ The Twelve-Factor App โดยในส่วนนี้จะเป็นส่วนของผู้ดูแลระบบ ประกอบไปด้วย Disposability Dev/prod parity Logs Admin processes มาดูในรายละเอียดกัน

Read More…

[Part 2] มาต่ออีก 4 ข้อ สำหรับการพัฒนาระบบตามแนวคิด 12 Factor

หลังจากที่ลองพัฒนาระบบด้วยภาษา Python ตามแนวคิด The Twelve Factor App มาแล้ว 4 ข้อคือ Codebases Dependencies Configs Backing services ซึ่งยังเหลืออีก 8 ข้อ ดังนั้นมาต่อกันให้จบ โดยทั้ง 8 ข้อนี้จะเข้ากันมาก ๆ กับโลกของ Containerization ในตัวอย่างจะเน้นไปที่ Docker เป็นหลัก มี Kubernetes มาผสมบ้างเล็กน้อย ปล. เขียนไปเขียนมาทำไมมันยาว ดังนั้นเพิ่มแค่ 4 ข้อเป็น 8 ก็แล้วกัน ที่เหลืออีก 4 ข้อ เอาไว้อีก blog มาเริ่มกันเลย ข้อที่ 5 Build, release, run Strictly separate build and run stages [&hellip

Read More…

[Part 1] ว่าง ๆ มาลองพัฒนาระบบด้วยภาษา Python ตามแนวคิด 12 Factor กัน

ช่วงหลังมีการพูดถึง The Twelve -Factor App กันเยอะ แต่ไม่ค่อยบอกหรือแสดงให้ดูว่ามันทำอย่างไรบ้าง ? ดังนั้นเราลองมาพัฒนาระบบงานแบบง่าย ๆ ตามแนวคิดนี้กันดู (ตามความเข้าใจที่มีนะ ผิดถูกก็ตามข้างล่างนี้) มาเริ่มกันดีกว่า ปล. ยิ่งรู้ว่าผิดเร็ว ก็จะทำถูกได้ไว

Read More…

ว่าด้วยเรื่อง Twelve Factor App กับการพัฒนาระบบงาน

สิ่งที่นักพัฒนาน่าจะต้องรู้สำหรับการพัฒนาระบบงานในปัจจุบัน นั่นก็คือ The Twelve Factor App ซึ่งเป็นคำแนะนำสำหรับการพัฒนาระบบที่ดี โดยเฉพาะ Cloud Native App มีเป้าหมายเพื่อ Portability ระหว่าง environment ต่าง ๆ Scale ได้ง่ายทั้งขยายและลด ลดค่าใช้จ่ายและเวลาด้วยการทำงานแบบอัตโนมัติ Continuous Deployment สามารถนำมาปรับใช้กับระบบอื่น ๆ ได้ ดังนั้นมาดูกันดีกว่า ว่ามีอะไรบ้าง

Read More…

ว่าด้วยเรื่อง ลืม Configuration ของระบบงาน

นักพัฒนาน่าจะคุ้นเคยกับการจัดการเรื่องของ configuration ค่าต่าง ๆ ในระบบเป็นอย่างดี ยกตัวอย่างเช่น ข้อมูลสำหรับ database ข้อมูลสำหรับ URL ของ service ต่าง ๆ username และ password บ่อยครั้งมักจะทำการ hardcode เอาไว้ใน source code !!

Read More…