การเริ่มต้น deploy PHP app บน Heroku นั้น จำเป็นต้องมีสิ่งเหล่านี้ก่อนนะครับ

  • PHP app ที่ใช้ Composer สำหรับการจัดการ Dependency
  • ต้องติดตั้ง PHP ก่อน
  • ต้องติดตั้ง Composer ก่อน
  • ต้องมี Heroku account
  • ต้องมี Heroku Toolbelt

การติดตั้ง PHP ให้เข้าไปดาวน์โหลด ที่นี่ ครับ โดยหากใช้งานบน Windows ให้เลือกดาวน์โหลดเวอร์ชันสำหรับ Windows ด้วยนะครับ

ไฟล์ที่ดาวน์โหลดมาจะเป็นไฟล์ zip นะครับ ให้เราแตกไฟล์ zip ดังกล่าวไปไว้ที่ใดก็ได้ครับ


Continue reading

บทความที่แล้วเราได้รู้จักและติดตั้ง Jenkinsกันไปแล้ว ส่วนบทความนี้ผมขอพูดถึงการเชื่อมจาก My repository มายัง Jenkins ก็แล้วกัน โดยมา repository ที่ว่ามันจาก 3 ที่คือ

  • Local repository
  • Gitlab repository
  • Github repository

ทั้งหมดนี้ใช้ Source Code Management (SCM) ตัวเดียวคือ git เมื่อ Jenkins จะ code ทำการ build ตาม job ที่เขียนไว้ใน Jenkins คุณยังสามารถสั่งให้มันอะไรได้ต่อได้อีกมากมาย ยกตัวอย่างเช่น ต้องการ push ใช้ git server แล้วให้ Jenkins ทำการสั่ง test ( เช่น mvn test ) ทุกๆ ครั้งของการ push หรืออาจจะมองไปไกลกว่านั้นคือ เมื่อ test pass แล้ว ให้ทำการไป deploy ลงบน UAT ได้เลยเป็นต้น


Continue reading

ถ้าคุณเป็นแฟนพันธ์แท้หรือติดตาม thaiopensource.org อยู่เป็นประจำ ก็จะเห็นบทความหนึ่งได้พูดถึงเรื่องของ Gitlab CI ไปแล้ว แต่สำหรับคนที่เริ่มนำ Agile เข้ามาอยู่ในชีวิต และอยากที่จะมี build tools เจ๋งๆ และมี plugin ให้เลือกเล่นได้เยอะๆ ก็ต้อง Jenkins เลยซึ่งก็เป็นอีกทางเลือกหนึ่งที่ได้รับความนิยมมากๆ เช่นกัน

Jenkins ก็คือ open source continuous integration tools เขียนโดย java และยัง support พวก source code management อย่าง git subversion cvs อีกด้วย ซึ่งถ้าพูดไปแล้วก็เป็น tools ที่สะดวกเอามากๆ เมื่อคุณ push code ผ่านทาง git (ถ้าคุณทำให้ git hook ไปยัง Jenkins server) ตัว Jenkins ก็จะทำการ build ให้คุณด้วยอัตโนมัติตามที่คุณเขียน job เอาไว้ใน Jenkins

เรามาเริ่มติดตั้ง Jenkins กันเลยดีกว่า ในที่ผมจะทำการติดตั้งมันลงบน CentOS 6.5

เริ่มจากติดตั้ง Java 6 กันก่อน เนื่องจาก Jenkins นั้นถูกเขียนโดย java

# yum install java

หรือจะ

# yum install java-1.6.0-openjdk


Continue reading

IP address เป็นส่วนสำคัญที่อาจจะเรียกได้ว่าเป็นสิ่งที่สำคัญที่สุดส่วนหนึ่งในระบบเครือข่ายปัจจุบัน เพราะทุกครั้งที่เครื่องเราอยากที่จะคุยกับเครื่องคอมพิวเตอร์เครื่องอื่น เราจำเป็นจะต้องใช้ IP Address ในการคุยแทบทุกครั้ง ถ้าเปรียบเทียบกับชีวิตจริง ก็คงเป็นบ้านเลขที่ของเรา ส่วนระบบเครือข่ายเป็นเหมือนบุรุษไปรษณีย์

