Thailand Big Data User Group #1

จัดโดย อ.​ Thanachart Numnonda ที่ Q.House ลุมพินี วันที่ 9 ม.ค. 2558 มีผู้เชี่ยวชาญทางด้าน Big Data มาร่วมด้วยคือ John Berns กับ Axel Winter มาร่วมวงด้วย งานนี้เกิดขึ้นค่อนข้างกะทันหัน แต่ก็จัดออกมาได้ดี อ. คุมเวลาได้น่าประทับใจมาก (ปกติงานแบบนี้จะลากยาว) จากที่ออกจากกะลาไปนั่งฟัง เขียนออกมาตามความสนใจส่วนตัวได้ตามนี้

  • Hadoop จากเวอร์ชั่น 1.x ไปเวอร์ชั่น 2.x มีการเปลี่ยนแปลงเยอะมาก เปลี่ยนไปแบบยกเครื่อง เวอร์ชั่น 1.x นั้นเวลาทำอะไรกับข้อมูลที่ Hadoop Distributed File System (HDFS) จะต้องผ่านส่วน MapReduce ก่อน แต่เวอร์ชั่น 2.x จะมี YARN มาทำหน้าที่เป็น Cluster Resource Management ทำให้อะไรๆ ก็ไม่ต้องขึ้นอยู่กับส่วนของ MapReduce อีกต่อไป ลองดูภาพข้างล่าง

    Hadoop Stack
    Hadoop Stack (credit: annovate.blogspot.com)
  • Hadoop ทั้งสามารถเป็นทั้ง Data Storage และสามารถนำไปใช้ประมวลผลได้ด้วย การใช้ Hadoop นั้นสามารถลดค่าใช้จ่ายได้เป็นอย่างมาก ถ้าเทียบกับการเก็บข้อมูลแบบปกติ แต่ที่น่าสนใจอย่างหนึ่งคือ Cloud Storage อย่าง S3 ของ AWS Amazon ยังคงมีค่าใช้จ่ายที่ถูกกว่า -- มาถึงตรงนี้ก็เกิดคำถามขึ้นมาในใจว่า แล้วเราจะเลือกใช้อะไร? ระหว่างจะตั้ง Hadoop Cluster เอง หรือว่าไปทำบน AWS Amazon ลองอ่านความคิดเห็นจาก What are the advantages of Amazon EMR, vs. your own EC2 instances, vs. running Hadoop locally? ดู จริงๆ แล้วมันก็ trade-off กันเนอะ การคำนึงถึง long-term solution ของธุรกิจของเราให้มากๆ แล้วก็การลองผิดลองถูกอาจจะช่วยตัดสินใจได้
  • Apache Drill เป็นตัวที่เกิดมาใหม่ คล้ายๆ Hive คือ เป็น Query Engine เหมือนกัน แต่มีความสามารถอย่างหนึ่งคือ Schema Discovery On-The-Fly นั่นคือเราไม่ต้องกำหนด Schema ให้กับข้อมูลก่อนเหมือนอย่าง Hive ซึ่งแน่นอนว่าฝ่าย Business สามารถย่นระยะห่างระหว่างตัวเองกับข้อมูลมากขึ้น ทำให้ Agile มากขึ้น แล้วก็ช่วยลดภาระทางฝั่ง IT ด้วย (ถ้าเป็น Hive ฝั่ง IT อาจจะต้องช่วยกำหนด Schema ให้)
  • Query Engine หมายความว่า Query อย่างเดียว 🙂 ไม่มี INSERT UPDATE หรือ DELETE
  • ตอนท้ายเป็น Open Discussion มีการอ้างถึง Use Case ต่างๆ บริษัทต่างๆ มีการปรับเปลี่ยนอย่างไรให้ทัน Technology ที่เกิดขึ้นใหม่มาแทบทุกวัน การตัดสินใจจะขึ้นอยู่กับข้อมูลแล้ว ไม่ใช่ขึ้นอยู่กับการมโนหรือการวางแผนเอาเอง เราอาจจะต้องลงทุนกับเวลาที่เสียไปเพื่อเลือก Technology ที่ใช่
  • มีการอ้างถึงคำพูดของ Amr A. Awadallah, CTO ของ Cloudera ว่า "Data goes to tape archives to die." สื่อออกมาประมาณว่า ข้อมูลที่โดน Archive ไปแล้ว จะค่อนข้างยาก หรืออาจจะมีค่าใช้จ่ายไม่ว่าจะเป็นทางด้านการเงินหรือเวลา ที่จะดึงกลับมาใช้งานหรือ Query ขึ้นมาได้อีก
  • เมื่อก่อน เนื่องด้วยข้อจำกัดทางด้านต่างๆ เวลาเราจะประมวลผลทางสถิติ หรือพัฒนาอัลกอริธึม Machine Learning ขึ้นมา เราจะ Sampling ข้อมูลมาแค่ส่วนหนึ่งเท่านั้นเพื่อมาแทนข้อมูลทั้งหมด แต่จะดีกว่าเยอะมากๆ ถ้าเราสามารถเอาข้อมูลทั้งหมดมาประมวลผลได้ ซึ่งสมัยนี้สามารถทำได้แล้ว Hadoop เป็น Technology หนึ่งที่ทำให้เราทำแบบนั้นได้
  • การเลือก Partner มาช่วยเรา ให้เลือก Partner ที่สามารถแนะนำเราได้ว่าอะไรคืออะไร แนะนำข้อดีข้อเสียได้ แต่อย่าไปเลือก Partner ที่มาบอกให้เราทำอะไร ซึ่งธุรกิจของเรา ข้อมูลของเรา ตัวเราเองเท่านั้นที่รู้ดีว่าควรจะทำอะไร
  • เทรนด์ในประเทศไทย ณ​ ตอนนี้ บริษัทต่างๆ เริ่มมีการนำ Hadoop เข้ามาใช้งานแล้ว แต่ส่วนใหญ่ยังใช้แค่เพื่อเก็บข้อมูลอยู่
  • ถ้าอยากเริ่มต้นศึกษาเรียนรู้ใช้แค่ Virtual Machine ก็สามารถเริ่มต้นได้แล้ว ไม่จำเป็นต้องรอให้มี Cluster จริงๆ เสียก่อน

