Proactive monitoring involves actively checking systems and applications to identify and resolve potential issues before they affect performance, while reactive monitoring occurs after an issue has been detected, focusing on responding to and fixing problems as they arise.

Log monitoring plays a crucial role in infrastructure monitoring by providing insights into system performance, identifying errors, detecting security threats, and ensuring compliance. It helps in troubleshooting issues by analyzing log data from various sources, allowing for proactive maintenance and quick response to incidents.
Infrastructure as Code (IaC) is a practice that allows you to manage and provision IT infrastructure using code and automation tools. It impacts monitoring by enabling consistent and repeatable environments, making it easier to implement monitoring solutions, automate alerts, and ensure that monitoring configurations are version-controlled and easily reproducible across different environments.
The components of IT infrastructure that should be monitored include:
1. Servers
2. Network devices (routers, switches, firewalls)
3. Storage systems
4. Applications and services
5. Databases
6. Virtual machines and containers
7. Cloud resources
8. End-user devices (desktops, laptops, mobile devices)
9. Power and cooling systems
10. Security systems and logs
Thresholds and alerts for monitored systems are defined by identifying key performance indicators (KPIs) and setting specific values that indicate normal and abnormal performance. Thresholds are established based on historical data, industry standards, and business requirements. Alerts are configured to trigger notifications when metrics exceed or fall below these thresholds, allowing for timely responses to potential issues.
API documentation is a technical manual that explains how to use an API, including its endpoints, request and response formats, authentication methods, and examples. It is necessary because it helps developers understand how to integrate and interact with the API effectively, ensuring proper usage and reducing errors.
The common status codes in HTTP responses are:
- **200**: OK
- **201**: Created
- **204**: No Content
- **400**: Bad Request
- **401**: Unauthorized
- **403**: Forbidden
- **404**: Not Found
- **500**: Internal Server Error
- **502**: Bad Gateway
- **503**: Service Unavailable
A web service is a standardized way of allowing different applications to communicate over the internet using protocols like HTTP. It provides a method for applications to exchange data and perform operations. An API (Application Programming Interface) is a set of rules and tools that allows different software applications to interact with each other. A web service is a type of API that specifically uses web protocols to enable this interaction.
CORS, or Cross-Origin Resource Sharing, is a security feature implemented by web browsers that allows or restricts web applications from making requests to a domain different from the one that served the web page. It affects API development by requiring developers to configure their APIs to specify which origins are allowed to access their resources, ensuring that only trusted domains can interact with the API.
API authentication is the process of verifying the identity of a user or application trying to access an API. Common methods include:
1. **API Keys**: Unique keys provided to users to access the API.
2. **Basic Authentication**: Uses a username and password encoded in Base64.
3. **OAuth**: A token-based authentication method that allows users to grant limited access to their resources without sharing credentials.
4. **JWT (JSON Web Tokens)**: A compact, URL-safe means of representing claims to be transferred between two parties, often used for stateless authentication.
5. **HMAC (Hash-based Message Authentication Code)**: Uses a secret key to create a hash of the request, ensuring data integrity and authenticity.
Cross-functional teams in Agile are important because they bring together all the necessary skills to complete work without dependencies on other teams. This leads to faster delivery, better problem-solving, and increased innovation. To foster collaboration, encourage open communication, shared understanding of goals, mutual respect, and a focus on collective ownership.
Scrum is an Agile framework for managing and completing complex projects.
Implementation involves:
1. **Roles:** Defining roles like Product Owner, Scrum Master, and Development Team.
2. **Sprints:** Working in short, time-boxed iterations (Sprints), typically 2-4 weeks.
3. **Artifacts:** Using artifacts like Product Backlog, Sprint Backlog, and Increment.
4. **Events:** Conducting events such as Sprint Planning, Daily Scrum, Sprint Review, and Sprint Retrospective.
5. **Continuous Improvement:** Regularly inspecting and adapting the process based on feedback.
We ensure consistent Agile processes through:
* **Training and coaching:** Ensuring the team understands Agile principles and practices.
* **Regular audits and retrospectives:** Identifying deviations and areas for improvement.
* **Using tools and templates:** Standardizing processes and providing guidelines.
* **Defining clear roles and responsibilities:** Ensuring everyone knows their part in the process.
* **Promoting open communication and feedback:** Encouraging early detection of issues.
* **Listen actively:** Understand their concerns and perspective.
* **Communicate clearly and frequently:** Keep them informed about progress and challenges.
* **Find common ground:** Focus on shared goals and objectives.
* **Be transparent:** Share data and evidence to support decisions.
* **Facilitate collaboration:** Encourage open dialogue and problem-solving.
* **Coach and mentor:** Help team members grow and improve.
* **Escalate when necessary:** Involve a Scrum Master or manager if the situation doesn't improve.
* **Clear Sprint Goals:** Define specific, measurable, achievable, relevant, and time-bound (SMART) goals for each iteration.
* **Daily Stand-ups:** Facilitate short, focused daily meetings to identify roadblocks and coordinate efforts.
* **Sprint Backlog Management:** Keep the sprint backlog refined, prioritized, and realistic based on team capacity.
* **Timeboxing:** Adhere to time limits for meetings and tasks to prevent scope creep and maintain momentum.
* **Focus on Value:** Prioritize tasks that deliver the most business value within the iteration.
* **Remove Impediments:** Proactively identify and resolve obstacles that hinder the team's progress.
* **Limit Work in Progress (WIP):** Encourage the team to focus on completing tasks before starting new ones.
* **Continuous Feedback:** Regularly review progress, gather feedback, and adapt plans as needed.
* **Defined "Definition of Done":** Ensure a clear understanding of what it means for a task to be considered complete.
* **Team Collaboration & Communication:** Foster open and effective communication and collaboration within the team.