Posts

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

Image
          Kubenetes (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 อยู่แล้ว เราสามารถเปิด Kuber

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

Image
         เมื่อเราสนใจจะส่ง iOS / macOS app ให้ผู้ใช้งาน เราก็จะเริ่มสนใจเป็นสมาชิก Apple Developer Program ซึ่งพอหาข้อมูลก็จะพบว่ามีหลายรูปแบบ แต่แบบไหนล่ะที่เหมาะกับเราและลูกค้าของเรา ผมสรุปข้อแตกต่างแบบง่าย ๆ ประมาณนี้ครับ Free Dev Enterprise Run directly to device 5 devices 100 devices unlimited Build & distribute to App Store ● ● ● Build & distribute to own store ● ● ● Cost (per year) $0 $99 $299 https://developer.apple.com/support/compare-memberships/ ทำความเข้าใจ App Store ก่อน          การจะส่งแอปฯขึ้น App Store นั้น จะต้องผ่านการ review จากทาง Apple ก่อนทุกครั้ง ซึ่งเป็นการควบคุมมาตรฐานของแอปฯ บน App Store โดยปกติจะใช้เวลาประมาณ 1 วัน แต่ถ้าแอปฯ ของเรามีอะไรไม่ถูกต้องตาม  Review Guidelines  ก็จะต้องจัดการปัญหาและคุยกับทีมงาน ซึ่งก็จะใช้เวลามากขึ้น Store ของเราเอง          ด้วยขั้นตอนที่ยุ่งยากของการ Review ทำให้หลายคนสนใจ Enterprise Program แต่ก็อาจจะคาดหวังว่า จ่ายแพงกว่าต้องทำได้ครอบครุมแพคเกจที่ถูกกว่าสิ อันนี้ไม่ใช่ครับ เขาแยกกลุ่

การ Build Docker Image ขึ้นสู่ Registry - แนะนำ Docker Registry ฟรี

Image
         หลังจากที่เราเขียน Dockerfile กันเป็นแล้ว นั่นแปลว่าเราก็จะมี Image เป็นของตัวเองเรียบร้อยแล้ว และเพื่อให้สะดวกในอนาคต เราก็จะส่ง Image นี้ไปเก็บไว้ที่ registry กัน           Docker Registry  ก็คือที่เก็บ docker image ซึ่งทุกคนที่เคยใช้ docker ก็ต้องเคยดึง image จาก  Docker Hub กันอยู่แล้ว นอกจากเราจะสามารถสรรหา image และดึงลงมาใช้งานกันได้แล้ว เรายังสามารถส่ง image ของเราขึ้นไปที่ Docker Hub ได้ด้วยนะ มาเริ่มกันที่ เขียน Dockerfile กันก่อน ครั้งนี้เราสร้าง image ที่ run java application บน container กัน Dockerfile FROM openjdk:8-jdk-alpine ADD ./discovery-service-1.0-SNAPSHOT.jar /data/springboot-app.jar ENTRYPOINT ["java","-jar","/data/springboot-app.jar"] Step 1/3 : ตั้งต้น parent image ด้วย OpenJDK Step 2/3 : ก็อปไฟล์ *.jar จากเครื่อง host เข้าไปใน container Step 3/3 : run *.jar *.jar ไฟล์ที่ใช้เป็น spring boot application ซึ่งสามารถรันได้ทันที ซึ่งผมได้เตรียมไว้ให้แล้ว Download >>  discovery-service-1.0-SNAPSHOT.jar ล

[Go] Go Lang ฉบับมือใหม่หัดขับ

Image
Go  ถูกสร้างโดย Google เพื่อตอบโจทย์การเขียนโปรแกรมให้มีลักษณะดังนี้ Static typing and run-time efficiency (like C++) Readability and Usability (like Python or JavaScript) High-performance networking and multiprocessing ..... (wiki) .....          จะเห็นว่าไม่มีภาษาไหน สามารถตอบโจทย์นี้ได้ครบเลย Java ก็ performance ไม่ดี,  C ถึงแม้จะเร็วแต่ก็อ่านยากเกินไป หรือแม้แต่ภาษาใหม่ๆ ที่ลู่เข้าสู่ functional language ที่ว่าเข้าใจได้ง่าย แต่ Go ก็มองว่า OOP มันซับซ้อนและเงื่อนไขจุกจิกก็มีอยู่มาก          Cross compiling เป็นความสามารถนึงที่ Go มีเหนือภาษาอื่นๆ ซึ่ง Go สามารถ build executable binary สำหรับแต่ละ OS ได้เลย          Go มี concept ว่า ไฟล์ที่ได้มานั้นต้องสามารถเอาไปใช้งานเป็น Application ได้ทันที (ไม่ต้องการ core libraray เพิ่มเติม) ดังนั้นแล้ว ข้อเสียของ Go ก็คือ executable file จะมีขนาดใหญ่กว่าการ build จากภาษา C ที่คาดหวังว่า library พื้นฐานจะต้องมีอยู่แล้ว Gopher เข้าสู่การทดลอง การติดตั้ง ติดตั้ง Go ( Download ) *คนที่ไม่อยากติดตั้งบนเครื่องไปลองเขียน

ส่งข้อความอัตโนมัติด้วย LINE Notify เพิ่มความเท่ให้กับ CI/CD

Image
https://notify-bot.line.me/en/           LINE Notify เป็นบริการฟรีที่มีประโยชน์กับการทำงานเป็นทีม โดยเฉพาะอย่างยิ่ง เป็นการทำงานร่วมกับ tools ต่าง ๆ ซึ่งหน้าที่ของ LINE Notify ก็คือการ "ส่ง LINE" เพียงเท่านั้นจริง ๆ          เมื่อเราทำงานเสร็จสิ้น เราก็อยากจะบอกให้ทีมรับรู้ คนไทยส่วนมากก็ยังชอบใช้ LINE คุยกัน ซึ่งก็หนีไม่พ้น "LINE กลุ่ม" จุดนี้เองที่ LINE Notify จะมาช่วยให้เราสะดวกสะบายมากยิ่งขึ้น เพราะเราสามารถ integrate เข้ากับ tools ต่าง ๆ ได้เพื่อให้ข้อความถูกส่งเข้ากลุ่มโดยอัตโนมัติ มาลองกัน ! ตั้งค่าเริ่มต้น          1. เข้าสู่ระบบเพื่อเริ่มต้นการใช้งาน  https://notify-bot.line.me/my/          2. กด Generate token และเลือกกลุ่มเป้าหมาย          3. Copy token เก็บไว้ (ไม่สามารถเรียกดูภายหลังได้) ส่งข้อความ          เราสามารถส่งข้อความด้วยวิธีง่าย ๆ โดยการเรียก web service ที่ LINE เตรียมไว้ให้แล้ว วิธีที่ง่ายที่สุดคงหนีไม่พ้น cURL  ที่ติดมากับ terminal ของ Mac/Ubuntu หรือถ้า Windows ก็ใช้ Git Bash ก็ได้ curl -X POST -H 'Au

Docker ใช้งาน Dockerfile เพื่อสร้าง Docker Image ของเราเอง

Image
          Dockerfile คือการสร้าง Docker Image ในแบบของเราเอง หรือก็คือการ custom docker image นั่นแหละ ถึงแม้ว่าเราจะใช้ CLI เข้า container ได้เลย แต่จะดีกว่าไหมถ้าเราทำเป็น Docker Image ที่พร้อมใช้งาน ไม่ต้องมาคอยคิดว่าต้องลงอะไรบ้าง Custom Image ทำไม ?          การสร้าง container จำเป็นต้องใช้ parent image เสมอ ถึงแม้ว่า Docker Hub จะมีให้เราเลือกโหลดมากมาย แต่ตัวไหนล่ะที่ตรงใจเรา ตัวอย่าง Dockerfile          Dockerfile เป็นไฟล์ที่มี syntax เฉพาะ ของ Docker ลักษณะจะปะปนกับ shell script เพื่อเป็นชุดคำสั่งแรกเมื่อมีการสร้าง container นั่นเอง คำสั่งใกล้เคียง $ docker run -p 8080:8080 jenkins การใช้งาน Dockerfile          ขั้นตอนการสร้าง container จากเดิมที่เป็นแค่การดึง image มาใช้ คราวนี้เราจะสามารถเพิ่มเติมคำสั่งบางอย่างเข้าไป สิ่งที่ parent image เตรียมมาก็สามารถใช้ได้ และเพิ่มเติมสิ่งที่เราเพิ่มไปได้อีก มาลอง Custom Docker Image กัน FROM jenkins LABEL maintainer="LordGift" USER root RUN apt-get update && apt-get install -y android-sdk ENV

Docker กับการสร้าง environment แบบ All-in-One (Docker Compose)

Image
         Docker Compose เป็นสิ่งที่จะมายกเครื่อง Docker มากยิ่งขึ้น จากเดิม ( Docker คืออะไร ? ) เราได้ทดลองใช้ Docker ผ่าน CLI กันไป แต่การจะเอา container เดิมมาใช้ ก็จะมีความลำบากเล็กๆ และยิ่งถ้ามี container หลายตัวก็ยิ่งวุ่นวายไปใหญ่ assignment docker-compose.yml          ไฟล์นี้คือหัวใจสำคัญของ docker compose เราจะต้องเขียน config ต่างๆ เข้าไปในรูปแบบ YAML ซึ่งจริงๆมันก็คือการย้ายการเขียน CLI ทีละคำสั่ง ให้อยู่ในรูปแบบไฟล์ที่สามารถอ่านได้ง่ายขึ้น ลดการเขียนคำสั่งไปได้เยอะ (ลด หมายความว่าก็ยังต้องเขียนบ้างนะ sentiment_very_satisfied ) docker-compose.yml คำสั่ง Docker Compose สร้างและ start container ตามไฟล์ docker-compose.yml docker-compose up ดู container ที่เกี่ยวข้อง docker-compose ps Name Command State Ports --------------------------------------------------------------------- my-ci_jenkins_1 /bin/tini -- /usr/local/bi ... Exit 255 my-ci_sonarqube_1 ./bin/run.sh Exit 143        

Facebook Comment

Recent Posts

Popular

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

ความเร็วเน็ตที่แท้จริง Mbps MBps ???

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

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

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

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

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

[Java] Java Static Variable และ Static Method

[Android] Download Mode & Recovery Mode

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