Quantcast
Channel: jQueryTips by Tee++; » Uncategorized | jQueryTips by Tee++;
Viewing all articles
Browse latest Browse all 10

Dev on Clould และการสร้าง Dev Environment บน Heroku

$
0
0

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

แต่ก็ยังพยายามอัพเดท ความรู้ที่ตัวเองไปพบเจอมา บนโลกออนไลน์ใน Page อยู่เสมอๆ แต่ทว่า วันนี้ไปฟังคุยณ “ปิโยรส ปิยจันทร์ (ตั๋ง)” พูดเกี่ยวกับเรื่อง Software Testing รวมไปถึงเกล็ดเล็กน้อย เกี่ยวกับ Cloud Service ซึ่งตรงนี้ผมขอชมเลยครับ ว่า คุณ ตั๋ง เป็นคนที่พูดได้น่าสนใจ แล้วก็มีความรู้จริงๆ เกี่ยวกับสิ่งที่ตัวเองพูดเป็นอย่างมากครับ ถ้ามีจัดอีก เมื่อไหร่ ผมจะพยายามไปฟังให้ได้เลยครับ ^^

เอาต่อๆ…. พอไปฟังก็เลยนึกขึ้นได้ว่า ก่อนหน้านี้ Set up Cloud ขึ้นมาใช่เป็น Dev Environment ตัวนึง ก็เลยอยากจะเอามาแชร์ นิดหน่อย คิดว่าน่าจะเป็นประโยชน์บ้าง สำหรับ Dev รุ่นใหม่ๆ ในการเปิดโอกาสให้มี เวทีสร้างสรรค์ผลงาน โดยแทบจะไม่มีค่าใช้จ่ายเลย รวมถึงการจัดการ Source ที่มีประสิทธิภาพ และช่วยในการทำงาน

Service ที่จะมาแนะนำวันนี้เป็น Cloud ของ Heroku ครับ ซึ่งถ้าใครเคยลองสร้าง App บน Facebook จะเห็นว่า จะโดนแนะนำให้ไปโฮสต์ที่นี่อยู่เรื่อยๆ ซึ่งที่จริงมันก็สะดวกดีสำหรับ App เล็กๆ ครับ แต่ถ้า App ใหญ่ๆ ก็ ปรับ Dyno กันได้ตามสะดวก แต่ว่าราคาใช้ได้เลยครับ (แพง)

** Heroku built on Amazon’s Elastic Compute Cloud (EC2)

 

ข้อดีของการใช้งาน Cloud บน Heroku (จริงๆ บางข้อ มันก็ข้อดีของการใช้งาน Cloud ที่อื่นๆ ด้วยแหละ)

1. ถ้าใช้ในระดับการสร้าง Dev Environment สำหรับทำโปรเจค ที่มีทีมงานหลายคน จะมีประสิทธิภาพมาก เพราะมี Source Control เป็น Git

2. มีค่าใช้จ่ายเริ่มต้นน้อยมาก หรือแทบไม่มีเลยในการสร้าง Dev Environment แต่ถ้าจะ ขยับขยาย นี่ก็คำนวนกันดีๆ นะครับ

3. ด้วยความที่เป็น Cloud Service อยู่แล้ว ทำให้เราไม่จำเป็นต้องมี Network Engineer มาจัดการเรื่อง Server หรือลง Software ให้เลย เพราตัว Heroku  มี Add-Ons ที่เรียกได้ว่า เกินความต้องการแล้วครับ (แต่บางอันที่เฉพาะทางจริงๆ นี่ต้องไปหาทางเอาเอง)

4. Add-Ons มีจำนวนมาก และส่วนมากเริ่มต้นที่ Free ทำให้เพียงพอแก่การสร้าง Dev Environment ที่ไม่โหดมากนัก

5. Custom Domain รวมไปถึงการทำ Wildcard DNS ไม่มีค่าใช้จ่าย ซึ่งส่วนมากที่อื่นเสียตังค์ครับ ราวๆ ไม่เกิน $10/mo

6. สามารถสร้าง App ได้ไม่จำกัด ซึ่งอันนี้ส่วนมาก เป็นปกติของ Cloud Service ประเภทนี้อยู่แล้ว

7. รองรับการเขียนโปรแกรมหลายภาษา

 

เอาล่ะ ที่นี้ ของดีฟรีๆ แบบนี้มันก็ต้องมีข้อเสียบ้างล่ะ มาดูกัน

1. ระบบเป็นแบบเปิด เพราะฉะนั้นถ้างานคุณมีความละเอียดอ่อน เช่นเป็น ข้อมูลการเงินหรืออะไรที่มีความสลัก สำคัญก็ ต้องระวังให้ดีครับ Robots.txt อาจจะช่วยได้นิดหน่อยในการกันบอท แต่ว่า มันก็นะ… นานาจิตตัง

