Skip to content

Instantly share code, notes, and snippets.

View zhchang's full-sized avatar
💭
Ser Devops

Chang zhchang

💭
Ser Devops
View GitHub Profile
Feature GKE Autopilot AWS Karpenter
Abstraction Level Fully managed, no need to manage nodes Node management required (via EC2 instances)
Billing Model Pay-per-pod resource usage Pay-per-node (EC2 instance costs)
Control Plane Managed and included in pricing User-managed (EKS costs $0.10/hour per cluster)
Scaling Pod-based scaling with automated node provisioning Dynamic node provisioning based on pod needs
Spot Instances Supported via pod annotations Supported, up to 90% cost savings
Discount Model Committed Usage Discounts (CUD) Reserved Instances (RIs) and Savings Plans
Operational Overhead Minimal (Google manages everything) Moderate (user manages infrastructure)
Customization Limited (highly opinionated, no node-level control) High (complete control over instance types, zones)
Instance Flexibility N/A (abstracted) Flexible EC2 instance selection (on-demand, spot)
@zhchang
zhchang / zshrc.zsh
Created October 13, 2021 03:43
fix the slowness of git_prompt_info
function git_prompt_info() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}${ZSH_THEME_GIT_PROMPT_CLEAN}${ZSH_THEME_GIT_PROMPT_SUFFIX}"
}
@zhchang
zhchang / gist:5cb69ab13165dd0da363
Created May 13, 2015 07:09
vim and vim-go instroduction

#VIM

Bro, treasure your life, use vim 7.4+

#!/usr/bin/python
import requests
import sys
import os,argparse,sys
import random
import re
def print_help(functions):
l = []
l += functions
@zhchang
zhchang / res_merge.py
Created November 26, 2014 04:09
for merging resources from 2 projects
#!/usr/bin/python
import os,argparse
import xml.etree.ElementTree as ET
import shutil
def check_project(p):
if not os.path.isabs(p):
p = os.path.join(os.getcwd(),p)
if not os.path.isdir(p) or not os.path.isfile(os.path.join(p,'AndroidManifest.xml')):
raise argparse.ArgumentTypeError('invalid project folder')
@zhchang
zhchang / candy.vim
Created November 21, 2014 08:37
candy.vim
" Vim color file
" Maintainer: Tiza
" Last Change: 2002/04/28 Sun 19:35.
" version: 1.0
" This color scheme uses a dark background.
set background=dark
hi clear
if exists("syntax_on")
syntax reset
@zhchang
zhchang / vimrc
Created November 21, 2014 08:36
my vimrc
set number
set ts=8 et sw=4 sts=4
colorscheme candy
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
Plugin 'fatih/vim-go'
Plugin 'zhchang/quick_file'
Plugin 'rosenfeld/conque-term'
call vundle#end()
@zhchang
zhchang / pand.py
Last active August 29, 2015 14:10
pand
#!/usr/bin/python
import os,argparse,sys
import xml.etree.ElementTree as ET
from subprocess import call,check_output
import random
def get_package_and_activity(folder):
package = None
activity = None
try:
@zhchang
zhchang / zalora-android-buck.py
Last active August 29, 2015 14:09
zalora android buck build file
common_deps_framework = [':framework-res',':aquery',':google-play',':volley',':adjust',':ad4push',':shouldit',':view-indicator',':hockeyapp',':holo']
common_deps_view= [':view-res',':framework',':aquery',':google-play',':volley',':adjust',':ad4push',':shouldit',':view-indicator',':hockeyapp',':holo']
common_libs = [':framework-lib1',':framework-lib2',':framework-lib3',':framework-lib4',':framework-lib5',':ad4push-lib1',':holo-lib1',':holo-lib2',':view-lib1',':view-lib2',':google-play-lib1']
android_binary(
name = 'zalora',
manifest = 'com.zalora.android/AndroidManifest.xml',
target = 'android-18',
package_type = 'release',
keystore = ':debug_keystore',
proguard_config = 'com.zalora.android/proguard-project.txt',
@zhchang
zhchang / gist:6be268837dc84a5e5f89
Last active August 29, 2015 14:06
greensocket.py
#!/usr/bin/pypy
import asyncore
from greenlet import greenlet
import socket
class Scheduler(asyncore.dispatcher):
def __init__(self,host,port):
asyncore.dispatcher.__init__(self)
self.glet = greenlet(self.routine)
self.create_socket(socket.AF_INET,socket.SOCK_STREAM)