Service Mesh所應對的8項挑戰

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

Lori Macvittie

微服務架構是把雙刃劍,我們享受它帶來的開發速度(development velocity),卻也不得不面對服務間通訊帶來的復雜性問題。

目前大多數擴展容器化微服務的架構多是基于proxy-based復雜均衡器實現的。在這些架構的問題在于,容器環境內部伸縮往往依賴于IP tables,并受制于傳統網絡層。

所有這些代理提供相同的核心功能:擴展容器環境中的分布式服務。這些服務是一種短暫的構建(ephemeral constructs),實際上并不存在——除了在定義它們的資源(配置)文件中。基于IP tables的擴展解決方案的問題是,這些服務是7層(HTTP)構造,通常充當單個API調用的“后端”,而非整個應用程序。

正如我們所知道的,從客戶端顯示為單個、整體構造的應用,實際上由許多不同的(和分布式的)微服務組成。有些服務是純內部的,供其他服務使用,這意味著要在容器環境中進行大量的service-to-service通信。

在這些環境中,一切都是HTTP/HTTP2之上的api,因此我們需要L7(HTTP)路由。我們還需要一致的安全、身份驗證和策略執行。所有這些都是基于IP tables的方法無法實現的。

針對種種微服務架構服務間通訊的問題和難點,目前出現的一些Service Mesh相關開源項目已經開始著手解決這些挑戰,核心集中于以下8個方面:

  • 構建 - 除了將策略與CI/CD工具鏈集成并確保配置的聲明性模型,以便將service mesh視為一層基礎設施之外,構建并不是Service Mesh的“強項”
  • 測試和集成 – Service Mesh可以幫助確保開發、測試、生產之間一致的策略。分階段部署這種方法在過去運作良好,但它是將延遲插入部署過程的障礙之一。企業正在尋找一種將服務直接部署到生產的方法,并采用流量控制和回滾機制來處理故障。
  • 版本控制 - 服務網格可以作為基本API網關,根據API版本等變量路由流量,甚至可以翻譯版本,以便在API版本過渡期間提供幫助。客戶端升級并不總是強制的,這意味著會存在多個版本。Service Mesh可以將對舊API版本的請求轉換為最新版本,以幫助降低維護同一API的多個版本的成本和負擔。
  • 部署 - 得益于HTTP能力,Service Mesh是實現藍/綠部署,金絲雀測試和流量控制的好方法。
  • 日志記錄 - 分布式日志記錄始終是一個問題,而且在實例生存時變化很大的環境中,它會更加麻煩。Service Mesh提供了一個通用的集中位置來實現日志記錄以及執行請求跟蹤等功能的能力。
  • 監控 - 監控是應用擴展的核心之一。雖然應用可以通過實現某些功能(重試、斷路等)來處理服務不可避免的故障,但會給應用帶來不必要的負擔。Service Mesh承擔了service-to-service通信的負擔,并提供監控,其目標是在生產中專注于MTTD和MTTR,因為在生產中運行很困難,故障是不可避免的。
  • 調試 - 系統越復雜,調試就越困難。Service Mesh可以幫助進行根本原因分析,使用分析和遙測提供統計數據和故障前通知,并隔離容器(而不是殺死容器),以便對其進行徹底檢查。這在由于內存泄漏緩慢導致故障的情況下特別有用。
  • 網絡 - 網絡仍然是容器的關鍵,可能比在不太復雜的環境中更為重要。從該網絡中抽象服務的愿望意味著您不希望在每個服務中實現許多移動部件:服務發現、SSL和證書管理、斷路器、重試、健康監控等。引入需要包含與網絡相關的功能會增加微服務,并引入額外的架構和技術債務。服務網格承擔了這些功能,并提供了所需的規模和安全性,而不影響開發。

Service mesh是一個令人興奮的演變,它結合了云和容器的現代原則和堅實的規模基礎。隨著2018年以來容器技術的普以及對企業級應用擴展和支持的需求,Service Mesh的未來值得期待。

  • END -

關于Rainbond

