ProjectMan is so Tempered

Copyright: Huawei cloud All rights reserved Please indicate the source https://blog.csdn.net/devcloud/article/details/90764736

introduction

Hello everyone, I am a product manager for Huawei cloud DevCloud management and collaboration less constant domain

I have a saying: "Hang less produced, will practice hands were stained with mud from the"

With DevCloud clients develop an understanding of the concept of agile / DevOps and based on actual delivery after DevCloud software, more customers ask new questions: Can you share how you are developing every day, your team is what kind of organization? What pit? What are mine?

To this end the current practice of "hands were stained with mud", and invited long-term and less constant fighting Service Leader personally wrote "Projectman How to Make"

Preface:

Mentioned ProjectMan, many people may have not heard, but the mention of Chinese name: project management services, many users may be heard. Simply put, ProjectMan DevCloud is a service, providing project members, demand and defect management and other functions, is the most frequently used DevCloud, most users, UV / PV relatively high service.

And I was the team leader R & D services. On one occasion, a client told me feedback that they are in the development process, often encounter a variety of technical problems, while Huawei has three decades of experience in research and development, can not share some of the technical aspects of the document, so that they can refer to and learning, improve their R & D efficiency, avoid taking some detours. I think it really makes sense, customer R & D efficiency, and both customer benefit, also in line with Huawei's interests. So I would like to start a discussion, we first introduce the service, if the result is good, there may be more, much more than I experienced experts to share technical dry goods, hoping to finally DevCloud not only to provide research and development services performance, can form a Huawei and customers between technology platform to share and exchange.

our story

Many IT start-up companies in the beginning, in order to quickly seize the market, product development time required is very short. We, too, the first version requires on-line within a month. In order to quickly develop, we research a lot of existing project management tools, the final choice based on a company's existing internal infrastructure development. Backend SpringMVC + MyBatis framework, MySQL database, use the front page Angular framework development.

Like most systems, on-line after the first version, a large influx of demand. With the overlay function, code complexity is becoming increasingly high, maintenance costs are also growing.

Late last year, we are under immense pressure, the system is reconstructed. In order to decouple the code, can be upgraded independently between functional modules, we put back a micro micro service split into four service. At the same time we replace become more powerful Spring Cloud framework.

In the system reconfiguration few months, we did not interrupt the delivery of demand, still a week iterations, each iteration of the rhythm of dozens of operational needs, until March of this year to complete. After reconstruction, our code structure has been optimized, will not affect each other, the issue now than before the reconstruction net reduction of more than 80%, and upgraded independently of each other between different functional modules, an average of at least a micro-service upgrade day , a substantial increase in demand for efficiency of delivery. Next, I will explain how we operate.

Team Operation

1. Our team is fully functional team, independently responsible ProjectMan end to end delivery and operation and maintenance. A total of 10 developers, including four front-end and back-end six, because there are a total of six micro-services, the average is less than two individuals responsible for a micro service. Moreover, there is no specific testing and operation and maintenance personnel, all the tests and all operation and maintenance work undertaken by developers, such as use cases, deployment environment, each team member can say that we are developing, testing, operation and maintenance capabilities in-one all-round talents, each slightly different role in the distribution of the main work, as I would assume some of the service Leader of more service design work, but I wrote the code, it must be my own test, deploy their own

2. R & D process model, we use the scrum, a fixed weekly iterations, each iteration will be released in several versions. In order to polish our products, all of our work is to use DevCloud ProjectMan up management, with industry practice is the fashionable "eat dog food." According to product manager will demand Epic-Feature-Story hierarchy collated, and then develop plans iteration iteration meeting, probably flow chart is as follows:

 

 

3. branching patterns. Projectman a good number of micro-services, each micro service in the development process, and are based on the development branch, trunk release of ways, the process is as follows:

 

  • Master branch to keep the state can release versions;
  • Develop and release branch test branch, corresponding to different stages of the test;
  • Each characteristic feature alone should pull branch development, merging into the release branch Develop and test after test before it can go together into the master branch;
  • In the iterative process, if the problems encountered in the existing network, the master branch in the code to pull hotfix branch, and then tested by the master branch hair engagement patch;
  • When the code review carried out only in release and hotfix branches merged into the master branch you can live to intercept most of the code defects

This branch management, after the completion of each property development, testing, through to on-line publishing. After a demand without waiting for the completion of a unified version, flexibility release. In April, we released a total of more than 40 versions per working day 2 version.

Sustained release, continuous monitoring

Since the release version so frequently, if not an efficient publishing tool, is absolutely impossible. This tool is on the line DevCloud, and code inspection calls, the compiler build, deploy, and other tasks. Each micro service creates an assembly line, which integrates code checking, the compiler build, deploy, automated testing and other tasks. And an assembly line environment will all together, and after environmental testing through research and development, in order to execute the next environment, and finally the production environment. While Huawei's R & D process is more complex, to be released by the other four test environment to a production environment before, but since these lines by automatically, so a total of only 20-30 minutes to complete release.

在现网,我们使用了很多华为云的其他资源,系统是部署在华为云的ECS上,总共几百台虚拟机实例,数据库使用RDS,文件存储使用SFS等等。得益于自动化运维平台,这些资源,我们开发人员自己可以维护。我们不仅可以在所有节点查看日志、下载文件,还能批量在虚拟机上执行脚本等等。不仅如此,为了能快速响应现网问题,我们采用监控平台对现网的报错进行监控。一旦报错,哪怕只是一个错误码,或者抛个异常,都会被监控平台捕捉到,并且会精确到哪行代码出了问题,然后给负责人发短信提醒。除了对异常的监控,我们对性能指标、资源使用情况等都有监控。

结束语

作为一个Service Leader,业务交付的效率,服务的质量,用户的增长和活跃,架构和技术能否持续健康,甚至控制服务运行所消耗的资源成本,如何削峰填谷,都是需要平衡考虑的。这里面包含了很多的思考和实践,我们会根据大家的反馈,陆续分享一些内容。

作者:SODA(DevCloud Service Leader),恒少

Guess you like

Origin blog.csdn.net/devcloud/article/details/90764736
SO?