Microsoft & Docker

ช่วงงาน Docker Con 2015 ที่ผ่านมา Microsoft มาโชว์ Docker Container บน Azure และเครื่องมือที่ช่วยให้ DevOps ทำงานได้ง่ายมากขึ้น เช่น VisualStudio Code รองรับไฟล์ Dockerfile และ Docker Compose แล้ว , VisualStudio Online มี CI ที่รวม Docker เข้าไปด้วย ช่วยให้ Build, Push, Pull, Deploy ใน CI ทำงานได้ง่ายมากขึ้น และสุดท้าย Azure รองรับ Container App แล้ว กดใช้งานได้เลยผ่านหน้า Portal ใหม่

จากที่เล่ามาผมได้ลองอยู่แค่อันเดียวคือ VisualStudio Code มี IntelliSense ใน Dockerfile ในส่วนคำสั่ง แต่ในส่วนชื่อ image มันไม่ขึ้นให้ เดี๋ยวไว้ว่างๆ ค่อยลองใม่

ใช้งาน Docker บน Azure แบบรวดเร็ว

การใช้งาน Docker บน Azure ทำได้หลายวิธี ใช้ผ่าน CoreOS ที่มี Docker อยู่แล้ว หรือการสร้าง Ubuntu Instance แล้วค่อยติดตั้ง Docker ลงไปอีกที หรือใช้ Docker Machine ซึ่งก็ตามความสะดวกของแต่ละท่าน สำหรับท่านที่ชอบใช้งานผ่านหน้าเว็บก็สามารถสร้าง Instance ที่มี Docker มาพร้อมได้เลย มีข้อแม้ว่าจะต้องเรียกผ่านหน้า Azure Portal ตัวใหม่เท่านั้น

วิธีการสร้างก็ง่ายมาก ก่อนอื่นต้องหา Docker ให้เจอก่อน กด +New > Compute > Azure Marketplace

Continue reading

ใช้ Azure CLI ผ่าน Docker Container

สำหรับท่านที่ใช้ Azure อยู่น่าจะรู้จัก Azure CLI โดยเฉพาะอย่างยิ่งท่านที่ใช้ Linux และ OSX อาจจะได้ใช้กันอยู่แล้ว เพราะการใช้ Command Line มันเร็วกว่าการที่จะไปใช้ผ่านหน้าเว็บไซต์แบบปกติ แต่การติดตั้ง Azure CLI ก็แลกมาด้วยความลำบาก โดยเฉพาะบน Linux ที่มักจะมีปัญหาเรื่อง Node.js และ npm เอาเป็นว่าคุณสามารถใช้งาน Azure CLI ได้จาก Docker Container โดยไม่ต้องติดตั้ง Azure CLI เลยจะดีกว่า วิธีการก็ง่ายมาก เพราะ Microsoft ได้ทำ Container มาให้เราใช้เรียบร้อยแล้ว

วิธีใช้งานก็ง่ายมาก ใช้คำสั่ง

docker run -it microsoft/azure-cli

Continue reading

มาเล่น Azure Marketplace กัน

ครั้งที่แล้วพาเล่น Google Cloud Launcher เพื่อไม่ให้น้อยหน้ากัน ลองมาดูของ Azure บ้าง ในส่วนของ Azure จะมี Azure Marketplace ด้วยเช่นกัน คุณสามารถซื้อ Application ที่คุณต้องการพร้อมบริการ Deploy อัตโนมัติบน Cloud ของ Microsoft อย่าง Azure ได้ อย่างง่ายๆ เลยทีเดียว การใช้งานสามารถใช้งานได้ 2 ที่ คือผ่านหน้า Azure Marketplace หรือ Azure Marketplace ใน Azure Portal ก็ได้

สำหรับการเข้าใช้ Azure Marketplace ผ่านหน้า Azure Portal ก็ง่ายมากๆ กด New+ > เลือกบริการสักอันนึง ดูข้างล่างสุดจะมีเมนูให้เลือกเป็น Azure Marketplace อย่ารอช้ากดเข้าไปเลย

Continue reading

มาเล่น Azure Deploy กัน

เมื่อปีที่แล้วมีโครงการนึงน่าสนุกดีเป็นบริการชื่อ 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