Rainbond是一款以應用為中心的開源PaaS,由好雨基于Docker、Kubernetes等容器技術自主研發,可作為公有云或私有云環境下的應用交付平臺、DevOps平臺、自動化運維平臺和行業云平臺,或作為企業級的混合云多云管理工具、Kubernetes容器管理工具或Service Mesh微服務架構治理工具。

  • Rainbond項目網站
  • 試用Rainbond公有云
    • 注冊或使用Demo賬號/密碼登錄:rainbond-demo/rainbond-demo
  • Github
  • 碼云
  • 文檔
  • 微信群: 添加微信“zqg5258423”并接受邀請入群

  • 技術 Service Mesh真的是云原生應用的絕配嗎?
  • 技術 Service Mesh微服務架構的崛起 2018/0706
  • 技術 Service Mesh:什么是Sidecar模式 2018/06/21
  • 技術 開源PaaS Rainbond v3.6.0正式發布,Service Mesh開箱即用 2018/06/20
  • 技術 解讀Rainbond ServiceMesh微服務架構_開源PaaS Rainbond 2018/05/15
  • 技術 Pinpoint-java性能分析最佳實踐_開源PaaS Rainbond 2018/05/08
  • 技術 通過Minio搭建私有化對象存儲服務_開源PaaS Rainbond 2018/04/26
  • 技術 揭秘高可用負載均衡組件Rainbond-Entrance_開源PaaS Rainbond 2018/04/25
  • 技術 Rainbond插件體系設計簡介_開源PaaS Rainbond 2018/02/24
  • 技術 Rainbond如何對接外部Maven倉庫_開源PaaS Rainbond 2018/01/18
  • 技術 Spring Boot框架配置MySQL_開源PaaS Rainbond 2018/01/10
  • 技術 基于Midonet的多租戶網絡設計_開源PaaS Rainbond 2018/01/09

轉載于:https://my.oschina.net/zhouyq/blog/1861476

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277595.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277595.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277595.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

stm32cubeide外部中斷_【STM32】HAL庫 STM32CubeMX教程三----外部中斷(HAL庫GPIO講解)

前言上一節我們講解了STM32CubeMX的基本使用和工程的配置,那么這一節我們正式來學習CubeMX配置STM32的各個外設功能了今天我們會詳細的帶你學習STM32CubeMX配置外部中斷,并且講解HAL庫的GPIO的各種函數,帶你學習不一樣的STM32那么話不多說&am…

html5兼容ie

https://www.jb51.net/html5/143049.html轉載于:https://www.cnblogs.com/rivsidn/p/10913532.html

什么叫內部銀團_什么是紫鈦晶?紫鈦晶是不是天然水晶?

都說紫鈦晶是紫水晶與鈦晶的結合,聽上去好像這種水晶不是天然的,像是人工合成的,事實上并非如此,紫鈦晶也是天然形成的水晶,由于內部的包裹體是金色的,因此被稱為紫鈦晶。和菩心晶舍家的晶舞傾城一起了解紫…

如何使用Squid服務來構建=》傳統和透明代理服務器,通俗易懂!

1、緩存代理概述: 作為應用層的代理服務軟件,Squid主要提供緩存加速和應用層過濾控制的功能 2、代理的工作機制: (1)當客戶機通過代理來請求web頁面時,指定的代理服務器會先檢查自己的緩存,若緩…

排序算法-C++實現

#include <iostream>using namespace std;void show(int M[], int n) {for(int i0; i<n; i)cout<<M[i]<<" ";cout<<endl; }//快速排序 void quick_sort(int M[], int left, int right) {if(left < right){int i,j,x;i left;j right;…

Bootstrap開發框架視頻整理

最近到客戶處進行實地培訓&#xff0c;整理了很多培訓的材料&#xff0c;現將它們錄制相關主題的視頻&#xff0c;作為我的Bootstrap開發框架的知識補充&#xff0c;希望給感興趣的朋友進行了解。培訓內容主要包括基礎框架部分、MVC框架部分、Bootstrap框架部分、Bootstrap重要…

安卓隨機通話記錄_Android 通話記錄

查詢通話記錄private static final String[] CALLLOGS_PROJECTION new String[]{CallLog.Calls._ID,CallLog.Calls.CACHED_NAME, CallLog.Calls.NUMBER, CallLog.Calls.TYPE, CallLog.Calls.DATE,CallLog.Calls.DURATION};/*** * 概述&#xff1a;獲取最近10條通話記錄 */publ…

【c基礎】入門語法

%d:占位符 表示要輸出一個整形數。 %f:為float 浮點數 %lf:為double型 雙精度浮點數 \n:換行 const:定義一個常量,一旦被初始化就不能修改&#xff0c;只讀的變量&#xff08;read-only variable&#xff09;。 整數運算 的結果是整數 如果有小數就拋棄沒有考慮四舍五入。 一&a…

vue的移動app項目中,自定義拖拽指令的問題

