Microservices คืออะไร

Microservices คือ สถาปัตยกรรมซอฟต์แวร์แบบหนึ่งที่ถูกออกแบบโดยการ นำ service ต่างๆ แยกออกมาเป็น service ของตัวเองเพื่อให้ service นั้นทำงานอย่างใดอย่างหนึ่งไปเลย และยังเป็นอิสระ สามารถมีฐานข้อมูลเป็นของตัวเอง ถ้าต้องการข้อมูลจาก service อื่น ก็สามารถเรียกใช้ผ่าน API ได้ มันคงจะดีเลยหละ การที่ทีมหลายๆทีม สามารถทำงานได้โดยไม่ต้องรอกัน จากคำกล่าวข้างต้น ก็เริ่มสงสัยแล้วสิ ว่ามันเป็นยังไง เรามาดูรูปต่อไปกันดีกว่า โดย James Lewis และ Martin Fowler ให้คำจำกัดความของ Microservices ว่า เป็นรูปแบบการพัฒนา Application โดยการแบ่ง service ออกเป็นชิ้นเล็กๆ service สามารถทำงานจนจบกระบวนการได้ด้วยตนเอง แต่ละ service ไม่จำเป็นที่จะต้องเขียนด้วยภาษาโปรแกรมแบบเดียวกัน สามารถแยกใช้วิธีการเก็บข้อมูลที่แตกต่างกันได้ สมมุติว่า เราพัฒนาระบบ E-Wallet ก็จะสามารถ แยก ฟังชั่น ต่างๆ ออกเป็นระบบเล็กๆ ดังนี้ […]

nich

10 September 2019

RESTful API คืออะไร

เคยได้ยินกันไหม เดี๋ยวก็ REST API เดี๋ยวก็ RESTful API วันนี้เราจะมาดูกันว่าทั้งสองมันคืออะไร Rest (Representational state transfer) – เป็นรูปแบบสถาปัตยกรรมซอฟต์แวร์(architecture) ที่ใช้ประโยชน์จากเทคโนโลยี Web Protocol เพื่อใช้ในการสร้าง Web Service ซึ่งเจ้าตัว Rest ถูกพัฒนาโดย Roy Fielding Ph.d ตั้งแต่ปี ค.ศ.2000 Architectural properties ข้อกำหนดของ REST architectural style ทั้ง 7 ประกอบไปด้วย Performance: ประสิทธิภาพในการโต้ตอบ Scalability: มีความสามารถในการปรับขยายได้ทำให้สามารถรองรับส่วนประกอบจำนวนมาก Simplicity: ความเรียบง่ายของอินเตอร์เฟซที่เหมือนกัน Modifiability: ความสามารถในการปรับเปลี่ยนส่วนประกอบเพื่อตอบสนองความต้องการที่เปลี่ยนแปลง (แม้ในขณะที่แอปพลิเคชันทำงานอยู่) Visibility: การมองเห็นการสื่อสารระหว่าง Component ผ่าน Service agents Portability: ง่ายต่อการโยกย้ายในส่วนของ Program […]

nich

10 September 2019

HTTP vs. HTTPS

http vs. https เอ๊ะ มันคืออะไร บางเว็บไซต์ก็มี บางเว็บไซต์ก็ไม่มี แต่ถึงจะยังไงก็ยังเข้าเว็บไซต์ได้อยู่ ไม่ต้องสนใจก็ได้มั้ง จากคำกล่าวข้างต้นนี่ เรามาทำความรู้จักกับ http และ https กัน HTTP (Hypertext Transport Protocol) – เป็นโปรโตคอลสำหรับสื่อสารจะใช้เมื่อเรียกโปรแกรมบนเบราว์เซอร์อย่าง Chrome, Firefox, Internet Explorer เพื่อเรียกดูข้อมูลหรือเว็บนั้นๆ เบราว์เซอร์จะใช้ HTTP เป็นตัวเรียกให้เซิร์ฟเวอร์ส่งข้อมูลมาให้เพื่อแสดงผลบนหน้าจอได้อย่างถูกต้อง โดยเป็นการส่งข้อมูลแบบ Clear text ไม่ได้ทำการเข้ารหัส ทำให้สามารถถูกดักจับและอ่านข้อมูลได้ง่าย HTTPS (Hypertext Transfer Protocol over Secure Socket Layer หรือ Http over SSL) – โปรโตรคอลที่สื่อสารด้วยการเข้ารหัสบนระบบ network โดยใช้กันแพร่หลายบน internet โดย HTTPS ประกอบไปด้วย HTTP […]

