Mar 10, 2013

Return of the addmoremem

Just want to announce that i'm going to publish articles in this blog again after disappeared for 2-3 yesrs.

The content may be shortter and less formal because I may post from mobile devices.

Main topics of this blog are around it operation, infrastructure & devops.

Oct 4, 2010

Zabbix's template to monitor Redis

Today, i'm going to release Zabbix's template & script to monitor Redis.
I copied the perl script from Munin's plugin and modify some parts to make it match with Zabbix. Thank you Munin's plugin developers.

Here are the files


Howto install?

  • If you running your own Redis on port 6379, you don't need to change anything. If you run Redis in another port, just simply use text editor to replace 6379 to your port number.
  • If you running multiple instances of Redis, your could just simply copy the template to your own ports. No need to modify perl script
  • Import template
  • Upload redis.pl to your Redis server at /etc/zabbix/scripts, chmod to 755
  • Make sure that you could run below command and don't get any error.

    sudo su - zabbix --shell=/bin/bash && /etc/zabbib/scripts/redis.pl 127.0.0.1 6379 role
  • Append below line to /etc/zabbix/zabbix_agentd.conf

    UserParameter=redis_stats[*],/etc/zabbix/scripts/redis.pl $1 $2 $3 
  • Restart zabbix-agentd service
  • Check your latest data at Zabbix server via web interface

Good luck.

Oct 1, 2010

Zabbix's template to monitor Memcached

Today's topic is about monitoring Memcached instance. There are several ways/tools to monitor Memcached such as Munin, Nagios and Zabbix. I used to work with several monitoring tools but the most effective & my favorite one is Zabbix. I will discuss my impression about Zabbix later.

How to monitor Memcached's instance by using Zabbix
  1. Import Memcached's template from this link to your Zabbix server
  2. Modify /etc/zabbix/zabbix_agentd.conf and add the following UserParameter (on the Memcached server)
    UserParameter=memcached_stats[*],echo -e "stats\nquit" | nc 127.0.0.1 $1 | grep "STAT $2 " | awk '{print $$3}'
  3. Restart Zabbix agentd service
  4. Link Mecached template to Memcached server
  5. Check the latest data (Application: memcached)
What are inside this template
  • 38 Items (default type is Zabbix Agent Active)
  • 1 trigger
  • 4 graphs
Note
  • This template tries to monitor Memcached instance that running on port 11211
  • If your Memcached instance is running in different port, you could simply replace 11211 with your port number before importing this template
  • If you run more than one Memcached instances, you could simply copy this and modify port number.

Sep 27, 2010

Running multiple instances of Memcached on CentOS

If you install Memcached via Yum or RPM, you will get the following main scripts

  1. memcached binary (may be at /usr/bin/memcached)
  2. /etc/sysconfig/memcached which is the main configuration of memcached
  3. /etc/init.d/memcached which is the startup script of memcached
The above files could run only one instance of memcached, i usually ignore those scripts (no: 2,3) and use direct command line to run multiple instancs of memcached. However this method lacks system administration and is too difficult to maintain. You have to put your multiple command lines into /etc/rc.local. 

Another solution to support this idea is, modify /etc/init.d/memcached to read all configuration of /etc/sysconfig/memcached_* and use those information to start the daemon.

Here is the link to /etc/init.d/memcached

Here is the link to /etc/sysconfig/memcached_11211

After upload the scripts to the server, please
  • Create a folder at /var/run/memcached
  • Change owner of /var/run/memcached to "nobody" and change mode to 755
Usage:
  • Startup command
    # /etc/init.d/memcached start
    # /etc/init.d/memcached start memcached_11211
  • Status command
    # /etc/init.d/memcached status
    # /etc/init.d/memcached status memcached_11211
  • Stop command
    # /etc/init.d/memcached stop
    # /etc/init.d/memcached stop memcached_11211
Note
  • You could create more than one instances of memcached by using 1 startup script by copy & modify /etc/sysconfig/memcached_11211 to memcached_PORT 
  • Don't forget to change the startup parameters inside that file especially the port number
  • Original version of /etc/init.d/memcached is modified from here
  • The block layout of /etc/init.d/memcached is not so good, but it works for me.


Sep 26, 2010

เรื่องเล่าวันนี้เกี่ยวกับ VMware ESX และการ migrate host จาก VMware workstation

วันนี้ทั้่งวันใช้เวลากับการ migrate guest os. ที่แต่เดิมรันอยู่บน VMware workstation version เ่ก่ามากๆ ให้ขึ้นมาอยู่บนตัวใหม่ ซึ่งตอนนี้มี 2 ทางเลือกคือ

  1. VMware ESX4i ตัวนี้รันบน HP Blade BL460c รองรับ Intel VT และ 64 bit guest os.
  2. VMware ESX3.5 รันบน HP Blade BL20p ซึ่ง ณ ขณะนี้ที่ตรวจสอบรัน 64 bit guest os. ไม่ได้ และก็ลง ESX4i ไม่ได้ด้วย
ก่อนอื่นเลย ถ้าจะลง ESX4i ให้ไปตรวจสอบ hardware ก่อนว่า support หรือไม่ นอกจากนี้ยังต้องดูด้วยว่า CPU ที่ใช้อยู่รองรับ VT (virtualization technology) หรือไม่ ถ้าไม่รองรับก็รัน 64 bit guest os. ไม่ได้แน่นอน ผมสรุปให้ง่ายๆ ดังนี้
  • HW AMD Opteron Rev E หรือใหม่กว่า ใช้ได้เลย
  • Intel Xeon-based ตัว processor ต้อง support Intel VT (Virtualization Technology) ซึ่งโดยปกติจะ support อยู่แล้วแต่  disable ไว้ ดังนั้นเราต้องเข้าไปเปิด VT ่กอน ถ้า CPU เรา support VT แต่เข้า bios แล้วมองไม่เห็น ให้ติดต่อ vendor เพื่อ  request ขอ bios version ที่ทำให้เรามองเห็น VT
    • สำหรับวิธี enable ก็เข้าไปใน bios ซึ่งแต่ละยี่ห้อก็ไม่เหมือนกัน 
  • ถ้าต้องการตรวจสอบว่า server เรา support 64 bit VMWare หรือไม่ ให้ไป download tool ที่  http://www.vmware.com/download/shared_utilities.html

