Micro-architecture and macro-Architecture

Source: Internet
Author: User

From: http://timyang.net/

Most engineers, including architects, started from the micro-architecture. Micro-architecture refers to the rationality of design and implementation in a local field, for example, the rationality of writing a sort program to achieve the complexity of time space, at the same time, it has reached a reasonable standard in terms of code readability, scalability and maintainability. However, in a system, there are not only micro-problems. The macro-architecture refers to a higher-level, global strategy and architecture design, through the architecture, we can ultimately achieve the benefits of efficiency and cost for products or systems. When the system grows, the macro architecture becomes more prominent and gains more benefits. For example, in an Internet web application, from a micro perspective, the higher the cache hit rate, the better. In terms of design, try to place access on the memory. But from a macro perspective, as long as the SLA can be guaranteed, for example, 70% of recent data (may only occupy 1% of the capacity) can be accessed through the cache, and 30% of Long Tail data (may need to occupy 99% of the capacity) is returned through storage, the overall overhead may be reduced by an order of magnitude, and the overall performance has basically changed.

Coding engineers may not get used to this problem when they are away from micro-problems. Micro-problems are easy to see the results. For example, increasing the QPS performance of a program by 30% is an easy-to-measure achievement, and the macro-level architecture looks "virtual ", it is not easy to produce results quickly, for example, transforming a large traditional system into an SOA architecture. It is not easy to see and measure the effectiveness of the transformation, and some hidden benefits will take a longer time to reflect.

Even so, the micro-architecture and macro-architecture complement each other just like strategy and tactics. In addition, both parties have their own importance, and they cannot determine whether one is more important than the other. At the micro level, even if a team of mediocre engineers drops from the sky, the team's performance cannot be changed in the short term. Similarly, if technical leaders only focus on macro-level issues and ignore code details and basic skills, the team's products will always be hard to satisfy. Because the designers of the macro-architecture usually have a greater say in the Organization, if they lack a basic understanding of the micro-problems, they cannot make a correct judgment on the micro-contradictions, system development efficiency and operation efficiency are all problematic. At the macro level, if a group of excellent engineers can gather on a platform with excellent design architecture, they will certainly be more powerful. In a team, there must be a reasonable proportion of macro-and micro-architecture personnel.

The following are some of my previous thoughtsAssertionsAre you sure these are macroscopic or microscopic architectures?

  • The c10k problem refers to the problem of optimising server software to handle a large number of clients at the same time (hence the name c10k-concurrent ten thousand connections ). the problem of Web Server optimisation has been studied because a number
    Of factors must be considered to allow a web server to support specified clients. This can involve a combination of operating system constraints and web server software limitations.
  • The goal of spdy is to reduce web page load time. this is achieved by prioritizing and multiplexing the transfer of Web Page subresources so that only one connection per client is required. transmission headers are gzip-or deflate-compressed by design.
    Moreover, servers may hint or even push content instead of awaiting individual requests for each resource of a Web page. spdy can be used as an efficient replacement for HTTP RPC
The c10k problem refers to the problem of optimizing server software to handle a large number of customers at the same time (hence the name c10k-concurrent connection 10000 ). This is because many factors must be considered to allow Web servers to support multi-client Web Server optimization. This may involve restrictions on web server software that combines operating system constraints.
Spdy aims to reduce the webpage loading time. This is through sub-resources, so that each client has only one connection needs to prioritize and reuse the transfer of web pages. The transfer header is designed for gzip or deflate compression. In addition, the server may imply or even push content, rather than waiting for individual requirements for each resource on a webpage. Spdy can be used as an efficient alternative to HTTP RPC
  • The access latency of a general hard disk is 5-times that of an SSD.
  • The event-based programming model can greatly reduce the overhead of context switches between threads.
  • Code review is systematic examination of computer source code. It is intended to find and fix mistakes overlooked in the initial development phase.
  • In a large system, the combination of modules shows the excellent overall architecture and team efficiency.
  • Mobile app is still dominated by product models and operation directions in the future, and the technology-driven field is mainly focused on fast iteration capabilities.
  • Although big data is a development trend in the future, most of the scenarios of data mining are only application at a low level. the bottleneck of the system is not the mining capability, but the application capability.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.