回歸遠程 - 云原生IDE是IaC從表象觸達本質的必然選擇 | SmartIDE

作者:

徐磊,開源云原生SmartIDE創始人、LEANOSFT創始人/首席架構師/CEO,微軟最有價值專家MVP/微軟區域技術總監Regional Director,華為云最有價值專家。從事軟件工程咨詢服務超過15年時間,為超過200家不同類型的企業提供過軟件研發效能相關的管理和技術咨詢工作。

原文地址:https://smartide.cn/zh/docs/overview/

e854895ef55b5888d2e3cef737ee5879.jpeg

關于SmartIDE

SmartIDE是一款 遠程/云端工作區調度工具,其目標是從根源上解決軟件環境問題。當前,SmartIDE主要采用容器技術,比如:Docker和Docker-Compose;以及容器集群編排技術,比如:Kubernetes,來解決軟件運行環境的一致性,標準化,快速獲取,可擴張性和可維護性問題。

aa12ec4933e9829495bab690b758d0ad.jpeg

開發者常用的Visual Studio, Visual Studio Code, JetBrains全系列以及Eclipse這些傳統的IDE工具在 I (Integrated 集成性)和 D(Development)上面做得都非常出色,但是它們都沒有為開發者徹底解決E的問題。這是因為在這些IDE產品出現的時候,軟件本身的依賴環境還沒有那么復雜,大多數的軟件都是單體,微服務架構還未出現,通用中間件軟件也不流行,大多數的開發者都可以在自己本地的開發機上完成整個應用(系統)的完整搭建,開發調試,測試以及打包發布過程。

當前的軟件系統已經越來越復雜,越來越多的開發者在使用各種中間件來簡化自己的軟件開發過程,越來越多的團隊在引入微服務架構來適應業務架構的敏捷性需求,云原生技術正在被更多團隊接受,容器化和集群編排系統以及DevOps CI/CD流水線的引入也給軟件工程引入了更多的復雜度。

在這樣的背景下,傳統IDE產品的局限性日漸顯現,開發者不得學習更多的技術,引入更多的工具,花費的更多的時間在軟件環境的管理和維護上。在軟件工程領域,也出現了類似SRE這種專注于打通復雜軟件工程系統協同的專業化工作角色/職責,軟件環境在SRE的工作職責占有非常高的比重(參考:Google SRE)。即便如此,軟件環境問題仍然是企業改進軟件工程系統過程中最難解決的核心問題之一。(參考:8 Key Challenges in Adopting DevOps)。對于希望通過改進軟件工程工藝來提升研發效能的團隊來說,解決環境的可獲取能力是實現端到端持續交付能力的主要障礙。

IaC左移

63a5ed0fa09c5debd07f2492cde657dd.png

也因為以上原因,IT行業內開始涌現了Docker, Kubernetes, Hashicrop等專注于解決軟件環境問題的基礎工具類軟件。從2013年Docker引領的容器化浪潮開始,軟件交付方式已經有了翻天覆地的變化,而且這種變化在逐步從生產環境向開發測試環境推進。這個趨勢的核心實踐,Infrastructure as Code(IaC 基礎設施即代碼)的思路正在影響著越來越多的DevOps實踐者和工具廠商。可以說,在容器化浪潮的背后其實是IaC實踐廣泛應用,也因為此IaC實踐被大多數DevOps實踐者作為判斷一個組織的軟件工程能力的重要評估標準。

如下圖所示:IaC實踐(工具)正在從生產環境逐步左移

320c67a0e4103bb48a9cca1b83757f1f.png

IaC實踐左移實際上是從問題的表象逐漸觸達本質的過程。容器化/IaC實踐首先被用于生產環境的原因很容易理解,因為這個環境最貼近用戶,最貼近業務,也是企業最愿意投入資金的部分;但隨著生產環境的容器化進程推進,組織會逐步認識到生產環境的問題的根源其實并不在生產環境,而在其左側的測試,流水線以及開發環境。開發環境作為產生環境的源頭,如果不能被容器化,會對其下游(右側)環境構成連鎖問題效應,破壞容器化本應產生的效益,比如:為管理容器編排文件而專門設置的權限、人員角色和流程,因為開發人員引入的環境變更而引起的后續環境的連鎖變更;運維人員為了防止以上問題影響系統穩定性而采取的保守管理策略,以及受到損傷的業務敏捷性。

