Posts

Showing posts from 2021

Rabbit MQ เครื่องมือจัดการ Asynchronous อย่างเป็นระบบ

Image
         Synchronous / Asynchronous เข้ามามีบทบาทมากขึ้นเมื่อเรา implement Microservices เมื่อเรามี services เยอะขึ้น การคุยกันก็มีความซับซ้อนมากขึ้น ถ้าพูดในมุมของ client ก็คงต่างกันแค่ รอ และ ไม่รอ เท่านั้นเอง https://sookocheff.com/post/api/marrying-restful-http-with-asynchronous-design/          Messaging Queue (MQ) ก็เกิดมาเพื่อเป็นตัวกลางระหว่างผู้รับและผู้ส่ง และยังมี protocol เฉพาะอย่าง AMQP ที่กำหนดเป็นมาตรฐาน เพื่อการันตีข้อมูลว่าจะไม่หายระหว่างทางด้วย ซึ่งการใช้งานนั้นจำเป็นต้องอาศัยเครื่องมืออย่าง Message Broker เพื่อควบคุม queue อีกที Message Broker เป็น software ที่เราต้องติดตั้งบน server ไว้ด้วย เพื่อ tracking & monitoring รวมถึงมี console ให้สามารถทดสอบส่งข้อมูลเข้า queue โดยไม่ต้องเขียนโค้ดเอง ตัวอย่างเช่น Rabbit MQ, Apache Kafka และ อื่นๆ อีกมากมาย           Rabbit MQ เป็น Message Broker ที่ได้รับความนิยมอีกตัวหนึ่ง สามารถใช้งานได้ฟรี และมีความ lightweight กว่าเจ้าอื่น อีกทั้งยังมี web console ให้ผู้ดูแลเข้ามาใช้งานง่ายๆ ด้วย แนะตัวกันก่อน Producer / Publisher

วิธีการติดตั้ง PHP + Xdebug เพื่อให้สามารถ debug บน VSCode ได้

Image
         การเขียนโปรแกรมภาษา PHP นั้น developer จำเป็นจะต้องติดตั้ง PHP พร้อมกับ extension สำหรับ debug เอง เพื่อให้สามารถ debug โปรแกรมได้ ต่างจากภาษาอื่นๆ ที่มักจะ bundle มากับ IDE เลย แต่กับ PHP ถึงแม้จะเป็น IDE เจ้าใหญ่ ๆ ก็ยังไม่เห็นเจ้าไหน integrate มาให้พร้อมใช้เลย ติดตั้ง PHP install ผ่าน homebrew % brew install [email protected] กำหนด PHP Home % echo 'export PHP_HOME="/usr/local/opt/[email protected]/bin"' >> ~/.zshrc กำหนด PHP Home (สำหรับ macos Monterey ขึ้นไป ***) % echo 'export PHP_HOME="/opt/homebrew/Cellar/[email protected]/7.4.27/bin"' >> ~/.zshr set PATH ให้รู้จัก php  % echo 'export PATH="$PHP_HOME:$PATH"' >> ~/.zshrc % source ~/.zshrc ติดตั้ง Xdebug   install xdebug ด้วย pecl % pecl install xdebug ซึ่งคำสั่งด้านบนจะลง xdebug และ config กับ php ของเราให้เลย แต่เราจะแก้ไขมันนิดหน่อยที่ไฟล์ php.ini % nano /usr/local/etc/php/7.4/php.ini สำหรับ macos Monterey ขึ้นไป *** % nano /opt/homebrew/etc/p

Cast คืออะไร ใช้ดูหนังบนทีวียังไง

Image
         การมาของ Disney+ ทำให้หลายคนสงสัยว่าทีวีที่มีอยู่ สามารถดูได้หรือไม่ ? "Cast" ก็กลายเป็นเทคโนโลยีที่ถูกกลับมาพูดถึงอีกครั้ง เพราะเป็นทางเลือกที่ทำให้ดูบนทีวีได้โดยประหยัดเงินมากที่สุด เพราะปัจจุบันหลายบ้านก็มีอุปกรณ์ที่รองรับอยู่แล้ว           Google Cast เป็นเทคโนโลยีจาก Google เพื่อแชร์ภาพและเสียงแบบไร้สาย เพื่อมอบประสบการณ์ smart tv โดยที่ไม่ต้องซื้อ tv รุ่นแพงๆ ก็ได้ การใช้งาน  ต้องมีอุปกรณ์ที่รองรับ Cast ก่อน เช่น Chromecast, Android Box หรือทีวีรุ่นใหม่ๆ ที่มักจะมี Chromecast built-in ติดมาในตัว ต้องเชื่อมต่อ wifi เดียวกัน ทั้งอุปกรณ์และ smartphone  มองหาสัญลักษณ์  cast  (ถ้าไม่ขึ้นแปลว่าไม่รองรับ หรือต่อ wifi คนละวงกัน) กดสัญลักษณ์  cast  ดูบนจอได้เลย https://www.google.com/chromecast/built-in/ ข้อดี ระหว่างดูไม่จำเป็นต้องเปิดมือถือไว้ รองรับหลายแอปฯ เช่น Youtube, Netflix, Facebook (vdo), Spotify, Disney+ หรือแม้กระทั่ง vdo player บน web หลาย ๆ ค่าย ตรวจสอบแอปฯ มือถือที่รองรับ   setup เพียงครั้งเดียว เพื่อนมาบ้านแค่ต่อ wifi บ้านเราก็ cast ได้แล้ว ( แย่งกันเปิด

