이 글은 Cloudsoft의 친구들이 작성한 게스트 게시물입니다(링크)를 Apache Brooklyn 프로젝트(링크). Cloudsoft와 협력하게 되어 기쁩니다. 클라우드는 새로운 운영 체제이며, Apache Brooklyn과 같은 프로젝트를 통해 기업의 효율성을 높일 수 있습니다. 버튼 클릭 한 번으로 수십 개의 Couchbase Server 인스턴스를 Amazon Web Services에 배포할 수 있다면 어떨까요?
이제 아파치 브루클린에서 카우치베이스 블루프린트를 사용할 수 있습니다!
ZaidM (GitHub) 및 @Nakomis (GitHub)는 확장성이 뛰어난 고성능 JSON 문서 저장소에 대한 지원을 추가하기 위해 Couchbase와 협력하여 Github에서 바쁜 나날을 보내고 있습니다. 최신 커밋(링크), 클러스터 프로비저닝은 작성하는 것만큼이나 쉽습니다:
서비스:
- 유형: brooklyn.entity.nosql.couchbase.CouchbaseCluster
초기 크기: 3위치:
jclouds:Google-컴퓨팅-엔진:
ID: YOUR-GCE-ACCT
자격 증명: YOUR-GCE-TOKEN
지침에 따라 압축을 풀고 "bin/brooklyn launch"를 실행한 다음 웹 콘솔로 이동하여 위의 YAML을 자격 증명과 함께 붙여넣기만 하면 됩니다.
배포하자마자 토폴로지가 표시되고 프로비저닝 및 명령 실행을 추적할 수 있습니다. 웹앱을 연결하기 위해 Couchbase 노드의 하위 집합을 알아야 하는 등 명시적인 종속성이 있는 경우를 제외하고는 Brooklyn이 처리를 관리하는 방식에 따라 모든 것이 병렬로 실행됩니다. 또한 Docker 또는 클라우드가 아닌 기존 머신을 통해 Amazon에서 OpenStack에 이르기까지 다양한 위치에서 실행됩니다.
몇 분 후에 완료되며, Couchbase의 메트릭이 모니터링되어 잘 실행되고 있는지 확인하고 아래에서 보여드리는 것처럼 DR 및 자동 확장 등의 사용자 지정 관리 정책을 실행합니다. 센서 탭에는 관리용 URL과 클라이언트가 연결할 수 있는 엔드포인트도 표시됩니다.
물론 실제 세계에서는 더 많은 것이 필요합니다. 바로 여기서 Brooklyn 프로젝트의 힘이 빛을 발하고 Couchbase 자동화가 빛을 발합니다. 그 방법을 보여주는 좀 더 흥미로운 YAML을 예시해 보겠습니다:
- Couchbase 자격 증명 사용자 지정
- 하드웨어 사양 지정(여러 클라우드에서 이식 가능)
- 확장 정책 첨부
- 일부 프런트엔드 애플리케이션과 함께 카우치베이스 배포하기
이 마지막 요점은 특히 강력합니다. Couchbase 자체에 사용하는 것과 동일한 오픈 소스 도구 체인을 사용하여 Couchbase 주변의 애플리케이션을 배포하고 관리할 수 있습니다. 이를 통해 전체 스택에 대한 대규모 통합 테스트, 완전 자동화 및 버전 제어가 가능한 블루프린트가 가능합니다.
Neykov가 개발한 Couchbase 로드 생성기 웹앱을 예로 들어 보겠습니다(링크).
노드당 작업 수를 500-1000개 범위로 유지하는 정책을 정의하겠습니다. 물론 이렇게 강력한 하드웨어에서 Couchbase를 사용하기에는 무리가 있지만, 우리가 편안하게 시연할 수 있는 범위입니다! Couchbase를 배포하고 웹 앱을 배포했으면, 아래 YAML의 자격 증명을 사용하여 Couchbase의 GUI를 통해 버킷을 생성한 다음 두 개의 로드 생성기를 시작할 수 있습니다. 더 많은 로드 생성기가 필요한 경우 '이펙터' 탭을 사용하여 로드 생성 클러스터를 '크기 조정'하면 Couchbase를 통해 초당 3000개 이상의 작업을 처리하기 시작하면 정책에 따라 클러스터가 확장되는 것을 관찰할 수 있습니다.
다음은 Softlayer에서 실행되는 더 크고 실제적인 YAML 코드의 모습입니다:
이름: 탄력적 부하 생성기가 있는 내 카우치베이스
서비스:
- 유형: brooklyn.entity.nosql.couchbase.CouchbaseCluster
ID: cb-cluster
관리자 사용자 이름: 관리자
관리자 비밀번호: 비밀번호
initialSize: 3
brooklyn.config:
provisioning.properties:
최소 램: 16384
최소 코어: 4
brooklyn.policies:
- 유형: brooklyn.policy.autoscaling.AutoScalerPolicy
brooklyn.config:
메트릭: $brooklyn:sensor("brooklyn.entity.nosql.couchbase.CouchbaseCluster"),
"couchbase.stats.cluster.per.node.ops")
metricLowerBound: 500
metricUpperBound: 1000
최소 풀 크기: 3
최대 풀 크기: 8
- 유형: brooklyn.entity.webapp.ControlledDynamicWebAppCluster
이름: 웹 카우치베이스 로드 젠 클러스터
전쟁: https://github.com/neykov/web-load-gen/raw/master/load-gen.war
brooklyn.config:
provisioning.properties:
최소 코어: 4
java.sysprops:
brooklyn.example.couchbase.nodes: $brooklyn:formatString("'%s'",
component("cb-cluster").attributeWhenReady("couchbase.cluster.node.addresses"))
initialSize: 2
위치:
jclouds:softlayer:
ID: YOUR-SL-ACCT
자격증명: YOUR-SL-API-ACCESS-KEY
클라우드소프트 소개
Cloudsoft는 선도적인 오픈 소스 애플리케이션 관리 회사입니다. Cloudsoft AMP는 아파치 소프트웨어 재단에서 현재 인큐베이션 중인 자율 블루프린트를 통해 애플리케이션을 모델링, 모니터링 및 관리하기 위한 프레임워크인 아파치 브루클린의 상업적으로 지원되는 버전입니다. Apache jcloud(링크). AMP는 멀티클라우드 정책 기반 애플리케이션 거버넌스 및 규정 준수를 제공합니다. AMP는 기업, ISV, IBM Cloud Services와 같은 시스템 통합업체에서 채택하고 있습니다.
브루클린은 훌륭하지만 동기화 게이트웨이에서 버그를 발견하고 수정했습니다. 이에 대한 테스트를 작성하고 싶습니다. 도대체 어떻게 소스로부터 Brooklyn을 빌드하고, 배포를 위해 패키징하고, 제가 수정한 것이 효과가 있는지 테스트할 수 있을까요? 여기에서 변경 사항을 확인할 수 있습니다: https://github.com/apache/incu…