R & D and engineering functions shuffle model of cloud development model

This article is a lecture on the topic "engineering models and landing practice under the cloud development model" November 7, I share Techo Tencent Technology Conference on finishing.

Software development has experienced decades of development today, the focus of developers actually only two: system architecture and software architecture . Figure contents listed some belong to the system architecture level, such as remote disaster recovery, network lines, network protection, and so on; some belong to the software architecture level, such as databases, high concurrency, file storage, and more.

Whether the system architecture or software architecture, are designed to ensure the accuracy and efficiency of the business logic. In other words, all revolve around business logic.

With these two concerns, based on the distribution of functions gradually evolved now general structure of R & D team. For example, in order to evolve the system architecture based operation and maintenance engineers, can be subdivided into software and hardware for the operation and maintenance for the operation and maintenance; software-based architecture evolved database engineers, service engineers and the front end engineer.

Each function has a different division of labor, requires practitioners to have their respective functions exclusive domain of knowledge, which causes obvious isolation boundary between functions. The existence of the border would have a negative impact on cooperation and exchange of multi-functions.

Extreme Programming is a software engineering method proposed by Kent Beck in 1996, and later evolved into three kinds familiar with the specific floor plan: closed development, agile development and pair programming. The first two of this article is not associated with the topic, so skip. The following figure shows the front and rear end knot is the classic scenario of development:

Although the pair programming shortens the spatial distance makes communication more convenient, but the space is not the only or even the main factors affecting communication. Because of the obvious functional boundaries between the front and rear end, so in reality the vast majority of pair programming results are less than ideal up. And not only did not contribute to shortening the effective communication of spatial distance, but self-defeating facilitated two men arguing.

And this problem under the cloud development model is greatly weakened or even completely eliminated. Why is it so, we start with the history of cloud computing talk.

From the system software to the evolution of cloud computing road

From physical to cloud hosting and then PaaS, cloud computing a step by step to reduce the developer for the system architecture of concern, reducing investment and economic operation and maintenance costs. Serverless step further, weakening the developer perception and attention to software architecture.

So FaaS + Serverless model BaaS leaving a shortfall of what? Cloud Development How to make up for lack of Serverless?

For example, below is the ability to use cloud storage cloud development provided by the static files upload and download operations:

The difference is that with the traditional CDN, cloud storage after the upload file get is a fileIDnot the URL, and the first to use when downloading fileIDexchange URL, will make the necessary authority in this verification process, unauthorized users can not obtain the URL of the resource .

From the above comparison cloud storage can be extracted with respect to the conventional two lifting points CDN: First, more secure and convenient access control; two more semantic programming language API.

This is the cloud development to address two core starting point to end the "last kilometer" problem in Serverless basis.

About Cloud Development to strengthen the Serverless See Further Reading "How to develop cloud last kilometer problem solving serverless peer" .

Cloud Development to promote the development of functional structure reshuffle

Since there has been a birth BFF "BFF layer who will do" controversy. Essentially BFF is a server layer, requires developers to have domain knowledge and ability to serve end development. So to the traditional front-end engineers do there must be some hidden cost of learning and service stability, even if the direct recruitment of front-end has this ability will consume relatively more traditional front-employment costs.

So BFF to the back-end developers are not on line yet? So, then what difference does it with the traditional R & D functions assigned? Interactive front-end still write, still write back-end logic, no changes on the collaborative process, what is the meaning? What efficiency?

Such a difficult choice simply because the front-end engineers will not write business logic? Or because the front is not familiar with server-side programming language?

of course not.

Programming languages ​​are among the functions of the outermost layer is the most likely to have crossed a threshold, the business logic is more than a problem. The reason why the traditional front-end write bad server, because of the lack of specific domain knowledge to develop the service side of nature, and these areas are nothing to do with knowledge of programming languages ​​and business logic.

Therefore, under the cloud model developed by the cloud acting as a function of the business logic instead of carrying those BFF layer, the only requirement for the two developers familiar with programming languages ​​and the ability to write business logic is that, while other areas of knowledge and independent not and will eliminate both.

Is bound, the front and rear end of the separation boundary sinks below BFF, and thus the conventional front and rear ends are re-shuffling functions assigned structure.

The engineering model after shuffle replacement.

R & D functions of a single iteration will inevitably bring to enhance the efficiency, on the other hand, the front and rear end is also responsible for a single function provides an environment to play more tricks, such as homogeneous programming.

to sum up

Although generally considered Serverless = FaaS + BaaS, but Serverless is a concept, a guiding principle, and not limited to a fixed model. Serverless cloud development on the basis of the concept of the above, in order to end SDK + mode access layer to make up for lack Serverless peer capabilities. On this basis, the traditional R & D functional structure is further reshuffle.

Further reading:

Guess you like

Origin www.cnblogs.com/ihardcoder/p/11834153.html