Kubernetes

gopaddle, 가벼운 내부 개발자 플랫폼(IDP) 소개

라온클 2023. 4. 28. 15:23

이미지를 클릭하면 gopaddle 공식 홈페이지로 이동합니다.

 

역자의 말: 본 포스팅은 기계 번역 후에 많은 의역을 통해 변경되었습니다. 보다 정확한 이해를 위해서는 원문을 보는 것이 좋습니다.

원본 포스팅 :

https://medium.com/@vinothiniraju/streamlining-kubernetes-deployment-with-ready-built-developer-platform-5ba0cbb4facf

 

Streamlining Kubernetes Deployment with Ready-Built Developer Platform

In today’s fast-paced, ever-changing business landscape, the ability to quickly and efficiently develop new applications is critical to…

medium.com

 

 


오늘날 빠르고 끊임없이 변화하는 비즈니스 환경에서는 새로운 애플리케이션을 빠르고 효율적으로 개발하는 능력이 성공의 핵심입니다. DevOps는 자동화와 빠른 피드백 루프를 통해 소프트웨어 배포 팀 간의 마찰을 줄이기 위해 많은 사람들이 찾는 철학이 되었습니다. DevOps 모멘텀이 시작되었을 때만 해도 Ansible, Chef, Puppet 등과 같은 도구는 셀 수 없을 정도로 많았습니다. 그러나 하이브리드 환경에서 애플리케이션을 배포하고 관리하는 방식에 대한 추상화는 없었습니다. 개발자는 각기 다른 애플리케이션과 환경에 맞게 자동화를 커스텀해야 했습니다. 개발자가 하이브리드 클라우드 환경에서 애플리케이션을 매우 유연하게 빌드하고 호스팅할 수 있게 된 것은 Docker와 쿠버네티스 덕분이었습니다. 이 두 기술의 등장 이후 DevOps 도구의 수도 급격하게 증가했습니다. 현재 약 500개 이상의 오픈 소스 CNCF 프로젝트와 1000개 이상의 인증된 쿠버네티스 솔루션이 존재합니다.

 

개발자는 컨테이너와 분산 시스템에 대해 배우고 숙련도를 높이고 모놀리식 애플리케이션을 마이크로서비스 아키텍처로 마이그레이션하는 한편, 다른 한편에서는 빠르게 성장하는 도구 체인과 싸우고 있습니다. 

 

기술 스택의 압도적인 복잡성과 이러한 도구의 유지 관리 가능성으로 인해 클라우드 네이티브 전환은 더 많은 좌절과 스트레스를 안겨주었습니다. 2020년 D2IQ의 설문조사에 따르면 클라우드 네이티브 개발자 및 아키텍트의 약 44%가 클라우드 네이티브 전환이 실망스러웠다고 답했습니다.

 

조직은 이러한 복잡성이 개발자의 생산성과 팀 사기에 미치는 영향을 서서히 깨닫기 시작했습니다. 이에 따라 내부 개발자 플랫폼(IDP)이라는 내부 플랫폼을 구축하는 새로운 길이 열렸습니다. 이러한 플랫폼을 구축하는 프로세스를 이제 플랫폼 엔지니어링이라고 널리 부릅니다. 플랫폼 엔지니어링의 목표는 여전히 동일합니다. 즉, 팀 간의 마찰을 줄이고 팀이 더 빠르게 결과물을 제공할 수 있도록 하는 것입니다. 플랫폼 엔지니어링은 애플리케이션 개발자, QA팀, IT, 지원 및 사이트 안정성 팀에 이르기까지 전체 소프트웨어 배포 팀을 위한 단일 소스 역할을 합니다.

 

DevOps가 복잡하다면, 플랫폼 엔지니어링은 개발자를 위해 복잡성을 통합하고 추상화한다는 점에서 훨씬 더 복잡합니다. 예를 들어, 플랫폼은 여러 프로그래밍 언어와 애플리케이션을 지원할 수 있어야 하고, 하이브리드 환경을 프로비저닝하고 지원해야 하며, 분산 아키텍처를 지원해야 하고, 확장이 용이하고 새로운 도구를 지원해야 하는 등 여러 가지가 필요합니다. 이러한 성격의 추상화 플랫폼은 항공기 제작과 유사한 엔지니어링 관행인 시스템 엔지니어링으로 간주할 수 있습니다. 플랫폼은 신뢰성, 확장성, 단순성, 유지보수성 등과 같은 다양한 기능을 충족해야 하며, 이러한 플랫폼을 사내에 구축하려면 초기 및 장기 투자가 필요합니다.

 

이 지점이 gopaddle이 큰 가치를 가지는 부분입니다. 로우코드(Low Code) 내부 개발자 플랫폼(IDP)인 gopaddle을 사용하면 기업은 기존 통합 및 도구 세트에서 플랫폼 엔지니어링 프로세스를 시작하고 특정 요구사항에 맞게 플랫폼을 천천히 확장할 수 있습니다.

 

