The DevOps Architect along with the DevOps SMEs engage in conversation with the respective customer teams, and analyze the current DevOps capabilities and the tools usage across enterprise. This provides the DevOps adoption maturity level of an Organization.
DevOps Planning and Road mapping
The DevOps architect and the team analyze the existing applications for CICD scope and estimate the enterprise applications that can be part of CICD. Identification of applications for the DevOps adoption is carried out based on the inputs provided by stakeholders and high-level analysis.
Roadmap is developed to implement new DevOps processes, to improve the existing processes and the list of tools identified as part of the planning stage.
The following data needs to be agreed upon and captured across the enterprise by an Architect in consensus with the development teams:
- Number of releases in a year
- Average time to fix a defect
- Time taken to complete full software build
- Time taken to complete execution of Unit tests suite
- Average time to build and test, etc.
Pilot Applications Identification
Business impact, user base, criticality of the application being assessed and documented for the pilot implementation.
DevOps Solution Blue Print
Solution Blueprint addresses implementing Continuous Integration (CI), Continuous Testing (CT), Continuous Deployment (CD) and Continuous Change Management (CCM) subsystems.
The core architecture Principles are:
- Architecture has to be delivered as frequently as necessary and preferably before a decision is made
- Frequency of the change can vary within an enterprise and across enterprises
- Delivery of the architecture and use of architecture should match the needs of customers
b) Solution Definition
DevOps Process Definition
DevOps Processes will transform the enterprise from current to future state across all dimensions. The Solution approach would be multi-dimensional across people, process, tools & automation, and data to enable enterprise objectives.
The following are the DevOps tools selection design principles:
- Maximize tool usage and coverage across all Services and focus on value
- Utilize fit for purpose Contractor tools, or leverage Customer tools where required
- Focus on automation and productivity tools for operations
- Application performance and currency through a combination of dynamic and static analysis tools
DevOps Tool Chain Identification
A DevOps toolchain is a set or combination of tools that aids in the delivery, development, and management of applications throughout the systems development life cycle. DevOps toolchain improves the productivity, speeds up time to market, reduces risk and increases quality.
A seamless cross-tool collaboration is very important in DevOps implementation. Just deploying the right set of tools to the right users is not enough. Proper connectivity between and across the DevOps tools chain is necessary to create a collaborative work environment around the Dev and Ops teams.
c) Platform Implementation
A repository stores two types of artifacts, i.e. releases and snapshots. Release repositories are for stable, static release artifacts and snapshot repositories are frequently updated repositories that store binary software artifacts from projects under constant development.
Configuration Management helps in establishing and maintaining consistency in applications’ functional requirements and performance.
Tool Configuration and Tool Architecture
Tool architecture has to support application changes without release (e.g., late binding). The architecture has to be scalable, secure, available and reliable. It has to address the implementation of High Availability Infrastructure.
Feedback and Monitoring
In the DevOps approach, due to the automated delivery pipeline, constant feedback and monitoring become easy across the organization.
Version controls, updates, and releases continuously monitored by using DevOps Tools.
An architect along with the organizational leadership defines Metrics or KPIs. The measurable KPIs are:
- Percent of tests automated
- Percent availability of automation test infrastructure
- Product Velocity: release frequency
- Total Capex and Opex cost reduction compared to other approaches (e.g. ROI case study)
Monitoring services will ensure the Hardware components, OS, middleware, Application, DB and networking covered for performance, availability, utilization, capacity, trends, and recommendations on operational improvements.
DevOps leverages analytics and machine learning to automate the manual tasks involved in incident detection, troubleshooting and root cause analysis.
e) DevOps EA Governance
Enterprise Architect: Helps to develop, improve and sustain enterprise architecture.
DevOps Architect: Promote the DevOps adoption approach across the enterprise.
Automation and Tools Lead: Drives all the tool implementations across the enterprise.
DevOps Engineers: Manage the entire application lifecycle while responding to feedback and analytics collected from the running application.
Adjust enterprise EA practice to be consultative in the context of cultural change. The success of DevOps in an organization can be achieved by:
- High-trust cultural norms
- Architecture that lends itself to testability and deployability
- Cluster of technical practices that includes continuous integration, continuous delivery, automated deployment, and proactive production monitoring
To get maximum benefit from the DevOps implementation, focus shall be on three key areas - change of culture, connection of processes, and common tooling. This is crucial to reduce development-to operations costs and minimize change-related outages.
DevOps Architect plays a major role in enterprise DevOps adoption. They promote real-time, rapid, automated, and efficient development culture among the software development and operations teams.