Kubernetes: A Practical Introduction
This tutorial will not focus on Kubernetes deployment, architecture, implementation, or other internal principles. Instead, it will introduce Kubernetes entirely from the perspective of a developer who uses Kubernetes, helping you understand how to better leverage its features. Basic IntroductionWhat is Kubernetes? A relatively official definition: Kubernetes is an open-source container orchestration platform that manages large-scale distributed containerized software applications, commonly...
How to Scientifically Browse Zhihu at Work
Everyone knows what kind of website Zhihu is. Today, we’re sharing a small tool to make your Zhihu browsing experience at work more enjoyable. When I was looking at my own Zhihu account analytics, I discovered something quite interesting — over 40% of traffic came from the PC side, which is almost unimaginable in the mobile internet era. I also learned from other sources that Zhihu’s traffic on weekends and holidays is lower than on workdays. What does this tell us? You’re not the only one ...
Book Notes: Thinking in Systems - How to Face Complex Problems in Reality
The primary purpose of this book is to teach readers how to think more effectively when facing complex problems in reality. The book itself focuses on basic systems concepts, which are actually quite easy to understand. Additionally, the author provides numerous examples. When first reading this book, you might feel that the theory and practical examples are somewhat disconnected. But gradually you’ll realize that this topic is indeed not easy to explain in a way that’s easily accessible — it...
Common Patterns in Distributed System Design
Previously, I translated an article about distributed systems (https://lichuanyang.top/posts/3914/) which received positive feedback across various platforms. So I recently reorganized the related knowledge, combined with new insights gained over the past year, and rewrote this article. First, let’s clarify what kind of distributed systems we’re discussing here. Simply put, they need to satisfy two conditions: multi-node and stateful. Multi-node is straightforward to understand. Being state...
Are High-Concurrency Solutions Really That Hard? A Casual Guide to High-Concurrency Design
Does high request concurrency always lead to high-concurrency problems? Not necessarily. Imagine if our application were entirely in-memory — no matter how high the request volume, we could simply add more nodes to solve the problem, and there would be no so-called high-concurrency issue. High-concurrency problems exist because there are single-point bottlenecks in the system that cannot be resolved through brute-force scaling, which is why we need to find alternative solutions. In fact, in...
What Are SSP, DSP, RTB, and ADX? Understanding the Concepts and Evolution of Internet Advertising
In this article, I will introduce the current state of internet advertising and untangle the underlying logic of internet advertising, to help everyone better understand this industry. What Is AdvertisingWhen discussing internet advertising, we must first start with what advertising itself is. Only by understanding the underlying logic of advertising can we better understand what problems exist in internet advertising, why programmatic advertising trading emerged, why various systems like A...
From Redo Log and Undo Log to Isolation Levels: A Deep Dive into Database Transactions and ACID
Recently, I read Zhou Zhiming’s book “Phoenix Architecture” and gained deeper insights into many aspects of technology. I plan to make some summaries. Today, I’ll start with the section on transactions, combining content from the book with my own understanding, aiming to explain local transactions clearly and thoroughly. If there are any inaccuracies, I welcome corrections. A transaction ensures that data in the database remains in a valid state. Through continuous CRUD operations, the data...
Practical experience using kubernetes in java projects with low learning costs
Compared with large manufacturers, many start-up companies have a very important disadvantage that their infrastructure is imperfect and they do not have a variety of complete tools. Therefore, I plan to sort out how to build a development process with a good experience based on the capabilities provided by the open source community with as little operation and maintenance and development costs as possible. First, let’s sort out the necessary steps in the entire development process. I will ...
2021 in Upheaval — A Mid-Career Engineer's Year-End Review
2021 was a year of upheaval for me personally. A job I had planned to pursue long-term — one with excellent comfort and promising prospects — suddenly collapsed due to certain reasons. Consequently, I faced a critical crossroads regarding my future direction. At least so far, I feel I’ve made some correct choices. I’ve also made good progress on the personal growth goals I set at the beginning of the year. So I’m approaching this year-end review with a reasonably positive mindset. The bigge...
A Canary Release Approach in Kubernetes
Canary release is actually a process well-suited for cloud-native environments, so I believe many people have the need to perform canary releases under Kubernetes. In this article, we introduce a very simple approach to canary release. First, let me introduce what a canary release is. The name “canary” originates from the fact that miners discovered canaries are very sensitive to gas. Before descending into the mine, miners would send a canary down first. If the canary stopped singing, it i...