gopaddle을 사용하여 개발자는 쿠버네티스 인프라 및 배포를 설정하는 데 필요한 모든 것을 자동 생성할 수 있습니다. Dockerfile에서 쿠버네티스 YAML 파일, Helm 차트 및 파이프라인 코드에 이르기까지 gopaddle은 몇 분 안에 개발자가 쿠버네티스에서 실행되는 애플리케이션을 컨테이너화하고 가져오는 작업을 도와줍니다. 또한 개발자는 애플리케이션 성능을 모니터링하고 알람 및 알림을 관리하여 쿠버네티스 클러스터에서 기존 애플리케이션을 효율적으로 관리할 수 있습니다.




 

gopaddle Lite

gopaddle Lite는 gopaddle의 평생 무료 커뮤니티 에디션으로, 쿠버네티스 클러스터에 단일 노드/단일 사용자 모드로 설치할 수 있습니다. gopaddle Lite에는 개발자가 소규모 쿠버네티스 배포를 위한 셀프 서비스 포털을 무료로 구축하고 확장하는 만큼 업그레이드할 수 있도록 지원하는 다양한 기능이 포함되어 있습니다.

 

 

 

바로 DevOps 기능을 사용할 수 있는 턴키 솔루션

1. DevOps 대시보드

대시보드(Dashboard)에서는 gopaddle에 의해 가져오고 관리되는 클러스터, 볼륨, 애플리케이션, 이벤트 및 프로젝트를 한눈에 볼 수 있습니다.

 

이미지 링크: https://gopaddle-marketing.s3.ap-southeast-2.amazonaws.com/docker-desktop-screenshots/gp-dashboard.png

 

 

 

2. 빌드 & 취약성 대시보드

빌드 및 취약성(builds and vulnerabilities) 대시보드에서는 Docker 이미지 빌드 상태와, 빌드 과정에서 식별된 취약성의 심각도를 볼 수 있습니다.

 

이미지 링크: 

https://gopaddle-marketing.s3.ap-southeast-2.amazonaws.com/docker-desktop-screenshots/gp-devops-dashboard.png




3. 빠른 시작 마법사

gopaddle은 3가지 유형의 빠른 시작 마법사(Quickstart wizard)를 제공합니다. 

 

 

클러스터 프로비저닝(Launch Kubernetes)

세분화된 액세스 제어를 통해 GKE 또는 AWS 클라우드 계정을 온보딩하고 멀티 클라우드 쿠버네티스 클러스터를 프로비저닝할 수 있습니다. SaaS  Enterprise Edition에서만 사용할 수 있습니다.

 

Docker화 및 배포(Modernize)

GitHub 또는 GitLab 계정에서 소스 코드를 분석하여 Docker파일 및 쿠버네티스 YAML 파일을 자동으로 생성하고 쿠버네티스 클러스터에 배포합니다.

 

파이프라인 코드 생성(Create Pipeline)

gopaddle을 통해 배포된 애플리케이션을 위한 Jenkins 또는 GitHub Actions 또는 Azure DevOps 파이프라인 코드를 생성합니다.

 

이미지 링크: https://gopaddle-marketing.s3.ap-southeast-2.amazonaws.com/docker-desktop-screenshots/quick-start-wizards.png

 

 

 

 

 

4. 마켓 플레이스

마켓 플레이스(Marketplace)는 디자인 스튜디오에서 구독하고 시각화할 수 있는 클라우드 네이티브 Helm 템플릿 카탈로그입니다. 이 Helm 템플릿들은 간단한 UI 기반 마법사를 사용하여 쿠버네티스 클러스터에서 실행할 수 있습니다.

이미지 링크: https://gopaddle-marketing.s3.ap-southeast-2.amazonaws.com/docker-desktop-screenshots/gp-marketplace.png




5. 멀티 클라우드 클러스터 관리

다양한 유형의 클러스터를 프로비저닝하고 중앙에서 관리할 수 있습니다. SaaS 및 Enterprise 에디션을 사용하면 개발자는 AWS EKS, Azure AKS 및 Google GKE와 같은 프로덕션 준비 클러스터를 프로비저닝하거나, 자체 클러스터를 가져와서 등록한 후 안전한 배스천 호스트를 사용할 수 있습니다. 이 클러스터들은 중앙에서 관리할 수 있습니다. goppadle Lite 에디션을 사용하면 로컬에 있는 단일 노드 클러스터에 gopaddle을 설치하고 로컬 클러스터의 Deployment를 관리하는 데 gopaddle을 활용할 수 있습니다.

 

클러스터가 프로비저닝되거나 등록되자마자 gopaddle은 바로 사용 가능한 모니터링 및 알림 기능을 위해 Prometheus 및 Grafana와 같은 몇 가지 애드온을 해당 클러스터에 자동으로 설치합니다.





