ຟັງຊັນຟັງຄ໌ກັບເຄື່ອງຈັກ Kubernetes

ປັບປຸງ Aug 2019.

ສາຍຄອມພີວເຕີ້ຂອງ Google ມີຫລາຍທາງເລືອກທີ່ດີ. ສອງເຕັກໂນໂລຢີທີ່ດີທີ່ສຸດໃນ GCP ແມ່ນ Kubernetes Engine ແລະຟັງຊັນຟັງ. ທັງສອງແມ່ນມີປະສິດທິພາບສູງແລະເປັນນັກພັດທະນາມັນງ່າຍຕໍ່ການຕັ້ງຄ່າຟັງຟັງຟັງ Fun Functions ເພາະມັນໃຊ້ເວລາວຽກບໍລິຫານຫຼາຍຢ່າງຈາກມືຂອງຂ້ອຍ. ວຽກງານບໍລິຫານນີ້, ເຖິງແມ່ນວ່າໄຟລ໌ yaml ປະກາດແມ່ນລັກສະນະ ສຳ ຄັນໃນການ ກຳ ນົດຄ່າ Kubernetes Engine.

ການສະແດງອອກໃນເບື້ອງຕົ້ນ ສຳ ລັບບົດຂຽນນີ້ແມ່ນນັກພັດທະນາພຽງແຕ່ຖາມຂ້ອຍວ່າ "ເຈົ້າຈະເລືອກ Kubernetes ໃນຟັງຟັງຟັງຟັງໄດ້ແນວໃດ?". ມັນແມ່ນ ຄຳ ຖາມທີ່ຂ້ອຍໄດ້ພິຈາລະນາຕົນເອງຫຼາຍນັບຕັ້ງແຕ່ເຮັດວຽກກັບທັງສອງຢ່າງນີ້, ແລະດັ່ງນັ້ນຂ້ອຍຄິດວ່າວິທີການທີ່ດີທີ່ສຸດໃນການຈັດການກັບມັນຄືການຕັ້ງຄ່າຟັງຊັນຟັງຊັນແລະອະທິບາຍຕົວຢ່າງທີ່ Kubernetes Engine ຈະເປັນທາງເລືອກທີ່ດີກວ່າ. ໃນຂະນະທີ່ຂ້ອຍບໍ່ໄດ້ເກັບລາຍຊື່ທຸກໆເຫດຜົນ, ນີ້ແມ່ນຫລາຍໆອັນດັບຕົ້ນໆທີ່ເລືອກເຂົ້າໃນການເລືອກ Kubernetes.

3 ພາສາແມ່ນຈະບໍ່ຕັດມັນ

ເມື່ອໃຊ້ຟັງຊັນຟັງຊັນໃນປັດຈຸບັນທ່ານມີສະພາບແວດລ້ອມການພັດທະນາພຽງສາມຢ່າງທີ່ຈະເລືອກແລະນັ້ນແມ່ນ Node.js, Python, ແລະ Go. ນີ້ແມ່ນເຕັກໂນໂລຢີທີ່ບໍ່ ໜ້າ ເຊື່ອແລະມັນມີພະລັງ.

ເຄື່ອງຈັກ Kubernetes ໃຫ້ສິດເສລີພາບແກ່ທ່ານເພາະວ່າຝັກທີ່ທ່ານ ກຳ ລັງສ້າງແມ່ນສະພາບແວດລ້ອມທີ່ໂດດດ່ຽວເຊິ່ງສາມາດໃຊ້ໄດ້ທຸກພາສາແລະເວລາແລ່ນ. ທ່ານອາດຈະເປັນຮ້ານຄ້າ. ສຸດທິແລະຕ້ອງການທີ່ຈະເພີ້ຝັນ C #. ຂ້າພະເຈົ້າໄດ້ສ້າງແນວຄວາມຄິດໃນການ ນຳ ໃຊ້ຫໍສະມຸດຂອງ Core Foundation ຈາກ Apple ໃນການບໍລິການ. ການບໍລິການນັ້ນຈະຕ້ອງຖືກຂຽນເປັນພາສາ Swift. ນີ້ແມ່ນພຽງບາງກໍລະນີທີ່ອາດຈະກ່ຽວຂ້ອງກັບການ ນຳ ໃຊ້ພາສາທີ່ແຕກຕ່າງກັນແລະຊຸດຂອງກອບ. ໃນອະນາຄົດ Cloud Functions ຈະສະ ໜັບ ສະ ໜູນ ເຕັກໂນໂລຢີເຫຼົ່ານີ້ໃຫ້ຫຼາຍຂື້ນ, ແຕ່ວ່າມັນຈະໃຊ້ເວລາບໍ່ເທົ່າໃດປີກ່ອນທີ່ມັນຈະຜະລິດຢູ່.

