สวัสดีปีใหม่ ที่เชียงคาน

ช่วงปีใหม่ เชียงคาน คนเยอะมาก

ช่วงปีใหม่ เชียงคาน คนเยอะมาก

ถือโอกาศสวัสดีปีใหม่ 2011 เพื่อนๆ มิตรรักแฟน blog ไว้ ณ ตรงนี้เลยครับ
ขอให้คุณพระศรีรัตนตรัยและสิ่งศักดิ์สิทธิ ทั้งหลาย ในสากลโลก โปรดดล
บันดาลประทานพรให้ทุกๆ ท่านประสบแต่ความสุข สมหวังในทุกสิ่งที่ปรารถนา
มีสุขภาพแข็งแรง เงินทองไหลมาเทมา เป็นปีที่ดี ตลอดปีตลอดไปครับ  🙂

ตอนนี้ ผมอยู่เชียงคานครับ มาช่วยพี่ๆ ขายของที่ร้าน idea dd ครับ คนเยอะมาก
หญิงน่ารักก็เยอะมาก เจอคนรู้จักก็เยอะมากครับ เชียงคานเป็นเมืองที่น่ามามากๆ
อาหารก็อร่อยหลายๆ อย่าง ราคาก็ไม่แพงครับ ที่พักก็เป็นแบบ home stay กันเอง
แบบราคา 1-200  บาท ผม backpack มาบางทีให้พักฟรี แต่ผมมาอยู่กับพี่ๆ
ที่ร้าน idea dd ครับ มาเป็นเด็กขายของสนุกดี ได้พบปะพูดคุยได้เจอกับผู้คนจากทั่ว
สารทิศ ที่เดินทางมาเชียงคานกัน เชียงคานช่วงปีใหม่ คึกคักมากครับ ..

ผมว่าจะอยู่เชียงคานอีกสักวันสองวันครับ รอคนน้อยๆ ค่อยเดินทางกลับ
เดี๋ยวกลับไปจะเอารูปสวยๆ ไปฝากนะครับ แล้วคอยติดตามกันนะครับ ..

วันพ่อแห่งชาติ 2010

Google ทำเก๋ วันพ่อแห่งชาติ เป็นสีธงชาติไทย และตัว g ตัวหลังเป็นรูปแผนที่ประเทศไทย

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

วันนี้ผมเองก็ไม่ได้กลับบ้าน เพราะว่าวุ่นๆ งานมาเข้าตั้งแต่เช้า กว่าจะแก้ไขได้
ก็เล่นเอาเหนื่อยเหมือนกัน ดันมาเกิดตอนวันหยุดอีก งานไม่เคยเลือกเวลา
แต่เมื่อเช้าโทรไปหาพ่อ คุยกะพ่อละ ก็คุยกันไม่นานนัก พ่อสบายดี เราสบายดี
ก็ ok ละ ตอนโทรไป พ่อเพิ่งกลับจากงานถวายพระพร ที่จัดขึ้นเหมือนกัน ..

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

Web Infrastructure

Web Infrastructure

วันนี้ มีเวลานิดหน่อย ก็เลยมาเล่าถึงเรื่อง Web Infrastructure กัน ว่าแต่ละระบบ
เรียงจากขนาดเล็ก มาจนถึงขนาดใหญ่ มีวิิธีการวาง Infrastructure และแนวคิด
ในการวางระบบต่างกันอย่างไรบ้าง เพื่อที่จะให้รองรับกับจำนวนผู้ใช้งานได้ตาม
ที่ต้องการ ในที่นี้ ผมแบ่งออกเป็นย่อยๆ ประมาณ 6 ระดับครับ มาดูกันเลย  ..

1. จะมี service ทุกอย่างรวมกันอยู่ในเครื่องเดียว ทั้ง web server, DB และอื่นๆ
ใน 1 เครื่อง อาจจะมีจำนวนหลายเว็บ แบบนี้ก็ประเภท web hosting ต่างๆ

2. เมื่อมีคนเข้าเยอะขึ้น เครื่องเดียวทำงานไม่ไหว ก็ต้องมีการแยก web server กับ DB
ออกจากกัน เพื่อให้ทำงานได้มีประสิทธิภาพ รองรับจำนวนผู้ใช้งานได้มากขึ้น การแยก
web server ออกจาก DB นั้น ไม่ได้เกี่ยวกับเรื่อง security หลายๆ คนเข้าใจผิด คิดว่า
การแยกออกจากกันเพื่อเรื่องนี้ แต่จริงๆ แล้วเพื่อ performance อย่างเดียวจริงๆ

