diff --git a/Books/Training_Site_Reliability_Engineers.pdf b/Books/Training_Site_Reliability_Engineers.pdf new file mode 100644 index 00000000..2842303c Binary files /dev/null and b/Books/Training_Site_Reliability_Engineers.pdf differ diff --git a/Books/building_secure_and_reliable_systems.pdf b/Books/building_secure_and_reliable_systems.pdf new file mode 100644 index 00000000..ede1187c Binary files /dev/null and b/Books/building_secure_and_reliable_systems.pdf differ diff --git a/Books/case-studies-infrastructure-change-management.pdf b/Books/case-studies-infrastructure-change-management.pdf new file mode 100644 index 00000000..b305e9e6 Binary files /dev/null and b/Books/case-studies-infrastructure-change-management.pdf differ diff --git a/Books/google-site-reliability-engineering.pdf b/Books/google-site-reliability-engineering.pdf new file mode 100644 index 00000000..24dc72bd Binary files /dev/null and b/Books/google-site-reliability-engineering.pdf differ diff --git a/Books/practical-guide-to-cloud-migration.pdf b/Books/practical-guide-to-cloud-migration.pdf new file mode 100644 index 00000000..e8636a2b Binary files /dev/null and b/Books/practical-guide-to-cloud-migration.pdf differ diff --git a/Books/readme.md b/Books/readme.md index 2f362257..87542bef 100644 --- a/Books/readme.md +++ b/Books/readme.md @@ -33,7 +33,11 @@ 31. [Kubernetes sheet](kubernetes%20sheet%20.pdf) 32. [DevOps interview questions with answers](DevOps%20interview%20questions%20with%20answers.pdf) 33. [Pro Git](progit.pdf) - +34. [Building Secure and Reliable Systems](building_secure_and_reliable_systems.pdf) +35. [Case Studies in Infrastructure Change Management](case-studies-infrastructure-change-management.pdf) +36. [Google SRE](google-site-reliability-engineering.pdf) +37. [Practical Guide To Cloud Migration](practical-guide-to-cloud-migration.pdf) +38. [Training SRE](Training_Site_Reliability_Engineers.pdf) ****** diff --git a/CI-CD/jenkins/Jenkins-overview.md b/CI-CD/jenkins/Jenkins-overview.md new file mode 100644 index 00000000..631452a8 --- /dev/null +++ b/CI-CD/jenkins/Jenkins-overview.md @@ -0,0 +1,9 @@ +## What is Jenkins? + +Jenkins is an open-source automation server used to build, test, and deploy applications. +It helps implement CI/CD pipelines by automating repetitive tasks. + +### Why Jenkins? +- Automates build & deployment +- Integrates with GitHub +- Supports Docker & Kubernetes diff --git a/Cloud_providers/AWS/aws.md b/Cloud_providers/AWS/aws.md new file mode 100644 index 00000000..8154074e --- /dev/null +++ b/Cloud_providers/AWS/aws.md @@ -0,0 +1,148 @@ +# Amazon Web Services (AWS) Concepts + +Amazon Web Services (AWS) is a leading cloud service provider that offers a wide range of cloud computing services. Below are some fundamental concepts to understand when working with AWS: + +## 1. Regions and Availability Zones + +- **Region:** A geographic area that consists of multiple Availability Zones. Each AWS region is a separate geographic area, isolated from others, and is designed to provide high availability and low latency. +- **Availability Zone (AZ):** A data center or facility within an AWS region. AZs are interconnected but physically separate from each other, providing redundancy and fault tolerance. + +## 2. EC2 (Elastic Compute Cloud) + +- **EC2 Instance:** Virtual machines that you can rent on AWS. They vary in terms of computing power, memory, and storage capacity to meet different application requirements. +- **AMI (Amazon Machine Image):** A pre-configured virtual machine image used to create EC2 instances. +- **Security Groups:** Virtual firewalls that control inbound and outbound traffic to EC2 instances. + +## 3. S3 (Simple Storage Service) + +- **S3 Bucket:** A container for storing data objects (files) in S3. Buckets have unique names and are used to organize and manage data. +- **Objects:** The data files stored in S3 buckets. Each object consists of data, a key (unique within a bucket), and metadata. + +## 4. IAM (Identity and Access Management) + +- **IAM User:** An individual or system that interacts with AWS resources. Each user has its own set of credentials and permissions. +- **IAM Role:** A set of permissions that define what actions an entity can perform on AWS resources. Roles can be assumed by EC2 instances, Lambda functions, etc. +- **Policies:** JSON documents that define permissions for users, groups, and roles. + +## 5. RDS (Relational Database Service) + +- **RDS Instance:** Managed relational database instances (e.g., MySQL, PostgreSQL, Oracle) that are scalable and highly available. +- **DB Snapshots:** Point-in-time backups of an RDS instance, used for data recovery and replication. +- **Multi-AZ Deployment:** A configuration that replicates the database across multiple Availability Zones for high availability. + +## 6. VPC (Virtual Private Cloud) + +- **VPC:** A logically isolated section of the AWS cloud where you can launch AWS resources. It provides control over network configuration and security. +- **Subnet:** A range of IP addresses in your VPC. Subnets are associated with specific Availability Zones. +- **Route Table:** A set of rules that determine where network traffic is directed within a VPC. + +## 7. Lambda + +- **AWS Lambda:** A serverless computing service that lets you run code in response to events without provisioning or managing servers. +- **Event Sources:** Triggers that invoke Lambda functions, such as API Gateway, S3, or CloudWatch Events. +- **Function:** The code you want to execute when a Lambda is triggered. + +## 8. Elastic Load Balancing (ELB) + +- **ELB:** A service that distributes incoming traffic across multiple EC2 instances for improved availability and fault tolerance. +- **Load Balancer Types:** Classic Load Balancer, Application Load Balancer (ALB), Network Load Balancer (NLB). +## 9. Amazon Route 53 + +- **Amazon Route 53:** Route 53 is a scalable domain name system (DNS) web service that allows you to register domain names and route internet traffic to the appropriate resources, such as EC2 instances, S3 buckets, or load balancers. + +- **DNS Record Types:** Route 53 supports various DNS record types, including A records (for IPv4 addresses), AAAA records (for IPv6 addresses), CNAME records (for aliasing), MX records (for mail routing), and more. + +- **Health Checks:** You can configure Route 53 to perform health checks on your resources and automatically route traffic away from unhealthy endpoints to maintain high availability. + +## 10. AWS Elastic Beanstalk + +- **AWS Elastic Beanstalk:** Elastic Beanstalk is a Platform-as-a-Service (PaaS) that simplifies the deployment and management of web applications. It automatically handles infrastructure provisioning, capacity scaling, and application monitoring. + +- **Supported Platforms:** Elastic Beanstalk supports various programming languages and web frameworks, including Java, .NET, PHP, Node.js, Python, Ruby, and more. + +- **Customization:** While Elastic Beanstalk simplifies deployment, you can still customize the environment by specifying configuration files and settings. + +## 11. ECS (Elastic Container Service) and EKS (Elastic Kubernetes Service) + +- **ECS:** ECS is a container orchestration service that allows you to run, stop, and manage Docker containers on a cluster of EC2 instances. It simplifies the deployment of containerized applications. + +- **EKS:** EKS is a managed Kubernetes service that makes it easier to deploy, manage, and scale containerized applications using Kubernetes. + +- **Containers:** Both ECS and EKS are designed for container management and can scale your applications automatically based on demand. + +## 12. Amazon CloudWatch + +- **Amazon CloudWatch:** CloudWatch is a monitoring and observability service that collects and tracks metrics and logs from various AWS resources, applications, and services. + +- **Alarms:** You can set up alarms in CloudWatch to automatically trigger actions or notifications when specified thresholds are breached. + +- **Logs and Insights:** CloudWatch Logs allows you to collect, monitor, and store log data from your applications, while CloudWatch Logs Insights helps you analyze and gain insights from log data. + +## 13. Amazon Elasticsearch Service + +- **Amazon Elasticsearch Service:** This is a managed Elasticsearch service that makes it easy to deploy, operate, and scale Elasticsearch clusters for searching, analyzing, and visualizing data in real-time. + +- **Kibana Integration:** Amazon Elasticsearch Service integrates with Kibana for data visualization and exploration. + +- **Security and Access Control:** Elasticsearch Service provides security features such as encryption, access control, and VPC support. + +## 14. AWS CloudFormation + +- **AWS CloudFormation:** CloudFormation is an Infrastructure-as-Code (IaC) service that allows you to define and provision AWS infrastructure resources in a declarative template. You can create, update, and delete resources as a single unit. + +- **Templates:** CloudFormation templates are written in JSON or YAML and can describe a wide range of AWS resources and their relationships. + +- **Stacks:** Stacks are sets of AWS resources created and managed together using CloudFormation templates. + +## 15. Serverless Application Model (SAM) + +- **AWS SAM:** SAM is an open-source framework for building serverless applications. It extends AWS CloudFormation to simplify the deployment of serverless resources like AWS Lambda functions, API Gateway, and DynamoDB tables. + +- **Local Testing:** SAM allows you to test your serverless applications locally before deploying them to the AWS cloud. + +- **Resource Definitions:** SAM templates define serverless resources using a simplified syntax, making it easier to work with serverless applications. +## 16. Amazon VPC Peering + +- **VPC Peering:** Amazon VPC Peering allows you to connect two Amazon Virtual Private Clouds (VPCs) and route traffic between them using private IP addresses. It enables communication between resources in different VPCs as if they were on the same network. + +- **Transitive Peering:** VPC peering is not transitive, meaning if VPC A is peered with VPC B and VPC B is peered with VPC C, VPC A cannot directly communicate with VPC C. Additional peering connections or a transit VPC may be required. + +## 17. Amazon EFS (Elastic File System) + +- **Amazon EFS:** EFS is a managed file storage service that provides scalable, highly available, and durable file storage for EC2 instances. It can be accessed concurrently by multiple instances, making it suitable for shared file systems. + +- **Mount Targets:** EFS uses mount targets in your VPC to make the file system available to EC2 instances. You can mount an EFS file system on multiple instances simultaneously. + +## 18. Amazon SNS (Simple Notification Service) + +- **Amazon SNS:** SNS is a fully managed messaging service that enables you to send messages or notifications to a distributed set of recipients via various communication protocols (e.g., email, SMS, HTTP, Lambda). + +- **Publish-Subscribe Model:** SNS follows a publish-subscribe model, allowing multiple subscribers to receive messages published to specific topics. It is often used for event-driven communication. + +## 19. AWS Direct Connect + +- **AWS Direct Connect:** Direct Connect provides dedicated network connections from your on-premises data centers to AWS. It offers a more reliable, lower-latency connection compared to the public internet for data transfer and accessing AWS services. + +- **Virtual Interfaces:** Direct Connect allows you to create virtual interfaces (private or public) to connect to AWS services or your VPCs. + +## 20. AWS Organizations + +- **AWS Organizations:** AWS Organizations is a service for managing multiple AWS accounts centrally. It enables you to create and manage member accounts, apply policies, and consolidate billing and cost management. + +- **Consolidated Billing:** With AWS Organizations, you can consolidate billing across multiple AWS accounts to simplify cost tracking and management. + +- **Service Control Policies (SCPs):** SCPs allow you to set fine-grained permissions and control access to AWS services and resources within member accounts. + +## 21. AWS Lambda Layers + +- **AWS Lambda Layers:** Layers are a distribution mechanism for libraries, custom runtimes, and other function dependencies in AWS Lambda. You can include common code or resources across multiple Lambda functions. + +- **Versioning and Publishing:** Layers can be versioned and published, allowing you to manage updates and share code or data consistently among your functions. + +## 22. AWS Glue + +- **AWS Glue:** AWS Glue is a fully managed ETL (Extract, Transform, Load) service that simplifies the process of preparing and loading data for analytics. It can automatically discover, catalog, and transform data from various sources. + +- **Data Catalog:** Glue Data Catalog acts as a central metadata repository, making it easier to search and discover data for analytics and reporting. + +- **ETL Jobs:** Glue allows you to create and run ETL jobs using Python or Scala, making it accessible for data engineers and analysts. diff --git a/Cloud_providers/AWS/basics.md b/Cloud_providers/AWS/basics.md index 5c6091e2..94d17250 100644 --- a/Cloud_providers/AWS/basics.md +++ b/Cloud_providers/AWS/basics.md @@ -1,25 +1,224 @@ ## AWS -- [AWS ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) +Amazon Web Services (AWS) is a versatile cloud computing platform offering a wide array of services and tools for businesses and individuals. Here, we'll delve into fundamental concepts, troubleshooting IAM, essential commands, and valuable tips and tricks to empower your AWS journey. -- [AWS IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) +### Basic Concepts -- [AWS Troubleshooting IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot.html) +#### [Amazon Resource Names](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) -- ARN -- Amazon Resource Names (ARNs) uniquely identify AWS resources. We require an ARN when you need to specify a resource unambiguously across all of AWS, such as in IAM policies, Amazon Relational Database Service (Amazon RDS) tags, and API calls. +Amazon Resource Names (ARNs) are unique identifiers for AWS resources, essential for unambiguous resource specification. ARNs are utilized in IAM policies, Amazon RDS tags, and API calls. + +#### [Amazon EC2 (Elastic Compute Cloud ):](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) + +Amazon EC2 provides resizable compute capacity in the cloud. It allows you to run virtual servers for various purposes, ranging from web applications to complex data processing. + +#### [Amazon S3 (Simple Storage Service):](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonS3.html) + +Amazon S3 is an object storage service that offers industry-leading scalability, data availability, security, and performance. It is used to store and retrieve any amount of data from anywhere on the web. + +#### [Amazon RDS (Relational Database Service)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) + +Amazon RDS simplifies the setup, operation, and scaling of a relational database. It supports several database engines, including MySQL, PostgreSQL, and SQL Server, making it easier to set up, operate, and scale a relational database in the cloud. + +#### [Amazon VPC (Virtual Private Cloud)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) + +Amazon VPC lets you provision a logically isolated section of the AWS Cloud where you can launch AWS resources in a virtual network that you define. You have complete control over your virtual networking environment. + +#### [Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) + +Auto Scaling allows you to automatically adjust the number of compute resources in your Auto Scaling group. It helps you ensure that you have the correct number of Amazon EC2 instances available to handle the load for your application. + +#### [Elastic Load Balancing ](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) + +Elastic Load Balancing automatically distributes incoming application traffic across multiple targets, such as Amazon EC2 instances, containers, and IP addresses, within one or more availability zones. + +#### [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) + +Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. It is a key-value and document database that delivers single-digit millisecond performance at any scale. + + +#### [AWS Lambda](https://docs.aws.amazon.com/lambda/?icmpid=docs_homepage_featuredsvcs) + +AWS Lambda lets you run code without provisioning or managing servers. You can run your code in response to events and automatically manage compute resources, making it easy to build applications that respond quickly to new information. + + +#### [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_architecture.html) + +Amazon CloudWatch monitors your AWS resources and the applications you run on the cloud. You can use CloudWatch to collect and track metrics, collect and monitor log files, set alarms, and automatically react to changes in your AWS resources. + +#### [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) + +AWS CloudFormation provides a common language for describing and provisioning all the infrastructure resources in your cloud environment. It allows you to use a simple YAML or JSON file to model and provision, in an automated and secure manner, all the resources needed for your applications. + +#### [Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) + +IAM enables secure management of access to AWS services. Through users, groups, and roles, IAM policies define permissions, evaluated when users make requests. + +#### [IAM Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html) + +Policies, entities within AWS, define user and resource permissions. AWS assesses policies during requests, ensuring appropriate access control. + + #### [AWS Troubleshooting IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot.html) + +Troubleshooting IAM involves meticulous policy analysis. Ensure policies grant required permissions. Use AWS Policy Simulator to simulate policy effects, aiding policy refinement. + +These concepts are fundamental to understanding how AWS services work together to build scalable, reliable, and secure cloud applications and infrastructures. + + +### Essential Commands + +1. **Configures your AWS CLI with your AWS access key, secret key, default region, and output format.** + ``` aws configure ``` + +2. **Displays information about available AWS CLI commands and their usage.** + ```aws help``` + +### Identity and Access Management (IAM) Commands: + +1. **Creates a new IAM user.** + ```aws iam create-user``` + +2. **Creates a new IAM group.** + ```aws iam create-group``` + +3. **Creates a new IAM role.** + ```aws iam create-role``` + +4. **Attaches an IAM policy to a user.** + ```aws iam attach-user-policy``` + +7. **Attaches an IAM policy to a group.** + ```aws iam attach-group-policy``` + +8. **Attaches an IAM policy to a role.** + ```aws iam attach-role-policy``` + +9. **Lists all IAM users in your account.** + ```aws iam list-users``` + +10. **List all IAM groups in your account** + ```aws iam list-groups``` + +11. **Lists all IAM roles in your account.** + ```aws iam list-roles``` + +### EC2 (Elastic Compute Cloud) Commands: + +1. **Lists all EC2 instances in your account.** + ```aws ec2 describe-instances``` + +2. **Launches a new EC2 instance.** + ```aws ec2 run-instances``` + +3. **Starts an existing EC2 instance.** + ```aws ec2 start-instances``` + +4. **Stops a running EC2 instance.** + ```aws ec2 stop-instances``` + +5. **Terminates an EC2 instance.** + ```aws ec2 terminate-instances``` + +### S3 (Simple Storage Service) Commands: + +1. **Lists all S3 buckets in your account.** + ```aws s3 ls``` + +2. **Creates a new S3 bucket.** + ```aws s3 mb``` + +3. **Copies files or directories to/from S3.** + ```aws s3 cp``` + +4. **Synchronizes files and directories to S3.** + ```aws s3 sync``` + +5. **Deletes files or objects from S3.** + ```aws s3 rm``` + +### CloudFormation Commands: + +1. **Creates a new CloudFormation stack.** + ```aws cloudformation create-stack``` + +2. **Updates an existing CloudFormation stack.** + ```aws cloudformation update-stack``` + +3. **Deletes a CloudFormation stack.** + ```aws cloudformation delete-stack``` + +### Lambda Commands: + +1. **Lists all Lambda functions in your account.** + ```aws lambda list-functions``` + +2. **Creates a new Lambda function.** + ```aws lambda create-function``` + +3. **Invokes a Lambda function.** + ```aws lambda invoke``` + +These commands are just the basics and cover a wide range of AWS services. +For specific command options and syntax, you can always refer to the official AWS CLI documentation or use the `aws help` command followed by the service name, e.g., `aws ec2 help`. + +#### Kubernetes Contexts + +Managing Kubernetes contexts is vital for multiple cluster management: + +Get available contexts: -- get contexts ``` kubectl config get-contexts ``` -- use contexts +Switch context: + +``` kubectl config use-context ``` + +### Updating Cluster Configuration + + Update Kubernetes configuration to connect to an AWS EKS cluster: + +Update cluster configuration: + +``` aws eks update-kubeconfig --region --name ``` + +Switch to the updated context: + +``` kubectl config use-context arn:aws:eks:::cluster/ ``` + +### Tips & Tricks + +#### 1. Cost Management: + +AWS Cost Explorer: Utilize AWS Cost Explorer to visualize and understand your AWS spending patterns. Analyze costs by service or region, enabling effective budget management. + +Billing Alerts: Set up billing alerts to receive notifications when your AWS costs exceed predefined thresholds. This proactive approach helps you stay within budget limits. + +#### 2. Security Best Practices: + +Multi-Factor Authentication (MFA): Enable MFA for enhanced security. MFA adds an extra layer of protection to your AWS account by requiring an additional verification step. + +Regular Policy Reviews: Regularly review and update IAM policies. Ensure permissions are correctly assigned and remove unnecessary access to maintain a secure environment. + +#### 3. Performance Optimization: + +Amazon CloudFront: Implement Amazon CloudFront as your Content Delivery Network (CDN) solution. CloudFront distributes content globally with low latency, ensuring faster load times for users. + +Auto Scaling: Leverage AWS Auto Scaling to automatically adjust the number of instances in your application. Scale your resources based on demand, optimizing performance and reducing costs during low traffic periods. + +#### 4. Resource Tagging: + +Tagging Strategy: Develop a consistent tagging strategy for your AWS resources. Tags help in organizing resources, managing costs, and ensuring security compliance. -```kubectl config use-context arn:aws:eks:::cluster/``` +Automate Tagging: Automate resource tagging using AWS Lambda functions or AWS Config rules. Consistent tagging simplifies resource tracking and management. -- update cluster config +#### 5. Organize Resources with Tags: +Use tags to label and organize your AWS resources effectively. Tags are key-value pairs that can be attached to most AWS resources, allowing you to categorize and manage resources based on their purpose, owner, or any other criteria. -```aws eks update-kubeconfig --region --name ``` +#### 6. Automate Everything: +Use AWS CloudFormation templates or AWS CDK (Cloud Development Kit) to automate the provisioning of resources. Infrastructure as Code (IaC) practices help in versioning, replicability, and disaster recovery. -- IAM Policies +#### 7. Set Up Billing Alarms: +Avoid unexpected charges by setting up billing alarms in AWS Budgets. You can receive alerts when your costs exceed a predefined threshold, helping you keep track of your expenses. -```A policy is an entity in AWS that, when attached to an identity or resource, defines their permissions. AWS evaluates these policies when a principal, such as a user, makes a request. ``` \ No newline at end of file +#### 8. Plan for Disaster Recovery: +Implement disaster recovery plans using services like AWS Backup and AWS Disaster Recovery. Regularly test your recovery processes to ensure that you can quickly restore services in case of failures. diff --git a/Cloud_providers/Azure/Introduction b/Cloud_providers/Azure/Introduction deleted file mode 100644 index 8f896ae8..00000000 --- a/Cloud_providers/Azure/Introduction +++ /dev/null @@ -1,7 +0,0 @@ - #Introduction -Azure is Microsoft’s cloud platform, just like Google has it’s Google Cloud and Amazon has it’s Amazon Web Service or AWS.000. Generally, it is a platform through which we can use Microsoft’s resource. For example, to set up a huge server, we will require huge investment, effort, physical space and so on. In such situations, Microsoft Azure comes to our rescue. It will provide us with virtual machines, fast processing of data, analytical and monitoring tools and so on to make our work simpler. The pricing of Azure is also simpler and cost-effective. Popularly termed as “Pay As You Go”, which means how much you use, pay only for that. - - - - #Azure History -Microsoft unveiled Windows Azure in early October 2008 but it went to live after February 2010. Later in 2014, Microsoft changed its name from Windows Azure to Microsoft Azure. Azure provided a service platform for .NET services, SQL Services, and many Live Services. Many people were still very skeptical about “the cloud”. As an industry, we were entering a brave new world with many possibilities. Microsoft Azure is getting bigger and better in coming days. More tools and more functionalities are getting added. It has two releases as of now. It’s famous version Micorosft Azure v1 and later Microsoft Azure v2. Microsoft Azure v1 was more like JSON script driven then the new version v2, which has interactive UI for simplification and easy learning. Microsoft Azure v2 is still in the preview version diff --git a/Cloud_providers/Azure/Introduction.md b/Cloud_providers/Azure/Introduction.md new file mode 100644 index 00000000..a6020d75 --- /dev/null +++ b/Cloud_providers/Azure/Introduction.md @@ -0,0 +1,29 @@ + #Introduction +Microsoft Azure, commonly referred to as Azure, is a comprehensive cloud computing platform and infrastructure service offered by Microsoft. It provides a wide range of cloud-based services, including computing, storage, databases, networking, analytics, machine learning, and more.Microsoft Azure is widely used by businesses and developers for a variety of purposes, from hosting web applications to running large-scale data analytics. It provides a flexible and scalable cloud platform that can meet the diverse needs of both small startups and large enterprises. + + #Azure History +Microsoft unveiled Windows Azure in early October 2008 but it went to live after February 2010. Later in 2014, Microsoft changed its name from Windows Azure to Microsoft Azure. Azure provided a service platform for .NET services, SQL Services, and many Live Services. Many people were still very skeptical about “the cloud”. As an industry, we were entering a brave new world with many possibilities. Microsoft Azure is getting bigger and better in coming days. More tools and more functionalities are getting added. It has two releases as of now. It’s famous version Micorosft Azure v1 and later Microsoft Azure v2. Microsoft Azure v1 was more like JSON script driven then the new version v2, which has interactive UI for simplification and easy learning. Microsoft Azure v2 is still in the preview version. + +Some of the features of Microsoft Azure: + +-Cloud Computing Platform: Azure is a cloud computing platform that allows individuals and organizations to build, deploy, and manage applications and services through Microsoft's extensive network of data centers worldwide. + +-Infrastructure as a Service (IaaS): Azure offers IaaS capabilities, allowing users to create and manage virtual machines, storage, and networking resources. This is particularly useful for migrating existing on-premises applications to the cloud or for running custom-built virtual machines. + +-Platform as a Service (PaaS): Azure provides PaaS solutions that enable developers to build, deploy, and scale applications without managing the underlying infrastructure. This includes services like Azure App Service, Azure Functions, and Azure Kubernetes Service (AKS). + +-Software as a Service (SaaS): Microsoft offers a wide range of SaaS applications through Azure, including Office 365, Dynamics 365, and Azure DevOps, which enable businesses to use Microsoft's software products on a subscription basis. + +-Data and Analytics: Azure provides a suite of data and analytics services, such as Azure SQL Database, Azure Cosmos DB, and Azure Data Lake, allowing users to store, analyze, and gain insights from their data. + +-AI and Machine Learning: Azure offers a set of tools and services for artificial intelligence and machine learning, including Azure Machine Learning and Azure Cognitive Services, to build intelligent applications and models. + +-IoT (Internet of Things): Azure IoT Suite helps connect, monitor, and manage IoT devices and collect and analyze data from them. + +-Security and Compliance: Azure places a strong emphasis on security and compliance, offering features like Azure Security Center and Azure Policy to help organizations protect their data and meet regulatory requirements. + +-Global Reach: Azure has data centers in multiple regions worldwide, allowing users to deploy applications and services close to their target audience, improving performance and reducing latency. + +-Hybrid Cloud: Azure supports hybrid cloud scenarios, allowing organizations to seamlessly integrate their on-premises infrastructure with Azure resources, creating a more flexible and scalable environment. + +-Ecosystem and Integration: Azure integrates with a wide variety of development tools and technologies, making it easy for developers to work with familiar tools and frameworks. diff --git a/Cloud_providers/Azure/Services_Provided b/Cloud_providers/Azure/Services_Provided deleted file mode 100644 index 2fff9077..00000000 --- a/Cloud_providers/Azure/Services_Provided +++ /dev/null @@ -1,16 +0,0 @@ -#Microsoft Azure Services - -Some following are the services of Microsoft Azure offers: - -1. Compute: Includes Virtual Machines, Virtual Machine Scale Sets, Functions for serverless computing, Batch for containerized batch workloads, Service Fabric for microservices and container orchestration, and Cloud Services for building cloud-based apps and APIs. -2. Networking: With Azure you can use variety of networking tools, like the Virtual Network, which can connect to on-premise data centers; Load Balancer; Application Gateway; VPN Gateway; Azure DNS for domain hosting, Content Delivery Network, Traffic Manager, ExpressRoute dedicated private network fiber connections; and Network Watcher monitoring and diagnostics -3. Storage: Includes Blob, Queue, File and Disk Storage, as well as a Data Lake Store, Backup and Site Recovery, among others. -4. Web + Mobile: Creating Web + Mobile applications is very easy as it includes several services for building and deploying applications. -5. Containers: Azure has a property which includes Container Service, which supports Kubernetes, DC/OS or Docker Swarm, and Container Registry, as well as tools for microservices. -6. Databases: Azure has also includes several SQL-based databases and related tools. -7. Data + Analytics: Azure has some big data tools like HDInsight for Hadoop Spark, R Server, HBase and Storm clusters -8. AI + Cognitive Services: With Azure developing applications with artificial intelligence capabilities, like the Computer Vision API, Face API, Bing Web Search, Video Indexer, Language Understanding Intelligent. -9. Internet of Things: Includes IoT Hub and IoT Edge services that can be combined with a variety of machine learning, analytics, and communications services. -10. Security + Identity: Includes Security Center, Azure Active Directory, Key Vault and Multi-Factor Authentication Services. -11. Developer Tools: Includes cloud development services like Visual Studio Team Services, Azure DevTest Labs, HockeyApp mobile app deployment and monitoring, Xamarin cross-platform mobile development and more. - diff --git a/Cloud_providers/Azure/Services_Provided.md b/Cloud_providers/Azure/Services_Provided.md new file mode 100644 index 00000000..780ca412 --- /dev/null +++ b/Cloud_providers/Azure/Services_Provided.md @@ -0,0 +1,48 @@ +#Microsoft Azure Services + +Some following are the services of Microsoft Azure offers: + +1. Azure Virtual Machines (VMs): +Azure VMs provide scalable and customizable virtualized computing resources. Users can deploy Windows or Linux VMs to run applications, host websites, and perform various computing tasks. + +2. Azure App Service: +Azure App Service is a fully managed platform for building, deploying, and scaling web applications and APIs. It supports multiple programming languages and provides easy integration with databases and other Azure services. + +3. Azure SQL Database: +Azure SQL Database is a managed relational database service. It offers a highly available, secure, and scalable platform for hosting SQL Server databases in the cloud. + +4. Azure Kubernetes Service (AKS): +AKS is a managed Kubernetes container orchestration service. It simplifies the deployment, management, and scaling of containerized applications using Kubernetes. + +5. Azure Blob Storage: +Azure Blob Storage is an object storage service for storing and managing unstructured data, such as documents, images, and media files. It's highly scalable and durable. + +6. Azure Functions: +Azure Functions is a serverless compute service that allows you to run event-driven code without managing infrastructure. You pay only for the compute resources consumed. + +7. Azure Active Directory (Azure AD): +Azure AD is a comprehensive identity and access management service. It provides secure authentication, single sign-on, and identity management for applications and resources. + +8. Azure Cognitive Services: +Cognitive Services offers pre-built AI models and APIs for vision, speech, language, and search. Developers can integrate AI capabilities into their applications without extensive machine learning expertise. + +9. Azure DevOps Services: +Azure DevOps provides a set of tools for software development, including version control, build automation, release management, and project tracking, to support DevOps practices. + +10. Azure Virtual Network: +Azure Virtual Network allows you to create isolated and secure private networks in the cloud. It facilitates the connection of VMs, services, and on-premises resources. + +11. Azure Functions: +Azure Functions is a serverless compute service that lets you run code in response to events. It's ideal for microservices and event-driven applications. + +12. Azure Logic Apps: +Azure Logic Apps is a serverless workflow automation platform that enables you to create and run workflows that integrate with various services and systems. + +13. Azure Monitor: +Azure Monitor provides comprehensive insights into the performance, health, and security of your applications and infrastructure. It includes tools like Application Insights and Log Analytics. + +14. Azure Databricks: +Azure Databricks is a fast, easy, and collaborative Apache Spark-based analytics platform. It's used for big data and machine learning workloads. + +15. Azure IoT Hub: +Azure IoT Hub is a managed service for connecting, monitoring, and managing IoT devices. It enables IoT solutions with secure device-to-cloud communication. diff --git a/Cloud_providers/Azure/azure.md b/Cloud_providers/Azure/azure.md new file mode 100644 index 00000000..4a35f9a1 --- /dev/null +++ b/Cloud_providers/Azure/azure.md @@ -0,0 +1,153 @@ +# 1. Microsoft Azure Concepts + +Microsoft Azure is a comprehensive cloud computing platform provided by Microsoft. Here are some fundamental concepts to understand when working with Azure: + +## 1. **Azure Regions and Availability Zones** +- **Region:** Azure has multiple datacenter regions globally, each consisting of one or more datacenters. Regions allow you to deploy resources in specific geographic locations, taking into account data residency and latency requirements. +- **Availability Zone:** Availability Zones are unique physical locations within an Azure region. They provide high availability by hosting resources in separate datacenters with independent power, cooling, and networking. + +## 2. **Virtual Machines (VMs)** +- **Virtual Machine (VM):** Azure VMs are scalable and fully configurable virtualized computing instances. You can choose from a variety of VM sizes and operating systems to meet your application requirements. +- **Azure Marketplace:** The Azure Marketplace offers pre-configured VM images and templates for various applications and services. + +## 3. **Azure Storage** +- **Azure Storage:** Azure provides scalable and highly available cloud storage services, including Blob Storage (for unstructured data), File Storage (for file shares), Table Storage (NoSQL), and Queue Storage (messaging). +- **Azure Blob:** Blob Storage is used for storing binary and text data, such as images, videos, and backups. + +## 4. **Azure Active Directory (Azure AD)** +- **Azure Active Directory (Azure AD):** Azure AD is Microsoft's cloud-based identity and access management service. It allows you to manage user identities and enable single sign-on (SSO) to various Azure and third-party applications. +- **Azure AD Tenant:** Each Azure AD instance is known as a tenant and represents an organization's identity store in Azure. + +## 5. **Azure Resource Manager (ARM)** +- **Azure Resource Manager (ARM):** ARM is the deployment and management service for Azure. It allows you to create, update, and manage Azure resources using templates and declarative definitions. +- **ARM Templates:** ARM templates are JSON files that define the resources and their configurations in an Azure deployment. + +## 6. **Azure Functions** +- **Azure Functions:** Azure Functions is a serverless compute service that allows you to run event-driven code without managing infrastructure. You can trigger functions in response to various events. +- **Triggers:** Functions can be triggered by events such as HTTP requests, Azure Storage changes, or message queue messages. + +## 7. **Azure Load Balancer** +- **Azure Load Balancer:** Azure Load Balancer distributes incoming network traffic across multiple VM instances to ensure high availability and reliability for applications. +- **Frontend IP Configuration:** Load Balancer has frontend and backend IP configurations to route traffic to the appropriate VMs. + +## 8. **Azure SQL Database** +- **Azure SQL Database:** Azure SQL Database is a managed relational database service based on Microsoft SQL Server. It offers high availability, scalability, and automatic backups. +- **Elastic Pools:** Elastic Pools allow you to manage and scale multiple databases together for cost optimization. + +## 9. **Azure Virtual Network (VNet)** +- **Azure Virtual Network (VNet):** VNet is a network isolation and segmentation service that allows you to create private, isolated network environments for your Azure resources. +- **Subnet:** Subnets within a VNet help organize resources and define network security rules. + +## 10. **Azure DevOps** +- **Azure DevOps:** Azure DevOps provides a set of tools for software development, including version control, continuous integration, and continuous delivery (CI/CD). +- **Azure DevOps Services:** Azure DevOps Services offers cloud-based tools for collaboration and DevOps practices. +## 11. Azure Kubernetes Service (AKS) + +- **Azure Kubernetes Service (AKS):** AKS is a managed Kubernetes container orchestration service. It simplifies the deployment, management, and scaling of containerized applications using Kubernetes. + +- **Node Pools:** AKS allows you to create and manage node pools with different configurations to accommodate varying workloads. + +## 12. Azure Functions Premium Plan + +- **Azure Functions Premium Plan:** In addition to the Consumption and Dedicated (App Service) plans, Azure Functions offers a Premium Plan that provides more advanced features, including VNET integration, longer execution timeout, and enhanced performance. + +## 13. Azure Logic Apps + +- **Azure Logic Apps:** Azure Logic Apps is a serverless workflow automation service that allows you to create workflows and integrate with various Azure and external services. It's used for orchestrating complex business processes. + +- **Connectors:** Logic Apps use connectors to interact with external services and systems, making it easy to create automated workflows. + +## 14. Azure Key Vault + +- **Azure Key Vault:** Azure Key Vault is a secure, centralized service for managing and safeguarding cryptographic keys, secrets, and certificates used by cloud applications and services. It helps protect sensitive information. + +- **Managed HSM:** Azure Key Vault offers Hardware Security Module (HSM)-backed keys for enhanced security. + +## 15. Azure Synapse Analytics (formerly SQL Data Warehouse) + +- **Azure Synapse Analytics:** Azure Synapse Analytics is an analytics service that combines enterprise data warehousing and big data analytics into one unified platform. It allows you to analyze large volumes of data and perform data transformations. + +- **Data Integration:** Synapse Analytics provides data integration capabilities to ingest and prepare data from various sources for analysis. + +## 16. Azure DevTest Labs + +- **Azure DevTest Labs:** DevTest Labs is a service that enables developers and testers to create and manage environments for development, testing, and training. You can control costs and resources through policies. + +- **Artifacts:** DevTest Labs allows you to define and share artifacts (like pre-configured VM images) for quick environment setup. + +## 17. Azure Firewall + +- **Azure Firewall:** Azure Firewall is a managed network security service that provides high availability, scalability, and advanced security features to protect your Azure Virtual Network resources. + +- **Application Rules:** Azure Firewall supports application rules to allow or deny outbound traffic to specific FQDNs (Fully Qualified Domain Names). + +## 18. Azure Databricks + +- **Azure Databricks:** Azure Databricks is an Apache Spark-based analytics platform optimized for Azure. It provides a collaborative environment for data scientists, engineers, and analysts to work with big data and machine learning. + +- **Integration:** Databricks integrates with various Azure services like Azure Data Lake Storage, Azure SQL Data Warehouse, and Azure Machine Learning. + +## 19. Azure Cosmos DB + +- **Azure Cosmos DB:** Cosmos DB is a globally distributed, multi-model database service designed for high availability and low-latency access. It supports various data models, including document, key-value, graph, and column-family. + +- **Multi-Model API:** Cosmos DB allows you to choose from different APIs (e.g., SQL, MongoDB, Cassandra) to interact with your data. + +## 20. Azure Sentinel + +- **Azure Sentinel:** Azure Sentinel is a cloud-native Security Information and Event Management (SIEM) service that provides intelligent security analytics for threat detection and response across your organization's resources. + +- **Security Connectors:** Sentinel integrates with a wide range of Microsoft and third-party security solutions to collect and analyze security data. + +# 2. Basic Commands +These are only basic commands for more you can consider https://learn.microsoft.com/en-us/azure/?product=popular + +### 1. Login to Azure Account: +```az login``` + +### 2. List Subscriptions: +```az account list``` + +### 3. Set Active Subscription: +```az account set --subscription "Subscription Name or ID"``` + +### 4. List Resource Groups: +```az group list``` + +### 5. Create a Resource Group: +```az group create --name "ResourceGroupName" --location "East US"``` + +### 6. Deploy a Virtual Machine: +```az vm create --resource-group "ResourceGroupName" --name "VMName" --image "UbuntuLTS" --admin-username "azureuser" --admin-password "Password123"``` + +### 7. Start/Stop/Restart a Virtual Machine: +```az vm start --resource-group ResourceGroupName" --name "VMName" az vm stop --resource-group "ResourceGroupName" --name "VMName" az vm restart --resource-group "ResourceGroupName" --name "VMName"``` + +### 8. List Virtual Machines: +```az vm list --resource-group "ResourceGroupName"``` + +### 9. Delete a Virtual Machine: +```az vm delete --resource-group "ResourceGroupName" --name "VMName" --yes --no-wait``` + +### 10. Create a Storage Account: +```az storage account create --name "storageaccountname" --resource-group "ResourceGroupName" --location "East US" --sku "Standard_LRS"``` + +### 11. List Storage Accounts: +```az storage account list --resource-group "ResourceGroupName"``` + +### 12. Create a Blob Container: +```az storage container create --name "containername" --account-name "storageaccountname" --account-key "accountkey"``` + +### 13. List Blob Containers: +```az storage container list --account-name "storageaccountname" --account-key "accountkey"``` + +### 14. Deploy Azure Web App: +```az webapp create --resource-group "ResourceGroupName" --plan "AppServicePlanName" --name "WebAppName" --runtime "DOTNET|10.0" --deployment-local-git``` + +### 15. List Azure Web Apps: +```az webapp list --resource-group "ResourceGroupName"``` + +For more can check out : https://learn.microsoft.com/en-us/azure/?product=popular + +Happy Learning ! + diff --git a/Cloud_providers/Digital Ocean/Introduction b/Cloud_providers/Digital Ocean/Introduction deleted file mode 100644 index 4bdf42f2..00000000 --- a/Cloud_providers/Digital Ocean/Introduction +++ /dev/null @@ -1,24 +0,0 @@ -#INTRODUCTION:- - -Type: Private -Industry: Internet, cloud computing -Founded :June 24, 2011; 9 years ago -Founders: Moisey Uretsky -Ben Uretsky -Jeff Carr -Alec Hartman -Mitch Wainer. -Headquarters: New York, U.S. -Area served Worldwide -Key people:Yancey Spruill -(CEO) -Services:Internet hosting service -Number of employees :30 (July 2020)[citation needed] -Website www.digitalocean.com - -#ABOUT -DigitalOcean, Inc. is an American cloud infrastructure provider hadquartered in New York City with data centers worldwide. DigitalOcean provides developers cloud services that help to deploy and scale applications that run simultaneously on multiple computers. As of January 2018, DigitalOcean was the third-largest hosting company in the world in terms of web-facing computers - -#FUNDING -As of December 2015, DigitalOcean has raised US$123.21 million in funding.The company's seed funding was led by IA Ventures and raised US$3.2 million in July 2013. Its series A round of funding in March 2014, led by venture capitalist firm Andreessen Horowitz, raised US$37.2 million.In December 2014, DigitalOcean raised US$50 million in debt financing from Fortress Investment Group in the form of a five-year term loan.In July 2015, the company raised US$83 million in its series B round of funding led by Access Industries with participation from Andreessen Horowitz.In April 2016, the company secured US$130 million in credit financing to build out new cloud services.In May 2020, Digital Ocean raised an additional $50 million from Access Industries and Andreessen Horowitz. - diff --git a/Cloud_providers/Digital Ocean/Introduction.md b/Cloud_providers/Digital Ocean/Introduction.md new file mode 100644 index 00000000..7327561e --- /dev/null +++ b/Cloud_providers/Digital Ocean/Introduction.md @@ -0,0 +1,73 @@ +[DigitalOcean](https://www.digitalocean.com/ "DigitalOcean") is a cloud infrastructure provider that specializes in offering simple and developer-friendly cloud computing solutions. Here are some basic concepts, tips, tricks, and commands for working with DigitalOcean: + +#### **Basic Concepts:** +**[1. Droplets:](https://docs.digitalocean.com/products/compute/ "1. Droplets:")** Droplets are virtual private servers (VPS) offered by DigitalOcean. They come in various sizes and configurations and serve as the primary compute resources for hosting applications and services. + +**[2. Images:](https://docs.digitalocean.com/products/compute/ "2. Images:")** Images are snapshots of Droplets that can be used to create new instances. They allow you to save configurations and replicate them across multiple Droplets. +** +[3. Snapshots:](https://docs.digitalocean.com/products/compute/ "3. Snapshots:")** Snapshots are point-in-time backups of a Droplet's disk. They are useful for data backup and recovery. + +**[4. Regions:](https://docs.digitalocean.com/products/compute/ "4. Regions:")** DigitalOcean has data centers in various geographical regions. You can choose the region where your resources are hosted to reduce latency and improve performance. + +**[5. Databases:](https://docs.digitalocean.com/products/compute/ "5. Databases:")** DigitalOcean offers managed database services, such as managed PostgreSQL, MySQL, and Redis databases, which simplify database management tasks. + +**[6. Kubernetes:](https://docs.digitalocean.com/products/compute/ "6. Kubernetes:")** DigitalOcean Kubernetes (DOKS) is a managed Kubernetes service that allows you to deploy, manage, and scale containerized applications. + +**[7. Load Balancers: ](https://docs.digitalocean.com/products/compute/ "7. Load Balancers: ")**DigitalOcean provides load balancers to distribute incoming traffic across multiple Droplets, improving the availability and reliability of your applications. + +#### Tips & Tricks: +**1. Use One-Click Apps:** DigitalOcean offers one-click application installations for popular software like WordPress, Docker, and more. This simplifies the setup process. + +**2. Automate with Terraform:** You can use Terraform, an infrastructure-as-code tool, to automate the provisioning and management of DigitalOcean resources. + +**3. Monitor Resources:** DigitalOcean offers monitoring and alerting features to keep an eye on the performance of your Droplets and other resources. + +**4. Tagging:** Use tags to organize and categorize your resources, making it easier to manage and identify them. + +**5. Back Up Regularly:** Take regular snapshots of your Droplets and databases to ensure data recovery in case of unexpected issues. + +**6. SSH Key Management:** Use SSH keys for secure access to your Droplets. You can add SSH keys to your DigitalOcean account for easy key management. + +#### Commands: +Here are some commonly used DigitalOcean CLI (Command Line Interface) commands: + +**1. Create a Droplet:** + +`doctl compute droplet create --image --region --size --ssh-keys ` + + +**2. List Droplets:** +`doctl compute droplet list +` + +**3. Create Snapshot (for a Droplet): +** +`doctl compute droplet snapshot +` + +**4. List Snapshots: +** +`doctl compute snapshot list +` + +**5. Create a Managed Database: +** +`doctl databases create --name --engine --region --size +` + +**6. List Managed Databases: +** +`doctl databases list +` + +**7. Create a Kubernetes Cluster: +** +`doctl kubernetes cluster create --region +` + +**8. List Kubernetes Clusters: +** +`doctl kubernetes cluster list +` + +These commands are just a starting point for managing DigitalOcean resources via the CLI. Be sure to check [DigitalOcean's official documentation](https://docs.digitalocean.com/products/ "DigitalOcean's official documentation") for more detailed instructions and options. diff --git a/Cloud_providers/Digital Ocean/digitalOcean.md b/Cloud_providers/Digital Ocean/digitalOcean.md new file mode 100644 index 00000000..11a8f751 --- /dev/null +++ b/Cloud_providers/Digital Ocean/digitalOcean.md @@ -0,0 +1,151 @@ +# DigitalOcean Concepts + +DigitalOcean is a cloud infrastructure provider known for its simplicity and developer-friendly approach. Here are some fundamental concepts to understand when working with DigitalOcean: + +## 1. **Droplets** + +- **Droplets:** Droplets are virtual private servers (VPS) in DigitalOcean. They are the fundamental compute resource and can run various Linux distributions or container-based applications. + +- **Droplet Sizes:** Droplets come in different sizes, each with a specific combination of CPU, memory, and storage. Users can choose the size that suits their application's needs. + +## 2. **Images and Snapshots** + +- **Images:** Images are pre-configured virtual machine templates. DigitalOcean provides a variety of base images, including popular Linux distributions, which you can use to create Droplets. + +- **Snapshots:** Snapshots are point-in-time copies of a Droplet's disk. They allow you to create backups of your Droplets, enabling easy recovery or cloning. + +## 3. **Block Storage (Volumes)** + +- **Block Storage (Volumes):** Block Storage allows you to attach additional storage volumes to your Droplets. It provides scalable and high-performance storage for your data. + +- **Snapshots of Volumes:** Similar to Droplet snapshots, you can create snapshots of Block Storage volumes for data backup and recovery. + +## 4. **Networking** + +- **Floating IPs:** Floating IPs are static public IP addresses that can be assigned to your Droplets. They are useful for high availability configurations and load balancing. + +- **Private Networking:** DigitalOcean provides private networking between Droplets in the same datacenter, allowing secure and fast communication between them. + +## 5. **Load Balancers** + +- **Load Balancers:** DigitalOcean Load Balancers distribute incoming traffic across multiple Droplets to ensure high availability and scalability for your applications. + +- **Health Checks:** Load Balancers perform health checks on Droplets to route traffic only to healthy instances. + +## 6. **Kubernetes** + +- **Kubernetes:** DigitalOcean offers a managed Kubernetes service that simplifies the deployment, scaling, and management of containerized applications using Kubernetes. + +- **Kubernetes Clusters:** Users can create and manage Kubernetes clusters, which consist of multiple worker nodes for running containerized workloads. + +## 7. **Databases** + +- **Managed Databases:** DigitalOcean provides managed database services for popular databases like PostgreSQL, MySQL, and Redis. These services handle database maintenance tasks, backups, and scaling. + +- **Database Clusters:** Users can create and manage database clusters for high availability and performance. + +## 8. **Developer Tools** + +- **API:** DigitalOcean offers a RESTful API that allows developers to programmatically manage resources, automate tasks, and integrate DigitalOcean services into their applications. + +- **CLI:** The DigitalOcean Command-Line Interface (CLI) provides a command-line interface for managing resources and services. + +## 9. **Object Storage (Spaces)** + +- **Object Storage (Spaces):** DigitalOcean Spaces is an object storage service for storing and serving large amounts of unstructured data such as images, videos, and backups. It is compatible with the S3 API. + +- **CDN Integration:** Spaces can be integrated with Content Delivery Networks (CDNs) to distribute content globally and improve load times. + +## 10. **Virtual Private Cloud (VPC)** + +- **Virtual Private Cloud (VPC):** DigitalOcean VPC allows you to create isolated network environments for your resources, enhancing security and control over network traffic. + +- **Private Networking:** VPCs can be configured with private networking for secure communication between Droplets in different VPCs. + +## 11. **App Platform** + +- **App Platform:** DigitalOcean App Platform is a Platform-as-a-Service (PaaS) offering for building, deploying, and scaling web applications and APIs. It supports various programming languages and frameworks. + +- **Automatic Scaling:** App Platform can automatically scale your application based on traffic and load. + +## 12. **Monitoring and Alerts** + +- **Monitoring and Alerts:** DigitalOcean provides monitoring and alerting capabilities to track the performance of Droplets and other resources. Users can set up alerts based on resource metrics. + +- **Integration with Monitoring Tools:** DigitalOcean integrates with monitoring tools like Prometheus and Grafana for more advanced monitoring and visualization. + +## 13. **Marketplace** + +- **Marketplace:** DigitalOcean Marketplace offers a wide range of pre-configured one-click applications and development stacks that can be quickly deployed on Droplets. + +- **Community Contributions:** Users and developers can contribute and share their own 1-Click Apps in the marketplace. + +## 14. **Managed Kubernetes (DOKS)** + +- **Managed Kubernetes (DOKS):** DigitalOcean Kubernetes (DOKS) is a managed Kubernetes service that simplifies the deployment and management of containerized applications. It provides automated updates and scaling. + +- **Node Pools:** DOKS allows you to manage different node pools with varying resources for your Kubernetes cluster. + +## 15. **Firewalls and Security Groups** + +- **Firewalls and Security Groups:** DigitalOcean offers firewalls and security groups for controlling inbound and outbound network traffic to and from Droplets and other resources. + +- **Custom Rules:** Users can define custom rules to specify which traffic is allowed or denied. + +## 16. **Load Balancer with Let's Encrypt Integration** + +- **Load Balancer with Let's Encrypt Integration:** DigitalOcean Load Balancers can be configured to integrate with Let's Encrypt for automatic SSL/TLS certificate management, enabling secure connections to your applications. + +## 17. **Managed PostgreSQL** + +- **Managed PostgreSQL:** DigitalOcean provides a managed PostgreSQL database service that handles database maintenance tasks, automatic backups, and scaling of PostgreSQL databases. + +- **High Availability:** Managed PostgreSQL offers high availability configurations for production databases. + +## 18. **Droplet Marketplace Apps** + +- **Droplet Marketplace Apps:** DigitalOcean offers a marketplace of pre-configured applications that you can deploy on your Droplets. These apps cover a wide range of use cases, from development environments to content management systems (CMS) and more. + +- **One-Click Deployments:** You can quickly launch these applications with a single click, saving time on setup and configuration. + +## 19. **Droplet Backups and Snapshots** + +- **Droplet Backups and Snapshots:** In addition to snapshots, you can enable automatic backups for your Droplets. These backups are taken on a regular basis, providing a convenient way to restore your Droplets to previous states. + +- **Snapshots for Migrations:** Snapshots can also be used for migrating Droplets between regions or resizing them to different plans. + +## 20. **Project and Team Management** + +- **Project and Team Management:** DigitalOcean allows you to organize resources into projects and collaborate with team members by assigning roles and permissions. + +- **Resource Tagging:** You can tag resources within a project for easier organization and tracking. + +## 21. **VPC Peering** + +- **VPC Peering:** DigitalOcean supports Virtual Private Cloud (VPC) peering, allowing you to connect VPCs within the same datacenter or across different datacenters for private network communication. + +- **Transitive Peering:** Like other cloud providers, VPC peering in DigitalOcean is not transitive, so additional peering connections may be needed for full connectivity. + +## 22. **Managed Redis (Databases)** + +- **Managed Redis (Databases):** DigitalOcean provides a managed Redis database service, which is a popular choice for caching and real-time data processing. It offers high availability, scaling, and automatic failover. + +- **Data Persistence:** Managed Redis can be configured with data persistence options for backup and recovery. + +## 23. **Custom Images** + +- **Custom Images:** You can create custom images from your Droplets, allowing you to capture a specific configuration, including installed software and settings. These custom images can then be used to create new Droplets. + +- **Custom Image Marketplace:** DigitalOcean users can share custom images with the community via the Marketplace. + +## 24. **Global Block Storage Volumes** + +- **Global Block Storage Volumes:** DigitalOcean's Block Storage Volumes can be attached to Droplets in different regions. This provides a way to share data across regions and enhance redundancy. + +- **Data Transfer:** You can replicate data between regions for disaster recovery or data distribution. + +## 25. **Managed Database Backups and Scaling** + +- **Managed Database Backups and Scaling:** DigitalOcean's managed database services offer automated backups and scaling. You can easily schedule backups and adjust resources as your application's needs change. + +- **Highly Available Configurations:** Managed databases can be configured for high availability with automatic failover. diff --git a/Cloud_providers/GCP/Services b/Cloud_providers/GCP/Services.md similarity index 100% rename from Cloud_providers/GCP/Services rename to Cloud_providers/GCP/Services.md diff --git a/Cloud_providers/GCP/gcp.md b/Cloud_providers/GCP/gcp.md new file mode 100644 index 00000000..cb1fa27c --- /dev/null +++ b/Cloud_providers/GCP/gcp.md @@ -0,0 +1,183 @@ +# 1. Google Cloud Platform (GCP) Concepts + +Google Cloud Platform is a suite of cloud computing services offered by Google. Here are some fundamental concepts to understand when working with GCP: + +## 1. **Google Cloud Regions and Zones** + +- **Regions:** GCP is organized into multiple geographical regions, each containing multiple data centers. Regions help you deploy resources in specific geographic locations to meet data residency and latency requirements. + +- **Zones:** Zones are isolated data centers within regions. They provide high availability and redundancy for GCP resources. + +## 2. **Compute Engine** + +- **Compute Engine:** Compute Engine is GCP's Infrastructure-as-a-Service (IaaS) offering. It allows you to create and manage virtual machine instances, known as Compute Engine instances, in the cloud. + +- **Predefined and Custom Machine Types:** You can choose from predefined machine types or create custom machine types with specific CPU and memory configurations. + +## 3. **Google Cloud Storage** + +- **Google Cloud Storage:** Google Cloud Storage is an object storage service for storing and retrieving data. It provides highly durable and available storage with various storage classes. + +- **Buckets:** Data is stored in containers called buckets, and objects (files) are stored within buckets. + +## 4. **Google Kubernetes Engine (GKE)** + +- **Google Kubernetes Engine (GKE):** GKE is a managed Kubernetes service that simplifies the deployment, management, and scaling of containerized applications using Kubernetes. + +- **Node Pools:** GKE allows you to create and manage node pools with different machine types for your Kubernetes clusters. + +## 5. **Google Cloud Identity and Access Management (IAM)** + +- **Google Cloud IAM:** IAM is GCP's identity and access management service. It allows you to control access to resources by defining roles and permissions for users, groups, and service accounts. + +- **Service Accounts:** Service accounts are used to represent applications and services and can be granted permissions to access resources. + +## 6. **Google Cloud Functions** + +- **Google Cloud Functions:** Cloud Functions is GCP's serverless compute service. It enables you to run event-driven functions in response to cloud events or HTTP requests without managing servers. + +- **Triggers:** Functions can be triggered by events from various GCP services or by HTTP requests. + +## 7. **Google Cloud Pub/Sub** + +- **Google Cloud Pub/Sub:** Pub/Sub is a messaging service that allows you to asynchronously send and receive messages between independent applications. + +- **Topics and Subscriptions:** Messages are organized into topics, and subscribers receive messages from subscriptions to these topics. + +## 8. **Google Cloud BigQuery** + +- **Google Cloud BigQuery:** BigQuery is a fully managed, serverless, and highly scalable data warehouse. It allows you to analyze large datasets using SQL queries. + +- **Data Integration:** BigQuery integrates with various data sources for data ingestion and analytics. + +## 9. **Google Cloud AI and Machine Learning** + +- **Google Cloud AI and Machine Learning:** GCP provides a suite of artificial intelligence (AI) and machine learning (ML) services, including AutoML for custom model development and AI Platform for ML model deployment. + +- **Vision, Speech, and Natural Language APIs:** GCP offers APIs for computer vision, speech recognition, and natural language processing. + +## 10. **Google Cloud Firestore** + +- **Google Cloud Firestore:** Firestore is a NoSQL document database for building scalable, web, and mobile applications. It provides real-time synchronization and automatic scaling. + +- **Collections and Documents:** Data in Firestore is organized into collections, which contain documents with structured data. + +## 11. **Google Cloud VPC (Virtual Private Cloud)** + +- **Google Cloud VPC:** VPC is a global, private network that lets you securely connect GCP resources. It provides isolation, segmentation, and control over network traffic. + +- **Subnets:** VPCs can be divided into subnets, which are regional and provide IP address ranges for GCP resources. + +## 12. **Google Cloud Load Balancing** + +- **Google Cloud Load Balancing:** GCP offers various load balancing solutions, including HTTP(S) Load Balancing, Network Load Balancing, and TCP/SSL Load Balancing. They distribute incoming traffic to backend instances or services for high availability. + +- **Global Load Balancers:** Google's global load balancers distribute traffic across multiple regions for redundancy and low-latency access. + +## 13. **Google Cloud Spanner** + +- **Google Cloud Spanner:** Spanner is a globally distributed, horizontally scalable, and strongly consistent database service. It combines the benefits of traditional relational databases with the scalability of NoSQL databases. + +- **TrueTime:** Spanner uses Google's TrueTime technology for global clock synchronization. + +## 14. **Google Cloud Functions for Firebase** + +- **Google Cloud Functions for Firebase:** Firebase extends Cloud Functions by offering serverless backend capabilities for mobile and web app development. It includes features like Firestore, Authentication, and Realtime Database. + +- **Authentication Triggers:** Firebase Authentication Triggers allow you to run code in response to user authentication events. + +## 15. **Google Cloud Composer** + +- **Google Cloud Composer:** Composer is a managed workflow orchestration service built on Apache Airflow. It allows you to automate, schedule, and monitor workflows and data pipelines. + +- **DAGs (Directed Acyclic Graphs):** Workflows in Composer are defined as DAGs, making it easy to create complex data workflows. + +## 16. **Google Cloud Identity Platform** + +- **Google Cloud Identity Platform:** Identity Platform is a comprehensive identity and access management solution for apps and services. It provides features like authentication, multi-factor authentication (MFA), and user management. + +- **Customizable UI:** Identity Platform offers customizable user interfaces for login and registration. + +## 17. **Google Cloud Security Command Center** + +- **Google Cloud Security Command Center:** Security Command Center is a security and risk management platform that helps you identify, analyze, and mitigate security threats in your GCP resources. + +- **Vulnerability Scanning:** It includes vulnerability scanning for GCP assets. + +## 18. **Google Cloud AutoML** + + +- **Google Cloud AutoML:** AutoML is a suite of machine learning products that enables developers with limited ML expertise to build custom machine learning models for specific use cases. + +- **AutoML Vision, Natural Language, and Tables:** AutoML offers specialized tools for image classification, natural language understanding, and structured data analysis. + +## 19. **Google Cloud Storage Classes** + +- **Google Cloud Storage Classes:** Google Cloud Storage provides different storage classes, including Standard, Nearline, Coldline, and Archive, to optimize storage costs and access frequency. + +- **Data Lifecycle Management:** You can set up policies for data lifecycle management, which automatically transition data between storage classes. + +## 20. **Google Cloud Dataflow** + +- **Google Cloud Dataflow:** Dataflow is a fully managed stream and batch data processing service. It allows you to develop data pipelines for ETL (Extract, Transform, Load) and real-time data analytics. + +- **Apache Beam:** Dataflow is based on the Apache Beam open-source project. + +These advanced concepts and services in Google Cloud Platform expand its capabilities for building scalable, secure, and data-driven cloud solutions. + + +# 2. Basic Commands +These are only basic commands for more you can consider https://cloud.google.com/docs + +### 1. Login to GCP Account: +```gcloud auth login``` + +### 2. Set Project: (arduino) +```gcloud config set project PROJECT_ID``` + +### 3. List Projects: +```gcloud projects list``` + +### 4. Create a New VM Instance: +```gcloud compute instances create INSTANCE_NAME --machine-type MACHINE_TYPE --image IMAGE``` + +### 5. SSH into a VM Instance: +```gcloud compute ssh INSTANCE_NAME``` + +### 6. List VM Instances: +```gcloud compute instances list``` + +### 7. Create a Cloud Storage Bucket: +```gsutil mb -p PROJECT_ID gs://BUCKET_NAME/``` + +### 8. Upload a File to Cloud Storage: +```gsutil cp FILE_PATH gs://BUCKET_NAME/``` + +### 9. List Files in Cloud Storage Bucket: +```gsutil ls gs://BUCKET_NAME/``` + +### 10. Create a Pub/Sub Topic: +```gcloud pubsub topics create TOPIC_NAME``` + +### 11. Publish a Message to Pub/Sub Topic: +```gcloud pubsub topics publish TOPIC_NAME --message "MESSAGE"``` + +### 12. Create a Cloud SQL Instance (MySQL): +```gcloud sql instances create INSTANCE_NAME --database-version=MYSQL_5_7 --tier=db-n1-standard-1``` + +### 13. List Cloud SQL Instances: +```gcloud sql instances list``` + +### 14. Deploy App Engine Application: +```gcloud app deploy app.yaml``` + +### 15. List App Engine Services: +```gcloud app services list``` + +### 16. Create a Kubernetes Cluster: +```gcloud container clusters create CLUSTER_NAME --num-nodes=1 --zone=COMPUTE_ZONE``` + +### 17. List Kubernetes Clusters: +```gcloud container clusters list``` + +As said you can always official documentation for more commands and concepts https://cloud.google.com/docs \ No newline at end of file diff --git a/Cloud_providers/Readme.md b/Cloud_providers/Readme.md index 0e62f789..b88a419e 100644 --- a/Cloud_providers/Readme.md +++ b/Cloud_providers/Readme.md @@ -1,6 +1,339 @@ # Cloud Providers +Cloud providers are like superheroes for your data, swooping in to save the day. Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP) lead the pack. AWS is the seasoned veteran, Azure seamlessly integrates with Microsoft products, and GCP boasts cutting-edge tech. Whether you're storing, computing, or hosting, these clouds have your back, rain or shine. -- AWS -- GCP -- Azure -- Digital Ocean \ No newline at end of file +# AWS +- Amazon Web Services (AWS) reigns supreme in the cloud services domain, offering a versatile suite of tools catering to businesses of all sizes. With stalwarts like Amazon S3 for storage and Amazon EC2 for computation, AWS provides a robust foundation. + +What sets AWS apart is not just its extensive services but also its scalability, global reliability, and a pay-as-you-go model. This flexibility ensures businesses pay only for what they use, making AWS an economic and potent choice. + +For a detailed exploration of AWS services, visit their official website [here](https://aws.amazon.com/). It's a one-stop hub for comprehensive documentation, case studies, and tutorials, showcasing how AWS can propel businesses into the digital future. In the cloud landscape, AWS stands as the benchmark for innovation and efficiency. + +Absolutely, diving into AWS can be an adventure! Here are some handy commands to navigate the AWS landscape: + +**1. AWS CLI Basics:** + - Install the AWS CLI and configure your credentials using `aws configure`. + - Use `aws help` to explore commands and `--help` with specific commands for detailed options. + +**2. AWS Services Management:** + - List available services: `aws help` or `aws service help`. + - Explore AWS regions with `aws ec2 describe-regions`. + +**3. EC2 Instances:** + - Launch an EC2 instance with `aws ec2 run-instances`. + - Terminate instances with `aws ec2 terminate-instances`. + +**4. S3 Commands:** + - Upload a file to S3: `aws s3 cp local-file s3://bucket/`. + - List S3 buckets: `aws s3 ls`. + - Sync local and S3 directories: `aws s3 sync . s3://bucket/path/`. + +**5. AWS Lambda:** + - Deploy a Lambda function: `aws lambda create-function`. + - Update function code: `aws lambda update-function-code`. + +**6. AWS CloudFormation:** + - Create a CloudFormation stack: `aws cloudformation create-stack`. + - Delete a stack: `aws cloudformation delete-stack`. + +**7. Security Groups:** + - List security groups: `aws ec2 describe-security-groups`. + - Modify inbound rules: `aws ec2 authorize-security-group-ingress`. + +**8. IAM Users and Roles:** + - List IAM users: `aws iam list-users`. + - Create IAM role: `aws iam create-role`. + +**9. Elastic Beanstalk:** + - Create an Elastic Beanstalk application: `aws elasticbeanstalk create-application`. + +**10. CloudWatch Logs:** + - Describe log groups: `aws logs describe-log-groups`. + - Get log events: `aws logs get-log-events`. + +**11. Cost Explorer:** + - Analyze costs with AWS Cost Explorer: `aws ce get-cost-and-usage`. + +**12. ECS (Elastic Container Service):** + - List ECS clusters: `aws ecs list-clusters`. + - Describe tasks in a cluster: `aws ecs list-tasks --cluster your-cluster-name`. + +**Tips:** + - Leverage AWS documentation and AWS forums for detailed information. + - Use AWS SDKs for specific programming languages for more complex automation. + - Create custom AMIs with pre-installed software, configurations, and security settings to speed up instance launches and ensure consistency. + +Remember to replace placeholder values like `bucket`, `path`, `your-cluster-name`, etc., with your actual resource names. And always be cautious with powerful commands, especially when it comes to resource deletion. Happy exploring in the AWS cloud! + +# GCP +Google Cloud Platform (GCP) emerges as a technological marvel in the realm of cloud services. Offering a sophisticated suite of tools, GCP is a playground for cutting-edge computing, storage, and machine learning solutions. The global network infrastructure ensures swift and low-latency access to services, providing a seamless experience for users worldwide. + +One standout service is BigQuery, a game-changer in the field of data analytics, enabling rapid and efficient analysis of massive datasets. Whether you're a nimble startup or an industry giant, GCP's agility and advanced offerings cater to a spectrum of business needs, fostering innovation and growth. + +Embark on the cloud revolution by exploring the possibilities at [Google Cloud](https://cloud.google.com/), where GCP redefines the landscape of digital transformation. Elevate your digital endeavors with the prowess of Google's cloud technologies. + +Certainly! Google Cloud Platform (GCP) offers a range of tools and services for cloud computing. Here are some handy commands to help you navigate GCP: + +**1. Google Cloud SDK:** + - Install the Google Cloud SDK to interact with GCP from your local machine. + - Use `gcloud init` to configure your account and set default settings. + +**2. Basic Commands:** + - `gcloud projects list`: Lists all GCP projects in your account. + - `gcloud config list`: Lists your current configuration settings. + +**3. Compute Engine:** + - `gcloud compute instances create`: Creates a new virtual machine instance. + - `gcloud compute instances list`: Lists all virtual machine instances. + +**4. Storage (Cloud Storage):** + - `gsutil cp local-file gs://your-bucket/`: Copies a file from your local machine to Cloud Storage. + - `gsutil ls gs://your-bucket/`: Lists objects in a Cloud Storage bucket. + +**5. Kubernetes Engine (GKE):** + - `gcloud container clusters create`: Creates a new Kubernetes cluster. + - `gcloud container clusters get-credentials`: Configures `kubectl` to use a GKE cluster. + +**6. BigQuery:** + - `bq query`: Runs a SQL-like query on BigQuery. + - `bq show dataset`: Shows information about a dataset in BigQuery. + +**7. Cloud Functions:** + - `gcloud functions deploy`: Deploys a function to Cloud Functions. + - `gcloud functions logs read`: Reads logs for a deployed function. + +**8. IAM (Identity and Access Management):** + - `gcloud projects add-iam-policy-binding`: Adds an IAM policy binding to a project. + - `gcloud iam service-accounts create`: Creates a service account. + +**9. Pub/Sub (Cloud Pub/Sub):** + - `gcloud pubsub topics create`: Creates a new Pub/Sub topic. + - `gcloud pubsub subscriptions create`: Creates a new Pub/Sub subscription. + +**10. Stackdriver:** + - `gcloud logging logs list`: Lists all log types in Stackdriver Logging. + - `gcloud monitoring dashboards create`: Creates a new Stackdriver dashboard. + +**Tips:** + - Utilize the `--help` flag with commands for detailed information on available options. + - Explore GCP's web console for a graphical interface to manage resources. + - Leverage Cloud Shell for a browser-based command-line experience. + +These commands provide a starting point for managing and interacting with various services in Google Cloud Platform. For more comprehensive details and options, refer to the [Google Cloud SDK Documentation](https://cloud.google.com/sdk/docs) and [GCP Documentation](https://cloud.google.com/docs). + +# Azure +Microsoft Azure is a dynamic force in the realm of cloud computing, offering a rich array of services across computing, storage, and AI. With seamless integration into Microsoft's ecosystem, Azure simplifies workflows and enhances collaboration. Azure DevOps streamlines development, ensuring efficiency from code to deployment. + +From startups to enterprises, Azure's global infrastructure and robust services make it a go-to for digital transformation. Security, compliance, and sustainability are ingrained, reinforcing Azure as a trusted partner in the journey to cloud excellence. + +Explore the transformative power of Azure at [Azure](https://azure.microsoft.com/) and unlock the potential for innovation and growth in your organization. + +Certainly! Microsoft Azure is a robust cloud platform with a variety of services. Here are some useful commands to help you navigate and manage resources in Azure: + +**1. Azure CLI:** + - Install the Azure CLI and use `az login` to authenticate to your Azure account. + - Use `az configure` to set default settings like subscription, output format, etc. + +**2. Basic Commands:** + - `az account list`: Lists all subscriptions for your account. + - `az account show`: Displays details of the current subscription. + +**3. Virtual Machines:** + - `az vm create`: Creates a new virtual machine. + - `az vm list`: Lists all virtual machines in a resource group or across subscriptions. + +**4. Storage (Azure Storage):** + - `az storage account create`: Creates a new storage account. + - `az storage account list`: Lists all storage accounts in a resource group or across subscriptions. + +**5. Azure Kubernetes Service (AKS):** + - `az aks create`: Creates a new AKS cluster. + - `az aks get-credentials`: Configures `kubectl` to use an AKS cluster. + +**6. Azure SQL Database:** + - `az sql server create`: Creates a new SQL server. + - `az sql db list`: Lists all SQL databases in a server. + +**7. Azure Functions:** + - `az functionapp create`: Creates a new function app. + - `az functionapp show`: Shows details of a function app. + +**8. Azure Active Directory (AAD):** + - `az ad user list`: Lists all users in the Azure AD. + - `az ad app create`: Creates a new application in Azure AD. + +**9. Azure Resource Groups:** + - `az group create`: Creates a new resource group. + - `az group list`: Lists all resource groups in a subscription. + +**10. Networking:** + - `az network vnet create`: Creates a new virtual network. + - `az network nsg rule add`: Adds a rule to a network security group. + +**Tips:** + - Use the `--help` flag with commands for detailed information on available options. + - Explore the Azure Portal for a graphical interface to manage resources. + - Take advantage of Azure PowerShell for scripting and automation. + +These commands offer a starting point for managing resources in Azure. For more detailed information, refer to the [Azure CLI Documentation](https://docs.microsoft.com/en-us/cli/azure/) and [Azure Documentation](https://docs.microsoft.com/en-us/azure/). + +# Digital Ocean +DigitalOcean is a cloud computing platform celebrated for its simplicity and developer-centric features. At its core, DigitalOcean provides "droplets," virtual machines designed to streamline application deployment. This simplicity extends to managed databases and scalable storage solutions, making it an appealing choice for developers seeking an intuitive cloud experience. + +DigitalOcean's user-friendly interfaces and transparent pricing contribute to its popularity among developers and startups. The platform's emphasis on cost-effectiveness ensures users can optimize their cloud spending without compromising on performance. Whether you're a solo developer or part of a growing startup, DigitalOcean offers a hassle-free and scalable environment for building and deploying applications in the cloud. + +For a deeper dive into DigitalOcean's offerings, you can explore detailed information on their official website: [DigitalOcean](https://www.digitalocean.com/). + +Certainly! DigitalOcean is known for its simplicity and developer-friendly features. Here are some useful commands to help you make the most of DigitalOcean: + +**1. DigitalOcean CLI:** + - Install the DigitalOcean CLI (`doctl`) and authenticate using `doctl auth init`. + +**2. Basic Commands:** + - `doctl account get`: Displays your account information. + - `doctl compute region list`: Lists available regions. + - `doctl compute size list`: Lists available droplet sizes. + +**3. Droplets (Virtual Machines):** + - `doctl compute droplet create`: Creates a new droplet (virtual machine). + - `doctl compute droplet list`: Lists all droplets. + - `doctl compute droplet delete`: Deletes a droplet. + +**4. Volumes and Snapshots:** + - `doctl compute volume create`: Creates a new block storage volume. + - `doctl compute snapshot create`: Creates a snapshot of a volume. + - `doctl compute volume list`: Lists all volumes. + +**5. Networking:** + - `doctl compute firewall create`: Creates a new firewall. + - `doctl compute load-balancer create`: Creates a new load balancer. + - `doctl compute domain create`: Creates a new domain. + +**6. Kubernetes:** + - `doctl kubernetes cluster create`: Creates a new Kubernetes cluster. + - `doctl kubernetes cluster kubeconfig save`: Configures `kubectl` to use a DigitalOcean Kubernetes cluster. + +**7. Monitoring and Alerts:** + - `doctl compute monitoring`: Displays monitoring information for a droplet. + - `doctl compute monitoring alert create`: Creates a new monitoring alert policy. + +**8. Spaces (Object Storage):** + - `doctl spaces create`: Creates a new Spaces (object storage) bucket. + - `doctl spaces list`: Lists all Spaces buckets. + - `doctl compute droplet create --size s-1vcpu-1gb --image spaces --region nyc3 --tag-name spaces`: Creates a droplet with a mounted Spaces bucket. + +**Tips:** + - Use `doctl help` for command information, and `doctl --help` for detailed options. + - Explore DigitalOcean's web dashboard for a user-friendly interface. + - Take advantage of DigitalOcean's tutorials and community resources. + +These commands provide a foundation for managing resources on DigitalOcean. For further details, refer to the [DigitalOcean CLI Documentation](https://www.digitalocean.com/docs/apis-clis/doctl/) and [DigitalOcean Documentation](https://www.digitalocean.com/docs/). + + + + +# Red Hat +Red Hat is a well-known software company that provides open-source solutions, primarily focused on enterprise-level applications and services, including Linux-based operating systems, middleware, and cloud technologies. + +Red Hat offers a cloud platform known as Red Hat OpenShift, which is a Kubernetes-based container platform. OpenShift enables developers to build, deploy, and scale applications quickly and efficiently. It supports a variety of cloud providers, including public clouds like AWS (Amazon Web Services), Azure, and Google Cloud Platform, making it easier for organizations to deploy applications on their preferred cloud infrastructure. + +**1. Red Hat CLI:** +Red Hat provides a command-line interface (CLI) tool called ```rhel-osp-director``` for managing Red Hat OpenStack Platform environments. + +## 1. General steps for installing Red Hat CLI: + +- ***Ensure You Have Red Hat Subscription:*** +To install Red Hat CLI tools, you need a valid Red Hat subscription. Make sure you have access to the Red Hat repositories. + +- ***Access the Command Line:*** +Open a terminal or command prompt on your system where you want to install the Red Hat CLI tool. + +- ***Update Your System:*** +It's always a good practice to update your system's package repository before installing new software. Run the following command: +```sudo yum update``` +If you're using a different package manager like dnf, use dnf update instead. + +- ***Install Red Hat CLI:*** +You can install the Red Hat CLI tool using the package manager (yum or dnf). The exact command can vary based on your system configuration, but it should be something like: +```sudo yum install rhel-osp-director``` +or for `dnf`: +```sudo dnf install rhel-osp-director``` + +Follow the prompts to confirm the installation. The package manager will download and install the necessary files. + +- ***Verify the Installation:*** +After installation is complete, you can verify that the CLI tool has been installed by running: +```rhel-osp-director --version``` + +This command should display the installed version of the Red Hat CLI tool, confirming a successful installation. + + + +## 2 . Commands: +Red Hat-based Linux distributions like Red Hat Enterprise Linux (RHEL), CentOS, and Fedora use the yum package manager (and more recently dnf in newer versions of RHEL and Fedora) to manage software packages. + +- ***Update the System:*** +```sudo yum update``` + +or with `dnf`: +```sudo dnf update``` + +- ***Install a Package:*** +```sudo yum install package_name``` + +or with `dnf`: +```sudo dnf install package_name``` + +Replace package_name with the name of the package you want to install. + +- ***Remove a Package:*** +```sudo yum remove package_name``` + +or with `dnf`: +```sudo dnf remove package_name``` + +- ***Search for a Package:*** +```sudo yum search keyword``` + +or with `dnf`: +```sudo dnf search keyword``` + +- ***List Installed Packages:*** +```sudo yum list installed``` + +or with `dnf`: +```sudo dnf list installed``` + +- ***Enable a Service (Start at Boot):*** +```bash :sudo systemctl enable service_name``` + Enables a service to start automatically at boot. + +- ***Start/Stop/Restart a Service:*** +```sudo systemctl start service_name sudo systemctl stop service_name sudo systemctl restart service_name``` + Manages services (replace service_name with the actual service name). + +- ***Check System Logs:*** +```journalctl``` + Displays the system journal and logs. + +- ***Check Disk Space:*** +```bash : df -h``` + +- ***Check Memory and CPU Usage:*** +```c: free -h``` + +- ***Network Configuration:*** +```ip addr show``` + +- ***Firewall Configuration:*** +```sudo firewall-cmd --list-all``` + +## Note: +Remember to replace package_name and service_name with the actual names of packages and services you want to interact with. Always use sudo to execute administrative commands to ensure proper permissions. + Additionally, consult the man pages (```man command_name```) for more detailed information about specific commands and their options. + + + + +For further more details : +- Redhat Openshift Documentation : https://docs.openshift.com/ +- Redhat customer portal: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8 diff --git a/Container-orchestration/Docker/docker-basic-commands.md b/Container-orchestration/Docker/docker-basic-commands.md new file mode 100644 index 00000000..8a939a4f --- /dev/null +++ b/Container-orchestration/Docker/docker-basic-commands.md @@ -0,0 +1,133 @@ +

