ThaiOpenSource เคยนำเสนอเรื่อง Moodle บน OpenShift ไปหลายครั้งแล้ว สำหรับครั้งนี้จะมาแนะนำวิธีติดตั้งแบบรวดเร็ว โดยไม่ต้องใช้คำสั่งบน terminal ไม่ต้องหา Git Repository และไม่ต้องติดตั้งเองให้ยุ่งยาก วิธีการที่จะมาแนะนำวันนี้คือเรียกใช้ผ่าน Dashboard ได้เลย สำหรับท่านที่มี account ให้ล็อกอินเข้าไปที่ OpenShift สั่งสร้าง Application ใหม่


Continue reading

เมื่อปีที่แล้วมีโครงการนึงน่าสนุกดีเป็นบริการชื่อ Azure Deploy สามารถเอาโค้ดจาก Git Repository ไป deploy ที่ Azure ในเบื้องต้นรองรับ WebSite แต่ก็สามารถประยุกต์ใช้งานร่วมกับบริการอื่นๆ ได้ ผ่าน ARM Template Azure Deploy เหมาะสำหรับผู้ที่ต้องการ Deploy App หรือทดลองใช้ Application อย่างรวดเร็ว โดยใช้ Azure Account ของตนเอง ซึ่งปุ่ม Deploy จะอยู่ที่หน้า GitHub Repository หรือหน้าเว็บไซต์ก็ได้ ซึ่งตอนนี้ Azure Deploy ใช้งานร่วมกับ Public Repository ได้เท่านั้น รอสักระยะอาจจะมีบริการร่วมกับ Private Repository :)

ครั้งนี้มาลองดูตัวอย่างง่ายๆ กันก่อน Azure Website รองรับการเขียนโปรแกรมภาษา มาลอง Node.js กันเลยดีกว่า จะได้รู้ว่า Azure Deploy ก็สามารถ deploy Node.js App ให้เราได้ ใช้ express สร้าง Node.js App เปล่าๆ สร้างไฟล์ REAME.md ใส่ข้อมูลปุ่ม Azure Deploy ลงไป ซึ่งมีแค่ link และรูปภาพง่ายๆ แค่นี้


Continue reading

AWS มีบริการ Ubuntu Core แล้วสามารถเรียกใช้งานได้เลย ผ่านหน้า AWS Console ไม่จำเป็นต้องใช้ ec2-tools ก็ได้ ซึ่ง Ubuntu Core Image จะอยู่ในกลุ่ม Community AMI ลองไปค้นหาแล้วเลือกใช้กันได้เลย ครั้งนี้จะมาแนะนำการใช้ Ubuntu Core บน AWS แบบง่ายๆ ผ่านทาง AWS Console กัน

เข้าไปที่หน้า AWS Console สร้าง Instance ใหม่ หา Ubuntu Core AMI ในส่วน Community


Continue reading

ครั้งที่แล้วเคยนะนำวิธีการใช้งาน Docker Machine ไปแล้วโดยใช้งานร่วมกับ Digital Ocean ครั้งนี้มาของเชื่อมต่อกับ Racspace Cloud กันดูบ้าง Docker Machine มีการพัฒนาเพิ่มขึ้นและรองรับการเชื่อมต่อกับ Public Cloud ได้หลายตัวมากขึ้น รวมถึง Rackspace ด้วย ครั้งนี้มาลองใช้ Docker Machine กันครับ ใครที่ยังไม่มี Docker Machine ก็ดาวน์โหลดที่ GitHub จากนั้นก็ติดตั้งตามปกติ

Docker Machine ต้องใช้ username, API Key และ region ในการสร้าง instance ใน Rackspace Cloud ในส่วน username, region คงไม่มีปัญหาอะไรเพราะ Rackspace มี region ไม่เยอะนัก ถ้าอยู่ในโซนเอเซียแนะนำใช้ region ที่ฮ่องกง (HKG) เพราะใกล้ที่สุด สำหรับ API Key ดูได้จากหน้า Account Setting


Continue reading

