Unit 04 Devops
Unit 04 Devops
• We will also explore the different build systems and how they affect our DevOps work.
•
• Why do we build code?
• Most developers are familiar with the process of building code. When we work in the field of DevOps, however,
we might face issues that developers who specializein programming a particular component type won't
necessarily experience.
• For the purposes of this book, we define software building as the process of molding
• code from one form to another. During this process, several things might happen:
• The compilation of source code to native code or virtual machine bytecode,depending on our production
platform.
• Linting of the code: checking the code for errors and generating code quality measures by means of static code
analysis. The term "Linting" originated with a program called Lint, which started shipping with early versions
of the Unix operating system. The purpose of the program was to find bugs
• in programs that were syntactically correct, but contained suspicious codepatterns that could be
identified with a different process than compiling.
• Unit testing, by running the code in a controlled manner.
• The generation of artifacts suitable for deployment.It's a tall order!
3.Build Pipelines:
4.Testing and Validation:
5.Release Management:
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE )
The RPM (Red Hat Package Manager) system (#it is also comes under managing dependencies )
• The RPM (Red Hat Package Manager) system provides a solution for managing build dependencies and building
software on systems derived from Red Hat. It revolves around a build descriptor file called a spec file (short for
specification file). Here's a simplified explanation:
1. Spec File:
1. The spec file is a build descriptor written in a macro-based shell script format.
2. It contains various sections, including metadata, dependencies, build commands, and configuration options.
3. The spec file defines the requirements for successfully building the software package.
2. Build Dependencies:
1. The spec file lists the build dependencies required to build the software.
2. These dependencies specify the packages or libraries that need to be installed on the build system for a successful
build.
3. Pristine Build Sources:
1. The RPM system encourages keeping build sources pristine, i.e., unmodified.
2. If modifications are needed, the spec file can include patches that modify the source code before the build process
begins.
3. Patches allow you to adapt the source code to specific requirements or fix issues.
4. Building Software:
1. The RPM system utilizes the spec file to build software packages.
2. The spec file specifies the build commands, such as compiling, linking, and packaging the software.
3. The RPM system follows the instructions in the spec file to generate the final binary package.
• By using the RPM system, you can create RPM packages for your software with well-defined build dependencies
and build instructions. The spec file allows for adaptability
B.MAHESH by ::patching
(YOUTUBE CHANNEL the source
SV TECH KNOWLEDGE ) code, ensuring that the build
process is customizable while maintaining the ability to reproduce pristine build sources.
4.4 Jenkins plugins
• Plugins are the primary means of enhancing the functionality of a Jenkins environment to suit
organization- or user-specific needs. There are over a thousand different plugins which can be
installed on a Jenkins controller and to integrate various build tools, cloud providers, analysis
tools, and much more.
• Jenkins, as an extensible automation server, offers a wide range of plugins that extend its
functionality and enable integration with various tools and technologies. Here's an overview of
Jenkins plugins:
• Source Code Management (SCM) Plugins:
• SCM plugins provide integration with different version control systems like Git, Subversion (SVN),
Mercurial, etc.
• These plugins enable Jenkins to fetch source code from repositories and trigger builds based on
changes.
• Build Tool Plugins:
• Build tool plugins integrate Jenkins with popular build tools like Apache Maven, Gradle, Ant, and
MSBuild.
• They provide build steps and configurations specific to these tools, allowing seamless integration
within Jenkins pipelines or job configurations.
• Testing Framework Plugins:
• Testing framework plugins enable integration
B.MAHESH with::various
(YOUTUBE CHANNEL testing) frameworks like JUnit, NUnit,
SV TECH KNOWLEDGE
TestNG, etc.
• Deployment Plugins:
• Deployment plugins help automate the deployment of applications to different
environments, such as application servers, cloud platforms, or containers.
• Plugins like Kubernetes, Docker, AWS Elastic Beanstalk, or Azure App Service enable
seamless deployment workflows.
• Notification Plugins:
• Notification plugins facilitate sending notifications or alerts based on build status, test
results, or other events.
• Plugins such as Email Notification, Slack Notification, or Microsoft Teams Integration
enable communication and collaboration among team members.
• Monitoring and Reporting Plugins:
• Monitoring and reporting plugins integrate Jenkins with monitoring and reporting tools like
SonarQube, JIRA, Grafana, etc.
• They provide insights into code quality, performance metrics, and project management,
enhancing the visibility and management of software projects.