ຄວາມໄວ

ຄວາມໄວ, ແລະຂ້ອຍຫມາຍຄວາມວ່າໃນປັດຈຸບັນ, ບໍ່ແມ່ນໃນ 200 ms. ນີ້ແມ່ນຄວາມແຕກຕ່າງກັນຂັ້ນພື້ນຖານ. ມີບາງກໍລະນີເມື່ອທ່ານພຽງແຕ່ຕ້ອງການເອົາຂໍ້ມູນແລະກົດມັນຢູ່ບ່ອນໃດບ່ອນ ໜຶ່ງ. ຖ້າຟັງຊັນຟັງບໍ່ໄດ້ຖືກ ນຳ ໃຊ້ໃນບາງຄັ້ງຄາວທຸກໆກໍລະນີຂອງ ໜ້າ ທີ່ນັ້ນຈະຖືກປິດລົງ. ນີ້ແມ່ນສິ່ງທີ່ດີ, ທ່ານບໍ່ໄດ້ຈ່າຍຫຍັງຖ້າທ່ານບໍ່ໃຊ້ມັນ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ມັນອາດຈະມີບາງກໍລະນີທີ່ທ່ານບໍ່ຕ້ອງການລໍຖ້າເວລາເລີ່ມຕົ້ນທີ່ເຢັນ. ຖ້າວ່າມັນບໍ່ແມ່ນທາງເລືອກ, ຫຼັງຈາກນັ້ນ Kubernetes ຈະມີຫລັງ, ທ່ານເປັນກຸ່ມແລະທ່ານສາມາດມີຝັກຄູ່ທີ່ເຮັດວຽກ ສຳ ລັບການບໍລິການສະເພາະນັ້ນພ້ອມທີ່ຈະກະໂດດລົງໃນເວລາທີ່ຄວາມຕ້ອງການເກີດຂື້ນ.

ການປຸງແຕ່ງ ໜັກ ແລະວຽກ ໜັກ

ໜ້າ ທີ່ແມ່ນດີຫຼາຍ ສຳ ລັບການເຊື່ອມຕໍ່ການບໍລິການຕ່າງໆຮ່ວມກັນ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ພວກມັນບໍ່ມີຄວາມ ໝາຍ ສຳ ລັບວຽກທີ່ ໜັກ ຫລືຍາວນານ. ພວກມັນສັ້ນກ່ຽວກັບ CPU ແລະ Memory ຖ້າທຽບໃສ່ Compute, Kubernetes, ແລະ App Engine. ພວກເຂົາມີເວລາ ໝົດ ເວລາໄວກວ່າ 5 ນາທີເຊິ່ງ ໝາຍ ຄວາມວ່າວຽກງານຕ້ອງໄດ້ເຮັດຢ່າງໄວວາແລະທ່ານ ຈຳ ເປັນຕ້ອງກັບມາຈາກ ໜ້າ ທີ່ຢ່າງໄວວາ.

ຍິ່ງໄປກວ່ານັ້ນ, ມັນບໍ່ໄດ້ຈັດການກັບພາລະ ໜັກ. ຖ້າທ່ານ ກຳ ລັງຈະເຮັດການປະມວນຜົນພາບຫລືການວິເຄາະຂໍ້ມູນໃຫຍ່ໆກ່ຽວກັບຟັງຟັງທ່ານກໍ່ຈະມີບັນຫາ. ດ້ວຍ Kubernetes Engine ທ່ານມີຄວາມສາມາດໃນການປັບຂະ ໜາດ ຝັກໂດຍອີງໃສ່ຕົວ ກຳ ນົດຕ່າງໆເຊັ່ນ: CPU ສູງ, ໜ່ວຍ ຄວາມ ຈຳ ແລະອື່ນໆ.

Madness Invocation