การ migrate host จาก vmware workstation ขึ้นมายัง ESX 3.5

  1. backup files ทั้งหมดของ vmware workstation ไว้ที่เครื่อง pc เราก่อน
  2. หลังติดตั้ง ESX เรียบร้อยแล้ว ก็ download infrastructure client มาติดตั้งที่เครื่อง pc เรา เพื่อเอาไว้ตรวจสอบความเรียบร้อยและจัดการในภายหลัง
  3. download vCenter Converter Standalone มาติดตั้งบน pc เวลาติดตั้งให้อย่าลืมเลือกเป็นแบบ standalone
  4. รัน vCenter Converter แล้วเลือก migrate ตามขั้นตอนดังนี้
    • source: vmware workstation แล้ว point ไปยังไฟล์ .vmdk ที่ backup ไว้ในข้อ 1 
    • destination: ก็เลือกเป็น vmware infrastructure server ที่ติดตั้งเรียบร้อยแล้วในข้อ 2
    • ที่จริงแล้วโปรแกรามจะตรวจสอบความเรียบร้อยของ source ว่าปกติหรือไม่ ซึ่งวันนี้เจอ error ไปตัวคือ มันฟ้องว่า


      • Unable to obtain the Lock
      • วิธีแก้คือ ให้ไปลบไฟล์ .lck ใน folder เดียวกันกับ .vmdk ออกให้หมด ซึ่งสาเหตุน่าจะเกิดจากการที่เราไม่ได้ shutdown guest os. ตามปกติ ทำให้ .lck ค้างในระบบ
    • หลังจากนั้นก็เลือก finish เพื่อ convert ได้เลย ซึ่งขั้นตอนนี้จะใช้เวลานานมากน้อยก็ขึ้นกับ size disk ของ guest os. เท่าที่ผมลอง size 7GB ก็ใช้เวลาร่วมๆ ชม. เหมือนกัน นานพอดู
  5. หลังจากนั้นก็ start vm ตามปกติ 

 ปัญหาที่พบในการ migrate host จาก workstation มายัง ESX

  • ถ้า destination เป็น esx4i จะเจอ error "unable to connect to the virtual disk"  กำลังหาวิธีแก้ไข แล้วจะมา update เพิ่มเติมต่อไป (แต่ถ้าปลายทางเป็น esx3.5 จะใช้ได้เลย)
  • ลอง migrate แบบ 2 ต่อ คือ workstation => esx3.5 => esx4i ก็ยังใช้ไม่ได้ error เดิมเลย  (ใครเจอวิธีแก้บอกด้วยคร้าบ)
ถ้าใครติดตั้ง vCenter server ไว้ด้วย ก็จะมีทางเลือกในการใช้งานที่ค่อนข้างหลากหลายกว่า vSphere client นะครับ ซึ่งแนะนำให้หามาใช้งานนะ ค่า license ไม่แพงหรอก แค่ตัวเลขหกหลักเอง 

เผลอ shift+delete mail ก็สามารถ recover ได้

วันนี้มีเหตุการณ์ผู้ใหญ่ในบริษัทเผลอกดปุ่ม shift-delete mail ซึ่งโดยปกติเรามักจะเข้าใจว่ามันจะ recover กลับมาไม่ได้แน่ๆ แต่พอลอง search ดูก็พบว่า มัน recover ได้นี่หว่า

สิ่งที่ต้องมี (เท่าที่ลอง ver อื่นไม่แน่ใจ)

  • Exchange Server 2003
  • OWA
สมมุติว่า user ชื่อ Abc เผลอลบเมล์จาก inbox ด้วย shift-delete ก็ง่ายๆ เลย เข้าไปที่ OWA login ตามปกติ จากนั้นก็ให้ใช้ IE เปิด URL http://OWA-URL/exchange/Abc/Inbox/?cmd=ShowDeleted
เพียงแค่นี้ก็จะสามารถมองเห็นเมล์ที่ถูกลบโดยไม่ได้ตั้งใจได้แล้ว 

บันทึกกันลืม: เปิดไฟล์ .chm ไม่ได้ แก้อย่างไรดี

ปัญหาเปิดไฟล์ .chm ไม่ได้ เกิดขึ้นถ้าจำไม่ผิดน่าจะเป็นกับ WindowsXP Service Pack ใหนก็ไม่ทราบ ขึ้เกียจไปค้น เอาเป็นว่าอาการคือ double click ขึ้นมาจะเจอ action cancelled 

ถ้าเจอแบบนี้ จำไว้เลยว่า ให้ right click ไฟล์ที่เราต้องการจะอ่าน แล้วเลือก property แล้วเลืิอก "UNBLOCK" แค่นี้ก็เปิดอ่านได้แล้ว

ในหลายๆ เว็บจะมีวิธีแก้ถาวร แต่ดูแล้วคุ้นๆ ว่ามันต้องแก้ registry กันวุ่นเหมือนกัน เอาไว้วันหลังค่อยมาดูวิธีแก้แบบถาวรกัน

วันนี้ update กันลืมเอาไว้แค่นี้ก่อนครับ  
  

จะเลือก network setting แบบใหนบน Sun VirtualBox

วันนี้มีเรื่องจะมาแบ่งปันประสบการณ์การใช้งาน Sun VirtualBox ใหักับทุกท่านได้ทราบกัน อาจจะไม่ใช่ best practice หรือวิธีการที่ถูกต้อง แต่เป็นวิธีการ config "Network Setting" สำหรับ GuestOS. เพื่อให้สามารถใช้งานได้ ในแบบที่ผมต้องการ

คงจะไม่เสียเวลาสาธยายว่า Sun VirtualBox คืออะไรนะครับ ผมพุ่งเป้าไปเลยแล้วกันว่า ผมต้องการ install GuestOS บน VirtualBox โดยความต้องการของผม มีง่ายๆ แค่ 3 ข้อ คือ

  1. ผมจะต้องสามารถ access network service เช่น ssh, http ... บน GuestOS จาก HostOS หรือเครื่องอื่นๆ ใน network เดียวกับ Host ได้
  2. GuestOS จะต้องสามารถ access internet ได้ (ผ่านทาง Host) 
  3. ผมจะต้องสามารถใช้งาน GuestOS ในทั้งสองความต้องการข้างบนได้ ไม่ว่าจะเชื่อมต่อ internet แบบใหนก็ตาม เช่น wireless, wire 