2. การ  Deploy โคดเป็น Git ซึ่ง Dev หลายคนอาจจะไม่ชิน แต่จริงๆ แล้วมันเป็นข้อดีนะ ที่มันเป็น Git

3. ถ้าไม่ได้ใช้แค่เป็น Dev แต่ว่าใช้ Production จริงๆ ก็มี ราคาค่างวด อยู่ ไม่น้อย

4. Database ให้มาแค่ 5MB

5. ไม่มี Storage รองรับ ทำให้อาจจะต้องเสียตังค์ไปใช้ Service ตัวอื่นประกอบเช่น Amazon S3

 

เท่าที่พอจะนึกออกตอนนี้ มันก็ได้เท่านี้แหละครับ ข้อดี ข้อเสีย แต่ลอง สังเกตุดีๆ ว่า ข้อเสียมันไม่ได้เป็น ปัญหาเท่าไหร่ สำหรับการสร้าง Dev Environment ดีๆ แบบ ฟรีๆ

 

ทีนี้ก็ได้เวลามาลองกันจริงๆ แล้วล่ะ มาดูกันทีละขั้นตอนเลย

ขั้นตอนแรกที่ไม่ขอนับรวมในขั้นตอน ก็คือสมัครสมาชิกครับ ใครยังไม่มี Account ก็ไปสมัครกันก่อน ถึงจะเริ่มต้นได้

1. หลังจาก Login เข้ามาให้คลิกที่หน้า My Apps ซึ่งถ้าต้องการสร้าง App จะต้องทำ ผ่าน CLI ของ Heroku โดยทำการ DL Toolbelt มาก่อนครับ

2. หลังจากสมัครสมาชิกเสร็จก็ต้องไป DL Toolbelt เพื่อที่จะให้ใช้ CLI ของ Heroku ได้ครับ ใครใช้ OS อะไรก็เลือกเอาเลยครับ

 

3. หลังจากลง Toolbelt เสร็จให้เข้ามา ที่ Terminal หรือถ้าเป็น WinOS ก็จะเป็น cmd ในที่นี้ผมจะขอใช้เป็น Mac OS อธิบายนะครับ ให้พิมพ์ว่า

heroku login

จากนั้นก็ใช้ account login เข้าไป

5. จากนั้นลงมือสร้าง App เลยครับ โดยผมจะสร้าง App ที่ชื่อว่า “jquerytips” ให้พิมพ์ว่า

heroku create jquerytips –stack cedar

โดยที่ jquerytips จะเป็นชื่อ app ผม แล้วก็ชื่อนี้จะต้องไม่ไปซ้ำกับคนอื่นนะครับ ไม่งั้นมันจะสร้างไม่ได้ เพราะเดี๋ยวมันจะกลายเป็น Sub-Domain เรา

 

ทีนี้หลังจากสร้างเสร็จเราลองกลับมากูที่ My Apps ของ Heroku.com ก็จะพบ App ที่เราเพิ่งสร้างมาครับ

 

6. จากนั้นกลับมาที่ CLI ของเรา แล้วทำการ Keypair เพื่อที่จะทำให้เรา Deploy Code ขึ้น Heroku ผ่าน Git ได้โดยสะดวก เรื่องขั้นตอน ก็ทำตามนี้ครับ

Generate public key

ssh-keygen -t rsa

Add key to heroku

heroku keys:add

ซึ่งขั้นตอนโดยละเอียดดูเอาเองจากเอกสารของ Heroku น่าจะดีกว่า

https://devcenter.heroku.com/articles/keys

 

ซึ่งพอเราเสร็จขั้นตอนทั้ง 6 แล้วเราก็พร้อมที่จะทำการ Deploy code แล้วครับ ถึงตอนนี้ให้เราใช้ CLI Change ไป ยัง  Directory ที่เราต้องการแล้วทำการ clone git repo ลงมาเลยครับ

หลังขั้นตอนนี้แล้วคุณควรจะมี Folder ว่างๆ ที่ชื่อเดียวกับ git repo ของคุณโผล่มาแล้วใน  Local Drive ถ้ายังไม่มีคงต้องไปทบทวนขั้นตอนใหม่ล่ะครับ

จากนั้นให้เราลองสร้างไฟล์ index.php ในนั้นเขียนว่า “Hello Cloud”

 

แล้วที่นี้ลองมา Deploy Code ขึ้น Server กัน ผ่าน CLI โดยขั้นตอนนี้คุณจะต้อง Change Drive เข้ามาใน Local Dir ของเครื่องคุณเองแล้ว ตามตัวอย่างผมจะต้อง เข้ามาใน dir “jquerytips”

