首先是從 Docker Hub(線上)提取 ESPHome Docker 映像。
docker pull esphome/esphome
然後,啟動 ESPHome 精靈。此精靈將詢問您的裝置類型、裝置名稱、WiFi 憑證,最後將產生一個包含所有配置的 yaml 檔案。
docker run --rm -v "${PWD}":/config -it esphome/esphome wizard stl.yaml
dmesg | grep ttyUSB
docker run --rm -v "${PWD}":/config --device=/dev/ttyUSB1 -it esphome/esphome run stl.yaml
python3 --version
pip3 install wheel esphome
pip3 install --user esphome
esphome wizard stl-python.yaml
esphome run stl-python.yaml
回到頂部
OpenWrt 專案是一個針對嵌入式裝置的 Linux 作業系統。 OpenWrt 並沒有嘗試建立單一靜態韌體,而是提供了一個具有套件管理功能的完全可寫入檔案系統。它主要用於嵌入式設備來路由網路流量。
訪問上面的鏈接,下載適合您的 Raspberry PI 的 OpenWrt 映像。
Raspberry Pi Imager 是一種將 Raspberry Pi 作業系統和其他作業系統安裝到 microSD 卡上的快速簡單方法,隨時可與 Raspberry Pi 一起使用。
Raspberry Pi Router Board for CM4 module(成本:55 美元)是一款基於Raspberry Pi Compute Module 4 的擴展板。低的CPU 使用率和更高的穩定性與USB網卡相比,可以長時間工作。它與 Raspberry Pi OS、Ubuntu Server 和其他 Raspberry Pi 系統相容。
適用於 CM4 模組的 Raspberry Pi 路由器板
技術規格:
回到頂部
看門狗定時器 (WDT) 是一種監視微控制器 (MCU) 程式以查看它們是否失控或已停止運作的計時器。
要啟用看門狗,您必須使用文字編輯器(例如 nano、vim、gedit 等)在/boot/config.txt中新增dtparam=watchdog=on來變更啟動參數。其能夠在以下位置啟動:啟動。另外,請確保重新啟動 Raspberry Pi 以使這些設定生效。
pi@raspberrypi:~ $ sudo apt install watchdog
pi@raspberrypi:~ $sudo systemctl enable watchdog
看門狗的設定檔可以在/etc/watchdog.conf中找到。
max-load-1 = 24
watchdog-device = /dev/watchdog
realtime = yes
priority = 1
啟動 WTD 服務:
pi@raspberrypi:~ $ sudo systemctl start watchdog
檢查看門狗狀態:
pi@raspberrypi:~ $ sudo systemctl status watchdog
停止服務:
pi@raspberrypi:~ $ sudo systemctl stop watchdog
回到頂部
來自 Pi-Shop US 的 Raspberry Pi 外殼
The Pi Hut 的 Raspberry Pi 外殼
X825 擴充板為最新的 Raspberry Pi 4 Model B 提供完整的儲存解決方案,它支援高達 4TB 2.5 吋 SATA 硬碟 (HDD) / 固態硬碟 (SSD)。
Sabrent M.2 SSD [NGFF] 轉 USB 3.0 / SATA III 2.5 吋鋁製外殼轉接器
三星 970 EVO 250GB - NVMe PCIe M.2 2280 固態硬碟
西部資料 1TB WD Blue SN550 NVMe 內建 SSD
三星 T5 便攜式 SSD
三星 SSD 860 EVO 250GB mSATA 內建 SSD
三星 850 EVO 120GB SSD mSATA
回到頂部
Grafana 是一個分析平台,可讓您查詢和視覺化數據,然後根據視覺化建立和共用儀表板。輕鬆視覺化來自多個來源(例如 Prometheus、Loki、Elasticsearch、InfluxDB、Postgres、Fluentd、Fluentbit、Logstash 等)的指標、日誌和追蹤。
Grafana 入門
格拉法納社區
Grafana 專業服務訓練 |格拉法納實驗室
Grafana Pro 培訓 AWS |格拉法納實驗室
Grafana 教程
Udemy 上的熱門 Grafana 課程
Grafana 線上培訓課程 |領英學習
Grafana 培訓課程 - NobleProg
設定 Grafana 以視覺化我們在 Coursera 上的指標課程
Grafana Cloud 是一個可組合的可觀察性平台,將指標、追蹤和日誌與 Grafana 整合。利用最好的開源可觀測性軟體(包括 Prometheus、Loki 和 Tempo),無需安裝、維護和擴展可觀測性堆疊的開銷。
Grafana 雲端整合。來源:Grafana
Grafana Enterprise 是一項服務,包含在自我管理環境中提供更好的可擴展性、協作、操作和治理的功能。
Grafana 企業堆疊。來源:Grafana
Grafana Tempo 是一個開源的大規模分散式目標追蹤後端。 Tempo 具有成本效益,僅需要物件儲存即可運行,並與 Grafana、Loki 和 Prometheus 深度整合。
Grafana MetricTank 是由 Grafana Labs 開發的 Graphite 多租用戶時間序列平台。 MetricTank 為大規模環境提供高可用性 (HA) 和高效的長期儲存、檢索和處理。
Grafana Tanka 是一個強大的 Kubernetes 叢集設定實用程序,由 Jsonnet 語言提供支援。
Grafana Loki 是一個受 Prometheus 啟發的水平可擴展、高可用 (HA)、多租戶日誌聚合系統。
Cortex 是一個允許使用者在一個地方從多個 Prometheus 伺服器查詢指標的項目,而不會因伺服器故障而導致 grpah 出現任何間隙。此外,Cortex 還允許您儲存 Prometheus 指標以進行長期容量規劃和效能分析。
Graphite 是一個開源監控系統。
回到頂部
cURL 是一個電腦軟體項目,提供用於使用各種網路協定(HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP LDAPS、MQTT、POP3、POP3S、RTMP)傳輸資料的程式庫和命令列工具、RTMPS、RTSP、SCP、SFTP、SMB、SMBS、SMTP 或 SMTPS)。 cURL 也用於汽車、電視、路由器、印表機、音訊設備、手機、平板電腦、機上盒、媒體播放器,並且是安裝量超過 100 億的數千種軟體應用程式的網路傳輸引擎。
cURL Fuzzer 是針對curl 專案的品質保證測試。
DoH 是用於 DoH (DNS-over-HTTPS) 名稱解析和查找的獨立應用程式。
Authelia 是一個開源的高可用性驗證伺服器,為 NGINX 後面執行的應用程式提供單一登入功能和雙重認證。
nginx(engine x) 是一個 HTTP 和反向代理伺服器、郵件代理伺服器和通用 TCP/UDP 代理伺服器,最初由 Igor Sysoev 編寫。
Proxmox Virtual Environment (VE) 是一個完整的企業虛擬化開源平台。它包含一個內建 Web 介面,您可以在單一解決方案上輕鬆管理虛擬機器和容器、軟體定義的儲存和網路、高可用性叢集以及多個開箱即用的工具。
Wireshark 是一種非常流行的網路協定分析儀,通常用於網路故障排除、分析和通訊協定開發。了解有關其他有用的 Wireshark 工具的更多資訊。
HTTPie 是命令列 HTTP 客戶端。其目標是使 CLI 與 Web 服務的互動盡可能人性化。 HTTPie 設計用於測試、偵錯以及與 API 和 HTTP 伺服器的一般互動。
HTTPStat 是一個以簡單佈局來視覺化curl 統計資料的工具。
Wuzz 是一個用於 HTTP 檢查的互動式 cli 工具。它可用於透過「複製為 cURL」功能檢查/修改從瀏覽器網路檢查器複製的請求。
Websocat 是 WebSocket 的命令列用戶端,類似於 ws:// 的 netcat(或curl),具有類似 socat 的進階功能。
• Connection: In networking, a connection refers to pieces of related information that are transferred through a network. This generally infers that a connection is built before the data transfer (by following the procedures laid out in a protocol) and then is deconstructed at the at the end of the data transfer.
• Packet: A packet is, generally speaking, the most basic unit that is transferred over a network. When communicating over a network, packets are the envelopes that carry your data (in pieces) from one end point to the other.
資料包具有標頭部分,其中包含有關資料包的信息,包括來源和目的地、時間戳記、網路躍點。資料包的主要部分包含正在傳輸的實際資料。它有時被稱為主體或有效負載。
• Network Interface: A network interface can refer to any kind of software interface to networking hardware. For instance, if you have two network cards in your computer, you can control and configure each network interface associated with them individually.
網路介面可以與實體設備相關聯,或者它可以是虛擬介面的表示。 「環回」設備是本機的虛擬接口,就是一個例子。
• LAN: LAN stands for "local area network". It refers to a network or a portion of a network that is not publicly accessible to the greater internet. A home or office network is an example of a LAN.
• WAN: WAN stands for "wide area network". It means a network that is much more extensive than a LAN. While WAN is the relevant term to use to describe large, dispersed networks in general, it is usually meant to mean the internet, as a whole.
如果介面連接到 WAN,則通常假定可以透過 Internet 存取該介面。
• Protocol: A protocol is a set of rules and standards that basically define a language that devices can use to communicate. There are a great number of protocols in use extensively in networking, and they are often implemented in different layers.
一些低階協定包括 TCP、UDP、IP 和 ICMP。基於這些較低層協定建構的一些熟悉的應用層協定範例包括 HTTP(用於存取 Web 內容)、SSH、TLS/SSL 和 FTP。
• Port: A port is an address on a single machine that can be tied to a specific piece of software. It is not a physical interface or location, but it allows your server to be able to communicate using more than one application.
• Firewall: A firewall is a program that decides whether traffic coming into a server or going out should be allowed. A firewall usually works by creating rules for which type of traffic is acceptable on which ports. Generally, firewalls block ports that are not used by a specific application on a server.
• NAT: Network address translation is a way to translate requests that are incoming into a routing server to the relevant devices or servers that it knows about in the LAN. This is usually implemented in physical LANs as a way to route requests through one IP address to the necessary backend servers.
• VPN: Virtual private network is a means of connecting separate LANs through the internet, while maintaining privacy. This is used as a means of connecting remote systems as if they were on a local network, often for security reasons.
While networking is often discussed in terms of topology in a horizontal way, between hosts, its implementation is layered in a vertical fashion throughout a computer or network. This means is that there are multiple technologies and protocols that are built on top of each other in order for communication to function more easily. Each successive, higher layer abstracts the raw data a little bit more, and makes it simpler to use for applications and users. It also allows you to leverage lower layers in new ways without having to invest the time and energy to develop the protocols and applications that handle those types of traffic.
As data is sent out of one machine, it begins at the top of the stack and filters downwards. At the lowest level, actual transmission to another machine takes place. At this point, the data travels back up through the layers of the other computer. Each layer has the ability to add its own "wrapper" around the data that it receives from the adjacent layer, which will help the layers that come after decide what to do with the data when it is passed off.
One method of talking about the different layers of network communication is the OSI model. OSI stands for Open Systems Interconnect.This model defines seven separate layers. The layers in this model are:
• Application: The application layer is the layer that the users and user-applications most often interact with. Network communication is discussed in terms of availability of resources, partners to communicate with, and data synchronization.
• Presentation: The presentation layer is responsible for mapping resources and creating context. It is used to translate lower level networking data into data that applications expect to see.
• Session: The session layer is a connection handler. It creates, maintains, and destroys connections between nodes in a persistent way.
• Transport: The transport layer is responsible for handing the layers above it a reliable connection. In this context, reliable refers to the ability to verify that a piece of data was received intact at the other end of the connection. This layer can resend information that has been dropped or corrupted and can acknowledge the receipt of data to remote computers.
• Network: The network layer is used to route data between different nodes on the network. It uses addresses to be able to tell which computer to send information to. This layer can also break apart larger messages into smaller chunks to be reassembled on the opposite end.
• Data Link: This layer is implemented as a method of establishing and maintaining reliable links between different nodes or devices on a network using existing physical connections.
• Physical: The physical layer is responsible for handling the actual physical devices that are used to make a connection. This layer involves the bare software that manages physical connections as well as the hardware itself (like Ethernet).
TCP/IP 模型通常稱為 Internet 協定套件,是另一個更簡單且已被廣泛採用的分層模型。
• Application: In this model, the application layer is responsible for creating and transmitting user data between applications. The applications can be on remote systems, and should appear to operate as if locally to the end user.
通訊發生在對等網路之間。
• Transport: The transport layer is responsible for communication between processes. This level of networking utilizes ports to address different services. It can build up unreliable or reliable connections depending on the type of protocol used.
• Internet: The internet layer is used to transport data from node to node in a network. This layer is aware of the endpoints of the connections, but does not worry about the actual connection needed to get from one place to another. IP addresses are defined in this layer as a way of reaching remote systems in an addressable manner.
• Link: The link layer implements the actual topology of the local network that allows the internet layer to present an addressable interface. It establishes connections between neighboring nodes to send data.
介面是電腦的網路通訊點。每個介面都與實體或虛擬網路設備關聯。通常,您的伺服器將為您擁有的每個乙太網路或無線網路卡配備一個可設定的網路介面。此外,它將定義一個稱為「環回」或本機主機介面的虛擬網路介面。它用作將單一電腦上的應用程式和進程連接到其他應用程式和進程的介面。您可以在許多工具中看到它被稱為“lo”介面。
網路的工作原理是搭載許多不同的協定。透過這種方式,可以使用相互封裝的多個協定來傳輸一份資料。
媒體存取控制(MAC)是一種用於區分特定設備的通訊協定。每個設備在製造過程中都應該獲得一個唯一的 MAC 位址,以區別於互聯網上的所有其他設備。透過 MAC 位址對硬體進行尋址可讓您透過唯一值引用設備,即使頂部的軟體可能在操作期間變更該特定設備的名稱。媒體存取控制是您可能定期與之互動的唯一的連結層協定之一。
IP 協定是網際網路運作的基本協定之一。 IP 位址在每個網路上都是唯一的,它們允許電腦透過網路相互尋址。它在IP/TCP模型中的互聯網層上實現。網路可以連結在一起,但跨越網路邊界時必須路由流量。該協定假設一個不可靠的網路和通往同一目的地的多條路徑,並且可以在這些路徑之間動態變更。該協定有多種不同的實作方式。當今最常見的實作是 IPv4,儘管由於可用 IPv4 位址的稀缺和協定功能的改進,IPv6 作為替代方案越來越受歡迎。
ICMP:網際網路控制訊息協議,用於在設備之間發送訊息以指示可用性或錯誤情況。這些資料包用於各種網路診斷工具,例如 ping 和 Traceroute。通常,當不同類型的資料包遇到某種問題時,就會傳輸 ICMP 資料包。基本上,它們用作網路通訊的反饋機制。
TCP:傳輸控制協定在IP/TCP模型的傳輸層實現,用於建立可靠的連線。 TCP 是將資料封裝成資料包的協定之一。然後,它使用較低層上可用的方法將這些傳輸到連接的遠端。另一方面,它可以檢查錯誤,要求重新傳送某些片段,並將訊息重新組裝成一個邏輯片段以傳送到應用層。該協定在資料傳輸之前使用稱為三向握手的系統建立連線。這是通訊兩端確認請求並就確保資料可靠性的方法達成一致的一種方式。發送資料後,使用類似的四次握手斷開連接。 TCP 是許多最受歡迎的網際網路用途的首選協議,包括 WWW、FTP、SSH 和電子郵件。可以肯定地說,如果沒有 TCP,我們今天所知的網路就不會存在。
UDP:用戶資料報協議是 TCP 的流行配套協議,也在傳輸層實現。 UDP 和 TCP 之間的根本區別在於 UDP 提供不可靠的資料傳輸。它不驗證連接另一端是否已收到資料。這聽起來可能是一件壞事,但從很多方面來說,確實如此。然而,它對於某些功能也極為重要。不需要等待確認數據已收到並強制重新發送數據,UDP 比 TCP 快得多。它不會與遠端主機建立連接,它只是向該主機發送數據,並不關心它是否被接受。由於 UDP 是一種簡單的事務,因此它對於查詢網路資源等簡單通訊很有用。它也不維護狀態,這使得它非常適合將資料從一台機器傳輸到許多即時客戶端。這使其成為 VOIP、遊戲和其他無法承受延遲的應用程式的理想選擇。
HTTP:超文本傳輸協定是在應用層定義的協議,構成網路通訊的基礎。 HTTP 定義了許多函數來告訴遠端系統您正在請求什麼。例如,GET、POST 和 DELETE 都以不同的方式與請求的資料進行互動。
FTP:檔案傳輸協定位於應用層,提供了一種將完整檔案從一台主機傳輸到另一台主機的方法。它本質上是不安全的,因此不建議將其用於任何面向外部的網絡,除非它是作為公共、僅供下載的資源實現的。
DNS:網域名稱系統是一種應用層協議,用於為網路資源提供人性化的命名機制。它將網域名稱與 IP 位址連結起來,並允許您在瀏覽器中按名稱存取網站。
SSH:Secure shell是一種在應用程式層實現的加密協議,可用於以安全的方式與遠端伺服器進行通訊。由於該協議的端對端加密和普遍性,許多其他技術都是圍繞該協議構建的。還有許多其他同樣重要的協議我們尚未介紹。然而,這應該能讓您對一些使互聯網和網路成為可能的基本技術有一個很好的概述。
REST(REpresentational State Transfer)是一種架構風格,用於在網路上的電腦系統之間提供標準,使系統更容易相互通訊。
JSON Web Token (JWT) 是一種緊湊的 URL 安全方式,用於表示要在兩方之間傳輸的聲明。 JWT 中的聲明被編碼為 JSON 對象,並使用 JSON Web 簽章 (JWS) 進行數位簽章。
OAuth 2.0 是一個開源授權框架,使應用程式能夠獲得對 HTTP 服務上的使用者帳戶的有限存取權限,例如 Amazon、Google、Facebook、Microsoft、Twitter、GitHub 和 DigitalOcean。它的工作原理是將用戶身份驗證委託給託管用戶帳戶的服務,並授權第三方應用程式存取用戶帳戶。
回到頂部
容器架構。來源:Containerd.io
Docker 培訓計劃
Docker 認證助理 (DCA) 認證
Docker 文件 | Docker 文件
Docker 研討會
Udemy 上的 Docker 課程
Coursera 上的 Docker 課程
edX 上的 Docker 課程
Linkedin 學習上的 Docker 課程
Docker 是一個用於開發、發布和運行應用程式的開放平台。 Docker 可讓您將應用程式與基礎架構分離,以便您可以與雲端、Linux 和 Windows 供應商(包括 Microsoft)協作快速交付軟體。
Docker Enterprise 是一項訂閱,其中包括適用於CentOS、Red Hat Enterprise Linux (RHEL)、Ubuntu、SUSE Linux Enterprise Server (SLES)、Oracle Linux 和Windows Server 2016 以及雲端供應商AWS 和AWS 的軟體、支援和認證的容器平台。 2019 年 11 月,Docker 的企業平台業務被 Mirantis 收購。
Docker Desktop 是一款適用於 MacOS 和 Windows 電腦的應用程序,用於建立和共享容器化應用程式和微服務。 Docker Desktop 提供了在桌面上設計和交付容器化應用程式所需的速度、選擇和安全性。 Docker Desktop 包括 Docker 應用程式、開發人員工具、Kubernetes 以及與生產 Docker 引擎的版本同步。
Docker Hub 是世界上最大的容器映像庫和社區,瀏覽來自軟體供應商、開源專案和社區的超過 100,000 個容器映像。
Docker Compose 是一款旨在幫助定義和共享多容器應用程式的工具。使用 Docker Compose,您可以建立一個 YAML 檔案來定義服務,並使用單一命令即可啟動或拆除所有內容。
Docker Swarm 是一個 Docker 原生叢集系統 swarm 是一個簡單的工具,它控制 Docker 主機叢集並將其公開為單一「虛擬」主機。
Dockerfile 是一個文字文檔,其中包含使用者可以在命令列上呼叫來組裝映像的所有命令。使用 docker build 使用者可以建立一個連續執行多個命令列指令的自動化建置。
Docker 容器是一種標準軟體單元,用於打包程式碼及其所有依賴項,以便應用程式能夠快速可靠地從一個計算環境運行到另一個計算環境。
Docker Engine 是一個容器執行時,可在各種 Linux(CentOS、Debian、Fedora、Oracle Linux、RHEL、SUSE 和 Ubuntu)和 Windows Server 作業系統上運作。 Docker 創建了簡單的工具和通用打包方法,將所有應用程式依賴項捆綁在容器內,然後在 Docker 引擎上運行。
Docker Images 是一個輕量級、獨立的、可執行的軟體包,其中包括運行應用程式所需的一切:程式碼、運行時、系統工具、系統庫和設定。映像具有中間層,可提高可重複使用性、減少磁碟使用量,並透過允許快取每個步驟來加速 docker 建置。預設情況下不顯示這些中間層。 SIZE 是影像及其所有父影像所佔用的累積空間。
Docker Network 是一個顯示一個或多個網路的詳細資訊的網路。
Docker Daemon 是由系統實用程式啟動的服務,而不是由使用者手動啟動。這使得機器重新啟動時自動啟動 Docker 變得更加容易。啟動 Docker 的命令取決於您的作業系統。目前,它僅在 Linux 上運行,因為它依賴許多 Linux 核心功能,但也有幾種方法可以透過配置作業系統實用程式在 MacOS 和 Windows 上運行 Docker。
Docker Storage 是一個驅動程序,控制如何在 Docker 主機上儲存和管理映像和容器。
Kitematic 是一個簡單的應用程序,用於在 Mac、Linux 和 Windows 上管理 Docker 容器,讓您可以透過圖形使用者介面 (GUI) 控制應用程式容器。
開放容器計畫是一個開放的治理結構,其明確目的是圍繞容器格式和運行時創建開放的行業標準。
Buildah 是一個用於建立開放容器計劃 (OCI) 映像的命令列工具。它可以與 Docker、Podman、Kubernetes 一起使用。
Podman 是一款無守護程式、開源 Linux 本機工具,旨在使用開放容器倡議 (OCI) 容器和容器映像輕鬆找到、運行、建置、共用和部署應用程式。 Podman 提供了任何使用過 Docker 容器引擎的人都熟悉的命令列介面 (CLI)。
Containerd 是一個守護進程,用於管理其主機系統的整個容器生命週期,從映像傳輸和儲存到容器執行和監督,再到低階儲存到網路附件等等。它適用於 Linux 和 Windows。
回到頂部
Kubernetes (K8s) 是一個開源系統,用於自動化容器化應用程式的部署、擴展和管理。
獲得 Kubernetes 認證
AWS 上的 Kubernetes 入門
微軟 Azure 上的 Kubernetes
Azure Kubernetes 服務簡介
Azure 紅帽 OpenShift
開始使用 Google Cloud
Red Hat 上的 Kubernetes 入門
IBM 上的 Kubernetes 入門
IBM Cloud 上的紅帽 OpenShift
在 Red Hat OpenShift 上啟用 OpenShift 虛擬化
Kubernetes 中的 YAML 基礎知識
Kubernetes 上的彈性雲
Docker 和 Kubernetes
在 Kubernetes 上運行 Apache Spark
跨 VMware vRealize Automation 的 Kubernetes
VMware Tanzu Kubernetes 網格
VMware Tanzu 與 AWS 合作的所有方式
VMware Tanzu 教育
在雲端原生 Kubernetes 環境中使用 Ansible
使用 Ansible 管理 Kubernetes (K8s) 對象
使用 Vagrant 和 Ansible 設定 Kubernetes 集群
使用 Kubernetes 運行 MongoDB
Kubernetes Fluentd
了解新的 GitLab Kubernetes 代理
Visual Studio 2019 的 Kubernetes 本機流程簡介
Kubernetes 貢獻者
VMware 的 KubeAcademy
來自 Pulumi 的 Kubernetes 教程
Katacoda 的 Kubernetes 遊樂場
Udacity 的可擴展微服務與 Kubernetes 課程
開放容器計畫是一個開放的治理結構,其明確目的是圍繞容器格式和運行時創建開放的行業標準。
Buildah 是一個用於建立開放容器計劃 (OCI) 映像的命令列工具。它可以與 Docker、Podman、Kubernetes 一起使用。
Podman 是一款無守護程式、開源 Linux 本機工具,旨在使用開放容器倡議 (OCI) 容器和容器映像輕鬆找到、運行、建置、共用和部署應用程式。 Podman 提供了任何使用過 Docker 容器引擎的人都熟悉的命令列介面 (CLI)。
Containerd 是一個守護進程,用於管理其主機系統的整個容器生命週期,從映像傳輸和儲存到容器執行和監督,再到低階儲存到網路附件等等。它適用於 Linux 和 Windows。
Google Kubernetes Engine (GKE) 是一個用於運行容器化應用程式的託管、生產就緒環境。
Azure Kubernetes 服務 (AKS) 是無伺服器 Kubernetes,具有整合的持續整合和持續交付 (CI/CD) 體驗以及企業級安全性和治理。將您的開發和營運團隊聯合在一個平台上,充滿信心地快速建立、交付和擴展應用程式。
Amazon EKS 是一種跨多個可用區執行 Kubernetes 控制平面執行個體以確保高可用性的工具。
AWS Controllers for Kubernetes (ACK) 是一款新工具,可讓您直接從 Kubernetes 管理 AWS 服務。 ACK 讓您可以輕鬆建立利用 AWS 服務的可擴充且高度可用的 Kubernetes 應用程式。
Container Engine for Kubernetes (OKE) 是一種 Oracle 管理的容器編排服務,可減少建置現代雲端原生應用程式的時間和成本。與大多數其他供應商不同,Oracle 雲端基礎設施為 Kubernetes 提供容器引擎作為免費服務,在效能更高、成本更低的運算上運作。
Anthos 是一個現代應用程式管理平台,可為雲端和本地環境提供一致的開發和操作體驗。
紅帽 Openshift 是一個完全託管的 Kubernetes 平台,為本地、混合和多雲部署提供基礎。
OKD 是 Kubernetes 的社群發行版,針對持續應用程式開發和多租用戶部署進行了最佳化。 OKD 在 Kubernetes 之上添加了以開發人員和營運為中心的工具,以便為小型和大型團隊提供快速應用程式開發、輕鬆部署和擴展以及長期生命週期維護。
Odo 是一款快速、迭代且簡單的 CLI 工具,適合在 Kubernetes 和 OpenShift 上編寫、建置和部署應用程式的開發人員。
Kata Operator 是一個在 Openshift 以及 Kubernetes 叢集上執行 Kata Runtime 生命週期管理(安裝/升級/卸載)的操作器。
Thanos 是一組元件,可組成一個具有無限儲存容量的高度可用的度量系統,可無縫添加到現有的 Prometheus 部署之上。
OpenShift Hive 是一個在 Kubernetes/OpenShift 之上作為服務運作的操作器。 Hive 服務可用於設定和執行 OpenShift 4 叢集的初始設定。
Rook 是一種將分散式儲存系統轉變為自我管理、自我擴展、自我修復的儲存服務的工具。它可以自動執行儲存管理員的任務:部署、引導、配置、供應、擴展、升級、遷移、災難復原、監控和資源管理。
VMware Tanzu 是一個集中管理平台,可在多個團隊和私人/公有雲中持續運作和保護 Kubernetes 基礎架構和現代應用程式。
Kubespray 是一個結合 Kubernetes 和 Ansible 的工具,可以輕鬆安裝 Kubernetes 叢集,可部署在 AWS、GCE、Azure、OpenStack、vSphere、Packet(裸機)、Oracle Cloud Infrastructure(實驗性)或 Baremetal 上。
KubeInit 提供了 Ansible 劇本和角色,用於部署和設定多個 Kubernetes 發行版。
Rancher 是一個為採用容器的團隊提供的完整軟體堆疊。它解決了管理多個 Kubernetes 叢集的操作和安全挑戰,同時為 DevOps 團隊提供了運行容器化工作負載的整合工具。
K3s 是一個高度可用、經過認證的 Kubernetes 發行版,專為無人值守、資源受限、遠端位置或物聯網設備內部的生產工作負載而設計。
Helm 是一個 Kubernetes 套件管理器工具,可以更輕鬆地安裝和管理 Kubernetes 應用程式。
Knative 是一個基於 Kubernetes 的平台,用於建置、部署和管理現代無伺服器工作負載。 Knative 負責網路、自動縮放(甚至為零)和修訂追蹤的操作開銷細節。
KubeFlow 是一款致力於讓 Kubernetes 上的機器學習 (ML) 工作流程部署變得簡單、可移植且可擴展的工具。
Etcd 是一種分散式鍵值存儲,它提供了一種可靠的方式來儲存需要由分散式系統或機器叢集存取的資料。 Etcd 用作服務發現的後端,並儲存 Kubernetes 的叢集狀態和配置。
OpenEBS 是一個基於 Kubernetes 的工具,用於使用容器附加儲存來建立有狀態應用程式。
容器儲存介面 (CSI) 是一種 API,可讓 Kubernetes 等容器編排平台透過插件與儲存的資料無縫通訊。
MicroK8s 是一款提供完整 Kubernetes 體驗的工具。在完全容器化的部署中,透過壓縮的無線更新實現超可靠的操作。它在 Linux、Windows 和 MacOS 上受支援。
Charmed Kubernetes 是一個整合良好、交鑰匙、一致的 Kubernetes 平台,針對 Canonical 開發的多雲環境進行了最佳化。
Grafana Kubernetes 應用程式是一個收費工具,可讓您監控 Kubernetes 叢集的效能。它包括 4 個儀表板:叢集、節點、Pod/容器和部署。它允許自動部署所需的 Prometheus 導出器和預設的抓取配置,以與叢集中的 Prometheus 部署一起使用。
KubeEdge 是一個開源系統,用於將本機容器化應用程式編排功能擴展到 Edge 主機。雲端與邊緣之間的部署和元資料同步。
對於每天需要處理 Kubernetes 叢集的人來說,Lens 是最強大的 IDE。它支援 MacOS、Windows 和 Linux 作業系統。
Flux CD 是一個工具,可自動確保 Kubernetes 叢集的狀態與您在 Git 中提供的設定相符。它使用叢集中的操作員來觸發 Kubernetes 內部的部署,這意味著您不需要單獨的持續交付工具。
Platform9 Managed Kubernetes (PMK) 是一種 Kubernetes 即服務,可確保在任何環境(無論是資料中心、公有雲或邊緣)上實現完全自動化的 Day-2 操作,並提供 99.9% 的 SLA。
回到頂部
Jeff Geerling 的 Mac 開發 Ansible 手冊
Ansible 是一個簡單的 IT 自動化引擎,可自動執行雲端配置、設定管理、應用程式部署、服務內編排和許多其他 IT 需求。它使用一種非常簡單的語言(YAML,以 Ansible Playbook 的形式),讓您以接近簡單英語的方式描述您的自動化作業。 Anisble 可在 Linux(Red Hat Enterprise Linux(RHEL) 和 Ubuntu)和 Microsoft Windows 上運作。
紅帽 Ansible 培訓
Udemy 的熱門 Ansible 線上課程
Ansible 簡介:Coursera 上的基礎知識
在 Pluralsight 上學習 Ansible 基礎知識
紅帽 Ansible 自動化平台 2.1 簡介
Ansible 文檔
Ansible Galaxy 使用者指南
Ansible 用例
Ansible 集成
Ansible 集合概述
使用劇本
Jeff Geerling 的 Ansible for DevOps 範例
入門:編寫您的第一本劇本 - Ansible
在 Ansible 中使用模組
Ansible 最佳實務:角色與模組
使用 Ansible 命令列工具
使用 Ansible Vault 加密內容
在 Playbook 中與 Ansible 一起使用 Vault
將 Ansible 與 Azure 結合使用
在 Azure VM 上設定 Ansible
如何使用 Ansible:來自 DigitalOcean 的 Ansible 備忘錄指南
Linode 上的 Ansible 簡介 |空間實驗室
Ansible Automation Hub 是發現和下載支援的集合的官方位置,作為 Ansible 自動化平台訂閱的一部分。這些內容集合包含可下載包中的模組、外掛程式、角色和劇本。
集合是 Ansible 內容的分發格式,可以包括劇本、角色、模組和外掛程式。當模組從核心 Ansible 儲存庫移至集合時,模組文件將移至集合頁面。
Ansible Lint 是一個命令列工具,用於針對任何 Ansible 使用者檢查劇本、角色和集合。其主要目標是推廣經過驗證的實踐、模式和行為,同時避免容易導致錯誤或使程式碼難以維護的常見陷阱。
Ansible cmdb 是一個工具,它會取得 Ansible 事實收集的輸出並將其轉換為包含系統設定資訊的靜態 HTML 概述頁面。
Ansible Inventory Grapher 直觀地顯示清單繼承層次結構以及在清單中定義變數的層級。
Ansible Playbook Grapher 是一個命令列工具,用於建立表示 Ansible playbook 任務和角色的圖表。
Ansible Shell 是 Ansible 的互動式 shell,為所有模組提供內建製表符補全功能。
Ansible Silo 是 Docker 提供的一個獨立的 Ansible 環境。
Ansigenome 是一個命令列工具,旨在協助您管理 Ansible 角色。
ARA 是記錄 Ansible 運作的手冊,透過與 Ansible 整合作為回呼插件,使記錄的資料對使用者和系統可用且直觀。
Capistrano 是一個遠端伺服器自動化工具。它支援任意任務的腳本編寫和執行,並包括一組合理的預設部署工作流程。
Fabric 是一個高階 Python(2.7、3.4+)函式庫,旨在透過 SSH 遠端執行 shell 指令,從而產生有用的 Python 物件作為回報。它建構在 Invoke(子進程命令執行和命令列功能)和 Paramiko(SSH 協定實作)之上,擴展了它們的 API 以相互補充並提供附加功能。
ansible-role-wireguard 是用於安裝 WireGuard VPN 的 Ansible 角色。支援 Ubuntu、Debian、Archlinx、Fedora 和 CentOS Stream。
wireguard_cloud_gateway 是一個 Ansible 角色,用於將 Wireguard 設定為雲端網路的網關 VPN 伺服器。
紅帽 OpenShift 專注於容器堆疊各個層級以及整個應用程式生命週期的安全性。它包括來自領先的 Kubernetes 貢獻者和開源軟體公司之一的長期企業支援。
OpenShift Hive 是一個在 Kubernetes/OpenShift 之上作為服務運作的操作器。 Hive 服務可用於設定和執行 OpenShift 4 叢集的初始設定。
回到頂部
SQL 是一種用於在關聯式資料庫中儲存、操作和檢索資料的標準語言。
NoSQL 是一種可互換地稱為「非關聯式」或「非SQL」的資料庫,以強調該資料庫可以以與具有行和表的關係型(基於SQL)資料庫不同的方式處理大量快速變更的非結構化資料。
Transact-SQL(T-SQL) 是 Microsoft SQL 的擴展,其中包含透過發送 T-SQL 命令與 SQL 資料庫進行通訊的所有工具和應用程式。
Transact-SQL 簡介
W3Schools 的 SQL 教學課程
從 Coursera 線上學習 SQL 技能
Udemy 線上 SQL 課程
LinkedIn Learning 提供的 SQL 線上培訓課程
從 Codecademy 免費學習 SQL
GitLab 的 SQL 風格指南
OracleDB SQL 風格指南基礎知識
Tableau CRM:BI 軟體與工具
AWS 上的資料庫
AWS EC2 中 SQL Server 叢集的最佳實務和建議。
從 Google Kubernetes Engine 連線到 Cloud SQL 執行個體。
Microsoft Azure SQL 教育資源
MySQL 認證
SQL 與 NoSQL 資料庫:有什麼差別?
什麼是NoSQL?
Netdata是高保真基礎設施監控和故障排除、即時監控代理,以零配置從系統、硬體、容器和應用程式收集數千個指標。它在您的所有實體/虛擬伺服器、容器、雲端部署和邊緣/物聯網設備上永久運行,並且可以完全安全地在事件中安裝在您的系統上,無需任何準備。
Azure Data Studio 是一種開源資料管理工具,支援在 Windows、macOS 和 Linux 上使用 SQL Server、Azure SQL DB 和 SQL DW。
RStudio 是 R 和 Python 的整合開發環境,具有控制台、支援直接程式碼執行的語法突出顯示編輯器以及用於繪圖、歷史記錄、調試和工作區管理的工具。
MySQL 是一種完全託管的資料庫服務,用於使用世界上最受歡迎的開源資料庫部署雲端原生應用程式。
PostgreSQL 是一個功能強大的開源物件關聯式資料庫系統,經過 30 多年的積極開發,在可靠性、功能穩健性和效能方面贏得了良好的聲譽。
Amazon DynamoDB 是一種鍵值和文件資料庫,可在任何規模下提供個位數毫秒的效能。它是一個完全託管、多區域、多主機、持久的資料庫,具有內建安全性、備份和復原以及適用於互聯網規模應用程式的記憶體快取。
Apache Cassandra™ 是一種開源 NoSQL 分散式資料庫,可在不影響效能的情況下具有可擴展性和高可用性,受到數千家公司的信賴。 Cassandra 在商用硬體或雲端基礎架構上提供線性可擴展性和經過驗證的容錯能力,使其成為關鍵任務資料的完美平台。
Apache HBase™ 是一種開源、NoSQL、分散式大數據儲存。它可以實現對 PB 級資料的隨機、嚴格一致、即時存取。 HBase 對於處理大型稀疏資料集非常有效。 HBase 可作為 Hadoop 的 Apache MapReduce 框架的直接輸入和輸出,並與 Apache Phoenix 配合使用,以實現對 HBase 表的類似 SQL 的查詢。
Hadoop 分散式檔案系統 (HDFS) 是一種分散式檔案系統,可處理在商用硬體上執行的大型資料集。它用於將單一 Apache Hadoop 叢集擴展到數百(甚至數千)個節點。 HDFS 是 Apache Hadoop 的主要元件之一,其他元件是 MapReduce 和 YARN。
Apache Mesos 是一個叢集管理器,可跨分散式應用程式或框架提供高效的資源隔離和共用。它可以在動態共享節點池上運行 Hadoop、Jenkins、Spark、Aurora 和其他框架。
Apache Spark 是一個用於大數據處理的統一分析引擎,具有用於串流、SQL、機器學習和圖形處理的內建模組。
ElasticSearch是一個基於Lucene函式庫的搜尋引擎。它提供了一個分散式、支援多租戶的全文搜尋引擎,具有 HTTP Web 介面和無模式 JSON 文件。 Elasticsearch 是用 Java 開發的。
Logstash 是一個用來管理事件和日誌的工具。一般使用時,該術語涵蓋更大的日誌收集、處理、儲存和搜尋活動系統。
Kibana 是 Elasticsearch 的開源資料視覺化插件。它在 Elasticsearch 叢集上索引的內容之上提供視覺化功能。使用者可以建立欄,