ทำความเข้าใจ Network Setting ของ Sun VirtualBox ก่อน

network setting ของ VirtualBox ก็จะคล้ายๆ กับของ VMWare แต่อาจจะเรียกชื่อต่างกัน ซึ่งก็สร้างความสับสนได้มากๆ เรามาดูกันเลยว่า มีให้เลือกกี่แบบ แต่ละแบบต่างกันอย่างไร
  1. Not attached: โหมดนี้ ถ้าบูต GuestOS ขึ้นมา ก็จะมองเห็น LAN card ที่ไม่มี connection ประมาณว่ามีการ์ด แต่ไม่ได้เสียบสายแลน ประมาณนั้น 
  2. Nat: อันนี้ก็ง่ายๆ ตรงๆ คือ GuestOS จะส่ง DHCP request ออกมา ซึ่งจะโดน VirtualBox ดัก และส่งค่าไอพีที่เหมาะสมให้ รวมทั้งค่า gateway ip ด้วย การทำงานในโหมดนี้ช่วยให้ GuestOS สามารถเชื่อมต่อและใช้งาน network/internet ได้

    ข้อเสียอย่างเดียวของ NAT Mode คือ Host ไม่สามารถเชื่อมต่อเข้าไปยัง GuestOS ได้ ทำให้เป็นแค่ one way communication เท่านั้น
  3. Bridged Adaptor: โหมดนี้น่าจะเป็นโหมดที่หลายๆ คนชอบ โดย VirtualBox จะ Bridge Interface Network ของเครื่อง Host มาให้กับ GuestOS ใช้งานได้ พูดง่ายๆ ว่า GuestOS จะมองเห็น network เดียวกันกับ Host นั่นเอง แต่มีข้อแม้นิดนึงคือ 
    • สามารถใช้ได้กับ LAN interface เท่านั้น
    • และ LAN Interface นั้น จะต้องมีสถานะการเืชื่อมต่อเป็น Connected (ต้องเสียบสายแลน)
  4. Internal Network: ทำงานได้เหมือน bridged adaptor แต่มีข้อดีเพิ่มเติมมา 2 อย่างคือ
    • security + speed เำพราะ packet จะไม่วิ่งผ่าน network stack ของ Host ทำให้ Host ไม่สามารถ sniff packet ได้ นอกจากนี้ยังทำให้ packet รัีบส่่งได้เร็วขึ้นอีกด้วย
  5. Host-only Adaptor: Host-only Adaptorโหมดนี้ มีไว้เพื่อกำจัดจุดอ่อนของ Bridged adaptor ทำให้ Host สามารถสื่อสารกับ GuestOS (รวมทั้ง GuestOS สื่อสารกับ GuestOS) ได้ โดยที่ LAN Interface ของ HostOS ไม่จำเป็นต้องมีการเชื่อมกับกับ switch/hub แต่อย่างใด

ปัญหาเกิดขึ้น เพราะ
  1. ผมอยากใช้งานแบบ bridged หรือ internal network แต่ผมไม่สามารถเสียบแลนได้ตลอดเวลา
  2. ถ้าจะไปใช้ nat มันก็ออกเน็ตได้อย่างเดียว ไม่สามารถ  access network service บน GuestOS ได้เลย
  3. ถ้าจะไปใช้ Host-Only มันก็ออกเน็ตไม่ได้ แต่จะ access network service บน GuestOS ได้

Solution

  1. วานลูกน้องเก่า @theclodhopper ทำสาย loopback เพื่อเอามาเสียบช่องแลนของ notebook เพื่อหลอกว่า เราต่อสายแลนให้เครื่อง Host นะ เพื่อที่จะได้ใช้งาน Bridged หรือ Internal Network ได้ ประกฏว่า มีปัญหาในทางปฏิบัติ คือ มันจะแสดงสถานะเป็น disconnect ทั้งๆ ที่ทดสอบกับ PC แล้วใช้งานได้ปกติ สรุปว่า วิธีนี้  FAIL 
    แต่ก็ต้องขอบใจ @theclodhopper ที่ช่วยสนับสนุนการทดลองครั้งนี้ (เคยทำแล้วใช้ได้กับ vmware สมัย 4-5 ปีที่แล้ว)
  2. ประยุกต์ สร้าง lan card 2 interface

    โดย interface แรกตั้งค่าให้เป็น Host-Only เพื่อให้สามารถควบคุมจาก Host ได้

    ส่วน interface ที่ 2 ตั้งค่าเป็น NAT mode
เพียงเท่านี้ เราก็สามารถใช้งาน GuestOS ได้จาก Host (via Host-Only interface) และตัว GuestOS เองก็สามารถใช้งาน internet ได้ (via NAT interface) โดยที่ไม่จำเป็นต้องง้อ Bridged adaptor อีกต่อไป
 
ปล. วิธีนี้ อาจจะไม่ใช่วิธีที่ถูกต้องตามหลักการ แต่เป็นวิธีที่ผมพบว่าใช้งานง่าย สะดวก ต่อ environment ของผมเอง ใครจะนำเสนอวิธีใหม่ๆ ก็เชิญได้เลยนะครับ หรือจะนำไปใช้มั่งก็ยินดี 

web performance test by httperf

httperf เป็น tool ที่มีมาค่อนข้างนานแล้ว เท่าที่ลองหามาก็มีตัวนี้แหละที่ค่อนข้างจะมี feature ที่หลากหลาย ที่พอจะเอามาถูไถทำ performance test ได้

อีกตัวที่พอทำได้คือ ab  แต่ผมยังหาวิธีที่จะให้ ab ยิง url ตามที่เราต้องการที่ไม่ใช่ fix 1 url  ไม่ได้ ก็เลยมองมาที่ httperf 

แต่กว่าจะหาทางให้มันทำงานได้ตามที่ต้องการก็ค้นกันนานเหมือนกัน เพราะ input file ที่ httperf ต้องการนำไปใช้เป็น input url นั้น มี format ที่พิศดารไม่เหมือนชาวบ้านเลย
tutorial คงไม่แนะนำ เข้าสู่ command ที่ใช้ยิงกันเลย
httperf --hog --server=test --wlog=n,/root/httperf/uri_80k.txt --num-conns=80000 --ra=1000
 