เข้าเรื่องกันเลยดีกว่าครับ ระบบเครือข่ายเล็กๆ ที่ผมทำการสร้างขึ้นนี้จะประกอบไปด้วย

  • Router : ในส่วนนี้ขาที่ต่อกับ pfSense ผมจะกำหนดเป็น 192.168.169.x/24 ครับ แต่เครื่องของท่านผู้อ่านก็ไม่จำเป็นจะต้องได้ IP ตามผมนะ มันขึ้นอยู่กับการตั้งค่าบน Router
  • Firewall : จะเป็นพระเอกของงานนี้เลยก็ว่าได้ นั่นก็คือตัว pfSense นั่นเอง และจำทำหน้าที่เป็น Gateway ของเครื่องคอมพิวเตอร์เราด้วย
  • Switch : ผมใช้เป็น Switch L2 ธรรมดา หรืออาจจะใช้เป็น HUB ก็ไม่ผิดกติกา ผมจะใช้ IP วง 192.168.27.x/24


Continue reading

เริ่มด้วยการติดตั้ง Docker ผ่าน curl กันก่อน
ติดตั้ง curl ด้วยคำสั่ง

sudo apt-get install curl

ติดตั้ง Docker ด้วยคำสั่ง

curl -sSL https://get.docker.com/ubuntu/ | sudo sh

ติดตั้ง Local Registry ด้วยคำสั่ง

sudo docker run --name local_registry -p 5000:5000 registry

อนุญาตให้มีการใช้งาน Local Registry ด้วยคำสั่ง

echo 'DOCKER_OPTS="--insecure-registry 172.17.42.1:5000"' | sudo tee -a /etc/default/docker


Continue reading

CoreOS เป็นระบบปฏิบัติการที่ได้รวมความสามารถของการใช้งาน Docker ไว้ในตัวเพื่อการใช้งาน Docker ให้มีประสิทธิภาพได้อย่างเต็มที่เรียกได้ว่าเป็น OS ที่เกิดมาเพื่อ Docker เลยก็ว่าได้ข้อมูลเพิ่มเติมของ CoreOS สามารถอ่านได้ที่ https://coreos.com
ดาวน์โหลด CoreOS ได้ที่ https://coreos.com เลือกดาวน์โหลดไฟล์ที่ต้องแต่ใน How-To ครั้งนี้จะเลือก Vagrant เนื่องจากจะทดลองเล่นบน VirtualBox

จากนั้นกดลิงค์เพื่อทำการดาวน์โหลด Vagrant ตามระบบปฏิบัติการที่ใช้งาน


Continue reading

เนื่องจากมีคนชวนเล่น CircleCI เมื่อต้นเดือนที่ผ่านมา เพิ่งจะได้มาลองเล่นพบว่า CircleCI ทำอะไรได้หลายอย่างมากกว่า เครื่องมือ CI/CD เดิมๆ ที่มีอยู่ วิธีการใช้งานก็ง่ายมากๆ เพียงแค่เชื่อม repository ของโครงการของคุณที่ต้องการใช้คู่กับ CircleCI จากนั้นก็เขียน config ในรูปแบบไฟล์ yaml สั่ง push code ใหม่เข้า repository เท่านี้ก็เรียบร้อยแล้ว CircleCI จะทำหน้าที่ของมันโดยอัตโนมัติ CircleCI รองรับการทำ CI/CD ได้หลายภาษา เช่น Ruby/Rails, Python, Node.js, PHP, Java, Haskell นอกจากนี้ยังรองรับ Mobile Platform อย่าง Android, iOS และรองรับการทำงานกับ Docker Container ด้วย

อันดับแรก สมัครสมาชิก CircleCI กันก่อนที่ https://circleci.com


Continue reading

pfSense เป็นโปรเจ็คที่พัฒนาโดย Chris Buechler และ Scott Ullrich ถูกพัฒนาขึ้นจาก Linux สายพันธ์ FreeBSD เมื่อปี 2004 จุดประสงค์เพื่อใช้งานเป็นไฟร์วอล์ และเราเตอร์ และต้องสามารถจัดการตัวอุปกรณ์ ได้ผ่านหน้า Browser (IE, Firefox, Chrome ฯลฯ) ได้ และด้วยเนื่องจากตัว pfSense ถูกพัฒนามาจาก Linux ทำให้เราสามารถใช้มันได้ฟรี แบบไม่ต้องกลัวเรื่อง License อีกต่อไป

