Con Couchbase CapellaCon nuestro DBaaS totalmente alojado, puedes aprovisionar un cluster completo de Couchbase en minutos. Sin tener que saber nada sobre el despliegue de Couchbase, puedes tener toda la infraestructura aprovisionada, configurada, asegurada y, finalmente, lista para usar, todo ello sin necesidad de tener conocimientos específicos en esas áreas, ¡esto es revolucionario! Anteriormente, este tipo de tareas de gestión eran llevadas a cabo por equipos de proyecto y el éxito se medía en semanas, todo lo cual ahora se puede llevar a cabo a través de una interfaz gráfica de usuario en cuestión de minutos.
Sin embargo, no nos hemos limitado a crear una interfaz gráfica de usuario fácil de usar, sino que también hemos lanzado una API que se puede utilizar para aprovisionar clústeres, para muchos propósitos diferentes. Por muy buenas que sean las GUIs, no hay nada mejor que tener un script ejecutándose en segundo plano mientras sigues con tu día, o lees xkcd.
Hablando en serio, automatizar el aprovisionamiento de clústeres ahorra mucho tiempo, tanto en entornos de clústeres transitorios como en casos de uso en los que es necesario crear varios clústeres, por ejemplo, la replicación geodistribuida. La clave aquí también es ayudar a disminuir el trabajo, según el manual SREy esto podría ser sólo la punta del iceberg.
Tras el aprovisionamiento automatizado, puede empezar a configurar clústeres mediante API así como procesos programados. Uno de los principios clave de Capella es la automatización y la utilización de la experiencia de Couchbase, para que usted pueda centrarse en la entrega y el cumplimiento de los objetivos clave del negocio - en términos de ventas, dando a las empresas una ventaja competitiva.
Para darle una muestra de la reducción de trabajo y un cosquilleo de lo que sería como para pasar el tiempo trabajando en sus problemas de negocio, en lugar de su base de datos, he creado un script en Python que le proporcionará un Cluster a través de nuestra API, sin ninguna de esa interacción GUI. El script utiliza los ayudantes API que Jon Giffard (Principal Product Manager de Capella) creó, y creará un cluster basado en una configuración personalizable.
Configuración de Python y claves API
En este repositoriohay un LÉAME que explica los requisitos previos y cómo instalar las bibliotecas de Python necesarias que se enumeran en requisitos.txt. Siempre que su sistema cumpla los requisitos previos y haya instalado los requisitos, utilice la siguiente documentación para generar claves API para su inquilino de Capella (el Org Propietario para generar estas claves).
Tome las claves que ha generado, exporte las claves API como variables o cree un archivo EnvVars.py dentro del archivo capellaAPI como se describe en la sección LÉAME. Puede comprobar si estos pasos se han realizado correctamente ejecutando:
1 |
pitón3 getClouds.py |
Siempre que obtenga una salida similar a la siguiente al ejecutar el programa getClouds.py ha configurado correctamente su entorno:
Automatización del script de provisión
Una vez configurado el entorno, es hora de probar nuestro script de automatización. Dentro del python del repositorio será la carpeta automatización.py archivo. Este archivo sólo tiene dos argumentos: un proyecto nombre y un grupo nombre-el proyecto tiene que haber sido creado antes de ejecutar el script.
Si bien esto es automatizar hasta cierto punto, habrá una configuración inicial necesaria, una vez que haya creado el proyecto puede crear sus clusters utilizando el comando automatización.py guión.
Por ejemplo, si ya he creado un proyecto en mi inquilino de Capella llamado sam-demo entonces puedo crear un cluster en ese proyecto con un nombre de otto así:
1 |
pitón3 automatización.py -pn "sam-demo" -cn "otto-cluster" |
Y lo que debería obtener es el siguiente resultado (redactado en aras de la brevedad):
1 2 3 4 5 6 7 8 9 10 11 12 |
samredman@LEM0210 python % pitón3 automatización.py -pn "sam-demo" -cn "otto-cluster" 2022-03-15 19:02:04,142 - capellaAPICapellaAPI - INFO - /v2/estado 2022-03-15 19:02:04,784 - capellaAPICapellaAPI - INFO - /v2/proyectos?porPágina=100 2022-03-15 19:02:04,954 - capellaAPICapellaAPI - INFO - /v3/racimos 2022-03-15 19:02:06,659 - capellaAPICapellaAPI - INFO - /v2/estado 2022-03-15 19:02:06,957 - capellaAPICapellaAPI - INFO - /v3/racimos/a0e04426-a6cb-4bd9-8bb8-c9232b22b23d/estado 2022-03-15 19:02:12,096 - capellaAPICapellaAPI - INFO - /v3/racimos/a0e04426-a6cb-4bd9-8bb8-c9232b22b23d/estado 2022-03-15 19:02:17,251 - capellaAPICapellaAPI - INFO - /v3/racimos/a0e04426-a6cb-4bd9-8bb8-c9232b22b23d/estado 2022-03-15 19:02:22,419 - capellaAPICapellaAPI - INFO - /v3/racimos/a0e04426-a6cb-4bd9-8bb8-c9232b22b23d/estado 2022-03-15 19:02:27,580 - capellaAPICapellaAPI - INFO - /v3/racimos/a0e04426-a6cb-4bd9-8bb8-c9232b22b23d/estado Actual Grupo Estado: despliegue de Consulte el Capella API, ahora creado grupo otto-grupo |
He eliminado algunas de las comprobaciones repetidas, deberíamos obtener una actualización cada 5 segundos-siéntete libre de editar el intervalo para satisfacer tus necesidades. Este es probablemente un intervalo apropiado porque puede llevar un par de minutos crear un cluster. Comprobar con más frecuencia no añadiría más información, pero algo más lento puede parecer demasiado lento.
¿Qué hemos desplegado exactamente?
He proporcionado una configuración por defecto que cumple los requisitos de especificación de la API de Capella. Echémosle un vistazo en la sección createHostedClusterEnProyecto.py en el archivo python carpeta:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
configuración_clúster = { "medio ambiente": "alojado", "clusterName": nombre_clúster, "descripción": "Ejemplo de creación de un clúster alojado a partir de una API pública", "projectId": proyecto_id, "lugar": { "singleAZ": Verdadero, "alojado": { "proveedor": "aws", "CIDR": "10.199.0.0/20", "región": "eu-oeste-2" } }, "servidores": [ { "computar": "m5.large", "tamaño": 3, "servicios": ["datos", "índice", "buscar", "consulta"], "almacenamiento": { "tamaño": 50, "IOPS": 3000, "tipo": "GP3" }, } ], "supportPackage": { "zona horaria": "GMT, "tipo": "Básico" }, "version": "último", } |
¿Y ahora qué?
Esto era sólo una configuración de prueba de muestra, pero se puede ver que tenemos las especificaciones mínimas para: tamaño de nodo (3), un solo AZ, y todos los servicios. No cumple con las mejores prácticas, pero usted sería capaz de iniciar un clúster para probar el código en contra.
Podemos conectar nuestra aplicación a este clúster sin tener que pasar por la GUI de configuración. Todo lo que tendría que hacer es ajustar la configuración para utilizar su usuarios de la base de datos, Pon tu IP en la lista blanca y conecte su aplicación.
Espero que esto sirva para despertar y tomar conciencia del arte de lo posible con nuestra API. En el futuro, añadiremos más funcionalidades a la API. Cuando lo hagamos, me aseguraré de compartir un ejemplo de ejecución de algunas pruebas de regresión contra un clúster Couchbase Capella aprovisionado automáticamente.
He aquí algunos de los recursos mencionados en este post:
- Couchbase Capella - nuestra DBaaS alojada
- Ejemplos de código de la API pública de Couchbase Cloud - Repositorio GitHub
- Couchbase Capella - Documentación de la API pública
- Configuración de Capella: gestión de la documentación de los usuarios de la base de datos
- Configuración de Capella - permitir una documentación sobre direcciones IP/listas blancas