이미지 링크: https://gopaddle-marketing.s3.ap-southeast-2.amazonaws.com/docker-desktop-screenshots/gp-cluster.png



 

6. 디자인 스튜디오

디자인 스튜디오(Design Studio)는 쿠버네티스 리소스의 시각적 표현을 제공하며, YAML 형식을 배우지 않고도 쿠버네티스 리소스를 빠르게 설계하고 구성할 수 있도록 도와줍니다.

 

 

 

 

이미지 링크: https://gopaddle-marketing.s3.ap-southeast-2.amazonaws.com/docker-desktop-screenshots/gp-designstudio.png 

 

 

7. 애플리케이션 관리

여러 환경의 애플리케이션을 단일 콘솔에서 중앙 집중식으로 모니터링하고 관리할 수 있습니다.

 

 

이미지 링크: https://gopaddle-marketing.s3.ap-southeast-2.amazonaws.com/docker-desktop-screenshots/gp-app-dashboard.png

 

 

 

8. 알람 & 알림 기능(Alerts & Notifications)

gopaddle에서 관리하는 애플리케이션과 클러스터에 대해 알람 및 알림을 구성할 수 있습니다. gopaddle은 모든 유형의 수신 webhook, Slack, AWS SNS, Jenkins Jobs, PagerDuty를 알림 채널로 지원합니다.

이미지 링크: https://gopaddle-marketing.s3.ap-southeast-2.amazonaws.com/docker-desktop-screenshots/gp-alerts-notifications.png

 

 

9. 개발자 도구 - 컨테이너 터미널

컨테이너 터미널(Terminal)과 같은 내장된 개발자 도구를 사용하면 kubectl 명령어를 사용하지 않고도 Deployment에 생긴 문제를 트러블슈팅 할 수 있습니다.

이미지 링크: https://gopaddle-marketing.s3.ap-southeast-2.amazonaws.com/docker-desktop-screenshots/gp-devtools-1.png

 

 

 

10. 개발자 도구 - 컨테이너 로그

컨테이너 로그와 같은 내장된 개발자 도구를 사용하면 kubectl 명령어를 사용하지 않고도 Deployment에 생긴 문제를 트러블슈팅 할 수 있습니다.

 

이미지 링크: https://gopaddle-marketing.s3.ap-southeast-2.amazonaws.com/docker-desktop-screenshots/gp-devtools-2.png

 

 

 

 

gopaddle Lite를 설치하는 방법

[Ubuntu] Microk8s

https://help.gopaddle.io/en/articles/6654354-install-gopaddle-lite-microk8s-addon-on-ubuntu 

 

[Mac OS] Microk8s

https://help.gopaddle.io/en/articles/6654409-install-gopaddle-lite-microk8s-addon-on-macos 

 

[SUSE] Rancher Prime

https://help.gopaddle.io/en/articles/6977654-install-gopaddle-lite-on-suse-rancher-prime 

 

Docker Desktop

http://help.gopaddle.io/en/articles/7834300-installing-gopaddle-lite-on-docker-desktop 

 

Akamai Linode

https://www.linode.com/marketplace/apps/gopaddle/gopaddle/ 

 

Helm Chart

https://artifacthub.io/packages/helm/gopaddle-lite/gopaddle 



다양한 프로그래밍 언어 지원

gopaddle은 다양한 프로그래밍 언어를 지원하므로 개발자가 선택한 언어로 애플리케이션을 쉽게 배포할 수 있습니다. 현재 Python, Go, Node.js, PHP, Java 및 .NET Core를 포함한 모든 유형의 Linux 워크로드가 지원됩니다.





턴키(Turn key) 솔루션

gopaddle은 널리 사용되는 30개 이상의 DevOps 타사(third party) 도구들과 통합되어 있습니다. 개발자는 GitHub이나 Docker Hub와 같은 친숙한 도구를 사용하여 쿠버네티스 클러스터에 앱을 코딩, 빌드 및 배포하고 Slack, SNS, Jenkins 및 webhook과 통합하여 이벤트 기반 워크플로를 구축할 수 있습니다.

 

 

 

참고하시면 좋은 링크

[원문] Streamlining Kubernetes Deployment with Ready-Built Developer Platform

https://medium.com/@vinothiniraju/streamlining-kubernetes-deployment-with-ready-built-developer-platform-5ba0cbb4facf 

 

[공식 홈페이지] gopaddle

https://gopaddle.io

 

[소식] Canonical Adds Bevy of Tools to Curated Instances of Kubernetes

https://containerjournal.com/features/canonical-adds-bevy-of-tools-to-curated-instances-of-kubernetes/

 

[소식] MicroK8s v1.26 is out!

https://itnext.io/microk8s-v1-26-is-out-e9cda567844e

 

[블로그] Canonical Kubernetes 1.26 is now generally available

https://canonical.com/blog/canonical-kubernetes-1-26-is-now-generally-available