Open Source Business: From Community to Revenue

Introduction: Global Perspective at the Shenzhen Futian Convention and Exhibition Center On December 6, 2023, the GTC 2023 Global Traffic Conference was held in full swing at the Shenzhen Futian Convention and Exhibition Center. This grand event brought together technology elites from around the world to explore the cutting-edge trends and future developments in the internet industry. As a participant, I had the privilege of immersing myself in this exchange between technology and business, particularly the theme of “Focusing on Open Source and Pioneering Global Expansion,” which left a profound impression on me. ...

September 17, 2023 · 26 min · 5412 words · Xinwei Xiong, Me

OpenIM clustering design Kubernetes deploy concludes

Conference and Reference Links Conference reference documents: https://nsddd.notion.site/2899028707604b8090b36677c031cdf8?pvs=4 Video playback: Bilibili: https://www.bilibili.com/video/BV1s8411q7Um/?spm_id_from=333.999.0.0 Comment: I think that middleware can be replaced with https://kubeblocks.io which can help you manage multiple database middlewares. im reads the configuration information, and reads the config/ directory. The config.yaml hard-coded in the code can be automatically divided into rpc for different services, and then unified directories. By default, the directory is read from the binary running path. two floors openim version: https://github.com/openimsdk/open-im-server/blob/main/docs/conversions/version.md Storage can consider using: https://github.com/openebs/openebs https://github.com/rook/rook Core target: ...

September 17, 2023 · 14 min · 2771 words · Xinwei Xiong, Me

The Art of Asking Questions in Open Source Communities

Before asking a question Before you ask a technical question via email, newsgroup, or chat room, please do the following: Try searching for answers in old articles on the forum where you are asking a question. Try searching online to find the answer. Try reading the manual to find the answer. Try reading the Frequently Asked Questions document (FAQ) to find the answer. Try to check or experiment on your own to find the answer. Ask your strong friends to find out. If you are a program developer, try reading the source code to find the answer. When you ask a question, please show that you have done the above; this will help establish that you are not a questioner who is getting something for nothing and wasting other people’s time. It would be better if you could also express what you learned in the process of doing the above efforts, because we are more willing to answer questions from people who show that they can learn from the answers. ...

September 17, 2023 · 48 min · 10169 words · Xinwei Xiong, Me

Open Source Contribution Guidelines

Task Assignment time:Within a week Complete first contribute, purpose: to understand the contribution process of open source projects Complete the construction of sealos development environment Understand the basic usage, core concepts, and functions of core components of kuberentes Basic usage: Create a pod and understand what a pod is Create a deployment and understand the relationship between deployment and pod Create a configmap and understand how to mount configuration files to pods Create a service and access pods in the cluster through service Core concepts and functions of core components: kubectl apiserver controller-manager scheduler kubelet kube-proxy etcd What do these components do? You can use a kubectl apply and a deployment to sort out what these components have done respectively. 🚸 Next time: A specific task will be assigned and the sealos source code architecture will be introduced. ...

September 16, 2023 · 15 min · 3049 words · Xinwei Xiong, Me

Cross Platform Compilation

Preface https://github.com/OpenIMSDK/Open-IM-Server/issues/432 Many places now have requirements for local adaptation of services. Generally, localized platforms provide an arm version of Linux cloud environment for us to deploy services, so it is necessary to build an arm version of the image. Build plan In the above issue, we describe the general construction ideas and solution steps. Let’s take a look at the construction plan. We take the most commonly used amd machine as an example to compile arm. For building the ARM version of the image, there are two ways: ...

September 16, 2023 · 14 min · 2923 words · Xinwei Xiong, Me

Github Actions Advanced Techniques

Create actions **actions are individual tasks that can be combined to create jobs and custom workflows. You can create your own actions, or use and customize actions shared by the GitHub community. ** Actions can be created by writing custom code that interacts with your repository in any way you like, including integrating with GitHub’s API and any publicly available third-party API. You can write your own actions for use in workflows, or share the actions you build with the GitHub community. To share your built actions with everyone, your repository must be public. ...

September 16, 2023 · 47 min · 9905 words · Xinwei Xiong, Me

Openim Devops Design

DevOps DevOps 🔥 DevOps is a culture and methodology for software development and operations that aims to shorten the software development cycle and improve software quality through automation and collaboration. DevOps (a portmanteau of Development and Operations) is a A culture, movement or practice that values communication and cooperation between “software developers (Dev)” and “IT operations and maintenance technicians (Ops)”. By automating the “software delivery” and “architecture change” processes, we can build, test, and release software faster, more frequently, and more reliably. ...

September 16, 2023 · 14 min · 2919 words · Xinwei Xiong, Me

GoReleaser: Automate your software releases

The goal of GoReleaser is to automate much of the tedious work when releasing software, by using sensible defaults and making it simple for the most common use cases. Preparation: .goreleaser.yaml file: contains all configuration information. (For more information, see Customization ) Clean working tree: Make sure the code is up to date and all changes have been committed. SemVer compliant version number (e.g. 10.21.34-prerelease+buildmeta) GoReleaser running steps: The operation of GoReleaser is mainly divided into the following four steps: ...

September 16, 2023 · 53 min · 11220 words · Xinwei Xiong, Me

Openim Multi Process Management

111: OpenIM multi-process management strategy Main modules This article will start from the most basic single-process foreground operation of OpenIM, to the nohup background operation, to the system system process, and then to Supervisord, container management, and kubernetes health detection. Current issues Read: https://github.com/cubxxw/Open-IM-Server/blob/refactor/feat-enhance/scripts/install/openim-crontask.sh source code The current process management strategy before OpenIM is started in the background through nohup. The entire project is run by multiple processes, and now a reliable keep-alive mechanism is needed to quickly pull it up when the process crashes. Openim’s solution is nothing more than to write a keep-alive script that runs in the background. If a process is found to be closed, the script will pull it up, or through the docker compose health detection mechanism: ...

September 16, 2023 · 22 min · 4567 words · Xinwei Xiong, Me

About My Hugo teaching

Rebuild my blog (static) The enemy is back… It’s so difficult this time. When I was preparing my resume, I found that my blog was gone. My dearest blog cubxxw.com , which I had accompanied for a year and was well-received, was sacrificed. Wuwuwuwu Don’t be impatient, don’t be impatient, learn a lesson, what is the first thing? I will definitely not use dynamic blogs anymore. I used workpress for my first blog in my freshman year. The server management tool I used at that time was the famous Pagoda. Although I still don’t use it now. I am using it, hahaha, but I will definitely never use it again in the future. Do you remember the second generation blog? The second generation blog is the blog I just sacrificed. It was built using docker and survived for two years (sophomore to junior year). The server was changed halfway through, but thanks to Docker’s elegant Portability haha, so my blog survives. ...

September 12, 2023 · 14 min · 2903 words · 熊鑫伟 (Xinwei Xiong)