容器云和DevOps平臺是云原生IDE落地的必要條件

510c4c6fc2e40ff2aa7f0b8720d2cbac.png

在容器化進程發展到今天的將近10年以后,開發環境的非標準化已經成為阻礙整個持續交付體系效能提升的關鍵性障礙。同時,隨著企業中的容器化平臺(包括:各種類型的k8s以及很多企業習慣稱之為PaaS的私有云平臺)以及DevOps工具鏈的普及,已經為IDE上云提供了必要條件。

艾瑞咨詢的調研數據顯示,在2025之前企業私有容器云市場仍然將保持每年超過33%的市場增速。

0ce46651364484ec6d88333ab62b167c.png

同時,企業DevOps工具軟件按也將保持每年25%的市場增速。

ee7fb33ef330cbbf6bf64ffbe4ac70f4.png

以上兩項基礎設施的完畢將為云原生IDE在企業中的落地提供必要條件。

傳統IDE上云進程已經啟動

e64180277755b577f02bd06dd3d8cefa.png

從傳統IDE工具的演進來看,以 Visual Studio Code Remote 以及 JetBrains Gateway 為代表的遠程開發能力已經被越來越多的開發者接受并喜愛;同時也出現了類似 Squash, telepresence, Nocalhost ,Bridge to Kubernetes (Visual Studio 插件 和 Visual Studio Code 插件) 這樣專注于解決K8S環境下調試場景的特定工具(參考:Debugging Microservices: The Ultimate Guide)。這些都代表著傳統IDE工具的云化進程。

f16e824af8fd445d0a1e9d74d77b6832.png

SmartIDE 定位于遠程/云端工作區的調度,為傳統IDE上云提供服務端的完整解決方案,依托于已經在大量企業普及的容器云和DevOps平臺,為開發者提供更加安全,簡單和高效的全新工作模式。最終實現在 探索階段 就能確認軟件的最終形態的目的,為后續的環節提供明確的狀態基準。

336788c246a693915e6d8b08c474b1e7.png

云原生IDE的優勢場景

184a0a2af696239947c194146c505794.png

SmartIDE理論上可以支持任何應用的開發場景,但對于以下這些類型的應用來說可以提供比傳統開發模式更好的體驗。

  • 端到端的代碼安全:對于非常關注代碼安全性或者使用大量外包人員的組織來說,如何防止代碼離開自己受控的服務器環境,同時又可以讓開發者方便的完成代碼開發一直都是一個矛盾。很多資金充裕的企業已經在使用的虛擬桌面(VDI)解決方案就是針對這種場景,但是VDI系統價格昂貴,資源占用量大而且無法動態調度資源,這也造成很多企業給開發者提供的虛擬桌面配置很低,開發效率非常低。SmartIDE所采用的容器化方案可以做到動態資源調度,根據項目本身的特性控制資源使用,同時開發者可以只需要瀏覽器即可訪問這些資源。對于企業優化IT基礎設置資源利用率,提升開發者體驗和工作效率非常有幫助。

  • 大數據和AI開發:這些開發場景因為需要更強的算力并處理大量的數據,因此通過遠程開發方式可以讓開發者更好得利用云端資源,更加便捷高效的完成開發。

  • 微服務架構開發:當系統中所設計的微服務數量到達一定量級之后,開發者無法在本地開發環境運行完整系統,利用SmartIDE所提供的遠程工作區則可以利用云端的大量服務器資源輕松完成環境搭建。同時因為IDE工具與運行環境可以非常貼近,在開發調試過程中也可以避免因為網絡延遲而造成的各種問題。

  • 實驗室/培訓環境:教育/培訓行業往往需要同時提供多種不同的開發語言,工具的環境以便適應不同類型的課程的需要,但是因為課程本身的時效性問題,這些環境并不需要一直運行,而只需要在學員需要的時候啟動,課程結束之后即可銷毀。采用SmartIDE工作區可以非常便捷的快速為新課程配置環境,隨用隨起,用完即焚。

  • 工業軟件/硬件開發:工業軟件和硬件開發往往需要在特定硬件環境中才能進行調試和測試工作,傳統模式下IDE是無法運行在這些硬件上的,開發者需要通過開發同步工具,命令行調試工具才能完成日常開發調試工作。這個過程往往非常繁瑣,大幅降低了開發效率。SmartIDE所采用的集成了IDE工具的工作區可以很方便的部署到這些硬件環境中,讓開發者直接在這些硬件上進行開發調試,大幅提升日常工作效率。

