This article is reprinted by the exclusive authorization of The technology Liu Zejun, please contact the original author through the end of the article public number thank you

Who is the competitor of Wechat or QQ in China IM software field?

Yi letter? Momo? YY?

Of course not, the biggest enemies of wechat are not rival products but games called Art 9, “King of Glory” and “PubG”, international triple-A titles and Tenmei, Photon studios, and consoles of Nintendo, SONY and Microsoft. More and more people are fed up with pointless socializing and are spending a lot of time playing games with the principle of “Don’t talk, Just do it”.

Did you eat chicken today?

From “PUBG” to “Wild” and other chicken games launched, fully embodies the scientific Internet should be meaning: fast response, fast deployment, fast online. It is this kind of “fast” that makes Tencent and netease rich.

However, this kind of fast is the hell experience of countless technical personnel in three shifts. Currently, the launch style of domestic games is rough — it’s basically a labor-intensive industry:

  • Develop version plan, communicate with development and operation to confirm version content;
  • Close all portals and stop servers in all game zones, publish, deploy, restart and open portals.

Is not seemingly in one go, fully embodies the Internet “less is more” characteristics —

Ha ha!

In fact, on the last day of the release, developers are still working on it at 1 or 2 am, fixing bugs, and finally packing up and going home to sleep, waiting for the next day’s operation and maintenance shutdown to release the new version at 8 am

How game service can not get up, development please get up, check the problem: the development in a daze wake up in the dream, finally fix, package, send version, start the service — sometimes it may be a morning to check the problem, notify the operator, extend the maintenance time ~

Player feedback: There are problems with the new feature… At this point, roll back? Or ~ hero does not turn back, which come back!

Emergency shutdown, problem finding, fix, online…

The old drivers will generally take out thermos and wolfberry at this time, just smile never speak!

To solve this problem, we need to familiarize ourselves with the basic structure of game development:

Game Architecture diagram

In fact, this architecture diagram is an idealized model. The real situation is only “worse” than this: maybe the data layer is a single mysql, with no disaster center, no read-write separation, and everything is freehand and buddhist. This buys a huge amount of risk for game updates. The reason why users are so aware of updates in the game is the game-Server segment, as shown below:

Players first log on to the game operation platform, complete authentication, select the zone server, and obtain the real game-server information through the gateway server. The player then establishes a long connection to the Game-server via TCP. Yes, you read that right! The player holds hands with the Game-server directly, and if Gameserver restarts, the TCP connection is bound to break. While the front end might try to reconnect, how do you switch versions without the player feeling it?

In fact, the game industry has gone through several technological innovations to address this problem. Both blue-green and rolling deployments address these issues. Today, I’d like to recommend grayscale publishing or canary publishing in games:

Gray scale distribution is in the original version is available, and deploy a new version of the application as a “canary” (canary to gas is extremely sensitive, canary in the mine workers carry, in order to timely find danger), test the new version of the performance and performance, in order to ensure the overall system under the condition of stable, early detection and adjustment problems.

Grayscale release: select the release of the crowd and its proportion

Select some users from the product user group to release version A, and the other part to release version B. Gradually expand the scope according to the user data feedback of the two versions, and determine which version to release in the final volume.

A complete grayscale publishing mechanism would include the following phases:

  • User identification: Mainly to distinguish users, but also to assist in data analysis.
  • Target user/traffic Filtering: Need to refer to the user characteristics, user traffic, user scale and the consistency of the user experience version iteration for all users or part of the user, through small flow test to moderate, in general, in accordance with the internal users – seed – active users – the order of all users is a kind of typical range control, experience the conformance requirements consider whether or not the old and the new version of the span is too large, Whether users can accept it.
  • Real-time data monitoring: monitoring the new version stability, server stability, use times, use frequency and other data compared with the original data.
  • One-click publish/roll back: Decide whether to publish/roll back from data feedback.

Some people argue that grayscale publishing is a waste. But this is not so much waste as redundancy and flexibility, gray release can avoid the risk of the new version of the full online, through the way of small flow verification, in the gray stage can find, adjust and optimize the problem in the product, smooth iteration.

So, the question is: how to achieve gray scale? At present, there are two ways to realize grayscale publishing in enterprises — self-built grayscale publishing system and third-party tools.

Self-built system

A gray publishing system case built by an operator

In this case, the grayscale release of the front end, real-time data conversion of the back end, trial implementation of some business halls and iteration of upgrade without user perception are implemented to realize the grayscale release of the front end, system layer and the realization process.

Teams with rich development teams and good internal communication can try to build their own systems. Generally, self-built systems include shunting control system, business monitoring system, server load balancing, etc., while also considering scalability and large business volume support. This also means that development and operation costs are high, the average enterprise can not afford.


Third Party Tool implementation

There are a lot of third-party grayscale publishing tools available. Domestic ones have Shouting technology, foreign ones have Optimizely, ABTasty, Apptimize and so on. Using these tools can make us realize grayscale publishing more quickly and efficiently.

Here take the grayscale publishing function of Holler Technology as an example. For iOS applications, the release of the new version will be reviewed for 7 days first. If there is any problem with the launch of the product, it will be returned. The release of any version directly faces all users. Online accidents/bugs have a great impact on users, resulting in a long period of problem solving and poor user experience.

Grayscale publishing function

Access SDK for small batch user testing, reduce the probability of online accidents/major bugs for all users, protective development, one-click rollback, no review time, and realize that the vast majority of users have no perception of bugs. The advantage of third-party tools is that they are quick to get started and cost very little. In a world where demographic dividends are no longer available and labor costs are high, using the right third-party tools can greatly improve the ROI and stability of a game company’s updates.

Special thanks: Code farming game Jack provides game case analysis

Welcome to pay attention to the public account of Wechat, find more and better A/B test content