--課程已於 2020 年 10 月更新 --
如果你厭倦了學習如何部署 Web 應用程式,這是你的課程。
這是你夢想中學習如何部署任何網路應用程式的終極課程。 和 Kubernetes 是 Dev Ops 世界中最新的技術,並且戲劇性地改變了 Web 應用程式的建立和部署流程。 Docker是一種允許應用程式執行在稱為容器結構中的技術,而 Kubernetes 允許許多不同的容器進行協調執行。
✅ Docker 從頭開始學習!
在這門課程中,你將從絕對的基本知識中學習 Docker,從學習諸如”什麼是容器?”這樣的基本問題的答案開始 和”集裝箱是如何運作的?” . 從最開始的幾次演講開始,我們將深入研究集裝箱的內部運作,這樣你就可以核心理解它們是如何被實現的。 一旦你瞭解了什麼是容器,你就會學習如何使用基本的 Docker CLI 命令來處理它們。 在這之後,你將應用你對 Docker CLI 的新發現的掌握,來建構自己的自定義映像檔,有效地’Dockerizing’ 你自己的個人應用程式。
✅ CI + CD 管道
當然,如果沒有對持續整合和持續部署模式的全面理解,Docker 上的課程就不會完整。 你將學習如何使用 Github,Travis CI 和 Amazon Web Services 來實現一個完整的 CI + CD 工作流程,建立一個每次向 Github 推送最新更改時自動部署程式碼的管道(pipeline)!
✅ 多容器在 AWS 上的部署!
在構建一個部署管道之後,你將在 Amazon 網路服務上應用它來管理單個容器和多容器部署。 你將使用 Node、 React、 Redis 和 Postgres 建構一個多容器應用程式,看看容器在執行中的神奇力量(注意: 本課程中的所有 Javascript 程式碼都是可選的,如果不想編寫 JS,則提供完整的原始碼)。
✅ Kubernetes!
最後,你將處理 Kubernetes,這是一個用於管理多個不同執行容器的複雜應用程式的營運等級系統。 你將學習建構 Kubernetes 叢集的正確方法——這門課程沒有那些令人討厭的”不要在生產環境中這樣做”的評論! 你將首先在本地機器上建構一個 Kubernetes 叢集,然後最終將其移植到雲端提供程式。 你甚至可以學習如何在 Kubernetes 上設定 HTTPS,這可比聽起來難多了!
下面就是你要做的:
1. 從零開始學習 Docker,不需要以前的經驗
2. 根據你的應用程式建立自己的自定義映像檔
3. 掌握 Docker CLI 來檢查和除錯執行的容器
4. 瞭解 Docker 是如何在幕後工作的,以及集裝箱(容器)是什麼
5. 使用 Github,Travis CI 和 AWS 一起從頭開始構建 CI + CD 管道
6. 當程式碼被推送到 Github 時自動部署它!
7. 從頭開始建構一個複雜的多容器應用程式並將其部署到 AWS
8. 瞭解 Kubernetes 的用途和理論
9 .將一個可營運的 Kubernetes 群集部署到 Google Cloud 中
https://softnshare.com/docker-and-kubernetes-the-complete-guide/
.js 除錯 在 卡斯伯 Facebook 的最佳貼文
AJAX 系列文:
本系列比較不注重 JS 的語法觀念
而是其背後的運作、除錯等
(有觀念,就不會限制寫法、工具)
基礎觀念 - 前端與後端的關係
https://wcc723.github.io/development/2020/09/30/about-ajax/
新增、更新、刪除 - 文件的閱讀與資料夾帶方式
https://wcc723.github.io/development/2020/10/01/about-ajax-2/
使用 Chrome Devtools 檢視請求及回應 - 請求到底發送了什麼
https://wcc723.github.io/development/2020/10/02/about-ajax-3/
一次搞懂 HTTP 狀態碼(HTTP Status Code)- 除錯並不難,只要一點小技巧
https://wcc723.github.io/development/2020/10/03/about-ajax-4/
.js 除錯 在 Taipei Ethereum Meetup Facebook 的最佳解答
📜 [專欄新文章] Solidity Weekly #16
✍️ mingderwang
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Expo (React Native) + web3.js 1.0.x 開發手機 dApps
今天要介紹如何利用 Expo,來撰寫手機 dApp。基本上,如果想做到去中心化的 dApp,期望能將 Javascript app 能盡可能的包裹成單一檔案,用去中心化檔案儲存空間,讓手機或網頁直接下載來執行。手機版的 App,也可用 Expo 做到類似的結果,但目前 Expo 還是有點中心化;當然利用 cipherbrowser 或 status.im 等方式開發也行,只要你不怕被 vendor lock-in。
Expo 是一種 MIT license 的開放源始碼,讓 React Native 開發與部屬更為簡單,讓用戶只要先下載 iOS 或 Android 的 Expo clients。就很容易透過 exp://xxx 的 URI 來執行。因為 React Native 跟 web3.js 都是用 Javascript 語言,因此很容易整合。(註:web3.js 也不是唯一連區塊鏈的方法,只是搭配 Remix,能產生 web3 程式片段,所以比較方便)
但由於 React Native 非 100% 與 node.js 相容,因此有些 workarounds 要做,例如 node 內建 standard library 裡的 crypto (註 2),Buffer 等 React Native 就沒有,所以這裏還不是很方便。(喜歡 truffle 的人,也可參考 react-native-box 來做,但也還沒很成熟)
Mobile dApp 有個問題是,你(用戶)沒有 localhost 自己的 node 當成 web3 provider 可以連線到 Ethereum 區塊鏈。所以有幾種選擇,最簡單的就是要再相信某一個 node,這裡用 infura (與 Metamask 同一家公司),也許還要搭配其他方法,讓這 dApp 不要依賴任何 server 也能運作。但如果要用到 HDWallet,還是要用 truffle-hdwallet-provider 來當 web3 provider,也能同時避開沒有 crypto 的問題。
使用 Expo 開發畫面
註 1:直接用 React Native 開發,不容易除錯,且速度慢。所以建議程式邏輯可以考慮用 React Native for Web 在 CodeSandbox.io 先做開發和測試,最後再搬到 Expo 的 React Native 裡。(或直接在 codesandbox.io 開發 Expo 程式也行)
CodeSandbox
註 2:例如當在 Expo 的環境裡使用到 web3.eth.accounts.create() 時,會出現以下 error,但其他地方(Condsandbox)不會。
解決方法,不要用 web3 provider 改用 truffle-hdwallet-provider (在 React Native 裡要用 Promise.promisifyAll 繞過問題)
var HDWalletProvider = require("truffle-hdwallet-provider"); var mnemonic = "manage velvet tide tube object spin identify neither foot together wagon tip"; var hd = new HDWalletProvider(mnemonic, "https://mainnet.infura.io/"); web3 = new Web3(hd); Promise.promisifyAll(web3.eth); let accounts = await web3.eth.getAccountsAsync();
Solidity Weekly #16 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