What happens when Elasticsearch runs out of heap

On a normal working day, one of my colleagues suddenly called me and asked me to check what’s going on with the Elasticsearch server deployed on one of our customer’s server. According to him, the behavior has been very weird:

Read More

MySQL load testing

This post aims to do some testing on MySQL server in terms of its capacity and performance, when the number of records in each table grows into multi-million scale. In reality, not many applications actually have this amount of data to store, and trust me, if your application is ever going to have this amount of data, you better simulate what would happen before it actually happen to you and caught you off guard.

Read More

An incident happened to my Kubernetes cluster

Ever since the first time my Kubernetes is spinned up, it’s been running smoothly without problems for 3 months. However yesterday suddenly I find that the dashboard endpoint stops working, even though I’m still able to use kubectl apply to rolling update my services.

Read More

Gotchas for 'Methods' in Go

Go is not strictly an object-oriented programming language, however it does have some features that enables you to use it in an object-oriented way, one of them is Method. Similar to some object-oriented programming language, where you define “Methods” for your object to specify the behaviours, properties and expose them to external users, in Go you can define functions for any of your types as well, and they are called “Methods” to that type.

Read More

Monitor Your Kubernetes Cluster

At any scale, an end-to-end monitoring solution for your infrastructure and workload is essential because:

  1. You need to make sure your resources are well used and know when to scale up/down.

Read More

Use Fluentd and Elastic search to monitor your containerized application in Kubernetes

As we all know, the basic units running in a Kubernetes cluster are docker containers, docker has its native logging drivers that can provide basic logging functionality, whether to write to stdout and stderr, or write to json file with rotations.

Read More

HA Kubernetes Cluster on AWS

By using Kubernetes, we basically delegate the responsibilities to achieve high availability and scalability to Kubernetes, Thus having a HA Kubernetes cluster running is the first step to begin with and the foundation of the whole backend.

Read More

HA Kubernetes cluster with Vagrant+CoreOS+Ansible, Part 5

In the last part, we have managed to deploy the Kubernetes core components using bootbuke and be able to access to cluster using the dashboard. We’ll now use an example to demonstrate the deployment of services and expose the services using Ingress and route traffic by domain name.

Read More

HA Kubernetes cluster with Vagrant+CoreOS+Ansible, Part 4

In the last part, we installed kubelet on all nodes. In this part, we’re gonna bootstrap the three key components of a kubernetes cluster

Read More

HA Kubernetes cluster with Vagrant+CoreOS+Ansible, Part 3

In part 2 we have installed etcd clusters on the 3 master machines, which is the foundation of the Kubernetes cluster. In this part, we’re gonna configure and run kubelet on each nodes. kubelet is the primary node agent that manages pods on each nodes and talks to the Kubernetes api server to coordinate the whole system.

Read More