Merge pull request #72 from FeynmanZhou/master

update case studies
This commit is contained in:
pengfei 2020-06-20 00:43:14 +08:00 committed by GitHub
commit 6ff8ae95ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 111 additions and 42 deletions

View File

@ -34,7 +34,7 @@ section2:
- icon: "images/case/vng.jpg"
content: "VNG has seen 14 years of continuous development and expansion to become one of the leading IT companies in Vietnam and Southeast Asia."
link: ""
link: "vng"
section3:
title: 'Various Industries are Powered by KubeSphere'

View File

@ -1,6 +1,6 @@
---
title: Aqara
description:
description:
css: scss/case-detail.scss
@ -24,7 +24,7 @@ section2:
contentList:
- content: As an O&M engineer with multiple years of experience, Wei Hengjun understands the significance of O&M can never be overstated. At the beginning, he shouldered machines himself to the workplace, struggled to use even a cable clamp in his work, and torpidly installed operating systems. Deploying applications and improving services was never an easy job for him as he might suddenly wake up in the middle of a night just for a series of system warns. All of these have made him who he is now, always working just as a great firefighter.
- content: Rapid technological advances have seen us embrace microservices, virtualization, and containerization and cloud native technologies one after another. O&M has also come a long way from manual operation at the beginning to scripts, platforms and now, containers. Initially, O&M only included tens of machines and it has grown to nearly 1,000 machines operated and maintained all by myself. The traditional way of application deployment requires a large amount of time spent in the preparation of configuration files, caution lists and databases every time it is updated. After that, it has to go through a strict review and approval process before it can finally be released. The whole process can take more than half a month. In this Internet era where speed is highly valued, the conventional approach can no longer serve as an efficient solution. Against this backdrop, container technology has emerged to the spotlight of our time.
image:
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200514144227.png
- title: 'Docker Swarm: Build a Container Orchestration System'
contentList:
@ -32,7 +32,7 @@ section2:
- content: 'There have been twists and turns along the road from the command line to scripts and ultimately to platforms. When I just joined the Lumi family, I found the O&M process was still at a primitive stage. At that time, all I could do was roll up my sleeves to analyze the condition under great pressure. It turned out to be that more than 80% of the microservice architecture was nearly based on memory with low resource utilization, especially CPU and disk storage. The update timeline was also unsatisfactory. All of these were extremely irritating. I determined to truly make a difference. Starting from continuous integration, I built environments with Jenkins and Harbor. I used Docker Swarm for orchestration in testing environments. Ultimately, my efforts paid off as the delivery speed and quality in the testing environment had been greatly improved. Nevertheless, as our business grew exponentially, we noticed that Docker Swarm has some apparent weaknesses:'
- content: 1. Inefficient cross-platform support;
- content: 2. Internal communications among services will run overtime in the traffic peak period.
image:
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200514150210.png
- type: 1
contentList:
@ -43,64 +43,45 @@ section2:
- title: 'A Comprehensive Shift: Docker Swarm to Kubernetes'
contentList:
- content: The time when the three giants dominated the container orchestration field had past as Kubernetes outpaced Docker Swarm and Mesos as the de facto standard in the area. Therefore, we have steered our business from Docker Swarm to Kubernetes in all respects. In fact, we have been thinking about the shift for several years, especially when we need nearly 1,000 machines for O&M. In this connection, an O&M-friendly and unified container cloud platform is necessary for us in terms of the large-scale deployment of cloud native microservice applications based on Kubernetes.
image:
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200514002430.png
- title: 'Model Selection: Embrace KubeSphere'
- title: 'Platform Selection: Embrace KubeSphere'
contentList:
- content: For the native installation and O&M of Kubernetes, open source solutions from a third party are still required. After careful consideration, Rancher and KubeSphere appeared to be our possible choices.
- content: KubeSphere is an open source project initiated by QingCloud and co-developed by multiple enterprises. Compared with Rancher, KubeSphere features a neater user interface and a useful wizard for resource creation. With applications as its kernel, KubeSphere focuses more on the management of Kubernetes cluster resources than Rancher. It provides elegant API ports and integrates common components for development and O&M based on Kubernetes, such as Jenkins, Harbor, Promethues and Apache SkyWalking. Besides, it can be deployed in any infrastructure environment. All of these explain why we have selected the KubeSphere container platform without any hesitation.
- content: We have deepened our understanding of different modules in Kubernetes amidst our use of KubeShpere which features great compatibility with multiple cloud platforms and plugins. It has also accelerated our path to put container orchestration of Kubernetes into practice for the production environment. Furthermore, KubeSphere has liberated us from repetitive work facing O&M, reducing the entire cost of application maintenance. It is truly a cutting-edge tool for the O&M team and provides tremendous benefits to Internet companies.
image:
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200620002443.png
- type: 2
content: 'KubeSphere is truly a cutting-edge tool for the O&M team and provides tremendous benefits to Internet companies.'
author: 'Wei Hengjun'
- title: Deployment Architecture
contentList:
- content: Currently, our company is using 7 servers in Tencent Cloud to build the cluster.
- content: All stateless services are now running in KubeSphere. Besides, we are using Redis, HBase, Flink, Elasticsearch and MySQL in cloud for stateful data storage services.
- content: Our system has been running for over half a year so far without major issues. As a result, we are planning to transfer all stateful and stateless services in the development, testing and production environment of our company to KubeSphere in recent days.
image:
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200513002703.png
- title: Design Architecture
contentList:
- content: Let us take a look at the business architecture of Lumi United. Currently nearly all of its overseas services are running on KubeSphere, including Gateway, message sending and pushing, and IFTTT.
- content: As our business is mainly based on Java, we provide microservices on the basis of Spring Cloud, manage configurations with Apollo, a distributed system configuration center, and use Eureka for service registration and discovery.
- content: With Ribbon and Feign, load balancing and service calling is achieved for microservices. At the same time, we use Hystrix thread poop for isolation, circuit breaking, fallback and traffic limit (sentinel). Springcloud-gateway is used for route scheduling and ELK is used for logging solutions. We use Skywalking as the APM tool for Java microservices distributed system.
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200514005601.png
- title:
contentList:
- content: We use Tencent Cloud for IaaS. Microservices are mainly included in the platform, where most applications are running on KubeSphere. All the sub-devices are linked to Hub devices (Smart Gateway, Smart Socket Gateway, Cameras, etc.) through the Zigbee protocol. Hub devices are connected to our microservice platform through the PRC protocol and the platform provides data for applications (SaaS). Reversely, applications can call the microservice platform through security authentication, which is how smart home devices are controlled. At the service level, we have plugins for tracing analysis, basic monitoring and CI/CD.
- content: KubeSphere makes it much easier for us to use Kubernetes, accelerating our step in deploying Kubernetes in the production environment. It has significantly improved our efficiency of business update, making it possible for our R&D engineers to quickly switch among different applications for the deployment and authentication of their features.
image:
- type: 2
content: 'KubeSphere is truly a cutting-edge tool for the O&M team and provides tremendous benefits to Internet companies.'
author: 'Wei Hengjun'
- title: Our Future Plan
contentList:
- content: The IoT microservice platform has been running in our production environment for over half a year so far without major issues. As a result, we are planning to transfer all stateful and stateless services in the development, testing and production environment of our company to KubeSphere in recent days.
image:
- title: Q&A
contentList:
- content: Do you have any questions as you use KubeSphere?
- content: Yes. For example, the release of packages (War/Jar) in the DevOps pipeline was an issue. In the DevOps pipeline, images needed to be packed to the repository while we also needed a solution for the distribution of old business (War) through Ansible.
- content: I learned that in DevOps, the pod of the correspond template was pulled through jenkins-agent for the whole process. However, we could not get the Jar package as the Maven pod of Java template exited after the execution.
- content: Ultimately, we found that we could find the corresponding template by logging in Jenkins and selecting Manage Jenkins => Configure System. We could set mav package -Dpath=${target_path} in the pipeline and the issue would be solved.
- content: What kind of application development platform can meet the need of the smart home industry going forward?
- content: It should be a platform equipped with comprehensive features of audit, monitoring, logging, alerting and access assignment, offering an elegant strategy for customized resource scaling. Components should also be customized, elegant and pluggable. The platform itself needs to have a self-check strategy for regular issues. Fortunately, KubeSphere supports all of these functions.
- content: What improvements does KubeSphere need to make in functions or designs?
- content: 1. The place to switch the language can be more obvious;
- content: 2. More integration flexibility of Grafana templates;
- content: 3. The Kubernetes node scaling feature can be more simple and it is suggested that it be done in a interface;
- content: 4. "copy from" can be supported in pipeline creation;
- content: 5. Multi-selection can be supported in pipeline running;
- content: 6. Examples can be provided in API documentation; readability can be improved as necessary parameters of many Swagger ports are difficult to understand.
image:
- title: Postscript
contentList:
- content: We would like to extend our deep gratitude to these two users from Lumi United for sharing their practices of the IoT microservice platform in the smart home industry. This entire journey of Lumi United also represents how some Chinese enterprises work to build their own microservice application platforms.
- content: If you are interested in the details of how Lumi United puts its IoT microservice platform into practice and look for further communications with these two engineers, you are welcome to join the KubeSphere open source community. We will invite them someday in the future for an online technical sharing session based on your needs. Besides, you are also welcome to share your own stories related to the deployment of KubeSphere and Kubernetes in our own environment.
image:
- title: About KubeSphere
contentList:
- content: KubeSphere is an open source container platform built on Kubernetes with applications as its kernel. It is capable of full stack IT automated operation and maintenance, streamlining the DevOps workflow for enterprises.
- content: Thousands of enterprises across the globe have been using KubeSphere, including Aqara, Benlai, Sina, Maxnerva, WeBank, VNF Corporation and Radore. KubeSphere provides a user-friendly wizard interface for operation and maintenance with abundant enterprise-grade features available, including Kubernetes resource management, DevOps (CI/CD), application lifecycle management, service mesh, multi-tenant management, monitoring and logging, alert and notification, storage and network management and GPU support. All of these can help enterprises quickly build a strong and feature-rich container cloud platform.
image:
image:
rightPart:
icon: /images/case/aqara-detail.jpg
@ -116,4 +97,4 @@ section2:
- title: ADOPTED FEATURES
content: Hosted
---
---

