The author | Li Li he (bone)

Edit | orange

New retail product | alibaba tao technology

As the back-end development, always repeat the “add, delete, change and check”, these basic operations occupy most of their working time, see others become technical heroes, and personal technical level will always stop in situ, also very confused……

Is that all there is to learn? Do you find that your code gets more complex as you work longer? How to improve the efficiency of file upload and download? How to ensure the real-time performance of message push? At the same time using too many people, how to do the server explosion…… There’s so much to learn.

I hope this article can rekindle your enthusiasm, better improve technical ability and judgment, stand in a higher perspective to see their own code and technical solutions, see the highlights and value of technology.

Introduction to the CRUD

Interpretation from the definition of CRUD, CRUD refers to the acronym of the words increase (Create), read (Retrieve), Update (Update) and Delete (Delete) in computing processing, CRUD is mainly used to describe the basic operation functions of database or persistence layer in software system.

From the perspective of software layered architecture, this layer is defined in the industry as DAO(DataAccessObjects), which refers to the access to persistent data between business logic and persistent data.

As the name implies, to equate CRUD with backend development stack content is to misconceptualize and missummarize, as most backend engineers say in their daily lives: In the case of unclear or not particularly valuable product requirements, people often simply define what they do or demand as CRUD, which is a kind of “self-ridicule” and “contempt for product requirements”.

Continuous technology evolution

Looking back at the history of computer development, from single machine to network computer, from single application to distributed application, we can see the rapid development of technology from these two articles.

From the Web era to the era of mobile Internet to the era of artificial intelligence, the accelerated development of hardware has brought the rapid development of software. Whether traditional software or Internet software, the roles of software positions have been gradually refined, such as the emergence of front-end, client, back-end, algorithm, big data and other subdivision roles. The technical challenges faced by each role and the problem domains solved are redefined and divided. Responsibilities are clearer, the scope of capabilities is more focused and focused, and the technology stack is clearer and clear. From this division, what else should the back-end have besides CRUD?

The back end of the iceberg

Software applications are like icebergs, where the user sees only a tiny part of the application, and the largest part of the application is invisible. This is the elusive and mysterious “back-end domain.”

As a back end staff, not just stay on the client side and interactive experience, more important from the user’s data model, the business scenario, the business model, system architecture design, domain modeling, business process and high concurrency, high reliability, large scale, such as Angle stability, to improve the whole experience and value of products, solve the user’s demands.

Back-end development refers to “application server back-end” development, which mainly involves the “back-end” support of software systems.

For example, the server that supports the Web site and App client, and the application middleware between the backend server and browser and App, all belong to the backend category.

Simply put, the basic services that you don’t see on screen but are used to support the front end, such as data and services, and the corresponding business systems, are the areas that the back-end development core needs to think about and solve.

Back-end development responsibilities

As the back-end technology students, need for technology stack to build up reserves of comprehensive skills and need from the macroscopic technical breadth and depth of the micro technology expand, based on the business scenario and value mapping technology solutions and strategies, from the perspective of business extensibility architecture design, better ability to guarantee the sustainable product delivery, From the demand, product, research and development, quality, operation and maintenance, operation and so on in the process of fine consideration, from the perspective of users to improve user experience, enhance user loyalty to the product, and ultimately achieve product business value.

In a word, “Never stop learning.”

Take the product life cycle as the research and development goal, from one end to the end of the product, the needs and problems of various products in the process, need continuous investment and solution of back-end development, and through the introduction of new technology or technological innovation, bring further incremental value to the product.

For example, the current very popular e-commerce live broadcasting involves high-definition live broadcasting ability, face recognition ability, real object capture ability, large-scale real-time interaction ability, large-scale second kill shopping ability, etc., all of which require front-end and back-end depth technology to bring scene richness and real-time interaction.

For products, it is necessary to guarantee 7×24 hours high reliable non-stop service, all to meet the needs of users and provide high-quality services for compliance, technology to bring business value.

Back-end base split

In recent 10 years the Internet development, especially the mobile Internet began to rise, after million level DAU user product, a single application to vertical squeeze hardware resources to improve performance, and a single point of failure can not meet the requirement of the “stop keep the SLA service”, you need to do to level architecture extension support cluster deployment, and unitized long-distance deployment.

The front traffic entrance needs to do VIP routing load balancing based on DNS service and reverse proxy based on NGINx server. Not only that, but also consider the log-in state session problem and session consistency.

As business scenarios and business processes became more complex, we had to put some business logic on one cluster and some business on another cluster, and the concept of microservices architecture was born.

