การจัดการ และดูแล service ที่รันบน cloud สำหรับบางคนมีการใช้บริการมากกว่า 1 ที่ เช่น อาจจะใช้บริการกับ AWS สำหรับเว็บไซต์บริษัท และอาจใช้บริการของ Microsoft Azure ในทำเว็บให้ลูกค้า และในขณะเดียวกันอาจจะใช้บริการจาก Horizon HP Cloud สำหรับจัดการข้อมูล Big Data (ชีวิตมันจะซับซ้อนไปไหมนี่ ^^)
เหตุการณ์เหล่านี้มีโอกาสเป็นได้นะครับ เพราะฉะนั้นหากเราใช้งาน juju เพื่อเชื่อมต่อกับบริการที่ผมกล่าวมาข้างต้น แล้วจะสลับการทำงานบน environment เหล่านั้นอย่างไร
เรามาลองดูกันเลยแล้วกันนะครับ ว่าเราจะจัดการ environment ที่ถูกสร้างขึ้น เพื่อเชื่อมต่อกับผู้ให้บริการหลายๆ รายนี้อย่างไร
เริ่มต้นจากเราต้องรู้ก่อนว่าขณะนี้เรากำลังทำงานอยู่บน environment ใด ด้วยคำสั่ง
$ juju switch
ซึ่งจะแสดงให้เห็นว่าขณะนี้กำลัง active อยู่บน environment ใด
จากรูปด้านบนเห็นว่าขณะนี้กำลัง active อยู่บน environment ชื่อ local
หากเราต้องการสลับไปทำงานบน environment อื่น เราสามารถทำได้โดยรันคำสั่ง
$ juju switch <ชื่อ environment>
ตัวอย่างด้านล่าง ผมทดสอบสลับไปทำงานบน environment ชื่อ hpcloud
ถ้าลองตรวจสอบว่าขณะนี้อยู่ที่ environment ใดอีกครั้ง ก็จะพบว่า current environment ได้ถูกเปลี่ยนไปเรียบร้อยแล้ว จากคำสั่งด้านบน
ในการทำงานจริง ถ้าจะต้องใช้คำสั่ง switch ไปๆ มาๆ เพื่อทำงาน ชีวิตคงลำบากแน่ๆ วิธีการที่จะทำให้เราสามารถทำงานกับ environment นึง ขณะที่กำลัง active อยู่อีกอันนั้นทำได้โดยการใช้ option -e
แล้วตามด้วยชื่อ environment
ตัวอย่างด้านล่างจะทำการ deploy service บน environment ชื่อ local ขณะที่กำลัง active อยู่บน environment ชื่อ hpcloud ด้วยคำสั่ง
$ juju deploy mysql -e local
และหากต้องการตรวจสอบสถานะของ environment ที่ชื่อ local เราก็สามารถใช้คำสั่งลักษณะนี้ได้เช่นกัน
$ juju status -e local
ซึ่งการใส่ option -e
แล้วตามด้วยชื่อ environment จะทำให้เราสามารถจัดการ environment อื่นๆ ได้ง่ายขึ้นครับ
ปกติแล้ว juju จะทำงานกับ environment ที่กำหนดเป็นค่า default เป็นหลัก ซึ่งหากเราลองเข้าไปดูในไฟล์ environments.yaml จะพบว่ามีหัวข้อ default อยู่ ซึ่งจากตัวอย่างผมได้ระบุไว้เป็น hpcloud ตามรูปด้านล่าง
เราสามารถเปลี่ยน default ในส่วนนี้โดยการแก้ไขในไฟล์ environments.yaml ให้เป็น default environment ตามที่ต้องการ
อีกส่วนหนึ่งที่จะต้องทำความเข้าใจเกี่ยวกับการจัดการ environment นั้น คือการอ้างอิงกับเวอร์ชันของ juju และ default-series
โดยปกติแล้ว default-series จะขึ้นอยู่กับเวอร์ชันของ OS เช่น ถ้าเป็น Ubuntu 12.04 default-series ก็จะเป็น precise แต่ถ้าเป็น Ubuntu 14.04 default-series ก็จะเป็น trusty
เราสามารถตรวจสอบ default-series ของ juju ที่ใช้งานอยู่ได้ด้วยคำสั่ง
$ juju get-environment default-series
และถ้าต้องการกำหนด default-series ก็สามารถทำได้ ตัวอย่างจะทดลองกำหนด default-series เป็น trusty ด้วยคำสั่ง
$ juju set-environment default-series=trusty
แล้วใช้คำสั่งตรวจสอบ default-series อีกครั้ง จะได้ผลลัพธ์ตามรูปด้านล่าง
แต่หากต้องการล้างค่า หรือคืนที่กำหนดให้กับ default-series ในส่วนนี้ ทำได้โดยใช้คำสั่ง
$ juju unset-environment default-series
ซึ่งก็จะกลับมาสู่ค่าเริ่มต้นดังเดิมครับ
สุดท้ายหากเราต้องการให้อัปเกรดเวอร์ชันของ juju เป็นเวอร์ชัน เพื่อจะได้ไม่ต้องการกำหนด default-series เราสามารถทำได้โดยการใช้คำสั่ง
$ juju upgrade-juju