參考連接:

Google SRE

https://sre.google/

8 Key Challenges in Adopting DevOps:https://www.devopsinstitute.com/8-key-challenges-in-adopting-devops-part-1/

Debugging Microservice

https://lightrun.com/debugging/debugging-microservices-the-ultimate-guide

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

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

相關文章

android獲取手機機型、廠商、deviceID基本信息

/*** 系統工具類*/ public class SystemUtil {/*** 獲取當前手機系統語言。** return 返回當前系統語言。例如:當前設置的是“中文-中國”,則返回“zh-CN”*/public static String getSystemLanguage() {return Locale.getDefault().getLanguage();}/***…

題目1362:左旋轉字符串(Move!Move!!Move!!!)

題目1362:左旋轉字符串(Move!Move!!Move!!!) 時間限制:2 秒 內存限制:32 兆 特殊判題:否 提交:2306 解決:961 題目描述:匯編語言中有一種移位指令叫做循環左移&#xff0…

PHP簡單實現遞歸

//遞歸 //斐波那契數列 function digui($n) {if($n > 2) {$arr[$n] digui($n-1) digui($n-2);return $arr[$n];} else {return 1;} }//使用 echo digui(5); 總結 : 首先應該想到出口是什么,將出口放在else條件里 例如,本例斐波那契數列中,出口是前兩個數是1,也就是數組下…

(三)Controller接口控制器詳解(二)

一、AbstractController(簡單控制器) AbstractController使用方法: 首先讓我們使用AbstractController來重寫第二章的HelloWorldController: public class HelloWorldController extends AbstractController {Overrideprotected M…

[BZOJ]1095 Hide捉迷藏(ZJOI2007)

一道神題,兩種神做法。 Description 捉迷藏 Jiajia和Wind是一對恩愛的夫妻,并且他們有很多孩子。某天,Jiajia、Wind和孩子們決定在家里玩捉迷藏游戲。他們的家很大且構造很奇特,由N個屋子和N-1條雙向走廊組成,這N-1條走…

Spring4-自動裝配Beans-通過注解@Autowired在構造方法上

1.創建Maven項目,項目名稱springdemo19,如圖所示2.配置Maven,修改項目中的pom.xml文件,修改內容如下<project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://mave…

15個開源的工業軟件

出品 | OSC開源社區&#xff08;ID&#xff1a;oschina2013)不同的工業流程&#xff0c;需要不同的工業軟件。此前&#xff0c;我們已經介紹了面向研發設計環節的開源軟件&#xff08;詳情查看&#xff1a;20 個開源的工業設計軟件&#xff09;&#xff0c;今天就來介紹一下面向…

PHP開發中保證接口安全

模擬客戶端請求:<?php namespace Home\Controller; use Think\Controller;class ClientController extends Controller{const TOKEN API;//模擬前臺請求服務器api接口public function getDataFromServer(){//時間戳$timeStamp time();//隨機字符串$randomStr $this ->…

MySQL遠程訪問報錯解決

2019獨角獸企業重金招聘Python工程師標準>>> 我之前的一篇博客講了MySQL配置遠程訪問的方法&#xff0c;但是可能配置了賬戶以后還是不能訪問&#xff0c;這可能是防火墻的原因&#xff0c;在CentOS里&#xff0c;我們修改一下防火墻設置就可以了 1. 進入防火墻配置…

jssdk.php

/*** Created by PhpStorm.* Date: 17/8/19* Time: 下午2:24*/ class JSSDK {private $appId;private $appSecret;public function __construct($appId, $appSecret) {$this->appId $appId;$this->appSecret $appSecret;}public function getSignPackage() {$jsapiTick…

GNU/Linux與開源文化的那些人和事

一、計算機的發明 世上本無路&#xff0c;走的人多了&#xff0c;就有了路。世上本無計算機&#xff0c;琢磨的人多了……沒有計算機&#xff0c;一切無從談起。 三個人對計算機的發明功不可沒&#xff0c;居功至偉。阿蘭圖靈&#xff08;Alan Mathison Turing&#xff09;、阿…

PHP使用PHPMailer發送郵件

1. 首先下載phpmailer插件,并將插件復制到目錄下 下載地址: http://download.csdn.net/download/m_nanle_xiaobudiu/10261269 2. home/view/user/mail_chck.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…

python學習記錄2

一、兩個模塊&#xff08;sys和os&#xff09; 1 #!/usr/bin/env python2 # _*_ coding: UTF-8 _*_3 # Author:taoke4 import sys5 print(sys.path)#打印環境變量6 print(sys.argv[0])#當前文件相對路徑,sys.argv是一個列表&#xff0c;第一個元素為程序本身的相對路徑&#xf…

cordova-config.xml配置應用圖標

1. <icon src"res/icon/ios/browser.png"/> 2.規格&#xff1a; iphone平臺一般要求3種規格的圖片&#xff1a;1x、2x、3x&#xff0c;也是就Icon.png、Icon2x.png、Icon3x.png. 注意&#xff1a;iOS所有圖標的圓角效果由系統生成&#xff0c;給到的圖標本身不…

將 Figma 設計轉換為 .NET MAUI Graphics 代碼

原文鏈接&#xff1a;https://github.com/jsuarezruiz/figma-to-maui-graphics原文作者&#xff1a;jsuarezruiz翻譯&#xff1a;沙漠盡頭的狼(谷歌翻譯加持)&#xff0c;翻譯別扭&#xff0c;建議直接閱讀原文使用FigmaSharp.Maui.Graphics將Figma設計轉換為 .NET MAUI Graphi…

Android之上下文context

Context&#xff0c;中文直譯為“上下文”&#xff0c;SDK中對其說明如下&#xff1a; 1、它描述的是一個應用程序環境的信息&#xff0c;即上下文。 2、該類是一個抽象(abstract class)類&#xff0c;Android提供了該抽象類的具體實現類。 3、通過它我們可以獲取應用程序的資…

論壇中,無限分類的原理

1.創建數據表 CREATE TABLE category( cat_id SMALLINT unsigned not null auto_increment comment 類別id, cat_name VARCHAR(30) not null default comment 類別名稱, par_id SMALLINT unsigned not null default 0 comment 類別父id, PRIMARY KEY (cat_id) )enginemyisam …

mooc- 基本程序設計方法week1,week2

學習了第一單元我們幾本可以寫出10行左右的代碼。 week1:python編程之基本方法 1、從計算機到程序設計語言&#xff1a; 理解計算機&#xff1a;計算機是能夠根據一組指令操作數據的機器。 功能性&#xff1a;可以進行數據計算 可編程性&#xff1a;根據一系列指令來執行 計算機…

Windows 11 的 2022 更新為每個人帶來了新的東西

Windows 網站發布博客&#xff0c;宣布今天在 190 多個國家/地區推出 Windows 11 2022 更新。微軟在過去一年中對 Windows 11 進行了非常大的改進&#xff0c;感覺每個月都有一次更新。對于之前的 Windows 11&#xff0c;相信很多人在使用過程中也遇到過或大或小的問題。而一部…

goaccess_nginx日志分析工具

在控制臺分析nginx日志goaccess -f b.log生成html文件分析nginx日志vi ~/.goacce***ctime-format %Tdate-format %d/%b/%Ylog-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"各參數詳解&#xff1a; man goaccess或Nginx Variable …