จริงๆ มีเยอะกว่านี้แต่คงเขียนไม่ได้ออกมาหมด ใครสนใจลองเข้าไปติดตามเฟสบุคเพจ IMC Institute ต่อนะ ได้ยินมาว่าสไลด์ในงานจะโพสต์ไว้ที่นั่นครับ

ข้อสังเกต ในงานนี้ผมได้ยินคำว่า "Agile" บ่อยมาก ทั้งๆ ที่ไม่ใช่งาน Agile คำๆ นี้มันไปอยู่ทุกหนทุกแห่งจริงๆ 🙂

สรุปโคตรสั้นกับหัวข้อที่ไปฟังมาในงาน Agile Tour Bangkok 2014 #AgileTourBKK

คำเตือนก่อนอ่าน ผมยกมาแค่บางส่วนของแต่ละหัวข้อเท่านั้น~ รายละเอียดจริงๆ คอยติดตามจากสไลด์ของแต่ละท่านนะครับ ดูได้จากลิ้งค์ตอนท้ายของบทความนี้ ถ้าอ่านคำเตือนกันเรียบร้อยแล้วก็เชิญอ่านต่อได้จ้า

Scrum and Waterfall from the view of Plato and Aristotle โดย Fredrik Carleson

fredrik-agiletourbkk2014-scrum-philosophy

เมื่อ 2500 ปีก่อน ก็มีแนวคิดของ Agile หรือ Scrum กับ Waterfall เกิดขึ้นแล้วนะ อย่างแนวคิดของพลาโต้จะเน้นความคิดเป็นหลัก ความคิดสมบูรณ์จะไม่เปลี่ยนแปลง จะออกแนว Waterfall ที่ประมาณว่าความต้องการของลูกค้าจะไม่เปลี่ยนแปลง การพัฒนาระบบก็จะไปได้อย่างราบรื่น ส่วนแนวคิดของอริสโตเติ้ลจะแตกต่างไป แนวคิดนี้จะไม่บอกให้เชื่อแนวคิดของตัวเราเอง จะเน้นให้ออกไปทดลองทำจริง แล้วกลับมาพัฒนาแก้ไข..​ ซึ่งแนวคิด Scrum ก็เป็นเช่นนั้น