使用vue的都知道vue有一個自定義指令&#xff0c;我比較喜歡的就是拖拽的自定義指令&#xff0c;感覺挺方便的&#xff01; //組件內的拖拽指令 directives: {//組建內自定義指令drag: {// 指令的定義bind: function(el, value) {let oDiv el; //當前元素let self this; //上…

彈窗php整人_[整人小程序] 超級信息框(無限彈窗++)

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓貌似剛才縮進空格被吞了&#xff0c;再發一次Set FSO  createobject("scripting.filesystemobject")Set ws  Createobject("Wscript.shell")Set SA  CreateObject("Shell.Application")If …

day22 Java學習 IO流(序列流)

IO流&#xff08;序列流&#xff09; 序列流&#xff1a; * 可以把多個字節輸入流整合成一個&#xff0c;從序列流中讀取數據時&#xff0c;將從被整合的第一個流開始讀&#xff0c;讀完一個之后繼續讀第二個。 整合方式&#xff1a; * Seq uenceInputStream ( InputStream &am…

網站建設-簡單動態網站搭建

通過前面Clouder課程的學習&#xff0c;或許你已經掌握了在云服務器上發布和部署靜態網頁的方法&#xff0c;那么如何搭建一個可以隨時更新內容的動態網站&#xff1f;通過本課程的學習&#xff0c;你將掌握如何在云端搭建全世界使用最多的WordPress網站的方法&#xff0c;并學…

mysql的concat函數_MySQL中concat函數(連接字符串)

MySQL中concat函數使用方法&#xff1a;CONCAT(str1,str2,…)返回結果為連接參數產生的字符串。如有任何一個參數為NULL &#xff0c;則返回值為 NULL。注意&#xff1a;如果所有參數均為非二進制字符串&#xff0c;則結果為非二進制字符串。如果自變量中含有任一二進制字符串&…

利用airTest的圖像實別技術測試Web應用

airTest的第三方類庫中有圖像實別功能&#xff0c;根據官網的介紹&#xff0c;這個功能是能夠在Windows上用來定位元素&#xff0c;進行操作的。嘗試過以下腳本&#xff0c;發現真的可以。 from selenium.webdriver.chrome.options import Options from selenium import webdri…

MySQL主從復制故障解決

叢庫復制停止&#xff0c;進叢庫查看&#xff0c;報錯1007&#xff0c;數據庫已存在&#xff0c;不能創建數據庫 mysql> show slave status\G; Slave_IO_Running: Yes Slave_SQL_Running: No Last_Errno: 1007 Last_Error: Error Cant create database test; database exis…

Unraveling the JPEG file

(文章還剩實踐部分沒寫&#xff0c;答辯過后補上...) JPEG文件在當下數字化生活中是無處不在的&#xff0c;但是在熟悉的JPEG面紗背后&#xff0c;隱藏著一些算法&#xff0c;它們去除了人類眼中無法察覺到的細節。這產生了最高的視覺質量與最小的文件大小。讓我們來看看這一算…

mysql interval 3 day_Mysql之INTERVAL與DATE_SUB與EXTRACT函數的使用

1. INTERVALINTERVAL代表的是時間間隔MySQL中的時間間隔類型有如下幾種:1.1 利用INTERVAL做時間的加減法示例&#xff1a;加法:SQL>SELECT DATE 2018-11-01 INTERVAL 10 11 DAY_HOUR;結果:2018-11-11 11:00:00減法&#xff1a;SQL> select date 2018-11-11 11:00:00 -INT…

(二十四)面向對象

class Car {int num;String name;String color;public static void run() {System.out.println("行駛中");} } //再類中定義的變量&#xff1a;成員變量 //在類中定義的函數&#xff1a;成員函數 class Demo1 {public static void main(String[] args) {//創建一個ca…

mysql 三主_MySQL主主復制3

一、創建并授權用戶在每一臺(主)服務器上創建一個用戶&#xff0c;并為之授權&#xff0c;使它們可以互相訪問彼此的數據庫在Server-1上&#xff1a;創建一個充許Server-2來訪問的用戶server2,密碼為&#xff1a;server2mysql> GRANT REPLICATION SLAVE ON *.*> TO ‘ser…

0727日志

為什么80%的碼農都做不了架構師&#xff1f;>>> c端線上地址 http://x.diandanme.com/fe/?d183#/ 什么時候來需求&#xff0c;我做好準備了嗎&#xff1f; eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC94LmRpYW5kYW5tZS5jb21cL2FwaVwvd2VjaGF0XC…