Cloud Native 這個詞近年來非常熱門,CNCF 甚至也有針對這個詞給出了一個簡短的定義,然而對於每個使用者來說,要如何實踐這個定義則是百家爭鳴。我認為很認真地去探討到底什麼樣才算 Cloud Native 其實就跟很認真的探討什麼是 DevOps 一樣,就是一個沒有共識,沒有標準答案的問題。
本篇文章從 CNCF 的定義衍伸出 Cloud Native 帶來的優勢,並且針對這個領域介紹了十三種不同面向的科技樹,每個科技樹也都介紹了幾個常見的解決方案。
好處:
1. Speed
作者認為 Cloud Native 的應用程式要具有快速部署與快速開發的特性,擁有這些特性才有辦法更快地去根據市場需求而上線面對。眾多的雲端廠商都提供不同的解決方案讓部署應用程式愈來愈簡單,而 Cloud Native 相關的工具則是大量採用抽象化的方式去描述這類型的應用程式,讓需求可能更簡單與通用的部署到不同環境中。
2. Scalability and Availability
Cloud Native 的應用程式應該要可以無痛擴張來對面不論是面對一百個或是一百萬個客戶。底層所使用的資源應該都要根據當前的需求來動態配置,避免無謂的金錢成本浪費。此外自動化的 Failover 或是不同類型的部署策略(藍綠/金絲雀..等)也都可以整合到 Cloud native 的工具中。
3. Quality
Cloud Native 的應用程式建置時應該要保持不變性,這特性使得應用程式本身能夠提供良好的品質一致性。此外大部分的 Cloud Native 工具都是開放原始碼專案,這意味者使用時比較不會遇到 vendor lock-ins 的問題。
以下是作者列出來認為 Cloud Native 生態系中不可或缺的十三種面向,以及該面向中幾個知名專案。
相關領域
1. Microservices (Node.js/Kotlin,Golang)
2. CI/CD (Gitlab CICD/ Github Actions)
3. Container (Docker/Podmna/LXD)
4. Container Orchestration (Kubernetes/Google Cloud Run)
5. Infrasturcutre as Code (Terraform/Pulumi)
6. Secrets (Vault /Sealed Secrets)
7. Certificates (cert-manager/Google managerd certificates)
8. API Gateway (Ambassador/Kong)
9. Logging (EKF/Loki)
10. Monitoring (Prometheus/Grafana/Datadog)
11. Alerting (Prometheus Alertmanager/Grafana Alerts)
12. Tracing (Jaeger/Zipkin)
13. Service Mesh (Istio/Consul)
https://medium.com/quick-code/how-to-become-cloud-native-and-13-tools-to-get-you-there-861bcebb22bb
同時也有3部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,Quokka.js เป็น extension บน Visual Studio Code ที่ทำให้เราสามารถเขียนและทดลองโค้ด JavaScript ได้อย่างรวดเร็วและง่ายดาย โดย Quokka จะทำการ run โค้ดและแ...
「node.js run」的推薦目錄:
- 關於node.js run 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於node.js run 在 BorntoDev Facebook 的最佳解答
- 關於node.js run 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的精選貼文
- 關於node.js run 在 prasertcbs Youtube 的最佳解答
- 關於node.js run 在 prasertcbs Youtube 的最佳貼文
- 關於node.js run 在 prasertcbs Youtube 的精選貼文
- 關於node.js run 在 How to run a hello.js file in Node.js on windows? - Stack ... 的評價
- 關於node.js run 在 Module 2: Starting the Node Server - Ionic Framework Tutorial 的評價
- 關於node.js run 在 GitHub - coreybutler/node-windows 的評價
node.js run 在 BorntoDev Facebook 的最佳解答
🔥 หากใครกำลังหา Public Cloud เจ๋ง ๆ ที่ใช้ได้รวดเร็ว และ ปลอดภัย แล้วลูกค้าหลัก ๆ ของเราอยู่ในไทยแล้วหละก็ แอดขอแนะนำ PROEN Cloud ที่มาพร้อมฟีเจอร์เด็ดเพียบ
.
เรียกได้ว่า “ครบ จบ ตั้งแต่ Build -> Deploy -> Run ไปเลย !!” แถมใช้งานได้ตั้งแต่แอปพลิเคชันขนาดเล็ก จนถึง ขนาดใหญ่ได้ด้วยนะ !!
.
✨ “อยู่ ๆ ใช้งานแล้ว แอปเกิดปัง มี User เข้ามาใช้จำนวนมาก ก็จัดการได้กับระบบ Auto Scale เพิ่มสเปค Cloud ของเราอัตโนมัติ (กำหนดงบได้ด้วย เงินในกระเป๋าไม่รั่วแน่นอน !)”
.
“ใช้ไปเรื่อย ๆ เฮ้ย ! อยากใช้ Load Balance ก็ไม่ต้องจ้างทีม Engineer มาดู เพราะทำได้ภายในตัวแบบอัตโนมัติ !!”
.
🌎 “อยากทำงานระดับใหญ่ มีคนในทีมเพิ่มขึ้นก็จัดการง่าย กำหนดสิทธิ์การเข้าถึงได้มากกว่าที่เคย !”
.
👉 “และสุดท้ายย รองรับการใช้งานหลากหลายจัด ๆ ตั้งแต่ PHP, Java, Node.JS จนไปถึง .NET ก็ใช้ได้อะ เจ๋งไปเลยย”
.
เอาเป็นว่า ถ้าใครเป็นสายทำเว็บ ทำแอป แต่ไม่อยากปวดหัวนั่งเลือก Cloud ไม่อยากตั้งค่าอะไรให้วุ่นวาย หรือ ดูแลให้ปวดหัว แอดแนะนำเจ้านี้เลยย <3 ~
.
⭐ หากใครสนใจ มาทดลองใช้งานฟรีได้แล้วที่นี่เลยนะคร้าบบ >> https://www.proen.cloud/th/get-free-trials/
.
#PROENCloud #PublicCloud
node.js run 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的精選貼文
Functional programming ชื่อไทยคือ “การโปรแกรมเชิงฟังก์ชั่น” ชื่อย่อ FP เป็นแนวคิดหนึ่งของการเขียนโปรแกรม (programming paradigm) ชื่อขึ้นต้นด้วย functional แต่ไม่ได้มีดีแค่ประกาศ function ปุ๊บเสร็จ แล้วเรียกใช้ มันมีเบื้องลึกมากกว่านั้นแน่ๆ
🤔 มันจะต่างจากการเขียนโปรแกรมทีละสเตป ตามลำดับก่อนหลัง มีการวนลูป ที่เน้นแก้ state ของโปรแกรมเป็นหลัก
แต่แนวทาง functional programming จะไม่แก้ state ของโปรแกรมเลย ไม่มีการวนลูบ (ใช้ recursion แทน)
ซึ่งแนวคิดก็ต้องเน้นสร้างฟังก์ชั่นนั่นแหละ แต่หลักสำคัญต้องออกแบบให้หลีกเลี่ยง side-effect (ผลข้างเคียง) ที่จะเกิดต่อ function ตัวเอง และตัวอื่น โดยมีหลักยึด 2 อย่างใหญ่คือ
👉 1) function ที่สร้างขึ้นมา เมื่อมีอินพุตค่าเดิมส่งไปหา (เป็นค่าอากิวเมนต์) ไม่ว่าจะกี่ครั้งก็ตาม function จะรีเทิร์นค่าออกมาเหมือนเดิมทุกครั้ง ...(ไอเดียมาจากฟังก์ชั่นในทางคณิตศาสตร์เลยครับ)
เช่น
func(1); // เรียกครั้งที่ 1 ก็จะได้ค่ารีเทิร์นออกมาเป็น 30
func(1); // เรียกครั้งที่ 2 ก็จะได้ค่ารีเทิร์นออกมาเป็น 30 เหมือนเดิม
func(1); // เรียกครั้งที่ 3 ก็จะได้ค่ารีเทิร์นออกมาเป็น 30 เหมือนเดิม
👉 2) function ต้องไม่ไปเปลี่ยนแปลงค่าของตัวแปรจำพวก global variable หรือ static variable หรือตัวแปรที่อยู่ข้างนอก function ...เพื่อไม่ให้ function อื่นได้รับผลกระทบ
ถ้า function ที่เราประกาศไว้ มีคุณสมบัติ 2 อย่างที่ว่านี้ ก็จะเรียกว่า pure function (ฟังก์ชั่นบริสุทธ์แท้ๆ) 👌
สำหรับอีกคุณลักษณะหนึ่งที่จะไม่กล่าวถึงไม่ได้เลยก็คือ
👉 3) First-class function และ Higher-order function
คำว่า first-class function มาจาก "first class citizen" ที่หมายถึง "พลเมืองชั้นหนึ่ง" ดังนั้น first-class function จะหมายถึง ฟังก์ชั่นเป็นพลเมืองชั้นหนึ่งจริงๆ เลยนะ
คุณสมบัตินี้ function จะถูกมองเป็นข้อมูลประเภทหนึ่ง ไม่ต่างจากข้อมูลตัวเลข สตริง บูลีน ด้วยเหตุนี้จึงสามารถนำ function ไปกำหนดค่าให้กับตัวแปรยังได้เลย เช่น
x = function(){ .....}
ส่วนคุณสมบัติ Higher-order function:
คุณสมบัตินี้หมายถึง เราสามารถใช้ function ส่งไปเป็นค่าอากิวเมนต์แก่ function ตัวอื่น หรือ function จะรีเทิร์นออกมาจาก function ตัวอื่นออกมาก็ได้ด้วย เช่น
- ส่ง function_A เป็นค่าอากิวเมนต์ไปให้ function_X(function_A);
- จากนั้น function_X() ก็จะสร้าง function_Y แล้วรีเทิร์นมันออกมาได้
😜 ===ประโยชน์ functional programming===
🔥 เอาไปเขียนโปรแกรมโดยไม่มีการวนลูป เช่น ไม่ต้องมานั่งเขียน for … หรือ while… วนลูป เพื่อเข้าถึงข้อมูลโครงสร้างพวก array , list ฯลฯ เป็นต้น
🔥 การทำ currying หมายถึงทำให้ฟังก์ชั่น จากเดิมที่มี parameter หลายตัวให้เหลือแค่ตัวเดียว ด้วยการส่งผลลัพธ์เป็น function ที่รับ Parameter ที่เหลือ ...ใช้เทคนิค closure
🔥 หรือจะทำ function Composition (เอาฟังก์ชั่นมาประกอบกัน)
🔥 หรือจะเอาไปใช้เขียนโปรแกรมแบบ parallel computing (โปรแกรมคู่ขนาน)
🔥 หรือจะเขียนโปรแกรมแบบ asynchronous โดยที่โค้ดหลักไม่ต้องรอการประมวลผลฝั่ง I/O ให้แล้วเสร็จ โค้ดหลักสามารถข้ามไปยังบรรทัดถัดไปก่อนได้เลย
🔥 Testability — ผลพลอยได้ก็คือ เอาแนวคิดนี้ไปใช้ทำ test function ได้ง่าย โดยแต่ละการ test จะเป็นอิสระต่อกัน เมื่อใช้วิธีการเดิมในการทดสอบ 10 ครั้ง ก็ควรได้ผลเหมือนเดิม 10 ครั้ง เป็นต้น
++++ 🤔 ++++++
เมื่อเปรียบเทียบกับแนวคิด OOP (โปรแกรมเชิงวัตถุ object-oriented programming)
ถ้าโจทย์ปัญหาเป็น parallel computing หรือ asynchronous การใช้แนวคิด functional programming ดูแล้วคล่องแคล่วปราดเปรียวไม่ยุ่งยาก
เนื่องจากแนวคิด functional programming ไม่มีอะไรซับซ้อนมากนัก เขียนโปรแกรมก็จะกระชับ ง่าย...ง๊าย เมื่อเทียบกับ OOP ที่โค้ดจะเยอะกว่า เพราะมี class มากมาย ยิ่งถ้า inheritance โดยให้มีการสืบทอดสมาชิกหลายชั้น ก็จะสับสนตาลาย มึนงงได้ คงต้องพึ่ง IDE ให้เป็นพี่เลี้ยงช่วยแนะนำว่ามีสมาชิกอะไรที่สืบทอดมา
แต่จุดเด่นเรื่อง OOP จะมีความเป็น Modularity ที่สูง โค้ดที่เขียนเป็นอ็อบเจ็กต์แต่ละตัวจะเป็นอิสระต่อกัน เนื่องจากข้อมูลหรือ state ซึ่งอยู่ภายในตัวอ็อบเจ็กต์เอง จะมีเป็นของใครของมัน ขณะเดียวกันแต่ละอ็อบเจ็กต์จะปฏิสัมพันธ์กันได้ สามารถเอาอ็อบเจ็กต์ที่มีอยู่แล้วมา reuse ใช้ได้ง่าย รวมทั้งถอดเข้าถอดออกขณะโปรแกรม run time
แล้วแต่สถานการณ์ว่าจะใช้แนวทางเขียนโปรแกรมแบบไหน
แต่ก็ยอมรับว่าบางทีเขียนแบบ functional programming ก็ยากต่อการทำความเข้าใจ เพราะโค้ดมันสั้นกระชับเกิ๊น
ยิ่งหลายภาษาโปรแกรมมิ่งสมัยใหม่ในปัจจุบันนี้ มีการแทรกแนวคิด functional programming เข้ามา นอกเหนือจากแนวคิด OOP เช่น JavaScript, Python, Java, C#, Swift, Kotlin แต่ก็อาจประยุกต์แนวคิดนี้ได้ไม่ 100% มากนัก
จะไม่เหมือนบ้างภาษาเช่น Haskell ที่มาพร้อมกับ immutable data structure หมายถึงข้อมูลที่ไม่สามารถแก้ไขค่าได้เลย จึงทำให้ function กลายเป็น functional programming แท้ๆ (pure function)
✍ สรุป แนวคิดนี้ไม่ได้เรื่องใหม่มีมานานก่อนบางคน ...อุ้แว ...อุ้แวเกิดเสียอีก แต่ตอนโน่นแนวคิดนี้ยังไม่ดังเปรี้ยงเหมือน OOP คนที่เขียนภาษา JavaScript รวมไปถึง Node.js ย่อมใช้หลักการนี้อย่างไม่รู้ตัว ยิ่งภาษาสมัยใหม่หลายตัวก็ยอมรับแนวคิด functional programming เข้ามาในภาษาเรียบร้อยแล้ว ไม่มีนี้ถือว่าแปลกมาก
--------
เขียนโดย โปรแกรมเมอร์ไทย thai programmer
node.js run 在 prasertcbs Youtube 的最佳解答
Quokka.js เป็น extension บน Visual Studio Code ที่ทำให้เราสามารถเขียนและทดลองโค้ด JavaScript ได้อย่างรวดเร็วและง่ายดาย โดย Quokka จะทำการ run โค้ดและแสดงผลลัพธ์ที่ได้บน Editor ทันที โดยไม่ต้องเสียเวลาในการสั่ง run ทุกครั้งที่มีการแก้ไขโค้ด
2:02 การติดตั้ง Quokka.js https://marketplace.visualstudio.com/items?itemName=WallabyJs.quokka-vscode
2:43 การสร้าง Quokka JavaScript Scratchpad
6:10 การใช้ Quokka ให้ทำงานกับไฟล์ JavaScript ที่มีอยู่แล้ว
15:05 การหยุดการทำงานของ Quokka
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
สอน JavaScript ► https://www.youtube.com/playlist?list=PLoTScYm9O0GETDMIbgVad9fIrCEs_izbc
สอน Node.js ► https://www.youtube.com/playlist?list=PLoTScYm9O0GERtEdsPHK5Q-cdor5ADnyM
สอน Visual Studio Code ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEo8pnhJb-m-MGVGDvGb4bB
สอน Microsoft SQL Server 2012, 2014, 2016, 2017 ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
สอน PostgreSQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGi_NqmIu43B-PsxA0wtnyH
สอน MySQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
สอน SQLite ► https://www.youtube.com/playlist?list=PLoTScYm9O0GHjYJA4pfG38M5BcrWKf5s2
การเชื่อมต่อกับฐานข้อมูล (SQL Server, MySQL, SQLite) ด้วย Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
#prasertcbs_nodejs #prasertcbs #prasertcbs_javascript
node.js run 在 prasertcbs Youtube 的最佳貼文
เนื้อหา
2:05 การติดตั้ง code runner extension
2:45 การใช้ code runner ในการ run ไฟล์
3:00 การใช้ code runner ในการ run เฉพาะบรรทัดที่เลือก
4:44 การปรับแต่ง code runner
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
สอน JavaScript ► https://www.youtube.com/playlist?list=PLoTScYm9O0GETDMIbgVad9fIrCEs_izbc
สอน Node.js ► https://www.youtube.com/playlist?list=PLoTScYm9O0GERtEdsPHK5Q-cdor5ADnyM
สอน Visual Studio Code ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEo8pnhJb-m-MGVGDvGb4bB
สอน PostgreSQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGi_NqmIu43B-PsxA0wtnyH
สอน MySQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
สอน Microsoft SQL Server 2012, 2014, 2016, 2017 ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
สอน SQLite ► https://www.youtube.com/playlist?list=PLoTScYm9O0GHjYJA4pfG38M5BcrWKf5s2
สอน SQL สำหรับ Data Science ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGq8M6HO8xrpkaRhvEBsQhw
การเชื่อมต่อกับฐานข้อมูล (SQL Server, MySQL, SQLite) ด้วย Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
การใช้ Excel ในการทำงานร่วมกับกับฐานข้อมูล (SQL Server, MySQL, Access) ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGA2sSqNRSXlw0OYuCfDwYk
#prasertcbs_nodejs #prasertcbs #prasertcbs_javascript
node.js run 在 prasertcbs Youtube 的精選貼文
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
สอน Node.js ► https://www.youtube.com/playlist?list=PLoTScYm9O0GERtEdsPHK5Q-cdor5ADnyM
สอน PostgreSQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGi_NqmIu43B-PsxA0wtnyH
สอน MySQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
สอน Microsoft SQL Server 2012, 2014, 2016, 2017 ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
สอน SQLite ► https://www.youtube.com/playlist?list=PLoTScYm9O0GHjYJA4pfG38M5BcrWKf5s2
สอน SQL สำหรับ Data Science ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGq8M6HO8xrpkaRhvEBsQhw
การเชื่อมต่อกับฐานข้อมูล (SQL Server, MySQL, SQLite) ด้วย Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
การใช้ Excel ในการทำงานร่วมกับกับฐานข้อมูล (SQL Server, MySQL, Access) ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGA2sSqNRSXlw0OYuCfDwYk
#prasertcbs_nodejs #prasertcbs
node.js run 在 Module 2: Starting the Node Server - Ionic Framework Tutorial 的推薦與評價
In this module, you install and start a Node.js server that exposes the conference data (sessions and speakers) through a set of REST services. ... <看更多>
node.js run 在 GitHub - coreybutler/node-windows 的推薦與評價
Service Management: Run Node.js scripts as native Windows services. Includes monitoring. Event Logging: Create logs in the Event log. Commands: Elevated ... ... <看更多>
node.js run 在 How to run a hello.js file in Node.js on windows? - Stack ... 的推薦與評價
... <看更多>
相關內容