Obviously, the computing capacity and processing capacity of the system are greatly enhanced, but the communication between these systems has become a headache, message queue and RPC framework therefore appeared, in order to improve the communication efficiency, a variety of serialization tools to solve the problem of data compression and efficiency.

When massive big data appear, a single database can not support, began to do the database read and write separation, if not, do branch database and table, because data need to do cross-database cross-table query and distributed transactions, in order to solve this problem, and there are a variety of storage solutions and storage technology.

In addition, with the emergence of VM technology and Docker/ K8S technology, large-scale deployment becomes possible. With the limitation of single memory size and the demand for shared memory in the cluster, cache is separated from the application cluster for cluster deployment to provide high-quality distributed cache service, and with the rapid development of servicemesh and other application technologies.

At the same time, multimedia technology is becoming more and more interactive and rich. Based on powerful mobile terminal technology, photos and videos can be shot and uploaded to the cloud anytime and anywhere. Hundreds of millions of users need faster downloading and watching experience at the terminal.

With the rapid growth of the Internet, especially the mobile Internet, and the demand for massive information acquisition, search engines develop and apply at a high speed.

Recently, with the rapid development of artificial intelligence and rich application scenarios, the end-to-end intelligence further reduces the cost and efficiency of users’ information acquisition, changes users’ active search to passive receive and obtain valuable information, and makes accurate recommendations to help users make decisions.

With the rapid development of 3G/4G, end-to-end instantness and real-time interaction are required, in which application scenarios such as live interaction and instant message IM appear, and users interact and perceive in real time. The development of infrastructure, especially network communication, and the enhancement of terminal equipment processing capacity make massive mobile device access and end-edge computing access a reality.

From traditional Ethernet, to WIFI of wireless LAN (IEEE 802.11b/G/N/AC), to the continuous development of wan cellular network (3GPP GSM, GPRS, UMTS, LTE, LT-Advanced…) , and even the rise of the entire wan in the field of IoT and the evolution of terminal technology (Bluetooth, NFC), marking the explosive growth of the device’s extensive connection and network access, especially the arrival of IoT/5G era, technology brings new situations and new scenes accompanied by the future.

Split back-end services

After talking about the back-end base middleware and mobile middleware series, how to build back-end business system?

From the technical point of view, the basic middleware has been more detailed and in-depth. From the business point of view, it is necessary to master the basic principles and application scenarios of middleware, as well as the characteristics of each middleware, and select and apply them according to the business scenarios.

Besides technology selection, as a business backend role to focus in the field of demand analysis, system architecture design, model building, product delivery quality, etc., including more fire in recent years the “big middle, small front desk” architecture concept, as a line of the front desk business will become more agile, more quickly adapt to rapidly changing market, The central office will integrate the group’s operational data capabilities and product technology capabilities to provide strong support for all front desk businesses.

Admittedly, based on each subsystem after splitting, students at the back end also need to focus on upstream and downstream application dependency, interface API/SPI design, core performance indicators, business indicators and corresponding flow control strategy, security prevention and control, etc., and design corresponding domain model, business logic and SOP operation process based on business requirements.

Include the use of design patterns and frame selection considerations, as well as to the middleware (cache, memory, files, network) depend on the choice, such as the quality of the whole publishing process and code of the accused, ultimately be published online and operational process of late, continuous delivery of the product and iterative evolution need to make technical judgment and further thinking, promote the evolution of technology and products last iteration, Fully consider the technical ROI input-output ratio, and make correct technical judgment under business requirements. Technology is developing with each passing day. In the future, it will be more necessary to closely grasp the pulse of technology and have a global perspective to make key judgments and trade-offs, so as to bring value to users. image.png

Come on after wave

The technology of the Internet is changing all the time, and the technology is becoming more and more focused, and the technology development on the back end is becoming more and more refined and layered.

As backend students, they need to pay more attention to the trends and direction of the industry, including QCon technology Summit, Architecture Summit, Github and technology community.

It is necessary to have a keen sense of smell and judgment, through the combination and application of technology stack, make correct judgment and technology selection, improve product capability and promote product and technology evolution, continue to deliver high-quality products and shorten product delivery iteration cycle under the rapid development of business, and quickly implement business and meet user needs.

Back-end development requires a total commitment to truly understand the technology behind it and be able to understand it from one side to the other, to translate the stack to your own understanding, and not just a “back-end CRUD”.

In the future, in the 5G era, continuous innovation of technology is more needed. New business scenarios and products are bound to emerge. We need to do a good job in technological reserve and innovation to cope with new changes and challenges. Finally, we hope that we can go with The Times, with forward-looking technology and innovative change, hand in hand!