มาเล่น Ubuntu Core บน Azure กัน

Ubuntu Core เปิดตัวมาได้ระยะหนึ่งแล้วซึ่งทาง Canonical ตั้งเป้าไว้เอาไว้ว่า เอามาใช้เป็นระบบปฏิบัติการสำหรับ virtualization และ cloud นอกจากนี้ยังสามารถเอาไปใช้กับ Embedded System รองรับ CPU ตระกูล ARM ด้วย Ubuntu Core สามารถใช้งานผ่าน Cloud Service Provider อย่างเช่น AWS, Azure ได้แล้ว ณ ช่วงเวลาที่เขียน how-to นี้ Ubuntu Core ยังอยู่ในช่วง 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

ใช้ Knife จัดการ vm ใน Azure

Knife มีส่วนเสริมในการจัดการ virtual machine บน Microsoft Azure ด้วยคือ knife-azure สามารถจัดการ life cycle ของ virtual machine ได้ สั่ง knife bootstap เพื่อลงทะเบียนกับ Chef Server ได้เลย มาลองใช้งานกัน

ติดตั้ง Knife Azure โดยใช้ ChefDK

chef gem install knife-azure

ดาวน์โหลด subscription file เพื่อใช้งานร่วมกับ knife azure plugin จากนั้นแก้ไข knife.rb เพิ่ม config เข้าไปดังนี้

Continue reading

ใช้งาน Docker บน Azure

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

มาเล่น CoreOS บน Azure กัน

แถลงข่าวกันมาหลายเดือนตอนนี้ CoreOS มีให้บริการบน Azure แล้ว สำหรับท่านที่เป็นแฟน CoreOS และ Docker พลาดไม่ได้เลยกับบริการนี้บน Azure ซึ่งคุณไม่ต้องกังวลเรื่องติดตั้ง CoreOS บน Azure อีกต่อไป และที่สำคัญสามารถใช้งาน Docker ได้เลย ไม่ต้องเขียน Cloud Config ให้ยุ่งยากอีกต่อไป สามารถเรียกใช้ etcd และ fleet ได้เลย สำหรับการใช้งาน CoreOS ก็ง่ายมากๆ เข้าไปที่ Azure Gallery จากนั้นคลิกสั่ง deploy กันได้เลย ง่ายๆ แค่นี้

เลือก Create Virtual Machine จาก Gallery

Continue reading

มาใช้ Azure Cross Platform Command Line Interface

ผมใช้ Azure มาครบปีแล้วแต่ยังไม่เคย blog เรื่องการใช้งาน Azure ผ่าน command line สักที ในช่วงแรก Azure ออกเครื่องมือที่เรียกว่า azure-cli แต่ใช้งานได้ในบางระบบปฏิบัติการเท่านั้น ตอนนี้่ Azure หันมาใช้ Node.js ในการพัฒนาเครื่องมือ Command Line Interface ใหม่ชื่อ Azure Cross Platform Command Line Interface หรือ xplat-cli ทำให้การใช้งาน Azure บน Command Line ใช้ได้ในทุกระบบปฏิบัติการและใช้งานได้สะดวกมากขึ้น สำหรับการติดตั้ง xplat-cli ก็ง่ายมาก สามารถติดตั้งผ่าน Node Package Manager ได้เลย ดังนี้

npm install azure-cli -g

ง่ายมั๊ย :) จากนั้นก็สั่ง import account ของเราเข้ามาดังนี้

azure account download

azure-cli จะให้ url เรามา 1 อัน ให้ browse เข้าไป browser จะ download ไฟล์ .publishsettings มาให้ จากนั้นก็สั่ง import ดังนี้

azure account import my-account-file.publishsettings

ในกรณีที่เรามี Subscription หลายอัน ให้ดูว่าตอนนี้เราใช้ Subscription อะไรอยู่ก่อน เดี๋ยวจะตกใจว่ามี service ทำงานอยู่แต่สั่ง service list แล้วทำไมไม่เห็น

azure account list

หากต้องการเปลี่ยน Subscription ก็ตั้งค่าได้ดังนี้

azure account set

จากนั้นลองใช้คำสั่งกันได้เลย :)