CI/CD คืออะไร จะเอามาใช้กับงาน Developer ได้อย่างไร ?

Image
         CI/CD เป็นลำดับขั้นตอนที่ Developer ต้องทำเป็นประจำอยู่แล้ว แต่จะมีการออกแบบให้ใช้งานได้ง่ายขึ้น เป็นขั้นเป็นตอนมากขึ้น รวมถึงอาจให้ทำงานโดยอัตโนมัติ โดยอาศัย "ผู้ช่วย" ซึ่งส่วนใหญ่จะเป็นลักษณะ Pipeline-as-a-Code ตามสไตล์ยุคของ DevOps พูดถึง CI/CD กันก่อน CI = Continuous Integration เป็นขั้นตอนที่มักจะอยู่ใน phase Dev จะทำค่อนข้างถี่ เพื่อให้เห็น progress report ต่าง ๆ เช่น Unit Test, Coverage, UI Test รวมถึงการเก็บ version ต่าง ๆ ไว้อาจเป็นลักษณะ nightly build, weekly build ก็ได้ CD = Continuous Delivery เป็นขั้นตอนที่พร้อมให้ Tester ทดสอบระดับนึง ก็จะมีการส่ง version ที่เก็บไว้ไป deliver บน environment ใช้งาน เช่น  SIT, UAT หรือ PROD * SIT = System Integrate Test, UAT = User Acceptance Test, PROD = Production Pipeline           จริง ๆ แล้ว pipeline ก็คือขั้นตอนที่ developer ทำอยู่เสมอนั่นแหละ เมื่อเราจะทำเป็น CI/CD เราก็จะต้องออกแบบว่าจะทำอะไรบ้าง (Design Pipeline) โดยต้องค

รู้จักกับ Kubernetes (K8s) เครื่องมือที่ DevOps พลาดไม่ได้

Image
          Kubernetes (K8s) เป็นเครื่องมือที่จะมาช่วยให้การมองโลกของ infrastructure เปลี่ยนไป จริง ๆ บางคนมองว่า Kubenetes เป็นการต่อยอดจาก Docker ต้องเป็น Docker ก่อนถึงจะเข้าใจ Kubenetes ได้ สำหรับคำตอบของคำถามนี้คงจะตอบได้ทั้ง ใช่ และ ไม่ใช่ ครับ           หากใครคุ้นเคยกับการมีแผนก Infrastructure (Operation) เตรียมของเตรียม Tools ให้ เช่น การติดตั้ง application server, การตั้งค่า load balance, การเปิด-ปิด port หรืออื่น ๆ สิ่งเหล่านี้จะมีการขยับเข้ามาใกล้ฝั่ง Developer มากขึ้น เพื่อใช้งานในลักษณะ Infrastructure-as-a-Code (IaaS) ซึ่งเป็นการรวมกันของฝั่ง Developer และ Operation หรือที่เรียกกันว่า ​DevOps นั่นเอง          Virtualization คงจะเป็นคำที่เหมาะสมสำหรับโครงสร้างแบบนี้ ซึ่งเราไม่ได้รู้จักกับมันเป็นครั้งแรก ไม่ว่าจะ Cloud ที่สามารถสร้างเลือกสร้างเครื่องเสมือน หรือ Docker ที่เป็น containerize platform อย่างชัดเจน ก็ล้วนแต่ไม่ใช่ physical hardware ทั้งสิ้น มาลองใช้งานกันเลยดีกว่า 1. ติดตั้ง Kubenetes          สำหรับการทดสอบ ถ้าเราติดตั้ง Docker Desktop อยู่แล้ว เราสามารถเปิด Kube

Facebook Comment

Recent Posts

Popular post of 7 days

Portal คืออะไรกันนะ???

วิธีการสมัคร Apple Developer Program และ Enterprise Program ฉบับลงมือเอง

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ

Popular

[Java] Java 8 DateTime ใหม่ ไฉไลกว่าเดิม

Portal คืออะไรกันนะ???

มาตรฐานการตั้งชื่อตัวแปร (Naming Convention)

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

เรื่องของ ++i กับ i++

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ

[Java] Java Static Variable และ Static Method

Push Notification คืออะไร มีวิธีทำอย่างไร (No Code)

พิมพ์ซองจากรายชื่อ excel ด้วยวิธี Mail Merge

[Android] เปิดเครื่องไม่ได้ โลโก้ค้าง (Boot Loop)