Статьи

Чертежи Couchbase в Apache Brooklyn

Это гостевой пост наших друзей в Cloudsoft ( ссылка ) по проекту Apache Brooklyn ( ссылка ). Мы рады сотрудничеству с Cloudsoft. Облако — это новая операционная система, и такие проекты, как Apache Brooklyn, позволяют повысить эффективность предприятия. Что если бы вы могли развернуть дюжину экземпляров Couchbase Server на веб-серверах Amazon одним нажатием кнопки?


Чертежи Couchbase теперь доступны в Apache Brooklyn!

@ZaidM ( GitHub ) и @Nakomis ( GitHub ) были заняты на Github, работая с Couchbase, чтобы добавить поддержку чрезвычайно масштабируемого, высокопроизводительного хранилища документов JSON. С их последним коммитом ( ссылкой ) подготовка кластера так же проста, как запись:

name: My Couchbase Cluster
services:
- type: brooklyn.entity.nosql.couchbase.CouchbaseCluster
  initialSize: 3
 
location:
  jclouds:google-compute-engine:
    identity: your-gce-acct
    credential: your-gce-token

Просто следуйте инструкциям ( ссылка ), распакуйте и запустите «bin / brookyn launch», затем перейдите в веб-консоль и вставьте YAML выше (с вашими учетными данными).

При развертывании отображается топология, и вы можете отслеживать подготовку и выполнение команд. Все это выполняется параллельно, благодаря тому, как Brooklyn управляет обработкой, за исключением случаев, когда существует явная зависимость — например, необходимо знать подмножество узлов Couchbase, чтобы веб-приложение могло подключиться. И он будет работать во многих местах, от Amazon до OpenStack, с помощью Docker или ранее не облачных машин.

Через несколько минут он будет завершен, и показатели из Couchbase будут отслеживаться, чтобы убедиться, что он работает нормально и управляет вашими пользовательскими политиками управления, такими как DR и автоматическое масштабирование, как мы покажем ниже. На вкладках датчиков также отображаются URL-адреса для управления и конечные точки, к которым клиенты могут подключаться.

Консоль-sensors.png

Конечно, в реальном мире вам нужно больше. Вот где сияет мощь Бруклинского проекта и сверкает ваша автоматизация Couchbase. Давайте проиллюстрируем более интересный YAML, который показывает, как:

  • настройка учетных данных Couchbase
  • указать аппаратную спецификацию (переносимую через множество облаков)
  • прикрепление политики масштабирования
  • развертывание Couchbase вместе с некоторыми интерфейсными приложениями

Этот последний пункт особенно полезен: вы можете использовать ту же цепочку инструментов с открытым исходным кодом для развертывания и управления приложениями в Couchbase, что и для самой Couchbase. Это позволяет проводить интеграционное тестирование в масштабе, полностью автоматизировать и управлять версиями чертежей для целых стеков.

В качестве примера приведем веб-приложение генератора нагрузки Couchbase, разработанное @Neykov ( ссылка ).

Мы определим политику, которая стремится поддерживать количество операций на узел в диапазоне 500-1000. Это, конечно, ничего не значит для Couchbase на таком мощном оборудовании, но этот диапазон мы можем с комфортом продемонстрировать! После развертывания Couchbase и развертывания нашего веб-приложения вы можете создать корзину в Couchbase через ее графический интерфейс (используя учетные данные в YAML ниже), а затем запустить два генератора нагрузки. Если вам нужно больше генераторов нагрузки, используйте вкладку «эффекторы», чтобы «изменить размер» кластера нагрузки, и, когда вы начнете управлять 3000+ операций в секунду через Couchbase, вы заметите его увеличение в соответствии с политикой.

Вот большой, реальный YAML-код во всей своей красе, запущенный в Softlayer:

name: My Couchbase with Elastic Load Generator

services:

- type: brooklyn.entity.nosql.couchbase.CouchbaseCluster
  id: cb-cluster
  adminUsername: Administrator
  adminPassword: Password
  initialSize: 3
  brooklyn.config:
    provisioning.properties:
    minRam: 16384
    minCores: 4
  brooklyn.policies:
  - type: brooklyn.policy.autoscaling.AutoScalerPolicy
    brooklyn.config:
      metric: $brooklyn:sensor("brooklyn.entity.nosql.couchbase.CouchbaseCluster",
        "couchbase.stats.cluster.per.node.ops")
      metricLowerBound: 500
      metricUpperBound: 1000
      minPoolSize: 3
      maxPoolSize: 8

- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster
  name: Web Couchbase Load Gen Cluster
  war: https://github.com/neykov/web-load-gen/raw/master/load-gen.war
  brooklyn.config:
    provisioning.properties:
      minCores: 4
    java.sysprops:
      brooklyn.example.couchbase.nodes: $brooklyn:formatString("'%s'",
        component("cb-cluster").attributeWhenReady("couchbase.cluster.node.addresses"))
  initialSize: 2

  location:
    jclouds:softlayer:
      identity: your-sl-acct
      credential: your-sl-api-access-key

О Cloudsoft

Cloudsoft — ведущая компания по управлению приложениями с открытым исходным кодом. Cloudsoft AMP — это коммерчески поддерживаемая версия Apache Brooklyn, платформы для моделирования, мониторинга и управления приложениями с помощью автономных чертежей, которые в настоящее время находятся в стадии инкубации в Apache Software Foundation. Использует Apache jclouds ( ссылка ). AMP обеспечивает управление и соответствие приложениям на основе политик в нескольких облаках. AMP был принят предприятиями, независимыми разработчиками ПО и системными интеграторами, такими как IBM Cloud Services.