System Integrated Practice 1st Operation

System Integrated Practice 1st Operation

Course survey

I haven't inquired about this class before my seniors before, so it was totally subjective.

Judging from the subject of the course, I think it should be more similar to the practice of soft industry and a more comprehensive practical course, but the focus may be different. Software engineering practice is mainly software, and the focus of this system's comprehensive practice should be on the system. But the word "system" also has various interpretations. For example, it represents an operating system, which is a comprehensive practical course for studying computer operating systems, or a system is an adjective, which represents this is a "systematic, comprehensive" practical course. To help us conduct a more comprehensive practical application of what we have learned in the past three years.

Understanding microservices

1. What is a microservice

The concept of microservices was first proposed by Martin Fowler and James Lewis in 2014. They defined microservices as a small service composed of a single application, with its own process and lightweight processing. The service is designed according to business functions. Deploy automatically and communicate with other services using HTTP API. At the same time, the service will use the smallest centralized management (such as Docker) technology, services can use different programming languages ​​and databases.

2. Features of microservices

  • Can be released for specific services, with little impact, low risk, and low cost
  • Can frequently release versions, quickly deliver needs
  • Low-cost expansion, elastic expansion, adapt to cloud environment

3. The advantages and disadvantages of microservices

  • Advantages of microservices
    • Microservices are loosely coupled, whether they are independent in the development or deployment phase.
    • It can respond quickly, and it is easy to modify locally. A problem with a service will not affect the entire application.
    • It is easy to integrate with third-party application systems, supports development in different languages, and allows you to take advantage of the latest fusion technology.
    • Each microservice is small, cohesive enough, small enough, and the code is easy to understand. The team can pay more attention to their work results and focus on specified business functions or business requirements.
    • The development is simple and the development efficiency is improved. A service may be dedicated to only one thing and can be developed separately by a small team. This small team can be composed of 2 to 5 developers.
  • Disadvantages of microservice architecture
    • The microservice architecture brings too much operation and maintenance operations, which may require the team to have certain DevOps skills.
    • Distributed systems can be complex and difficult to manage. Because the problem of distributed deployment tracking is difficult. As the number of services increases, management complexity increases.

4. The deployment of microservices

  • Host-based multi-service instance
    • In this mode, software developers can provide single or multiple physical or virtual machines, while running multiple service instances on each host.
  • Host-based service instance
    • Such microservices can be deployed to run each instance individually on the corresponding host.
  • Container-based service instance (Docker)
    • In this deployment mode, each service instance runs in its own container, so it is also called an operating system-level virtualization mechanism.

Learn Docker technology

1. Introduction to Docker

  • Docker is an open source application container engine that allows developers to package their applications and dependent packages into a portable image, and then publish it to any popular Linux or Windows machine. It can also be virtualized. The container is completely using the sandbox mechanism, there will be no interface between each other.
  • Image (Image): Docker image (Image) is equivalent to a root file system. For example, the official image ubuntu: 16.04 contains a complete set of Ubuntu16.04 minimum system root file system.
  • Container (Container): The relationship between the image (Image) and the container (Container), just like the classes and objects in object-oriented programming, the image is a static definition, the container is the entity of the image runtime. Containers can be created, started, stopped, deleted, suspended, etc.
  • Warehouse (Repository): The warehouse can be regarded as a code control center for storing images.
  • Docker Compose is a tool for defining and running multi-container Docker applications. With Compose, you can use YML files to configure all the services your application needs. Then, with a single command, you can create and start all services from the YML file configuration.
  • Dockerfile is a text file used to build an image. The text contains a series of instructions and instructions needed to build an image.
  • Docker Machine is a tool that can install Docker on a virtual host, and can use the docker-machine command to manage the host.
  • Docker Swarm is Docker's cluster management tool. It turns the Docker host pool into a single virtual Docker host. Docker Swarm provides a standard Docker API, and any tool that has already communicated with the Docker daemon can be used-Swarm easily scales to multiple hosts.
  • Kubernetes (k8s) is Google's open source container cluster management system. Based on Docker technology, it provides a series of complete functions such as deployment and operation, resource scheduling, service discovery and dynamic scaling for containerized applications, which improves the convenience of large-scale container cluster management.

2. Installation and simple use of Docker environment

Guess you like

Origin www.cnblogs.com/phd1999/p/12723438.html