nich

10 September 2019

Visual Studio 2019

เมื่อวันที่ 2 เมษายนที่ผ่านมา Microsoft ได้ออก Visual Studio 2019 เราจะมาดูว่ามีฟีเจอร์อะไรเพิ่มมาใหม่บ้าง หน้าจอเริ่มต้นแบบใหม่ ใช้งานง่ายยิ่งขึ้น Pull Request ได้จาก Visual Studio โดยตรง LiveShare เขียนโค้ดพร้อมกันระหว่างเพื่อนร่วมงาน ปรับธีมใหม่ทั้งตัว ฟีเจอร์ค้นหาปรับปรุงใหม่ สามารถเปิดโซลูชัน โดยไม่ต้องโหลดโปรเจกต์ ช่วยให้เปิดโซลูชันขนาดใหญ่ๆ เร็วขึ้นมาก อัพเดตเวอร์ชันภาษาที่รองรับเป็นรุ่นล่าสุด ได้แก่ C# 8.0 Preview, F# 4.6 Preview   Cr. blognone 4Xtreme

nich

6 September 2019

Open Source

Open Source คือ โปรแกรมคอมพิวเตอร์ที่ผู้พัฒนาอนุญาต ให้นำไปใช้ได้ ไม่ว่าเราจะนำไปต่อยอดงานส่วนอื่นๆ พัฒนาโปรแกรมต่อ และแน่นอนว่าเมื่อพัฒนาแล้วก็ต้องเปิดเผยให้ผู้อื่นนำไปใช้ได้ และสามารถพัฒนาต่อได้เช่นกัน ทำไมถึงต้องใช้ด้วยหละ สำหรับ software บางตัว จะใช้ก็ต้องย่อมเสียค่าใช้จ่าย ซึ่งมีราคาค่อนข้างแพงอยู่แล้ว ถ้าเกิดเรานำมาใช้โดยไม่ได้ซื้อ แน่นอนว่าต้องละเมิดลิขสิทธิ์แน่ๆ ซึ่งแน่นอนว่ามันไม่คุ้ม การเลือกที่จะใช้ software นั้นมันก็ต้องดูอะไรหลายๆอย่าง มาเป็นองค์ประกอบ ถ้าธุรกิจขนาดเล็กมาก จะซื้อ software ราคาแพงมาใช้ ก็คงจะไม่คุ้มเสียซักเท่าไหร่ ถ้าจะให้พูดถึงคำว่า ลิขสิทธิ์ แน่นอนว่า ทุกคนย่อมที่จะหลีกเลี่ยงใช้ของที่มันมีลิขสิทธิ์อยู่แล้ว ถ้าเกิดยังดื้อดึงที่จะใช้อยู่ แน่นอนว่าผลเสียต่างๆ ก็จะตามมาอย่างคาดไม่ถึงเลยเชียว เช่น การฟ้องร้อง ซึ่งทำให้เกิดค่าเสียหายต่างๆนาๆ อีกทั้งยังผิดกฏหมายอีกด้วย ซึ่งก็ไม่พ้นพวกซอฟต์แวร์คอมพิวเตอร์ต่างๆ ซึ่งซอฟต์แวร์สำเร็จรูป บางอย่างก็มีค่าใช้จ่ายที่ค่อนข้างจะแพง และแน่นอนว่า ซอฟต์แวร์สำเร็จรูปบางตัวก็อาจจะละเมิดลิขสิทธิ์อยู่ แน่นอนว่าทางเลือกที่จะหลีกเลี่ยงปัญหาที่กล่าวมาข้างต้นนั้นมีแน่ ซึ่งนั่นก็คือ โอเพนซอร์ส นี่เอง The Open Source Initiative (OSI) ได้ให้คำจำกัดความของโอเพนซอร์สตามหลักเกณฑ์ ดังนี้ การเผยแพร่ซ้ำโดยเสรี […]