--hog : ต้องระบุ เพราะถ้าไม่ระบุ httperf จะใช้ port แค่ 1024-5000 เท่านั้น ซึ่งไม่เพียงพอต่อการยิง test  
--server : domain ของ server ที่ต้องการส่ง traffic ไป (มันจะ auto set Host: ด้วยค่า --server=xx นี้ไปใน http request header ให้เลย)
--wlog : [y|n] n คือไม่ต้องวนลูป ยิง url ใน file /root/httperf/uri_80k.txt เลย 
--num-conns : ระบุจำนวน http request ที่จะให้ส่งไป server ปลายทาง (ผมใช้วิธี gen url ที่จะยิง 80000 url, ดังนั้นก็เลยจะส่ง num-conns =80000 ไปเช่นกัน)
--ra : rate ที่ต้องการส่งไปเท่ากับ 1000 conn/second 

วิธีการ gen file 
ลองเอาไปประยุกต์เอาเองนะครับ ผมใช้วิธีเขียน perl script ง่ายๆ ใช้ ASCII NUL เป็นตัวคั่นระหว่าง URL
#!/usr/bin/perl
for ($i=1;$i<=80000;$i++) {
        print '/myurl.php?id=' . $i ." \0";
}

solve ปัญหา connect vpn แล้วเข้าเว็บภายในบางตัวไม่ได้

สองวันก่อนได้รับแจ้งจาก user (vip) ใน office ว่า เวลาที่ใช้งาน internet จากที่บ้านแล้ว connect vpn มาที่ office ไม่สามารถเข้าเว็บภายใน (ย้ำ ภายใน) บางอันได้ พร้อมกับส่ง error มาให้ดูด้วย เป็น screen capture หน้า browser ซึ่งถ้าดูจาก error ก็เข้าใจไปเองในตอนนั้นว่า user (poweruser) ท่านนี้คงไป set proxy ที่ browser มั้ง ก็เลยส่งผลให้เข้า private web ไม่ได้

ก็เลยรบกวนให้ power user ท่านนั้น troubleshoot เบื้องต้น ตาม step  ข้างล่างนี้
  1. ลองใช้ browser อื่นๆ เช่น firefox, chrome ก็เป็นเหมือนกันหมด
  2. ipconfig ดูแล้ว พบว่าได้ไอพีของ vpn network ไปแล้ว ontop ip ของ isp อีกชั้นหนึ่ง
  3. nslookup privateweb ดู ก็พบสิ่งผิดปกติคือ จะได้ไอพีที่เป็น public ip มา 1-2 ไอพีเดิมๆ มาเสมอ ทั้งๆ ที่ควรจะได้เป็น private ip
  4. ISP: True Hispeed Internet
  5. OS: WindowsXP
จากนั้นผมก็เลยลอง ด้วยตนเองที่ office แล้วก็พบว่า
  1. สาเหตุเกิดจาก browser ทำ domain resolving โดยวิ่งไปที่ DNS ของ ISP แทนที่จะิวิ่งไปหาคำตอบจาก DNS ของ VPN network  
  2. True มีการเปลี่ยน configuration ของ DNS ใหม่ เฉพาะ hispeed internet (as of now) ว่า ถ้า lookup โดเมนใหนก็แล้วแต่ แล้วไม่ได้คำตอบจากเจ้าของ domain ทาง true จะถือวิสาสะใส่คำตอบที่เป็น ip web server ของ true ให้เอง เพื่อที่จะได้แสดงหน้าของ true เอง
งานเข้าเลยครับ เพราะเราจะไปบังคับให้ true แก้ config dns คงไม่ได้ หลายเจ้าก็ทำแบบนี้เช่นป้านิภามหาภัย ก็เลยลองค้นดู ก็พบว่าอาการตามข้อ 1 เป็น bug ของ WindowsXp  ครับพี่น้อง โชคดีที่เค้ามี workaround ให้ โดยให้แก้ registry (ทำตามใน KB ได้เลยครับ ผมลองแล้ว) แต่โชคร้ายคือเค้าไม่คิดจะแก้ปัญหาถาวร คือใน servicepack 2, 3 ของ XP ก็จะไม่มีการแก้ไขเรื่องนี้
  
อย่างไรก็ตาม ขอประนามเป็นการส่วนตัวกับ ISP ใดก็แล้วแต่ ที่แก้ไข DNS setting แบบนี้ เพราะ
  1. ถ้าผมจะเข้าเว็บแล้วเว็บนั้นไม่มีอยู่จริง ก็ปล่อยให้ browser จัดการไป ไม่ต้องมายุ่งวุ่นวาย ไม่ต้องมา show เว็บ ซึ่งไม่รู้ว่ามีวัตถุประสงค์อย่างอื่น เ่ช่น ขาย ads หรือป่าว
  2. application ใน internet มันไม่ได้มีแค่ web ถ้า nslookup แล้วไม่มี ไม่เจอ ก็ควรปล่อยไปตามกลไกปกติ ไม่งั้นงงกันตาย
  3. ถ้าไอ้เว็บนั้นของ true หรือ isp อื่นใดที่คิดจะทำเช่นนี้ เกิดทะลึ่งมี security vulnerability ขึ้นมา นั่นหมายความว่า single point of infected
พอแค่นี้ก่อนครับ โมโห ทำให้เสียเวลาไปสองสามชม. แถมต้องมาตามแก้ vpn manual อีก ขอย้ำว่า ณ วันนี้ อาการนี้จะเกิดขึ้นกับ WindowsXP + True Hispeed Internet เท่านั้น  แต่ในอนาคตไม่แน่ อาจจะเจออีกหลาย ISP ที่คิดจะเลียนแบบ แน่นอน
 

Sep 13, 2010

ใช้ VMware ESX 4 ฟรี บน server hardware 64 bits และ ESX3.5 บน hardware 32bits

วันนี้ได้มีโอกาสติดตั้ง VMware ESX 3.5 Update 4 ก็เลยอยากทบทวนหน่อยว่า รู้จัก VMware มานานแค่ใหนแล้ว

ผมเคยได้ยินชื่อ VMware ตอนใหนจำไม่ได้แล้วจริงๆ น่าจะช่วงทำงานใหม่ๆ ซึ่งตอนนั้นมีโอกาสได้ลองเล่น version Workstation เท่านั้น เวลาลงก็ลงเป็นแบบ application ตัวหนึ่งอยู่บน windows ซึ่ง performance สมัยนั้น ก็ไม่ได้ประทับใจอะไรมากมาย คงอาจจะเป็นเพราะว่า hardware ยุคนั้นยังไม่ค่อยมีคอ (core) เหมือนสมัยนี้กระมัง ก็เลยทำให้ os, app ทุกอย่างที่รันอยู่บนนั้นค่อนข้างจะช้า ถึงช้ามาก

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