88
content/en/case/vng.md Normal file
View File

@ -0,0 +1,88 @@
---
title: VNG
description:
css: scss/case-detail.scss
section1:
title: VNG
content: VNG corporation is a leading Internet and technology company in Vietnam. In 2014, we were recognized as the only 1-billion dollar startup in the country. Many key products developed by VNG have attracted hundreds of millions of users, such as Zalo, ZaloPay and Zing.
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200619222719.png
section2:
listLeft:
- title: ZaloPay Introduction
contentList:
- content: Launched in 2017, ZaloPay is built on the top of Zalo, equipped with many conveniences from Zalos ecosystem. There is already an ecosystem at Zalo, a significant volume of Zalo's users (~100 million-active-user).It is relatively competitive compared to MoMo, GrabPay by Moca, ViettelPay, etc.
- content: Similar to AliPay which is one of three tenets of the “iron triangle” (aka e-commerce and logistics), GrabPay is an enabler of the Grab ecosystem and WeChat Pay is on a social media platform. ZaloPay ranked as the 3rd payment application of the year at the 2018 Tech Awards ceremony held by VnExpress, the most common newspaper in Vietnam. While the competitor MoMo took the top spot, followed by Viettel Pay, the rising players of GrabPay by Moca, VinID powered by VinGroup and AirPay by SEA have also joined the market, making the game even more intense.
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200619222719.png
- title: We are Enthusiastic about New Technologies
contentList:
- content: VNG is a big company, working in a wide range of business. We are committed to using cutting-edge frameworks, technologies, and programming languages to develop our products and build infrastructure.
- content: Building and developing software applications that rely on the outdated architecture will cause various problems in scalability, resilience, observability, etc. For example, for the traditional monolithic architecture, it is very difficult to implement changes in such a large and complicated application that is tightly coupled. Besides, the monolithic architecture features terrible scalability with high technology barriers. That means it may postpone your go-to-market strategy and slow the update cycle of your products. However, the fact is that what we want is the fast development and delivery in our business and services need to respond quickly to changes.
- content: Docker and Kubernetes are undoubtedly the best technical architecture tailored for our business needs. I probably don't need to say much about containerization and the benefits. Componentization also allows you to develop faster and more reliably; and Kubernetes automates rollouts and rollbacks, monitoring the health of your apps with probes.
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200619223445.png
- title: Adopting Kubernetes and KubeSphere
contentList:
- content: At the end of 2018, we adopted Kubernetes as the container orchestration solution. Kubernetes helps us to declaratively manage our cluster, allowing our apps to be version controlled and easily replicated. However, the learning curve of Kubernetes is high as there are a series of solutions we need to consider, including logging, monitoring, DevOps and middleware. Actually, we have investigated the most popular tools. For example, we use EFK for logging management and adopt Jenkins as the CI/CD engine for business update. Redis and Kafka are also used in our environment.
- content: These popular tools help us improve development and operation efficiency. Nevertheless, the biggest challenge facing us is that developers need to learn and maintain these different tools; and we need to spend more time switching back and forth between different terminals and dashboards. Hence, we started to research a centralized solution which can bring the cloud native stack within a unified web console. We compared a couple of solutions (e.g. Rancher and native Kubernetes) and KubeSphere has proven to be the most convenient one among them.
- content: We install KubeSphere on our existing Kubernetes cluster, and we have two Kubernetes clusters for sandbox and production respectively. For data privacy, our clusters are all deployed on bare metal machines. We install the highly available cluster using HAProxy to balance the traffic load.
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200619223626.png
- title: Why We Choose KubeShpere
contentList:
- content: Thanks to the developer-friendly web console provided by KubeSphere, we can easily monitor the resource consumption range from infrastructure to applications. Hence, we've been running merchant platform of ZaloPay on KubeSphere very steadily for half a year. KubeSphere also offers a portfolio which integrates and packages the cloud native stack, and provides out-of-box application lifecycle management, monitoring, logging, multi-tenancy, alerting and notification. As each feature and component is pluggable, we can enable them based on our needs.
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200619224814.png
- type: 1
contentList:
- content: Developer-friendly web console
- content: Multi-dimensional monitoring capabilities
- content: Feature-rich and pluggable
- title: How We Implement DevOps
contentList:
- content: We implement the CI/CD pipeline as a typical and straightforward way, running the merchant platform in ZaloPay. As you can see from the figure below, we run CI/CD pipeline using KubeSphere, stitching GitLab, SonarQube, Docker, Kubernetes, and docker registry. In the first stage, the pipeline will initialize some necessary environments for the entire pipeline. Next, the pipeline will pull the source code from Gitlab by using the environment conditions (like checkout branch, deploy env, tag version). In the third stage, it will build the Golang project and trigger SonarQube to analyze the source code and check the quality. If there is nothing special or significant issue in the code, the pipeline will jump to next stage.
- content: When everything run smoothly, the pipeline will pack the project using Docker in the fourth stage. Then it push the docker image to the Docker Registry. The fifth stage is used to deploy the docker image to the desire environment, including sandbox and production. Then it cleans the pipeline garbage and send an email notification to our team with the running result of pipeline.
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200619225121.png
- title: Code Quality in SonarQube
contentList:
- content: We use SonarQube for static code quality analysis. The screenshot below is an example of our service analytic result from SonarQube. It helps us to quickly locate the bug and vulnerability in our code.
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200619225841.png
- type: 2
content: 'KubeSphere allows ZaloPay Ops Team to devote more time and efforts automating management and workflow.'
author: 'Tan To'
- title: Issues We Meet and Solutions
contentList:
- content: When we installed KubeSphere, several CRDs were created, for some reason due to testing or something, I reinstalled, and deleted some resources. API server panics handling requests for a CRD with OpenAPI validation with x-kubernetes-int-or-string, etcd was also panic and crashed looply.
- content: This bug appears in Kubernetes versions smaller v1.16.2; it is not secure to upgrade Kubernetes API version and inevitably downtime. Otherwise it will not be possible to access the API; and kubectl or any controller will be terminated.
- content: Bugs are fixed in versions from v1.16.2 +. Please notice and carefully to play with production.
image: https://pek3b.qingstor.com/kubesphere-docs/png/20200620000210.png
- title: Testimonial
contentList:
- content: To meet the needs of centralized management of cloud native stack, we choose to use KubeSphere to strengthen the observability on top of Kubernetes. Now we are able to deploy new microservices and allocate resources within minutes. It also helps developers accelerate the time to market.
- content: KubeSphere allows ZaloPay Ops Team to devote more time and efforts automating management and workflow. It provides smooth user experiences and features a developer-friendly web console which shields the complicated underlying logic, making it easier to manipulate infrastructure resources. KubeSphere represents a fast-growing open source community in the world. KubeSphere community helps a large number of companies and organizations to easily run their business using cloud native technologies, and solve the pain points of Kubernetes itself.
- content: I am a big fan of open source. Open source brings developers closer in the world as we can discuss our proposals and solve our problems in a public and active community. I believe open source is the future of software and I am trying to contribute to the community. I hope KubeSphere can grow the open source community and provide a better product for it.
image:
rightPart:
icon: /images/case/vng.jpg
list:
- title: INDUSTRY
content: Internet and technology
- title: LOCATION
content: Vietnam
- title: CLOUD TYPE
content: Private
- title: CHALLENGES
content: High Availability, Security, Easy-of-use
- title: ADOPTED FEATURES
content: DevOps, Logging, Monitoring
---