nich

6 September 2019

Software House คือ

Software House – บริษัทที่จัดทำ software เฉพาะด้าน เพื่อตอบสนองความต้องการเฉพาะด้านตามความต้องการองค์กร เพราะแต่ละองค์กรมีความต้องการทางด้าน software ที่แตกต่างกันไป และยังต้องการช่วยให้การทำงานในองค์กรนั้นมีความสะดวกสบายในการใช้งานมากยิ่งขึ้น โดยส่วนใหญ่แล้ว Software House จะพัฒนา software ตามผู้ว่าจ้างในระยะเวลาสั้นๆ ซึ่งก็ถือว่าเป็นข้อดี ของ บริษัท Software House เลยทีเดียว และแน่นอน บางบริษัทที่เป็น software house ก็เป็น Partner กับบริษัทใหญ่ๆ แน่นอนถ้าจะให้พูดถึงขนาดของ Software House ย่อมต้องเป็นขนาดเล็ก เพราะคำว่า House นั่นแปลว่าบ้านอยู่แล้ว ซึ่งก็คือ เป็นบริษัทขนาดเล็ก ที่ทำงาน Software เฉพาะด้าน มีความคล่องตัว สามารถตอบสนองความต้องการของลูกค้าได้รวดเร็ว ไม่ว่าจะเป็นการรับ Requirement การปรับปรุงแก้ไขงานตามความต้องการ และยังสามารถพูดคุยกับลูกค้าได้ตลอดเวลา ซึ่งทำให้เราได้ใกล้ชิดกับลูกค้ามากยิ่งขึ้น อีกทั้งยังมีทุน และค่าบริการที่น้อยกว่า บริษัทใหญ่ๆ ทางเรา 4Xtreme ก็เป็น […]

nich

6 September 2019

NGINX

NGINX – เป็นซอฟต์แวร์โอเพนซอร์สสำหรัะบเว็บเซิร์ฟเวอร์ที่สามารถใช้เป็นพร็อกซีแบบย้อนกลับ โหลดบาลานซ์ พร็อกซีอีเมล และแคช HTTP ซึ่งตัว NGINX เองนั้นมีประสิทธิภาพและความเสถียรสูงสุด NGINX เป็นเว็บเซิร์ฟเวอร์ที่มีความเร็วที่สุดและการบำรุงรักษาที่เลิศ ซึ่งเหมาะสำหรับงานเว็บไซต์จำนวนมาก เนื่องจากสามารถจัดการกับการเชื่อมต่อที่มีปริมาณมาก ข้อดีของ Nginx – รองรับมารตฐานในด้านความปลดภัย HTTP/2 – รับรองการทำงาน HTTP ได้ครบถ้วน – ไฟล์ที่เป็น static จะประมวลผลได้เร็วกว่า Apache – ทำงานแบบ Asynchronous โดยไม่มีการหยุดรออะไรทั้งนั้นแยกๆ กันไปทำงานทันที จึงใช้ทรัพยาน้อยกว่าทำงานได้เร็วกว่า รองรับจำนวนผู้ใช้งานได้มากกว่า Apache ข้อเสียของ Nginx   – การ config ที่ค่อนข้างจะยุ่งยากกว่า Apache เนื่องจากการออกแบบที่ค่อนข้างต้องการประสิทธิภาพที่สูงทำให้ต้องตัดการประมวลผลที่เป็นด้วยตัวเองออกไป แล้วไปให้โปรเซสอื่นหรือระบบอื่นจัดการประมวลผลแบบ Dynamic ให้แทนเช่น FastCGI, SCGI, uWSGI, memcache ทำให้ – การบำรุงรักษายากกว่า Apache เนื่องจาก Nginx ได้มีการออกแบบให้เป็นโมดูลเช่นกันแต่ไม่ได้ยืดหยุนมาก ถ้าจะต้องการเพิ่มหรือแก้ไขโมดูลต่างๆ จะไม่ค่อยสะดวก   – การเอาไปทำงานได้หลายแพลตฟอร์ม ยังพอร์ตไปไม่ครบนัก ติดตั้งไม่ง่ายนัก การทำงานร่วมกับองค์ประกอบอื่นยังต้องตั้งค่าอีกเยอะ ต่างกับ Apache ที่พอร์ตไปทุกที่ได้ง่ายกว่า 4Xtreme

