DevOps, Technology and tricks

Deployment Techniques

Choosing the right deployment strategy is critical for ensuring smooth application updates and minimizing downtime. Below are some key deployment techniques, summarized with their key characteristics:

1. Blue-Green Deployment

  • Key Idea: Deploy new changes to a separate “Green” environment while the “Blue” environment serves production traffic.
  • Switch Over: Traffic is redirected to the new “Green” environment once validated.
  • Advantages: Minimal downtime, easy rollback to the “Blue” version if issues arise.
  • Challenges: Requires maintaining two identical environments.

2. Greenfield Deployment

  • Key Idea: Develop and deploy on a completely new infrastructure without affecting the existing system.
  • Use Case: Ideal for new projects or overhauling legacy systems.
  • Advantages: No interference with the current system, no legacy constraints.
  • Challenges: Requires a full build-up of infrastructure, more expensive in terms of resources.

3. Rolling Deployment

  • Key Idea: Deploy new versions incrementally, server by server, while others continue serving the older version.
  • Advantages: No downtime, reduced risk of total failure.
  • Challenges: Longer deployment time, potential for version mismatch issues during the rollout.

4. Canary Deployment

  • Key Idea: Release the new version to a small subset of users first, then gradually roll it out to the rest.
  • Advantages: Allows for testing with minimal user exposure, early detection of issues.
  • Challenges: Requires infrastructure for monitoring and user segmentation.

5. Recreate Deployment

  • Key Idea: Stops the existing application, deploys the new version, and restarts.
  • Advantages: Simple and direct.
  • Challenges: Causes downtime during deployment, not ideal for high-availability environments.

6. A/B Testing Deployment

  • Key Idea: Run two different versions of the application simultaneously, testing which one performs better for user interactions.
  • Advantages: Direct performance comparison, better user feedback.
  • Challenges: Requires more resources and user segmentation.

Conclusion

Each deployment strategy has its strengths and weaknesses depending on the specific requirements of the application and infrastructure. Consider factors like downtime, rollback capability, and resource availability when choosing the best deployment technique for your project.

Azure, DevOps

Azure devops – Powershell – passwords

Error:
2019-09-23T18:56:36.7532247Z ##[command]. ‘C:\vstsagent\A1\_work\r1\a\xxxxx\ConfigureHosts.ps1’ -BizTalkHostGroup “BizTalk Application Users” -BizTalkHostInstanceAccount “xxx\SVC_xxx” -BizTalkHostInstanceAccountPassword “***” -BizTalkIsolatedHostGroup “BizTalk Isolated Host Users” -BizTalkIsolatedHostInstanceAccount “xxx\SVC_xxx” -BizTalkIsolatedHostInstanceAccountPassword “***”
2019-09-23T18:56:37.3226214Z ##[error]Invoke-Expression : At line:1 char:393
+ … xxxx” -BizTalkIsolatedHostInstanceAccountPassword ” &JDN+K …
+                                                                 ~
The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
quotation marks (“&”) to pass it as part of a string.
Solution:
Problem is not with & instead all special charecter needs escape sequence. In my case i had ` and ” in the password which needed to be replace with escape sequence.
replace ` with ` ` and ” with “”
DevOps

Automated Build terminologies

  • Build automation is essentially automating how the software is built instead of manually invoking the compiler. This would be accomplished via tools such as Makefiles or Ant.
  • Deployment automation is less well-define but involves taking your built software and “deploying” or “installing” it on a test or production system.
  • Continuous integration means having an automated process build your software continuously as developers check in code. For example, every 15 to 30 minutes a server might wake up, look for new check-ins, and build the project if any changes were made.
  • Continuous delivery is a combination of CI and DA where the software builds from CI are also deployed to a test system.