Ubuntu Core เปิดตัวมาได้ระยะหนึ่งแล้วซึ่งทาง Canonical ตั้งเป้าไว้เอาไว้ว่าจะเอามาใช้เป็น os image สำหรับ virtualization ตลอดจน การเอาไปใช้กับ Embeded System เพราะรองรับ CPU ตระกูล ARM ด้วย คุณสามารถใช้งาน Ubuntu Core ผ่าน Cloud Service Provider อย่างเช่น AWS, Azure ได้แล้ว ช่วงเวลาที่เขียน how-to นี้ยังอยู่ในช่วง Alpha 2 หากเข้าไปดูรายการ image ใน service catalog จะยังไม่มีให้ใช้ทั้ง Azure และ AWS ดังนั้นช่วงนี้อาจจะต้องใช้ command line กันไปก่อน หาก Ubuntu Core ออกตัวจริงแล้วก็คงกดใช้งานผ่าน service catalog กันง่ายมากขึ้น

มาลอง Ubuntu Core บน Azure กัน อันดับแรกติดตั้ง Azure CLI กันก่อนดังนี้

sudo apt-get update

sudo apt-get -y install nodejs npm nodejs-legacy

sudo npm install -g azure-cli

azure account download


Continue reading

Elastic Beanstalk เป็นเครื่องมือช่วยในการ Deploy Application​ บน Amazon Web Service โดยที่เราไม่ต้องกังวลเรื่อง Instance, OS, Auto Scaling Group, Monitoring ฯลฯ เพราะ Elastic Beanstalk จะเป็นคนจัดการให้ทั้งหมด คุณมีหน้าที่แค่พัฒนา Application แล้วสั่ง deploy เท่านั้น ซึ่ง Application ที่สามารถ deploy ผ่าน Elastic Beanstalk ได้หลายภาษา ทั้ง .NET, Python, PHP, Node.js, Ruby, Tomcat และ Docker

การใช้งาน Docker บน Elastic Beanstalk คุณสามารถสั่ง deploy Dockerfile เปล่าๆ หรือใช้ชุดของ Dockerfile และไฟล์ประกอบต่างๆ ที่บีบอัดในรูปแบบไฟล์ zip ได้เช่นกัน เราจะใช้ Dockerfile ของเกม 2048 กัน


Continue reading

Amazon เป็นผู้ใช้บริการ Cloud Computing รายใหญ่รายหนึ่งซึ่งสนับสนุนการใช้งาน Docker Container ในหลายบริการของตัวเอง เช่น EC2, Elastic Beanstalk, EC2 Container Service (ECS) เป็นต้น ครั้งนี้เราจะมาลองใช้งาน Docker บนบริการ EC2 โดยใช้ความสามารถของ Cloud Init เพื่อสั่งติดตั้ง Docker ขณะสั่งสร้าง instance ได้เลย โดยไม่ต้องติดตั้งตามทีหลัง ซึ่ง Cloud Provider ไหนที่ให้บริการพร้อม Cloud Init ก็ใช้วิธีนี้ได้เหมือนกัน เริ่มจากสร้าง Instance จาก Wizard


Continue reading

Google เปิดให้บริการ Google Container Engine ซึ่งรองรับการใช้งาน Kubernetes และ Docker Container แต่การใช้งานต้องใช้งานตามโครงสร้าง Kubernetes เป็นหลัก ซึ่งโครงสร้างที่ Kubernetes ต้องมีเป็นอย่างน้อย ได้แก่ cluster ของ container host และ pod ซึ่งก็คือ container ที่ต้องการ deploy โดยปกติ ถ้าใช้งาน Kubernetes โดยตรงจะต้องจัดการเรื่อง config ต่างๆ เองทั้งหมด โดยเฉพาะการเชื่อมต่อกับ Cloud Provider ที่ใช้บริการ แต่การใช้งานผ่าน Container Engine และใช้ Google Cloud SDK ด้วยแล้ว การใช้งาน Docker Container บน Container Engine ก็กลายเป็นเรื่องง่าย

