《ASP.NET Core 微服務實戰》-- 讀書筆記(第1章 、第2章)

譯者序

微服務設計方法清晰定義了各個開發團隊的業務邊界,微服務框架以不一樣方式實現了服務之間的協做與集成。git

.NET Core 做爲全新的 .NET 技術,它不只徹底開源、跨平臺,更面向雲原生開發進行了大量細緻的優化。它徹底模塊化,不依賴特定操做系統,其文件系統、網絡和配置等基礎功能模塊對跨平臺,命令行等現代化輕量級開發所要求的特性提供了卓越的支持。github

本書首先介紹 .NET Core 開發環境的安裝,接着詳細介紹持續交付、API 優先和測試驅動等重要開發方法和思想。docker

推薦序

本書較完整地介紹使用 ASP.NET Core 進行微服務開發時的思路、步驟和工具,書中用大量篇幅講述關於開發功能強大且具備高可伸縮性和韌性的微服務思想,關注使用 ASP .NET Core 實現雲原生模式。服務器

本書 GitHub 庫(https://github.com/microservices-aspnetcore網絡

第 1 章 ASP .NET Core 基礎

核心概念

CoreCLR: 一個輕量級、跨平臺運行時,提供與 CLR 相同功能,包括垃圾回收、JIT 編譯、異常處理等等。架構

CoreFX: 一系列模塊化程序集,以 NuGet 包方式提供,而且徹底開源,可經過 GitHub 獲取。app

.NET Platform Standard: 以一種可控的架構支持 .NET Core 二進制可移植性的跨平臺目標。框架

ASP .NET Core: 一系列小的模塊化組件,可添加到現有應用中,用於開發 Web 應用和微服務;提供了路由、JSON 序列化、MVC 控制器與視圖 API 。curl

開發控制檯應用

$ dotnet new console
$ dotnet restore
$ dotnet run

項目建立完成後,運行 dotnet restore 可分析項目的依賴,並下載全部須要的包。每次修改項目文件 .csproj 後,都要執行這一步驟。模塊化

開發第一個 ASP.NET Core 應用

往控制檯應用添加 ASP.NET Core 功能步驟:

  • 添加 ASP.NET 包
  • 添加 Kestrel 服務器
  • 添加啓動類和中間件

第 2 章 持續交付

相對於傳統的單體應用,開發人員之因此要選擇開發微服務系統,其驅動力之一就是須要一種能把新功能和修復補丁快速部署到小型、可獨立縮放的子系統的功能。

只有在部署前就能確信這些服務在生產環境中不會出問題,纔有可能作到這一點。

Docker 運用 Linux 內核提供的 cgroup 和 namespace 等功能對網絡、文件和內存等資源進行隔離,避免了完整的重量級虛擬機的負擔。

Docker 提供的能力讓咱們能夠建立一種無視目標環境差別,隨處運行的發佈物,意味着在測試環境中測試 Docker 鏡像以後,咱們相信它在生產環境中也會以徹底一致的方式工做。這是擁抱持續交付的前提。

運行 Docker 鏡像

$ docker run -p 8080:8080 dotnetcoreservices/hello-world
$ docker ps
$ curl http://localhost:8080/will/it/blend?
$ docker kill 61a68ffc3851

使用 Wercker 持續集成

免費社區版(https://app.wercker.com/

用 Wercker 構建服務

  • 安裝 Wercker 命令行工具
  • 添加 wercker.yml 配置文件
  • 運行 Wercker 構建

使用 CircleCI 持續集成

CircleCI 與 Wercker 構建過程的關鍵區別在於,構建過程不是在已安裝好 .NET Core 的專用 Docker 鏡像中運行,咱們須要使用諸如 apt-get 的工具來安裝 .NET 工具鏈。

部署到 docker hub

歡迎加入團購羣

<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="知識共享許可協議" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>

本做品採用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議</a>進行許可。

歡迎轉載、使用、從新發布,但務必保留文章署名 鄭子銘 (包含連接: http://www.cnblogs.com/MingsonZheng/ ),不得用於商業目的,基於本文修改後的做品務必以相同的許可發佈。

若有任何疑問,請與我聯繫 (MingsonZheng@outlook.com) 。

相關文章
相關標籤/搜索