Using 3rd party packages from github is made very simple in the Go language with the import statement. But one problem is that “go get” will always pull the HEAD of the master branch and there is no way to explicitly specify another branch.
The ultimate answer would be to use a package dependency manager like Glide, which I describe in this article. But if you cannot introduce Glide into your workflow yet then manually populating the vendor directory (enabled by default since 1.6) is a viable alternative.
Continue reading “GoLang: Vendor directory for github branches other than master”
Configuration Management tools like SaltStack are invaluable for managing infrastructure at scale. Even in the growing world of containerization where immutable image deployment is the norm, those images need to be built in a repeatable and auditable fashion.
This article will detail installation of the SaltStack master on Ubuntu 14.04, with validation using a single Minion. Note that Minion installation is not mandatory if using Salt SSH.
Continue reading “SaltStack: Installing a Salt Master on Ubuntu 14.04”
The heart of the ELK stack is Elasticsearch. In order to provide high availability and scalability, it needs to be deployed as a cluster with master and data nodes. The Elasticsearch cluster is responsible for both indexing incoming data as well as searches against that indexed data.
As described in the documentation, if there is one absolutely critical resource it is memory. Keeping the heap size less than 32G will allow you to use compressed object pointers which is preferred. Swapping memory takes a big hit, so minimize swappiness on your Linux host.
Continue reading “ELK: Scaling an ElasticSearch Cluster”