AZ400 Exam Notes Part 2

AZ400 Exam Notes Part 2

Week 2 Notes working through the AZ400 Ignite Cloud Challenge.

Describe team structures

Waterfall: traditional software development, sequential order, moving to next step once current step complete. Drawbacks due to customer needing to create requirements before coding starts, which can be hard.

Agile: adaptive planning, early delivery & continual improvement. Encourages rapid and flexible responses via iterative cycles/releases.

Agile Manifesto

  • satisfy customers with early and continues delivery
  • harness change for competitive advantage, welcome changing requirements
  • deliver results frequently (shorter cycles the better)
  • people working together daily to deliver the project
  • build projects around motivated individuals
  • face-to-face conversations needed for efficient and effective communication
  • working results the primary metric of progress
  • promote sustainable workloads
  • continuous attention to excellence and good design
  • simplicity - essential to maximising the amount of work not done
  • best architectures, requirements and designs emerge from self-organising teams
  • regular retrospectives on how to be more effective

Agile is mind and culture shift that challenges existing procedures, large orgs with governance leads to more rigid rules and strict roles for delegation. Most are now experimenting with agile approach as a way to cope with quick change, and minimise disruption from startups.

Horizontal vs Vertical teams: horizontal teams divided into software architecture ie UI, architecture, data. Vertical teams spans architecture and aligns by skillset, this alignment have been shown to provide better outcomes on Agile projects, scaling is also easier as just done by adding more teams.

Aim to find team members with the following characteristics for successful DevOps transformation:

  • already think there is a need to change
  • ability to innovate
  • well respected in organisation
  • broad knowledge of organisation and processes
  • believe in DevOps practices

Cultural changes: WFH and Open Offices can limit collaboration, staff work better when they have comfortable working environments. Defined meeting times can help, asynchronous communication should be encouraged, but no expectation of urgent response so people can focus on primary tasks. Meetings should have agendas and strict timeframes. Success through collaboration and communication.

Cross-functional teams: Efficent teams need good communication, better innovation can occur within cross-function teams. Different skills bring different view points, solutions, and challenge existing norms.

Tools Async Comms: Teams, Slack, Glip Planning: Jira, Asana, Trello Other: ProofHub, RedBooth, DaPulse

Choose the DevOps tools

Azure DevOps is a SaaS platform providing various DevOps tools

  • Azure Boards: Work item tracking and reporting tool.
  • Azure Pipelines: CI/CD platform.
  • Azure Repos: cloud hosted private git repos.
  • Azure Artifacts: integrated package management.
  • Azure Test Plans: planned and exploratory testing tool.

Azure DevOps is not focused on Microsoft technologies or Windows, it is designed to be flexible, cross-platform and cloud agnostic.

GitHub is a second SaaS platform owned by Microsoft for provides Git repos and DevOps tools.

  • Codespaces: cloud development environment based on VS Code for ease of development.
  • Repos: Public and Private Git Repos.
  • Actions: Automated workflows including customised scripts
  • Packages: Large number of Open Source projects exist, easy to integrate with third-party offerings.
  • Security: Code scanning and review features.

Authorisation

Azure DevOps allows you to use MS Accounts, GitHubs Accounts, Azure AD accounts, including MFA. For systems that do not support this kind of authorisation you can use Personal Access Tokens (PAT). Useful for command-line tools and tasks in build pipelines.

DevOps comes with default security groups, conditional access policies can also be configured, permissions can be applied on organisation, collection, project or object levels.

Both systems can be integrated with work management tools, eg Trello or Jira. Azure Devops also have Plans for tracking testing process, it also has a Test Feedback extension in the VS marketplace. All members and stakeholders can use the extension.

Apache JMeter is good for load testing, Pester for PowerShell, SoapUI for SOAP and REST testing.

When working out licensing strategy, what phase are you in? How many people? How long are people willing to wait? Who should have access to what? Any advanced package management strategy?

Pricing : Github, Azure DevOps

Plan Agile with GitHub Projects and Azure Boards

During application lifecycle need to plan and prioritise work.

GitHub projects boards are made of issues, pull requests and notes. Boards can be user-owned (personal repos), org-wide (any repo in organisation), repo boards (issues in single repo).

Azure Boards customisable tool for managing Agile, Scrum and Kanban processes. Can track work, issues and defects within projects. Items can be user stories, bugs, features and epics. Delivery plans can also be created to track dependencies and deliverables.

GitHub can be used for source control and Azure Boards for work planning. Can be integrated with App in marketplace. Authentication can be done using PAT or username and password.