Cloud-г хэрхэн амжилттай нэвтрүүлэх вэ?

Cloud computing гэдэг ойлголт бидний тархинд суугаад аль хэдэн арваад жилийг ардаа орхижээ. Гэтэл одоо хүртэл үүнийг хараахан ойлгоогүй, үр ашгийг нь мэдрээгүй, учраа олоогүй албан байгууллагууд цөөнгүй байна.

Та cloud яг юунд хэрэгтэй юм бэ гэж асууж магадгүй. Хамгийн товчхоноор хариулбал Англиар "flexibility" буюу уян хатан байдал гэж хэлэх болов уу.. Дэлгэрүүлбэл on-premises буюу танай байгууллагын серверийн өрөөнд байгаа компьютерүүд хангалтгүй, шинэ сервер нэмэх явц удаан, тэдгээрийг арчлах зардал өндөр гэх мэт асуудлаас ихэнх байгууллагууд cloud-г сонгож буй бол нөгөө талд шинээр гарч ирч буй жижиг компаниуд болон start-up компаниудад анхнаасаа тийм серверүүд байхгүй тул шууд cloud үйлчилгээг сонгох нь элбэг.
Энэ бол хамгийн наад захын хэрэгцээ бөгөөд цаашлаад cloud дээр суурилсан олон зуун үйлчилгээ бий болсон нь бизнес эрхлэгчдийн анхаарлыг татах бас нэг томоохон шалтгаан юм. Жишээлбэл бидний хамгийн сайн мэдэх үйлчилгээнүүд болох CDN, Caching, Object Storage, Managed Database гэх мэт үйлчилгээнүүд нь On-premises орчинд ажиллуулахад тун хүндрэлтэй сэдвүүд юм.

Ямар ч байсан cloud яагаад хэрэгтэйг, юунд ашиглагддагийг ойлгочихлоо. Харин cloud-г хэрхэн аюулгүй, үр дүнтэйгээр ашиглах, зардалаа бага байлгах зэрэг сэдвүүд хүн бүрийн толгойны өвчин болоод буй. Хэдэн товч дараад ажиллуулах амархан ч үүний ард олон урхи занги бий. Хамгийн түгээмэл тулгардаг асуудлуудаас дурдвал:
- Тэнгэрт тулсан төлбөр. Амарханыг нь гайхсан хүн бүрийн гаргадаг алдаа бол хэрэгцээгээ давсан олон сервер, үйлчилгээнд мөнгө зарцуулах.
- Гараар бүх юмаа удирдах. Cloud console буюу таны cloud дахь бүх үйлчилгээг нэгэн цэгт төвлөрүүлэн удирдах боломжийг олгох энэхүү үйлчилгээ нь зөвхөн туршилтын эхэн үед л хэрэглэвэл зохилтой. Гараар тохируулах нь алдаа гаргах магадлал ихтэй, олон тооны сервер нэг дор үүсгэх бол магадлал бүр ч ихсэхээс гадна цаг хугацаа ч алдана.
- Аюулгүй байдал. Cloud үйлчилгээний нэг давуу тал нь та ашиглаж буй үйлчилгээнийхээ бүх тохиргоог өөрөө тохируулах боломжтой. Гэвч аюулгүй байдал бол хүн бүрийн хийхийг хүсдэг зүйл биш тул admin эрхээрээ бүх зүйлийг хийж, серверийнхээ портуудыг интернэтээс шууд хандах боломжтойгоор үлдээх зэрэг нь хакердуулах №1 шалтгаан болно.

Тэгвэл энэ асуудлуудаас хэрхэн урьдчилан сэргийлж cloud-д амжилттай хөл тавих вэ? Үүн дээр өөрийн туршлагаас хуваалцахаар шийдлээ.


  1. Автоматжуулалт. Cloud үйлчилгээ олгогчдын нэгэн давуу тал нь бараг ихэнх нь API буюу програмын аргаар харилцах, автоматжуулах боломжтой. Үүн дээр суурилсан хамгийн гайхалтай бүтээгдэхүүн бол terraform юм. Terraform-н хамгийн сайн чаддаг зүйлс нь:
    - Infrastructure as Code буюу cloud дахь дэд бүтцээ бүгдийг текст буюу код хэлбэрээр хадгалах, удирдах боломжийг олгоно. Ингэснээр 100н сервер үүсгэхийн тулд 100 удаа товч дарснаас ядаж 100 удаа copy-paste, эсвэл хялбар loop бичих нь хавьгүй амар юм. Terraform-н хувьд өөрсдийн HashiCorp Configuration Language-ийг ашиглан кодоо бичиж cloud-тайгаа харьцах бөгөөд нэг иймэрхүү харагдана.
resource "digitalocean_droplet" "my_web" {
  image  = "ubuntu-18-04-x64"
  name   = "web-1"
  region = "nyc2"
  size   = "s-1vcpu-1gb"
}

4, 5хан мөр код бичээд cloud дээр сервертэй болчихлоо. Мэдээж үүн дээр нэмээд cloud provider-тайгаа хэрхэн холбогдох API Token зэргээ тохируулах шаардлагатай ч энэ кодыг бичээд нэг команд ажиллуулах нь cloud console-оор ороод энд тэнд товч дараад явахаас хурдан, найдвартай юм. Энэ боломжийг л Infrastructure as Code гэх бөгөөд бүх зүйлийг текст, код хэлбэрээр удирдах нь дээр дурдсан боломжуудаас гадна, ойлгоход хялбар цэгцтэй, арчилгаа бага шаардах, хаана юуг яаж тохируулсанаа мартахгүй байх зэрэг маш олон давуу талтай. Текст хэлбэрээр хадгалагдах учир хөгжүүлэгчдийн ашиглах дуртай git repository-руугаа энэхүү кодоо хадгалаад түүн дээрээ төрөл бүрийн автоматжуулалт нэмж ашиглах боломж ч нээлттэй.

