Git
- What is Git bisect and how is it used?
- Explain the difference between
git reset
andgit revert
.
git reset
moves the HEAD and branch ref pointers to a specified commit, potentially discarding commits. git revert
creates a new commit that undoes the changes made in a specific commit, preserving the project history.- What is a Git hook?
- How do you squash multiple commits into one?
git rebase -i HEAD~n
where n is the number of commits to combine. In the interactive editor, change 'pick' to 'squash' for the commits you want to combine.- What is Git LFS?
- Explain the concept of Git submodules.
- What is the difference between
git fetch
andgit pull
?
git fetch
downloads new data from a remote repository but doesn't integrate it into your working files. git pull
does a git fetch
followed by a git merge
to update your current branch with the latest changes.- How do you undo the last commit in Git?
git reset HEAD~1
. To completely remove the last commit and its changes, use git reset --hard HEAD~1
.- What is Git cherry-pick?
- How do you resolve merge conflicts in Git?
- Open the conflicting files and look for conflict markers.
- Edit the files to resolve the conflicts.
- Use
git add
to mark the conflicted files as resolved.
- Complete the merge by running
git commit
.
- What is the difference between a hard link and a symbolic link?
- Explain the purpose of the
/etc/fstab
file.
/etc/fstab
file contains information about disk drives and partitions. It's used by the system to mount file systems automatically at boot time or when the mount -a
command is issued.- What is a zombie process?
- How do you check system resource usage in Linux?
top
orhtop
for real-time system monitoring
free
for memory usage
df
for disk usage
iostat
for CPU and I/O statistics
- What is the purpose of the
iptables
command?
iptables
is used to set up, maintain, and inspect the tables of IP packet filter rules in the Linux kernel. It's primarily used for configuring firewall rules.- Explain the difference between
su
andsudo
.
su
switches the current user to another user (typically root), requiring the target user's password. sudo
allows a user to execute commands with the security privileges of another user (typically root) while using their own password.- What is a Linux kernel module?
- How do you troubleshoot high CPU usage on a Linux system?
- Use
top
orhtop
to identify the processes consuming CPU.
- Use
ps aux
to get more details about specific processes.
- Check system logs in
/var/log
for any errors or warnings.
- Use
strace
to trace system calls and signals.
- What is the purpose of the
/proc
filesystem?
/proc
filesystem is a pseudo-filesystem that provides an interface to kernel data structures. It's used to access information about processes and system resources.- Explain the concept of Linux namespaces.
Docker
- What is Docker and how does it differ from virtual machines?
- Explain the difference between a Docker image and a Docker container.
- What is a Dockerfile and what are its main components?
FROM
: Specifies the base image
RUN
: Executes commands in the container
COPY
andADD
: Copy files into the container
CMD
andENTRYPOINT
: Specify the command to run when the container starts
- How do you persist data in Docker?
- Volumes: Managed by Docker and stored in a part of the host filesystem
- Bind mounts: Map a host file or directory to a container file or directory
- tmpfs mounts: Stored in the host system's memory only
- Explain Docker networking and the different network drivers.
bridge
: Default network driver
host
: Removes network isolation between container and host
overlay
: Connects multiple Docker daemons
macvlan
: Assigns a MAC address to a container
- What is Docker Compose and when would you use it?
- How do you optimize a Docker image size?
- Use a smaller base image
- Minimize the number of layers
- Use multi-stage builds
- Remove unnecessary files
- Combine RUN commands
- Explain Docker swarm mode.
- What is the purpose of Docker healthchecks?
- How do you handle secrets in Docker?
Jenkins
- What is Jenkins and why is it used?
- Explain the difference between Freestyle and Pipeline jobs in Jenkins.
- What is a Jenkins agent and how does it differ from the master?
- How do you secure Jenkins?
- Enable authentication and authorization
- Use HTTPS
- Keep Jenkins and its plugins updated
- Implement proper user management
- Use credentials management for sensitive information
- Configure security settings like CSRF protection
- What is a Jenkinsfile and what are its advantages?
- Version control of the pipeline along with the application code
- Code review/iteration on the pipeline
- Ability to audit the pipeline
- Single source of truth for the pipeline
- Explain the concept of Jenkins shared libraries.
- How do you handle credentials in Jenkins?
- What is Jenkins Blue Ocean?
- How do you set up a master-slave configuration in Jenkins?
- Install Jenkins on the master node
- Configure the slave node (install Java, create a Jenkins user)
- Add the slave node in Jenkins master (Manage Jenkins > Manage Nodes > New Node)
- Configure the connection method (SSH, JNLP, etc.)
- Launch the agent on the slave node
- Explain how you would implement a rollback strategy in Jenkins.
- Keeping track of successful builds and their artifacts
- Implementing version control for configuration files
- Creating a separate pipeline for rollback
- Using Jenkins parameters to specify the version to roll back to
- Implementing health checks after deployment
- Automating the rollback process if
Microservices
- What are microservices and how do they differ from monolithic architecture?
- What are the benefits of using microservices?
- Improved scalability
- Better fault isolation
- Easier to understand and maintain
- Enables use of different technologies for different services
- Facilitates continuous deployment
- How do microservices communicate with each other?
- What is the role of API Gateway in microservices architecture?
- How do you handle data management in microservices?
- Database per service pattern
- Event sourcing
- CQRS (Command Query Responsibility Segregation)
- Saga pattern for distributed transactions
- Explain the concept of service discovery in microservices.
- What is the Circuit Breaker pattern and why is it used in microservices?
- How do you ensure data consistency in a microservices architecture?
- Eventual consistency models
- Distributed transactions (e.g., two-phase commit)
- Event-driven architecture
- Saga pattern
- What are the challenges of testing microservices?
- Testing service interactions
- Managing test data across services
- Setting up complex test environments
- End-to-end testing across multiple services
- Testing eventual consistency
- How do you handle logging and monitoring in a microservices environment?
- Centralized logging systems (e.g., ELK stack)
- Distributed tracing (e.g., Jaeger, Zipkin)
- Metrics collection and visualization (e.g., Prometheus, Grafana)
- Health check APIs
- Correlation IDs for request tracing across services
x
No comments: