In this lesson, we explore the fundamentals of applications from both an operations and software development perspective. As a DevOps engineer, you must be adept at performing operational tasks and understanding the principles behind application development. Rather than focusing on advanced coding techniques, this lesson emphasizes how applications are developed, built, deployed, and troubleshooted. Every lecture is paired with hands-on labs that allow you to practice with real-world application source code. We will also examine the compilation process, discuss what constitutes source code, and explain how it is transformed into machine code. This high-level overview aims to demystify the various stages involved in modernizing and containerizing applications in DevOps and cloud environments. There are countless programming languages available today. For this discussion, we focus on a few of the most popular languages based on insights from the Stack Overflow 2019 survey. Consider the following diagram which lists popular languages:Documentation Index
Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
Use this file to discover all available pages before exploring further.


Compiled Languages
Languages such as Java, C, and C++ follow a two-step process. First, you write the source code and then compile it into machine code. For example, consider the following simple Java program: Save the code in a file namedMyClass.java:
MyClass.class. Finally, run the program using:
Interpreted Languages
In contrast, interpreted languages like Python execute the source code directly using an interpreter, eliminating the explicit compilation step. Consider this sample Python application: Save the code in a file namedmain.py:
Although languages like Python do not require manual compilation, the Python interpreter internally compiles the source code into an intermediate bytecode (stored as a
.pyc file). This bytecode is then executed by the Python Virtual Machine (VM), which converts it into machine code that your computer can process.Packages, Modules, and Libraries
Developers frequently share reusable code in the form of packages, modules, or libraries. These packages can handle diverse functionalities such as filesystem operations, mathematical computations, OS interactions, web server setup, and more.
The Software Development Lifecycle in DevOps
Once an application is developed, it typically undergoes a series of stages including development, building, testing, and delivery. DevOps practices strongly emphasize automating these stages through Continuous Integration and Continuous Deployment (CI/CD) pipelines. Having a clear understanding of what is being automated is key to successfully implementing automation in your workflows. The following table summarizes several components crucial to modern application development in a DevOps context:| Component | Purpose | Example Command/Tool |
|---|---|---|
| Version Control | Source code management | git clone https://repository |
| Build Automation | Compiling source code and running tests | mvn package or npm run build |
| Package Management | Dependency management | pip install package-name |
| Deployment Pipelines | Automated build, test, and deployment | Jenkins, GitLab CI/CD |
| Containerization | Packaging applications for deployment | Docker, Kubernetes |