Blogs

Hugo vs WordPress

Hugo vs WordPress We all know that WordPress is a Content Management System (CMS). For years, people have been using WordPress to help them manage their content and for the most part it works - sort of. WordPress is a very old tech code base. It’s written in PHP (who uses that anymore?) using Apache/NGINX and it uses MySQL as it SQL backend. None of those are bad on their own (except PHP) but the way that WordPress is organized and Architected makes it very prone to scalability issues and it’s an anti-pattern of Microservices.

Continue reading

TCP and Load Balancers

Why do I get a TCP RST return when I try to PUT or GET S3 objects? I have a colleague that has made the following statement: "The data is sacred but, the requests are not!" This holds very true when dealing with HTTP calls such as S3 GETs and PUTs. Recently, we noticed that a client was doing a massive amounts of PUTs and then issuing corresponding GETs on the same S3 objects.

Continue reading

Klaus - Hybrid WebStack

There are very good Web Servers on the market, Apache and NGINX to name a few. However, to interface your backend code you need to use Apache modules or WSGI/FastCGI with NGINX (depending on your language of choice). To actually use a fully integrated environment you need to use something like Django or Tornado for Python. For GO there is a small built-in web server that allows you to build up a more robust environment around it.

Continue reading

Continuous Delivery - Principles

Principles There are five principles at the heart of continuous delivery: Build quality in Work in small batches Computers perform repetitive tasks, people solve problems Relentlessly pursue continuous improvement Everyone is responsible It’s easy to get bogged down in the details of implementing continuous delivery—tools, architecture, practices, politics—if you find yourself lost, try revisiting these principles and you may find it helps you refocus on what’s important.

Continue reading

Continuous Testing

Continuous Testing The key to building quality into our software is making sure we can get fast feedback on the impact of changes. Traditionally, extensive use was made of manual inspection of code changes and manual testing (testers following documentation describing the steps required to test the various functions of the system) in order to demonstrate the correctness of the system. This type of testing was normally done in a phase following “dev complete”.

Continue reading

Continuous Delivery

What is Continuous Delivery? Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way. Our goal is to make deployments—whether of a large-scale distributed system, a complex production environment, an embedded system, or an app—predictable, routine affairs that can be performed on demand. We achieve all this by ensuring our code is always in a deployable state, even in the face of teams of thousands of developers making changes on a daily basis.

Continue reading

Load Balancers

Load Balancers - HAProxy vs Other Load Balancers are very import tools for scalability, depending on the protocol. For HTTP(S), load balancers are a must unless you’re good with having only one web server exposed. Recently, I was asked to do performance tests of our HAProxy servers that front our Ceph RGW (S3) nodes and do the same for a very popular hardware load balancer. The name of the hardware load balancer vendors will not be released to protect the innocent - ME :)

Continue reading

S3LSIO - S3 Utility

The initial release of s3lsio has been released for both MacOSX and Linux (RHEL/Fedora/CentOS). Ubuntu will be released soon. In theory Windows should work but OpenSSL can cause initial setup of the Rust build environment for s3lsio. There are constant enhancements being made on a weekly basis. S3lsio is a command line tool that can work within a script, called from an app or ran stand alone to easily manipulate your AWS S3 and Ceph Rados Gateway (S3) environments.

Continue reading

Building Large Ceph Clusters

Ceph is a very complex distributed storage system that provides an Object Store, Block Storage Devices and Distributed File System. It has a built-in installation program called Ceph-Deploy but it’s design is for very simple and small installations. There are two official automated installation and maintenance systems for Ceph, Ceph-Ansible and Ceph-Chef. As the name implies, Ceph-Ansible is built for the Ansible while Ceph-Chef is built for Chef. I will focus on Ceph-Chef for the Chef environment.

Continue reading

Rust AWS S3 SDK

The aws-sdk-rust library is officially released which allows both V2 and V4 API signatures. This is import for those that wish to use the SDK to access storage products that implement the S3 Interface such as Ceph’s Rados Gateway (RGW). Ceph Hammer release only uses V2 while the Jewel and higher releases support V4. Enterprise level proxy support has also been added. So, if http_proxy, https_proxy and no_proxy environment variables are in use, aws-sdk-rust will use them to access the S3 resource.

Continue reading