การใช้งาน Google Cloud Platform หรือบริการที่อยู่ภายใต้ Google Cloud Compute จะต้องใช้งานผ่าน Google Cloud SDK ซึ่งจะมีชุดคำสั่งที่จะช่วยให้เราสั่งงานผ่าน command line ได้สะดวกมากยิ่งขึ้น หากใครไม่มี Google Cloud SDK ให้ติดตั้งก่อนดังนี้

curl https://sdk.cloud.google.com | bash

จากนั้นสั่ง authentication กับ Google Account ได้เลย

gcloud auth login


Continue reading

Azure เป็นบริการ Cloud Computing ของ Microsoft ซึ่งบริการพื้นฐานอย่างการใช้งาน Virtual Machine เป็นบริการที่ใช้งานได้ง่ายและสะดวกมาก ซึ่ง Microsoft มีบริการระบบปฏิบัติการที่หลากหลาย ทั้ง Linux และ Windows ซึ่งระบบปฏิบัติการที่เป็นที่นิยมใช้กันมากที่สุดบน Azure คือ Ubuntu และระบบปฏิบัติการน้องใหม่มาแรงที่เพิ่งเริ่มให้บริการมาไม่นานมานี้คือ CoreOS ซึ่งคุณสามารถใช้ Docker ได้บน CoreOS ได้เช่นกัน ซึ่งหากใช้ CoreOS จะสามารถใช้งาน Docker ได้เลยโดยไม่ต้องติดตั้งเพิ่มเติม แต่ถ้าใช้ Ubuntu จะต้องติดตั้ง Docker เพิ่มเติม

ลองมาดูวิธีการใช้งาน Docker บน Ubuntu ที่ใช้งานบน Azure กัน เริ่มต้นจากสร้าง Virtual Machine ขึ้นมาก่อน แน่นอนเราจะใช้ Ubuntu กัน


Continue reading

ปัญหาเรื่องการย้าย Application ข้าม Cloud Provider เป็นปัญหาปกติที่ต้องหาทางแก้ไข ซึ่งแต่ละ Cloud Provider มีช่องทางในการบริการที่ต่างกัน เทคโนโลยีต่างกัน เครื่องมือที่ใช้งานก็ต่างกัน เรียกได้ว่าถ้าจะย้าย instance จะทำได้ยากมาก ครั้งนี้จะให้แนวคิดเรื่องการย้าย Container จาก Cloud Provider ค่ายหนึ่งไปยังอีกค่ายหนึ่งหรือจาก Local ไปยัง Cloud Provider ก็ได้ ซึ่งทำได้หลายวิธี

จากภาพแนะนำการย้ายแบบง่ายๆ ผ่าน Docker อย่างเดียวไม่ได้ใช้เครื่องมือใดๆ เพิ่มเติม ถ้าจะให้สะดวกควรมี Orchestration Service อยู่ในแต่ละ Cloud Provider ด้วย ในเบื้องต้นทำความเข้าใจแบบง่ายๆ กันก่อน การทำ Migration ทำได้ 2 แบบ คือ

  1. Import / Export ไฟล์ Container ทั้งก้อนจาก Local ไปยัง Cloud วิธีนี้จะให้ความสะดวกมากกว่าแต่การสำรองข้อมูลและการย้ายไฟล์ Export จะช้าขึ้นอยู่กับความเร็วของเน็คเวิร์ก
  2. Push / Pull ให้ Commit Container State ปัจจุบันแล้ว push ขึ้น Docker Registry อาจจะเป็น Docker Hub (Private) หรือ Private Registry ที่ตั้งขึ้นเองก็ได้ จากนั้นค่อยสั่ง pull ไปยัง Cloud Provider ปลายทาง

สำหรับข้อมูลใน hipache ก็ต้องเปลี่ยนตาม เช่น จากเดิมอยู่ใน Local พอย้าย Container เสร็จจะต้องเปลี่ยน record ใน redis ชี้ไปที่ Container ที่อยู่บน Cloud จึงจะ route traffic ไปได้ถูกต้อง หากทำด้วยมือจะช้า ถ้าใช้ Orchestration Service จะเร็วและสะดวกกว่ามาก
Continue reading