โดยการ deploy โคดเราจะใช้คำสั่ง

git add .

git commit -am ‘comment message you want’

** ถ้าเรามี Dev หลายคนก่อนที่เราจะ add ควรจะใช้คำสั่ง git pull เพื่อดึงโดคของ Dev คนอื่นมารวมก่อนทุกครั้ง

จากนั้น เราค่อย push code เรา อีกทีนึง โดยใช้คำสั่ง

git push origin master

*ตรงนี้ถ้าใครสร้าง branch ไว้ไม่ใช่ origin ก็ใช้ชื่อนั้นนะครับ ส่วนการแตก branch ผมไม่ขออธิบายนะครับ เพราะไม่งั้น เดี๋ยวมันจะยิ่งวุ่นไปกันใหญ่

เอาล่ะมาถึงฉากจบซะที ทีนี้ถ้าผมพิมพ์เข้าไปดูที่ URL ผม ก็จะเจอตามภาพด้านล่าง เป็นอันว่าเสร็จพิธี

 

 

มาถึงตรงนี้หลายๆ คนอาจจะเห็นว่ามันยุ่งยาก แต่ว่าการสร้าง Dev Environment แบบนี้ มันมีข้อดีกว่าที่เราจะ FTP Deploy โคดขึ้นไป เพราะถ้ามีการทำงานกันเป็น ทีม โคดเราจะไม่ได้แก้ทับกันไปมา เกิดปัญหา Bug ซ้ำซ้อน รวมไปถึง ถ้าเรามี Tool ที่ดี เราก็ไม่ต้องมาวุ่นวาน Deploy Code ผ่าน CLI กันแบบนี้หรอกครับ

อย่างเช่น ถ้าคุณเป็น Mac User มันก็มu Tools หลายตัว เช่น

Coda ที่เป็นทั้ง Editor รวมไปถึงมี ตัว Source Control อย่างเช่น SVN, Git ในตัว (FTP มันก็มีนะ)

** Coda นี่ลูกรักผมเลยล่ะ

Git Tower ตัวนี้เจ๋งครับ แต่ค่าตัวก็โหดไม่ใช่เล่น $59 สำหรับการจัดการ Git อย่างเดียว แต่มาด้วย Features ที่ครบครัน

Gitbox ตัวนี้ราคาไม่โหด เห็นน่าตาแล้วดู clean ดี แต่ผมไม่เคยลองจริงๆครับ ตัวนี้

ส่วนของ Free ก็พอจะมีครับ เช่นตัวนี้

Source Tree

 

ส่วนถ้าคุณใช้ WinOS ก็มีหลายตัวครับ มีทั้งที่เป็น Tool แยก หรือว่า เป็น Plugin ของ IDE อีกที ลอง Google กันได้ตามสะดวก

Git SCM ตัวนี้มีทั้ง Mac แล้วก็ Win ครับ

Tortoisegit

ส่วนการใช้ Add-Ons นั้นให้เข้าไปที่ Menu Add-Ons ของ Heroku ครับ ตัวอย่างเช่น ผมจะใช้ ClearDB

ผมก็แค่คลิกเข้าไปแล้วกด add ครับ หรือว่าจะใช้ผ่าน CLI ก็พิพม์ว่า

heroku addons:add cleadb:ignite

 

ซึ่งตรงนี้ผมขอไม่อธิบายเลยนะครับ เพราะว่าในแต่ละ Add-Ons พอคลิกเข้าไปมันก็จะมีวิธีให้ทำตามอย่างละเอียดเลย อาทิ เช่น ClearDB

https://devcenter.heroku.com/articles/cleardb

 

ส่วนการ Custom Domain ก็มีวิธีสอนอยู่ครับ

https://devcenter.heroku.com/articles/custom-domains

** ขั้นตอนนี้ผมเคย Set ตามบทความ (ผมใช้ Godaddy) แล้วไม่ผ่านผมลองแก้ตามนี้ได้ครับ

http://serverfault.com/questions/99453/godaddy-cname-not-working-instructions-from-heroku

 

ส่วน Email แนะนำว่าให้ไปใช้ Google Apps ผูกกับ Domain เอาครับ

https://www.google.com/a/cpanel/standard/new3

 

แนะนำ PHP Cloud Service อื่นๆ ที่น่าสนใจ

PHP Cloud

PHP Fog

Pagodabox

 

 

PS. บทความนี้ไม่ได้ผ่านการตรวจทานคำผิด นะครับ เพราะว่าขี้เกียจอ่ะ 555+


Viewing all articles
Browse latest Browse all 10

Trending Articles