The following is a diagram of the technology stack, which may be helpful for students who are just working.
Cloud-native applications are applications designed for the "cloud". After using cloud-native technologies, developers do not need to consider the implementation of the underlying technology, and can give full play to the elasticity and distributed advantages of the cloud platform to achieve rapid deployment, on-demand scaling, Non-stop delivery, etc.
In terms of technology, cloud native is a distributed cloud based on distributed deployment and unified operation and management, and a set of cloud technology product systems based on technologies such as containers, microservices, and DevOps.
1.
The microservice solution focuses on the development level, we still focus on the Spring Cloud system, and use a variety of Spring Cloud implementation components. Spring Cloud is a set of specifications. In the past few years, the more mainstream implementations are Spring Cloud Netflix
, such as Eureka, Zuul, Ribbon, Feign, Hystrix, etc., which belong to Netflix components. But in recent years, Spring Cloud Alibaba has gradually matured, and even Dubbo has been included in the system. We recommend that the Spring Cloud Alibaba
system components should be used first. The domestic community of this series of components should be active, and it is more in line with the habits of Chinese people.
- gateway : It is recommended to learn
Spring Cloud Gateway
, as a microservice gateway, it can realize functions such as unified authentication, service monitoring, load, service current limit, log record, etc. - current limit downgrade : Recommended with
Sentinel + Sentinel Dashboard
. Sentinel is a component of Spring Cloud Alibaba, which can realize the functions of service fuse, current limit, downgrade and hotspot protection. Sentinel Dashboard provides Sentinel with a visual web console. Sentinel's similar products include Hystrix and Resilience 4J, but Hystrix is not recommended because the maintenance has been discontinued. - service calls : It is recommended to learn
Dubbo Spring Cloud
, because the transmission performance of Dubbo is much higher than that of OpenFeign based only on http. - distributed transaction : It is recommended to learn Alibaba's
Seata
framework, which provides AT, TCC, SAGA and XA transaction modes, which can basically cope with most application scenarios. - health monitoring : If conditions permit, it is recommended to match
Spring Boot Actuator + Prometheus + Grafana
. Spring Boot Actuator helps us to monitor the internal operation of the program, such as monitoring status, bean loading, environment variables, log information, thread information, etc.; Prometheus is an open source system monitoring and alarm framework; Grafana can collect The data query is then displayed visually and notified in time. Actuator provides endpoints to expose data, Prometheus regularly pulls data and saves and provides search and display, Grafana provides more exquisite graphical display. If you want simple monitoring, you can useSpring Boot Actuator + Spring Boot Admin
. Admin provides a visual display page. - Registration Center : It is recommended to learn Alibaba's
Nacos
. Similar products include Eureka, Zookeeper, Consul, etc. Eureka supports AP in distributed transactions, the latter two support CP, and Nacos can automatically switch between AP and CP. - Configuration Center : It is recommended to learn Alibaba's
Nacos
. Similar products include Spring Cloud Config and Apollo (Ctrip), but they are inferior to Nacos in terms of functional sophistication and ease of use. - link tracking : Recommend
Spring Cloud Sleuth + Zipkin
, Zipkin's similar products include Cat, Pinpoint, SkyWalking, etc. The reason for choosing Zipkin is because it is easy to use, and if you have the conditions, you can try other products. - Java diagnostic tool : It is recommended to learn Alibaba's
Arthas
. In the past, jps, jmap, jstack and other jdk tools were needed to troubleshoot online Java problems. Arthas can perfectly replace these. - message middleware : message middleware recommends
RabbitMQ
. Similar products include Kafka and RocketMQ. In fact, RabbitMQ has the worst concurrent throughput among the three, but its advantage lies in data consistency, stability and reliability. Sex is better protected. In to B's business development, RabbitMQ is more suitable. - cache database : distributed cache recommended
Redis
, you can try the local cache EhCache framework. - distributed coordination : It is recommended to learn
ZooKeeper
. Its election and monitoring mechanisms provide good support for distributed coordination, such as distributed locks. - scheduled scheduling : recommended to use
xxl-job
, the same type of products also have quartz, elastic-job, etc. Considering factors such as architecture design and learning cost, xxl-job is more suitable. - search engine : It is recommended to learn
Elastic Search
, which has nothing to say, Elastic Search is currently the most popular search engine. - MySQL incremental synchronization : It is recommended to learn Alibaba's
Canal
, which can achieve incremental synchronization with MySQL as the data source.
2. Containerized
- Docker : is an open source application container engine. Although Docker will be abandoned by Kubernetes in the future, it may turn to container runtimes such as Containerd or CRI-O. But it's not that fast, and it doesn't affect our thinking and basic operations of learning Docker.
- Kubernetes : is an open source, used to manage containerized applications on multiple hosts in the cloud platform. If you still use Docker as the container engine version, it can be understood that Kubernetes is used to orchestrate and manage the Docker containers deployed on it.
- Rancher : Rancher implements a layer of flexible infrastructure services for running containerized applications. Yes, Rancher provides visual services for Kubernetes service orchestration and the management of the Kubernetes cluster itself.
3.DevOps
The core concern is CI/CD. In addition to automatic deployment, it also includes pipeline processing such as automatic testing after code submission, code quality review, and version management.
- GitLab : is a self-hosted Git project repository, similar products include GitHub, Code Cloud, etc. GitLab is recommended for enterprise privatization because it is free and GitHub charges.
- Nexus : Nexus is a powerful Maven warehouse manager, which greatly simplifies the maintenance of its own internal warehouses and the access to external warehouses. The enterprise's network environment usually does not support pulling Maven dependencies directly from public network warehouses, and Nexus plays a big role at this time.
- Harbor : Similar to Nexus, Harbor is a Docker image warehouse manager. Although Docker officially provides a public image warehouse, it is also necessary to deploy the registry in a private environment from the perspective of security and efficiency.
- Jenkins : Jenkins is an open source continuous integration tool used to monitor continuous repetitive work. It aims to provide an open and easy-to-use software platform that enables continuous integration of software projects. The pipeline configuration of each stage of DevOps is usually executed through Jenkins.
- Sonar : Sonar (SonarQube) is an open source platform for managing source code quality. Sonar is not just a quality data reporting tool, but also a code quality management platform.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。