VMware vSphere 4 
ปัจจุบัน VMware ขึ้นมาที่ version 4 แล้ว ถ้าขายเป็นชุด package software จะเรียกว่า VMware vSphere ซึ่งในชุดนี้มันมีอะไรบ้าง ผมก็ไม่รู้เหมือนกัน จำไม่ได้เยอะมาก  แต่ที่แน่ๆ ที่มีคือ VMware ESX 4.0 และ VMware vCenter โดยตัว ESX 4.0 นั้นขายนะครับ ไม่ฟรี ตัวนี้เป็นตัวหลักต้องมี ส่วนที่เหลือก็เป็นน้ำจิ้ม เวลาขายเค้าจะขายเป็นชุด เช่น standard, enterprise อะไรประมาณนี้ (ถ้าอยากรู้ลึกๆ ก็เรียก sale ดีกว่านะครับ ผมจำบ่ได้ คุณสมบัติเด่นของ VMware version นี้คือ

  • vMotion ทำใ้ห้เราสามารถย้าย Virtual machine ข้าม ESX ใน cluster เดียวกันโดยไม่มี downtime
  • HA ก็เหมือน HA ของ Linux ที่รู้จักกัน คือ ถ้า virtual machine ตัวแรกมีปัญหา ตัว standby ก็จะ active ขึ้นมาทำงานทันที
  • Storage vMotion จำไม่ได้ อิอิ ก็คงย้าย storage ข้ามได้ มั้ง
  • fault tolerant VMSafe เค้าจะติดตั้งพวก antivirus ที่ระดับ ESX server แทนที่จะเป็นระดับ virtual machine
  • DRS อันนี้ก็คุณสมบัติของ Dynamic Resource 
อันที่จริงมันมี feature มากกว่านี้นะครับ แต่ที่จดๆ มามีแค่นี้เอง ถ้าจะซื้ออย่าหวังว่าจะได้ feature ครบ พวก vMotion, clustering ทั้งหลาย ต้องซื้อชุด package แพงกว่าปกติ ถ้าซื้อ standard ก็ทำได้แค่ virtual machine ธรรมดาเอง

ไม่มีตังส์ซื้อ VMware ทำงัยดี
ปัญหาโลกแตกสำหรับ SME ทั้งหลายคือ ไม่มีเงิน แต่อยากใช้ของดี แนะนำได้ง่ายๆ เลยครับ VMware เค้ามี version ที่แจกฟรีเหมือนกัน ตัว software ตัวเดียวกันกับตัวเสียตังส์ เพราะแอบๆ ถามบริษัทที่เค้ามาขายแล้ว version นี้เรียกว่า VMware ESX 4.0i ไปลองโหลดมาเล่นได้เลย เวลาโหลดจะเป็น iso file ต้องเอามา write cd แล้วติดตั้งอีกที ซึ่งวิธีติดตั้งก็ง่ายมาก เท่าที่ทราบ ESX 4.0i ใช้งานได้กับ hardware 64 bits นะครับ 32 bits คาดว่าไม่น่าจะใช้ได้


  • สำหรับ ESX 4.0 ถ้ามีการใช้งานเยอะมากกว่า 10 ESX แนะนำให้ซื้อ VMware vCenter มาเพื่อเป็นตัว remote จัดการ ESX ทั้งหมดนะครับ 
  • ถ้ามี server hardware 32bits ให้ไปโหลด VMWare ESX 3.5 update4 มาใช้ได้เลยนะครับ เพราะหลังจาก VMware ปล่อย 4.0 มา ตัว 3.5 ซึ่งแต่ก่อนเสียตังส์ ก็ปล่อยให้โหลดฟรีได้แล้ว


ขั้นตอนๆ คร่าว ในการทำ VMware ESX 3.5 มาใช้งาน


  • ก็ง่ายๆ ไป download ISO image มาก่อน พร้อมทั้ง register ด้วยเพื่อที่จะได้เอา License key มา register ไม่งั้นมันจะให้ใช้ได้แค่ 60 วัน  ตามลิงค์นี้เลย
  • จากนั้นก็ download iso
  • หาเครื่องมา install  พอ install เสร็จ ให้เปิด web browser ไปที่ http://your_vmware_ip/ เพื่อ download VMware infrastructure client มาติดตั้งบน pc ของเรา
  • จากนั้นก็ connect ใช้งาน
  • อย่าลืม config license ให้เรียบร้อย เพื่อให้สามารถใช้งานได้ตลอดไปนะ 

เพิ่มเติมคร่าวๆ ผมได้ทำการทดสอบ ioperformance โดยใช้ iozone เทียบกันระหว่าง VMware ESX4 และ Xen ที่ติดตั้งอยู่บน CentOS5.2 พบว่า ESX4 ให้ throughput ที่ดีกว่า Xen เล็กน้อย ส่วน graph จะหามาให้ชมอีกที

ส่วนการทดสอบเรื่อง cpu/memory นั้น ก็ให้ผลทำนองเดียวกันคือ VMware ESX4 จะดีกว่าเล็กน้อย

วันนี้พอแค่นี้ก่อน คราวหน้าค่อยมา update เรื่องการนำไปใช้งาน ว่า VMware ในยุคปัจจุบันจะเหมาะกับ application ลักษณะใหน

Share ประสบการณ์การใช้งาน TokyoTyrant

ก่อนอื่นต้องออกตัวว่าไม่ได้เป็น programmer เขียนโปรแกรมเพื่อใช้งาน TokyoTyrant นะครับ แต่ว่าเป็นคนดูแล service TokyoTyrant และให้คำแนะนำในฐานะ infrastructure service owner เท่านั้น  ซึ่งเท่าที่พบเห็นการใช้งานมาก็พอจะบอกได้ว่า อะไรควร อะไรไม่ควร


  • เนื่องจาก TokyoTyrant ไม่ support การกำหนด expire date ให้กับ key ดังนั้น ข้อมูลที่บันทึกเข้ามาจะถูกเก็บสะสมไปเรื่อยถ้า key ไม่ซ้ำกัน 
  • การทำ replication ต้องเปิด ulog ที่เครื่อง master ไม่งั้นจะทำ rep ไม่ได้ ดังนั้นถ้า application ใดที่มีการเปลี่ยนแปลงค่าบ่อยมากๆๆ ก็อาจจะทำให้ ulog โตขึ้นเรื่อยๆ ได้ ใน app ที่เคยเห็นพบว่า พอใช้งานไปได้แค่ 2 อาทิตย์ ulog โตขึ้นมากถึง 17GB ซึ่งถ้าปล่อยไปเรื่อย disk ก็คงเต็มภายในไม่กี่เดือน ก็ต้องยกเลิกการใช้งานในท้ายที่สุด

คำถามคือ แล้วข้อมูลแบบใหนที่ควรเก็บไว้ใน TokyoTyrant ผมมองว่า ควรเป็นข้อมูลที่เป็นเสมือน lookup table เช่น เก็บ status ของ online user, เก็บ property ง่ายๆ ของ user แทนการเก็บไว้ใน RDBMS และไม่ต้องการเก็บไว้ใน Memcached เพราะข้อมูลค่อนข้างมีความสำคัญ ไม่อยากเสี่ยงที่จะให้สูญหายหรือ get ข้อมูลไม่ได้ ดังนั้น TokyoTyrant (หรือ TokyoCabinet) ก็น่าจะเป็นทางเลือกที่ดีอีกตัว

อีกคำถามคือ ถ้าใช้ memcached อยู่แล้ว พบปัญหา timeout หรือข้อมูลหายบ่อย ควรจะแก้ไขอย่างไร ถ้าเรากำหนด expire ของข้อมูลได้ แนะนำให้ใช้ Redis เพราะทดสอบแล้ว เร็ว set expire ได้ ดังนั้นข้อมูลใน memory หรือ disk จะไม่บวมมาก แถมเป็น persistent คือ reboot server แล้วข้อมูลไม่หาย มีการบันทึกไว้บน disk ด้วย

ถ้าข้อมูลมีปริมาณที่แน่นอน ต้องการความน่าเชื่อถือมากขึ้น ต้องการทำ search ที่เร็ว ก็แนะนำ TokyoTyrant เลย ความสามารถก็น้องๆ RDBMS โดยเฉพาะส่วน search ใช้ software ชื่อ TokyoDystopia รับรองได้เรื่องความเร็ว ดีกว่า RDBMS แน่ๆ

งงแน่ๆ ถ้างง แนะนำง่ายๆ ลองดูด้วยตนเองทั้งหมดครับ ถ้ามีเวลาเพียงพอ เพราะการ set up ค่อนข้างง่าย แต่การ maintain ให้ทำงานได้ตลอดโดยไม่มีปัญหานั้นก็เป็นเรื่องท้าทายเช่นกัน

Jun 24, 2008

What is the best operating system for you?

ถ้าถามผมว่า os. ใหน ดีที่สุด คำตอบคือ ไม่ทราบครับ

สาเหตุที่ไม่ทราบก็เพราะว่า ผมก็ไม่เคยลองใช้ os. ครบทุกตัว คนอื่นๆ ที่ทดลองใช้เค้าทดลองในสิ่งที่เราต้องใช้หรือป่าวก็ไม่ทราบ หลักการง่ายๆ ในการเลือก os. ของผมก็คือ
  1. ต้องดูว่า application ที่เราต้องใช้ จำเป็นต้องรันบน os. ใดเป็นพิเศษหรือไม่ ถ้าจำเป็น โอกาสในการเลือกของเราก็น้อยลงหรือแทบไม่มีเลย แต่ถ้าเป็น gereral application เช่น พวก web server หรือ java application ก็ยังพอเลือกได้ ดูข้อต่อไปเลย
  2. ถ้า application ที่ต้องการใช้ไม่ได้เลือกมากอะไร ยกตัวอย่างเช่น ต้องการ web server ที่รัน php ได้ ผมก็จะเลือกโดยใช้หลักการง่ายๆ คือ "เลือก os. ที่เรารู้จักและใช้งานคล่องที่สุด" และขอแนะนำหลักการนี้ให้ทุกคนนำไปใช้ได้จริง

เหตุผลง่ายๆ ที่ต้องเลือก os. ที่รู้จักและใช้งานคล่องที่สุดคือ

  • เราสามารถควบคุมทุกอย่างได้ เช่น ถ้าเป็น linux distro ที่ถนัด เราจะรู้ว่า file configuration หลักๆ อยู่ที่ใหน ถ้าจะแก้ไขให้รองรับ scale ที่ใหญ่ขึ้นจะต้องแก้อย่างไร ลองนึกดูว่า คุณต้องแก้ไข tcp buffer size ให้ใหญ่ขึ้นเพื่อรองรับปริมาณข้อมูลที่มากใน os. ที่ไม่ถนัด คุณจะใช้เวลานานแค่ใหน
  • เวลาที่ระบบมีปัญหา ไม่สามารถทำงานได้ตามที่ต้องการ การ troubleshoot os. ที่เราถนัดถือว่าเป็นงานที่ไม่หนักมาก

ตอนนี้อย่าเพิ่งไปนึกถึงว่า os. นี้มีข้อเสีย แพ้ตัวโน้นเรื่อง blah blah blah เพราะที่เคยพบมา ปัญหามักจะเกิดจากการ config ของเรา หรือ coding ที่เขียนไว้ไม่ดีพอเสียมากกว่า บางครั้งมันยังไม่ถึง limitation ที่ os. มีด้วยซ้ำไป อีกอย่างหนึ่ง os. ทุกตัวจะมีค่า default setting ซึ่งถ้าคุณรู้จัก os. ตัวนั้นดีจริงๆ คุณจะรู้ว่า os. ที่ใช้อยู่ยังสามารถ customize ให้เพิ่มประสิทธิภาพและความปลอดภัยได้มากกว่าที่ทราบเยอะมาก

Jun 18, 2008

General Web Development Process

ตอนหะแรกตั้งใจไว้ว่าจะคุยต่อเรื่อง primary dns server ของบริษัทที่เป็น CDN ว่าเค้าทำกันอย่างไร ก็มีอันต้องระเห็จ จำเป็นต้องเขียนบล็อกแบบ offline ซะ ไม่มีเน็ตใช้ก็เลยหาข้อมูลมาประกอบไม่ได้ ขอยกยอดไว้คราวหน้าก็แล้วกัน

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

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

  • PD ก็คือ Product Development แผนกนี้มีหน้าที่คิด มีหน้าที่หาอะไรใหม่ จะไปลอกชาวบ้านมาก็แล้วแต่ จะคิดเองก็แล้วแต่ ขอให้เด็ด เจ๋งๆ ก็ใช้ได้
  • IT ก็มีหน้าที่รับ requirement ที่เป็นทาง PD เค้าคิดมา ทำหน้าที่ฤาษีแปลงสารจาก ความคิดในเอกสาร BRD ให้เป็นเว็บดีๆ ซักอัน โดยทั่วไปถ้า BRD ดี หรือนิ่งก็ดีไป แต่ส่วนใหญ่แล้ว มันไม่เคยนิ่ง ไม่เคยดีพอสำหรับ IT ครับพี่น้อง (ขอใช้เวทีนี้โวยแทน IT PM ก็แล้วกัน)
  • ก่อนที่ IT จะแปลงสารให้เป็น HTML document ดีๆ ประกอบรูปร่างสวยๆ แล้ว จะต้องมีแผนกที่สำคัญอีกส่วนหนึ่งคือ Graphic Designer บางที่แผนกนี้จะแยกตัวชัดเจน บางที่ก็แฝงอยู่กับ IT แต่ส่วนใหญ่มักจะเกาะติดกับ PD มากกว่า เพื่อให้สามารถสื่อสารกับคนที่เป็นเจ้าของ project ได้

จากนั้นก็จะเป็นกระบวนการออกแบบ พัฒนา ทดสอบ ติดตั้งระบบ เปิดการใช้งาน ... เปิดไปเปิดมา คนไม่มาใช้ ก็เห็นปิดกันไปนักต่อนัก .. ที่ยังอยู่ก็ต้องสู้ต่อไป ... จากกระบวน software development life cycle ข้างบน มันก็ออกมาเป็นเว็บหนึ่งอัน ดีไม่ดี คนใช้ชอบหรือไม่ชอบมันก็ขึ้นกับสามแผนกหลักๆ ด้านบนนั่นแหละครับ

การที่ user คนนึงจะเข้าเว็บครั้งแรก ชอบและกลับเข้ามาใหม่ ในมุมมองของผม (ขอย้ำนะ มุมมองของผม ใครไม่เห็นด้วยก็แชร์เลยครับ ยินดี) มันก็มีประเด็นดังนี้ที่เกี่ยวข้อง

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

คราวนี้มาดูกันว่า software development life cycle ข้างบน มันตอบโจทย์กลุ่มเป้าหมายหรือเปล่า

  • จุดสำคัญอยู่ที่ PD ถ้า PD สามารถสรุป functionality ของเว็บ หาจุดแข็งแล้วนำออกมาโปรโมตได้แล้ว ซึ่งการทำ function ที่ PD ต้องการให้ใช้งานได้ ก็เป็นหน้าที่ของ IT แหละครับ งานนี้งานหนัก ยิ่งเวลาบีบๆ programmer ก็เขียนกันหน้าเขียวเลยทีเดียว แมลงบินกันว่อนเลย
  • ถ้า function ที่ PD ออกแบบมาดี IT มีเวลาออกแบบระบบหลังบ้านให้รองรับโหลดเยอะๆ ทำไว้ดีหน่อย มันก็จะไม่มีปัญหาอะไร แต่ที่เจอประจำคือ function เยอะ เวลาไม่มี ต้องเอาขึ้นแล้ว แบบนี้ก็มักจะเจอปัญหาทีหลังกันประจำ เช่น เว็บช้า ล่มบ่อย database มีปัญหามั่งละ ความซวยมาเยือนใคร ก็คงไม่พ้นทีม operation และก็ทีม system support (sysadmin) นะแหละ ทำก็ไม่ได้ทำกับเค้า ดันต้องมาเหนื่อยยาวกับ product ที่ทำไว้รีบๆ
  • อีกจุดที่มองเห็นจุดบอดคือ graphic designer บางคน (ขอย้ำว่าบางคน) อาจจะไม่เข้าใจหลักการทำงานของ browser ดีเพียงพอ ท่านก็จะ design graphic ชิ้นใหญ่ๆ เน้นสวยอย่างเดียว คราวนี้แหละครับ ไปกันใหญ่เลย

กระบวนการทั้งหมดนี้ สามารถตรวจจับดักได้ครับ ถ้ามี testing process ที่ชัดเจน มี rule ที่ทุกคนต้องปฏิบัติตาม รวมทั้งการ simulate performance test ที่สามารถทดสอบ capability ของระบบได้เต็มๆ ก่อนที่จะขึ้น production แต่ทุกท่านก็คงทราบ ชีวิตจริงกับ ideal life มันแตกต่างกันเยอะครับ จะมี project ใหนที่ทำเต็ม process กันได้ บางอันท่านก็เล่น cowboy coding กันเลย ออกแบบเอง PD เอง เขียนโปรแกรมเอง เจอแบบนี้ทีมไอทีหลังบ้านก็ต้องเข็มแข้ง ทำหน้าที่ของเราแล้วก็ให้เต็มที่ หมั่นสื่อสารกันกับทุกๆ ทีม knowledge sharing ช่วยเราได้ครับ

Jun 16, 2008

CDN (Content Delivery Network)

เคยได้ยินคำว่า CDN กันบ้างมั้ยครับ CDN = Content Delivery Network เป็นศัพท์ทั่วไปที่ใช้เรียกพวก provider ระดับโลก เช่น akamai ที่ให้บริการฝาก content ลูกค้าก็จะเป็นพวกเว็บใหญ่ๆ เช่น google, yahoo ระดับโลกกันทั้งนั้น

สาเหตุที่เว็บดังๆ เหล่านี้ต้องมาใช้บริการบริษัทที่เป็นพวก CDN ก็เพราะว่า เค้าต้องการให้ลูกค้าดึงข้อมูลจากเว็บได้เร็วที่สุด เพราะว่าพวก CDN พวกนี้จะเอา server ไปวางไว้ตาม ISP ต่างๆ ทั่วโลกไปหมดเลย สมัยที่ผมเคยทำงานที่ KSC ก็พบว่ามี server ขนาด 1U ราวๆ 10 ตัวของ akamai ตั้งไว้อยู่ ตอนแรกๆ ก็งงว่า ตั้งไว้ทำใม แถมไม่จ่ายตังส์ด้วยมั้ง (ไม่แน่ใจมาไม่ทันตอนเค้าดิวกัน) พอได้ศึกษาเทคโนโลยีของ CDN ก็ถึงบางอ้อว่า เค้าตั้งไว้เป็นประมาณว่า web server / proxy server เอาไว้เก็บ content ให้พวกลูกค้า ให้มาดึงข้อมูลจาก server ที่อยู่ใกล้ที่สุดไป

หลักการทำงานคร่าวๆ (เอาคร่าวๆ นะ ละเอียดไม่รู้ ถ้าผิดก็บอกด้วย) เริ่มต้นเลย สมมุติว่า yahoo มีข่าวอันนึงดังมาก คนเข้าทั้งโลก yahoo บอกว่า server ของ yahoo รับได้แต่อาจจะอืดไปสำหรับข่าวดังๆ แบบนี้ ก็เลยติดต่อ akamai ขอฝากรูปซัก 10 รูปไว้หน่อยนะ ช่วยเอาไป distribute ตาม server ของ akamai ทั้งโลกเลยนะ จากนั้นทาง akamai ก็จะจัดการเอา content ที่ว่า 10 รูปนั้นไปวางตาม server ซึ่งก็ควรจะเป็น automate process ทั้งหมด ทาง yahoo ซึ่งปกติมี image server ของตัวเอง ก็จะเปลี่ยน URL ของ เช่น จากเดิมใช้ http://a.yimg.com/abc.jpg ก็อาจจะเปลี่ยนไปใช้ http://xxx.akamai.net/yyy/zzz/abc.jpg อะไรประมาณนั้น

บางคนอาจจะงงว่า แล้วมันจะเร็วได้ยังงัย ก็ต้องมาดูว่า เมื่อ browser เราดึง content html มาจาก yahoo ได้แล้ว ก็ต้อง follow <a href> link เพื่อไปเอารูปมาแสดง ดังนั้นก็ต้อง nslookup xxx.akamai.net ก่อนเพื่อจะได้เปิด HTTP connection ไปยัง xxx.akamai.net คาดว่าที่ akamai เอง ใช้อุปกรณ์ตัวนึงวางคั่นหน้า primary dns server ของ akamai ตัวอุปกรณ์ตัวนี้มันฉลาด มันมีฐานข้อมูลของเกือบทุกไอพีหมดเลย ว่าไอพีใหนอยู่ที่ประเทศใหน เมื่อมันรู้อย่างนี้มันก็ return A record ของ xxx.akamai.net ตัวที่ใกล้ที่สุดมาให้เรา ดังนั้นเราก็จะรู้สึกเสมือนว่าทำใมเปิดเว็บพวกนี้เร็วจัง เหมือนเปิดเว็บในประเทศเลย

คราวนี้มาดูบริษัทเล็กๆ กันบ้าง ไม่มีตังส์แต่อยากทำแบบนี้ทำได้มั้ย ได้แน่นอน บางที่ใช้ก็ใช้ Load balancer ที่มีฟังก์ชัน GSLB มาทำหน้าที่ปล่อยไอพีแทน บางที่ก็เล่นง่ายๆ ใช้ DNS Server ที่ support การทำ geography มาแทนเลย แบบนี้ก็ได้ ที่คุ้นๆ ตาคิดว่าทำได้คือ PowerDNS ว่างๆ ก็ลอง search มาลองใช้กันดู

ถ้าอยากเห็นตัวอย่างการใช้งานจริงๆ ก็ลองเปิดเว็บ cnn.com ดูนะ เปิด firebug ดูแล้วจะเห็นว่า เทคนิคนี้เค้าใช้กันจริงๆ ครับ ผมจะพิสูจน์ให้ดูง่าย ท่านลองทำตามเลยก็ได้

1. เปิด firebug ดูแล้วจะเห็นว่า มีการวางรูปไว้ที่ domain i.cdn.turner.com
2. เราเปิด cmd บน windows เราแล้ว nslookup มาดู จะได้ว่า i.cdn.turner.com = 207.123.44.123
3. สมมุติว่าเราเป็น User ที่ america เราจะได้ไอพีเดียวกันมั้ย ลองง่ายๆ เปิดเว็บที่เป็น dns tool เช่น www.dnstools.com มา แล้วคีย์ i.cdn.turner.com ออกมาดู ณ ขณะนี้ผลลัพธ์ทีได้คือ 199.93.46.126

เห็นชัดเจนครับว่า ต่าง zone ก็จะได้ ip ของ i.cdn.turner.com ที่ต่างกัน

บางคนที่พอจะเข้าใจเรื่อง dns server ลึกซึ้งหน่อย ก็จะมองออกว่า เอ้ะ มันเหมือนมี single point of failure ที่ระดับ dns server นะ คราวหน้าผมจะมาเฉลยครับว่า ระดับโลกเค้าทำกันอย่างไร เพื่อแก้ไขปัญหานี้

May 24, 2008

อืม บล็อกแรก

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

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

OK เข้าประเด็นหลักกันเลยครับ เนื่องจากผมเป็นคนในวงการไอที แต่ไม่ใช่สาย develop นะ ดูแลทางด้าน system, infrastructure, security ให้กับเว็บไซต์(ใหญ่)แห่งหนึ่งในบ้านเรา ก็เลยพอจะมีประสบการณ์ทางด้านการดูแลระบบ โดยเฉพาะอย่างยิ่งด้าน infrastructure ซึ่งรวมทั้งงานด้าน network และ system โดยเฉพาะเรื่องของการ manage, design ระบบให้รองรับกับปริมาณคนเข้าเว็บจำนวนมาก เรื่องเหล่านี้ก็จะค่อยๆ ว่ากันไป ไม่ผลีพลาม อันใหนที่ลองแล้วดีก็จะแนะนำ อันใหนลองแล้วไม่ได้เรื่องก็จะนำมาบอกกล่าว เพื่อที่จะได้ทราบกันไว้

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

วันนี้แนะนำตัวแค่นี้ก่อน ช่วงวันหยุดนี้จะมีเรื่องที่เป็นแก่นสารมา update กันอย่างแน่นอน ราตรีสวัสดิ์ครับ