RabbitMQ is a messaging broker that transports messages between data producers and data consumers. Data producers can be just about any application, host, or device that emits data that needs to be consumed by other applications for aggregation, processing, or analysis.
RabbitMQ is easy to set up, use, and maintain. It can be scaled to handle large numbers of messages between many different data producers and consumers in a variety of application use cases.
Rancher provides a container platform that eases managing clusters of container-based applications. It works natively with Kubernetes, Mesos, and Docker Swarm, as well as its own container orchestration and scheduling tool, which is called Cattle.
In this article, we are going to discuss setting up a simple RabbitMQ installation in a container using Rancher Server. Connecting to the RabbitMQ management interface, as well as sending and receiving your first message, will be covered. Read more
In a previous article in this series we looked at the basic Kubernetes concepts including namespaces, pods, deployments and services. Now we will use these building blocks in a realistic deployment. We will cover how to setup persistent volumes, how to setup claims for those volumes and then mount those claims into pods. We will also look at creating and using secrets using the Kubernetes secrets management system. Lastly, we will look at service discovery within the cluster as well as exposing services to the outside world.
We will be using go-auth as a sample application to illustrate the features of Kubernetes. If you have gone through our Docker CI/CD series of articles then you will be familiar with the application. It is a simple authentication service consisting of an array of stateless web-servers and a database cluster. Creating a database inside Kubernetes is nontrivial as the ephemeral nature of containers conflicts with the persistent storage requirements of databases.
Prior to launching our go-auth application we must setup a database for it to connect to. Prior setting up a database server in Kubernetes we must provide it with a persistent storage volume. This will help in making database state persistent across database restarts, and in migrating storage when containers are moved from one host to another. The list of currently supported persistent volume types are listed below: Read more
Note: Rancher has come a long way since this was first published in June 2015. We’ve revised this post (as of August 2016) to reflect the updates in our enterprise container management service. Read on for the updated tutorial!
Rancher supports multiple orchestration engines for its managed environments, including Kubernetes, Mesos, Docker Swarm, and Cattle (the default Rancher managed environment). The Cattle environment is rich with features like stacks, services, and load balancing, and in this post, we’ll highlight common uses for these features. Overall, we’ll use Rancher and Docker to build a highly available and scalable WordPress environment, then we’ll cover how Rancher Catalog can be used to deploy complex stacks.
A scalable system is one that can handle an increasing number of requests without any impact on the response time and performance. On the other hand, High Availability describes a system that is continuously operational for a given period of time; the components of a high availability service often have failover components to continuously operate under any circumstances.
HA Deployment of WordPress
WordPress is one of the most popular CMSs out there, and can be configured with high availability and scalability by using specific components including:
Shared storage for the application files: GlusterFS.
Database Cluster backend: Percona XtraDB Cluster.
Decoupled application Docker image.
Load Balancer to distribute requests to the application containers.