2.1 DevOps' Objectives
The key objectives of DevOps is to:
- Improve collaboration between Development team and Operations team.
- Enable faster rollout and innovations by streamlining and reducing the testing and delivery time.
- Build and deliver better quality applications to ensure high success rate of applications rollout and adoption.
- Reduce Mean Time to Resolution (MTTR) by quickly identifying and resolving technical issues during development, test and production.
- Provide better customer experience when citizens or users are accessing online Malaysian government services.
2.2 The 8 Phases of DevOps Cycle
This section covers the introduction to each phase of DevOps cycle, the processes and technical aspects of the different phases:
Figure 2-1 DevOps Cycle
Plan - Planning involves development of business case, defining the purpose and objectives, building the project plan and establishing the organization structure.
Code - Coding involves designing the software architecture, selecting the software development methodology and technology to be used in the project and code development.
Build - Build involves code compilation and integration. Code that has been committed by the developers will be compiled and integrated to the main branch.
Test - Testing involves validation and verification of the system. The testing here includes functional testing, performance testing and security testing.
Release - Release involves release management which includes change management process and software release schedule.
Deploy - Deploy involves deploying binaries to the production environment.
Operate - In this phase, the system goes live and operations team fully take over the system.
Monitor - In this phase where measurements are continuously observed on the system to determine the health, usability, performance and availability of the system. This phase is important in providing continuous feedback to the development and operations team on how the system is behaving and performing.
2.3 Public Sector Software Quality Management
This framework follows the following standards, policies, frameworks and guides:
- ISO 90003:2018 - Software engineering -- Guidelines for the application of ISO 9001:2008 to computer software
- ISO 9001:2008 - Quality management systems -- Requirements
- IEEE Standard for Software Quality Assurance
- Pengurusan Projek ICT Sektor Awam (PPrISA)
- Kejuruteraan Sistem Aplikasi Sektor Awam (KRISA)
- Independent Verification and Validation (IV&V) Handbook
- Rangka Kerja Keselamatan Siber Sektor Awam (RAKKSSA)
Note: *DevOps tools listed are example of tools available for usage, users are not limited to the tools listed in this chart.