Practical Guide for First Time Product Owners โดย Alex Phelps

alex-agiletourbkk2014-po-guide

Product Backlog เป็นอาวุธที่ Product Owner (PO) จะนำเสนอแนวคิดให้กับทีมให้เข้าใจ อเล็กมีวิธีการสร้าง Product Backlog ที่ค่อนข้างจะแตกต่างจาก PO ทั่วไปคือ

  1. เก็บเกี่ยว หรือศึกษาแนวคิดต่างๆ โดยการ คุยกับ Stakeholder คุยกับ User รวมไปถึงการลองใช้ระบบของคู่แข่ง
  2. วิจัยทางด้านเทคนิค หรือทำ Spike เพื่อดูความเป็นไปได้ และดูว่าตรงความต้องการหรือเปล่า ก่อนที่จะเขียน User Story
  3. เขียน User Story เพื่อสื่อสารกับทีม
  4. สร้าง Prototype ทำ Basic UX Design รวมไปถึงทำ Mockup แบบจับต้องได้ เพื่อให้ทีมได้เข้าใจความต้องการมากขึ้น

สิ่งที่ PO ไม่ควรทำ เช่น อย่าตอบตกลงเพื่อที่ทำให้ลูกค้าพอใจ อย่าพลาดการประชุมบ่อยๆ อย่าเปลี่ยน requirement ตอน last minute ส่วนสิ่งที่ควรทำ เช่น ให้คอยบริหารจัดการความคาดหวังจาก Stakeholder อยู่ตลอดเวลา จัดการ Product Backlog ทุกวัน แล้วก็พยายามทำตัวให้ว่างเพื่อทีมจะได้ถามคำถามต่างๆ

Abstraction Is A Communication Tool, Period. โดย Terry Yin

terry-agiletourbkk2014-abstraction

คนส่วนใหญ่จะพยายามที่จะเอา Abstraction มาแก้ปัญหา ใช้เป็น Solution แต่จริงๆ แล้ว Abstraction นั้นเป็นแค่เครื่องมือในการสื่อสาร เราควรจะใช้แค่นั้น

Do and Don’t for Continuous Delivery โดย Michael Athiwat Wongwaisayawan

michael-agiletourbkk2014-cd

สิ่งที่ควรทำก็มีอย่างเช่น สร้างวัฒนธรรม DevOps ขึ้นมา รวมไปถึงการทำ Feature Toggle สิ่งที่ไม่ควรทำก็อย่างเช่น จ้างตำแหน่ง DevOps มา ซึ่งตรงนี้มองว่าเป็นการแก้ปัญหาไม่ถูกจุด การแก้ปัญหาจริงๆ ควรจะเป็นการสร้างวัฒนธรรม DevOps ขึ้นมามากกว่า โดย Dev Team กับ Ops Team จะต้องร่วมมือกัน และสื่อสารกันให้ดี ผมชอบสไลด์ข้างล่างนี้มากเลย

michael-agiletourbkk-2014-devops

ส่วน Panel Discussion นั้น.. ไม่ได้เข้าครับ แหะๆ

ปล. ดูตารางงานได้ที่  Agile Tour Bangkok 2014 Schedule
ปล. อีกรอบ สไลด์ของแต่ละหัวข้อจะอยู่ที่ Agile Tour Bangkok 2014 Slides

งาน Start it Up, Power it Up ครั้งที่ 2 #startitupTH

จัดเป็นครั้งที่ 2 แล้ว ครั้งที่ 1 ผมก็ไปมาเหมือนกันนะ แต่ไม่ได้เอากลับมาเขียน แหะๆ ตามอ่านได้ที่บล็อกของชาวบ้านแทนนะครับ

