Coverage:
1. DevOps is first a mindset, then toolchain
- Dev and Ops are two separate disciplines
- Development Team (Dev) is responsible for producing feature / bug fix
- Ops Team is responsible for releasing tested code into production
Ponder: After features are developed, Dev hands over to Ops for deployment and continuous monitoring in production. What could go wrong?
Ponder: What do you think are the challenges in merging two disciplines into one?
- Maintain version control on all production artifacts
- Implement CI/CD
- Automate acceptance testing of specifications of the system
- Enforce peer review processes
- Create a culture of high trust
- Instate proactive monitoring practices
- Foster win-win relationships across the organization
- Speed
- Rapid Delivery
- Reliability
- Scale
- Improved Collaboration
- Security
In the beginning, DevOps engineers are transitted from either Development of Operational background. Hence, a DevOps engineer would either lean more towards development or operations.
Ponder: What knowledge and skillsets do you think are essential to make a great DevOps Engineer?
2. DevOps Enable The Shift-left Initiatives
- DevOps enables test automation
- Test automation enables fast feedback loop should there be failure
- This means Business Analyst / Product Owner is able to define test cases before development (commonly BDD)
- Developers is able to adopt the red, green, refactor approach to develop user stories
3. Branching Strategies
Popular Branching Strategies:
Ponder: How does branching strategies affect how you configure CICD?
4. GIT Command Challenge
You are part of a development team that uses GitHub Flow. Your tech lead has assigned you a feature and has created a branch for you feature/feat-111-login-with-google-sso
and you have successfully cloned this branch into your local machine using the following command:
git clone https://github.com/your_organization/my_project
cd my_project
git checkout feature/feat-111-login-with-google-sso
code . # you started a visual code to work on the feature
Now, you have completed the feature and is ready to commit your changes and push it back to the same branch remotely. What should your GIT commands be?
# Your input