2. Сүүлийн үед хамгийн хүчтэй яригдаж олны анхаарлын төвд буй сэдэв бол аюулгүй байдал. Cloud дээр ажиллууллаа гээд та өөрийн серверийн өрөөнд ажиллуулсанаас автоматаар илүү найдвартай болчихгүй. Гэхдээ найдвартай байдлыг хангах боломжуудыг хялбаршуулсан байдлаар ашиглах боломжийг олгоно. Жишээлбэл network firewall, load balancer, SSL certificate management, authentication, authorization гэх мэт эмзэг сэдвүүд бол cloud-г ашиглах хамгийн том давуу талууд юм. 1 товч дараад SSL certificate-тай болох, 1 товч дараад firewall-аа хүссэнээрээ удирдах, хэн аль серверлүү яаж хандах боломжтой зэрэг бүхий л зүйлээ хүссэнээрээ тохируулах шаардлагатай. Энэ олон зүйлсийг нөгөө л Terraform-н тусламжтайгаар хялбархан автоматжуулж болно.
3. Cloud хэрэглэгчдийн дунд байдаг хамгийн түгээмэл эндүүрэл бол cloud-г ашиглах нь дата төвд сервер ажиллуулахаас хямд байдаг гэх ойлголт юм. Энэ нь ихэнх тохиолдолд худал болохыг олон жилийн эцэст бид мэдлээ. Өндөр төлбөрт унагадаг хамгийн том хүчин зүйлс нь
- Хэрэглээндээ таараагүй том сервер үүсгэх
- Зөв үйлчилгээг ашиглахгүй байх. Жишээлбэл шууд S3 дээр сайт үүсгэх, урд нь CDN үйлчилгээ ашиглахгүй байх нь S3-н төлбөрийг тэнгэрт нисгэнэ.
- Region хоорондын интернэт урсгал буюу cross region traffic нь өндөр зардалтай. Жишээлбэл Америк болон Европ хоёрыг холбосон distributed system ашиглаж байгаа бол хоорондын интернэт урсгалыг аль болох багасгах хэрэгтэй. Үүнийг cloud хэрэглэгчдийн дийлэнх нь анзааралгүйгээр өндөр төлбөрт унадаг. 40$-ийн серверт 100$-ийн интернэт урсгалын төлбөр гарах нь ч бий.
- Managed үйлчилгээнүүдийг олноор хэрэглэх. Managed гэдэг нь cloud үйлчилгээ үзүүлэгч талаас хариуцсан үйлчилгээг хэлнэ. Жишээлбэл Managed RDS буюу бидний мэдэхээр SQL database-ийг cloud үйлчилгээ үзүүлэгч талаас түрээслэх юм. Энэ нь энгийн сервер түрээслэснээс 2-с 3 дахин үнэтэй байх нь бий.
- Hybrid cloud. Дээрх бүх аргыг хэрэглээд яаж ч үзээд барахгүй үед байгууллагууд дараагийн шат болох hybrid cloud-руу шилждэг. Саяхан Англид гарсан судалгаагаар (source: trust me bro) нийт cloud хэрэглэгч байгууллагуудын 56% нь hybrid cloud хэрэглэж эхэлсэн байна. Hybrid cloud гэдэг нь өөрсдийн дата төвийг cloud үйлчилгээ үзүүлэгч байгууллагатай хослуулан ашиглахыг хэлнэ. Энэ нь хэд хэдэн давуу талтай. Дурдвал:
 1. Зардал хэмнэх.
 2. Хуулийн хүрээнд cloud үйлчилгээг ашиглах боломжгүй үед өөрсдийн   серверийг ашиглахаас өөр аргагүй.
 3. Cloud-ийг зөвхөн хэрэгтэй үедээ ашиглах. Өөрсдийн дата төвөө ихэнх   үедээ ашиглах бөгөөд ачаалал ихэссэн үед cloud үйлчилгээг ашиглаад   хэрэггүй болсон үедээ ашиглахгүй байх нь хамгийн том боломжуудын   нэг.
 4. Өөрсдөө ажиллуулахад төвөгтэй үйлчилгээг ашиглах. Жишээ нь S3, CDN   зэрэг үйлчилгээг өөрсдийн дата төвд ажиллуулах нь тийм ч үр дүнтэй   биш болов уу.

Ирэх жилүүдэд хүчтэй орж ирэх трэнд бол edge computing буюу хэрэглэгчдэд ойр тооцоолох аргачлал юм. Hybrid cloud нь үүний нэгэн хэлбэр бөгөөд cloud үйлчилгээ үзүүлэгчдийн энд тэнд байршуулсан хэдхэн нүсэр дата төвүүд бус харин илүү төвлөрсөн бус дэлхийн хаана ч ашиглах боломжтой cloud үйлчилгээнүүд, тэр зүгрүү чиглэсэн програм хангамжууд сүүлийн үеийн трэнд болоод байна.

Дараагийн нийтлэлүүдээр Infrastructure as Code, Hybrid Cloud, Edge Computing зэрэг сэдвүүдээр илүү дэлгэрүүлэн ярилцацгаая.