ທ່ານ ກຳ ລັງໃຊ້ງານຫຼາຍປານໃດເທື່ອ? ມັນແມ່ນ ໜຶ່ງ ຮ້ອຍຫລື ໜຶ່ງ ແສນເທື່ອຕໍ່ມື້ບໍ? ມັນຈະແຕກຕ່າງກັນຖ້າຟັງຊັ່ນຟັງຂອງທ່ານ ກຳ ລັງອີງໃສ່ຜົນກະທົບຕໍ່ຖານຂໍ້ມູນຂອງຖານຂໍ້ມູນ, ໃນຈຸດນັ້ນມັນຄວນຈະມີຄ່າໃຊ້ຈ່າຍ ສຳ ລັບ Cloud Function. ເຖິງຢ່າງໃດກໍ່ຕາມ, ຖ້າທ່ານ ກຳ ລັງພະຍາຍາມສ້າງບໍລິການທີ່ ກຳ ລັງຈະເຮັດໃຫ້ອີເມວຖືກຕ້ອງຫຼືພຽງແຕ່ກິນຂໍ້ມູນ ຈຳ ນວນຫຼວງຫຼາຍແລ້ວມັນກໍ່ຄວນຈະພິຈາລະນາ Kubernetes. ກ່ອນອື່ນ ໝົດ, ທ່ານສາມາດມີຝັກ ຈຳ ນວນ ໜຶ່ງ ແລ່ນຢູ່ສະ ເໝີ ເພື່ອໃຫ້ທ່ານຫຼຸດຜ່ອນການໃຊ້ບໍລິການ. ຄັ້ງທີສອງ, ດ້ວຍຟັງຊັນຟັງຊັນສ່ວນ ໜຶ່ງ ຂອງລາຄາແມ່ນ ຈຳ ນວນຄັ້ງທີ່ ໜ້າ ທີ່ຖືກຮຽກຮ້ອງ. ດ້ວຍ Kubernetes ທ່ານສາມາດປັບຂະ ໜາດ ໄດ້ຫຼາຍຄັ້ງໃນຊ່ວງເວລາສູງສຸດກ່ວາການກັບຄືນມາ. ມັນບໍ່ ສຳ ຄັນຖ້າວ່າການບໍລິການຂອງທ່ານຖືກຮຽກຮ້ອງເປັນ ຈຳ ນວນຫລາຍສິບພັນເທື່ອ, ໃນຈຸດນີ້ທ່ານ ກຳ ລັງຈ່າຍເງີນ ສຳ ລັບ ຈຳ ນວນຂໍ້ແລະຝັກທີ່ທ່ານ ກຳ ລັງໃຊ້ເຊິ່ງຈະຊ່ວຍຫຼຸດຜ່ອນຄ່າໃຊ້ຈ່າຍທັງ ໝົດ ຂອງທ່ານ.

ການສື່ສານຈຸລິນຊີ

ສຸດທ້າຍ, ພວກເຮົາມີການສື່ສານກັບການບໍລິການ. ຟັງຊັນຟັງມີບາງຜົນກະທົບທີ່ມີປະສິດທິພາບແທ້ໆ ສຳ ລັບທັງ Firebase ແລະ GCP. ຍົກຕົວຢ່າງ, ທ່ານສາມາດຕັ້ງຄ່າ Cloud Pub / Sub trigger ຫລື trigger ອີກ ໜ້າ ທີ່ ໜຶ່ງ ໂດຍການອັບໂຫລດເອກະສານເຂົ້າໃນ Cloud Storage. ນອກຈາກນັ້ນ, ພວກເຮົາມີ HTTP triggers ເຊິ່ງເປັນປະໂຫຍດຕໍ່ການສ້າງເວັບໄຊຕ໌.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ຈະເປັນແນວໃດຖ້າວ່າທ່ານມີຫລາຍບໍລິການທີ່ບໍ່ ຈຳ ເປັນຕ້ອງເກີດ, ແຕ່ທ່ານພຽງແຕ່ຢາກໃຫ້ພວກເຂົາເວົ້າ ນຳ ກັນ? ໃນເວລານີ້ການເວົ້າແລະການສື່ສານລະຫວ່າງການບໍລິການບໍ່ແມ່ນວິທີການທີ່ມີປະສິດຕິພາບໃນເວລາທີ່ໃຊ້ຟັງຊັນຟັງຊັນ. ຄິດເຖິງຂັ້ນຕອນການ ນຳ ໃຊ້ພຽງຢ່າງດຽວ. ດ້ວຍຟັງຊັນຟັງຊັນນີ້ມັນເປັນເລື່ອງຫຍຸ້ງຍາກທີ່ທ່ານເລີ່ມການອັບເດດບໍລິການຫຼາຍໆຢ່າງໃນ Google Cloud. ໃນຂະນະດຽວກັນ, ກັບ Kubernetes ທ່ານພຽງແຕ່ອັບໂຫລດການຕັ້ງຄ່າຂອງທ່ານແລະ Kubernetes ກຳ ລັງຮັບປະກັນວ່າສະພາບແວດລ້ອມ ກຳ ລັງ ດຳ ເນີນງານຢ່າງ ເໝາະ ສົມ ສຳ ລັບທ່ານ. ແມ່ນແລ້ວມັນມີວຽກຫຼາຍກວ່າທີ່ຈະຕ້ອງໄດ້ສ້າງໄຟລ໌ yaml, ແຕ່ມັນງ່າຍດາຍທີ່ສຸດທີ່ຈະຮັກສາພື້ນຖານໂຄງລ່າງນັ້ນໃຫ້ສູງຂື້ນແລະເຮັດວຽກຢູ່.