3. เมื่อระบบแบบที่ 2 รองรับไม่ไหว เราก็ต้องเพิ่มเครื่อง caching มาช่วยจัดการกับ
static file เช่นพวก jpg, gif, png, html เพื่อทำให้ web server ทำงานได้เบาลง
พวก caching ที่นิยมใช้งานก็เป็นพวก varnish, squid, nginx และพวก lighthttpd
อื่นๆ ที่เก่งในเรื่องการทำงานกับ static file แทน apache2 ที่ทำงานหนักกว่า ..

4. เมื่อเรามี caching มาช่วย web server แล้ว ปัญหาที่ตามมาอีกก็คือ ทางฝั่ง DB บ้าง
ก็จะเริ่มหนัก เราก็เลยต้องมีวิธีการแบ่ง Read/Write ออกจากกัน โดยที่ data ต้องเหมือนกัน
ในกรณีที่ใช้ MySQL เราก็จะทำ MySQL Replication แยก Read/Write ออกจากกัน
เพราะว่าส่วนใหญ่แล้ว จะเป็น Read ประมาณ 90%  Write ประมาณ  10% เท่านั้น ในกรณีนี้
ถ้าเครื่องเดียว ยังไม่เพียงพอกับการ Read เราก็สามารถเพิ่ม MySQL Slave เข้าไปได้
ให้เพียงพอกับจำนวน Read ที่เราต้องการ

5. ในเมื่อโครงสร้างเดิมๆ 1-4 ไม่สามารถรองรับกับจำนวนคนใช้งานได้แล้ว เราก็จำเป็นต้อง
มี LB (Load Balancer)  เข้ามาช่วยเป็นตัวจัดการกระจาย load ให้ระบบของเราให้เท่าๆ กัน
LB มีให้เลือกใช้งานมากมาย ทั้งที่เป็น S/W และ H/W ถ้ามีทุนมากหน่อย ก็เลือกแบบ H/W
ก็จะทำให้การจัดการทำได้ง่ายขึ้น แต่ถ้าต้องการประหยัด S/W LB หลายๆ ตัวก็ทำได้ดี
ในโครงสร้างรูปที่ 5 เราจะใช้ LB มาแบ่ง load ระหว่าง caching 2 ตัว ที่อยู่หน้า web server
เมื่อตัวใดตัวนึงมีปัญหา ระบบก็จะยังใช้งานได้ปกติ ในส่วนของ web server เองก็เช่นกัน เรามี
LB มาเป็นตัวช่วยกระจาย load โดยที่ web server ทุกตัวจะ mount file จาก NFS กลาง
ทำให้ทุกเครื่องมี data ที่เหมือนกัน เมื่อเครื่องใดเครื่องนึง มีปัญหาระบบก็ยังจะทำงานต่อไปได้
ส่วน DB ก็ใช้วิธีการแยก Read/Write เหมือนกับระบบที่ 4

6. เมื่อโครงสร้างแบบที่ 5 เริ่มรองรับไม่ไหว เราก็ต้องมีวิธีวางแผนกันใหม่ สิ่งที่ดีที่สุด ก็คือ
การแยก static กับ dynamic ออกจากกัน แล้วก็เอาเรื่องของ memory เข้ามาช่วย นอกนั้น
ส่วนอื่นๆ ก็คล้ายๆ กับโครงสร้างแบบที่ 5

เอาไว้เท่านี้ก่อนละกันครับ เดี๋ยววันหลังมาเขียนเพิ่มเติมครับ งานเข้าละ  🙂

Google Jobs

Weloveshopping on MBP ขอบคุณ sticker จากเฮียฟีมครับ 🙂

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

