第1次實踐做業

課程調查

進入大三下學期的後半段,大學階段的理論課程應該已經修得八九不離十了,在這個時間點迎來系統綜合實踐這門課,做爲培養計劃的一門新課程,咱們很是但願瞭解大家對於課程的但願,請寫下你對這門課的認識和你理想中的這門課程是怎麼樣的。

-正所謂"實踐是檢驗真理的絕對標準",沒有實踐化的學習只是空談理論。目前在學習系統結構理論的過程當中,雖大體能明白其中原理,卻對這門課學習後能作些什麼仍是朦朧不知。但願經過實踐課能夠真正學習到相關的實踐技術,對將來有所幫助。linux

瞭解微服務

第一次做業咱們將接觸一種新型的軟件架構——微服務(也許部分同窗已經有所瞭解)。你們要作的是學習並瞭解該技術,微服務是什麼,有什麼特色,相較於傳統的軟件架構,它有什麼優缺點,它是怎樣部署的。

  • 前提概念瞭解
    ——系統架構設計:設計描述了在應用系統的內部,如何根據業務、技術、組織、靈活性、可擴展性以及可維護性等多種因素,將應用系統劃分紅不一樣的部分,並使這些部分彼此之間相互分工、相互協做,從而爲用戶提供某種特定的價值的方式。
    ——目前:三層架構-分紅表示層、邏輯業務層、數據傳輸層。因爲僅是邏輯分層並不是物理分層,因此還是單塊架構。
  • 微服務概念
    ——微服務架構是一種架構模式,它提倡將單一應用程序劃分紅一組小的服務,服務之間互相協調、互相配合,爲用戶提供最終價值。每一個服務運行在其獨立的進程中,服務於服務間採用輕量級的通訊機制互相溝通(一般是基於 HTTP 的 RESTful API)。每一個服務都圍繞着具體業務進行構建,而且可以被獨立地部署到生產環境、類生產環境等。另外,應儘可能避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言、工具對其進行構建。
  • 微服務特色
    一、單一職責
    微服務架構中的每一個服務,都是具備業務邏輯的,符合高內聚、低耦合原則以及單一職責原則的單元,不一樣的服務經過「管道」的方式靈活組合,從而構建出龐大的系統。
    二、輕量級通訊
    服務之間經過輕量級的通訊機制實現互通互聯,而所謂的輕量級,一般指語言無關、平臺無關的交互方式。
    三、獨立型
    每一個服務在應用交付過程當中,獨立地開發、測試和部署。
    四、進程隔離
    在微服務架構中,應用程序由多個服務組成,每一個服務都是高度自治的獨立業務實體,能夠運行在獨立的進程中,不一樣的服務能很是容易地部署到不一樣的主機上。
  • 微服務優缺點
    優勢
    一、微服務也能夠被認爲是一種組件,可是跟傳統組件的區別在於它能夠獨立部署,所以它的一個顯著的優點。
    二、它在組件與組件之間定義了清晰的、語言無關、平臺無關的規範接口,耦合度低,靈活性很是高。
    三、在單塊架構中,企業通常會根據技能劃分團隊,在這種組織架構下,即使是簡單的需求變動都有可能須要跨團隊協做,溝通成本很高。而在微服務架構中,它提倡以業務爲核心,按照業務能力來組織團隊,團隊中的成員具備多樣性的技能。
    四、在單塊架構中,應用基本上是基於「項目模式」構建的,即項目啓動時從不一樣技能資源池中抽取相關資源組成團隊,項目結束後釋放全部資源。這種狀況下團隊成員缺少主人翁意識和產品成就感。在微服務架構中,提倡採用「產品模式」構建,即更傾向於讓團隊負責整個服務的生命週期,以便提供更優質的服務。
    五、微服務架構中,提倡針對不一樣的業務特徵選擇合適的技術方案,有針對性的解決具體業務問題,而不是像單塊架構中採用統一的平臺或技術來解決全部問題。
    六、微服務架構提供自主管理其相關的業務數據,這樣能夠隨着業務的發展提供數據接口集成,而不是以數據庫的方式同其餘服務集成。另外,隨着業務的發展,能夠方便地選擇更合的工具管理或者遷移業務數據。
    七、在微服務架構的實踐過程當中,對持續交付和部署流水線的要求很高,將促進企業不斷尋找更高效的方式完成基礎設施的自動化及 DevOps 運維能力的提高。
    缺點
    一、分佈式調用嚴重依賴於網絡的可靠性和穩定性。
    二、微服務架構是基於分佈式的系統,而構建分佈式系統必然會帶來額外的開銷。
    三、運維主要包括配置、部署、監控與告警和日誌收集四大方面。微服務架構中,每一個服務都須要獨立地配置、部署、監控和收集日誌,成本呈指數級增加。
    四、在微服務架構中,每一個服務都獨立部署,交付週期短且頻率高,人工部署已經沒法適應業務的快速變化。
    五、在微服務架構的實施過程當中,開發人員和運維人員的角色發生了變化,開發者將承擔起整個服務的生命週期的責任,包括部署和監控;而運維則更傾向於顧問式的角色,儘早考慮服務如何部署。
    六、服務間的依賴測試和依賴管理在面對衆多服務業務單元具備很多難度。
  • 微服務部署
    部署微服務

瞭解docker技術

  • docker概念
    鏡像
    ——就至關因而一個 root 文件系統。好比官方鏡像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統的 root 文件系統。
    容器
    ——鏡像(Image)和容器(Container)的關係,就像是面向對象程序設計中的類和實例同樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器能夠被建立、啓動、中止、刪除、暫停等。
    倉庫
    倉庫可看着一個代碼控制中心,用來保存鏡像
  • docker環境搭建
    嘗試過搭建Window環境下的docker,但基於家庭版win10內連Hyper-V都不太兼容,果斷被勸退,如下基於Linux的環境搭建
    經過docker倉庫進行環境安裝

容器使用

一、拉取鏡像

二、打開容器和退出容器

三、啓動已中止運行的容器
i查看容器記錄

ii啓動容器並後臺運行

四、中止與重啓容器

五、進入容器(使用exec指令退出容器時不會關閉容器)

六、容器的刪除
docker

倉庫與鏡像

一、建立鏡像倉庫

二、登入倉庫

三、拉去鏡像(如上已經拉取過ubuntu)
四、推送本身的鏡像

數據庫

相關文章
相關標籤/搜索