Autoscaling on Kubernetes Platform

Introduction The concept of autoscaling on Kubernetes platform dates from the era where virtualization first became widespread and the overhead of provisioning a new server became lightweight through the use of cloud-init. With public cloud, customers operate on usage-based billing. Autoscaling allows workload to scale down during idle times to reduce cost, and scale up … Read moreAutoscaling on Kubernetes Platform

Host legacy application in Docker 2 of 2

My previous notes include some tricks in hosting legacy application in docker. This is a continuation from that work, after 1.5 months… Use Case I decided to use docker to host application for a good reason, and let me start with what this Java-based application does as a single process. When it is up it … Read moreHost legacy application in Docker 2 of 2

Zookeeper Summary

Distributed systems Distributed system involves independent computing entities linked together by network. The components communicate and coordinate with each other to achieve a common goal. In early days, designers and developers often had made some assumptions (aka. fallacies) of distributed computing: The network is reliable Latency is zero Bandwidth is infinite Network is secure Topology … Read moreZookeeper Summary

Java Garbage Collection

Tuning the garbage collector is the most important thing that can be done to improve the performance of a Java application. GC is typically caused when the JVM decides GC is necessary, specifically when: a minor GC will be triggered when the new generation is full; a full GC will be triggered when the old … Read moreJava Garbage Collection

Balloon steals memory from virtual machines

This article is my experience with memory balloon on virtual machine. I came across an ElasticSearch server (ESXi guest with 32GB physical memory) where the main process keeps dying of OOM. Even worse, after the OOM event, the free memory left is about 10G and Elastic Search cannot start because its JVM is set with … Read moreBalloon steals memory from virtual machines

Cryptography basics 2 of 2

My previous post outlines several core concepts around cryptography, such as asymmetric key encryption, digital certificate, the encoding formats and relevant file extensions. In this article, we continue to explore cryptography use cases, where these concepts are connected and put into application. The most important use case is TLS handshake. I cannot stress enough how … Read moreCryptography basics 2 of 2