ถ้าหากเราต้องการที่จะหาไฟร์วอล์ตัวนึง ที่สามารถใช้งานได้ค่อนข้างที่เกือบจะเทียบเท่าตัวที่เป็นแบบ Next Generation Firewall แบบ Enterprise ที่ใช้กันตามบริษัทต่างๆ (ตอนนี้ตามตลาดไฟร์วอลระดับสูง ก็จะเป็นพวก Paloato, Checkpoint, Cisco, Juniper, Fortinet เป็นต้น) ผมแนะนำตัว pfSense เลยครับ เพราะแค่เรามีตัวเครื่องคอมพิวเตอร์ และ OS ของ pfSense แค่นี้เราก็สามารถมีไฟร์วอล ใช้ในองค์กร หรือแม้กระทั่งในบ้านเราได้อย่างไม่ยากเย็นเลย ซึ่งในเดือนธันวาคม ปี 2013 มียอดการติดตั้งตัว pfSense ถึง 200,000 เครื่อง ทั่วโลก

Feature เด่น ของ pfSense

  • เป็น Stateful Firewall
  • ควบคุมการผ่านเข้าออกของทราฟฟิกด้วย source และ destination IP address, Protocol, Port
  • จำกัด Connection ต่อ 1 Rule ได้
  • มีระบบ OS/Networking fingerprinting ควบคุมการเข้าใช้งานระบบด้วย OS ตัวอย่างเช่น เราจะจำกัดเพียงแค่ ระบบปฏิบัติการ Windows เท่านั้นให้เข้าถึงเครือข่ายภายใน ส่วน Linux ให้ Block ได้
  • สามารถ Log Traffic บนแต่ละ rule ได้ เพื่อใช้ในการเก็บ Log ตาม พรบ. คอมพิวเตอร์
  • สามารถทำ Policy Routing ได้
  • ใช้ Aliases ในการจัดกลุ่ม Port, IP Address, Network ทำให้ง่ายต่อการจัดการกับ rule ของไฟร์วอล์
  • เลือกเป็นโหมด Transparent ได้ (โหมดนี้จะไม่ต้องไปแก้ไขระบบเดิมเลย เพียงแค่นำไปวางขวาง)
  • การทำ NAT (1:1, Outbound NAT, NAT Reflection)
  • รองรับการทำ HA (High Availability)
  • Multi WAN ใช้หลายๆขา internet ในการออกเข้าสู่ภายนอกได้
  • Server Loadbalancing
  • รองรับการทำ VPN (IPsec, OpenVPN, PPTP)
  • สนับสนุนการทำ Report และ Monitoring, Dynamic DNS, DHCP Server และ PPPoE Server


Continue reading

OpenNMS จัดเป็นระบบ Network Management ระดับองค์กรตัวแรกๆ ที่อยู่ในรูปแบบของ Opensource เป็นระบบที่มีความสามารถหลายอย่างและมีประสิทธิภาพ โดยการติดตั้งและการตั้งค่าต่างๆนั้นสามารถทำได้ไม่ยาก
การตรวจสอบสถานะเครือข่าย (monitoring) โดยรวมจะมีการแสดงผลของสถานะของสิ่งที่ต้องการตรวจสอบ ซึ่งอาจจะเป็น network device เช่น router หรือ switch หรือบาง interface ที่สำคัญของอุปกรณ์เหล่านี้ นอกจากนี้ยังเป็นการตรวจสอบสถานะของ host เช่น web/mail/database/ftp servers หรืออาจจะเป็นการ monitor service ที่ run อยู่บนเครื่องต่างๆ โดยการแสดงสถานะจะบ่งบอกว่าสิ่งนั้นๆยังมีการทำงานอยู่หรือไม่ เช่น Up/Down แต่ถ้ามีเหตุการณ์ที่ไม่ปกติจะมีการแสดงถึงดีกรีของความผิดปกติ เช่น Warning หรือ Critical เป็นต้น พร้อมทั้งรายละเอียดของความผิดปกติตามที่ระบบตรวจเจอ นอกจากนี้จะมีองค์ประกอบที่สำคัญอีกส่วนหนึ่ง คือการแจ้งเตือน (alerting) หรือ ระบบที่คอยส่ง notification ไปยังผู้ที่ทำหน้าที่ดูแลอุปกรณ์หรือ service นั้นๆ
Continue reading

Knife มีส่วนเสริมในการจัดการ virtual machine บน Microsoft Azure ด้วยคือ knife-azure สามารถจัดการ life cycle ของ virtual machine ได้ สั่ง knife bootstap เพื่อลงทะเบียนกับ Chef Server ได้เลย มาลองใช้งานกัน

ติดตั้ง Knife Azure โดยใช้ ChefDK

chef gem install knife-azure

ดาวน์โหลด subscription file เพื่อใช้งานร่วมกับ knife azure plugin จากนั้นแก้ไข knife.rb เพิ่ม config เข้าไปดังนี้


Continue reading