Modern Deployment Strategies, Components, and terms
Continuous integration (CI) and continuous delivery (CD).
CI/CD is a software engineering practice that involves automatically building, testing, and deploying code changes. CI servers, such as Jenkins, Travis CI, and CircleCI, can be configured to run a series of tests and checks on code changes to ensure that they are ready for deployment. CD pipelines can then be used to automatically deploy code changes to staging or production environments.
Containerization.
Containerization is the practice of packaging software in lightweight, portable containers that can run on any machine. Containers allow developers to package their applications and their dependencies in a single container image, which can be easily deployed and run on any infrastructure. Popular container orchestration tools include Docker, Kubernetes, and ECS.
- Microservices
Microservices is an architecture style in which a large application is divided into smaller, independent services that can be developed and deployed independently. This allows teams to work on different parts of the application concurrently and deploy changes more frequently.
- Serverless computing.
Serverless computing is a cloud computing execution model in which the cloud provider dynamically manages the allocation of machine resources and charges based on the actual amount of resources used. This allows developers to deploy their code without worrying about infrastructure and only pay for the resources used when their code is running.
- Infrastructure as code (IaC)
IaC is a practice of managing and provisioning infrastructure using code, rather than manually configuring it. This allows developers to define their infrastructure in a version-controlled file and use tools, such as Terraform, to provision and manage their infrastructure.