ໃນທີ່ສຸດ, ມັນຂື້ນກັບສິ່ງທີ່ທ່ານ ກຳ ລັງສ້າງແລະຄວາມຕ້ອງການຂອງທ່ານແມ່ນຫຍັງ, ແຕ່ຖ້າທ່ານ ກຳ ລັງຄວາມຄິດໃນການເອີ້ນຜົນກະທົບຂອງຟັງຊັນ HTTP ຫຼາຍໆຄັ້ງໂດຍອີງໃສ່ການໂທ ໜຶ່ງ ເຂົ້າໃນຟັງຟັງຟັງຂອງທ່ານແລ້ວທ່ານຄວນກ້າວຕໍ່ໄປແລະຖາມຕົວເອງວ່າ Kubernetes ແມ່ນທາງເລືອກທີ່ດີກວ່າ ສຳ ລັບການສື່ສານ 90% ທີ່ ກຳ ລັງເກີດຂື້ນ.

ບັນຊີລາຍຊື່ນີ້ແມ່ນບໍ່ສົມບູນແບບແລະມັນກໍ່ເປີດສໍາລັບການຕີລາຄາຢ່າງແນ່ນອນ. ອີກເທື່ອ ໜຶ່ງ, ມັນຂື້ນກັບຄວາມຕ້ອງການຂອງທ່ານໃນການເປັນບໍລິສັດແລະອົງກອນ. Kubernetes ຍັງເຕີບໃຫຍ່ຢູ່ໃນຈັງຫວະທີ່ໄວແລະບໍ່ແມ່ນທຸກຄົນມີຜູ້ພັດທະນາ / ທີມຢູ່ໃນມືທີ່ສາມາດຈັດການໂຄງການ Kubernetes Engine ສຳ ລັບພວກເຂົາ. ໃນທາງກົງກັນຂ້າມ, ບາງທີທ່ານອາດຈະມີຫຼາຍບໍລິການ .NET Core ທີ່ທ່ານຕ້ອງການໃຊ້ແລະ Cloud Functions ພຽງແຕ່ຈະບໍ່ຕັດມັນເພາະທ່ານຕ້ອງການໃຊ້ Node.js, Python, ຫຼື Go. ມັນມີຄ່າສະ ເໝີ ທີ່ຈະກ້າວກັບໄປແລະຄິດກ່ຽວກັບເຕັກໂນໂລຢີທີ່ແຕກຕ່າງກັນໃນເວລາຫຼີ້ນແລະວິທີທີ່ພວກເຮົາສາມາດກະຕຸ້ນພວກມັນໃຫ້ມີຄຸນນະພາບສູງເທົ່າທີ່ເປັນໄປໄດ້.

James Wilson ແມ່ນນັກພັດທະນາອາຄານທີ່ແຈກຢາຍລະບົບໂດຍໃຊ້ Go ແລະ Google Cloud. ລາວຍັງເປັນຜູ້ຂຽນ Pluralsight ແລະທ່ານສາມາດເບິ່ງຫລັກສູດຂອງລາວຢູ່ນີ້.