A Public Subnet is a subnet that has a route to the internet through an Internet Gateway, allowing resources within it to be accessed from the internet. A Private Subnet, on the other hand, does not have a direct route to the internet, meaning resources in it cannot be accessed directly from the internet.
EC2, or Amazon Elastic Compute Cloud, is a web service that provides resizable compute capacity in the cloud, allowing users to run virtual servers and manage applications on-demand.
A VPC (Virtual Private Cloud) is a virtual network dedicated to your AWS account, allowing you to launch AWS resources in a logically isolated environment.
An Elastic Load Balancer (ELB) is a service that automatically distributes incoming application traffic across multiple targets, such as Amazon EC2 instances, containers, and IP addresses, to ensure high availability and reliability of applications.
Elastic Beanstalk is a platform-as-a-service (PaaS) that simplifies application deployment and management, automatically handling infrastructure provisioning, load balancing, and scaling. CloudFormation, on the other hand, is an infrastructure-as-code (IaC) service that allows you to define and provision AWS resources using templates, giving you more control over the infrastructure setup but requiring more manual configuration.
Shared VPCs allow organizations to share a Virtual Private Cloud (VPC) network across multiple projects within Google Cloud. You would use them to centralize network management, enhance security, and simplify resource sharing among different teams or projects while maintaining control over the network.
Cloud SQL is a fully managed relational database service for SQL databases like MySQL and PostgreSQL. Cloud Spanner is a horizontally scalable, globally distributed relational database that supports SQL queries and strong consistency. Bigtable is a NoSQL database designed for large analytical and operational workloads, optimized for high throughput and low latency.
Cloud Deployment Manager is a service provided by Google Cloud that allows users to create, configure, and deploy cloud resources using templates in YAML or JSON format. It automates the deployment of resources in a repeatable manner.
The main difference between Cloud Deployment Manager and Terraform is that Deployment Manager is specific to Google Cloud and tightly integrated with its services, while Terraform is a multi-cloud tool that can manage resources across various cloud providers, including Google Cloud, AWS, and Azure.
A VPC (Virtual Private Cloud) in GCP (Google Cloud Platform) is a virtualized network that allows you to create and manage your own private network within the Google Cloud environment. It enables you to define IP address ranges, create subnets, configure firewalls, and manage routing. VPCs provide isolation and control over your resources, allowing them to communicate securely within the network and with external networks.
Google Compute Engine is a service that allows users to create and run virtual machines (VMs) on Google Cloud's infrastructure. To configure VMs, you can use the Google Cloud Console, the gcloud command-line tool, or the Compute Engine API to specify the machine type, operating system, disk size, network settings, and other configurations before launching the VM.
I manage suppliers by establishing clear communication, setting expectations, monitoring performance, building strong relationships, and regularly reviewing contracts and agreements to ensure alignment with project goals.
A line refers to the transmission or distribution pathway that carries electricity from one point to another, while a substation is a facility that transforms voltage levels, controls power flow, and connects transmission lines to distribution networks.
Projects are temporary endeavors with a specific goal and defined timeline. Programs are groups of related projects managed in a coordinated way to achieve broader objectives. A portfolio is a collection of projects and programs that are managed together to achieve strategic business goals.
The project life cycle consists of five main phases:
1. **Initiation**: Defining the project and obtaining approval.
2. **Planning**: Outlining the project scope, objectives, and creating a roadmap.
3. **Execution**: Implementing the project plan and delivering the project outputs.
4. **Monitoring and Controlling**: Tracking progress and making adjustments as needed.
5. **Closure**: Finalizing all activities, delivering the final product, and closing the project.
**Difference between PLC and SCADA:**
- **PLC (Programmable Logic Controller):** A hardware device used for automation of industrial processes, controlling machinery on factory floors.
- **SCADA (Supervisory Control and Data Acquisition):** A software system that monitors and controls industrial processes at a higher level, providing data visualization and management.
**Merits of PLCs:**
- High reliability and durability.
- Real-time control and fast response times.
- Easy to program and modify.
- Suitable for complex control tasks.
**De-merits of PLCs:**
- Limited data handling and visualization capabilities.
- Higher initial cost for complex systems.
- Requires specialized knowledge for programming.
**Merits of SCADAs:**
- Centralized monitoring and control of multiple PLCs.
- Advanced data visualization and reporting capabilities.
- Remote access and control.
- Scalability for large systems.
**De-merits of SCADAs:**
- Higher complexity and cost.
- Vulnerability to cybersecurity
I've used tools like Jira, Azure DevOps, and Trello for Agile project management. I choose them based on project needs; Jira for complex workflows and robust reporting, Azure DevOps for integrated development environments, and Trello for simpler, visually-oriented task management.
* **Epic:** A large, high-level user story that is too big to complete in a single iteration. It's usually broken down into smaller user stories.
* **User Story:** A small, self-contained requirement that represents a valuable piece of functionality for the end-user. It follows the format: "As a [user type], I want [goal] so that [benefit]".
* **Task:** A small, actionable item that needs to be done to complete a user story. It's a technical breakdown of the work required by the development team.
* **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.
A product backlog is a prioritized list of features, bug fixes, tasks, and requirements needed to build a product. It's managed through regular refinement, prioritization, estimation, and updates based on feedback and changing business needs, often facilitated by the Product Owner.
During a sprint, I generally avoid scope creep. If a change request is small and doesn't impact the sprint goal, the team can discuss and decide if it can be included. If the change is significant, it goes into the product backlog to be prioritized for a future sprint.