DevOps – 3 factors for success
DevOps – 3 factors for success
With the merging of development and operations into a DevOps project, new tasks and responsibilities arise. Our interest is to combine these in such a way that we can deliver robust systems with few disruptions in operation in a sustainable way.
From our experience, we have identified three critical factors:
- “ONE” team
- Efficient processes and high degree of automation
- Selection and appropriate use of suitable tools
ONE team - Working together as a team and with the customer
The “ONE team” concept has two sides:
- No specialization, but building up of broad knowledge in the team
- No sub-teams that deal exclusively with individual sub-areas; the entire team works together on all tasks that arise
Building broad knowledge is a prerequisite to enable all team members to meet team responsibilities. The opportunity for personal development is significantly increased for everyone.
All tasks, but especially those from the Ops part, are taken on as rotating responsibilities. The combination of development and operational knowledge has decisive advantages:
- There are no frictional losses in communication between operational and development responsibilities.
- The professional and technical expertise of development enables faster analysis and correction of errors.
- The direct feedback of knowledge from operational tasks as improvement of code, development process and test procedure is easily possible.
An important pillar in the sustainable development of such teams is a regular knowledge sharing and the transfer of expert knowledge. In practice, technical/professional presentations and workshops in a cycle of up to three weeks have proven effective.
Open, transparent and trusting communication contributes enormously to success. We have had very positive experiences, for example, with short, daily "health meetings" in which the results of application monitoring and current anomalies are discussed. All stakeholders (product owner, business consultants, architect, developer, scrum master) are invited. The direct exchange significantly speeds up the analysis of problems. The team identifies very strongly with the product and the sense of shared responsibility is reinforced.
Efficient processes - Acting quickly with lean processes and a high degree of automation
A high degree of automation means fully automated CI/CD processes, provisioning of the infrastructure as well as test automation, monitoring of the application and active notification in case of errors. This is essential to reduce the number of errors and to be able to concentrate more on development. Especially through automated proactive monitoring of the application, the team detects errors early and reports them as incidents. This means that errors can be corrected sooner, making their elimination less critical and costly in most cases.
Lean processes are created by avoiding interfaces in communication as well as in technology. In addition, all skills are in one team, which contributes to short coordination paths. By gaining insight into operations and development, problems and potential for improvement are discovered more quickly, allowing the team to act faster. The key is to constantly evolve and adapt processes. This requires room for improvement ideas, trust in cooperation and transparency for the whole team and the customer.
Appropriate tools – Using tools for development, infrastructure and monitoring correctly
Tools should be selected specifically according to application purpose and use in order to best support the technologies and infrastructures used. This also includes the targeted selection of features and configurations within individual tools.
The following is an excerpt of tools from practical experience:
- Communication & Specification - Jira, Confluence, Microsoft Teams etc.
- These are particularly important for incident management and short coordination paths.
- Development & Infrastructure – Docker Desktop, Lens, Infrastructure-As-Code (Helm, Terraform etc.)
- The choice of tools may vary depending on the cloud provider and the technology of the application.
- Build management - Jenkins, Azure DevOps, Github Actions etc.
- For a high degree of automation of the CI/CD process and the development of the infrastructure, the appropriate tools must be selected.
- Monitoring – Grafana, Kibana, Prometheus, Jaeger, Opentelemetry etc.
- Meaningful monitoring of the application includes access to the productive environment, for example, to check logs, dashboards and alerts, as well as for early error detection.
- Security & FOSS – Blackduck, Sonar, static code analysis, etc.
- It is important not to neglect the security and handling of open source libraries and to perform automated checks accordingly.
DevOps experts at msg
The experts from msg specifically address your individual needs. Our extensive know-how in processes for the automotive and manufacturing industries as well as in the area of DevOps enables successful and comprehensive support for your product development and its operation. In this way, we work with you to create a stable system with few disruptions in operation, thus offering long-term and flexible further development from a single source.