DevOps - NextensArelB/SwaggerGenerationTool GitHub Wiki

Introduction

Within Nextens we aim to work DevOps, but what is DevOps?

DevOps is a cross-functional systems engineering culture that aims at unifying systems development (Dev) and systems operations (Ops) with the ability to create and deliver fast, cheap, flexible and with adequate quality, whereby the team as a whole is responsible for the quality. Also other types of expertise are integrated in the team, like Quality Assurance (including testing) and Business and Data Analysts. image.png

DevOps activities

Monitor

  • Collect data and provide analytics:
    • Non-functional indicators: CPU usage, memory usage, diskspace usage
    • Functional indicators: Heartbeat check, health check, metrics (e.g. http response status and http response time), auditing
  • Inspect the performance of the CI/CD pipeline and improve where necessary to increase the productivity of the development and operations teams
  • Measure the team performance as a basis for continuous improvement

Plan

  • Collect requirements and feedback from stakeholders and customers, and use input from monitoring
  • Build a product roadmap for delivery of the pursued business value
  • Write epics, features and user stories together with the criteria to be fulfilled at the end of each DevOps activity
  • Build a backlog
  • Plan sprint iterations and allocate tasks
  • The list of epics, features and user stories must be maintained and adapted to new insights

Code

  • Write code for epics, features, user stories, et cetera from the plan
  • Automate processes (e.g. deployment and test automation)
  • Commit code to a shared repository, that allows historical viewing, branches, versioning, and more
  • Define and run the automated unit tests An important part of this activity is confidence: each piece of software must include its own automated tests.

Integrate

  • The code is integrated to a deployable and testable application, the so-called build
  • Perform a series of manual tests:
    • Functional test: the 1st delivery of a feature is always tested manually (before it will be automated), to check if the acceptance criteria are met and no wrong interpretations have been made or requirements have been forgotten
    • Acceptance test: test by PO and/or BA to determine if the functionality delivered will support our customers need
  • Perform a series of automated (regression) tests: run automated API, UI and end-to-end tests
  • Perform security and performance tests
  • Create new of automated tests:
    • Determine which of the manual tests have to be automated: API, UI and end-to-end tests

Deploy

  • Release the build – automatically – into production using a CI/CD pipeline
    • Current situation (done manually): Continuous Delivery.
    • To be situation (done automatically): Continuous Deployment.

Operate

  • The new release is live and used by our customers
  • This is where the business value is experienced
  • Feedback from our customers is collected by User experience and Business Analysts
  • The feedback is used for updating the backlog

image.png

⚠️ **GitHub.com Fallback** ⚠️