ครั้งนี้จัดที่ Microsoft Auditorium ที่ All Season Places ตึก CRC ชั้น 38 เห็นบอกว่ารองรับคนได้เยอะขึ้น งานใหญ่ขึ้น ตอนแรกก็กังวลว่าความอบอุ่นจะลดลงไปหรือเปล่า แต่ไม่ครับ งานใหญ่จริง คนเยอะจริง แถมยังอบอุ่นอีกด้วย สถานที่ลงตัวเลยทีเดียว เหมาะสมกับจำนวนคนที่มา (คาดว่าน่าจะเกิน 200 คน)

ไม่ค่อยได้ถ่ายรูปเพราะเสียงชัดเตอร์ของมือถือผมดังมาก กลัวจะไปรบกวนชาวบ้าน กราบขออภัยเจ้าของรูปทุกคนนะครับที่ไม่ได้แจ้งบอกว่าจะเอารูปมาลง -/\-

Continue reading "งาน Start it Up, Power it Up ครั้งที่ 2 #startitupTH"

บาร์แคมป์บางเขนครั้งที่ 3 #bcbk

วันนี้อากาศดี ฟ้าครึ้มเล็กน้อย ครั้งนี้มีจำนวนคนลงทะเบียนเกือบหลักพัน o_O ลงทะเบียนกันเยอะ แต่ดูเหมือนมาจริงๆ จะไม่ถึงจำนวนที่ลงทะเบียนไว้ (มั้ง) งานเริ่มจะใหญ่เท่าบาร์แคมป์กรุงเทพเข้าไปทุกปีๆ แจ่ม! แล้วก็เหมือนเป็นธรรมเนียมของบาร์แคมป์ไปแล้วหรือเปล่าที่ว่าจะแจกเสื้อฟรี ฮะๆ ขอบคุณทีมงานผู้จัดทุกคนนะครับ ลายสวยเหมือนเคย

แต่ผมว่ามันบางๆ ไปหน่อยนะ :S

บรรยากาศช่วงโหวตและช่วงเปิดงานครึกครื้นเลยทีเดียว

หัวข้อที่ผมเข้าฟังมีดังนี้ครับ

  • MOLOME ^o^ Infrastructure โดย @winggundamth
  • Make the Web "Faster" ทำไงให้เว็บเร็วส์ ตอน เว็บจ่าช้ามากเบยยย โดย @vinboxx
  • Bitsort (Quicksort using bitwise) โดย กันต์ ภิญโญ
  • Meet Django โดย @nuboat
  • Startup vs. Corporate - What's better? โดย @yodchin
  • สร้าง Startup ยังไงให้ VC ลงทุน โดย @boatnoy @thanaarmates @eduardo3r
  • Tech Startup Journey in MMORPG Style โดย @pearlesspbz

Continue reading "บาร์แคมป์บางเขนครั้งที่ 3 #bcbk"

เริ่มต้นคลานไปกับ #AgileThailand2012

เหตุเกิดเมื่อกลุ่ม Agile66 (สามารถร่วมพูดคุยกับพวกเค้าผ่านทาง Twitter หรือ Facebook) ซึ่งเป็นกลุ่มคนไทยที่สนใจในด้านการพัฒนาซอฟต์แวร์แบบ Agile ได้จัดงานพบปะเสวนาประสาคนทำ Agile ขึ้น นั่นคืองาน Agile Thailand 2012 นั่นเอง จัดขึ้นเป็นครั้งแรก รับแค่ 66 คนเท่านั้น! (จำนวนจริงๆ ที่มาร่วมงานประมาณ 80 กว่าคน) เปิดขายบัตรราคา 200 บาท แล้วก็เต็มภายในเวลา 2 นาที ผมโชคดีได้มีโอกาสเป็นส่วนหนึ่งที่ได้เริ่มคลานไปงาน เลยอยากจะขอเอาสิ่งที่ได้รับมาเขียนบอกต่อ

Continue reading "เริ่มต้นคลานไปกับ #AgileThailand2012"