diff --git a/README.md b/README.md index a881cdb2d..16aeab11a 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ DevOps
DevOps
Git
Git
Network
Network
- Hardware
Hardware
+ Docker
Docker
kubernetes
Kubernetes
@@ -87,6 +87,8 @@ HR
Soft Skills
security
Security
Design
System Design
+ Hardware
Hardware
+ @@ -97,7 +99,11 @@ NodeJs
NodeJs
+ + jira
Jira
+ + diff --git a/images/docker.png b/images/docker.png new file mode 100644 index 000000000..a7b639bfb Binary files /dev/null and b/images/docker.png differ diff --git a/images/jira.png b/images/jira.png new file mode 100644 index 000000000..f913511ad Binary files /dev/null and b/images/jira.png differ diff --git a/topics/cloud/README.md b/topics/cloud/README.md index af139ce0b..0ffb36fc8 100644 --- a/topics/cloud/README.md +++ b/topics/cloud/README.md @@ -77,10 +77,16 @@ It's important to note that:
Can we replace any type of computing on servers with serverless?
+ + No, we cannot replace all types of computing on servers with serverless computing. While serverless computing offers many advantages, such as automatic scaling, cost-efficiency, and reduced operational complexity, it is not a one-size-fits-all solution. The decision to use serverless depends on several factors, including the nature of the workload, performance requirements, cost considerations, and the need for control over the underlying infrastructure.
Is there a difference between managed service to SaaS or is it the same thing?
+ +Managed services and Software as a Service (SaaS) are not the same, though they are related concepts. A managed service involves a third-party provider taking over the management and operation of specific IT functions or infrastructure for a client, offering a higher level of customization and control based on the client’s specific needs. In contrast, SaaS is a software delivery model where applications are hosted by a service provider and made available to users over the internet, typically in a standardized form with limited customization options. While SaaS can be considered a type of managed service focused on software delivery, managed services encompass a broader range of IT functions beyond just software, including infrastructure management, cybersecurity, and more. + +
@@ -115,4 +121,4 @@ False. Auto scaling adjusts capacity and this can mean removing some resources b * Instance should have minimal permissions needed. You don't want an instance-level incident to become an account-level incident * Instances should be accessed through load balancers or bastion hosts. In other words, they should be off the internet (in a private subnet behind a NAT). * Using latest OS images with your instances (or at least apply latest patches) -
\ No newline at end of file + diff --git a/topics/docker/README.md b/topics/docker/README.md new file mode 100644 index 000000000..bc756b433 --- /dev/null +++ b/topics/docker/README.md @@ -0,0 +1,97 @@ +# Docker + + + +
+1. What is Docker and how does it differ from a virtual machine?
+Docker is a platform that allows developers to automate the deployment of applications inside lightweight, portable containers. Unlike virtual machines, which run a full operating system, Docker containers share the host OS kernel, making them more efficient in terms of resource usage and startup time. + +
+ + +
+2. What are the key components of Docker?
+The key components of Docker include: +- **Docker Engine:** The core service for building and running containers. +- **Docker Images:** Read-only templates used to create containers. +- **Docker Containers:** Executable instances of Docker images. +- **Docker Hub:** A cloud-based registry for sharing Docker images. + +
+ +
+3. What is a Dockerfile?
+A Dockerfile is a text file that contains a series of instructions for building a Docker image. It defines the base image, sets up the environment, and specifies the commands to run when creating the container. + +
+ +
+4. How do you create a Docker image from a Dockerfile?
+You can create a Docker image from a Dockerfile using the command- docker build -t + +
+ +
+5. What is the difference between a Docker image and a Docker container?
A Docker image is a read-only template that defines the environment and filesystem for a container. A Docker container is a running instance of a Docker image, containing everything needed to run an application, including the code, libraries, and environment variables. + +
+ +
6. How can you list all Docker containers running on your system?
You can list all running Docker containers using the command: ```bash docker ps ``` To list all containers, including stopped ones, use: ```bash docker ps -a ``` + +
+ +
7. What is Docker Compose and how is it used?
Docker Compose is a tool for defining and running multi-container Docker applications. With a `docker-compose.yml` file, you can configure all of your application's services, networks, and volumes, and then start them with a single command: ```bash docker-compose up ``` + +
+ +8. How do you scale services in Docker Compose?
You can scale services in Docker Compose by using the `--scale` flag followed by the service name and the desired number of instances. For example: ```bash docker-compose up --scale = ``` This command will start the specified number of instances of the service. + +
+ +
9. What is Docker Swarm?
Docker Swarm is Docker's native clustering and orchestration tool. It allows you to manage a cluster of Docker engines as a single swarm, providing high availability, load balancing, and scaling capabilities for your Dockerized applications. + +
+ +
10. How do you initialize a Docker Swarm?
You can initialize a Docker Swarm using the command: ```bash docker swarm init ``` This command sets up the current Docker engine as the swarm manager. You can then add worker nodes to the swarm using the token provided by the `docker swarm join-token` command. + +
+ +
11. What is the purpose of Docker volumes?
Docker volumes are used to persist data generated and used by Docker containers. Volumes provide a way to store data outside the container's filesystem, allowing it to be shared between containers or preserved after the container stops or is deleted. + +
+ +
12. How can you create and manage Docker volumes?
You can create a Docker volume using the command: ```bash docker volume create ``` To list all Docker volumes, use: ```bash docker volume ls ``` To remove a volume, use: ```bash docker volume rm ``` + +
+ +
13. What is a Docker network and how do you create one?
A Docker network allows containers to communicate with each other. You can create a custom Docker network using the command: ```bash docker network create ``` This command creates a new bridge network that you can connect containers to, enabling communication between them. + +
+ +
14. How do you connect a container to a Docker network?
You can connect a container to a Docker network using the command: ```bash docker network connect ``` This command connects the specified container to the specified network, allowing it to communicate with other containers on the same network. + +
+ +
15. What is the difference between a bind mount and a volume in Docker?
A bind mount is a mapping between a directory on the host machine and a directory in the container. The data in the container directly reflects the data in the host directory. A Docker volume, on the other hand, is managed by Docker and stored in a specific location on the host. Volumes are generally preferred for persistent data as they are easier to manage and portable across different environments. + +
+ +
16. How can you share data between containers in Docker?
You can share data between containers in Docker by using volumes. Multiple containers can be configured to use the same volume, allowing them to read and write to the shared storage. This can be done by specifying the same volume in the `docker run` or `docker-compose.yml` file for each container. + +
+ +
17. What is the purpose of the `docker exec` command?
The `docker exec` command is used to run a command in an already running container. It is often used to access the container's shell or to run additional processes inside the container. For example: ```bash docker exec -it /bin/bash ``` This command opens an interactive shell session in the specified container. + +
+ +
18. How do you remove unused Docker objects, such as images, containers, and volumes?
You can remove unused Docker objects using the `docker system prune` command. This command removes all stopped containers, unused networks, dangling images, and unused volumes. You can use the `-a` flag to remove all unused images, not just dangling ones: ```bash docker system prune -a ``` + +
+ +
19. What are Docker tags and how are they used?
Docker tags are labels that can be applied to Docker images to help identify different versions or variants of the image. Tags are typically used to specify the version of the application or the environment (e.g., `latest`, `1.0`, `stable`). You can tag an image during the build process using the `-t` option: ```bash docker build -t : ``` + +
+ +
20. How do you push a Docker image to Docker Hub?
To push a Docker image to Docker Hub, you first need to log in using the `docker login` command. Then, you can push the image using the `docker push` command: ```bash docker push /: ``` Make sure that the image is tagged with your Docker Hub username before pushing. + +
\ No newline at end of file diff --git a/topics/jira/README.md b/topics/jira/README.md new file mode 100644 index 000000000..f6649d521 --- /dev/null +++ b/topics/jira/README.md @@ -0,0 +1,302 @@ +# Jira Questions + +# Basic Jira Questions + +
+What is Jira, and what are its key features?
+ +**Jira** is a popular project management tool developed by Atlassian, used primarily for issue and bug tracking, as well as agile project management. Key features include customizable workflows, Scrum and Kanban boards, reporting and analytics, integration with various tools like Confluence and Bitbucket, and the ability to manage tasks, bugs, and features across projects. + +
+ +
+Explain the difference between a project and an issue in Jira.
+ +In **Jira**, a **project** is a collection of issues that represent the work being done by a team. An **issue** is a single work item within a project, such as a task, bug, story, or epic. Projects organize issues into meaningful units for tracking and reporting purposes. + +
+ +
+What are the different issue types in Jira?
+ +**Jira** supports several issue types, including: +- **Task:** A standard unit of work. +- **Bug:** A problem or error in the system. +- **Story:** A user-centric feature or requirement. +- **Epic:** A large body of work that can be broken down into multiple stories or tasks. +- **Sub-task:** A smaller task that is part of a larger task or story. + +
+ +
+How can you create an issue in Jira?
+ +To create an issue in **Jira**, you can: +1. Navigate to the project where you want to create the issue. +2. Click the "Create" button at the top of the screen. +3. Fill in the necessary details, such as the issue type, summary, description, and any other required fields. +4. Click "Create" to submit the issue. + +
+ +
+What is a Jira workflow?
+ +A **Jira workflow** is a set of statuses and transitions that an issue moves through during its lifecycle. Workflows define the process that an issue follows from creation to completion, including steps like "To Do," "In Progress," and "Done." Workflows can be customized to fit the specific needs of a project or team. + +
+ +
+How do you manage permissions in Jira?
+ +**Permissions** in **Jira** are managed through permission schemes, which control what users can do within a project, such as creating, editing, or deleting issues. Permissions can be assigned at the project level and can be customized for different roles, such as administrators, developers, and users. + +
+ +
+What are Jira components, and how do they differ from labels?
+ +**Components** in **Jira** are sub-sections of a project, used to group issues within a project based on specific criteria, such as functionality or team responsibility. **Labels** are tags that can be added to issues for more flexible categorization. While components are predefined and project-specific, labels are more ad-hoc and can be created on the fly. + +
+ +
+Can you explain the difference between a bug and a task in Jira?
+ +In **Jira**, a **bug** is an issue that represents a problem or defect in the software that needs to be fixed, while a **task** is a generic work item that needs to be completed. Bugs are typically associated with fixing errors, whereas tasks can involve any type of work, including enhancements, documentation, or feature development. + +
+ +
+How do you clone an issue in Jira?
+ +To **clone** an issue in **Jira**: +1. Open the issue you want to clone. +2. Click on the "More" button (represented by three dots) in the issue view. +3. Select "Clone" from the dropdown menu. +4. Edit any details if necessary, and click "Create" to clone the issue. + +
+ +
+What is an epic in Jira? How does it differ from a story?
+ +An **epic** in **Jira** is a large body of work that can be broken down into smaller tasks or stories. It represents a big feature or goal. A **story** is a smaller, more specific feature or requirement that contributes to an epic. Epics are used to group related stories and tasks together to track the progress of a large initiative. + +
+ +# Intermediate Jira Questions + +
+How do you create a custom workflow in Jira?
+ +To create a **custom workflow** in **Jira**: +1. Go to Jira settings and select "Issues." +2. Under "Workflows," click "Add Workflow." +3. Design your workflow by adding statuses and transitions. +4. Save the workflow and assign it to the appropriate workflow scheme. +5. Apply the workflow scheme to the desired project. + +
+ +
+Explain how to use Jira Query Language (JQL).
+ +**Jira Query Language (JQL)** is used to filter and search for issues within **Jira** based on specific criteria. JQL allows users to write complex queries to find issues by various parameters, such as status, assignee, project, and custom fields. For example, `status = "In Progress" AND assignee = currentUser()` returns all issues that are in progress and assigned to the current user. + +
+ +
+What are the different ways to configure notifications in Jira?
+ +In **Jira**, notifications can be configured by: +- **Notification Schemes:** Set up who gets notified for specific events like issue creation, comments, or status changes. +- **User Profile Settings:** Users can customize their own notification preferences. +- **Watching Issues:** Users can watch specific issues to receive updates. +- **Project Roles:** Assigning users to roles that have specific notification settings. + +
+ +
+How do you create and manage dashboards in Jira?
+ +To create and manage **dashboards** in **Jira**: +1. Go to the "Dashboards" menu and select "Manage Dashboards." +2. Click "Create New Dashboard." +3. Add gadgets to the dashboard to display different types of reports, charts, and issue lists. +4. Save the dashboard and configure its sharing settings to control who can view it. + +
+ +
+Explain the process of creating and managing sprints in Jira.
+ +To create and manage **sprints** in **Jira**: +1. Navigate to the project’s Scrum board. +2. Click on "Create Sprint" to start a new sprint. +3. Drag and drop issues from the backlog into the sprint. +4. Start the sprint by clicking "Start Sprint" and setting the sprint duration. +5. Monitor the sprint using the board, burndown charts, and reports. +6. Close the sprint once all issues are resolved or moved to the next sprint. + +
+ +
+What is a Kanban board, and how does it differ from a Scrum board in Jira?
+ +A **Kanban board** in **Jira** is used for continuous work management and visualizes the flow of tasks through different stages, without fixed iterations. A **Scrum board** is used for iterative work in time-boxed sprints, focusing on completing a set amount of work within each sprint. Kanban is flexible and flow-based, while Scrum is structured and time-bound. + +
+ +
+How do you set up and use Jira Service Management?
+ +To set up **Jira Service Management**: +1. Create a new service project in Jira. +2. Configure request types, queues, and SLAs according to your service requirements. +3. Set up a knowledge base using Confluence (if available) to help users find answers to common issues. +4. Manage customer requests through the service desk, automating workflows where possible. + +
+ +
+What are the different types of reports available in Jira?
+ +**Jira** offers various reports, including: +- **Burndown Chart:** Tracks the amount of work remaining in a sprint. +- **Sprint Report:** Summarizes the work completed in a sprint. +- **Velocity Chart:** Shows the team's work capacity across sprints. +- **Issue Analysis Report:** Provides insights into issue resolution times and bottlenecks. +- **Pie Chart Report:** Displays issues grouped by a specific field, such as status or priority. + +
+ +
+How do you integrate Jira with other tools like Confluence or Bitbucket?
+ +**Jira** integrates with other tools like **Confluence** and **Bitbucket** by: +- **Confluence Integration:** Embedding Jira issues in Confluence pages and linking Confluence spaces to Jira projects. +- **Bitbucket Integration:** Linking Jira issues to Bitbucket branches, commits, and pull requests to track code changes associated with specific issues. + +
+ +
+What is a Jira plugin? Name some commonly used Jira plugins.
+ +A **Jira plugin** is an add-on that extends Jira's functionality. Commonly used plugins include: +- **ScriptRunner:** Allows for custom scripts to automate Jira workflows. +- **Tempo Timesheets:** Tracks time spent on Jira issues. +- **Zephyr:** Provides advanced test management capabilities. +- **Portfolio for Jira:** Offers project portfolio management and planning. + +
+ +# Advanced Jira Questions + +
+How do you configure and manage custom fields in Jira?
+ +To configure and manage custom fields in **Jira**, go to **Jira settings**, select **Issues**, and then choose **Custom fields**. You can create new fields, edit existing ones, and configure their usage in screens and issue types. + +
+ +
+Explain the process of migrating data to Jira from other systems.
+ +Migrating data to **Jira** involves exporting data from the source system in a compatible format (such as CSV), then using the **Jira import wizard** to map fields and import the data into the desired Jira project. + +
+ +
+How do you automate tasks in Jira using Automation Rules?
+ +**Jira Automation Rules** allow users to automate repetitive tasks by creating rules with triggers, conditions, and actions. You can set up rules to automatically transition issues, send notifications, or update fields based on specific events. + +
+ +
+What are the steps to optimize Jira performance for large teams?
+ +To optimize **Jira** performance for large teams, consider archiving old projects, optimizing custom fields and workflows, using a powerful database, and regularly monitoring system performance. Additionally, ensure efficient indexing and implement best practices for database management. + +
+ +
+How can you enforce data integrity in Jira?
+ +Data integrity in **Jira** can be enforced through validation rules in workflows, configuring permission schemes to control access, and using custom fields with required conditions to ensure proper data entry and consistency. + +
+ +
+Explain the use of advanced JQL queries for complex reporting.
+ +**Advanced JQL queries** in **Jira** allow users to create complex reports by combining multiple conditions, using functions, and filtering issues based on various fields and criteria, providing detailed insights into project status and performance. + +
+ +
+What is the process for creating and managing user groups in Jira?
+ +To create and manage user groups in **Jira**, go to **Jira settings**, select **User management**, and then **Groups**. You can create new groups, add or remove users, and assign permissions based on group roles and responsibilities. + +
+ +
+How do you customize the Jira user interface to meet specific team needs?
+ +The **Jira** user interface can be customized by adjusting the layout of boards, configuring filters, creating custom dashboards, and modifying issue types and fields to align with the team’s workflow and requirements. + +
+ +
+How do you handle version control and release management in Jira?
+ +Version control and release management in **Jira** involve creating versions in the project settings, associating issues with specific versions, and tracking progress through release notes and version reports to manage releases effectively. + +
+ +
+What are the security best practices for managing a Jira instance?
+ +Security best practices for managing a **Jira** instance include configuring proper permissions, enabling two-factor authentication, regularly updating the software, monitoring audit logs, and securing integrations and APIs. + +
+ +# Scenario-Based Questions + +
+How would you configure Jira to manage a project with multiple teams working on different modules?
+ +To configure **Jira** for a project with multiple teams, create separate boards or projects for each team, use components to distinguish modules, set up custom workflows and permissions, and configure dashboards for cross-team visibility. + +
+ +
+Describe how you would handle a situation where a sprint is consistently not meeting its goals.
+ +To address a sprint consistently missing goals, review the sprint planning process, assess team capacity and workload, refine user stories, address impediments, and conduct retrospectives to identify and implement improvements. + +
+ +
+How would you set up Jira to manage a bug-tracking process in an Agile team?
+ +Set up **Jira** by creating a dedicated project or board for bug tracking, defining issue types as bugs, configuring workflows for bug resolution, and integrating with version control systems to link bugs to code changes. + +
+ +
+Explain how you would use Jira to manage a cross-functional project with external stakeholders.
+ +To manage a cross-functional project with external stakeholders in **Jira**, configure access permissions for external users, use public or shared boards, and create comprehensive dashboards and reports to ensure all parties are informed and aligned. + +
+ +
+You’ve been asked to set up Jira for a new team. How would you approach the task?
+ +To set up **Jira** for a new team, start by defining project requirements, configuring workflows, issue types, and custom fields, setting up permissions, creating dashboards, and providing training to ensure effective use of the tool. + +
+