added a section on architecture patterns

pull/492/head
dron-dronych 2020-11-23 00:20:03 +06:00 committed by GitHub
parent 727a2f8bba
commit 6f96dac521
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 0 deletions

View File

@ -130,6 +130,7 @@ Review the [Contributing Guidelines](CONTRIBUTING.md).
* [Application layer](#application-layer)
* [Microservices](#microservices)
* [Service discovery](#service-discovery)
* [Architecture patterns](#architecture-patterns)
* [Database](#database)
* [Relational database management system (RDBMS)](#relational-database-management-system-rdbms)
* [Master-slave replication](#master-slave-replication)
@ -791,6 +792,10 @@ Pinterest, for example, could have the following microservices: user profile, fo
Systems such as [Consul](https://www.consul.io/docs/index.html), [Etcd](https://coreos.com/etcd/docs/latest), and [Zookeeper](http://www.slideshare.net/sauravhaloi/introduction-to-apache-zookeeper) can help services find each other by keeping track of registered names, addresses, and ports. [Health checks](https://www.consul.io/intro/getting-started/checks.html) help verify service integrity and are often done using an [HTTP](#hypertext-transfer-protocol-http) endpoint. Both Consul and Etcd have a built in [key-value store](#key-value-store) that can be useful for storing config values and other shared data.
### Architecture Patterns
When designing a system, a software architect may be put before a challenging task of satisfying the criteria to satisfy such as those defined by business goals or project constraints. There exists a whole variety of concrete architecture patterns that can be used alone or in a combination. [This](https://docs.microsoft.com/en-us/previous-versions/msp-n-p/dn589799(v=pandp.10)) guide by Microsoft is a very good overview of 24 such patterns as well as an in-depth look at each. Each serves a concrete engineering purpose and is worth getting acquainted with.
### Disadvantage(s): application layer
* Adding an application layer with loosely coupled services requires a different approach from an architectural, operations, and process viewpoint (vs a monolithic system).