nich

8 August 2019

OpenCV

OpenCV (Open Computer Vision) – Libraries สำหรับ Image Processing พัฒนาโดยบริษัท Intel เพื่อส่งเสริมกํารพัฒนําระบบ Image Processing โดยตัว OpenCV จะเน้นไปที่การแสดงผลคอมพิวเตอร์แบบเรียลไทม์ การใช้งาน OpenCV ก็จะมีอยู่หลายภาษาที่สามารถนำไปใช้ได้เช่น C++, Java, Python เป็นต้น OpenCV ยังเป็น Open Source สามารถใช้ข้ามแพลตฟอร์ม ยกตัวอย่างการนำ OpenCV มาใช้ประโยชน์ได้หลายอย่าง ระบบจดจำใบหน้า ระบบการจดจำท่าทาง ระบบตรวจจับวัตถุ การประมาณระยะในขณะเคลื่อนที่ อื่นๆ   สำหรับเอกสาร วิธีใช้โอเพ่นซีวี Cr. patanasongsivilai. 4Xtreme

nich

8 August 2019

Reset Password MariaDB For Ubuntu

วิธีรีเซ็ตรหัสผ่านสำหรับการเข้าฐานเข้ามูลของ MariaDB ที่ติดตั้งไว้ในเครื่องกรณีที่เราลืมรหัสผ่าน สามารถทำตามขั้นตอนได้เลย 1.หยุดการทำงานของ MariaDB และเข้าไปแก้โดยไม่ต้องใช้รหัสผ่าน $ sudo systemctl stop mariadb $ sudo mysqld_safe –skip-grant-tables & 2.เชื่อมต่อ MariaDB Server ด้วย root $ mysql -u root 3.ใช้คำสั่งต่อไปนี้ในการแก้ไขรหัสผ่าน set password for ‘jeff’@’localhost’ = PASSWORD(‘mypass’); flush privileges; exit *mypass คือรหัสผ่านใหม่ที่ต้องการจะใส่ 4.ทำการสตาร์ท mariaDB $ sudo systemctl start mariadb แค่นี้ก็ถือว่าเสร็จสิ้นเรียบร้อยแล้ว

nich

6 August 2019

MongoDB

MongoDB – เป็นฐานข้อมูล NoSQL แบบหนึ่ง ไม่มี relation เก็บข้อมูลในรูปแบบ JSON ซึ่งเรียกว่า Document โดยจะเก็บค่า key และ value และการเก็บข้อมูล document จะถูกเก็บไว้ใน Collection จะเปรียบเทียบง่ายๆก็คือ Document คือ Row ของ MySQL ส่วน Collection ก็คือ Table นั่นเอง ลักษณะการเก็บข้อมูลแบบ Document (คล้ายๆ Array หลายมิติ) รองรับการทำ Full Index ซึ่งสามารถทำให้หาข้อมูลได้เร็ว รองรับการขยายขนาด ทำระบบสำรองได้ง่าย แก้ไขข้อมูลได้เร็ว เขียนชุดการสั่งทำงานได้ เก็บข้อมูลแบบ GridFS เปรียบเทียบ MongoDB และ MySQL คร่าวๆ ดังนี้ MySQL MongoDB Table Collection […]

nich

12 July 2019
1 3 4 5 8