Docker Basic Commands

+ +## Build Images + +- Create image using current directory’s Dockerfile
+ ``` docker build -t image-name . ``` + +- List images
+ ``` docker images ``` + +
+ +## Running Container + +- Create new container from specified image
+ ``` docker run image-name ``` + +- Assign a name to the container
+ ``` docker run --name nick-name image-name ``` + +- Run image with an entry point | override existing entrypoint
+ ```docker run image-name cmd```
+ ```docker run image-name --entrypoint cmd``` + +- Run image in interactive mode
+ ``` docker run -it image-name ``` + +- Run image in detached mode
+ ``` docker run -d image-name ``` + +- Run image mapping container's port to the host
+ ``` docker run -p host-port:container-port image-name ``` + +
+ +## Managing Containers + +- List running containers
+ ``` docker ps ``` + +- List all containers
+ ```docker ps -a``` + +- Stop one or more running containers
+ ```docker stop containerId``` + +- Start one or more stopped containers
+ ```docker start containerId``` + +- Fetch the logs of a container
+ ```docker logs containerId``` + +- Fetch and follow log output of a container
+ ```docker logs -f containerId``` + +- Run a command in a running container in interactive mode
+ ```docker exec -it containerId cmd``` + +- Copy files/folders from container to local filesystem
+ ``` docker cp containerId:/workdir/file.ext .``` + +- Copy files/folders from local filesystem to container
+ ``` docker cp file.ext containerId:/workdir/``` + +- Remove container
+ ```docker rm containerId``` + +- Remove running container
+ ```docker rm -f containerId``` + +- Remove all running and stopped containers
+ ```docker rm -f $(docker ps -a -q)``` + +
+ + +## Persistant data using Volumes + +- Creates a new volume that containers store data
+ ```docker volume create volume-name``` + +- Display detailed information on one or more volumes
+ ```docker volume inspect volume-name``` + +- List volumes
+ ```docker volume ls``` + +- Create a volume and then configure the container to use it
+ ``` docker run -v volume-name:/dir/dir container-name``` + +- Create mapping between dir in host and container
+ ``` docker run -v $(pwd):/workdir container-name``` + + + + +
+ +## Managing Images + +#### Tagging Images + +- Create tag to the image while building
+ ``` docker build -t image-name:tag . ``` + +- Create tag to the image after building
+ ``` docker image tag src-image:latest dst-image:tag ``` + +#### Saving & Loading Images + +- Save one or more images to a tar archive
+ ``` docker image save -o image-name.tar image-name:tag ``` + +- Load an image from a tar archive
+ ``` docker image load -i image-name.tar ``` + +#### Remove Images + +- Remove one or more images
+ ``` docker image rm image-name ```
+ ``` docker rmi image-name ``` + +- Remove all images
+ ``` docker system prune -a ``` + +- Remove all stopped containers
+ ``` docker container prune ``` + +- Remove all dangling images
+ ``` docker image prune ``` + +- Remove all unused containers, networks, dangling and unreferenced images
+ ``` docker system prune ``` diff --git a/Container-orchestration/Docker/node/package-lock.json b/Container-orchestration/Docker/node/package-lock.json index e85f701c..303b18ed 100644 --- a/Container-orchestration/Docker/node/package-lock.json +++ b/Container-orchestration/Docker/node/package-lock.json @@ -1,374 +1,799 @@ { "name": "nodejs-image-demo", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "packages": { + "": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "express": "^4.22.1" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "array-flatten": { + "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "content-type": { + "node_modules/call-bound": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } }, - "cookie-signature": { + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, - "debug": { + "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { + "dependencies": { "ms": "2.0.0" } }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, - "ee-first": { + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "escape-html": { + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", + "depd": "2.0.0", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.14.0", "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { + "node_modules/express/node_modules/qs": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "iconv-lite": { + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "media-typer": { + "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } }, - "mime": { + "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "ms": { + "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" } }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "range-parser": { + "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.7.2", + "http-errors": "2.0.0", "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", + "ms": "2.1.3", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } + "engines": { + "node": ">= 0.8.0" } }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dependencies": { + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.1" + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "toidentifier": { + "node_modules/side-channel-list": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "type-is": { + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } }, - "utils-merge": { + "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } }, - "vary": { + "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } } } } diff --git a/Container-orchestration/Docker/node/package.json b/Container-orchestration/Docker/node/package.json index ad2cf37c..e455cb96 100644 --- a/Container-orchestration/Docker/node/package.json +++ b/Container-orchestration/Docker/node/package.json @@ -11,6 +11,6 @@ "express" ], "dependencies": { - "express": "^4.16.4" + "express": "^4.22.1" } } diff --git a/Container-orchestration/Docker/readme.md b/Container-orchestration/Docker/readme.md index 15084381..32c18762 100644 --- a/Container-orchestration/Docker/readme.md +++ b/Container-orchestration/Docker/readme.md @@ -11,7 +11,10 @@ ***************** +[`Docker Basic Commands`](docker-basic-commands.md) +[`Docker Complete Commands`](docker-commands.md) +***************** ## 1. Basic concepts of docker - Containers and Images - Detailed Docker concepts and notes from here - [Docker Concepts](https://github.com/Tikam02/DevOps-Guide/blob/master/Container-orchestration/Docker/docker-concepts.md) diff --git a/Infrastructure-provisioning/Ansible/ansible-concepts.md b/Infrastructure-provisioning/Ansible/ansible-concepts.md index 2479bcbc..f7bac622 100644 --- a/Infrastructure-provisioning/Ansible/ansible-concepts.md +++ b/Infrastructure-provisioning/Ansible/ansible-concepts.md @@ -16,7 +16,7 @@ - **Playbook**: a `YAML` file containing a series of procedures that should be automated. - **Task**: a block that defines a single procedure to be executed, e.g.: install a package. - **Module**: a module typically abstracts a system task, like dealing with packages or creating and changing files. Ansible has a multitude of built-in modules, but you can also create custom ones. -- **Role**: a set of related playbooks, templates and other files, organized in a pre-defined way to facilitate reuse and share. +- **Role**: a set of related playbooks, templates and other files, organized in a pre-defined way to facilitate reuse and sharing. - **Play**: a provisioning executed from start to finish is called a play. - **Facts**: global variables containing information about the system, like network interfaces or operating system. - **Handlers**: used to trigger service status changes, like restarting or reloading a service. @@ -26,11 +26,12 @@ - selects machines to execute against from inventory - connects to those machines (or network devices, or other managed nodes), usually over SSH - copies one or more modules to the remote machines and starts execution there -- Working With Modules +- Working with Modules - Ansible ships with a number of modules (called the ‘module library’) that can be executed directly on remote hosts or through Playbooks. - Users can also write their own modules. These modules can control system resources, like services, packages, or files (anything really), or handle executing system commands. ### Resources: - [Ansible Documentation](https://docs.ansible.com/) - [Configuration Management 101: Writing Ansible Playbooks](https://www.digitalocean.com/community/tutorials/configuration-management-101-writing-ansible-playbooks) -- [Why you might need Ansible and not even know it](https://www.freecodecamp.org/news/why-you-might-need-ansible-and-not-even-know-it-d33b6e4b2ebe/) \ No newline at end of file +- [Why you might need Ansible and not even know it](https://www.freecodecamp.org/news/why-you-might-need-ansible-and-not-even-know-it-d33b6e4b2ebe/) +- [Learning Ansible basics](https://www.redhat.com/en/topics/automation/learning-ansible-tutorial) diff --git a/Interview/Dev-ops-Interview.md b/Interview/Dev-ops-Interview.md index 525cc7ba..341ea391 100644 --- a/Interview/Dev-ops-Interview.md +++ b/Interview/Dev-ops-Interview.md @@ -126,7 +126,7 @@ - To shift left in DevOps simply means the necessity of taking as many tasks on the right i.e. that typically happens toward the end of the application development process and incorporate them into earlier stages of a DevOps methodology. - - There are several ways of accomplishing a shit left in DevOps, most notably: + - There are several ways of accomplishing a shift left in DevOps, most notably: - Create production-ready artifacts at the end of every Agile sprint - Incorporating static code analysis routines in every build @@ -197,7 +197,7 @@ - Q18) Draw a comparison between Asset Management and Configuration Management. - A: The process of monitoring as well as maintaining things of value to an entity or group is called an Asset Management. - - Configuration Management refers to the process of controlling, identifying, planning for, and verifying the configuration items within service in support of Change Management. + - Configuration Management refers to the process of controlling, identifying, planning for, and verifying the configuration items within service in support of Change Management. - Q19) Can you state and explain various key elements of continuous testing? - A: Various key elements of continuous testing are: @@ -210,17 +210,17 @@ - Test optimization – Improve the overall testing process - Q20) Please explain the core operations of DevOps in terms of development and infrastructure. -- A: Core operations of DevOps in terms of development and infrastructure are: - - - Application development – Developing a product that is able to meet all customer requirements and offers a remarkable level of quality - - Code coverage – Measurement of the total number of blocks or lines or arcs of the code executed while the automated tests are running - - Code developing – Prepare the code base required for the product development - - Configuration – Allowing the product to be used in an optimum way - - Deployment – Installing the software to be used by the end-user - - Orchestration – Arrangement of several automated tasks - - Packaging – Activities involved when the release is ready for deployment - - Provisioning – Ensuring that the infrastructure changes arrive just-in-time with the code that requires it - - Unit testing – Meant for testing individual units or components + - A: Core operations of DevOps in terms of development and infrastructure are: + + - Application development – Developing a product that is able to meet all customer requirements and offers a remarkable level of quality + - Code coverage – Measurement of the total number of blocks or lines or arcs of the code executed while the automated tests are running + - Code developing – Prepare the code base required for the product development + - Configuration – Allowing the product to be used in an optimum way + - Deployment – Installing the software to be used by the end-user + - Orchestration – Arrangement of several automated tasks + - Packaging – Activities involved when the release is ready for deployment + - Provisioning – Ensuring that the infrastructure changes arrive just-in-time with the code that requires it + - Unit testing – Meant for testing individual units or components - Q21) What Do You Know about DevOps? @@ -290,9 +290,6 @@ - Start by talking about the age-old mechanisms of writing commands onto script files and testing them in a separate environment before deployment and how this approach is being replaced by IaC. Similar to the codes written for other services, with the help of AWS, IaC allows developers to write, test, and maintain infrastructure entities in a descriptive manner, using formats such as JSON or YAML. This enables easier development and faster deployment of infrastructure changes. - - Go through this Simplilearn video on “DevOps Interview Questions” delivered by our DevOps certification expert that will help you crack any interview. - - - Q32) What are the success factors for Continuous Integration? - Examples of answers: @@ -309,17 +306,17 @@ - Q33) How would you implement CI (continuous delivery) - end to end, including source control, branches, tools, etc. ? -- Q34) What is Continious Delivery? Continious Deployment? +- Q34) What is Continuous Delivery? Continuous Deployment? -- Q35) What is the difference between Continuous Integration, Continious Delivery and Continious Deployment? +- Q35) What is the difference between Continuous Integration, Continuous Delivery and Continuous Deployment? -- Q36) What’s the difference between git and github ? What about git and SVN ? +- Q36) What is the difference between git and github ? What about git and SVN ? - Q37) What is git rebase? - Q38) In Git how do you revert a commit that has already been pushed and made public? -- Q39) What is puppet/chef/ansible used for? What are the advantages over shell scripts ? +- Q39) What is puppet/chef/ansible used for? What are the advantages over shell scripts ? - Q40) What do you understand by “Infrastructure as code”? How does it fit into the DevOps methodology? What purpose does it achieve? @@ -373,7 +370,6 @@ - Feature branching vs trunk based development - Advantages of requiring pull requests and approvals -- Q11) More on Front-end Developer Job Interview Questions *********** @@ -526,11 +522,18 @@ - Q1) What is the importance of SSL? + - A: Using SSL ensure the security of the communication between server and client by encrypting the messages going bothways making sure even if the message are intercepted the attacker wouldn't be able to decrypt the messages. - Q2) What is a SQL injection? + - A: an attack that targets SQL database management systems by injecting SQL queries in a way that they are executed by the database. The goal is to manipulate the application's SQL query logic to gain unauthorized access to the database or retrieve, modify, or delete data. - Q3) What is cross-site scripting (XSS)? - + - A: a web security vulnerability that allows attackers to inject malicious scripts into web pages viewed by other users. It occurs when a web application allows user input to be included in a web page without proper validation or escaping. + - Stored XSS: +Malicious scripts are permanently stored on the target server, and every user who views the affected page is exposed to the attack. + - Reflected XSS: +The injected script is reflected off a web server, such as in a URL, and executed immediately when the victim opens a manipulated link. + - Q4) Why shouldn’t you roll your own crypto? - Q5) How are passwords stored on databases? @@ -549,21 +552,29 @@ ## Docker -- Q1) What is docker for? +- Q1) What is docker used for? +- A: Docker is a tool that allows the creation, deletion, running and storing containers. -- Q2) How to ask docker cli to show all containers& +- Q2) How to show all containers on your system using docker? + - A: `docker ps -a` -- Q3) How to delete image with container, who use this image? +- Q3) How to delete an image that is already being used by a container? + - A: `docker rmi -f` - Q4) What command help you to delete all old unused images? + - A: `docker image prune -f` - Q5) What is docker-compose? What is docker-compose.yml? - Q6) How to expose ports in docker-compose file? - Q7) How to reduce docker images? + - Using Multistage builds + - using minimal base images + - use as few layers as possible by reducing/combining Dockerfile commands - Q8) Where you can store docker images? + - A: using a container registry like AWS ECR - Q9) What is alpine and why we need it? @@ -573,38 +584,38 @@ ## kubernetes - Q1) What is Kubernetes? - -A: Kubernetes is an open-source container management tool that holds the responsibilities of container deployment, scaling & descaling of containers & load balancing. Being Google’s brainchild, it offers excellent community and works brilliantly with all the cloud providers. So, we can say that Kubernetes is not a containerization platform, but it is a multi-container management solution. + - A: Kubernetes is an open-source container management tool that holds the responsibilities of container deployment, scaling & descaling of containers & load balancing. Being Google’s brainchild, it offers excellent community and works brilliantly with all the cloud providers. So, we can say that Kubernetes is not a containerization platform, but it is a multi-container management solution. - Q2) How is Kubernetes related to Docker? - -A: It’s a known fact that Docker provides the lifecycle management of containers and a Docker image builds the runtime containers. But, since these individual containers have to communicate, Kubernetes is used. So, Docker builds the containers and these containers communicate with each other via Kubernetes. So, containers running on multiple hosts can be manually linked and orchestrated using Kubernetes. + - A: It’s a known fact that Docker provides the lifecycle management of containers and a Docker image builds the runtime containers. But, since these individual containers have to communicate, Kubernetes is used. So, Docker builds the containers and these containers communicate with each other via Kubernetes. So, containers running on multiple hosts can be manually linked and orchestrated using Kubernetes. --Q3) What is Container Orchestration? - -A: Consider a scenario where you have 5-6 microservices for an application. Now, these microservices are put in individual containers, but won’t be able to communicate without container orchestration. So, as orchestration means the amalgamation of all instruments playing together in harmony in music, similarly container orchestration means all the services in individual containers working together to fulfill the needs of a single server.\ +- Q3) What is Container Orchestration? + - A: Consider a scenario where you have 5-6 microservices for an application. Now, these microservices are put in individual containers, but won’t be able to communicate without container orchestration. So, as orchestration means the amalgamation of all instruments playing together in harmony in music, similarly container orchestration means all the services in individual containers working together to fulfill the needs of a single server.\ --Q4) What do you know about clusters in Kubernetes? - -A: The fundamental behind Kubernetes is that we can enforce the desired state management, by which I mean that we can feed the cluster services of a specific configuration, and it will be up to the cluster services to go out and run that configuration in the infrastructure. +- Q4) What do you know about clusters in Kubernetes? + - A: The fundamental behind Kubernetes is that we can enforce the desired state management, by which I mean that we can feed the cluster services of a specific configuration, and it will be up to the cluster services to go out and run that configuration in the infrastructure. So, as you can see in the above diagram, the deployment file will have all the configurations required to be fed into the cluster services. Now, the deployment file will be fed to the API and then it will be up to the cluster services to figure out how to schedule these pods in the environment and make sure that the right number of pods are running. So, the API which sits in front of services, the worker nodes & the Kubelet process that the nodes run, all together make up the Kubernetes Cluster. --Q5) How to do maintenance activity on the K8 node? - -A:Whenever there are security patches available the Kubernetes administrator has to perform the maintenance task to apply the security patch to the running container in order to prevent it from vulnerability, which is often an unavoidable part of the administration. The following two commands are useful to safely drain the K8s node. +- Q5) How to do maintenance activity on the K8s node? + - A: Whenever there are security patches available the Kubernetes administrator has to perform the maintenance task to apply the security patch to the running container in order to prevent it from vulnerability, which is often an unavoidable part of the administration. The following two commands are useful to safely drain the K8s node. -kubectl cordon -kubectl drain –ignore-daemon set +`kubectl cordon` +`kubectl drain –ignore-daemon set` The first command moves the node to maintenance mode or makes the node unavailable, followed by kubectl drain which will finally discard the pod from the node. After the drain command is a success you can perform maintenance. Note: If you wish to perform maintenance on a single pod following two commands can be issued in order: -kubectl get nodes: to list all the nodes -kubectl drain : drain a particular node +`kubectl get nodes` to list all the nodes +`kubectl drain ` drain a particular node --Q6) What is the role of Load Balance in Kubernetes? - -A: Load balancing is a way to distribute the incoming traffic into multiple backend servers, which is useful to ensure the application available to the users. +- Q6) What is the role of Load Balance in Kubernetes? + - A: Load balancing is a way to distribute the incoming traffic into multiple backend servers, which is useful to ensure the application available to the users. In Kubernetes, as shown in the above figure all the incoming traffic lands to a single IP address on the load balancer which is a way to expose your service to outside the internet which routes the incoming traffic to a particular pod (via service) using an algorithm known as round-robin. Even if any pod goes down load balances are notified so that the traffic is not routed to that particular unavailable node. Thus load balancers in Kubernetes are responsible for distributing a set of tasks (incoming traffic) to the pods --Q7) How to monitor the Kubernetes cluster? - -A: Prometheus is used for Kubernetes monitoring. The Prometheus ecosystem consists of multiple components. +- Q7) How to monitor the Kubernetes cluster? + - A: Prometheus is used for Kubernetes monitoring. The Prometheus ecosystem consists of multiple components. Mainly Prometheus server which scrapes and stores time-series data. Client libraries for instrumenting application code. @@ -612,18 +623,18 @@ Push gateway for supporting short-lived jobs. Special-purpose exporters for services like StatsD, HAProxy, Graphite, etc. An alert manager to handle alerts on various support tools --Q8) Can you explain the differences between Docker Swarm and Kubernetes? - -A: Below are the main difference between Kubernetes and Docker: +- Q8) Can you explain the differences between Docker Swarm and Kubernetes? + - A: Below are the main difference between Kubernetes and Docker: The installation procedure of the K8s is very complicated but if it is once installed then the cluster is robust. On the other hand, the Docker swarm installation process is very simple but the cluster is not at all robust. Kubernetes can process the auto-scaling but the Docker swarm cannot process the auto-scaling of the pods based on incoming load. Kubernetes is a full-fledged Framework. Since it maintains the cluster states more consistently so autoscaling is not as fast as Docker Swarm. --Q9) How can containers within a pod communicate with each other? - -A: Containers within a pod share networking space and can reach other on localhost. For instance, if you have two containers within a pod, a MySQL container running on port 3306, and a PHP container running on port 80, the PHP container could access the MySQL one through localhost:3306. +- Q9) How can containers within a pod communicate with each other? + - A: Containers within a pod share networking space and can reach other on localhost. For instance, if you have two containers within a pod, a MySQL container running on port 3306, and a PHP container running on port 80, the PHP container could access the MySQL one through localhost:3306. --Q10) Explain what is a Master Node and what component does it consist of? - -A: The master node is the most vital component responsible for Kubernetes architecture +- Q10) Explain what is a Master Node and what component does it consist of? + - A: The master node is the most vital component responsible for Kubernetes architecture It is the central controlling unit of Kubernetes and manages workload and communications across the clusters The master node has various components, each having its process. They are: -ETCD @@ -631,20 +642,20 @@ Kubernetes is a full-fledged Framework. Since it maintains the cluster states mo -Scheduler -API Server -ETCD (Cluster store): - -This component stores the configuration details and essential values - -It communicates with all other components to receive the commands and work in order to perform an action - -It also manages network rules and posts forwarding activity + - ETCD (Cluster store): + -This component stores the configuration details and essential values + -It communicates with all other components to receive the commands and work in order to perform an action + -It also manages network rules and posts forwarding activity + + - Controller Manager + -It is responsible for most of the controllers and performs a task + -It is a daemon which runs in a continuous loop and is responsible for collecting and sending information to API server + -The key controllers handle nodes, endpoints, etc. -Controller Manager --It is responsible for most of the controllers and performs a task --It is a daemon which runs in a continuous loop and is responsible for collecting and sending information to API server --The key controllers handle nodes, endpoints, etc. - -Scheduler: - -It is one of the key components of the master node associated with the distribution of workload - -The scheduler is responsible for workload utilization and allocating pod to a new node - -The scheduler should have an idea of the total resources available as well as resources allocated to existing workloads on each node + - Scheduler: + -It is one of the key components of the master node associated with the distribution of workload + -The scheduler is responsible for workload utilization and allocating pod to a new node + -The scheduler should have an idea of the total resources available as well as resources allocated to existing workloads on each node ********************** @@ -652,6 +663,45 @@ Scheduler: ## Architecture: +-1. Question: Explain the components of Kubernetes architecture and their roles. +Solution: +Kubernetes architecture consists of several key components: + +Master Node: Manages the cluster and its components. +API Server: Exposes the Kubernetes API. +Controller Manager: Ensures the desired state of the cluster. +Scheduler: Assigns nodes to newly created pods. +etcd: Consistent and highly-available key-value store used as Kubernetes' backing store. +Node (Minion) Nodes: Where containers are launched. +Kubelet: Ensures that containers are running in a Pod. +Kube Proxy: Maintains network rules for Pod communication. +Container Runtime: Software responsible for running containers. + +-2. Question: What is a Kubernetes Pod and how does it work in a cluster? +Solution: +A Pod is the smallest deployable unit in Kubernetes, representing a single instance of a running process in a cluster. Pods can contain multiple containers that share the same network namespace, allowing them to communicate with each other using localhost. Pods are scheduled to run on nodes and can be horizontally scaled by creating multiple replicas managed by Controllers like Deployments. + +-3. Question: How does Kubernetes ensure high availability and fault tolerance? +Solution: +Kubernetes achieves high availability through: + +Replication: Replicating applications across multiple nodes. +Self-healing: Automatically replaces failed containers or reschedules Pods. +Load Balancing: Distributes network traffic across multiple Pods. +Additionally, Kubernetes ensures fault tolerance through features like node monitoring, automatic scaling, and rolling updates, which allow applications to be updated without downtime. + +-4. Question: Explain the concept of Kubernetes Services and their types. +Solution: +Kubernetes Services provide stable endpoints for Pods. There are several types of Services: + +ClusterIP: Exposes the Service on a cluster-internal IP. +NodePort: Exposes the Service on each Node's IP at a static port. +LoadBalancer: Exposes the Service externally using a cloud provider's load balancer. +ExternalName: Maps the Service to the contents of the externalName field (e.g., a DNS name). + +-5. Question: What are Kubernetes Deployments, and how do they manage application updates? +Solution: +Deployments in Kubernetes describe an application’s life cycle, enabling declarative updates for Pods and ReplicaSets. They provide a way to describe an application’s desired state. When a Deployment’s Pod template (e.g., container image version) is updated, it triggers a rolling update, ensuring zero-downtime updates. Old Pods are replaced by new ones gradually, minimizing disruptions. ****************** diff --git a/Interview/devops interview que.md b/Interview/devops interview que.md new file mode 100644 index 00000000..09280d26 --- /dev/null +++ b/Interview/devops interview que.md @@ -0,0 +1,363 @@ + + +DevOps Interview Questions + +1. List the essential DevOps tools? +Answer: + +Git +Jenkins +Selenium +Puppet +Chef +Ansible +Nagios +Docker +Monit +ELK –Elasticsearch, Logstash, Kibana +Collected/Collect +Git(GitHub) + +2. Why Hybrid Clouds are so important? +Answer: Cloud Bursting: +Access capacity or specialized software is available in the public cloud and not in a private cloud +Examples: Virtual Amazon and Dynamo +Leverage the best of both worlds: +VCloud: +It is VM Ware cloud +It is Expensive +Enterprise quality +Open stack: +It has commodity servers and storage. +It is less reliable. +We can run Web servers on OpenStack. +The database is built on VCloud. + +3. Explain how can I vertically scale an Amazon instance? +Answer: This is one of the essential features of AWS and cloud virtualization. SpinUp a newly developed large instance where we pause that instance and detach the root Ebs volume from the server and discard. Later stop your live instance, detach its root volume connected. Note down the unique device ID and attach the same root volume to the new server. And restart it again. This results in a vertically scaled Amazon instance. + +Server group provides 80 and 443 from around the world, but only port 22 are vital among the jump box group. Database group allows port 3306 from the webserver group and port 22 from the jump box group. Addition of any machines to the webserver group can store in the database. No one can directly ssh to any of your boxes. + +4. What are the building blocks in cloud architecture? +Answer: + +Reference architecture +Technical architecture +Deployment operation architecture +Reference architecture +Technical architecture +Deployment operation architecture + +5. DevOps Toolchain? +Answer: DevOps Toolchain: + +Code: code development and review, source code management tools, code merging +Build: continuous integration tools, build status +Test: continuous testing tools that provide feedback on business risks +Package: artifact repository, application pre-deployment staging +Release: change management, release approvals, release automation +Configure: infrastructure configuration and management, Infrastructure as Code tools +Monitor: applications performance monitoring, end-user experience +Some categories are more essential in a DevOps toolchain than others; especially continuous integration (e.g. Jenkins) and infrastructure as code (e.g. Puppet). +Source: Wikipedia +We have the comprehensive DevOps Training Courses to give you a head start in your career. + +6. Mention some important features of Memcached? +Answer: Important features of Memcached includes: +CAS Tokens: A CAS token is attached to any object retrieved from cache. You can use that token to save your updated object. +Callbacks: It simplifies the code +Get Delayed: It reduces the delay time of your script which is waiting for results to come back from the server +Binary protocol: You can use binary protocol instead of ASCII with the newer client + +In binary: Previously, the client always used to do serialization of the value with complex data, but with Memcached, you can use the binary option. + +7. How is DevOps different from Agile / SDLC? +Answer: I would advise you to go with the below explanation: +Agile is a set of values and principles about how to produce i.e. develop software. Example: if you have some ideas and you want to turn those ideas into working software, you can use the Agile values and principles as a way to do that. But, that software might only be working on a developer’s laptop or in a test environment. You want a way to quickly, easily and repeatably move that software into production infrastructure, in a safe and simple way. To do that you need DevOps tools and techniques. + +You can summarize by saying Agile software development methodology focuses on the development of software but DevOps, on the other hand, is responsible for development as well as the deployment of the software in the safest and most reliable way possible. Here’s a blog that will give you more information on the evolution of DevOps. + +8. List the major difference between the Agile and DevOps? +Agile: +Agile is about software development +Devops: +DevOps is about software deployment and management. +DevOps does not replace Agile or Lean. It does this by killing waste, removing handovers, and streamlining deployments to allow faster and more continuous deployments to PRODUCTION. + +9. What are the core roles of DevOps Engineers in terms of development and Infrastructure? +Answer: + +The core job roles of DevOps Engineer +Application development +Code developing +Code coverage +Unit testing +Packaging +Deployment With infrastructure +Continuous Integration +Continuous Testing +Continuous Deployment +Provisioning +Configuration +Orchestration +Deployment + +10. What is Version control? +Answer: This is probably the easiest question you will face in the interview. My suggestion is to first give a definition of Version control. It is a system that records changes to a file or set of files over time so that you can recall specific versions later. Version control systems consist of a central shared repository where teammates can commit changes to a file or set of file. Then you can mention the uses of version control. + +Revert files back to a previous state. +Revert the entire project back to a previous state. +Compare changes over time. +See who last modified something that might be causing a problem. +Who introduced an issue and when. + +11. How would you prepare for migration? +Answer: This question evaluates your experience of real projects with all the awkwardness and complexity they bring. Include terms like cut-over, dress rehearsals, roll-back and roll-forward, DNS solutions, feature toggles, branch by abstraction, and automation in your answer. Developing greenfield systems with little or no existing technology in place is always easier than having to deal with legacy components. + +12. Explain Security management in terms of Cloud Computing? +Answer: Identity management access provides the authorization of application services. +Access control permission is given to the users to have complete controlling access of another user who is entering into the cloud environment. +Authentication and Authorization provide access to only the authorized and authenticated users only to access the data and applications. + +13. What are the anti-patterns of DevOps? +Answer: A pattern is a common usage usually followed. If a pattern commonly adopted by others does not work for your organization and you continue to blindly follow it, you are essentially adopting an anti-pattern. There are myths about DevOps. (oracle apex training online ) + +14. How do all these tools work together? +Answer: +Given below is a generic logical flow where everything gets automated for seamless delivery. However, this flow may vary from organization to organization as per the requirement. +Developers develop the code and this source code is managed by Version Control System tools like Git etc. +Developers send this code to the Git repository and any changes made in the code is committed to this Repository. +Jenkins pulls this code from the repository using the Git plugin and builds it using tools like Ant or Maven. +Configuration management tools like puppet deploys & provisions testing environment and then Jenkins releases this code on the test environment on which testing is done using tools like selenium. +Once the code is tested, Jenkins send it for deployment on the production server (even production server is provisioned & maintained by tools like a puppet). +After deployment, It is continuously monitored by tools like Nagios. +Docker containers provide a testing environment to test the build features. + +15. What is the difference between Active and Passive check in Nagios? +Answer: For this answer, first, point out the basic difference Active and Passive checks. The major difference between Active and Passive checks is that Active checks are initiated and performed by Nagios, while passive checks are performed by external applications. +If your interviewer is looking unconvinced with the above explanation then you can also mention some key features of both Active and Passive. + +16. Mention what are the key aspects or principle behind DevOps? +Answer: The key aspects or principle behind DevOps is + +Infrastructure as code +Continuous deployment +Automation +Monitoring +Security + +17. What DevOps tools have you worked with? +Answer: Software configuration management and build/release (version control) tools, including Apache Subversion, Mercurial, Fossil and others, help document change requests. Developers can more easily follow the company’s best practices and policies while software changes. +Continuous integration (CI) tools such as Rational Build Forge, Jenkins and Semaphore merge all developer copies of the working code into a central version. These tools are important for larger groups where teams of developers work on the same codebase simultaneously. QA experts use code analyzers to test software for bugs, security, and performance. If you’ve used HP’s Fortify Static Code Analyzer, talk about how it identified security vulnerabilities in coding languages. Also speak about tools like Gramma Tech’s Code Sonar that you used to identify memory leaks, buffer underruns and other defects for C/C++ and Java code. It is essential that you have an adequate command of the principal languages like Ruby, C#, .NET, Perl, Python, Java, PHP, Windows Power Shell, and are comfortable with the associated OS environments Windows, Linux, and Unix. + +18. What testing is necessary to ensure a new service is ready for production? +Answer: DevOps is all about continuous testing throughout the process, starting with development through to production. Everyone shares the testing responsibility. This ensures that developers are delivering code that doesn’t have any errors and is of high quality, and it also helps everyone leverage their time most effectively. ( oracle apex training online ) + +19. What is State Stalking in Nagios? +Answer: I will advise you to first give a small introduction on State Stalking. It is used for logging purposes. When Stalking is enabled for a particular host or service, Nagios will watch that host or service very carefully and log any changes it sees in the output of check results. +Depending on the discussion between you and interviewer you can also add, “It can be very helpful in later analysis of the log files. Under normal circumstances, the result of a host or service check is only logged if the host or service has changed state since it was last checked. + +20. What is meant by Continuous Integration? +Answer: +I will advise you to begin this answer by giving a small definition of Continuous Integration (CI). It is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. +I suggest that you explain how you have implemented it in your previous job. You can refer to the below-given example: +Developers check out code into their private workspaces. +When they are done with it they commit the changes to the shared repository (Version Control Repository). +The CI server monitors the repository and checks out changes when they occur. +The CI server then pulls these changes and builds the system and also runs unit and integration tests. +The CI server will now inform the team of the successful build. +If the build or tests fail, the CI server will alert the team. +The team will try to fix the issue at the earliest opportunity. +This process keeps on repeating. + +21. Why do you need a Continuous Integration of Dev & Testing? +Answer: For this answer, you should focus on the need for Continuous Integration. My suggestion would be to mention the below explanation in your answer: +Continuous Integration of Dev and Testing improves the quality of software and reduces the time taken to deliver it, by replacing the traditional practice of testing after completing all development. It allows the Dev team to easily detect and locate problems early because developers need to integrate code into a shared repository several times a day (more frequently). Each check-in is then automatically tested. ( data science training ) + +22. What is Git? +Answer: I will suggest that you attempt this question by first explaining the architecture of git as shown in the below diagram. You can refer to the explanation given below: + +Git is a Distributed Version Control system (DVCS). It can track changes to a file and allows you to revert back to any particular change. +Its distributed architecture provides many advantages over other Version Control Systems (VCS) like SVN one major advantage is that it does not rely on a central server to store all the versions of a project’s files. Instead, every developer “clones” a copy of a repository I have shown in the diagram below with “Local repository” and has the full history of the project on his hard drive so that when there is a server outage, all you need for recovery is one of your teammate’s local Git repository. + +There is a central cloud repository as well where developers can commit changes and share it with other teammates as you can see in the diagram where all collaborators are committing changes “Remote repository”. () + +23. Explain what is Memcached? +Answer: Memcached is a free and open-source, high-performance, distributed memory object caching system. The primary objective of Memcached is to enhance the response time for data that can otherwise be recovered or constructed from some other source or database. It is used to avoid the need to operate SQL database or another source repetitively to fetch data for the concurrent request. +Memcached can be used for + +Social Networking -> Profile Caching +Content Aggregation -> HTML/ Page Caching +Ad targeting -> Cookie/profile tracking +Relationship -> Session caching +E-commerce -> Session and HTML caching +Location-based services -> Database query scaling +Gaming and entertainment -> Session caching +Memcache helps in +Speed up application processes +It determines what to store and what not to +Reduce the number of retrieval requests to the database +Cuts down the I/O ( Input/Output) access (hard disk) +The drawback of Memcached is +It is not a persistent data store +Not a database +It is not an application-specific +It cannot cache large object + +24. What is Automation Testing? +Answer: Automation testing or Test Automation is a process of automating the manual process to test the application/system under test. Automation testing involves the use of separate testing tools which lets you create test scripts which can be executed repeatedly and doesn’t require any manual intervention. + +25. How to launch the Browser using WebDriver? +Answer: +The following syntax can be used to launch Browser: + +WebDriver driver = new FirefoxDriver(); +WebDriver driver = new ChromeDriver(); +WebDriver driver = new InternetExplorerDriver(); + +26. What are the goals of Configuration management processes? +Answer: The purpose of Configuration Management (CM) is to ensure the integrity of a product or system throughout its life-cycle by making the development or deployment process controllable and repeatable, therefore creating a higher quality product or system. The CM process allows orderly management of system information and system changes for purposes such as to: + +Revise capability, +Improve performance, +Reliability or maintainability, +Extend life, +Reduce cost, +Reduce risk and +Liability, or correct defects. + +27. What is Chef? +Answer: Begin this answer by defining Chef. It is a powerful automation platform that transforms infrastructure into code. A chef is a tool for which you write scripts that are used to automate processes. What processes? Pretty much anything related to IT. +Now you can explain the architecture of Chef, it consists of: + +Chef Server: The Chef Server is the central store of your infrastructure’s configuration data. The Chef Server stores the data necessary to configure your nodes and provides search, a powerful tool that allows you to dynamically drive node configuration based on data. + +Chef Node: A Node is any host that is configured using Chef-client. Chef-client runs on your nodes, contacting the Chef Server for the information necessary to configure the node. Since a Node is a machine that runs the Chef-client software, nodes are sometimes referred to as “clients”. + +Chef Workstation: A Chef Workstation is a host you use to modify your cookbooks and other configuration data. + +28. What is Continuous Testing? +Answer: I will advise you to follow the below-mentioned explanation: +Continuous Testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with the latest build. In this way, each build is tested continuously, allowing Development teams to get fast feedback so that they can prevent those problems from progressing to the next stage of Software delivery life-cycle. This dramatically speeds up a developer’s workflow as there’s no need to manually rebuild the project and re-run all tests after making changes. + +29. What are the success factors for Continuous Integration? +Answer: Here you have to mention the requirements for Continuous Integration. You could include the following points in your answer: + +Maintain a code repository +Automate the build +Make the build self-testing +Everyone commits to the baseline every day +Every commit (to baseline) should be built +Keep the build fast +Test in a clone of the production environment +Make it easy to get the latest deliverables +Everyone can see the results of the latest build +Automate deployment. + +30. What is Puppet? +Answer: I will advise you to first give a small definition of Puppet. It is a Configuration Management tool which is used to automate administration tasks. + +Now you should describe its architecture and how Puppet manages its Agents. Puppet has a Master-Slave architecture in which the Slave has to first send a Certificate signing request to Master and Master has to sign that Certificate in order to establish a secure connection between Puppet Master and Puppet Slave as shown in the diagram below. Puppet Slave sends a request to Puppet Master and Puppet Master then pushes configuration on Slave. + +31. What is the Puppet Manifests? +Answer: It is a very important question so make sure you go in the correct flow. According to me, you should first define Manifests. Every node (or Puppet Agent) has got its configuration details in Puppet Master, written in the native Puppet language. These details are written in the language which Puppet can understand and are termed as Manifests. They are composed of Puppet code and their filenames use the .pp extension. + +Now give an example. You can write a manifest in Puppet Master that creates a file and installs apache on all Puppet Agents (Slaves) connected to the Puppet Master. + +32. What testing is necessary to ensure that a new service is ready for production? +Answer: DevOps is all about continuous testing throughout the process, starting with development through to production. Everyone shares the testing responsibility. This ensures that developers are delivering code that doesn’t have any errors and is of high quality, and it also helps everyone leverage their time most effectively. + +33. Explain how Memcached should not be used? +Answer: +Memcached common misuse is to use it as a data store, and not as a cache Never use Memcached as the only source of the information you need to run your application. Data should always be available through another source as well. Memcached is just a key or value store and cannot perform query over the data or iterate over the contents to extract information. Memcached does not offer any form of security either in encryption or authentication + +34. Explain your understanding and expertise on both the software development side and the technical operations side of an organization you’ve worked for in the past? +Answer: DevOps engineers almost always work in a 24/7 business-critical online environment. I was adaptable to on-call duties and able to take up real-time, live-system responsibility. I successfully automated processes to support continuous software deployments. I have experience with public/private clouds, tools like Chef or Puppet, scripting and automation with tools like Python and PHP, and a background in AGILE. + +35. Explain whether it is possible to share a single instance of a Memcache between multiple projects? +Answer: Yes, it is possible to share a single instance of Memcache between multiple projects. Memcache is a memory store space, and you can run Memcache on one or more servers. You can also configure your client to speak to a particular set of instances. So, you can run two different Memcache processes on the same host and yet they are completely independent. Unless, if you have partitioned your data, then it becomes necessary to know from which instance to get the data from or to put into. + +36. Explain how you can minimize the Memcached server outages? +Answer: +When one instance fails, several of them goes down, this will put a larger load on the database server when lost data is reloaded as the client make a request. To avoid this, if your code has been written to minimize cache stampedes then it will leave a minimal impact +Another way is to bring up an instance of Memcached on a new machine using the lost machines IP address +Code is another option to minimize server outages as it gives you the liberty to change the Memcached server list with minimal work +Setting timeout value is another option that some Memcached clients implement for Memcached server outage. When your Memcached server goes down, the client will keep trying to send a request till the time-out limit is reached + +37. Is continuous delivery related to the dev-ops movement? How so? +Answer: Absolutely. In any organization where there is a separate operations department, and especially where there is an independent QA or testing function, we see that much of the pain in getting software delivered is caused by poor communication between these groups, exacerbated by an underlying cultural divide. Apps are measured according to throughput, and ops are measured according to stability. Testing gets it in the neck from both sides, and like release management, is often a political pawn in the fight between apps and ops. The point of dev-ops is that developers need to learn how to create high-quality, production-ready software, and ops need to learn that Agile techniques are actually powerful tools to enable effective, low-risk change management. Ultimately, we’re all trying to achieve the same thing – creating business value through software – but we need to get better at working together and focusing on this goal rather than trying to optimize our own domains. Unfortunately, many organizations aren’t set up in a way that rewards that kind of thinking. According to Forrester. + +38. What are the advantages of DevOps with respect to Technical and Business perspective? +Answer: +Technical benefits: + +Software delivery is continuous. +Reduces Complexity in problems. +Faster approach to resolve problems +Manpower is reduced. +Business benefits: + +The high rate of delivering its features +Stable operating environments +More time gained to Add values. +Enabling faster feature time to market + +39. Explain AWS? +Answer: AWS stands for Amazon Web Service which is a collection of remote computing services also known as cloud computing. This technology of cloud computing is also known as IaaS or Infrastructure as a Service. + +40. What is DevOps engineer’s duty with regards to Agile development? +Answer: DevOps engineer works very closely with Agile development teams to ensure they have an environment necessary to support functions such as automated testing, Continuous Integration, and Continuous Delivery. DevOps engineer must be in constant contact with the developers and make all required parts of the environment work seamlessly. + +41. What is the most important thing DevOps helps us achieve? +Answer: According to me, the most important thing that DevOps helps us achieve is to get the changes into production as quickly as possible while minimizing risks in software quality assurance and compliance. This is the primary objective of DevOps. Learn more in this DevOps tutorial blog. +However, you can add many other positive effects of DevOps. For example, clearer communication and better working relationships between teams i.e. both the Ops team and Dev team collaborate together to deliver good quality software which in turn leads to higher customer satisfaction. + +42. Which VCS tool you are comfortable with? +Answer: You can just mention the VCS tool that you have worked on like this: “I have worked on Git and one major advantage it has over other VCS tools like SVN is that it is a distributed version control system.” +Distributed VCS tools do not necessarily rely on a central server to store all the versions of a project’s files. Instead, every developer “clones” a copy of a repository and has the full history of the project on their own hard drive. + +43. Which Testing tool are you comfortable with and what are the benefits of that tool? +Answer: Here mention the testing tool that you have worked with and accordingly frame your answer. I have mentioned an example below: +I have worked on Selenium to ensure high quality and more frequent releases. + +Some advantages of Selenium are: + +It is free and open source +It has a large user base and helping communities +It has cross Browser compatibility (Firefox, Chrome, Internet Explorer, Safari, etc.) +It has great platform compatibility (Windows, Mac OS, Linux, etc.) +It supports multiple programming languages (Java, C#, Ruby, Python, Pearl, etc.) +It has fresh and regular repository developments +It supports distributed testing + +44. Why is Continuous monitoring necessary +Answer: I will suggest you go with the below-mentioned flow: +Continuous Monitoring allows timely identification of problems or weaknesses and quick corrective action that helps reduce expenses of an organization. Continuous monitoring provides a solution that addresses three operational disciplines known as: + +continuous audit +continuous controls monitoring +continuous transaction inspection +45. What is the one most important thing DevOps helps do? +Answer: The most important thing DevOps helps do is to get the changes into production as quickly as possible while minimizing risks in software quality assurance and compliance. That is the primary objective of DevOps. However, there are many other positive side-effects to DevOps. For example, clearer communication and better working relationships between teams which creates a less stressful working environment. + +46. Describe two-factor authentication? +Answer: Two-factor authentication is a security process in which the user provides two means of identification from separate categories of credentials; one is typically a physical token, + +47. Explain how can create a backup and copy files in Jenkins? +Answer: Answer to this question is really direct. To create a backup, all you need to do is to periodically back up your JENKINS_HOME directory. This contains all of your build jobs configurations, your slave node configurations, and your build history. To create a back-up of your Jenkins setup, just copy this directory. You can also copy a job directory to clone or replicate a job or rename the directory. + +48. What is Cloud Computing? +Answer: It is advance stage technology implemented so that the cloud provides the services globally as per the user requirements. It provides a method to access several servers worldwide. + +49. Explain with a use case where DevOps can be used in industry/ real-life? +Answer: There are many industries that are using DevOps so you can mention any of those use cases, you can also refer the below example: +Etsy is a peer-to-peer e-commerce website focused on handmade or vintage items and supplies, as well as unique factory-manufactured items. Etsy struggled with slow, painful site updates that frequently caused the site to go down. It affected sales for millions of Etsy’s users who sold goods through the online market place and risked driving them to the competitor. + +With the help of a new technical management team, Etsy transitioned from its waterfall model, which produced four-hour full-site deployments twice weekly, to a more agile approach. Today, it has a fully automated deployment pipeline, and its continuous delivery practices have reportedly resulted in more than 50 deployments a day with fewer disruptions. + +50. Explain how would you handle revision (version) control? +Answer: My approach to handling revision control would be to post the code on SourceForge or GitHub so everyone can view it. Also, I will post the checklist from the last revision to make sure that any unsolved issues are resolved. + +51. How would you make software deployable? +Answer: The ability to script the installation and reconfiguration of software systems is essential towards controlled and automated change. Although there is an increasing trend for new software to enable this, older systems and products suffer from the assumption that changes would be infrequent and minor, and so make automated changes difficult. As a professional who appreciates the need to expose configuration and settings in a manner accessible to automation, I will work with concepts like Inversion of Control (IoC) and Dependency Injection, scripted installation, test harnesses, separation of concerns, command-line tools, and infrastructure as code. + diff --git a/Interview/devops-notes.md b/Interview/devops-notes.md index f08132c9..aa262069 100644 --- a/Interview/devops-notes.md +++ b/Interview/devops-notes.md @@ -1,6 +1,6 @@ # Devops Notes -### Top 5 DevOps Tools You Should Know In 2019 +### Top 5 DevOps Tools You Should Know In 2023 #### Ansible @@ -52,4 +52,12 @@ - Guaranteed message delivery. - Push work into background processes, freeing your web server up to handle more users. - Scale the most frequently used parts of your system, without having to scale everything. - - Handling everything with ease even if it seems to be a huge crash. \ No newline at end of file + - Handling everything with ease even if it seems to be a huge crash. + +#### Git + +- Git is a widely adopted, distributed version control system (DVCS) that is fundamental to modern software development. It is considered an essential tool for source code management and collaborative software development. + + -Distributed Version Control: Git follows a distributed version control model, which means that every developer has a full copy of the entire repository on their local machine. + -Branching and Merging: Git excels in branching and merging capabilities. + -Lightweight and Fast: Git is known for its speed and efficiency. diff --git a/LINUX/bash-scripts-manage-system/README.md b/LINUX/bash-scripts-manage-system/README.md new file mode 100644 index 00000000..a92a4da8 --- /dev/null +++ b/LINUX/bash-scripts-manage-system/README.md @@ -0,0 +1,7 @@ +# How to Run + +``` +chmod +x system-management.sh +./system-management.sh + +``` \ No newline at end of file diff --git a/LINUX/bash-scripts-manage-system/system-management.sh b/LINUX/bash-scripts-manage-system/system-management.sh new file mode 100644 index 00000000..f2ff6363 --- /dev/null +++ b/LINUX/bash-scripts-manage-system/system-management.sh @@ -0,0 +1,183 @@ +#!/bin/bash +clear +print_style () { + + if [ "$2" == "info" ] ; then + COLOR="96m"; + elif [ "$2" == "success" ] ; then + COLOR="92m"; + elif [ "$2" == "warning" ] ; then + COLOR="93m"; + elif [ "$2" == "danger" ] ; then + COLOR="91m"; + else #default color + COLOR="0m"; + fi + + STARTCOLOR="\e[$COLOR"; + ENDCOLOR="\e[0m"; + + printf "$STARTCOLOR%b$ENDCOLOR" "$1"; + echo "" +} + + + +ManageProc() { +clear +print_style "This menu facilitates process management, making it easy for you to monitor and control processes." "info" +sleep 1 +PS3="Choose an item: If you don’t see anything, please press Enter." +select CHOICE in "Top 10 CPU% Usage" "Process More Than X CPU Usage(in %)" "Top 10 Memory% Usage" "Process More X Memory Usage(in %)" "Zombie Process" "Kill Process" "Exit";do + case $REPLY in + 1) + clear + print_style "Below are the top 10 applications that utilize the most CPU resources." "info" + sleep 0.5 + print_style "`ps -ax --sort=-%cpu --format pid,ppid,cmd,%cpu,%mem | head -n 10`" "warning"; + ;; + 2) + clear + read -p "Please input your CPU% Usage percentage like 10.0: " threshold + sleep 0.5 + print_style "`ps -ax --format pid,ppid,%cpu,%mem,cmd,user | awk -v threshold=$threshold '{ if ($3 > threshold ) print $0}'`" "warning"; + ;; + 3) + clear + print_style "`ps ax --sort=-%mem --format pid,ppid,%cpu,%mem,cmd,user | head -n 10`" "warning" + ;; + + 4) + clear + read -p "Please input your Memory% Usage percentage like: 10.0: " threshold + sleep 0.5 + print_style "`ps -ax --sort=-%mem --format pid,ppid,%cpu,%mem,cmd,user | awk -v threshold=$threshold '{if ($4 > threshold ) print $0}'`" "warning"; + ;; + + 5) + clear + echo This is Zombie Process, please kill them. + sleep 0.5 + print_style "`ps -ax --format pid,ppid,%cpu,%mem,cmd,stat | awk '$6 == "Z" { print $0 }'`" "danger"; + ;; + + 6) + read -p "Enter the PID of the process which you want to delete it: " ProcessID + echo "here is the process-id of this PID:" + print_style "`ps -ax --sort=-%mem --format pid,ppid,%cpu,%mem,cmd,user | awk -v pid=$ProcessID '{if ($1== pid ) print $0}'`" "info"; + sleep 0.4 + read -p "Enter the signal which you want to send it to the process: " signal + sleep 0.2 + read -p "Are you sure you want to send this signal to this PID? Y|N " answer + case "$answer" in + Y|y) + print_style "sending signal ($signal) to the PID ($ProcessID) in 5 second, you can press Ctrl+C to cancel it." "danger"; + sleep 5 + kill -$signal $ProcessID + if [[ $? -eq 0 ]] + then + echo "the pid: $PID is successfully killed." + fi + ;; + N|n) + echo "Nothing to do " + ;; + + *) + print_style "Bad Input" "danger"; + ;; + esac + ;; + 7) + clear + print_style "Back to the main Menu..." "info" + sleep 1 + print_style "Please press the Enter command" + break + ;; + + + + esac +done + +} + + + +ManagefileSys() { + +#!/bin/bash + +PS3="Choose an item: If you don’t see anything, please press Enter. " +select CHOICE in "List Hard disk" "fine a file with size" "find a file" "find a pattern in files in your system" "Quit" +do + case $REPLY in + 1) + lsblk -f + ;; + 2) + + read -p "Enter the size in M-Byte: " fileSize + find / -type f -size +${fileSize}M -exec ls -lah {} \; + ;; + 3) + read -p "What is the name of the file you are Looking for: " fileName + find / -name $fileName + ;; + 4) + read -p "Enter the pattern: " pattern + find / -type f -name "*" -exec grep -i $pattern {} \; + ;; + 5) + clear + print_style "Back to the main Menu..." "info" + sleep 1 + print_style "Please press the Enter command " + break + ;; + *) + echo "bad input!!!" + ;; + esac +done + + +} + + + + + + +PS3="What do you Want to do: " +select fruit in "Manage your Process." "Adding a iptables rule." "Managing your filesystem." "Quit" +do + + case $REPLY in + 1) + echo "Manage your Process. " + ManageProc + ;; + 2) + echo "Adding a iptables rule. " + ;; + 3) + echo "Managing your filesystem. " + ManagefileSys + ;; + + 4) + echo "Quitting " + sleep 1 + break + ;; + *) + echo "bad input!!!" + ;; + esac +done + + + + diff --git a/OS/os-concepts.md b/OS/os-concepts.md index 1c3e01b4..eb8fc321 100644 --- a/OS/os-concepts.md +++ b/OS/os-concepts.md @@ -53,6 +53,10 @@ There are 2 operating system design principles, which are: (1) Separation of mec The 3 types of Operating Systems commonly used nowadays are: (1) Monolithic OS, where the entire OS is working in kernel space and is alone in supervisor mode; (2) Modular OS, in which some part of the system core will be located in independent files called modules that can be added to the system at run time; and (3) Micro OS, where the kernel is broken down into separate processes, known as servers. Some of the servers run in kernel space and some run in user-space. +#### Resources: + +- [Operating System Tutorial](https://www.scaler.com/topics/operating-system/) + ************** ## Boot Process diff --git a/README.md b/README.md index bb2b0336..a87c70e2 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,7 @@ - [Going-from-it-to-devops](https://medium.com/better-programming/going-from-it-to-devops-996192520331) - [How to Become a DevOps Engineer in Six Months](https://spacelift.io/blog/how-to-become-devops-engineer) - [Who is DevOps? Is it Worth it to Become a DevOps Engineer?](https://spacelift.io/blog/who-is-devops-engineer) +- [Dynamic DevOps Roadmap: Experience-Driven DevOps](https://devopsroadmap.io/) ************************** diff --git a/Terminal/vim.md b/Terminal/vim.md index 035e9b84..2736bebd 100644 --- a/Terminal/vim.md +++ b/Terminal/vim.md @@ -1 +1,135 @@ -# Vim zero to one \ No newline at end of file +# Vim zero to one + +No matter if you're a DevOps engineer, developer, or Linux enthusiast, knowing Vim helps you navigate and edit files efficiently from the terminal—especially when working on remote servers where GUI editors aren’t available. + +This cheat sheet will help you get started and become productive with Vim 👇 + +--- + +## 🧠 What is Vim? + +Vim (Vi IMproved) is a highly configurable terminal-based text editor used for efficient text editing. It comes pre-installed on most UNIX systems. + +--- + +## 🚀 Opening and Exiting Vim + +| Command | Description | +|--------|-------------| +| `vim filename` | Open file in Vim | +| `:q` | Quit (only if no changes) | +| `:q!` | Quit without saving | +| `:w` | Save file | +| `:wq` or `ZZ` | Save and quit | +| `:x` | Save and quit (same as `:wq`) | + +--- + +## ✍️ Basic Modes + +| Mode | Description | +|------|-------------| +| `Normal` | Default mode (for navigation and commands) | +| `Insert` | Press `i`, `I`, `a`, `A`, `o`, or `O` to enter | +| `Visual` | Use `v`, `V`, or `Ctrl+v` to select text | +| `Command-line` | Use `:` to enter commands | + +Press `Esc` anytime to return to **Normal mode**. + +--- + +## 🔡 Insert Mode Shortcuts + +| Key | Description | +|-----|-------------| +| `i` | Insert before cursor | +| `I` | Insert at the beginning of the line | +| `a` | Insert after cursor | +| `A` | Insert at the end of the line | +| `o` | Open new line below | +| `O` | Open new line above | + +--- + +## 🎯 Navigation + +| Key | Description | +|-----|-------------| +| `h`, `j`, `k`, `l` | Move left, down, up, right | +| `w`, `W` | Jump by word | +| `b`, `B` | Jump back by word | +| `0` | Start of line | +| `^` | First non-blank character of line | +| `$` | End of line | +| `gg` | Go to beginning of file | +| `G` | Go to end of file | +| `:n` | Go to line number `n` | + +--- + +## 📋 Copy, Paste, Delete + +| Command | Action | +|---------|--------| +| `yy` | Yank (copy) line | +| `dd` | Delete line | +| `p` | Paste below | +| `P` | Paste above | +| `x` | Delete character | +| `u` | Undo | +| `Ctrl+r` | Redo | + +--- + +## 🔍 Searching + +| Command | Description | +|---------|-------------| +| `/word` | Search forward | +| `?word` | Search backward | +| `n` | Repeat search forward | +| `N` | Repeat search backward | + +--- + +## 🛠️ Replace + +| Command | Description | +|---------|-------------| +| `r` | Replace one character | +| `R` | Enter replace mode | +| `:%s/old/new/g` | Replace all in file | +| `:s/old/new/g` | Replace all in current line | + +--- + +## 📁 Working with Files + +| Command | Description | +|---------|-------------| +| `:e filename` | Open another file | +| `:ls` | List open buffers | +| `:b2` | Switch to buffer 2 | +| `:w newfile` | Save as new file | + +--- + +## 🧩 Plugins (Optional) + +Use a plugin manager like `vim-plug` to extend Vim: + +```vim +call plug#begin('~/.vim/plugged') +Plug 'preservim/nerdtree' " File explorer +Plug 'junegunn/fzf.vim' " Fuzzy finder +call plug#end() +``` + +--- + +## 📚 Resources + +- [Vim Official Website](https://www.vim.org) +- [Interactive Tutorial](https://www.openvim.com) +- [Cheat Sheet](https://vim.rtorr.com) +- `:help` in Vim to access built-in documentation