Category: Application

  • เจาะลึกเบื้องหลัง Canva! ใช้เทคโนโลยีอะไรบ้าง? ถึงได้ขึ้นแท่นเป็นแพลตฟอร์มยอดนิยม

    เจาะลึกเบื้องหลัง Canva! ใช้เทคโนโลยีอะไรบ้าง? ถึงได้ขึ้นแท่นเป็นแพลตฟอร์มยอดนิยม

    Canva คืออะไร?

    โปรแกรม “Canva – แคนวา” เป็นแพลตฟอร์มที่ใช้ในการออกแบบงานต่างๆ ซึ่งมีให้เลือกหลากหลายรูปแบบ ไม่ว่าจะเป็น Presentation, Resume, Report, Poster, Banner, แผ่นพับ, การ์ด, และนามบัตร เป็นต้น รวมถึงภาพเคลื่อนไหวสำหรับนำไปลงในสื่อ Social Media ต่างๆ ตามความต้องการของผู้ใช้งาน ซึ่งสามารถใช้งานผ่านทางเว็บไซต์หรือแอปพลิเคชันได้ในหลากหลายอุปกรณ์ รวมถึงยังสามารถเชิญบุคคลอื่นให้เข้ามาทำงานร่วมกันในเวลาเดียวกันได้อีกด้วย

    จุดเริ่มต้นของแคนวามาจากความคิดของ Melanie Perkins ในวัย 19 ปี ณ เมืองซิดนีย์ ประเทศออสเตรเลีย ซึ่งเธอทำงานพิเศษ สอนใช้โปรแกรมออกแบบกราฟิก และเห็นว่านักเรียนของเธอส่วนมาก มักประสบปัญหาการใช้โปรแกรมที่ค่อนข้างมีความซับซ้อน เธอจึงมีความคิดที่อยากจะสร้างแพลตฟอร์มที่ช่วยให้การออกแบบกราฟิกเป็นเรื่องง่ายสำหรับทุกคน 

    Melanie จึงได้ชักชวน Cliff Obrecht แฟนหนุ่ม และ Cameron Adams อดีตวิศวกรของ Google มาร่วมกันก่อตั้งแคนวาขึ้นในปี 2012 โดยได้เปิดตัวในฐานะเครื่องมือออนไลน์สำหรับการสร้างและแบ่งปันกราฟิก ซึ่งได้รับการตอบรับอย่างดี โดยมีผู้ใช้งานมากกว่า 600,000 รายภายในปีนั้น หลังจากนั้นแคนวาได้มีการพัฒนาและเพิ่มคุณสมบัติใหม่ๆ รวมถึงขยายฟีเจอร์ต่างๆ ในการออกแบบอย่างต่อเนื่องมาจนถึงปัจจุบัน จนกลายมาเป็นแพลตฟอร์มในการออกแบบที่ได้รับความนิยมสูงสุด และมีผู้ใช้งานหลายล้านคนทั่วโลก 


    4 ฟังก์ชันหลักของ Canva

    • Template : ตัวอย่างผลงานที่สร้างมาเพื่อให้ผู้ใช้สร้างงานออกแบบต่างๆ ได้ง่ายขึ้น โดยสามารถปรับแต่งจาก Template ได้ตามความต้องการ ไม่ว่าจะเป็น Presentation, Resume, Report และอื่นๆ อีกมากมาย โดยมี Template ให้เลือกมากกว่า 60,000 ชิ้น ซึ่งผู้ใช้งานสามารถ Customize งานออกแบบจาก Template ของตนเองได้ทุกส่วน เช่น การปรับขนาด, การปรับเปลี่ยนสี, ฟอนต์ หรือนำ Template หลายๆ แบบมารวมกัน เพื่อสร้าง Template ใหม่ที่ไม่ซ้ำใคร 
    • Photo Tool : เครื่องมือที่ใช้ในการจัดการรูปภาพ ทั้งการเพิ่มรูปภาพจากเครื่องคอมพิวเตอร์หรือมือถือของผู้ใช้งาน การค้นหารูปภาพฟรี รวมถึงการปรับแต่งรูปภาพให้สวยงาม ทั้งการปรับแสง ตัดรูปภาพ หรือใส่แอนิเมชั่น เป็นต้น
    • Text Tool : เครื่องมือในการปรับแต่งและจัดรูปแบบของข้อความ ไม่ว่าจะเป็นการเลือกฟอนต์, การปรับขนาด, การจัดวาง และการเพิ่มเอฟเฟ็กต์หรือสีต่างๆ ซึ่งสามารถเคลื่อนย้ายและตกแต่งข้อความให้เหมาะกับชิ้นงานได้
    • Teams : แคนวาสามารถสร้างทีมในการออกแบบชิ้นงานร่วมกันได้แบบ Real Time ที่ผู้ใช้งานต่างสามารถแสดงความคิดเห็น, แท็กสมาชิกในทีม, แก้ไขงาน และให้คำแนะนำได้ทันที

    Canva ใช้เทคโนโลยีอะไรบ้าง?

    ด้วยความสามารถที่มากมายและฟีเจอร์ที่โดดเด่นของแคนวาแน่นอนว่าต้องมีการนำเทคโนโลยีที่ทันสมัยเข้ามาช่วยขับเคลื่อนแพลตฟอร์มให้สามารถทำงานได้อย่างมีประสิทธิภาพ และมีการใช้งานที่ตอบโจทย์ในการออกแบบผลงาน มาดูกันว่าภายในแคนวามีการใช้เทคโนโลยีอะไรบ้าง ถึงได้กลายมาเป็นแพลตฟอร์มที่ได้รับความนิยมอย่างมากในปัจจุบัน

    • Cloud Computing : แคนวามีการใช้ระบบ Cloud Computing เป็นเทคโนโลยีหลักที่สำคัญ ที่ใช้ในแทบทุกส่วน ไม่ว่าจะเป็นการพัฒนาฟีเจอร์ต่างๆ อย่าง AI , การจัดเก็บข้อมูลและการสำรองข้อมูล และการประมวลผลข้อมูลของผู้ใช้ เป็นต้น นอกจากนี้แคนวายังใช้ขีดความสามารถของระบบ Cloud ในการปรับขนาดและจัดการทรัพยากรตามความต้องการใช้งานในแต่ละช่วงเวลา ที่อาจมีความต้องการใช้งานที่แตกต่างกัน ซึ่งทำให้ผู้ใช้สามารถเข้าถึงแคนวาและทำงานได้โดยไม่มีปัญหาเรื่องความล่าช้า และระบบ Cloud ยังช่วยให้ผู้ใช้ทำงานร่วมกันได้แบบ Real Time อีกด้วย
    • Web Technologies : แคนวามีการใช้เทคโนโลยีเว็บไซต์เชิงสากลอย่าง HTML, CSS, และ JavaScript ในการพัฒนา Interface และฟีเจอร์ต่าง ๆ ของแอปพลิเคชัน เพื่อให้ผู้ใช้สามารถเข้าถึงและใช้งานแคนวาได้อย่างสะดวกผ่านเว็บเบราว์เซอร์
    • Machine Learning : แคนวาได้พัฒนา Machine Learning เพื่อนำมาพัฒนาฟีเจอร์ในหลายๆ ส่วน ไม่ว่าจะเป็นระบบแนะนำ Template, การค้นหาข้อมูล, Natural Language หรือการปรับแต่งรูปภาพ เช่น Background Remover ที่เป็นฟีเจอร์ยอดนิยม ช่วยให้ผู้ใช้สามารถลบพื้นหลังรูปภาพได้อย่างชาญฉลาด ซึ่ง Machine Learning จะตรวจจับส่วนต่างๆ ในภาพ และลบพื้นหลังอัตโนมัติ หรือผู้ใช้สามารถเลือกวัตถุที่ต้องการให้คงอยู่ในภาพ และให้แคนวาตัดส่วนที่ไม่ต้องการออก อีกทั้งยังมีฟีเจอร์ Magic Drawing ที่ทำให้ผู้ใช้งานสามารถสร้างภาพที่มีสไตล์เดียวกับการวาดด้วยมือ โดยไม่จำเป็นต้องมีทักษะการวาดภาพที่ดีเยี่ยมมาก่อน ทำให้ผู้ใช้สามารถปรับแต่งรายละเอียด เพิ่มลายเส้น หรือเพิ่มสีสันได้อย่างสะดวกมากขึ้น
    • Data Analytics : ในการดำเนินการและพัฒนาแพลตฟอร์มแคนวาใช้เทคโนโลยีการวิเคราะห์ข้อมูลของผู้ใช้ ที่มีการติดตามพฤติกรรมและนำวิเคราะห์ เพื่อให้เข้าใจพฤติกรรมของผู้ใช้ เพื่อปรับปรุงและพัฒนาบริการให้มีประสิทธิภาพและตอบสนองต่อความต้องการของผู้ใช้อย่างต่อเนื่อง
    • 3rd Party API Integration : แคนวามีการพัฒนา API ที่เชื่อมต่อกับแอปพลิเคชันและบริการอื่นๆ ภายนอก ทำให้ผู้ใช้สามารถใช้งานแคนวาร่วมกับแอปพลิเคชันอื่นๆ ได้โดยตรงและสะดวกมากยิ่งขึ้น เช่น Dropbox ที่เป็นแพลตฟอร์มเก็บข้อมูลยอดนิยม ซึ่งแคนวามีการเชื่อมต่อโดยตรง เพื่อให้ผู้ใช้สามารถนำเข้ารูปภาพและไฟล์จาก Dropbox เพื่อนำมาใช้ในการออกแบบผลงานได้สะดวกมากยิ่งขึ้น

    ระบบ “Cloud” เทคโนโลยีที่มีบทบาทสำคัญสำหรับ Canva!

    ในการทำงานของแพลตฟอร์มแคนวาที่ส่วนใหญ่มีการใช้ระบบ Cloud Computing ในการทำงานแทบทุกฟีเจอร์และมีบทบาทในกระบวนการทำงานของแพลตฟอร์ม ตั้งแต่การเริ่มออกแบบ การบันทึกงาน ไปจนถึงการแชร์ไฟล์งาน ซึ่งมีการใช้ระบบ Cloud แทบทั้งสิ้น ทำให้การทำงานของผู้ใช้สะดวกและมีประสิทธิภาพมากขึ้น โดยฟังก์ชันหลักของแคนวาที่มีการใช้งานระบบ Cloud มีดังนี้

    1. AI       

    เนื่องจากการทำงานของ AI จะต้องมีการพึ่งพาระบบ Cloud เพื่อการพัฒนา AI ให้มีประสิทธิภาพ โดยล่าสุดในปี 2024 แคนวาได้เปิดตัว Assistant ที่ขับเคลื่อนด้วยระบบ AI ซึ่งเป็นฟีเจอร์การใช้งานที่สามารถเรียนรู้เนื้อหาของชิ้นงาน และสามารถสร้าง จัดเรียง ตัดต่อ สรุป เขียนเนื้อหา หรือทำทุกอย่างแทนผู้ใช้ได้อย่างง่ายดาย เช่น

    – Magic Write : เป็นฟังก์ชันที่ AI จะสร้างสรรค์เนื้อหาตามคำสั่งที่เราต้องการ เพียงป้อนคำหรือคีย์เวิร์ดเพื่ออธิบายความต้องการ จากนั้น AI จะวิเคราะห์ ประมวลผล และสร้างเนื้อหาออกมาตามคำสั่งอย่างรวดเร็ว โดยสามารถเลือกได้ว่าจะสร้างเนื้อหาประเภทไหน ไม่ว่าจะเป็น บทความ Blog แผนธุรกิจ โพสต์บน Social Media หรือแม้กระทั่งบทกลอน อีกทั้งยังเลือกระดับภาษาของเนื้อหางานได้อีกด้วย

    – Magic Edit : เป็นฟังก์ชันที่สามารถช่วยเปลี่ยนสิ่งของในรูปภาพให้เป็นสิ่งที่ต้องการ เพียงแค่เลือกรูปภาพและนำแปรงมาระบายวัตถุที่ไม่ต้องการ พร้อมทั้งกำหนดว่าต้องการให้ AI นำวัตถุอะไรมาใส่แทนส่วนที่ลบออกไป จากนั้น AI จะทำการประมวลผลและสร้างสรรค์ออกมาตามคำสั่งในเวลาเพียงไม่กี่นาที

    – Magic Presentation :  เป็นฟังก์ชันที่สามารถพิมพ์ไอเดีย หรือรูปแบบที่ต้องการทำ Presentation ด้วยคำสั้นๆ เพื่อให้ Magic Presentation ร่างรูปแบบที่ตรงกับคำสั่งที่ได้พิมพ์ลงไป หลังจากนั้นผู้ใช้สามารถแก้ไขหรือตกแต่ง Presentation ได้ตามความต้องการ เหมาะสำหรับผู้ใช้ที่ต้องการสร้างงานนำเสนอที่มีความสวยงามและเป็นมืออาชีพ ซึ่งเป็นการช่วยผู้ใช้ในการลดระยะเวลาในการทำ Presentation ที่ไม่ต้องใช้เวลาในการออกแบบด้วยตนเองอีกต่อไป

    – Translate Designs : สำหรับงานออกแบบที่มีหลากหลายภาษา สามารถคลิกเปลี่ยนภาษาในแคนวาได้ทันที ซึ่งมีให้เลือกมากกว่า 100 ภาษา โดยสามารถทำได้สูงสุด 20 หน้าต่อเดือน และสำหรับแคนวาแบบโปรสามารถแปลภาษาได้สูงสุด 500 หน้าต่อเดือน

    – AI Background Remover : เครื่องมือลบพื้นหลังอัตโนมัติ ที่สามารถใช้ได้กับภาพหลากหลายรูปแบบ ตั้งแต่คน สัตว์ ไปจนถึงวัตถุ และสำหรับแคนวาแบบโปรยังสามารถลบพื้นหลังในไฟล์ Video ได้อีกด้วย

    – AI Text to Image : เป็นฟังก์ชัน AI ที่ช่วยออกแบบและสร้างสรรค์รูปภาพตามคำสั่งที่ผู้ใช้งานสร้างเพียงป้อนคำสั่งลงไป ช่วยให้ผู้ใช้ไม่ต้องเสียเวลาไปนั่งค้นหาในอินเทอร์เน็ต รวมถึงยังสามารถปรับ Mood & Tone ของภาพและปรับขนาดได้ตามสัดส่วนที่ต้องการ ซึ่งตอบโจทย์ต่อผู้ใช้งานที่ต้องการสร้างผลงานศิลปะหรือกำลังค้นหารูปที่หาค่อนข้างยาก ตัวอย่างเช่น หากต้องการรูปภาพหมีแพนด้าขี่จักรยานผ่านเมืองที่มีพื้นหลังเบลอ ก็สามารถพิมพ์คำสั่งนี้ลงไป จากนั้น AI ก็จะทำการสร้างสรรค์รูปภาพตามคำสั่งนั้นออกมาให้เลือกมากมาย

    – Beat Sync : เป็นฟังก์ชันในการ Sync วิดีโอ เพื่อปรับภาพและเสียงให้ตรงกันโดยอัตโนมัติ หรือปรับแต่งช่วงที่เป็นไฮไลท์เพื่อดึงดูดผู้ชม โดยการอัปโหลดเพลงที่ต้องการใช้ จากนั้นระบบจะช่วยจัดแนวฟุตเทจให้เข้ากับจังหวะของซาวด์แทร็กอย่างสมบูรณ์ ทำให้ได้วีดิโอที่พร้อมใช้งานในเวลาเพียงแค่ไม่กี่นาที

    Beat Sync - Canva

    2. การจัดเก็บข้อมูล

    แพลตฟอร์มแคนวาได้ใช้ Cloud ในการจัดเก็บข้อมูล โดยมีลักษณะการใช้งานที่หลากหลาย เช่น การจัดเก็บฐานข้อมูลขนาดใหญ่ เก็บไฟล์ภาพ วิดีโอ และเอกสารต่างๆ รวมถึงการจัดเก็บข้อมูลการใช้งานของผู้ใช้ โดยมีการจัดการความปลอดภัย การสำรองข้อมูล และการควบคุมการเข้าถึง เพื่อให้ข้อมูลของผู้ใช้งานมีความปลอดภัย โดยการจัดเก็บข้อมูลการใช้งานเป็นการใช้ระบบ Cloud เพื่อเก็บข้อมูลแบบลำดับเวลา ซึ่งเป็นฐานข้อมูล NoSQL ที่มีความรวดเร็วและมีประสิทธิภาพ สำหรับการเก็บข้อมูลการใช้งานที่มีการเปลี่ยนแปลงบ่อยครั้ง

    นอกจากนี้แคนวายังมีพื้นที่จัดเก็บข้อมูลให้กับผู้ใช้ทุกราย เพื่อเก็บไฟล์ชิ้นงาน หรือไฟล์รูปภาพและไฟล์วิดีโอที่ถูกอัปโหลดขึ้นแคนวาเพื่อสร้างชิ้นงาน โดยมีการแบ่งขนาดจัดเก็บตามรูปแบบบัญชีผู้ใช้ทั้งหมด 3 รูปแบบ

    • บัญชีแบบฟรี สามารถอัปโหลดสื่อได้สูงสุด 5GB
    • ­บัญชีเพื่อการศึกษาและเพื่อองค์กรไม่แสวงหากำไร สามารถจัดเก็บสื่อได้สูงสุด 100GB
    • บัญชีแบบโปรและสำหรับทีม จะได้รับพื้นที่เก็บข้อมูล 1TB 

    3. การทำงานร่วมกัน

    แคนวา มีการใช้ระบบ Cloud เพื่อการทำงานร่วมกันในไฟล์เดียว โดยใช้ระบบเก็บข้อมูลแบบ File Storage ซึ่งจะช่วยให้ผู้ใช้สามารถแชร์และทำงานร่วมกันในไฟล์เดียวได้อย่างมีประสิทธิภาพ

    • การแชร์ลิงก์ : สามารถสร้างลิงก์ของชิ้นงาน และสามารถส่งต่อลิงก์ให้กับบุคคลอื่น เพื่อให้สามารถเข้าถึงและแก้ไขไฟล์ได้โดยไม่จำเป็นต้องเข้าสู่ระบบแคนวาหรือมีบัญชีแคนวา
    • การกำหนดสิทธิ์ในการแก้ไข : สามารถกำหนดสิทธิ์ในการแก้ไขไฟล์ให้กับผู้ใช้อื่นได้ ว่าจะให้บุคคลนั้นสามารถดูได้อย่างเดียว สามารถแสดงความคิดเห็น หรือสามารถแก้ไขงานได้
    • การเข้าถึงแบบ Real-time Collaboration : อีกหนึ่งฟีเจอร์หลักที่สำคัญของแคนวา ที่ใช้ระบบ Cloud เพื่อการทำงานในเวลาเดียวกัน โดยใช้โครงสร้างที่เรียกว่า Operational Transformation (OT) หรือ Transform วิธีการนี้ทำให้ผู้ใช้สามารถทำงานร่วมกันในไฟล์เดียวกันได้ทันที และเมื่อผู้ใช้ทำการเปลี่ยนแปลงข้อมูลในไฟล์ การดำเนินการจะถูกส่งผ่านไปยังเซิร์ฟเวอร์ของแคนวา ที่ถูกโฮสต์บน Cloud จากนั้นเซิร์ฟเวอร์จะแจ้งการเปลี่ยนแปลงไปยังผู้ใช้คนอื่นๆ ที่กำลังเข้าถึงไฟล์เดียวกัน ทำให้ผู้ใช้ทุกคนเห็นการเปลี่ยนแปลงที่เกิดขึ้นในเวลาเดียวกัน
    • การบันทึกอัตโนมัติ : แคนวามีการบันทึกการเปลี่ยนแปลงทั้งหมดของชิ้นงานอัตโนมัติ ซึ่งทำให้ผู้ใช้ไม่ต้องกังวลเกี่ยวกับการบันทึกไฟล์ โดยแคนวาจะทำการบันทึกไฟล์ลงในพื้นที่จัดเก็บข้อมูลบน Cloud อัตโนมัติ ซึ่งทำให้ผู้ใช้สามารถเข้าถึงชิ้นงานของตนเองได้ทุกที่ทุกเวลาในเวอร์ชันล่าสุด โดยไม่มีความเสี่ยงในการสูญหายของข้อมูล 

    4. การเข้าถึงบนเว็บไซต์

    แคนวายังคำนึงถึงความสะดวกในการใช้งานของผู้ใช้ โดยใช้ Cloud ในการเพิ่มประสิทธิภาพในการเข้าใช้งาน ทั้งในรูปแบบแอปพลิเคชันที่เข้าใช้งานได้อย่างสะดวกบน Smart Phone ทุกระบบปฏิบัติการ และยังให้ผู้ใช้งานสามารถเข้าถึงแพลตฟอร์มได้ผ่าน Web Browser บนเครื่องคอมพิวเตอร์ที่สามารถแก้ไขงานได้ทุกที่ทุกเวลา โดยไม่จำเป็นต้องดาวน์โหลดและติดตั้งแอปพลิเคชันบนอุปกรณ์ ทำให้สามารถทำงานร่วมกับทีม แก้ไขงาน หรือสร้างผลงานได้ทุกที่ทุกเวลา

    5. การ Save และการ Backup ข้อมูล

    แคนวา ใช้บริการ Cloud เพื่อการบันทึกและการสำรองข้อมูล (Backup) ของผู้ใช้ โดยมีการใช้งานแบบ Multi-Region Replication และ Data Encryption เพื่อความเป็นส่วนตัวและความปลอดภัยของข้อมูล ทำให้แคนวาสามารถบันทึกข้อมูลและสำรองข้อมูลของผู้ใช้โดยอัตโนมัติ นอกจากนี้ยังใช้การเข้ารหัสข้อมูล เพื่อป้องกันการเข้าถึงโดยบุคคลที่ไม่พึงประสงค์ ทำให้ข้อมูลที่บันทึกและสำรองใน Cloud มีความปลอดภัยในระดับสูง

    ด้วยคุณสมบัติเหล่านี้ การใช้ระบบ Cloud ทำให้แคนวาเป็นแพลตฟอร์มยอดนิยมที่มีฟีเจอร์การใช้งานที่หลากหลาย ตอบโจทย์ทั้งวัยเรียนและวัยทำงาน ทั้งในด้านการใช้งานที่มีความสะดวกและใช้งานง่ายได้ง่าย มีความปลอดภัย และช่วยจัดการการทำงานร่วมกับผู้อื่นให้มีประสิทธิภาพมากยิ่งขึ้น โดยไม่จำเป็นต้องส่งไฟล์ไปมาหรือใช้เครื่องมือในการสื่อสารเพิ่มเติม ซึ่งเป็นการผสมผสานนวัตกรรมและเทคโนโลยีที่ทันสมัยและตอบโจทย์การใช้งานของโลกที่เปลี่ยนแปลงไปอย่างรวดเร็วในปัจจุบันได้อย่างเต็มที่

    หากสนใจใช้บริการ Cloud เพื่อเพิ่มประสิทธิภาพให้กับระบบหรือแอปพลิเคชันของท่าน สามารถติดต่อขอทดสอบได้ที่  contact@ols.co.th  หรือสมัครใช้งาน Cloud ในรูปแบบ Self-Service ได้ที่ https://gate.openlandscape.cloud


    ข้อมูลอ้างอิง

    https://www.canva.dev/docs/apps/

    https://contentshifu.com/blog/

    https://startuptalky.com/melanie-perkins-success-story/

    https://mirrorthailand.com/movinon/thoughts/101446

    https://talkatalka.com/blog/

    https://www.tinybird.co/case-studies/

    เครดิตรูปภาพ

    https://www.canva.com

  • 5 โปรแกรม Text Editor ฟรี  ที่จะช่วยให้การเขียน Code เป็นเรื่องง่าย

    5 โปรแกรม Text Editor ฟรี  ที่จะช่วยให้การเขียน Code เป็นเรื่องง่าย

    5 โปรแกรม Text Editor ฟรี  ที่จะช่วยให้การเขียน Code เป็นเรื่องง่าย

    Text Editor หรือ IDE เรียกได้ว่าเป็นเครื่องมือที่ขาดไม่ได้เลยทีเดียวสำหรับนักพัฒนา ด้วยฟีเจอร์ช่วยวิเคราะห์โค้ดที่เขียนผิด, ตัวช่วยในการค้นหาข้อมูล หรือการอ้างอิงโค้ดพร้อมฟังก์ชั่นอื่น ๆ อีกมากมายที่จะช่วยให้การโค้ดเป็นเรื่องที่ง่ายขึ้น ทั้งยังรวดเร็ว แม่นยำ และมีประสิทธิภาพมากยิ่งขึ้น น่าสนใจกันใช่มั้ยคะ เพราะฉะนั้นวันนี้เราเลยอยากจะมาแนะนำ 5 โปรแกรม Text Editor ฟรี ที่จะช่วยให้การเขียน Code เป็นเรื่องง่ายมาฝากกันค่ะ ถ้าพร้อมแล้วลองไปดูกันเลย


    1.Visual Studio Code

    Text Editor

    ราคา : ฟรี

    ความเสถียร : สูง

    ความเร็ว : ปานกลาง

    UI/UX : ดี

    ความยืดหยุ่นในการปรับแต่ง : ปานกลาง

    จุดเด่น

    –       เหมาะกับโปรเจกต์ ขนาดใหญ่และซับซ้อน

    –       มีโหมด Live Share

    –       มี plugins เจ๋ง ๆ ที่พัฒนาโดย Microsoft

    –       มีฟีเจอร์ Built-in Git

    Link : https://code.visualstudio.com

    โปรแกรม Text Editor ยอดนิยมที่พัฒนาขึ้นจากโปรเจกต์ Open-source โดย Microsoft ที่หลาย ๆ คนอาจจะรู้จักกันดี Visual Studio Code นั้นนำเสนอฟีเจอร์หลัก ๆ อย่าง editing และ debugging tools รวมไปถึงฟีเจอร์ที่คุณสามารถเชื่อมต่อและทำงานร่วมกับเซอร์วิสอื่น ๆ ได้อย่างง่ายดาย

    Visual Studio Code ยังมีโหมด Live Share  ที่คุณสามารถเขียนโค้ดแบบเรียลไทม์ร่วมกับทีมของคุณได้ โดยที่คุณไม่ต้องตั้งค่าต่าง ๆ ให้วุ่นวาย พร้อมฟีเจอร์ Git Integration ที่ช่วยให้คุณทำงานได้รวดเร็วขึ้น มีฟีเจอร์ Intellisense และ syntax highlight ที่ช่วยเพิ่มความสะดวกต่อในการเขียนโปรแกรม รวมไปถึงฟีเจอร์น่าสนใจอีกมากมายให้ได้ใช้กัน เท่านั้นยังไม่พอ Visual Studio Code ยังมี plugins เจ๋ง ๆ ที่พัฒนาโดย Microsoft ให้ใช้อีกด้วยนะคะ


    2.Atom

    Text Editor

    ราคา : ฟรี

    ความเสถียร : ปานกลาง

    ความเร็ว : ปานกลาง

    UI/UX : ดี

    ความยืดหยุ่นในการปรับแต่ง : สูง

    จุดเด่น

    –       มีฟีเจอร์ Built-in Git และ GitHub

    –       ฟีเจอร์ Teletype สำหรับการโค้ดพร้อมกันได้หลายคนในเวลาเดียวกัน

    –       มีฟีเจอร์เสริมอย่าง Atom-IDE

    Link :https://atom.io

    อีกหนึ่งโปรเจกต์ open source ที่ถูกพัฒนาขึ้นโดย GitHub โดยฟีเจอร์หลัก ๆ ของ Atom ก็จะมีฟีเจอร์พื้นฐานอย่าง syntax highlight, ตัวช่วยเขียนโค้ด และ code folding ซึ่งจุดเด่นของ Atom  คือมีฟีเจอร์ Built-in Git และ GitHub ที่คุณสามารถดึง source code จาก Git และ GitHub ได้เลยโดยไม่ต้อง command line เอง

    อีกหนึ่งจุดเด่นคือฟีเจอร์ Teletype สำหรับการโค้ดพร้อมกันได้หลายคนในเวลาเดียวกัน นอกจากนี้ยังมีจากนี้ยังมีฟีเจอร์เสริมอย่าง Atom-IDE อีกหนึ่งแพ็กเกจเสริมของอะตอม ที่เป็นการร่วมมือกันระหว่าง GitHub กับ Facebook เพื่อให้อะตอมนั้นเป็นเครื่องมือในการพัฒนาซอฟต์แวร์อย่างเต็มรูปแบบ โดยในแพ็กเกจนั้นประกอบไปด้วย ตัวช่วยในการวิเคราะห์ข้อผิดพลาดและคำเตือนต่าง ๆ รวมถึงการวิเคราะห์โค้ดที่เขียนผิด, ตัวช่วยค้นหาข้อมูล การอ้างอิงทั้งหมดพร้อมฟังก์ชั่นอื่น ๆ อีกมากมาย ทั้งยังรองรับการใช้งานได้หลากหลายภาษามากยิ่งขึ้น


    3.Sublime Text 3

    Text Editor

    ราคา : มีทั้งแบบใช้ฟรี และเสียเงิน ($80)

    ความเสถียร : สูง

    ความเร็ว : สูง

    UI/UX : ปานกลาง

    ความยืดหยุ่นในการปรับแต่ง : สูง

    จุดเด่น

    –       ไม่หนักเครื่อง และรวดเร็ว

    –       มี plugin หลากหลายให้เลือก สามารถกำหนดและปรับแต่งรูปแบบได้ตามต้องการ

    Link : http://www.sublimetext.com/

    หากคุณกำลังมองหาโปรแกรม Text Editor โหลดเร็ว โหลดไว ชนิดที่ว่าพอเปิดปุ๊ปรอโหลดไฟล์แค่ไม่กี่วินาทีก็สามารถเข้าไปแก้ไขหรือเขียนโค้ดได้เลย Text Editor ตัวนี้เรียกได้ว่าตอบโจทย์ได้ดีเลยทีเดียวค่ะ เพราะ Sublime Text นั้นถูกออกแบบมาให้มีลักษณะไฟล์ที่เล็ก ทำให้โหลดไวไม่หนักเครื่อง รวมไปถึงมีความเสถียรในการใช้งาน และตอบสนองได้ไวไม่แพ้  Text Editor ตัวอื่น ๆ

    ฟีเจอร์เบสิกหลักของ Sublime Text ก็จะมี ตัวช่วยในการเติมคำ, syntax highlight และ code folding นอกจากนี้อีกหนึ่งฟีเจอร์เด่น ๆ ของ Sublime Text ที่มองข้ามไม่ได้เลยก็คือคุณสามารถติดตั้ง plugin เพิ่มเติมได้โดยมีให้คุณเลือกใช้งานได้หลากหลาย ทั้งยังสามารถกำหนดรูปแบบของหน้าจอแสดงผลและเครื่องมือต่าง ๆ ได้ตามต้องการไม่ว่าจะเป็น Theme,  Package Control, เครื่องมือต่าง ๆ ที่คุณสามารถตั้งค่าและจัดการได้เองอย่างง่ายได้ และไม่ซับซ้อนค่ะ


    4.Brackets

    Text Editor

    ราคา : ฟรี

    ความเสถียร : ปานกลาง

    ความเร็ว : ปานกลาง

    UI/UX : ดี

    ความยืดหยุ่นในการปรับแต่ง : ปานกลาง

    จุดเด่น

    –       ออกแบบมาเพื่อ web designer และ front-end developer

    –       มีเครื่องมือ และฟีเจอร์เฉพาะอื่น ๆ ที่มีประโยชน์สำหรับ web designer และ front-end developer

    –       มีฟีเจอร์ Live Preview เพื่อดู Preview บน Chrome ได้แบบเรียลไทม์

    –       รองรับได้ดีในส่วนของภาษา JavaScript, HTML, และ CSS

    Link : http://brackets.io/

    โปรเจกต์ open source ที่พัฒนาโดย Adobe ภายใต้ MIT license ที่ออกแบบมาเพื่อ web designer และ front-end developer โดยรองรับได้ดีในส่วนของภาษา JavaScript, HTML, และ CSS ซึ่งมีฟีเจอร์พื้นฐานหลัก ๆ อย่าง ตัวช่วยในการเติมคำ, syntax highlight และ การวิเคราะห์โค้ดที่เขียนผิด เป็นต้น

    จุดเด่นของ Brackets คือฟีเจอร์ Live Preview ที่คุณสามารถเปิดไฟล์เพื่อดู Preview บน Chrome ได้แบบเรียลไทม์ นอกจากนี้ยังมีเครื่องมือ และฟีเจอร์เฉพาะอื่น ๆ สำหรับ web designer และ front-end developerโดยเฉพาะอีกด้วย


    5.Vim

    Text Editor

    ราคา : ฟรี

    ความเสถียร : สูง

    ความเร็ว : สูง

    UI/UX : แย่

    ความยืดหยุ่นในการปรับแต่ง : สูง

    จุดเด่น

    –       สามารถปรับแต่งและขยายตัวได้มาก

    –       มี Plugin เยอะมาก ครอบคลุมทุกแบบ (หรืออาจจะมากกว่า) ที่ Visual Studio Code, Atom, Sublime มี

    –       มี shortcut เยอะแยะมากมายจนไม่ต้องใช้เมาส์

    –       ไม่ต้องโหลดเพราะมีติดมากับเครื่อง

    Link : https://www.vim.org/

            ถึงแม้รูปลักษณ์ของ Vim จะดูเก่าแต่ถึงยังนั้นก็ยังคงความเก๋าเอาไว้ได้เป็นอย่างดี เพราะมาพร้อมกับฟังก์ชันที่ครบเครื่อง สำหรับมือใหม่ในการเขียนโปรแกรม หรือคนที่ไม่เคยทำงานกับพวก Unix มาเลยจะไม่เข้าใจและต้องเรียนรู้สักหน่อย  เพราะมันคือ Editor แบบ Commend Line บน OS ตระกูล Unix ทั่งหลาย ที่แถมมากับเครื่อง ทำให้ไม่ต้องโหลดให้เสียเวลา แถมยังแทบไม่ต้องใช้เมาส์ เพราะมี shortcut มากมายทำให้คุณสามารถโค้ดคำสั่งต่าง ๆ ผ่านคีย์บอร์ดได้เลย แต่ด้วยความที่เราไม่ต้องใช้เมาส์คลิกไปคลิกมานี่แหละที่ทำให้คุณสามารถโค้ดได้อย่างรวดเร็วมากยิ่งขึ้น นอกจากนี้ยังมี Plugin ต่างๆแบบที่ Visual Studio Code, Atom, Sublime มี ไม่ว่าจะ autocomplete, syntax checking, git ต่างๆ จนใช้กันแทบไม่ไหวกันเลยทีเดียวค่ะ


    ที่มา:

    https://www.creativebloq.com/advice/best-code-editors

    https://designrevision.com/best-code-editor/#7-notepad++

  • Kubernetes คือ อะไร ? หนทางสู่การทำระบบให้แกร่งกว่าที่เคย !

    Kubernetes คือ อะไร ? หนทางสู่การทำระบบให้แกร่งกว่าที่เคย !

    Kubernetes คือ อะไร ? หนทางสู่การทำระบบให้แกร่งกว่าที่เคย !

    Kubernetes คือ อะไร ?

    “Kubernetes” หรือ “K8s” คือ “Container Orchestration” เป็น OpenSource จาก Google ที่จะมาช่วยในการจัดการคอนเทนเนอร์ (เช่น Docker, LXC)  ซึ่ง K8s ไม่ได้เป็นเทคโนโลยีเดียวที่ใช้ในการจัดการคอนเทนเนอร์ เพราะยังมี Docker Swarm ที่ใช้จัดการคอนเทนเนอร์ได้เช่นกัน ซึ่งหน้าที่หลัก ๆ คือ ช่วยให้เราสามารถติดตั้ง (Deployment) จัดสรรทรัพยากร หรือเพิ่มลดทรัพยากรแบบอัตโนมัติได้ (Managing & Scaling) นอกจากนั้นยังช่วยให้ Application ที่ทำงานอยู่บนคอนเทนเนอร์สามารถทำงานได้อย่างต่อเนื่อง ด้วยระบบที่พร้อมใช้งานตลอดเวลา (Auto Self-Healing) พูดง่าย ๆ คือ สามารถทำระบบที่ฆ่ายังไงก็ไม่ตายนั่นเอง ! (โกงกว่านี้มีอีกมั้ย?)

    ภาพประกอบ 1 Kubernetes คือ

    จากภาพข้างต้นจะเห็นว่า Kubenetes เป็นการต่อยอดหลังจากที่เราสร้าง Container ให้กับ App แล้ว โดยสามารถอ่านเพิ่มเติมเกี่ยวกับ Docker ได้ที่บทความเปลืองเวลาเป็นวัน ๆ ไปทำไม ? ในเมื่อใช้ Docker ช่วยได้ ! ซึ่งเมื่อมี Container แล้วสามารถ Manage ยังไงให้ได้ประสิทธิภาพสูงสุด จึงเป็นที่มาของการนำ Kubernetes เข้ามาเพื่อควบคุม Container ทั้งหมดอีกที ด้วยวิธีการง่าย ๆ คือ สร้าง Config สั่งไว้แผ่นหนึ่ง (เป็นไฟล์ .yaml) เขียนคำสั่งให้ทำตามที่ต้องการ แล้วปล่อยให้ระบบควบคุมให้เราเองได้เลย ดังนั้นจึง Centralized มากขึ้น ลดการทำงานที่ซับซ้อนได้ แถมยังเป็นไปแบบ Automatic อีกด้วย ส่วนมันออโต้ได้ขนาดไหน ? เลื่อนลงไปอ่านกันต่อได้เลย

    ภาพประกอบ 2 Kubernetes คือ ภาพรวมการทำงานของ Kubernetes

    ยากไป ? งั้นมาดูเคสตัวอย่างกันเลยดีกว่า

    เคสแรก หากต้องการเพิ่มเครื่อง ต่อให้เรามี Container แล้ว เรายังต้องเปิดทีละเครื่องใหม่ แล้วเอา Container ไปวางเพื่อ Run ใหม่อีกที หากมีสักสิบเครื่อง ร้อยเครื่องยังต้องทำวนไปทีละเครื่องจนครบจำนวน แต่ถ้าหากนำ Kubernetes มาใช้ จะสามารถกระจายงานให้เครื่องในระบบได้เองอัตโนมัติ เพียงแค่เราเขียนคำสั่งบอกให้ทำอะไรเพียงแค่นั้นเอง

    อีกสักเคส… คือ เราสามารถสั่งให้ Auto Scaling ได้ด้วย เช่น กำหนดไว้ว่าหาก CPU Usage เกิน 80% ให้ Auto Scale Up ขยายทรัพยากรให้ได้ทันที ดังนั้น Kubernetes ช่วยให้การจัดการของเราเป็นไปอย่าง Automatic มากขึ้น ช่วยประหยัดเวลาให้มีอิสระไปทำอย่างอื่นได้เพิ่มมากขึ้น


     The History Of Kubernetes

    ต้นกำเนิดของ K8s นั้นเกิดมาจาก Pain ที่บริษัท Google เจอมาตลอด ในการพยายามจะจัดการ Data Center ของตัวเองมานานกว่า 15 ปี (แต่ก็ยังไม่ยาวเท่าที่เรารอตอนจบโคนัน) เดิมเรียกระบบนี้ว่า “Borg” และจากความผิดพลาด ปัญหาต่าง ๆ ที่เคยเจอและแก้ไขมาตลอดระยะเวลายาวนาน ทุกอย่างกลายเป็น Lesson  Learned จนเกิดเป็น “Kubernetes” ขึ้นมา อีกทั้ง Google ไม่หยุดโชว์ความยิ่งใหญ่ด้วยการเปิดให้เป็น Opensource ที่ทุกคนสามารถนำไปใช้งานได้อีกด้วย


    จุดเด่นของ Kubernetes

    1. Container Clustering :  สามารถทำ Configuration  เพื่อสั่งระบบให้ทำงานตามที่ต้องการโดยอัตโนมัติ (เรียกได้อีกแบบว่าเป็นการกำหนด Desired State)
    2. Auto Scaling : รองรับการเพิ่มหรือลดทรัพยากรได้โดยอัตโนมัติตามความต้องการ
    3. Auto Self-healing : รองรับการทำงานแบบ HA เพื่อช่วยให้ระบบสามารถทำงานได้อย่างปกติ
    4. Auto Binpacking : จัดสรรทรัพยากรสำหรับคอนเทนเนอร์โดยอัตโนมัติ  
    5. Load Balancing : แบ่งการทำงานระหว่างคอนเทนนอร์ได้อย่างเหมาะสมและมีประสิทธิภาพสูงสุด
    6. Zero Downtime : รองรับการอัปเดตระบบแบบไม่มี Downtime
    7. Dashboard : มีแดชบอร์ดสำหรับควบคุมและบริหารจัดการทรัพยากร
    8. Community :  มีผู้ใช้งานจากทั่วโลกช่วยพัฒนาและอัปเดตฟีเจอร์ใหม่ ๆ อยู่ตลอดเวลา

     องค์ประกอบของ Kubernetes

    Cluster 

    ให้นึกภาพตามว่า K8s จะเข้ามาครอบมวลมหาประชา Server เอาไว้ ให้เสมือนว่ามันมีแค่ Server ใหญ่ ๆ เพียงเครื่องเดียว หากใช้ Cloud ต้องดูด้วยว่า Platform ของ Cloud นั้นรองรับไหม โดยหลักการ Cluster ของ K8s คือ สามารถจัดการให้เองว่าอะไรควร Run ไว้ที่ไหน โดย Node มีอยู่ 2 ประเภท คือ Master Node และ Worker Node ส่วนวิธีการทำงานร่วมกันของแต่ละส่วนนั้น จะขอกล่าวถึงในหัวข้อลำดับต่อไป

    ภากประกอบ 3 Kubernetes คือ
    What is Kubernetes to Datacenter
    (source : Mesosphere)
    ภากประกอบ 4 Kubernetes คือK8s Cluster Diagram
    (source : kubernetes.io)


    Deployment 

    k8s นั้นมีตัวละครหนึ่งที่เป็นพระเอกของเรื่องเลย คือ ตัว Kubernetes Deployment Controller ซึ่งคอยช่วยจัดการ Instance ต่าง ๆ ของแต่ละ Node ดังนั้นการนำ App ของเราไป Run ใน K8s จะต้องสร้างสิ่งที่เรียกว่า Deployment ก่อน เพื่อเป็นการกำหนด Configuration (การทำ Desired State เพื่อระบุว่าเวลาที่ทุกอย่างปกติดี ควรจะมีอะไร ทำงานยังไงบ้าง) โดยที่ K8s จะช่วยดูแลให้เป็นไปตาม Config ให้ตลอดเวลา หากเกิดความผิดพลาดสามารถ Auto Self-healing ตัวเองโดยอัตโนมัติ

    โดยการ Config ทำในไฟล์  .yaml


    Node and Pod

    “Container -> Pod  -> Worker Node -> Master Node ”

    Part l : Pod

    Pod เป็นหน่วยที่เล็กที่สุดของ K8s ซึ่งภายในแต่ละ Pod จะประกอบไปด้วย

    • Container หรือ อาจเป็นกลุ่มของ Container ก็ได้ ในบางกรณีที่ต้องการทำ Load-Balance ของข้อมูล
    • Resource ของ Container นั้น ๆ ยกตัวอย่างก็เช่น Storage, Network และ IP
    • Config ต่าง ๆ ของ Container แต่ละอัน Run ยังไง ให้คุยผ่าน Pod ตัวไหน เป็นต้น
    ภากประกอบ 5 Kubernetes คือ
    What object can be included in pod
    (source : kubernetes.io)

     Part ll : Worker Node or Minion

    Worker Node or Minion เป็นเหมือนสำนักงานย่อย โดยแต่ละ Node มี Process ชื่อ Kubelet ไว้สื่อสารกับ Master Node และมี Docker ในตัว เพื่อ Run Container และเนื่องจาก Pod จะ  Run อยู่บน Node เสมอ นั่นหมายความว่า ในแต่ละ Worker Node นั้นสามารถประกอบไปด้วย Pod หลาย ๆ ตัวได้

    ภากประกอบ 6 Kubernetes คือ
    Many pods can be included in the same worker node
    (source : kubernetes.io)

    Part lll : Master Node

    Master Node เป็นเหมือนศูนย์บัญชาการ คอยสั่งการ Node ลูกต่าง ๆ (Worker Node & Minion) ว่าต้องทำอะไรบ้าง ดังนั้นเวลาทำการแก้ไขหรือ Deploy ติดตั้งอะไร จะสั่งการผ่าน Node นี้เท่านั้น

    ภากประกอบ 7 Kubernetes คือ

    จากรูปด้านบนจะเห็นการทำงานของ Master Node ชัดเจนมาก ว่าทำหน้าที่อะไรบ้าง ทั้งในส่วนของการติดต่อกับ API, การ Controller Node ต่าง ๆ ให้ทำงานตาม Config (ที่เรากำหนด Desired State ตอนไป Deployment) ของเราโดยอัตโนมัติ, การทำ Scheduler เพื่อควบคุม Workload ของแต่ละ Node และเป็นตัวที่จะควบคุมการติดต่อสื่อสารของ Node ทั้งหมดด้วย

    Anatomy of Kubernetes Node

    ถ้าเปรียบเทียบองค์ประกอบของ K8s อยากให้จินตนาการง่าย ๆ ประมาณว่า
    Pod = เซลล์, Worker Node = อวัยวะต่าง ๆ ในร่างกาย, Master Node = สมอง ประมาณว่าเซลล์หลาย ๆ เซลล์ (Pod) ประกอบขึ้นมาเป็นอวัยวะต่าง ๆ (Worker Node) โดยแต่ละอวัยวะทำหน้าที่ของตัวเองซึ่งแตกต่างกันไป และอวัยวะต่าง ๆ ในร่างกายนั้นสามารถที่จะทำงานร่วมกันได้ โดยมีสมอง (Master Node) เป็นตัวควบคุมสั่งการทุกอย่าง


    ReplicaSet

    มีหน้าที่หลักคือทำให้  Pod มีจำนวนเท่ากับตอนที่เราสั่ง สามารถควบคุมดูแลตาม Config ที่ทำ Deployment ให้เป็นไปอย่าง Automatic คือ หากมีจำนวนมากไปจากที่กำหนดให้ทำลายทิ้ง หรือหากน้อยไปให้สร้างเพิ่ม (Self- Healing) อีกทั้งยังสามารถใช้ในการทำ Auto-Scale เพื่อใช้ประโยชน์ได้ เช่น กำหนดลงไปใน Config ว่า หาก CPU Usage Over 80% ให้สร้าง Pod เพิ่มขึ้นมาอีก เป็นต้น  

    ภากประกอบ 8 Kubernetes คือ

     Services

    เนื่องจากการทำงานของ k8s นั้นต้องมีการ Self-Healing อยู่ตลอดเวลา ดังนั้น k8s จึงมี Service ที่ทำหน้าที่กระจาย Load Balance ไปยังแต่ละ Pod สามารถทำหน้าที่เป็น API Gateway ในตัว นั่นทำให้เวลาเกิดการ เพิ่ม/ลด ของ Pod ตัวที่ทำการเรียกมายัง Pod ดังกล่าว จะไม่รู้สึกเลยว่าหลังบ้านของ Pod มีการเปลี่ยนแปลง เพราะ มี Service เป็นกลไกการทำงานและเป็นตัวกลางสื่อสารให้เอง (ตัวกลางแบบ Client to Pod และ Pod to Pod )

    Services มีส่วนสำคัญในการทำให้การอัปเดตระบบไม่มี  Down Time (Zero Down Time)


    โดยใน Service มีการใช้ Labels
    ซึ่งตั้งค่าเอาไว้ที่ Config File (.yaml)  โดย Set Label ไว้ที่แต่ละ Pod และไป Set ที่ Service อีกทีว่าถ้าเรียก Service นี้ จะให้เชื่อมต่อไปยัง Pod ที่มี Label อะไรบ้าง ดังตัวอย่างในภาพด้านล่าง

    ภากประกอบ 9 Kubernetes คือ

    โดยจากภาพตัวอย่าง คือ ผู้ใช้สามารถที่จะใส่ Label ไว้ที่แต่ละ Pod ได้ หลังจากนั้นนำไปบอก Service ว่าใน Service นี้จะให้กระจายโหลดไปยัง Pod อะไรก็ตามที่มี Label = Prod และ Label = Be หลังจากนั้นจะกระจายโหลดไปตาม Pod ที่ Label เป็น Prod และ Be ให้เองได้เลย ถึงแม้ Pod นั้นมี Label ของเวอร์ชันอยู่ด้วยก็ตาม ทำให้เหมาะในเรื่องของการอัปเดตเวอร์ชันแอปพลิเคชัน

    แต่ถ้าต้องการใช้ Service เรียกแบบระบุเวอร์ชันจริง ๆ ให้ Set Label และระบุ Version ที่ตัว Pod ที่ตัวการ แล้วบอก Service ให้กระจายโหลดไปเฉพาะ Pod ที่มี Label เป็นเวอร์ชันที่กำหนดไว้เท่านั้น

     พร้อมลุยหรือยัง!

    หากศึกษาและพร้อมที่จะลุยกันแล้ว สามารถเลือกศึกษาข้อมูลเพิ่มเติมได้ตามลิงก์ด้านล่างนี้ได้เลย

    source [1] [2] [3]

    ติดตามข่าวสารใหม่ๆ หรือข้อมูลน่ารู้อีกมากมายได้ที่

      OpenLandscape Fanpage | https://www.facebook.com/openlandscapecloud/
      OpenLandscape Twitter | https://www.twitter.com/olscloud/
      OpenLandscape Cloud | https://openlandscape.cloud/

  • เปลืองเวลาเป็นวัน ๆ ไปทำไม ? ในเมื่อใช้ Docker ช่วยได้ !

    เปลืองเวลาเป็นวัน ๆ ไปทำไม ? ในเมื่อใช้ Docker ช่วยได้ !

    Docker คือ “Software Container”

    Docker คือ อะไร Docker นั้นถือเป็นหนึ่งใน “Software Container” ที่เป็นการสร้าง “สภาพแวดล้อมเฉพาะ” ให้กับซอฟต์แวร์ต่าง ๆ และทำให้ซอฟต์แวร์เหล่านั้น สามารถทำงานได้โดยไม่ไปรบกวนกับซอฟต์แวร์ตัวอื่น ในระบบปฏิบัติการเดียวกัน โดยคุณสามารถนำ Container ไปติดตั้งบนคอมพิวเตอร์หรือเซิร์ฟเวอร์เครื่องอื่น ๆ ได้เลยทันที โดยที่โปรแกรมในนั้นยังทำงานได้ตามปกติ ไม่ผิดเพี้ยนไปจากเดิม

     

    ยกตัวอย่างง่าย ๆ … เช่น ตอนที่คุณเขียนเว็บไซต์ขึ้นมาบนเครื่องของคุณเอง คุณสามารถปรับเปลี่ยน Setting ค่าต่าง ๆ หรือดาวน์โหลดอะไรมาติดตั้งเพิ่มอีกมากมาย เมื่อต้องการนำไปขึ้น Production บน Server ต้องทำการโยกเอาก้อนทั้งหมดนั้นไป ทำให้ต้องเสียเวลาทำ Config ทุกอย่างบน Server ใหม่อีกครั้ง และบางทีระหว่างดำเนินการอาจเกิดข้อผิดพลาด ข้อมูลไม่ครบ ไฟล์หาย ข้อมูลตีกัน ทำให้เสียเวลากลับไปค้นหาว่าเกิดปัญหาตรงส่วนไหน รวมถึงต้องแก้ไขอะไรบ้าง เพียงเท่านี้ก็ทำให้คุณรู้สึกเหนื่อยแล้วใช้มั้ย ?

    หยุด ! วงจรชีวิตยาก ๆ ด้วย Docker

    การใช้ “Docker” เข้ามาช่วยในการแพ็ค Software เหล่านี้ เพื่อให้อยู่ในรูปแบบของ Container หลังจากนั้น คุณสามารถนำ Container ไปรันบนเครื่องไหนก็ได้ โดย Application ของคุณยังทำงานได้ปกติ ไม่ว่าจะนำไปรันบนเครื่อง Development หรือบน Production Server ไหนก็ตาม


     เสกงาน 1 วัน ให้เหลือแค่ 1 ชั่วโมงด้วย

     

    ภาพประกอบ 1 docker คือ

     

    ในปัจจุบันมีผู้ให้บริการ Software Container ให้เลือกใช้บริการมากมาย แต่ Docker ได้รับความนิยมมากที่สุด เพราะใช้งานได้ง่าย ด้วย 3 Steps Build, Ship and Run ที่มีประสิทธิภาพสูง แถมยังมี Community ใหญ่มาก ทำให้มี Q&A มากมายตามมาในภายหลัง เมื่อคุณพบปัญหาอะไรก็ไม่ต้องลอยเคว้งคว้างกลางทะเลอยู่คนเดียว

    (Build) Dockerfile : คือการที่นำ Sourcecode + Config ที่รวบรวมคำสั่งทุกอย่าง ที่ใช้ในการ Run แอป และนำไปสร้างเป็นไฟล์ Docker Image 

    (Ship) Docker Image : คือไฟล์ Image ของ Application ที่สร้างมาจาก Dockerfile โดยสามารถนำ Image ไปรันบนเครื่องไหนก็ได้ที่มี Docker

    (Run) Docker Container : เป็น Container ที่มี Application ตาม Image ที่ติดตั้งไว้ และสามารถเรียกใช้งาน Application ได้โดยง่าย


     ประโยชน์ที่ได้จากการใช้ Docker

     

    ภาพประกอบ 2 docker คือ

     

    (1) Save Time : สามารถลงโปรแกรมเพื่อใช้งาน ได้ภายในไม่กี่วินาทีเท่านั้น
    (2) Save Cost : ประหยัดค่าใช้จ่ายมากขึ้นเพราะใช้ทรัพยากรน้อยลง
    (3) Save Data Storage : ประหยัดพื้นที่เก็บ และติดตั้งระบบได้รวดเร็วกว่าการทำ VM ถึง 90%
    (4) Easy to Scale : สามารถขยายระบบได้ง่าย เพื่อรองรับจำนวนผู้ใช้งานที่มากขึ้น และยังสามารถดึง Resource ของเครื่องมาใช้ได้เต็มประสิทธิภาพ ซึ่งต่างกับ VM ที่มักจะติดขีดจำกัดของเครื่อง
    (5) Environment Managing : ด้วยรูปแบบที่เป็น Image สำเร็จรูป  ทำให้เราสามารถติดตั้งโปรแกรม หรือตั้งค่าระบบ ได้ภายในเวลาไม่กี่วินาที และเพียงแค่ไม่กี่คำสั่งเท่านั้น
    (6) Portability : ทำให้ย้ายไประบบ IT infrastructure อื่น ๆ ได้ง่าย  ไม่ต้องเสียเวลา Setup โปรแกรมใหม่ทีละเครื่อง และช่วยลด Error ที่อาจเกิดจาก การนำระบบขึ้น Production
    (7) Reduce Time-to-Market : ช่วยลดเวลาการนำแอปพลิเคชันต่าง ๆ เข้าสู่ตลาด
    (8) Community Hub : ด้รับการพัฒนาและอัปเดตฟีเจอร์ใหม่เรื่อย ๆ มี Community สำหรับแลกเปลี่ยนข้อมูลต่าง ๆ มากมาย


    ใครที่เหมาะกับการใช้ Docker ?

    เนื่องจากการใช้ Container Software ไม่ใช่เรื่องยากหรือไกลตัวอีกต่อไป การนำมาใช้ ล้วนมีแต่ข้อดีและเป็นประโยชน์ ดังนั้นจึงไม่ใช่แค่เรื่องของ Developer หรือ System Admin อีกต่อไป แต่องค์กรเองต้องเข้าใจและเห็นความสำคัญของเทคโนโลยีนี้เช่นกัน


    เริ่มศึกษายังไงดี ?

    การศึกษา Docker สามารถหาข้อมูลได้ทั่วไปตามอินเตอร์เน็ต แต่การศึกษาและนำมาใช้งานอย่างถูกต้องและปลอดภัยนั้น ต้องใช้เวลาทำความเข้าใจพอสมควร แต่หากใครยังสงสัย ว่าการใช้งาน Docker ต่างกับ VM แบบเดิม ๆ ที่ใช้งานอย่างไร แล้วอยากเริ่มต้นด้วยตนเองง่าย ๆ OpenLandscape Cloud ขอแนะนำวิธีศึกษาการใช้งานเบื้องต้นด้วยการดาวน์โหลด E-Book ที่ทาง Docker ได้จัดทำไว้ได้เลยที่นี่

    โดยเนื้อหาใน E-Book จะประกอบไปด้วย

    • ทำไม Container ถึงไม่ใช่ VM
    • เราสามารถนำ Container และ VM มาใช้ร่วมกันได้อย่างไร
    • การใช้ Container บน Physical Server และ Virtual Machine นั้นแตกต่างกันอย่างไร
    • เริ่มต้นใช้งาน Docker และ Container

    Source : [1] [2] [3] [4]

    ติดตามข่าวสารใหม่ ๆ หรือข้อมูลน่ารู้อีกมากมายได้ที่

      OpenLandscape Fanpage | https://www.facebook.com/openlandscapecloud/
      OpenLandscape Twitter | https://www.twitter.com/olscloud/
      OpenLandscape Cloud | https://openlandscape.cloud/