วันนี้ดีใจมาก ตอนเช้า HR Google โทรมาตั้งแต่ 7 โมงเช้า แต่ว่าผมยังนอนอยู่เลย
ในใจก็คิดว่าใครโทรมาปลุกแต่เช้า เพราะว่ามะคืน ก็นั่งทำระบบ เพิ่งได้นอนนิดเดียว
พอเห็นเป็น Private Number ก็คิดในใจว่ามาจากเมืองนอกแน่นอน สรุปคือ Google
ผมยอมรับว่าฟังไม่ออกเลย ไม่เหมือนครั้งก่อนๆ ที่คุยกับฝรั่ง สำเนียงเร็วๆ แบบนี้
ผ่านทางมือถืออีก ทำให้ผมทำไรไม่ถูกจริงๆ แต่คนที่โทรมา เค้าก็ดีมาก เค้าบอกว่า
ยังงั้นเดี๋ยวส่ง mail คุยกันดีกว่า เพราะว่าสำหรับผม การอ่าน การเขียนตอบ มันเป็น
อะไรที่ผมทำได้สบายๆ ไม่ติดขัดอะไร แต่ว่าพอมาฟังนี่แบบว่าไม่รู้เรื่องเลย โมโหตัวเอง
คิดว่าจะต้องพยายาม ฝึกฟังฝึกพูด ให้มากๆ จะไม่ยอมฟังฝรั่งไม่รู้เรื่องอีก ต้องเต็มที่ ..
เพื่อนๆ มีวิธีไหนที่จะทำให้การสื่อสารแบบฟัง ฝรั่งพูดเร็วๆ ได้เข้าใจ ได้รู้เรื่องบ้างครับ
ช่วยแนะนำผมมาหน่อย จะได้เอาไปฝึกดู ไม่ก็ไปอยู่เมืองนอกสักพังนึง ให้ฟังพูดคล่อง
ไปเลย ไม่อยากให้ตัวเองมีจุดอ่อนเรื่องการสื่อสารแบบนี้เลย 🙂

วันนี้นอกจากงานจะวุ่นๆ แล้ว ยังเจอเรื่องปวดหัวที่เจอประจำอีก ก็เลยอยากจะบอก
กับทุกๆ คนในโลกนี้ไม่ว่าคุณจะเป็นใคร เป็นคนดูระบบ เป็นคนเขียนโปรแกรม หรือว่า
เป็นคนใช้บริการระบบ ให้รู้ว่าเวลาที่ server ช้า หรือมีปัญหาเข้าไม่ได้นั้น คุณอย่าเพิ่ง
มาโทษ server จะได้ไหม เอาใจเป็นกลาง แล้วลองพิจารณาดู ว่าเหตุผลจริงๆ มันควร
จะมาจากอะไร ผมคิดว่าถ้าเป็นคนใช้งานธรรมดา ย่อมไม่รู้ระบบการทำงานของเว็บ
ที่คุณเข้าอยู่แล้ว คุณจะโทษมั่ว โทษ server โทษคนดูระบบหรืออะไร คุณไม่ผิด เพราะว่า
คุณไม่รู้ แต่ถ้าคุณเป็นคนเขียนโปรแกรม คุณต้องคิดไว้เสมอว่า คุณกำลังเขียนโปรแกรม
ให้คนเป็นแสนเป็นล้านคน ใช้งานพร้อมกัน ไม่ใช่เขียนไว้ชื่นชมคนเดียว ดังนั้น อะไรที่คุณ
ควรจะ optimize ได้ ไม่ว่าจะเป็นการเขียนที่กิน resource ของระบบ หรือ query ต่างๆ
ที่ทำให้ DB หนักมากๆ พวกนี้ คุณต้องมีการแก้ไข มีการ debug ให้ดีที่สุด เท่าที่จะทำได้
อีกอย่างที่คุณจะปล่อยละเลยไม่ได้ก็คือเรื่องของ security แต่ถ้าหากไม่มีเวลา หรือว่า
คิดว่าอาจจะตรวจสอบสิ่งเหล่านี้ได้ไม่ทั่วถึง คุณควรจะปรึกษาผู้ดูแลระบบ สักนิดก่อน
จะรอให้คนดูระบบมาช่วยตรวจหาอย่างเดียว บางที มันก็ไม่ทำให้ทำงานได้เต็มที่นัก
ที่พูดมาผมไม่ได้บอกว่าผมเก่ง ผมรู้ทุกอย่าง และก็เข้าใจว่างานมันเร่ง แต่ทุกงาน ถ้ามีปัญหา
ส่วนใหญ่มาลงที่ server หมด ผมก็เลยอยากให้เข้าใจกันว่า อย่าโทษ server มันเหนื่อย ..

บ่นมาจะยาวยืด วันที่ 9-13 เดือนนี้ ผมไปโครงการไออุ่น #5 ที่ จ.ตาก เพื่อนๆ ที่สนใจ
จะบริจาคของ ไปช่วยเหลือน้องๆ ที่ทุรกันดาร ขาดแคลน ก็ติดต่อมาได้ครับ ช่วยๆ กัน 🙂