5 Revolutionary Cloud Tools Transforming Vocational Training

Block storage is a fundamental technology in modern data storage solutions, enabling efficient and high-performance access to data for a wide range of applications, from databases to file systems. Designed to provide flexibility and scalability, block storage allows data to be stored in blocks that can be independently managed, which streamlines storage management across different […]
The post Introduction to Block Storage appeared first on Collabnix.
Introduction Object storage is a modern data storage architecture designed to handle vast amounts of unstructured data. Unlike traditional storage methods such as block or file storage, object storage excels in managing large-scale data like multimedia, backups, and archives. This tutorial introduces the core concepts of object storage, its benefits, and how it fits into […]
The post What is Object Storage? Use cases & benefits appeared first on Collabnix.
Are you struggling to manage your data infrastructure on Kubernetes? Do you want a solution that is easy to use, powerful, and scalable? Then you might need KubeBlocks!
KubeBlocks is an open-source platform that makes it easy to deploy, manage, and scale databases, data warehouses, and other data-intensive applications on Kubernetes. It provides a rich set of features for monitoring, backup, and recovery, and it supports a wide variety of databases, including MySQL, PostgreSQL, MongoDB, Kafka, Redis, Vector databases, Pulsar, and more.
▬▬▬▬▬▬ Additional Info
▬▬▬▬▬▬
Gist with the commands: https://gist.github.com/vfarcic/7c2ca143e62eb1ffdb79cf31f29128f3
KubeBlocks: https://kubeblocks.io
▬▬▬▬▬▬ Sponsorships
▬▬▬▬▬▬
If you are interested in sponsoring this channel, please use https://calendly.com/vfarcic/meet to book a timeslot that suits and we’ll go over the details. Or feel free to contact me over Twitter or LinkedIn (see below)
▬▬▬▬▬▬ Livestreams & podcasts
▬▬▬▬▬▬
Podcast: https://www.devopsparadox.com/
Live streams: https://www.youtube.com/c/DevOpsParadox
▬▬▬▬▬▬ Contact me
▬▬▬▬▬▬
Follow me on Twitter: https://twitter.com/vfarcic
Follow me on LinkedIn: https://www.linkedin.com/in/viktorfarcic/
Today we delve into the world of Kubernetes resources, Custom Resources (CRs), Custom Resource Definitions (CRDs), and Operators. Learn how these work together.
▬▬▬▬▬▬ Sponsoships
▬▬▬▬▬▬
If you are interested in sponsoring this channel, please use https://calendly.com/vfarcic/meet to book a timeslot that suits and we’ll go over the details. Or feel free to contact me over Twitter or LinkedIn (see below)
▬▬▬▬▬▬ Livestreams & podcasts
▬▬▬▬▬▬
Podcast: https://www.devopsparadox.com/
Live streams: https://www.youtube.com/c/DevOpsParadox
▬▬▬▬▬▬ Contact me
▬▬▬▬▬▬
Follow me on Twitter: https://twitter.com/vfarcic
Follow me on LinkedIn: https://www.linkedin.com/in/viktorfarcic/
Explore the power and convenience of Aiven, a single service that allows you to manage all your databases in the cloud. Discover how Aiven simplifies database management, provides easy scalability, and ensures robust security. Take your cloud infrastructure to the next level with Aiven’s comprehensive solution. Use https://console.aiven.io/signup?referral_code=rgmrwa4y5i7r9o9y1a1u
for extra free credits
▬▬▬▬▬▬ Additional Info
▬▬▬▬▬▬
Gist with the commands: https://gist.github.com/vfarcic/29e19cb6029067f8176e318ee6be7021
Aiven: https://aiven.io
▬▬▬▬▬▬ Sponsoships
▬▬▬▬▬▬
If you are interested in sponsoring this channel, please use https://calendly.com/vfarcic/meet to book a timeslot that suits and we’ll go over the details. Or feel free to contact me over Twitter or LinkedIn (see below)
▬▬▬▬▬▬ Livestreams & podcasts
▬▬▬▬▬▬
Podcast: https://www.devopsparadox.com/
Live streams: https://www.youtube.com/c/DevOpsParadox
▬▬▬▬▬▬ Contact me
▬▬▬▬▬▬
Follow me on Twitter: https://twitter.com/vfarcic
Follow me on LinkedIn: https://www.linkedin.com/in/viktorfarcic/
Vector databases have been getting a lot of attention since the developer community realized how they can enhance large language models (LLMs). Weaviate is an open source vector database that enables modern search capabilities, such as vector search, hybrid search, and generative search. With Weaviate, you can build advanced LLM applications, next-level search systems, recommendation systems, and more.
This article explains what vector databases are and highlights key features of the Weaviate vector database. Learn how to install Weaviate on Docker using Docker Compose so you can take advantage of semantic search within your Dockerized environment.
The core feature of vector databases is storing vector embeddings of data objects. This functionality is especially helpful with the growing amount of unstructured data (e.g., text or images), which is difficult to manage and process with traditional relational databases. The vector embeddings are a numerical representation of the data objects — usually generated by a machine learning (ML) model — and enable the search and retrieval of data based on semantic similarity (vector search).
Vector databases do much more than just store vector embeddings: As you can imagine, retrieving data based on similarity requires a lot of comparing between objects and thus can take a long time. In contrast to other types of databases that can store vector embeddings, a vector database can retrieve data fast. To enable low-latency search queries, vector databases use specific algorithms to index the data.
Additionally, some vector databases, like Weaviate, store the vector embeddings and the original data object, which lets you combine traditional search with modern vector search for more accurate search results.
With these functionalities, vector databases are usually used in search or similar tasks (e.g., recommender systems). With the recent advancements in the LLM space, however, vector databases have also proven effective at providing long-term memory and domain-specific context to conversational LLMs. This means that you can leverage LLM capabilities on your private data or your specific field of expertise.
Key highlights of the Weaviate vector database include:
Ensure you have both the docker
and the docker-compose
CLI tools installed. For the following section, we assume you have Docker 17.09.0 or higher and Docker Compose V2 installed. If your system has Docker Compose V1 installed instead of V2, use docker-compose
instead of docker compose
. You can check your Docker Compose version with:
$ docker compose version
To start Weaviate with Docker Compose, you need a Docker Compose configuration file, typically called docker-compose.yml
. Usually, there’s no need to obtain individual images, as we distribute entire Docker Compose files.
You can obtain a Docker Compose file for Weaviate in two different ways:
docker-compose.yml
file for your purposes (including all module containers) and directly download it.This article will review the steps to configure your Docker Compose file with the Weaviate Docker Compose configurator.
First, define which version of Weaviate you want to use (Figure 1). We recommend always using the latest version.
The following shows a minimal example of a Docker Compose setup for Weaviate:
version: '3.4' services: weaviate: image: semitechnologies/weaviate:1.20.5 ports: - 8080:8080 restart: on-failure:0 environment: QUERY_DEFAULTS_LIMIT: 25 AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true' PERSISTENCE_DATA_PATH: '/var/lib/weaviate' DEFAULT_VECTORIZER_MODULE: 'none' CLUSTER_HOSTNAME: 'node1'
Configure persistent volume for Docker Compose file (Figure 2):
Setting up a persistent volume to avoid data loss when you restart the container and improve reading and writing speeds is recommended.
You can set a persistent volume in two ways:
weaviate_data
and mount it to the PERSISTENCE_DATA_PATH
inside the container after starting Weaviate with Docker Compose:services: weaviate: volumes: - weaviate_data:/var/lib/weaviate # etc. volumes: weaviate_data:
./weaviate_data
on the host to the PERSISTENCE_DATA_PATH
inside the container after starting Weaviate with Docker Compose:services: weaviate: volumes: - ./weaviate_data:/var/lib/weaviate # etc.
Weaviate can be used with various modules, which integrate directly with inferencing services like OpenAI, Cohere, or Hugging Face. These modules can be used to vectorize any media type at import and search time automatically or to extend Weaviate’s core capabilities with generative modules.
You can also use Weaviate without any modules (standalone). In this case, no model inference is performed at import or search time, meaning you need to provide your own vectors in both scenarios. If you don’t need any modules, you can skip to Step 4: Runtime.
Configure modules for Docker Compose file (Figure 3):
Currently, Weaviate integrates three categories of modules:
Note that many modules (e.g., transformer models) are neural networks built to run on GPUs. Although you can run them on CPU, enabling GPU `ENABLE_CUDA=1`
, if available, will result in faster inference.
The following shows an example of a Docker Compose setup for Weaviate with the sentence-transformers model:
version: '3.4' services: weaviate: image: semitechnologies/weaviate:1.20.5 restart: on-failure:0 ports: - "8080:8080" environment: QUERY_DEFAULTS_LIMIT: 20 AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true' PERSISTENCE_DATA_PATH: "./data" DEFAULT_VECTORIZER_MODULE: text2vec-transformers ENABLE_MODULES: text2vec-transformers TRANSFORMERS_INFERENCE_API: http://t2v-transformers:8080 CLUSTER_HOSTNAME: 'node1' t2v-transformers: image: semitechnologies/transformers-inference:sentence-transformers-multi-qa-MiniLM-L6-cos-v1 environment:
In the final step of the configurator, select Docker Compose for your runtime (Figure 4):
Once your configuration is complete, you will see a snippet similar to the following to download the docker-compose.yml
file, which has been adjusted to your selected configuration.
$ curl -o docker-compose.yml "https://configuration.weaviate.io/v2/docker-compose/docker-compose.yml?<YOUR-CONFIGURATION>"
After downloading the Docker Compose file from the configurator, you can directly start Weaviate on Docker or customize it further.
You can set additional environment variables to further customize your Weaviate setup (e.g., by defining authentication and authorization). Additionally, you can create a multi-node setup with Weaviate by defining a founding member and other members in the cluster.
Founding member: Set up one node as a “founding” member by configuring CLUSTER_GOSSIP_BIND_PORT
and CLUSTER_DATA_BIND_PORT
:
weaviate-node-1: # Founding member service name ... # truncated for brevity environment: CLUSTER_HOSTNAME: 'node1' CLUSTER_GOSSIP_BIND_PORT: '7100' CLUSTER_DATA_BIND_PORT: '7101'
Other members in the cluster: For each further node, configure CLUSTER_GOSSIP_BIND_PORT
and CLUSTER_DATA_BIND_PORT
and configure to join the founding member’s cluster using the CLUSTER_JOIN
variable:
weaviate-node-2: ... # truncated for brevity environment: CLUSTER_HOSTNAME: 'node2' CLUSTER_GOSSIP_BIND_PORT: '7102' CLUSTER_DATA_BIND_PORT: '7103' CLUSTER_JOIN: 'weaviate-node-1:7100' # This must be the service name of the "founding" member node.
Optionally, you can set a hostname for each node using CLUSTER_HOSTNAME
.
Note that it’s a Weaviate convention to set the CLUSTER_DATA_BIND_PORT
to 1 higher than CLUSTER_GOSSIP_BIND_PORT
.
Once you have your Docker Compose file configured to your needs, you can run Weaviate in your Docker environment.
Before starting Weaviate on Docker, ensure that the Docker Compose file is named exactly docker-compose.yml
and that you are in the same folder as the Docker Compose file.
Then, you can start up with the whole setup by running:
$ docker compose up -d
The -d
option runs containers in detached mode. This means that your terminal will not attach to the log outputs of all the containers.
If you want to attach to the logs of specific containers (e.g., Weaviate), you can run the following command:
$ docker compose up -d && docker compose logs -f weaviate
Congratulations! Weaviate is now running and is ready to be used.
To avoid losing your data, shut down Weaviate with the following command:
$ docker compose down
This will write all the files from memory to disk.
This article introduced vector databases and how they can enhance LLM applications. Specifically, we highlighted the open source vector database Weaviate, whose advantages include fast vector search at scale, hybrid search, and integration modules to state-of-the-art ML models from OpenAI, Cohere, Hugging Face, etc.
We also provided a step-by-step guide on how to install Weaviate on Docker using Docker Compose, noting that you can obtain a docker-compose.yml
file from the Weaviate Docker Compose configurator, which helps you to customize your Docker Compose file for your specific needs.
Visit our AI/ML page and read the article collection to learn more about how developers are using Docker to accelerate the development of their AI/ML applications.
This video explores the fundamentals to master database schema management using Atlas Kubernetes Operator. Learn how to efficiently manage your database schemas in a Kubernetes environment, improving scalability and reducing maintenance efforts.
▬▬▬▬▬▬ Additional Info
▬▬▬▬▬▬
Gist with the commands: https://gist.github.com/vfarcic/e3c79ef280067e85ed7b369207c28782
Atlas Kubernetes Operator: https://atlasgo.io
Should We Run Databases In Kubernetes? CloudNativePG (CNPG) PostgreSQL: https://youtu.be/Ny9RxM6H6Hg
Mastering Argo CD Sync Waves: A Deep Dive into Effective GitOps Synchronization Strategies: https://youtu.be/LKuRtOTvlXk
How To Inspect, Plan, Migrate DB Schemas With Atlas: https://youtu.be/JLvHpXJ1hHk
▬▬▬▬▬▬ Sponsoships
▬▬▬▬▬▬
If you are interested in sponsoring this channel, please use https://calendly.com/vfarcic/meet to book a timeslot that suits and we’ll go over the details. Or feel free to contact me over Twitter or LinkedIn (see below)
▬▬▬▬▬▬ Livestreams & podcasts
▬▬▬▬▬▬
Podcast: https://www.devopsparadox.com/
Live streams: https://www.youtube.com/c/DevOpsParadox
▬▬▬▬▬▬ Contact me
▬▬▬▬▬▬
Follow me on Twitter: https://twitter.com/vfarcic
Follow me on LinkedIn: https://www.linkedin.com/in/viktorfarcic/
Should we run Databases in Kubernetes? If we should, what’s the best way to do it? In this video, we’ll explore the options and see how CloudNativePG can help us.
▬▬▬▬▬▬ Additional Info
▬▬▬▬▬▬
Gist with the commands: https://gist.github.com/vfarcic/8301efb15748af1da3e376b7132e519e
CloudNativePG: https://cloudnative-pg.io
EDB: https://enterprisedb.com
▬▬▬▬▬▬ Sponsoships
▬▬▬▬▬▬
If you are interested in sponsoring this channel, please use https://calendly.com/vfarcic/meet to book a timeslot that suits and we’ll go over the details. Or feel free to contact me over Twitter or LinkedIn (see below)
▬▬▬▬▬▬ Livestreams & podcasts
▬▬▬▬▬▬
Podcast: https://www.devopsparadox.com/
Live streams: https://www.youtube.com/c/DevOpsParadox
▬▬▬▬▬▬ Contact me
▬▬▬▬▬▬
Follow me on Twitter: https://twitter.com/vfarcic
Follow me on LinkedIn: https://www.linkedin.com/in/viktorfarcic/
It’s time to build an internal developer platform (IDO) with Crossplane, Argo CD, SchemaHero, External Secrets Operator (ESO), GitHub Actions, Port, and a few others.
▬▬▬▬▬▬ Additional Info
▬▬▬▬▬▬
Gist with the commands: https://gist.github.com/vfarcic/78c1d2a87baf31512b87a2254194b11c
DevOps MUST Build Internal Developer Platform (IDP): https://youtu.be/j5i00z3QXyU
How To Create A “Proper” CLI With Shell And Charm Gum: https://youtu.be/U8zCHA-9VLA
Crossplane – GitOps-based Infrastructure as Code through Kubernetes API: https://youtu.be/n8KjVmuHm7A
How To Shift Left Infrastructure Management Using Crossplane Compositions: https://youtu.be/AtbS1u2j7po
Argo CD – Applying GitOps Principles To Manage A Production Environment In Kubernetes: https://youtu.be/vpWQeoaiRM4
How To Apply GitOps To Everything – Combining Argo CD And Crossplane: https://youtu.be/yrj4lmScKHQ
SchemaHero – Database Schema Migrations Inside Kubernetes: https://youtu.be/SofQxb4CDQQ
Manage Kubernetes Secrets With External Secrets Operator (ESO): https://youtu.be/SyRZe5YVCVk
Github Actions Review And Tutorial: https://youtu.be/eZcAvTb0rbA
GitHub CLI (gh) – How to manage repositories more efficiently: https://youtu.be/BII6ZY2Rnlc
How To Build A UI For An Internal Developer Platform (IDP) With Port?: https://youtu.be/ro-h7tsp0qI
▬▬▬▬▬▬ Sponsoships
▬▬▬▬▬▬
If you are interested in sponsoring this channel, please use https://calendly.com/vfarcic/meet to book a timeslot that suits and we’ll go over the details. Or feel free to contact me over Twitter or LinkedIn (see below)
▬▬▬▬▬▬ Livestreams & podcasts
▬▬▬▬▬▬
Podcast: https://www.devopsparadox.com/
Live streams: https://www.youtube.com/c/DevOpsParadox
▬▬▬▬▬▬ Contact me
▬▬▬▬▬▬
Follow me on Twitter: https://twitter.com/vfarcic
Follow me on LinkedIn: https://www.linkedin.com/in/viktorfarcic/