일.클라우드 IDE? 새로운 개념입니까?
아니요, 아니요, 아니요, 놀랍게도 2010 년 이미 성숙한 제품이 있었습니다: Cloud9 IDE
현재에 이르기까지, 클라우드 IDE 는 이미 매우 흔해졌습니다. 예를 들어:
-
Cloud9: 아마존이 그 클라우드 컴퓨팅 서비스를 위해 제공하는 IDE
-
Eclipse Che 및 Eclipse Theia: 오래된 IDE 의 클라우드 버전
-
Coder: 그리고 조금 전에 오픈소스가 된 code-server
-
Expo Snack: React Native 의 클라우드 개발 환경
-
Coding: 국내의 클라우드 IDE 제품
-
codesandbox: Web 프로젝트용 클라우드 IDE
이.왜 클라우드 IDE 가 필요한가?
일반적인 개발 워크플로우에서는, 한そろ 의 로컬 환경을 구축합니다. 사용하기 쉬운 IDE 와 한そろ 의 로컬 도구를 포함합니다. 그러나 이 로컬 개발 모드에는 몇 가지 문제가 있습니다:
-
개발 머신의 성능 요구 사항이 높음: 냉간 컴파일에 40 분
-
개발 환경 구성이 복잡함: 도구 환경은 컨테이너 기술 또는 일련의 버전 관리 도구 (nvm 등) 로 해결할 수 있지만, 네트워크, 보안 등의 환경은 그렇게 쉽게 구성할 수 없음
-
특정 디바이스에 의존: 휴가는 갈 수 있지만, 컴퓨터를 가지고 가고, 24 시간 On Call, 10 분 무응답으로 중과실 1 회
-
거대한 코드베이스의 관리 난제: 거대한 코드베이스에서 Git 브랜치를 전환하면, 쉽게 30 분
그래서, 원격 개발의 이념이 탄생했습니다. 원격 테스트 서버에 연결하고, 서버 환경에서 직접 일상 개발 작업을 완료하며, 로컬에서 테스트 환경을 재구축하고 유지하는 비용을 생략합니다
기존의 원격 개발 모드에서는, 엔지니어는 주로 터미널 대화 도구를 통해 원격 머신에 연결하고, vim, naro 등의 텍스트 에디터를 통해 개발합니다. 이러한 에디터는 일반적으로 프로젝트 파일 관리, 실행 작업, 디버거, 스마트 힌트/완성 등의 기본 기능에 대한 지원이 그렇게 우호적이지 않으며, 로컬 IDE 처럼 편안한 개발 환경을 제공할 수 없습니다. 개발 경험이 하락함과 동시에, 개발 효율도 제한됩니다
그렇다면, 양쪽 모두를 만족시키는 방법이 있을까요?
있습니다. IDE 도 원격으로 이동합니다. 즉 클라우드 IDE 입니다
P.S. 또는 클라우드를 끌어내립니다. 즉, 로컬 IDE 가 원격 개발 능력을 제공하지만, 이념적으로는 클라우드 IDE 와 다르지 않습니다 (로컬 IDE 는 브라우저에 해당). 자세한 내용은 VSCode 원격 개발 키트 를 참조
삼.클라우드 IDE 는 어떤 문제를 해결할 수 있는가?
이상과 같이, IDE 의 클라우드는 두方面的问题를 해결할 수 있습니다:
-
로컬 개발 모드에서는 해결이 어려운 문제: 로컬 머신이 매우 강력하지 않아도 되고, 환경을 걱정할 필요가 없으며, 특정 사무 기기에 의존하지 않고, 하드디스크도 더 이상 광기적으로 회전할 필요가 없음
-
원격 개발 모드의 경험 문제: 더 이상 Web Editor 의 장난감이 아니며, 로컬 IDE 와 마찬가지로 사용하기 쉬운 개발 환경
클라우드 IDE 도 원격 개발 모드의 구현 형태의 일종이며, 당연히 로컬 개발 모드에 존재하는 몇 가지 난제를 해결할 수 있습니다
동시에, Web Editor 의 업그레이드 형태로, 클라우드 IDE 는 더 좋은 원격 개발 경험을 제공할 수 있으며, 원격 개발 모드의 경험 단점을 보완하고, 도구가使いにくく 개발 효율을 제한하는 문제를 해결할 수 있습니다
사.클라우드 IDE 는 어떤 작용이 있는가?
로컬 IDE 든 클라우드 IDE 든, 두 가지 기본적인 작용이 있습니다:
-
개발 효율 향상: 잘게 쪼개진 개발 도구/서비스를 통합하고, 도구 체인의 플랫폼화를 실현
-
개발 경험 업그레이드: 개발 워크플로우를 매끄럽게 연결하고, 원스톱 경험을 제공
개발자의 관점에서 보면, IDE 의 핵심은 도구의 통합과 연결에 있습니다. 단순한 도구 세트가 아니라, 이러한 도구들이 가장 자연스러운 방식으로 협력하여 작업하고, 효율적인 워크플로우를 구성하도록 하는 것 입니다. 즉워크벤치/워크어시스턴트 >> 도구 세트:
IDE >> 프로젝트 파일 관리 + 텍스트 에디터 + 대화형 터미널 + 프로젝트 스캐폴딩 + 실행 작업 + 디버거 + 도구 플러그인 + ... 도구
클라우드 서비스 공급업체에게 있어, Cloud Shell, Cloud Editor 에서 Cloud IDE 로의 제품 형태 업그레이드를 실현할 수 있습니다. 일련의 제품 (클라우드 서비스) 을 사용자의 워크플로우와 긴밀하게 결합할 수 있으며, 제품 기능을 더 잘 표현할 수 있을 뿐만 아니라, IDE 를 통해 더 효율적으로 사용자에게 도달할 수 있습니다:
^ FaaS, BaaS
/
클라우드 서비스 사용자 ---> 클라우드 IDE ---> 데이터 스토리지 서비스
\
v 계산 리소스
오.응용 장면
육안으로 확인 가능한 미래에, 클라우드 IDE 는 이러한 응용 장면이 있습니다:
-
FaaS: 함수 즉 서비스. 그렇다면, 함수는 어디서 쓰는가?
-
독립된 기술 생태계: React Native, 미니프로그램, 가시화 구축 시스템 등
-
클라우드 컴퓨팅 제품: 이산적인 제품/서비스 (FaaS 등) 제공에서, 커스텀 개발 환경과 워크플로우 제공으로 전환
-
소스 코드 관리 플랫폼: 상상해보세요, GitHub/GitLab 즉 개발 환경
-
연구 개발 워크벤치: 클라우드 컴퓨팅 시대의 전체 클라우드 연구 개발 모드에서,
요구 - 개발 - 테스트 - 운영의 완전한 링크
육.미래의 연구 개발 모드 (아마도) 는怎样的 것인가?
클라우드 IDE 를 중심으로 한 효율적인 연구 개발 모드는, 아마도 이럴 것입니다:
-
통일된 개발 환경: 컨테이너 기술을 활용하여, 개발 환경도 프로젝트의 일부로, 소스 코드와 마찬가지로 관리할 수 있음 (인프라스트럭처 즉 코드, Infrastructure as Code). 코드 스타일 제약도 더 잘 실시할 수 있음
-
전용 IDE: 오픈소스 IDE 를 커스터마이징하여, 제품/비즈니스에 더 밀착한 전용 IDE 제공
-
완전한 엔지니어링 링크: 편집 - 빌드 - 실행 - 디버그 - 테스트 - 운영
-
매우 빠른 빌드 속도: [클라우드 컴퓨팅의 탄력적 배분 능력](/articles/버클리 연구원들의眼中的 cloud-computing/#articleHeader4) 덕분 에, 컴파일 시간을 대폭 단축할 수 있음
-
Code anywhere: 개발 환경도 클라우드 컴퓨팅 서비스와 마찬가지로 쉽게入手할 수 있으며, 언제든지 어디서나, 코딩하고 싶으면 코딩
-
실시간 협업: 온라인 리뷰, 손잡고 가르치기, 작업 공간 공유, 원클릭으로 코드 공유
-
AI 에 의한 개발 지원: 전체 소스 코드 기반의 스마트 힌트, 심지어 코드 생성, 품질 분석 등
기술이 techless 로 향함과 동시에, 연구 개발 모드는 tool-less 시대를 맞이할지도 모릅니다
아직 댓글이 없습니다