Lesson 3 Flashcards
is the process of delivering software applications and updates to end users.
Software deployment
Software deployment is the process of delivering software
applications and updates to end users. Includes various activities
such as:
o Installation
o Configuration
o Running, and;
o Testing the software in a target environment.
true
Proper software deployment ensures that applications function
correctly, are scalable, and are secure.
True
- A well-executed deployment also contributes to system reliability,
security, and overall user satisfaction
True
Ensuring the software is packaged and ready for
deployment.
Preparation
Creating installation packages, scripts, or images.
Packaging
Testing to confirm proper deployment and
functionality.
verification
Continuous monitoring and providing updates
and patches.
Maintenance
is the broader process that includes release activities.
Deployment
Installing and configuring the software on
production servers.
Deployment
involves the entire process of making the software available for use, including installation and
configuration.
Software Deployment
specifically refers to the distribution of a new version or update to users.
Software Release
Best Practices for Software Deployment
* Use automated deployment tools to streamline the process.
* Conduct thorough before and after deployment.
* Implement rollback mechanisms in case of failures.
* Maintain clear documentation of the deployment process.
* Continuously monitor performance post-deployment
true
Training users and addressing their concerns post-deployment.
User Adaptation -
Keeping track of software settings and dependencies.
Configuration Management -
Need for secure deployment to avoid breaches.
Security Vulnerabilities
Unexpected failures during deployment.
Downtime & Service Interruptions
Software must work across different environments.
Compatibility Issues
Uses two environments, one live and one
idle, for seamless updates.
Blue-Green Deployment
Deploys new features to a subset of users
before full release.
- Canary Deployment -
- Enables/disables features dynamically without redeploying
- Feature Toggles
- Gradual software rollout to minimize downtime.
- Rolling Deployment
- For this to work, both environments must have the same database schema to share data seamlessly, or a system to synchronize different schema versions.
Blue-Green Deployment
Deploys the entire system at once, often riskier
- Big Bang Deployment
The stable, or older version of the application is always referred to as blue (or red), while the newer version is green (or black).
Blue-Green Deployment
The new version is set up and production traffic is slowly shifted from the older version to the new one. For instance, during the deployment process, the older version might still handle 75% of all traffic while the newer version handles the
remaining 25%.
- Canary Deployment -
- Updates servers one at a time in a round-robin fashion. This means each server can be tested before moving on to the next, making the deployment process more controlled
and predictable.
- Rolling Deployment -
The software may not always be available to end users even after deployment, which is a possible step in the release process. It can be carried either as part of standard maintenance procedures or in advance of a release.
Timing - Software Deployment
Enables or disables features dynamically without redeploying the entire system. It
provides flexibility in managing feature releases and allows for A/B testing. But, can lead
to complex code management and technical debt if not handled properly.
- Feature Toggles -
Requires a significant amount of coordination and testing to ensure that all the changes
work together as intended. Also requires a larger amount of testing and validation in a
short period of time. The risk is often also increased since all the changes are deployed
in one go and if something goes wrong it’s harder to rollback
Big Bang Deployment -
When software is released, it becomes accessible to end users. Choosing when to release the program to the public requires considerations that are frequently in line with marketing plans or user expectations
Timing - Software Release
The technical side of delivering and installing software is the main emphasis of deployment.
Scope Software Deployment
Ensuring that the program is deployed accurately and effectively in the target environment is the main objective of deployment
Goals Software Deployment
Release covers more ground than just deployment. It also includes documentation, marketing, and user communication.
Scope Software Release
Delivering a software version that satisfies quality criteria and offers users value is the main objective of a release
Goals Software Release