RabbitMQ Clustering on Ubuntu 14.04

Overview RabbitMQ is messaging service that allows you to queue and spread your data processing tasks to backend servers. For instance, this allows you to build a server cluster solely responsible for processing photo uploads (resizing, adding filters, saving to storage, etc). Each server in that cluster contacts the RabbitMQ cluster for new, unprocessed messages. […]

How to Configure Logrotate

It’s always important to keep your server logs around for as long as it makes business sense. You’ll need them for auditing system access, discovering abuses, or to identify root causes to problems, among other reasons. The challenge, though, is that depending on the service being provided and the amount of traffic received, your logs are capable of growing to gargantuan sizes, consuming every last bit of disk space available.

Logrotate allows us to better manage our logs to prevent from consuming too much disk space. Depending on the schedule you decide on, your logs can be rotated every day, week, or month. Each rotation renames your existing log file, usually by appending a ‘.’ and number to the end, and then creates a new file. To preserve storage the logs that have been rotated can be compressed using Gzip.

How to Create a MySQL Master Slave Cluster on Ubuntu 14

Improve application performance and availability by learning how to create a MySQL Master\Slave cluster on Ubuntu 14

Install and Configure MongoDB on Ubuntu 14

MongoDB is one of the most popular open source NoSQL database solutions available. Unlike relational databases that store rows of data, document oriented databases like this one store data as, you guessed it, documents. These types of databases are not constricted by rigid schemas. They also scale much easier and more efficiently than relational databases, meaning it is a lot easier to store once unthinkable amounts of application data.

MongoDB is able to achieve and maintain high performance – much greater than any relational database, such as Microsoft SQL – even while storing petabytes of data by offloading a lot of logic to your application. A relational database it is not, but this trade off gives are developers the flexibility they need to work with data in today’s high volume, big data world.

The tutorial will guide you through the installation through to managing your databases.

Installing Squid on Ubuntu 14.04 as Caching Proxy Server

Learn how to install and use Squid on Ubuntu 14 to improve your web server’s performance. Squid caches requested content to lessen the load on your servers.

Architect Web Infrastructures on Ubuntu 14, Part 1

You may have experience deploying web applications on a LAMP server, which is running both the web server and database server. Hosting your entire web application infrastructure stack on a single server works well for development and light traffic sites. Eventually, you are going to start seeing an increase in user traffic and that will put a lot of stress on your once underutilized server. You are going to have to start researching how to scale to meet the demands of your web traffic.

Throughout this series of tutorials, we will build out the infrastructure to allow our application to handle high volumes of traffic. We’ll utilize web caching servers to reduce the processing work of your application, and load balancers to ensure traffic is balanced between our caching servers. The focus will be on Ubuntu 14.04, however, the concepts work on any Linux distribution.

Installing Memcached to Improve Database Performance

SQL databases are very good at storing and retrieving data, and they can do so quickly. However, no matter how well you tune your database servers there will come a time during periods of high traffic that your database server becomes a large bottleneck. By utilizing technologies like Memcache, we can keep results of frequently used database queries in a cache stored in RAM. Using the cached results significantly decreases that amount of time and effort to retrieve data and present in our application.

Memcache is what’s known as an in-memory key-value store. The key is a unique identifier that is used to quickly search for cached strings or objects. The value is the data that has been cached. For the purpose of storing database query results, the key will typically be the query used on your database.

Protect Git Folders in Apache using DirectoryMatch

Overview Apache allows you to block certain files or directories under your document root from being accessed over the web. This is very beneficial if, for example, you have an application version controlled by Git. Odds are you do not want any of the files under .git to be accessed, for various security reasons. Ideally, […]

Removing SystemD from Ubuntu 15

Summary Not everyone wants their server to be managed by SystemD. The reasons why range from being too different to not being a mature enough solution. I don’t mind running it, but if you are one of those individuals that wish not to use it, Ubuntu allows you to boot into Upstart or, if you […]


© 2014 Shane Rainville