☁ DevOps Steps and Components
Intro
DevOps is a big process of software development and every day it gets more complex to use many kinds of tools and software to keep working this process. Divided management makes more difficult this situation. However, Huawei Cloud ensures all DevOps tools in one platform: CodeArts
Huawei’s end-to-end (HE2E) DevOps implementation framework is an operable, feasible, and agile development methodology developed based on years of R&D experience and industry-leading practices, as shown in Figure.
Planning and Design
Steps 1 and 2 in the diagram represent the process of product planning between service personnel (even customers) and technicians to sort out the overall product logic, implement product planning and design, and control the requirement granularity and breakdown.
- Software development solves issues and delivers value, not simply provides functions. The impact map is used to identify user requirements and root causes.
- During microservice design, we put objectives and requirements in user stories to facilitate information exchanges among customers, service personnel, and developers. If you view only separate requirement items, you will not think from the entire solution’s perspective. User stories focus on scenarios, and sort out and display stages and activities in a tree structure. In this way, you will view both requirement items and overall requirement scenarios.
Planning, Tracing, and Sprint
Steps 3 to 10 are the main management practices in a Scrum framework process.
- Scrum defines a relatively complete framework for agile process management. CodeArts well integrates the Scrum framework with the daily activities of development teams. Main process deliverables include the product backlog, sprint backlog, potential deliverable product increments, and issue list. Core team activities include Sprint planning meetings, daily Scrums, Sprint reviews, Sprint retrospective meetings, and daily team updates.
ContainerOps
Start from step 11 and enter the engineering practice in a CI/CD process.
- CI/CD is based on code configuration management. It covers not only traditional security control of code assets, concurrent development, and version and baseline management but also reflects team collaboration and communication.
- The pipeline connects code check (or static scanning), automated build, automated testing in all stages, and automated deployment.
- CI/CD also covers continuous artifact management and environment management at different levels, including development, test, quasi-production, and production environments.
- The CI/CD pipeline manages stages, environments, activities, entry and pass quality gates, and input and output artifacts in each stage.
End to End Project Steps
We will take a look at which steps had been on DevOps projects and what components could be used for these steps.
Step 1: Managing Project
Planning is an essential step in the DevOps process. In this step, the team defines the goals and objectives of the project, identifies the requirements, and creates a roadmap for the project. For this step; Jira and Confluence are two popular software tools. Jira is a project management and issue-tracking tool, while Confluence is a wiki-based knowledge management and collaboration tool.
Here are some of the key features of Jira:
- Issue tracking: Jira allows teams to create and track issues, such as bugs, tasks, and feature requests. Each issue can be assigned to a team member, given a priority, and due date.
- Project management: Jira allows teams to create and manage projects. Projects can be broken down into smaller tasks, and each task can be assigned to a team member. Jira also provides a variety of reports and dashboards that can be used to track the progress of projects and identify any potential problems.
- Workflow automation: Jira allows teams to automate their workflows. For example, a team could create a workflow that automatically assigns a new issue to a team member and sends them an email notification. Or, a team could create a workflow that automatically deploys a new software release to production once all of the unit tests have passed.
🌟 We use CodeArts Req as the equivalent of Jira on Huawei Cloud.
CodeArts Req provides simple and efficient team collaboration services, including multi-project management, agile iteration, and task management.
Product Advantages
- Agile Development: Shorten sprint periods and improve project management efficiency. CodeArts Req integrates agile design concepts so that it becomes a breeze to make sprint plans, create jobs, and monitor project progress using Kanban in daily stand-up meetings.
- Management Assistant: With project progress and data analysis available at your fingertips, you can follow a project anytime, anywhere. CodeArts Req provides insights into different roles and scenarios, such as manager kanban, project dashboard, and customized analysis of project statistics. Quality, progress, risks, and delivery throughput are also clearly displayed.
- Collaboration and Sharing: Cloud-based deployment and management enable efficient, transparent, and seamless collaboration across teams and regions. Large-volume document hosting and Wiki online document collaboration enable knowledge accumulation and experience sharing.
- Various Customization Options: Customize workflows, roles and permissions, notifications, and templates, to suit any team or enterprise.
Step 2: Develop and Compile
For hosting your code GitHub and GitLab are both web-based hosting services for software development projects that use the Git version control system. They offer a variety of features to help developers collaborate on projects, including code review, issue tracking, and project management.
💫 Also CodeArts Repo has same functions for hosting your code.
CodeArts Repo is a full-stack code hosting service developed by Huawei. It provides Git-based distributed code management and collaborative development capabilities, including member management, permission control, code hosting, code check, code review, code tracing, and continuous integration. It can help enterprises of different scales improve R&D quality and efficiency.
Another substep is code check for code quality.
SonarQube is an open-source platform for continuous inspection of code quality. It performs automatic reviews with static analysis of code to detect bugs and code smells on 29 programming languages. SonarQube offers reports on duplicated code, coding standards, unit tests, code coverage, code complexity, comments, bugs, and security recommendations.
✨ CodeArts Check is a cloud-based management service that checks code quality. Developers can easily perform static code and security checks in multiple languages and obtain comprehensive quality reports. CodeArts Check also provides suggestions on fixing code defects and trend analysis, effectively securing high quality and helping achieve business success.
On the Building step, there are some software tools that have been, like Gradle or Docker.
Gradle is a build automation tool for multi-language software development. It controls the development process in the tasks of compilation and packaging to testing, deployment, and publishing.
Docker is a software platform that allows developers to build, test, and deploy applications quickly and reliably. It does this by using containers, which are lightweight, standalone, executable packages of software that include everything needed to run an application: code, runtime, system tools, system libraries, and settings.
🌃 CodeArts Build An easy-to-configure platform that supports multi-language parallel builds on the cloud. Its distributed acceleration helps enterprises improve build efficiency while lowering overall costs even at large scale.
Also, you can use CCE (Cloud Container Engine) to use Docker on Huawei Cloud. You can find more information about CCE in this article.
Step 3: Deploying and Testing
Deployment tools help enhance the process of deploying code into various environments. They are crucial in the DevOps and Agile methodologies, where continuous integration and continuous delivery (CI/CD) are key practices. Some of them are;
CircleCI is a continuous integration and continuous delivery (CI/CD) platform that helps developers build, test, and deploy software quickly and reliably. It does this by automating the build, test, and deployment process, which can help developers to:
- Improve the quality of their code
- Reduce the time it takes to deploy new features
- Improve their team’s productivity
Kubernetes is an open-source container orchestration platform that automates many of the manual tasks involved in deploying, scaling, and managing containerized applications. DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to shorten the systems development life cycle and provide continuous delivery with high software quality.
🌠 CodeArts Deploy automates various scenarios such as host, container, and serverless deployment. It covers multiple languages and technology stacks, such as Tomcat, Spring Boot, Go, Node.js, Docker, and Kubernetes. With capabilities encapsulated and orchestrated in extensions you can quickly and efficiently release software.
Product Advantages;
- Simple Configuration: CodeArts Deploy embeds over 15 system templates for various deployment scenarios, languages, and technology stacks. These templates offer configurations ready to use and you only need to tailor them to your needs.
- Flexible Orchestration: Provides over 40 highly encapsulated deployment actions and supports flexible assembly and out-of-the-box use. Provides auxiliary functions such as file operations, software installation, and general deployment.
- Diversified Modes: Provides multiple modes, such as host, container, microservice, and function flow deployment for diversified enterprise deployment environments and service requirements.
- Multiple Scenarios: Supports cross-region DR deployment and cross-account collaborative deployment when routine development and physical environments are deployed on Huawei Cloud. For environment-sensitive users, we offer special deployment capabilities, such as on-cloud development and on-premises deployment, and on-cloud scheduling and on-premises execution.
Test management is the process of planning, executing, and tracking testing activities. It is an important part of the DevOps process because it helps to ensure that software is of high quality and meets the needs of users.
The test management step in DevOps typically involves the following activities:
- Test planning: This involves identifying the different types of testing that need to be performed, the resources that are needed, and the schedule for the testing.
- Test case development: This involves creating test cases that will be used to verify that the software meets its requirements. Test execution: This involves executing the test cases and documenting the results.
- Test reporting: This involves analyzing the test results and generating reports that can be used to improve the quality of the software
Apache JMeter is a popular open-source load-testing tool that can be used to test the performance of web applications in a DevOps environment. JMeter can be used to test a variety of different applications, including web applications, web services, FTP servers, database servers, LDAP servers, message-oriented middleware (MOM) servers, mail servers, and native commands or shell scripts.
Also TestNG can be integrated into the DevOps process in a variety of different ways. For example, TestNG can be used to:
- Test code as it is being developed: TestNG can be used to test code as it is being developed, which can help to identify and fix bugs early on.
- Automate test execution: TestNG can be used to automate the execution of test cases, which can free up DevOps teams to focus on other tasks.
- Monitor the quality of code: TestNG can be used to monitor the quality of code over time, which can help to ensure that code is of high quality and meets its requirements.
🎄 And finally; CodeArts TestPlan A one-stop test management platform that covers the entire test process from planning to design, cases, execution, and evaluation. Take advantage of Huawei’s years of high-quality software test engineering methods and practices to carry out collaborative, efficient, and trustworthy test activities for your product release.
Conclusion 🎊
In this article, we tried to look at some popular DevOps tools, and equal services in Huawei Cloud CodeArts. As you saw, the DevOps process separated different tools and platforms. Nevertheless, Huawei Cloud provides all of these services in one platform: CodeArts!