1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-09-09 00:30:40 +02:00

chore: update roadmap content json

This commit is contained in:
kamranahmedse
2025-09-03 00:12:26 +00:00
committed by github-actions[bot]
parent b1e60f1614
commit 869f328ad0
27 changed files with 7941 additions and 180 deletions

View File

@@ -557,12 +557,12 @@
"type": "article"
},
{
"title": "From Prompt to Production: Github Blog",
"title": "From Prompt to Production: GitHub Blog",
"url": "https://github.blog/ai-and-ml/github-copilot/from-prompt-to-production-building-a-landing-page-with-copilot-agent-mode/",
"type": "article"
},
{
"title": "Github Copilot",
"title": "GitHub Copilot",
"url": "https://github.com/features/copilot",
"type": "article"
}

View File

@@ -190,7 +190,7 @@
"description": "`Git` is a highly efficient and flexible distributed version control system that was created by **Linus Torvalds**, the creator of Linux. It allows multiple developers to work on a project concurrently, providing tools for non-linear development and tracking changes in any set of files. Git has a local repository with a complete history and version-tracking capabilities, allowing offline operations, unlike SVN. It ensures data integrity and provides strong support for non-linear development with features such as branching and merging.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Git and Github Roadmap",
"title": "Git and GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
@@ -211,7 +211,7 @@
"description": "**GitHub** is a cloud-based hosting service for managing software version control using Git. It provides a platform for enabling multiple developers to work together on the same project at the same time. With GitHub, codes can be stored publicly, allowing for collaboration with other developers or privately for individual projects. Key features of GitHub include code sharing, task management, and version control, among others. GitHub also offers functionalities such as bug tracking, feature requests, and task management for the project.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Git and Github Roadmap",
"title": "Git and GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
@@ -221,7 +221,7 @@
"type": "article"
},
{
"title": "Github Documentation",
"title": "GitHub Documentation",
"url": "https://docs.github.com/",
"type": "article"
}
@@ -245,15 +245,15 @@
},
"Q47BtQphp59NkkZoeNXmP": {
"title": "GitLab",
"description": "`Gitlab` is a web-based DevOps lifecycle tool which provides a Git-repository manager, along with continuous integration and deployment pipeline features, using an open-source license, developed by GitLab Inc. Users can manage and create their software projects and repositories, and collaborate on these projects with other members. `Gitlab` also allows users to view analytics and open issues of their project. It stands next to other version control tools like `GitHub` and `Bitbucket`, but comes with its own set of additional features and nuances. For Android development, `Gitlab` can be particularly useful owing to its continuous integration and deployment system which can automate large parts of the app testing and deployment.\n\nVisit the following resources to learn more:",
"description": "`GitLab` is a web-based DevOps lifecycle tool which provides a Git-repository manager, along with continuous integration and deployment pipeline features, using an open-source license, developed by GitLab Inc. Users can manage and create their software projects and repositories, and collaborate on these projects with other members. `GitLab` also allows users to view analytics and open issues of their project. It stands next to other version control tools like `GitHub` and `Bitbucket`, but comes with its own set of additional features and nuances. For Android development, `GitLab` can be particularly useful owing to its continuous integration and deployment system which can automate large parts of the app testing and deployment.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Gitlab",
"title": "GitLab",
"url": "https://about.gitlab.com/",
"type": "article"
},
{
"title": "Gitlab Documentation",
"title": "GitLab Documentation",
"url": "https://docs.gitlab.com/",
"type": "article"
}

View File

@@ -500,7 +500,7 @@
"type": "article"
},
{
"title": "What is Gitlab and Why Use It?",
"title": "What is GitLab and Why Use It?",
"url": "https://www.youtube.com/watch?v=bnF7f1zGpo4",
"type": "video"
}
@@ -2994,7 +2994,7 @@
"description": "Solr is an open-source, highly scalable search platform built on Apache Lucene, designed for full-text search, faceted search, and real-time indexing. It provides powerful features for indexing and querying large volumes of data with high performance and relevance. Solr supports complex queries, distributed searching, and advanced text analysis, including tokenization and stemming. It offers features such as faceted search, highlighting, and geographic search, and is commonly used for building search engines and data retrieval systems in various applications, from e-commerce to content management.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Solr on Github",
"title": "Solr on GitHub",
"url": "https://github.com/apache/solr",
"type": "opensource"
},

File diff suppressed because it is too large Load Diff

View File

@@ -1838,7 +1838,7 @@
"description": "GitHub is a provider of Internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Github Roadmap",
"title": "Visit Dedicated GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},

View File

@@ -394,7 +394,7 @@
"type": "article"
},
{
"title": "CI/CD Pipelines - Gitlab",
"title": "CI/CD Pipelines - GitLab",
"url": "https://docs.gitlab.com/ee/ci/pipelines/",
"type": "article"
},

View File

@@ -2727,7 +2727,7 @@
"description": "**memdump** is a tool or process used to capture the contents of a computer's physical memory (RAM) for analysis. This \"memory dump\" can be useful in digital forensics, debugging, or incident response to identify active processes, open files, network connections, or potentially malicious code running in memory. By analyzing a memory dump, security professionals can investigate malware, recover encryption keys, or gather evidence in case of a breach. Tools like `memdump` (Linux utility) or `DumpIt` (Windows) are commonly used to perform this process.\n\nLearn more from the following resources:",
"links": [
{
"title": "memdump - Github",
"title": "memdump - GitHub",
"url": "https://github.com/tchebb/memdump",
"type": "opensource"
},

File diff suppressed because it is too large Load Diff

View File

@@ -683,7 +683,7 @@
"type": "article"
},
{
"title": "Github vs Gitlab vs Bitbucket - Which Is Better?",
"title": "GitHub vs GitLab vs Bitbucket - Which Is Better?",
"url": "https://www.youtube.com/watch?v=FQGXIIqziQg",
"type": "video"
}
@@ -740,7 +740,7 @@
"type": "article"
},
{
"title": "Gitlab Explained: What is Gitlab and Why Use It?",
"title": "GitLab Explained: What is GitLab and Why Use It?",
"url": "https://www.youtube.com/watch?v=bnF7f1zGpo4",
"type": "video"
}
@@ -2014,6 +2014,11 @@
"title": "Ansible in 100 Seconds",
"url": "https://www.youtube.com/watch?v=xRMPKQweySE",
"type": "video"
},
{
"title": "Ansible Full Course to Zero to Hero",
"url": "https://www.youtube.com/watch?v=GROqwFFLl3s",
"type": "video"
}
]
},
@@ -2097,21 +2102,16 @@
},
"JnWVCS1HbAyfCJzGt-WOH": {
"title": "GitHub Actions",
"description": "GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform integrated directly into GitHub repositories. It allows developers to automate software workflows, including building, testing, and deploying applications. Actions are defined in YAML files and triggered by various GitHub events such as pushes, pull requests, or scheduled tasks. The platform provides a marketplace of pre-built actions and supports custom actions. GitHub Actions offers matrix builds, parallel job execution, and supports multiple operating systems and languages. It integrates seamlessly with GitHub's ecosystem, facilitating automated code review, issue tracking, and project management. This tool enables developers to implement DevOps practices efficiently within their GitHub workflow, enhancing productivity and code quality.\n\nVisit the following resources to learn more:",
"description": "GitHub Actions is GitHubs built-in automation platform that lets you run workflows directly from your repository, such as building, testing, and deploying code, triggered by events like pushes, pull requests, or schedules.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "GitHub Actions Certification Full Course to PASS the Exam",
"url": "https://www.youtube.com/watch?v=Tz7FsunBbfQ",
"type": "course"
},
{
"title": "GitHub Actions Documentation",
"url": "https://docs.github.com/en/actions",
"type": "article"
},
{
"title": "Explore top posts about GitHub",
"url": "https://app.daily.dev/tags/github?ref=roadmapsh",
"title": "GitHub Actions Guide",
"url": "https://octopus.com/devops/github-actions/",
"type": "article"
},
{
@@ -2141,8 +2141,8 @@
"type": "article"
},
{
"title": "Explore top posts about GitLab",
"url": "https://app.daily.dev/tags/gitlab?ref=roadmapsh",
"title": "GitLab CI/CD Pipeline Tutorial",
"url": "https://octopus.com/devops/gitlab/gitlab-cicd-tutorial/",
"type": "article"
},
{
@@ -2154,7 +2154,7 @@
},
"dUapFp3f0Rum-rf_Vk_b-": {
"title": "Jenkins",
"description": "Jenkins is an open-source automation server widely used for building, testing, and deploying software. It facilitates continuous integration and continuous delivery (CI/CD) by automating various stages of the development pipeline. Jenkins supports numerous plugins, allowing integration with virtually any tool in the software development lifecycle. It features a web interface for configuration and monitoring, supports distributed builds across multiple machines, and offers extensibility through a plugin architecture. Jenkins can be used to create complex workflows, automate repetitive tasks, and orchestrate job sequences. Its flexibility, broad community support, and ability to integrate with a wide range of tools make it a popular choice for implementing DevOps practices in organizations of all sizes.\n\nVisit the following resources to learn more:",
"description": "Jenkins is an open-source automation server used to build, test, and deploy software, offering a wide range of plugins to support continuous integration and continuous delivery (CI/CD).\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Jenkins Website",
@@ -2166,6 +2166,11 @@
"url": "https://www.jenkins.io/doc/pipeline/tour/getting-started/",
"type": "article"
},
{
"title": "Jenkins Tutorial",
"url": "https://octopus.com/devops/jenkins/jenkins-tutorial/",
"type": "article"
},
{
"title": "Explore top posts about Jenkins",
"url": "https://app.daily.dev/tags/jenkins?ref=roadmapsh",
@@ -2178,32 +2183,6 @@
}
]
},
"-pGF3soruWWxwE4LxE5Vk": {
"title": "Travis CI",
"description": "Travis CI is a cloud-based continuous integration (CI) service that automatically builds and tests code changes in GitHub repositories. It helps streamline the software development process by automatically running tests and building applications whenever code is pushed or a pull request is made. Travis CI supports a variety of programming languages and provides integration with other tools and services, offering features like build matrix configurations, deployment pipelines, and notifications. Its ease of setup and integration with GitHub makes it a popular choice for open-source and private projects looking to implement CI/CD practices.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Travis CI Documentation",
"url": "https://docs.travis-ci.com/",
"type": "article"
},
{
"title": "Travis CI Tutorial",
"url": "https://docs.travis-ci.com/user/tutorial/",
"type": "article"
},
{
"title": "Explore top posts about CI/CD",
"url": "https://app.daily.dev/tags/cicd?ref=roadmapsh",
"type": "article"
},
{
"title": "Travis CI Complete Tutorial for DevOps Engineers",
"url": "https://www.youtube.com/watch?v=xLWDOLhTH38",
"type": "video"
}
]
},
"1-JneOQeGhox-CKrdiquq": {
"title": "Circle CI",
"description": "CircleCI is a popular continuous integration and continuous delivery (CI/CD) platform that automates the build, test, and deployment processes of software projects. It supports a wide range of programming languages and integrates with various version control systems, primarily GitHub and Bitbucket. CircleCI uses a YAML configuration file to define pipelines, allowing developers to specify complex workflows, parallel job execution, and custom environments. It offers features like caching, artifact storage, and Docker layer caching to speed up builds. With its cloud-based and self-hosted options, CircleCI provides scalable solutions for projects of all sizes, helping teams improve code quality, accelerate release cycles, and streamline their development workflows.\n\nVisit the following resources to learn more:",
@@ -2226,23 +2205,18 @@
]
},
"TsXFx1wWikVBVoFUUDAMx": {
"title": "Drone",
"description": "Drone is an open-source continuous integration (CI) platform built on container technology. It automates building, testing, and deploying code using a simple, YAML-based pipeline configuration stored alongside the source code. Drone executes each step of the CI/CD process in isolated Docker containers, ensuring consistency and reproducibility. It supports multiple version control systems, offers parallel execution of pipeline steps, and provides plugins for integrating with various tools and services. Drone's lightweight, scalable architecture makes it suitable for projects of all sizes, from small teams to large enterprises. Its focus on simplicity and containerization aligns well with modern DevOps practices and microservices architectures.\n\nVisit the following resources to learn more:",
"title": "Octopus Deploy",
"description": "Octopus Deploy is a deployment automation tool that helps teams release applications reliably and consistently. It manages the deployment process, handles configuration, and automates releases across different environments like development, testing, and production, reducing manual errors and saving time.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Drone",
"url": "https://www.drone.io/",
"title": "Octopus Deploy",
"url": "https://octopus.com/",
"type": "article"
},
{
"title": "Drone Documentation",
"url": "https://docs.drone.io/",
"title": "Official Documentation",
"url": "https://octopus.com/docs",
"type": "article"
},
{
"title": "Drone CI Quickstart",
"url": "https://www.youtube.com/watch?v=Qf8EHRzAgHQ",
"type": "video"
}
]
},
@@ -2832,11 +2806,21 @@
},
"-INN1qTMLimrZgaSPCcHj": {
"title": "GitOps",
"description": "GitOps is a paradigm for managing infrastructure and application deployments using Git as the single source of truth. It extends DevOps practices by using Git repositories to store declarative descriptions of infrastructure and applications. Changes to the desired state are made through pull requests, which trigger automated processes to align the actual state with the desired state. GitOps relies on continuous deployment tools that automatically reconcile the live system with the desired state defined in Git. This approach provides benefits such as version control for infrastructure, improved auditability, easier rollbacks, and enhanced collaboration. GitOps is particularly well-suited for cloud-native applications and Kubernetes environments, offering a streamlined method for managing complex, distributed systems.\n\nVisit the following resources to learn more:",
"description": "GitOps is a way of managing infrastructure and application deployments by storing the desired state in a Git repository and using automation to apply changes. It treats Git as the single source of truth, so updates are made by committing changes to the repo, and automated tools reconcile the actual system state with whats in Git.\n\nVisit the following resources to learn more:",
"links": [
{
"title": " GitOps",
"url": "https://www.gitops.tech/",
"title": "What is GitOps",
"url": "https://octopus.com/devops/gitops/",
"type": "article"
},
{
"title": "GitOps Interactive Benefits Diagram",
"url": "https://octopus.com/devops/gitops/interactive-diagrams/",
"type": "article"
},
{
"title": "GitOps Maturity Model",
"url": "https://octopus.com/devops/gitops/gitops-maturity-model/",
"type": "article"
},
{
@@ -2853,7 +2837,7 @@
},
"i-DLwNXdCUUug6lfjkPSy": {
"title": "ArgoCD",
"description": "Argo CD is a continuous delivery tool for Kubernetes that is based on the GitOps methodology. It is used to automate the deployment and management of cloud-native applications by continuously synchronizing the desired application state with the actual application state in the production environment. In an Argo CD workflow, changes to the application are made by committing code or configuration changes to a Git repository. Argo CD monitors the repository and automatically deploys the changes to the production environment using a continuous delivery pipeline. The pipeline is triggered by changes to the Git repository and is responsible for building, testing, and deploying the changes to the production environment.Argo CD is designed to be a simple and efficient way to manage cloud-native applications, as it allows developers to make changes to the system using familiar tools and processes and it provides a clear and auditable history of all changes to the system. It is often used in conjunction with tools such as Helm to automate the deployment and management of cloud-native applications.\n\nVisit the following resources to learn more:",
"description": "Argo CD is a continuous delivery tool for Kubernetes that is based on the GitOps methodology. It is used to automate the deployment and management of cloud-native applications by continuously synchronizing the desired application state with the actual application state in the production environment. In an Argo CD workflow, changes to the application are made by committing code or configuration changes to a Git repository. Argo CD monitors the repository and automatically deploys the changes to the production environment using a continuous delivery pipeline. The pipeline is triggered by changes to the Git repository and is responsible for building, testing, and deploying the changes to the production environment. Argo CD is designed to be a simple and efficient way to manage cloud-native applications, as it allows developers to make changes to the system using familiar tools and processes and it provides a clear and auditable history of all changes to the system. It is often used in conjunction with tools such as Helm to automate the deployment and management of cloud-native applications.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Argo CD - Argo Project",

View File

@@ -407,7 +407,7 @@
"description": "Version control systems allow you to track changes to your codebase/files over time. They allow you to go back to some previous version of the codebase without any issues. Also, they help in collaborating with people working on the same code if youve ever collaborated with other people on a project, you might already know the frustration of copying and merging the changes from someone else into your codebase; version control systems allow you to get rid of this issue.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "What is Version Control? - Github",
"title": "What is Version Control? - GitHub",
"url": "https://github.com/resources/articles/software-development/what-is-version-control",
"type": "article"
},
@@ -474,12 +474,12 @@
"description": "Several popular repository hosting services, including GitHub, GitLab, Bitbucket, AWS CodeCommit, and Azure DevOps, support Flutter development by offering Git repository management, issue tracking, and collaboration tools. When selecting a service, developers should consider factors like project needs, scalability, cost, ease of use, integrations, and third-party tool support to ensure the chosen platform aligns with their specific requirements.\n\nLearn more from the following links:",
"links": [
{
"title": "Github",
"title": "GitHub",
"url": "https://github.com/",
"type": "article"
},
{
"title": "Gitlab",
"title": "GitLab",
"url": "https://gitlab.com/",
"type": "article"
},
@@ -1757,12 +1757,12 @@
"description": "GitHub Actions is a workflow automation tool provided by GitHub that can be used to automate various tasks in a Flutter mobile app development process. With GitHub Actions, developers can create custom workflows to automate tasks such as building the app, running tests, and deploying the app to various app stores. These workflows are defined as a series of actions in a YAML file, which can be committed to the repository.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Flutter - Github Actions",
"title": "Flutter - GitHub Actions",
"url": "https://github.com/nabilnalakath/flutter-githubaction",
"type": "opensource"
},
{
"title": "Github Actions",
"title": "GitHub Actions",
"url": "https://github.com/features/actions",
"type": "article"
},

View File

@@ -500,7 +500,7 @@
"description": "Repo hosting services, like GitHub, GitLab, and Bitbucket, are platforms for storing, managing, and collaborating on software projects using version control systems, mainly Git. They facilitate teamwork, code sharing, and project tracking in software development.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Git & Github Roadmap",
"title": "Visit Dedicated Git & GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
@@ -531,7 +531,7 @@
"description": "Version Control Systems (VCS) like Git, Subversion, and Mercurial track code changes, enabling multiple developers to collaborate by maintaining a history of modifications. Git is popular for its distributed model and branching. VCS features include branching for parallel work, merging changes, reverting to past states, remote repositories, pull requests, and code reviews. They also offer backup, recovery, conflict resolution, and tagging. VCS is crucial in modern software development for productivity, code quality, and collaboration.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Git & Github Roadmap",
"title": "Visit Dedicated Git & GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
@@ -557,7 +557,7 @@
"description": "Git is a tool for tracking code changes in software projects. It lets many developers work together by keeping a history of all changes. Git is great for branching (working on different features at once) and merging (combining changes). Everyone has a full copy of the project, so they can work offline. Git is fast, flexible, and the most popular version control system, especially for open-source projects.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Git & Github Roadmap",
"title": "Visit Dedicated Git & GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
@@ -619,7 +619,7 @@
"description": "GitHub is a popular website for hosting Git projects. It's a key place for open-source software and is used by developers and companies for both public and private code. Microsoft bought GitHub in 2018. It's a vital tool for modern software development, showing off projects, and contributing to open-source.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Git & Github Roadmap",
"title": "Visit Dedicated Git & GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},

View File

@@ -29,6 +29,11 @@
"url": "https://web.dev/learn/css/",
"type": "article"
},
{
"title": "CSS: Cascading Style Sheets | MDN",
"url": "https://developer.mozilla.org/en-US/docs/Web/CSS",
"type": "article"
},
{
"title": "Explore top posts about CSS",
"url": "https://app.daily.dev/tags/css?ref=roadmapsh",
@@ -128,7 +133,7 @@
"description": "Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Git & Github Roadmap",
"title": "Visit Dedicated Git & GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
@@ -741,17 +746,17 @@
"description": "GitHub Actions is a workflow automation tool provided by GitHub that can be used to automate various tasks in the app development process.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Git & Github Roadmap",
"title": "Visit Dedicated Git & GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
{
"title": "Github Actions",
"title": "GitHub Actions",
"url": "https://github.com/features/actions",
"type": "article"
},
{
"title": "Github Actions Documentation",
"title": "GitHub Actions Documentation",
"url": "https://docs.github.com/en/actions",
"type": "article"
},

View File

@@ -369,7 +369,7 @@
"description": "GitHub Essentials refers to the core features and functionalities that form the foundation of GitHub's version control and collaboration platform. These essentials include repositories for storing and managing code, branches for parallel development, pull requests for code review and merging, issues for tracking tasks and bugs, and collaborative tools like project boards and wikis. Understanding and mastering these fundamental components allows developers to effectively manage their projects, collaborate with team members, and contribute to open-source initiatives, making GitHub an indispensable tool in modern software development workflows.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Github Essentials - Microsoft",
"title": "GitHub Essentials - Microsoft",
"url": "https://learn.microsoft.com/en-us/contribute/content/git-github-fundamentals",
"type": "article"
},
@@ -676,7 +676,7 @@
"type": "article"
},
{
"title": "Using Github for Team collaboration",
"title": "Using GitHub for Team collaboration",
"url": "https://youtu.be/4nyIS58ORWw?si=yK5LCONNVm9OIUK5",
"type": "video"
}
@@ -703,7 +703,7 @@
"type": "article"
},
{
"title": "Walkthrough: Using Githubs “Saved Replies” to make life consistent and easy",
"title": "Walkthrough: Using GitHubs “Saved Replies” to make life consistent and easy",
"url": "https://prowe214.medium.com/walkthrough-using-githubs-saved-replies-to-make-life-consistent-and-easy-80f23efe6a0",
"type": "article"
}
@@ -1042,7 +1042,7 @@
"type": "article"
},
{
"title": "Github Team Docs",
"title": "GitHub Team Docs",
"url": "https://docs.github.com/organizations/organizing-members-into-teams/about-teams",
"type": "article"
}
@@ -1857,7 +1857,7 @@
"type": "article"
},
{
"title": "Efficient GitHub Operations: Simplifying Repository Management using Github CLI",
"title": "Efficient GitHub Operations: Simplifying Repository Management using GitHub CLI",
"url": "https://dev.to/yutee_okon/efficient-github-operations-simplifying-repository-management-using-github-cli-190l",
"type": "article"
},
@@ -1915,12 +1915,12 @@
"type": "course"
},
{
"title": "Github Actions",
"title": "GitHub Actions",
"url": "https://docs.github.com/en/actions",
"type": "article"
},
{
"title": "What are Github Actions",
"title": "What are GitHub Actions",
"url": "https://www.youtube.com/watch?v=URmeTqglS58",
"type": "video"
}
@@ -2255,7 +2255,7 @@
"description": "The GitHub API is a powerful tool that allows developers to interact with the GitHub platform programmatically. It provides access to various GitHub features, such as user data, repository information, and commit history, through both REST and GraphQL interfaces. The API supports authentication, implements rate limiting, and offers webhooks for real-time notifications, enabling developers to automate tasks, create custom integrations, and build applications that leverage GitHub's functionality.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Github API Docs",
"title": "GitHub API Docs",
"url": "https://docs.github.com/en/rest?apiVersion=2022-11-28",
"type": "article"
},
@@ -2436,7 +2436,7 @@
"description": "Deploying static websites on GitHub Pages involves uploading and serving website content that is generated beforehand, without dynamic functionality. This approach allows for fast deployment, low maintenance, and improved security.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "How to Deploy a Static Website for Free Using Github Pages",
"title": "How to Deploy a Static Website for Free Using GitHub Pages",
"url": "https://medium.com/flycode/how-to-deploy-a-static-website-for-free-using-github-pages-8eddc194853b",
"type": "article"
},

View File

@@ -2852,7 +2852,7 @@
"description": "GitLab is a comprehensive DevOps platform that provides source code management, CI/CD, and project management tools in a single application. It enables teams to manage their entire software development lifecycle, from planning and coding to testing, deployment, and monitoring. GitLab's built-in CI/CD capabilities allow developers to automate the build, test, and deployment processes using pipelines defined in YAML files. It integrates with various version control systems and supports Docker, Kubernetes, and other deployment environments. GitLab's features include issue tracking, code review, and merge request workflows, which enhance collaboration and code quality. The platform also offers robust security features, such as vulnerability management and dependency scanning, to ensure the safety and integrity of the codebase. GitLab can be hosted on-premises or used as a cloud-based service, providing flexibility and scalability for different project needs. Its all-in-one nature simplifies the development process, making it a popular choice for teams seeking to streamline their workflows and improve productivity.\n\nLearn more from the following resources:",
"links": [
{
"title": "Gitlab Website",
"title": "GitLab Website",
"url": "https://about.gitlab.com/",
"type": "article"
},

View File

@@ -699,6 +699,11 @@
"title": "Understanding Java Exceptions",
"url": "https://www.youtube.com/watch?v=W-N2ltgU-X4",
"type": "video"
},
{
"title": "Java Exception Handling",
"url": "https://www.youtube.com/watch?v=1XAfapkBQjk",
"type": "video"
}
]
},

View File

@@ -1,7 +1,7 @@
{
"y7KjVfSI6CAduyHd4mBFT": {
"title": "Introduction",
"description": "Kubernetes, also known as k8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It provides a way to abstract the underlying infrastructure and manage applications at scale, while also offering flexibility, portability, and a rich feature set. Kubernetes has become the de facto standard for container orchestration due to its widespread adoption, active community, and ability to handle complex, multi-tiered applications.\n\nLearn more from the following links:",
"description": "Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It provides a way to abstract the underlying infrastructure and manage applications at scale, while also offering flexibility, portability, and a rich feature set. Kubernetes has become the de facto standard for container orchestration due to its widespread adoption, active community, and ability to handle complex, multi-tiered applications.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Kubernetes Documentation",
@@ -27,7 +27,7 @@
},
"qLeEEwBvlGt1fP5Qcreah": {
"title": "Overview of Kubernetes",
"description": "Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.\n\nThe name Kubernetes originates from Greek, meaning helmsman or pilot. K8s as an abbreviation results from counting the eight letters between the \"K\" and the \"s\". Google open-sourced the Kubernetes project in 2014. Kubernetes combines over 15 years of Google's experience running production workloads at scale with best-of-breed ideas and practices from the community.\n\nLearn more from the following links:",
"description": "Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.\n\nThe name Kubernetes originates from Greek, meaning helmsman or pilot. K8s as an abbreviation results from counting the eight letters between the \"K\" and the \"s\". Google open-sourced the Kubernetes project in 2014. Kubernetes combines over 15 years of Google's experience running production workloads at scale with best-of-breed ideas and practices from the community.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Overview of Kubernetes",
@@ -58,7 +58,7 @@
},
"q-Ky0ietZGpyUcBQfh-BJ": {
"title": "Why use Kubernetes?",
"description": "Kubernetes (k8s) is needed because it provides a powerful and flexible platform for deploying and managing containerized applications at scale. It allows for easy scalability, high resilience, application portability, automation of many tasks, and standardization of the container platform. k8s also helps reduce complexity and workload for operations teams, enabling them to focus on more strategic initiatives.\n\nLearn more from the following resources:",
"description": "Kubernetes (k8s) is needed because it provides a powerful and flexible platform for deploying and managing containerized applications at scale. It allows for easy scalability, high resilience, application portability, automation of many tasks, and standardization of the container platform. k8s also helps reduce complexity and workload for operations teams, enabling them to focus on more strategic initiatives.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Why you need Kubernetes and what it can do",
@@ -79,7 +79,7 @@
},
"9oo2fxTM2_p0VYPBroqxa": {
"title": "Key Concepts and Terminologies",
"description": "Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. Here are some important concepts and terminologies in Kubernetes:\n\n* Cluster Architecture: The architectural concepts behind Kubernetes.\n* Containers: Technology for packaging an application along with its runtime dependencies.\n* Workloads: Understand Pods, the smallest deployable compute object in Kubernetes, and the higher-level abstractions that help you to run them.\n* Services, Load Balancing, and Networking: Concepts and resources behind networking in Kubernetes.\n* Storage: Ways to provide both long-term and temporary storage to Pods in your cluster.\n* Configuration: Resources that Kubernetes provides for configuring Pods.\n* Cluster Administration: Lower-level detail relevant to creating or administering a Kubernetes cluster.\n\nLearn more from the following links:",
"description": "Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. Here are some important concepts and terminologies in Kubernetes:\n\n* Cluster Architecture: The architectural concepts behind Kubernetes.\n* Containers: Technology for packaging an application along with its runtime dependencies.\n* Workloads: Understand Pods, the smallest deployable compute object in Kubernetes, and the higher-level abstractions that help you to run them.\n* Services, Load Balancing, and Networking: Concepts and resources behind networking in Kubernetes.\n* Storage: Ways to provide both long-term and temporary storage to Pods in your cluster.\n* Configuration: Resources that Kubernetes provides for configuring Pods.\n* Cluster Administration: Lower-level detail relevant to creating or administering a Kubernetes cluster.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Concepts of Kubernetes",
@@ -105,7 +105,7 @@
},
"3fzuXKH7az_LVnmnoXB1p": {
"title": "Kubernetes Alternatives",
"description": "Kubernetes is a popular open-source container orchestration tool that is widely used for managing and deploying containerized applications. While there are other container orchestration tools available, such as Docker Swarm, Mesos, and Nomad, there are some key differences between Kubernetes and these other tools and some of them are mentioned below:\n\n* Architecture: Kubernetes is designed as a modular system with many components that work together to provide container orchestration, such as the Kubernetes API server, kubelet, kube-proxy, and etcd.\n* Scalability: Kubernetes is designed to handle large-scale deployments and can scale applications up or down based on demand.\n* Flexibility: Kubernetes is highly configurable and can be customized to meet specific requirements, whereas other container orchestration tools may have more limited configuration options.\n* Portability: Kubernetes is designed to be cloud-agnostic and can run on any public or private cloud platform, as well as on-premises.\n* Community: Kubernetes has a large and active community of developers and users who contribute to its development and provide support.\n\nLearn more from the following links:",
"description": "Kubernetes is a popular open-source container orchestration tool that is widely used for managing and deploying containerized applications. While there are other container orchestration tools available, such as Docker Swarm, Mesos, and Nomad, there are some key differences between Kubernetes and these other tools and some of them are mentioned below:\n\n* Architecture: Kubernetes is designed as a modular system with many components that work together to provide container orchestration, such as the Kubernetes API server, kubelet, kube-proxy, and etcd.\n* Scalability: Kubernetes is designed to handle large-scale deployments and can scale applications up or down based on demand.\n* Flexibility: Kubernetes is highly configurable and can be customized to meet specific requirements, whereas other container orchestration tools may have more limited configuration options.\n* Portability: Kubernetes is designed to be cloud-agnostic and can run on any public or private cloud platform, as well as on-premises.\n* Community: Kubernetes has a large and active community of developers and users who contribute to its development and provide support.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Compare Apache Mesos vs. Kubernetes",
@@ -162,7 +162,7 @@
},
"3OpGaQhyNtk1n1MLp-tlb": {
"title": "Setting up Kubernetes",
"description": "To deploy your first application in Kubernetes, you need to create a deployment and service manifest in YAML files, apply the manifests to your Kubernetes cluster using the kubectl apply command, verify that your application's pods are running with kubectl get pods, and test the service with kubectl get services and accessing the service using a web browser or a tool like cURL. There are also various tools and platforms available that can simplify application deployment in Kubernetes, such as Helm charts and Kubernetes operators.\n\nLearn more from the following links:",
"description": "To deploy your first application in Kubernetes, you need to create a deployment and service manifest in YAML files, apply the manifests to your Kubernetes cluster using the kubectl apply command, verify that your application's pods are running with kubectl get pods, and test the service with kubectl get services and accessing the service using a web browser or a tool like cURL. There are also various tools and platforms available that can simplify application deployment in Kubernetes, such as Helm charts and Kubernetes operators.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Using kubectl to Create a Deployment",
@@ -193,7 +193,7 @@
},
"zrbSJa3k7a3TE0aYbWi9c": {
"title": "Deploying your First Application",
"description": "To deploy your first application in Kubernetes, you need to create a deployment and service manifest in YAML files, apply the manifests to your Kubernetes cluster using the kubectl apply command, verify that your application's pods are running with kubectl get pods, and test the service with kubectl get services and accessing the service using a web browser or a tool like cURL. There are also various tools and platforms available that can simplify application deployment in Kubernetes, such as Helm charts and Kubernetes operators.\n\nLearn more from the following links:",
"description": "To deploy your first application in Kubernetes, you need to create a deployment and service manifest in YAML files, apply the manifests to your Kubernetes cluster using the kubectl apply command, verify that your application's pods are running with kubectl get pods, and test the service with kubectl get services and accessing the service using a web browser or a tool like cURL. There are also various tools and platforms available that can simplify application deployment in Kubernetes, such as Helm charts and Kubernetes operators.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Using kubectl to Create a Deployment",
@@ -224,7 +224,7 @@
},
"qSatCdBTDXPu-IFWzUI99": {
"title": "Choosing a Managed Provider",
"description": "A managed provider is a cloud-based service that provides a managed Kubernetes environment. This means that the provider handles the underlying infrastructure, such as servers, storage, and networking, as well as the installation, configuration, and maintenance of the Kubernetes cluster.\n\nWhen choosing a managed Kubernetes provider, consider the cloud provider you are using, features and capabilities, pricing and billing, support, security and compliance, and the provider's reputation and reviews. By taking these factors into account, you can select a provider that meets your needs and offers the best value for your organization.\n\nLearn more from the following resources:",
"description": "A managed provider is a cloud-based service that provides a managed Kubernetes environment. This means that the provider handles the underlying infrastructure, such as servers, storage, and networking, as well as the installation, configuration, and maintenance of the Kubernetes cluster.\n\nWhen choosing a managed Kubernetes provider, consider the cloud provider you are using, features and capabilities, pricing and billing, support, security and compliance, and the provider's reputation and reviews. By taking these factors into account, you can select a provider that meets your needs and offers the best value for your organization.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Choosing a Managed Kubernetes Provider",
@@ -245,7 +245,7 @@
},
"YaIs8lquWIe1D7RCUBZmC": {
"title": "Installing a Local Cluster",
"description": "To install and configure a Kubernetes cluster on CentOS 7 or Ubuntu, you would need to setup the prerequisites and requirements for setting up a Kubernetes cluster after which you would be installing the Kubernetes components, including Kubeadm, Kubelet, and Kubectl and then you'll need to connect the master and the worker nodes. Once the connection is established you can check it by deploying application on the cluster.\n\nLearn more from the following links:",
"description": "To install and configure a Kubernetes cluster on CentOS 7 or Ubuntu, you would need to setup the prerequisites and requirements for setting up a Kubernetes cluster after which you would be installing the Kubernetes components, including Kubeadm, Kubelet, and Kubectl and then you'll need to connect the master and the worker nodes. Once the connection is established you can check it by deploying application on the cluster.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "How to Install a Kubernetes Cluster on CentOS 7",
@@ -287,7 +287,7 @@
},
"-d2PIXm0V_Iehe8cws8zK": {
"title": "Pods",
"description": "In Kubernetes, a pod is the smallest deployable unit that represents a single instance of a running process in a cluster. A pod can contain one or more containers that share the same network namespace and can access the same storage volumes. Pods are created and managed by Kubernetes, and they are scheduled to run on one of the nodes in the cluster. Pods provide a lightweight and flexible abstraction layer that enables Kubernetes to manage the deployment, scaling, and networking of containerized applications. Pods also facilitate the communication and data exchange between containers running in the same pod.\n\nLearn more from the following links:",
"description": "In Kubernetes, a pod is the smallest deployable unit that represents a single instance of a running process in a cluster. A pod can contain one or more containers that share the same network namespace and can access the same storage volumes. Pods are created and managed by Kubernetes, and they are scheduled to run on one of the nodes in the cluster. Pods provide a lightweight and flexible abstraction layer that enables Kubernetes to manage the deployment, scaling, and networking of containerized applications. Pods also facilitate the communication and data exchange between containers running in the same pod.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Pods Documentation",
@@ -313,7 +313,7 @@
},
"IF09l0-pryGpMbDt__ocr": {
"title": "ReplicaSets",
"description": "A ReplicaSet is a controller that ensures a specified number of replicas (identical copies) of a pod are running in a cluster at all times. ReplicaSets help to ensure high availability and scalability by automatically scaling the number of pod replicas up or down in response to changes in demand or hardware failures. They are defined by a YAML file that specifies the desired number of replicas, the pod template to use, and other settings. They are responsible for monitoring the status of pods and creating or deleting replicas as necessary to meet the desired state.\n\nLearn more from the following links:",
"description": "A ReplicaSet is a controller that ensures a specified number of replicas (identical copies) of a pod are running in a cluster at all times. ReplicaSets help to ensure high availability and scalability by automatically scaling the number of pod replicas up or down in response to changes in demand or hardware failures. They are defined by a YAML file that specifies the desired number of replicas, the pod template to use, and other settings. They are responsible for monitoring the status of pods and creating or deleting replicas as necessary to meet the desired state.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "ReplicaSet Documentation",
@@ -355,7 +355,7 @@
},
"AJiRBEaKU8qYEm0fqN389": {
"title": "StatefulSets",
"description": "It is a controller that manages the deployment and scaling of a set of stateful pods that require stable network identities and stable storage volumes. StatefulSets are used to run stateful applications such as databases, where the order and uniqueness of each pod is important. StatefulSets provide unique stable network identities and stable storage volumes for each pod, which allows stateful applications to maintain data consistency even when they are scaled up or down, or when nodes fail or are replaced. StatefulSets are defined by a YAML file that includes a pod template, a service to access the pods, and other settings.\n\nLearn more from the following links:",
"description": "It is a controller that manages the deployment and scaling of a set of stateful pods that require stable network identities and stable storage volumes. StatefulSets are used to run stateful applications such as databases, where the order and uniqueness of each pod is important. StatefulSets provide unique stable network identities and stable storage volumes for each pod, which allows stateful applications to maintain data consistency even when they are scaled up or down, or when nodes fail or are replaced. StatefulSets are defined by a YAML file that includes a pod template, a service to access the pods, and other settings.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "StatefulSets Documentation",
@@ -376,7 +376,7 @@
},
"r3fzAN5DzratAKnnT8hzb": {
"title": "Jobs",
"description": "a Job is a controller that manages the execution of a finite task or batch job. Jobs are used to run short-lived tasks, such as batch processing, data analysis, or backups, that run to completion and then terminate. Jobs create one or more pods to run the task, and they monitor the completion status of each pod. If a pod fails or terminates, the Job automatically creates a replacement pod to ensure that the task is completed successfully. Jobs are defined by a YAML file that includes a pod template, completion criteria, and other settings.\n\nLearn more from the following resources:",
"description": "a Job is a controller that manages the execution of a finite task or batch job. Jobs are used to run short-lived tasks, such as batch processing, data analysis, or backups, that run to completion and then terminate. Jobs create one or more pods to run the task, and they monitor the completion status of each pod. If a pod fails or terminates, the Job automatically creates a replacement pod to ensure that the task is completed successfully. Jobs are defined by a YAML file that includes a pod template, completion criteria, and other settings.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Jobs Documentation",
@@ -397,7 +397,7 @@
},
"aUJ_w2L8nxNq3DfAW97Gd": {
"title": "Services and Networking",
"description": "Networking is crucial for communication between pods and resources in a Kubernetes cluster. Each pod has a unique IP address and can communicate with other pods directly. Container networking interface (CNI) plugins are used to configure pod network interfaces and provide isolation between pods. Kubernetes also provides networking services such as load balancing, service discovery, and ingress, which enable external traffic to access pods and services. These services are implemented using Kubernetes objects such as Services, Ingress, and NetworkPolicies. Networking and pod-to-pod communication are essential for scalability, reliability, and flexibility in Kubernetes clusters.\n\nLearn more from the following resources:",
"description": "Networking is crucial for communication between pods and resources in a Kubernetes cluster. Each pod has a unique IP address and can communicate with other pods directly. Container networking interface (CNI) plugins are used to configure pod network interfaces and provide isolation between pods. Kubernetes also provides networking services such as load balancing, service discovery, and ingress, which enable external traffic to access pods and services. These services are implemented using Kubernetes objects such as Services, Ingress, and NetworkPolicies. Networking and pod-to-pod communication are essential for scalability, reliability, and flexibility in Kubernetes clusters.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Cluster Networking - Documentation",
@@ -423,7 +423,7 @@
},
"jUOlITLqnIvSu97I_3nBz": {
"title": "External Access to Services",
"description": "External access to Kubernetes (k8s) Services allows external clients to access pods and services running in the cluster. There are multiple ways to enable external access to Services in k8s, including NodePorts, LoadBalancers, and Ingress. Ingress is a Kubernetes object that provides a flexible way to manage external access, routing traffic to Services based on URL or host. External access is essential to ensure the scalability and reliability of Kubernetes deployments.\n\nLearn more from the following links:",
"description": "External access to Kubernetes (k8s) Services allows external clients to access pods and services running in the cluster. There are multiple ways to enable external access to Services in k8s, including NodePorts, LoadBalancers, and Ingress. Ingress is a Kubernetes object that provides a flexible way to manage external access, routing traffic to Services based on URL or host. External access is essential to ensure the scalability and reliability of Kubernetes deployments.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Ingress - Documentation",
@@ -444,7 +444,7 @@
},
"Qelo1YvAcUoX5PA-RYbNp": {
"title": "Load Balancing",
"description": "Load balancing in distributes network traffic across multiple pods or nodes using a Service object. A Service provides a stable network endpoint for a set of pods, allowing other pods or external clients to access them through a single IP address and DNS name. Kubernetes offers three types of load balancing algorithms for Services, which distribute traffic based on round-robin, least connections, or IP hash. Load balancing is an essential part of Kubernetes networking, providing efficient and reliable traffic distribution across a cluster.\n\nLearn more from the following resources:",
"description": "Load balancing in distributes network traffic across multiple pods or nodes using a Service object. A Service provides a stable network endpoint for a set of pods, allowing other pods or external clients to access them through a single IP address and DNS name. Kubernetes offers three types of load balancing algorithms for Services, which distribute traffic based on round-robin, least connections, or IP hash. Load balancing is an essential part of Kubernetes networking, providing efficient and reliable traffic distribution across a cluster.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Load Balancing - Documentation",
@@ -465,7 +465,7 @@
},
"44rhdieUCWsGFC_1__9kk": {
"title": "Networking & Pod-to-Pod Communication",
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nLearn more from the following resources:",
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Overview of Kubernetes",
@@ -486,7 +486,7 @@
},
"dj7Tb2XTX4kxRUYiTjlhM": {
"title": "Configuration Management",
"description": "Kubernetes secrets store sensitive data such as passwords, tokens, and API keys in a secure manner. They can be created manually or automatically, and stored in etcd. Secrets can be mounted as files or environment variables in a pod, and access can be managed using Kubernetes RBAC. However, they have some limitations, such as size and the inability to be updated once created. Understanding secrets is important for building secure applications in Kubernetes.\n\nLear more from the following links:",
"description": "Kubernetes secrets store sensitive data such as passwords, tokens, and API keys in a secure manner. They can be created manually or automatically, and stored in etcd. Secrets can be mounted as files or environment variables in a pod, and access can be managed using Kubernetes RBAC. However, they have some limitations, such as size and the inability to be updated once created. Understanding secrets is important for building secure applications in Kubernetes.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Documentation - Secrets",
@@ -507,7 +507,7 @@
},
"u24UlZKI86vaguj_VpMv1": {
"title": "Injecting Pod Config with ConfigMaps",
"description": "ConfigMaps are a way to store configuration data that can be used by applications running in the cluster. A Config Map is a key-value store that can hold configuration data such as database URLs, credentials, API keys, or any other application configuration data that can be used by the application.\n\nLearn more from the following links:",
"description": "ConfigMaps are a way to store configuration data that can be used by applications running in the cluster. A Config Map is a key-value store that can hold configuration data such as database URLs, credentials, API keys, or any other application configuration data that can be used by the application.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "ConfigMaps Documentation",
@@ -528,7 +528,7 @@
},
"S0CwGC2gMG-SqnLNldqBD": {
"title": "Using Secrets for Sensitive Data",
"description": "Kubernetes secrets store sensitive data such as passwords, tokens, and API keys in a secure manner. They can be created manually or automatically, and stored in etcd. Secrets can be mounted as files or environment variables in a pod, and access can be managed using Kubernetes RBAC. However, they have some limitations, such as size and the inability to be updated once created. Understanding secrets is important for building secure applications in Kubernetes.\n\nLear more from the following links:",
"description": "Kubernetes secrets store sensitive data such as passwords, tokens, and API keys in a secure manner. They can be created manually or automatically, and stored in etcd. Secrets can be mounted as files or environment variables in a pod, and access can be managed using Kubernetes RBAC. However, they have some limitations, such as size and the inability to be updated once created. Understanding secrets is important for building secure applications in Kubernetes.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Documentation - Secrets",
@@ -549,7 +549,7 @@
},
"eWKkdiBhD5x2sGYajmHEs": {
"title": "Resource Management",
"description": "Monitoring and optimizing resource usage in Kubernetes (k8s) is crucial for ensuring efficient and effective use of resources. To monitor resource usage, k8s provides a Metrics Server, and Prometheus can be integrated with k8s. The Container Runtime Interface (CRI) can also be used to monitor container-level resource usage data. To optimize resource usage, setting appropriate requests and limits, using Horizontal Pod Autoscaling (HPA), implementing pod affinity and anti-affinity rules, and controlling node selection can all help reduce resource contention and improve resource utilization. By monitoring and optimizing resource usage, k8s can ensure that applications run efficiently and resources are used effectively.\n\nLearn more from the following resources:",
"description": "Monitoring and optimizing resource usage in Kubernetes (k8s) is crucial for ensuring efficient and effective use of resources. To monitor resource usage, k8s provides a Metrics Server, and Prometheus can be integrated with k8s. The Container Runtime Interface (CRI) can also be used to monitor container-level resource usage data. To optimize resource usage, setting appropriate requests and limits, using Horizontal Pod Autoscaling (HPA), implementing pod affinity and anti-affinity rules, and controlling node selection can all help reduce resource contention and improve resource utilization. By monitoring and optimizing resource usage, k8s can ensure that applications run efficiently and resources are used effectively.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Tools for Monitoring Resources - Documentation",
@@ -575,7 +575,7 @@
},
"8RLR6gRjIyTn6GCugEfgk": {
"title": "Setting Resource Requests and Limits",
"description": "Resource requests and limits in Kubernetes specify the minimum and maximum amount of CPU and memory a container requires to run. Resource requests are used for scheduling containers on nodes with sufficient resources, while limits enforce resource quotas and prevent containers from consuming too much. These settings can be configured at the pod or container level using the resources field in YAML. It's important to set resource requests and limits correctly to ensure optimal resource utilization in your Kubernetes cluster.\n\nLearn more from the following resources:",
"description": "Resource requests and limits in Kubernetes specify the minimum and maximum amount of CPU and memory a container requires to run. Resource requests are used for scheduling containers on nodes with sufficient resources, while limits enforce resource quotas and prevent containers from consuming too much. These settings can be configured at the pod or container level using the resources field in YAML. It's important to set resource requests and limits correctly to ensure optimal resource utilization in your Kubernetes cluster.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Requests and limits - Documentation",
@@ -601,7 +601,7 @@
},
"OHz4QMmA3lqL_C7aWL8Ga": {
"title": "Assigning Quotas to Namespaces",
"description": "Assigning quotas to namespaces is a way to limit resource usage for specific groups of resources in Kubernetes. Quotas can be set for CPU, memory, and other resources, as well as for the number of objects in a namespace. This can help ensure fair resource distribution across different teams or projects within a cluster. Quotas can be applied to individual namespaces or across the entire cluster. Kubernetes allows for both hard quotas, which enforce strict resource limits, and soft quotas, which allow for overages up to a certain point. Quotas can be managed using the Kubernetes API or through YAML configuration files.\n\nLearn more from the following resources:",
"description": "Assigning quotas to namespaces is a way to limit resource usage for specific groups of resources in Kubernetes. Quotas can be set for CPU, memory, and other resources, as well as for the number of objects in a namespace. This can help ensure fair resource distribution across different teams or projects within a cluster. Quotas can be applied to individual namespaces or across the entire cluster. Kubernetes allows for both hard quotas, which enforce strict resource limits, and soft quotas, which allow for overages up to a certain point. Quotas can be managed using the Kubernetes API or through YAML configuration files.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Resource Quotas - Documentation",
@@ -622,7 +622,7 @@
},
"PP4ld_vvjpY3QltBBsXKD": {
"title": "Monitoring & Optimizing Resource Usage",
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nLearn more from the following resources:",
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Overview of Kubernetes",
@@ -643,7 +643,7 @@
},
"SG3wtV2rt9nmLEkgrp_zP": {
"title": "Security",
"description": "Kubernetes security scanners help identify vulnerabilities and potential security threats in container images before deployment. Popular options include Aqua Security, Twistlock, Sysdig Secure, Trivy, Anchore Engine, and OpenSCAP. These scanners offer a variety of features such as vulnerability scanning, compliance checks, and runtime protection for Kubernetes environments. By integrating these scanners into their pipelines, organizations can ensure the security and integrity of their Kubernetes deployments and minimize the risk of security breaches and data loss.\n\nLearn more from the following resources:",
"description": "Kubernetes security scanners help identify vulnerabilities and potential security threats in container images before deployment. Popular options include Aqua Security, Twistlock, Sysdig Secure, Trivy, Anchore Engine, and OpenSCAP. These scanners offer a variety of features such as vulnerability scanning, compliance checks, and runtime protection for Kubernetes environments. By integrating these scanners into their pipelines, organizations can ensure the security and integrity of their Kubernetes deployments and minimize the risk of security breaches and data loss.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "8+ open-source Kubernetes vulnerability scanners",
@@ -674,7 +674,7 @@
},
"jOq0WwLrq8tlmOgo64QDc": {
"title": "Role Based Access Control (RBAC)",
"description": "Role-Based Access Control (RBAC) is a method of controlling access to Kubernetes resources based on the roles assigned to users or groups. RBAC involves creating roles and binding them to users or groups to control access to Kubernetes resources. Roles are defined as a set of rules that determine what actions can be performed on specific resources. By assigning roles to users or groups, access to Kubernetes resources can be restricted or granted based on the permissions defined in the role. RBAC helps ensure the security and integrity of Kubernetes clusters by limiting access to authorized users and groups.\n\nLearn more from the following resources:",
"description": "Role-Based Access Control (RBAC) is a method of controlling access to Kubernetes resources based on the roles assigned to users or groups. RBAC involves creating roles and binding them to users or groups to control access to Kubernetes resources. Roles are defined as a set of rules that determine what actions can be performed on specific resources. By assigning roles to users or groups, access to Kubernetes resources can be restricted or granted based on the permissions defined in the role. RBAC helps ensure the security and integrity of Kubernetes clusters by limiting access to authorized users and groups.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Role Based Access Control Good Practices",
@@ -715,7 +715,7 @@
},
"s0gHg8CqwrSylpSPu8arA": {
"title": "Network Security",
"description": "Network security in Kubernetes involves securing network communication between different components within the cluster and with external networks. This can be achieved through various mechanisms such as Network Policies, Encryption, Authentication, Authorization, and Firewall rules. Network Policies provide fine-grained control over network traffic, while encryption ensures secure communication between pods, nodes, and external systems. Authentication and Authorization mechanisms prevent unauthorized access and provide secure communication between various components. Firewall rules help to protect the cluster against external attacks by limiting access to specific ports and protocols. Overall, network security in Kubernetes is critical to maintaining the confidentiality, integrity, and availability of the cluster.\n\nLearn more from the following links:",
"description": "Network security in Kubernetes involves securing network communication between different components within the cluster and with external networks. This can be achieved through various mechanisms such as Network Policies, Encryption, Authentication, Authorization, and Firewall rules. Network Policies provide fine-grained control over network traffic, while encryption ensures secure communication between pods, nodes, and external systems. Authentication and Authorization mechanisms prevent unauthorized access and provide secure communication between various components. Firewall rules help to protect the cluster against external attacks by limiting access to specific ports and protocols. Overall, network security in Kubernetes is critical to maintaining the confidentiality, integrity, and availability of the cluster.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Network Policies - Documentation",
@@ -751,7 +751,7 @@
},
"Nja7IFWcFTLsPcqbvRNm9": {
"title": "Container and Pod Security",
"description": "Kubernetes (k8s) can secure containers and pods through measures like using trusted container images, limiting container privileges, enforcing pod-level security policies, implementing network security measures, using access controls with RBAC, and managing sensitive information with Secrets and ConfigMaps. These practices help organizations reduce the risk of security incidents in their k8s clusters.\n\nLearn more from the following links:",
"description": "Kubernetes (k8s) can secure containers and pods through measures like using trusted container images, limiting container privileges, enforcing pod-level security policies, implementing network security measures, using access controls with RBAC, and managing sensitive information with Secrets and ConfigMaps. These practices help organizations reduce the risk of security incidents in their k8s clusters.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Configure a Security Context for a Pod or Container",
@@ -782,7 +782,7 @@
},
"i7qxaFhFHPfe3fGEgsbcE": {
"title": "Container and Pod Security",
"description": "Kubernetes (k8s) can secure containers and pods through measures like using trusted container images, limiting container privileges, enforcing pod-level security policies, implementing network security measures, using access controls with RBAC, and managing sensitive information with Secrets and ConfigMaps. These practices help organizations reduce the risk of security incidents in their k8s clusters.\n\nLearn more from the following links:",
"description": "Kubernetes (k8s) can secure containers and pods through measures like using trusted container images, limiting container privileges, enforcing pod-level security policies, implementing network security measures, using access controls with RBAC, and managing sensitive information with Secrets and ConfigMaps. These practices help organizations reduce the risk of security incidents in their k8s clusters.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Configure a Security Context for a Pod or Container",
@@ -813,7 +813,7 @@
},
"AgsQnQjyTLUFhFpRdcE13": {
"title": "Monitoring and Logging",
"description": "Observability in Kubernetes (k8s) refers to the ability to gain insight into the inner workings of your cluster, applications, and services running on top of it. An observability engine in k8s is a tool or platform that facilitates the collection, analysis, and visualization of data from various sources in your k8s environment. Some popular observability engines in k8s include Prometheus, Grafana, Jaeger, and Elastic Stack (ELK).\n\nLearn more from the following resources:",
"description": "Observability in Kubernetes (k8s) refers to the ability to gain insight into the inner workings of your cluster, applications, and services running on top of it. An observability engine in k8s is a tool or platform that facilitates the collection, analysis, and visualization of data from various sources in your k8s environment. Some popular observability engines in k8s include Prometheus, Grafana, Jaeger, and Elastic Stack (ELK).\n\nVisit the following resources to learn more:",
"links": [
{
"title": "K8sGPT - AI scanner for Kubernetes problems",
@@ -844,7 +844,7 @@
},
"-XxQtiLDAkXs7IFM_Ddw6": {
"title": "Logs",
"description": "Logs are generated by containerized applications running on nodes within the cluster. You can access these logs using the kubectl logs command followed by the name of the pod. By default, this command shows the logs from the most recent container in the pod, but you can specify a specific container within the pod by adding the container name to the command. Adding the -f flag to the command allows you to follow the logs in real-time. There are also third-party logging solutions available for Kubernetes, such as the EFK and Prometheus stacks, that provide more advanced logging capabilities and scalability for large-scale applications.\n\nLearn more from the following links:",
"description": "Logs are generated by containerized applications running on nodes within the cluster. You can access these logs using the kubectl logs command followed by the name of the pod. By default, this command shows the logs from the most recent container in the pod, but you can specify a specific container within the pod by adding the container name to the command. Adding the -f flag to the command allows you to follow the logs in real-time. There are also third-party logging solutions available for Kubernetes, such as the EFK and Prometheus stacks, that provide more advanced logging capabilities and scalability for large-scale applications.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "System Logs",
@@ -860,7 +860,7 @@
},
"nqUBHBFUYFdYqCKZvfXBR": {
"title": "Metrics",
"description": "Metrics to monitor include CPU usage, memory usage, network usage, disk usage, API server metrics, pod and container metrics, and cluster-level metrics. These metrics provide insights into the performance and health of the cluster, nodes, and applications running on the cluster. Kubernetes provides tools such as Prometheus, Grafana, and Kubernetes Dashboard for collecting and analyzing these metrics. By monitoring these metrics, administrators can identify performance issues and optimize the cluster for better performance and scalability.\n\nLearn more from the following resources:",
"description": "Metrics to monitor include CPU usage, memory usage, network usage, disk usage, API server metrics, pod and container metrics, and cluster-level metrics. These metrics provide insights into the performance and health of the cluster, nodes, and applications running on the cluster. Kubernetes provides tools such as Prometheus, Grafana, and Kubernetes Dashboard for collecting and analyzing these metrics. By monitoring these metrics, administrators can identify performance issues and optimize the cluster for better performance and scalability.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Node Metrics Data",
@@ -876,7 +876,7 @@
},
"ldYTEPt_hI4PXxr3tgJi5": {
"title": "Traces",
"description": "Tracing in Kubernetes involves monitoring the flow of requests through different components of the system, using tools such as Jaeger or Zipkin. OpenTracing and OpenCensus provide a consistent way of capturing traces across different components and applications running on the cluster. Tracing helps identify performance bottlenecks, debug issues, and optimize the system for better performance and scalability. By monitoring traces in Kubernetes, administrators can identify issues and take corrective actions to ensure efficient system performance.\n\nLearn more from the following resources:",
"description": "Tracing in Kubernetes involves monitoring the flow of requests through different components of the system, using tools such as Jaeger or Zipkin. OpenTracing and OpenCensus provide a consistent way of capturing traces across different components and applications running on the cluster. Tracing helps identify performance bottlenecks, debug issues, and optimize the system for better performance and scalability. By monitoring traces in Kubernetes, administrators can identify issues and take corrective actions to ensure efficient system performance.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Traces For Kubernetes System Components",
@@ -892,7 +892,7 @@
},
"pDjNsK5vI9FmKZbQm0lDP": {
"title": "Resource Health",
"description": "Resource health monitoring in Kubernetes involves monitoring the health and availability of resources such as pods, nodes, and containers. It helps administrators identify and troubleshoot issues that may affect the system's performance and availability using tools such as Kubernetes Dashboard, Prometheus, or Grafana. Resource health monitoring also helps ensure that the system is resilient to failures and can recover quickly from any disruptions. It is an important part of managing a Kubernetes cluster and ensures the reliability, availability, and scalability of the system.\n\nLearn more from the following resources:",
"description": "Resource health monitoring in Kubernetes involves monitoring the health and availability of resources such as pods, nodes, and containers. It helps administrators identify and troubleshoot issues that may affect the system's performance and availability using tools such as Kubernetes Dashboard, Prometheus, or Grafana. Resource health monitoring also helps ensure that the system is resilient to failures and can recover quickly from any disruptions. It is an important part of managing a Kubernetes cluster and ensures the reliability, availability, and scalability of the system.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Dashboards with Grafana and Prometheus",
@@ -908,7 +908,7 @@
},
"FANswgUhUb5Iuah2fni3L": {
"title": "Observability Engines",
"description": "Observability in Kubernetes (k8s) refers to the ability to gain insight into the inner workings of your cluster, applications, and services running on top of it. An observability engine in k8s is a tool or platform that facilitates the collection, analysis, and visualization of data from various sources in your k8s environment. Some popular observability engines in k8s include Prometheus, Grafana, Jaeger, and Elastic Stack (ELK).\n\nLearn more from the following resources:",
"description": "Observability in Kubernetes (k8s) refers to the ability to gain insight into the inner workings of your cluster, applications, and services running on top of it. An observability engine in k8s is a tool or platform that facilitates the collection, analysis, and visualization of data from various sources in your k8s environment. Some popular observability engines in k8s include Prometheus, Grafana, Jaeger, and Elastic Stack (ELK).\n\nVisit the following resources to learn more:",
"links": [
{
"title": "K8sGPT - AI scanner for Kubernetes problems",
@@ -939,7 +939,7 @@
},
"03mGA5AyL7mpF6y3EMW7A": {
"title": "Autoscaling",
"description": "Autoscaling in Kubernetes involves adjusting the resources allocated to a deployment or set of pods based on demand. It includes Horizontal Pod Autoscaling (HPA) and Vertical Pod Autoscaling (VPA), which increase or decrease replicas or adjust resource requests and limits, respectively. Autoscaling can be used with Cluster Autoscaling to efficiently allocate resources and ensure application responsiveness. It's useful for handling variable workloads or sudden spikes in traffic.\n\nLearn more from the following resources:",
"description": "Autoscaling in Kubernetes involves adjusting the resources allocated to a deployment or set of pods based on demand. It includes Horizontal Pod Autoscaling (HPA) and Vertical Pod Autoscaling (VPA), which increase or decrease replicas or adjust resource requests and limits, respectively. Autoscaling can be used with Cluster Autoscaling to efficiently allocate resources and ensure application responsiveness. It's useful for handling variable workloads or sudden spikes in traffic.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Autoscaling in Kubernetes",
@@ -955,7 +955,7 @@
},
"044IUUCgZP4oQ9UxUG2iy": {
"title": "Horizontal Pod Autoscaler (HPA)",
"description": "It is a feature in Kubernetes that automatically scales the number of replicas of a pod based on the current demand for the workload it is running. The HPA controller monitors the CPU utilization or other metrics of the pod and adjusts the number of replicas of the pod to meet the specified target. This helps to ensure that the workload can handle increases in traffic and demand without overloading the resources of the cluster.\n\nLearn more from the following resources:",
"description": "It is a feature in Kubernetes that automatically scales the number of replicas of a pod based on the current demand for the workload it is running. The HPA controller monitors the CPU utilization or other metrics of the pod and adjusts the number of replicas of the pod to meet the specified target. This helps to ensure that the workload can handle increases in traffic and demand without overloading the resources of the cluster.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Horizontal Pod Autoscaling - Documentation",
@@ -966,7 +966,7 @@
},
"c1KVczGRjh9bhMpbPP6sA": {
"title": "Vertical Pod Autoscaler (VPA)",
"description": "Vertical Pod Autoscaler (VPA) is a Kubernetes feature that automates the process of adjusting resource limits for containers in pods. Unlike Horizontal Pod Autoscaler (HPA), which scales the number of replicas of a pod, VPA scales the resources allocated to a pod's containers. It adjusts the resource requests and limits for each container based on its actual usage.\n\nLearn more from the following resources:",
"description": "Vertical Pod Autoscaler (VPA) is a Kubernetes feature that automates the process of adjusting resource limits for containers in pods. Unlike Horizontal Pod Autoscaler (HPA), which scales the number of replicas of a pod, VPA scales the resources allocated to a pod's containers. It adjusts the resource requests and limits for each container based on its actual usage.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "What is Kubernetes VPA?",
@@ -982,7 +982,7 @@
},
"RC5MoYtG2rom-d4FW5qD2": {
"title": "Cluster Autoscaling",
"description": "Autoscaling in Kubernetes involves adjusting the resources allocated to a deployment or set of pods based on demand. It includes Horizontal Pod Autoscaling (HPA) and Vertical Pod Autoscaling (VPA), which increase or decrease replicas or adjust resource requests and limits, respectively. Autoscaling can be used with Cluster Autoscaling to efficiently allocate resources and ensure application responsiveness. It's useful for handling variable workloads or sudden spikes in traffic.\n\nLearn more from the following resources:",
"description": "Autoscaling in Kubernetes involves adjusting the resources allocated to a deployment or set of pods based on demand. It includes Horizontal Pod Autoscaling (HPA) and Vertical Pod Autoscaling (VPA), which increase or decrease replicas or adjust resource requests and limits, respectively. Autoscaling can be used with Cluster Autoscaling to efficiently allocate resources and ensure application responsiveness. It's useful for handling variable workloads or sudden spikes in traffic.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Autoscaling in Kubernetes",
@@ -998,7 +998,7 @@
},
"xZDXM_8qb4VL15tNGG0ws": {
"title": "Scheduling",
"description": "Scheduling in Kubernetes refers to the process of assigning workloads to specific nodes in a cluster. The Kubernetes scheduler makes scheduling decisions based on factors such as resource availability, node suitability, and workload priorities. It balances workloads across the cluster to ensure efficient resource utilization and avoid overloading nodes. Scheduling takes into account factors such as geographic location, hardware requirements, and application-specific needs.\n\nLearn more from the following links:",
"description": "Scheduling in Kubernetes refers to the process of assigning workloads to specific nodes in a cluster. The Kubernetes scheduler makes scheduling decisions based on factors such as resource availability, node suitability, and workload priorities. It balances workloads across the cluster to ensure efficient resource utilization and avoid overloading nodes. Scheduling takes into account factors such as geographic location, hardware requirements, and application-specific needs.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Kubernetes Scheduler",
@@ -1014,7 +1014,7 @@
},
"70lTSIVh0AD6M8fMMuWzY": {
"title": "Basics",
"description": "Scheduling involves assigning pods to worker nodes based on criteria such as resource availability, labels, affinity/anti-affinity rules, taints, and tolerations. Pods are the smallest deployable units in k8s, consisting of one or more containers that share the same network namespace. The scheduler is responsible for assigning pods to nodes, while labels are used for matching. Affinity and anti-affinity rules dictate how pods are scheduled based on their relationships with other pods or nodes. QoS is used to prioritize pod scheduling based on their resource requirements.\n\nLearn more from the following resources:",
"description": "Scheduling involves assigning pods to worker nodes based on criteria such as resource availability, labels, affinity/anti-affinity rules, taints, and tolerations. Pods are the smallest deployable units in k8s, consisting of one or more containers that share the same network namespace. The scheduler is responsible for assigning pods to nodes, while labels are used for matching. Affinity and anti-affinity rules dictate how pods are scheduled based on their relationships with other pods or nodes. QoS is used to prioritize pod scheduling based on their resource requirements.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Kubernetes Scheduler",
@@ -1030,7 +1030,7 @@
},
"zXUsHAI1HFhcY2BFAcypv": {
"title": "Taints and Tolerations",
"description": "Taints and tolerations are used in Kubernetes to restrict or allow pods to be scheduled on certain nodes based on labels. A taint is a label that is applied to a node to indicate certain limitations or requirements. A toleration is a label applied to a pod to indicate that it can tolerate certain taints. When a node has a taint, only pods with the corresponding tolerations can be scheduled on that node. This feature is useful for various purposes, such as ensuring separation of critical and non-critical workloads, reserving nodes for certain tasks, and protecting nodes from overloading.\n\nLearn more from the following resources:",
"description": "Taints and tolerations are used in Kubernetes to restrict or allow pods to be scheduled on certain nodes based on labels. A taint is a label that is applied to a node to indicate certain limitations or requirements. A toleration is a label applied to a pod to indicate that it can tolerate certain taints. When a node has a taint, only pods with the corresponding tolerations can be scheduled on that node. This feature is useful for various purposes, such as ensuring separation of critical and non-critical workloads, reserving nodes for certain tasks, and protecting nodes from overloading.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Taints and Tolerations",
@@ -1046,7 +1046,7 @@
},
"CL0hKTcml40InmyVUXpY2": {
"title": "Topology Spread Constraints",
"description": "Topology spread constraints ensure even distribution of pods across a cluster's topology. Constraints define rules for the number of pods of a certain type that can run on a given level, such as nodes, zones, or racks. These constraints can be customized to fit specific needs, such as ensuring that critical workloads are spread across multiple zones. They help prevent single points of failure and improve application resilience by preventing resource overloading and promoting balanced distribution of workloads. Constraints can be added using the Kubernetes API or command line interface.\n\nLearn more from the following resources:",
"description": "Topology spread constraints ensure even distribution of pods across a cluster's topology. Constraints define rules for the number of pods of a certain type that can run on a given level, such as nodes, zones, or racks. These constraints can be customized to fit specific needs, such as ensuring that critical workloads are spread across multiple zones. They help prevent single points of failure and improve application resilience by preventing resource overloading and promoting balanced distribution of workloads. Constraints can be added using the Kubernetes API or command line interface.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Topology Spread Constraints",
@@ -1062,7 +1062,7 @@
},
"_Gva1eGcYqpmZNPyV03lt": {
"title": "Pod Priorities",
"description": "Pod priorities in Kubernetes determine the order in which pods are scheduled on nodes when there are competing demands for resources. Each pod is assigned a numeric priority value, with higher values indicating higher priority. The scheduler maximizes the total priority of scheduled pods while also considering node suitability, taints and tolerations, and affinity and anti-affinity rules. Priorities can be set manually or automatically based on business logic or application requirements. Priorities help ensure that critical workloads receive necessary resources and are scheduled first, while lower priority workloads are scheduled when resources become available.\n\nLearn more from the following resources:",
"description": "Pod priorities in Kubernetes determine the order in which pods are scheduled on nodes when there are competing demands for resources. Each pod is assigned a numeric priority value, with higher values indicating higher priority. The scheduler maximizes the total priority of scheduled pods while also considering node suitability, taints and tolerations, and affinity and anti-affinity rules. Priorities can be set manually or automatically based on business logic or application requirements. Priorities help ensure that critical workloads receive necessary resources and are scheduled first, while lower priority workloads are scheduled when resources become available.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Pod priority - Documentation",
@@ -1078,7 +1078,7 @@
},
"TRKzlDW2PQN9bWTyz3NWL": {
"title": "Evictions",
"description": "Evictions terminate or delete running pods from a node due to reasons like resource constraints or pod failures. They can be initiated by the system or administrators manually through the API. Evictions can be graceful, allowing pods to clean up resources, or forceful, immediately terminating them. Kubernetes provides preemption and pod disruption budgets to handle evictions effectively and minimize service disruptions. Evictions are necessary to manage and maintain Kubernetes clusters, and Kubernetes provides tools to handle them.\n\nLearn more from the following links:",
"description": "Evictions terminate or delete running pods from a node due to reasons like resource constraints or pod failures. They can be initiated by the system or administrators manually through the API. Evictions can be graceful, allowing pods to clean up resources, or forceful, immediately terminating them. Kubernetes provides preemption and pod disruption budgets to handle evictions effectively and minimize service disruptions. Evictions are necessary to manage and maintain Kubernetes clusters, and Kubernetes provides tools to handle them.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Node-pressure Eviction",
@@ -1094,7 +1094,7 @@
},
"URnYf9jMprFz-o26fbU2P": {
"title": "Storage and Volumes",
"description": "CSI (Container Storage Interface) drivers in Kubernetes provide a standard way for storage providers to integrate with Kubernetes and offer persistent storage for containerized applications. They operate as separate containerized processes and communicate with Kubernetes through a well-defined API. CSI drivers allow Kubernetes to access a wide range of storage systems and provide advanced features like snapshotting and cloning.\n\nLearn more from the following links:",
"description": "CSI (Container Storage Interface) drivers in Kubernetes provide a standard way for storage providers to integrate with Kubernetes and offer persistent storage for containerized applications. They operate as separate containerized processes and communicate with Kubernetes through a well-defined API. CSI drivers allow Kubernetes to access a wide range of storage systems and provide advanced features like snapshotting and cloning.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Container Storage Interface (CSI) for Kubernetes",
@@ -1110,7 +1110,7 @@
},
"55RV9psPCmcg8G_P_zQo9": {
"title": "CSI Drivers",
"description": "CSI (Container Storage Interface) drivers in Kubernetes provide a standard way for storage providers to integrate with Kubernetes and offer persistent storage for containerized applications. They operate as separate containerized processes and communicate with Kubernetes through a well-defined API. CSI drivers allow Kubernetes to access a wide range of storage systems and provide advanced features like snapshotting and cloning.\n\nLearn more from the following links:",
"description": "CSI (Container Storage Interface) drivers in Kubernetes provide a standard way for storage providers to integrate with Kubernetes and offer persistent storage for containerized applications. They operate as separate containerized processes and communicate with Kubernetes through a well-defined API. CSI drivers allow Kubernetes to access a wide range of storage systems and provide advanced features like snapshotting and cloning.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Container Storage Interface (CSI) for Kubernetes",
@@ -1126,7 +1126,7 @@
},
"LJUJ1NIUsajb1AUdvJjqW": {
"title": "Stateful Applications",
"description": "In Kubernetes, storage is a key component for stateful applications, as these applications require persistent data storage that is available across multiple replicas of the application. Kubernetes provides several options for storage, including volumes, persistent volumes, and storage classes.\n\nVolumes are the basic building blocks of storage in Kubernetes. A volume is a directory that is accessible to the container running the application, and it can be backed by different types of storage, such as a host directory, a cloud provider disk, or a network storage system. Volumes are created and managed by Kubernetes, and they can be mounted into containers as part of a pod definition.\n\nLearn more from the following resources:",
"description": "In Kubernetes, storage is a key component for stateful applications, as these applications require persistent data storage that is available across multiple replicas of the application. Kubernetes provides several options for storage, including volumes, persistent volumes, and storage classes.\n\nVolumes are the basic building blocks of storage in Kubernetes. A volume is a directory that is accessible to the container running the application, and it can be backed by different types of storage, such as a host directory, a cloud provider disk, or a network storage system. Volumes are created and managed by Kubernetes, and they can be mounted into containers as part of a pod definition.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Stateful Applications",
@@ -1142,7 +1142,7 @@
},
"0l0xpsabglvs_t6oAP-XG": {
"title": "Deployment Patterns",
"description": "It is a deployment strategy used in Kubernetes for deploying new versions of an application by running two identical production environments, one with the current version (blue) and the other with the new version (green). After the green environment is fully tested, traffic is routed from the blue environment to the green environment, providing a seamless transition for users and avoiding any downtime or disruption. In Kubernetes, Blue-Green Deployments can be implemented using a variety of tools and techniques, including deployment strategies, traffic routing, and load balancing.\n\nLearn more from the following resources:",
"description": "It is a deployment strategy used in Kubernetes for deploying new versions of an application by running two identical production environments, one with the current version (blue) and the other with the new version (green). After the green environment is fully tested, traffic is routed from the blue environment to the green environment, providing a seamless transition for users and avoiding any downtime or disruption. In Kubernetes, Blue-Green Deployments can be implemented using a variety of tools and techniques, including deployment strategies, traffic routing, and load balancing.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Create a Kubernetes Blue Green Deployment",
@@ -1158,28 +1158,23 @@
},
"Pymc9H-lRHVPy7M9eSaPD": {
"title": "CI / CD Integration",
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nLearn more from the following resources:",
"description": "In CI/CD pattern, the build, test, and deployment of applications to Kubernetes are fully automated. The CI pipeline creates the container image, runs tests, and pushes it to a registry. The CD pipeline then updates Kubernetes manifests or Helm charts and applies them to the cluster using tools like Argo CD, Flux, or kubectl. This makes deployments consistent, repeatable, and fast.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Overview of Kubernetes",
"url": "https://kubernetes.io/docs/concepts/overview/",
"title": "Kubernetes CI/CD Pipelines 8 Best Practices and Tools",
"url": "https://spacelift.io/blog/kubernetes-ci-cd",
"type": "article"
},
{
"title": "Kubernetes Explained in 100 Seconds",
"url": "https://www.youtube.com/watch?v=PziYflu8cB8",
"type": "video"
},
{
"title": "Kubernetes Tutorial for Beginners",
"url": "https://www.youtube.com/watch?v=X48VuDVv0do&t=1s",
"type": "video"
"title": "8 Kubernetes CI/CD tools every developer should know",
"url": "https://octopus.com/devops/kubernetes-deployments/kubernetes-ci-cd-tools-for-developers/",
"type": "article"
}
]
},
"dATdEyNWlpDNKjedCXLyb": {
"title": "GitOps",
"description": "GitOps is a set of practices for managing infrastructure and applications using Git repositories as the source of truth for declarative configuration. In Kubernetes, GitOps involves using Git as the single source of truth for both the desired and actual state of the system, automating deployment and management tasks, and often using it in conjunction with Continuous Delivery (CD) practices. The result is a more consistent, reliable, and automated approach to managing infrastructure and applications.\n\nLearn more from the following resources:",
"description": "GitOps is a set of practices for managing infrastructure and applications using Git repositories as the source of truth for declarative configuration. In Kubernetes, GitOps involves using Git as the single source of truth for both the desired and actual state of the system, automating deployment and management tasks, and often using it in conjunction with Continuous Delivery (CD) practices. The result is a more consistent, reliable, and automated approach to managing infrastructure and applications.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Using GitOps with a Kubernetes cluster",
@@ -1200,7 +1195,7 @@
},
"FAEFOhLdp7xrmctHFxiOM": {
"title": "Helm Charts",
"description": "Helm is a Kubernetes package manager that simplifies the deployment and management of complex applications through the use of reusable and versioned Helm charts. These charts are composed of YAML files that describe related sets of Kubernetes resources and can be customized using values files and templating with Go templates. Helm charts can also have dependencies on other charts and be stored in a centralized repository like Helm Hub for easy sharing and access. By utilizing Helm, teams can streamline application management and reduce duplication of effort.\n\nLearn more from the following resources:",
"description": "Helm is a Kubernetes package manager that simplifies the deployment and management of complex applications through the use of reusable and versioned Helm charts. These charts are composed of YAML files that describe related sets of Kubernetes resources and can be customized using values files and templating with Go templates. Helm charts can also have dependencies on other charts and be stored in a centralized repository like Helm Hub for easy sharing and access. By utilizing Helm, teams can streamline application management and reduce duplication of effort.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Helm Docs",
@@ -1221,7 +1216,7 @@
},
"88IGeC3dAopHLGtLozxdY": {
"title": "Canary Deployments",
"description": "Canary Deployments is a technique used in Kubernetes to gradually roll out new versions of an application by directing a small percentage of users or traffic to the new version while the majority continue using the old version. This approach allows for testing the new version under real-world conditions before fully committing to the update. In Kubernetes, canary deployments can be implemented using tools such as Istio, Linkerd, or Nginx, or by using built-in features like deployment strategies and traffic routing.\n\nLearn more from the following resources:",
"description": "Canary Deployments is a technique used in Kubernetes to gradually roll out new versions of an application by directing a small percentage of users or traffic to the new version while the majority continue using the old version. This approach allows for testing the new version under real-world conditions before fully committing to the update. In Kubernetes, canary deployments can be implemented using tools such as Istio, Linkerd, or Nginx, or by using built-in features like deployment strategies and traffic routing.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Canary deployment for K8s deployments",
@@ -1237,7 +1232,7 @@
},
"yMSXdwDO36CLtp2TBC7aB": {
"title": "Rolling Updates / Rollbacks",
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nLearn more from the following resources:",
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Overview of Kubernetes",
@@ -1284,7 +1279,7 @@
},
"L9rVPEEXFwisQOwT_LQ4v": {
"title": "Creating Custom Controllers",
"description": "Custom controllers in Kubernetes automate the management of custom resources that are not natively supported by Kubernetes. They are implemented as Kubernetes controllers that watch custom resources and react to changes in their state. Custom resources are created by extending the Kubernetes API with new resource types specific to an organization's needs. Custom controllers can be developed using various programming languages and frameworks, such as the Operator Framework. The Operator Framework provides tools and best practices for developing, testing, and deploying custom controllers.\n\nLearn more from the following resources:",
"description": "Custom controllers in Kubernetes automate the management of custom resources that are not natively supported by Kubernetes. They are implemented as Kubernetes controllers that watch custom resources and react to changes in their state. Custom resources are created by extending the Kubernetes API with new resource types specific to an organization's needs. Custom controllers can be developed using various programming languages and frameworks, such as the Operator Framework. The Operator Framework provides tools and best practices for developing, testing, and deploying custom controllers.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Custom Controllers",
@@ -1300,7 +1295,7 @@
},
"1-Nb8rCMJEZrYm20sEcRJ": {
"title": "Custom Schedulers and Extenders",
"description": "Custom Scheduler Extenders in Kubernetes enhance the scheduling capabilities of Kubernetes by allowing users to define their own scheduling logic based on custom metrics and constraints. They are implemented as custom Kubernetes controllers that run alongside the Kubernetes scheduler. Custom Scheduler Extenders can be used to implement scheduling policies specific to an organization's needs and can be developed using various programming languages. They intercept scheduling requests, add custom scheduling logic based on user-defined rules, and pass requests back to the Kubernetes scheduler.\n\nLearn more from the following resources:",
"description": "Custom Scheduler Extenders in Kubernetes enhance the scheduling capabilities of Kubernetes by allowing users to define their own scheduling logic based on custom metrics and constraints. They are implemented as custom Kubernetes controllers that run alongside the Kubernetes scheduler. Custom Scheduler Extenders can be used to implement scheduling policies specific to an organization's needs and can be developed using various programming languages. They intercept scheduling requests, add custom scheduling logic based on user-defined rules, and pass requests back to the Kubernetes scheduler.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Create a custom Kubernetes scheduler",
@@ -1316,7 +1311,7 @@
},
"9P7l-RBOkUxs3Z_UpKQO-": {
"title": "Custom Resource Definitions (CRDs)",
"description": "Custom Resource Definitions (CRDs) in Kubernetes extend the Kubernetes API by defining new resource types specific to an organization's needs. CRDs create custom resources that can manage a wide variety of resources, such as applications, databases, storage, and networking. They are defined using YAML or JSON manifests and can be created and managed using the Kubernetes API server. Once created, custom resources can be managed using Kubernetes controllers and integrated with other Kubernetes components. CRDs are a powerful tool for streamlining operations in Kubernetes and enabling organizations to manage resources in a more efficient and customized way.\n\nLearn more from the following resources:",
"description": "Custom Resource Definitions (CRDs) in Kubernetes extend the Kubernetes API by defining new resource types specific to an organization's needs. CRDs create custom resources that can manage a wide variety of resources, such as applications, databases, storage, and networking. They are defined using YAML or JSON manifests and can be created and managed using the Kubernetes API server. Once created, custom resources can be managed using Kubernetes controllers and integrated with other Kubernetes components. CRDs are a powerful tool for streamlining operations in Kubernetes and enabling organizations to manage resources in a more efficient and customized way.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Custom Resources - Documentation",
@@ -1332,7 +1327,7 @@
},
"UeJcKv3jhenjNzHM-0R86": {
"title": "Kubernetes Extensions and APIs",
"description": "Kubernetes (k8s) extensions and APIs are used to customize the behavior of Kubernetes and add new capabilities to the system. Kubernetes extensions, including Custom Resource Definitions (CRDs), Custom Controllers, Custom Scheduler Extenders, and Custom Metrics APIs, enhance Kubernetes functionality. Kubernetes APIs are used to manage resources in a Kubernetes cluster and interact with the system. Kubernetes extensions and APIs together provide a powerful toolkit for customizing and extending Kubernetes, enabling users to build custom components and APIs that streamline operations in Kubernetes.\n\nLearn more from the following resources:",
"description": "Kubernetes (k8s) extensions and APIs are used to customize the behavior of Kubernetes and add new capabilities to the system. Kubernetes extensions, including Custom Resource Definitions (CRDs), Custom Controllers, Custom Scheduler Extenders, and Custom Metrics APIs, enhance Kubernetes functionality. Kubernetes APIs are used to manage resources in a Kubernetes cluster and interact with the system. Kubernetes extensions and APIs together provide a powerful toolkit for customizing and extending Kubernetes, enabling users to build custom components and APIs that streamline operations in Kubernetes.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Extensions - Documentation",
@@ -1353,7 +1348,7 @@
},
"ZrVhYTw63aVVIFAEJDG5r": {
"title": "Should you manage your own Cluster?",
"description": "To create your own Kubernetes cluster, you need to choose a cloud provider or set up your own infrastructure, install Kubernetes on your infrastructure, configure your cluster by setting up networking, storage, and security, deploy your applications using Kubernetes manifests, and monitor and manage your cluster using tools like Kubernetes Dashboard, kubectl, and Prometheus. This process can be complex and time-consuming, but it gives you complete control over your infrastructure and allows for customization to meet your specific needs.\n\nLearn more from the following resources:",
"description": "To create your own Kubernetes cluster, you need to choose a cloud provider or set up your own infrastructure, install Kubernetes on your infrastructure, configure your cluster by setting up networking, storage, and security, deploy your applications using Kubernetes manifests, and monitor and manage your cluster using tools like Kubernetes Dashboard, kubectl, and Prometheus. This process can be complex and time-consuming, but it gives you complete control over your infrastructure and allows for customization to meet your specific needs.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Creating a cluster with kubeadm",
@@ -1369,7 +1364,7 @@
},
"M-iTb_7EWZIJ3JpdViICx": {
"title": "Installing the Control Plane",
"description": "The control plane's components make global decisions about the cluster (for example, scheduling), as well as detecting and responding to cluster events (for example, starting up a new pod when a deployment's replicas field is unsatisfied). Control plane components can be run on any machine in the cluster. However, for simplicity, set up scripts typically start all control plane components on the same machine, and do not run user containers on this machine.\n\nLearn more from the following resources:",
"description": "The control plane's components make global decisions about the cluster (for example, scheduling), as well as detecting and responding to cluster events (for example, starting up a new pod when a deployment's replicas field is unsatisfied). Control plane components can be run on any machine in the cluster. However, for simplicity, set up scripts typically start all control plane components on the same machine, and do not run user containers on this machine.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Initializing your control-plane node - Documentation",
@@ -1385,7 +1380,7 @@
},
"2cQKTxln3dIk5IjX2UZdM": {
"title": "Adding and Managing Worker Nodes",
"description": "Kubernetes runs your workload by placing containers into Pods to run on Nodes. A node may be a virtual or physical machine, depending on the cluster. Each node is managed by the control plane and contains the services necessary to run Pods.\n\nLearn more from the following resources:",
"description": "Kubernetes runs your workload by placing containers into Pods to run on Nodes. A node may be a virtual or physical machine, depending on the cluster. Each node is managed by the control plane and contains the services necessary to run Pods.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Node Management",
@@ -1401,7 +1396,7 @@
},
"auZgEQ6FC3nUjuyx0zANh": {
"title": "Multi-Cluster Management",
"description": "Multi-Cluster Management in Kubernetes (k8s) refers to the ability to manage multiple Kubernetes clusters using a single control plane. This approach allows administrators to centrally manage and orchestrate resources across multiple clusters, regardless of where they are located, without having to switch between multiple management consoles or tools.\n\nLearn more from the following resources:",
"description": "Multi-Cluster Management in Kubernetes (k8s) refers to the ability to manage multiple Kubernetes clusters using a single control plane. This approach allows administrators to centrally manage and orchestrate resources across multiple clusters, regardless of where they are located, without having to switch between multiple management consoles or tools.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Configure Access to Multiple Clusters - Documentation",
@@ -1417,7 +1412,7 @@
},
"9-oaTlzKmcxTfaRycz1w3": {
"title": "Blue-Green Deployments",
"description": "It is a deployment strategy used in Kubernetes for deploying new versions of an application by running two identical production environments, one with the current version (blue) and the other with the new version (green). After the green environment is fully tested, traffic is routed from the blue environment to the green environment, providing a seamless transition for users and avoiding any downtime or disruption. In Kubernetes, Blue-Green Deployments can be implemented using a variety of tools and techniques, including deployment strategies, traffic routing, and load balancing.\n\nLearn more from the following resources:",
"description": "It is a deployment strategy used in Kubernetes for deploying new versions of an application by running two identical production environments, one with the current version (blue) and the other with the new version (green). After the green environment is fully tested, traffic is routed from the blue environment to the green environment, providing a seamless transition for users and avoiding any downtime or disruption. In Kubernetes, Blue-Green Deployments can be implemented using a variety of tools and techniques, including deployment strategies, traffic routing, and load balancing.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Create a Kubernetes Blue Green Deployment",

View File

@@ -765,7 +765,7 @@
"description": "GREP (Global Regular Expression Print) is a powerful text search utility that finds and filters text matching specific patterns in files. It searches line by line and prints matching lines to the screen. Essential for shell scripts and command-line operations. Example: `grep \"pattern\" fileName` searches for specified patterns. Alternative: `ripgrep` offers enhanced performance and features.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Ripgrep: Github Repository",
"title": "Ripgrep: GitHub Repository",
"url": "https://github.com/BurntSushi/ripgrep",
"type": "opensource"
},

File diff suppressed because it is too large Load Diff

View File

@@ -583,7 +583,7 @@
"description": "CI/CD (Continuous Integration and Continuous Deployment/Delivery) is a software development practice that automates the process of integrating code changes, running tests, and deploying updates. Continuous Integration focuses on regularly merging code changes into a shared repository, followed by automated testing to ensure code quality. Continuous Deployment extends this by automatically releasing every validated change to production, while Continuous Delivery ensures code is always in a deployable state, but requires manual approval for production releases. CI/CD pipelines improve code reliability, reduce integration risks, and speed up the development lifecycle.\n\nLearn more from the following resources:",
"links": [
{
"title": "What is CI/CD? - Gitlab",
"title": "What is CI/CD? - GitLab",
"url": "https://about.gitlab.com/topics/ci-cd/",
"type": "article"
},

View File

@@ -0,0 +1,736 @@
{
"DlUQkDRPUcjC3pO4P5zCQ": {
"title": "JavaScript Basics",
"description": "JavaScript is a programming language that adds interactivity to websites. It allows you to create dynamic content, control multimedia, animate images, and much more. Think of HTML as the structure of a house, CSS as the interior design, and JavaScript as the electrical system that makes everything work. Understanding JavaScript is crucial before diving into Next.js because Next.js is built on top of React, which itself is a JavaScript library. Without a solid grasp of JavaScript fundamentals, you'll find it difficult to understand and effectively use Next.js's features and concepts.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated JavaScript Roadmap",
"url": "https://roadmap.sh/javascript",
"type": "article"
},
{
"title": "The Modern JavaScript Tutorial",
"url": "https://javascript.info/",
"type": "article"
},
{
"title": "Explore top posts about JavaScript",
"url": "https://app.daily.dev/tags/javascript?ref=roadmapsh",
"type": "article"
},
{
"title": "JavaScript Crash Course for Beginners",
"url": "https://youtu.be/hdI2bqOjy3c",
"type": "video"
}
]
},
"ey6z7Y4WtNtQJ50n-3j5P": {
"title": "Why React",
"description": "React is a JavaScript library designed for building user interfaces in a declarative and component-based way. It simplifies the process of creating dynamic and interactive web applications by allowing developers to break down complex UIs into smaller, reusable pieces. This approach promotes code maintainability, reusability, and efficiency, making it easier to manage and update large-scale frontend projects. React also works with tools like Redux for data management and React Native for mobile apps. It's popular because it's clear, fast, and has a big community.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated React Roadmap",
"url": "https://roadmap.sh/react",
"type": "article"
},
{
"title": "React Website",
"url": "https://react.dev",
"type": "article"
},
{
"title": "Explore top posts about React",
"url": "https://app.daily.dev/tags/react?ref=roadmapsh",
"type": "article"
},
{
"title": "Full Stack React Developer Course",
"url": "https://www.youtube.com/watch?v=Bvwq_S0n2pk",
"type": "video"
}
]
},
"rJ3vuI58Z9u2SKTDgpTE2": {
"title": "Why Frontend Frameworks",
"description": "Building modern web applications often involves managing complex user interfaces, handling data efficiently, and ensuring a smooth user experience. Frontend frameworks like React, Angular, and Next.js provide a structured approach to these challenges. They offer pre-built components, routing solutions, state management tools, and optimized build processes, allowing developers to focus on building features rather than reinventing the wheel. This leads to faster development cycles, more maintainable code, and ultimately, better web applications.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Web3 Frontend Everything You Need to Learn About Building Dapp Frontends",
"url": "https://moralis.io/web3-frontend-everything-you-need-to-learn-about-building-dapp-frontends/",
"type": "article"
},
{
"title": "xplore top posts about Frontend Development",
"url": "https://app.daily.dev/tags/frontend?ref=roadmapsh",
"type": "article"
},
{
"title": "hat is the difference between a framework and a library?",
"url": "https://www.youtube.com/watch?v=D_MO9vIRBcA",
"type": "video"
},
{
"title": "Which JS Framework is best?",
"url": "https://www.youtube.com/watch?v=cuHDQhDhvPE",
"type": "video"
}
]
},
"ch5gUr8xeCIp-i48N5qew": {
"title": "SPA vs SSR",
"description": "Single-Page Applications (SPAs) load a single HTML page and dynamically update the content using JavaScript, providing a fluid user experience without full page reloads. Server-Side Rendering (SSR), on the other hand, generates the HTML on the server for each request, sending a fully rendered page to the client. Next.js allows you to choose between these approaches or even combine them, offering flexibility in optimizing for performance, SEO, and user experience.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "How to build single-page applications with Next.js",
"url": "https://nextjs.org/docs/app/guides/single-page-applications",
"type": "article"
},
{
"title": "Server-side Rendering (SSR)",
"url": "https://nextjs.org/docs/pages/building-your-application/rendering/server-side-rendering",
"type": "article"
},
{
"title": "https://dev.to/santhanam87/ssr-vs-spa-showdown-choosing-the-right-rendering-approach-for-your-web-app-4439",
"url": "https://dev.to/santhanam87/ssr-vs-spa-showdown-choosing-the-right-rendering-approach-for-your-web-app-4439",
"type": "article"
}
]
},
"tcDL4OEbZplbjNa8VTLpv": {
"title": "Introduction",
"description": "Next.js is a React framework that enables functionalities like server-side rendering and static site generation for web applications. It provides a structure for organizing React components, handling routing, and optimizing performance. Next.js simplifies the process of building production-ready, full-stack web applications with React.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Next.js",
"url": "https://github.com/vercel/next.js",
"type": "opensource"
},
{
"title": "Next.js",
"url": "https://nextjs.org/",
"type": "article"
},
{
"title": "Next.js Docs",
"url": "https://nextjs.org/docs",
"type": "article"
},
{
"title": "Next.js Course",
"url": "https://nextjs.org/learn",
"type": "article"
}
]
},
"uJrOHRLmEBZtHJzAAusUe": {
"title": "Next.js",
"description": "Next.js is a React framework that provides extra features and optimizations on top of React for building web applications. It simplifies development by offering solutions for routing, data fetching, and server-side rendering out of the box. This allows developers to create performant and scalable web applications with less configuration.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Next.js",
"url": "https://nextjs.org/",
"type": "article"
},
{
"title": "Mastering Next.js",
"url": "https://masteringnextjs.com",
"type": "article"
},
{
"title": "Next.js Full course",
"url": "https://www.youtube.com/watch?v=9P8mASSREYM",
"type": "video"
},
{
"title": "Next.js for Beginners - freeCodeCamp",
"url": "https://youtu.be/KjY94sAKLlw?si=orve81YcY8Fm2vDy",
"type": "video"
}
]
},
"WxoMZRRiW9CGDZ9i80nbf": {
"title": "Why Next.js",
"description": "Next.js is a React framework that provides extra features and optimizations beyond what React offers on its own. When choosing a framework built on React, Next.js stands out because it simplifies development with features like built-in routing, server-side rendering, and static site generation. These capabilities improve performance, SEO, and the overall developer experience compared to building a React application from scratch or using other frameworks that require more manual configuration.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "10 Must-Know Benefits of Next.js for Modern Web Apps",
"url": "https://www.designrush.com/agency/web-development-companies/nextjs/trends/benefits-of-next-js",
"type": "article"
}
]
},
"G_33yo1MshQbiaGTPtTdK": {
"title": "Remix",
"description": "Remix is a full-stack web framework that focuses on web standards and modern web development patterns. It emphasizes server-side rendering and progressive enhancement to deliver fast and resilient user experiences. Remix leverages web fundamentals like HTTP caching and distributed systems to build robust and performant web applications.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Remix",
"url": "https://remix.run/",
"type": "article"
},
{
"title": "Remix Docs",
"url": "https://v2.remix.run/docs/",
"type": "article"
},
{
"title": "Remix Crash Course 2023",
"url": "https://www.youtube.com/watch?v=RBYJTop1e-g",
"type": "video"
}
]
},
"1ch6ZXZP46FP8q3HeCqWM": {
"title": "Rendering Strategies",
"description": "Rendering strategies determine how your application's user interface is generated and delivered to the user's browser. Different strategies offer varying trade-offs between performance, SEO, and data freshness. Choosing the right rendering strategy is crucial for optimizing your application based on its specific requirements and content characteristics.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Rendering Strategies",
"url": "https://nextjs.org/learn/seo/rendering-strategies",
"type": "article"
},
{
"title": "How to build single-page applications with Next.js",
"url": "https://nextjs.org/docs/app/guides/single-page-applications",
"type": "article"
},
{
"title": "Next.js Rendering Strategies: SSR, SSG, and ISR Compared",
"url": "https://hybridheroes.de/blog/2023-05-31-next-js-rendering-strategies/",
"type": "article"
}
]
},
"3tTTKj6PWsRoRRXH5tXxS": {
"title": "create-next-app",
"description": "The create-next-app CLI allow you to create a new Next.js application using the default template or an example from a public GitHub repository. It is the easiest way to get started with Next.js.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "create-next-app",
"url": "https://nextjs.org/docs/app/api-reference/cli/create-next-app",
"type": "article"
},
{
"title": "Create Next App | Create Next Js Project",
"url": "https://www.youtube.com/watch?v=o1cRvsrHbfo",
"type": "video"
}
]
},
"b2LcPc5MfoyF0W9Y0aGpR": {
"title": "Loading and Streaming",
"description": "",
"links": []
},
"km7dLVpl76c5EfWvhhbRh": {
"title": "Types of routers",
"description": "Next.js has two different routers:\n\n* **App Router**: The newer router that supports new React features like Server Components.\n* **Pages Router**: The original router, still supported and being improved.\n\nBefore Next.js 13, the Pages Router was the main way to create routes in Next.js. It's still supported in newer versions of Next.js, but Next.js recommends migrating to the new App Router to leverage React's latest features.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Next.js Docs",
"url": "https://nextjs.org/docs#app-router-and-pages-router",
"type": "article"
},
{
"title": "Next.js App vs. Pages Router - Which One is Better?",
"url": "https://www.youtube.com/watch?v=EYDOXzpTRvw",
"type": "video"
}
]
},
"pxltXOWgpbo95V4u2ryX7": {
"title": "Error States",
"description": "",
"links": []
},
"e_rwwlKsvyv9OMDDBXo_N": {
"title": "Why use App Router?",
"description": "",
"links": []
},
"09uWsmXOXU0Ox7F3qsjRx": {
"title": "Routing Patterns",
"description": "",
"links": []
},
"oFhmV5Xv0KJ-SjeYVZBpi": {
"title": "Routing Terminology",
"description": "",
"links": []
},
"4H8aOVYsZiPbTQUYcZjb_": {
"title": "API Endpoints",
"description": "",
"links": []
},
"IlWFMh44HtHDnIr7nqwtI": {
"title": "Rendering Pages",
"description": "",
"links": []
},
"9egFwmy-o7Fx-M7FcPXXy": {
"title": "Structuring Routes",
"description": "",
"links": []
},
"zJXCS7U9NUsn7cuEx3YMs": {
"title": "Layouts and Templates",
"description": "",
"links": []
},
"xRZqBd5-QO8zh7ksHlRjK": {
"title": "Next.js Routing Basics",
"description": "Routing is the process of defining how an application responds to client requests to specific endpoints (URIs). In Next.js, routing is primarily file-system based. This means that the structure of your `pages` directory directly corresponds to the routes of your application. Each file in the `pages` directory becomes a route based on its filename. For example, a file named `about.js` in the `pages` directory will be accessible at the `/about` route.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "https://nextjs.org/docs/pages/building-your-application/routing",
"url": "https://nextjs.org/docs/pages/building-your-application/routing",
"type": "article"
},
{
"title": "Defining Routes",
"url": "https://nextjs.org/docs/14/app/building-your-application/routing/defining-routes",
"type": "article"
},
{
"title": "Next.js 15 Routing Explained For Beginners",
"url": "https://www.youtube.com/watch?v=qivq_vDYFGk",
"type": "video"
}
]
},
"jYSa7UMmjb51pGAyU4PoB": {
"title": "Client",
"description": "",
"links": []
},
"QDxYlIyFOuGUIy_ZovHs0": {
"title": "Server",
"description": "",
"links": []
},
"UZCMVpg5YIDxu-AMah3S-": {
"title": "Memoization in Fetch",
"description": "",
"links": []
},
"N5siOJO3dc9vJUTpbdm04": {
"title": "Revalidating Cached Data",
"description": "",
"links": []
},
"crBlqiS78n7yz28cT2GGz": {
"title": "React Cache",
"description": "",
"links": []
},
"qMYuXOlr_c-6oQKVOdGci": {
"title": "Revalidation Errors",
"description": "",
"links": []
},
"77i6HVsnX-uSDw8vz3afD": {
"title": "Caching Data",
"description": "",
"links": []
},
"SjJQ7ceU6vBhlhrN8hcvy": {
"title": "Parallel vs Sequential",
"description": "",
"links": []
},
"Ve1Pa7IhGHPZ_F-sCMcNb": {
"title": "Preloading Data",
"description": "",
"links": []
},
"GAHFfQ8CviNxV7ITpt--q": {
"title": "Data Fetching Patterns",
"description": "",
"links": []
},
"Ti_Bl5NnRIY9UTNTH15xA": {
"title": "Handling Sensitive Data",
"description": "",
"links": []
},
"IuBZY-ISP1Sy_5OQ99jLY": {
"title": "Server Actions",
"description": "",
"links": []
},
"HdSmD_nDV5BPO5JJqs1k8": {
"title": "Client Rendered",
"description": "",
"links": []
},
"m7eKlykOZCA3BLuBHioDj": {
"title": "Server Rendered",
"description": "",
"links": []
},
"6O9c3J-1JQtZTXXIDDXSM": {
"title": "Composition",
"description": "",
"links": []
},
"BfNON3Vp3zSWBurSS4ZHo": {
"title": "Global CSS",
"description": "",
"links": []
},
"tlg5XMVcAHmhey-efjf3M": {
"title": "CSS Modules",
"description": "",
"links": []
},
"5H7toz-DxtnwjozCgLuk6": {
"title": "Sass",
"description": "",
"links": []
},
"3IKXvlA9P06GiOi34zv5H": {
"title": "Tailwind CSS",
"description": "",
"links": []
},
"j5jIZvz_bMZqmr_gl0pQF": {
"title": "CSS in JS",
"description": "",
"links": []
},
"1t9iOcmrEmuwOxOZ0vlY7": {
"title": "Images",
"description": "",
"links": []
},
"1SJX-nGuhIxGH0ukfluoQ": {
"title": "Videos",
"description": "",
"links": []
},
"ZptECTASMX97m5yCZ-XO8": {
"title": "Fonts",
"description": "",
"links": []
},
"45XMR5imHEDF_X8wcgjGW": {
"title": "Metadata",
"description": "",
"links": []
},
"JFrpy3dGt-UP9Weo1VBvN": {
"title": "Scripts",
"description": "",
"links": []
},
"qM_Za9NiCiCG5-kf5RCXF": {
"title": "Package Bundling",
"description": "",
"links": []
},
"3_Mpvkxp9A7PMogxxMikQ": {
"title": "Lazy Loading",
"description": "",
"links": []
},
"a34ZmSk5VYVLq8wsEvOcI": {
"title": "Analytics",
"description": "",
"links": []
},
"DHqdXJFhVZWaNa5zSX8Wk": {
"title": "Instrumentation",
"description": "",
"links": []
},
"mTh5PZNpzJNKPqpu5PVL6": {
"title": "OpenTelemetry",
"description": "",
"links": []
},
"iabbuLHqAiRkgj03t64x7": {
"title": "Static Assets",
"description": "",
"links": []
},
"-j38AhG6LUCH5GupGiqUM": {
"title": "Third Party Libraries",
"description": "",
"links": []
},
"SI7KzNSLP0ccH_P94StGL": {
"title": "Memory Usage",
"description": "",
"links": []
},
"ZFHkHmvjndPjDAB-MAtb7": {
"title": "TypeScript",
"description": "",
"links": []
},
"efMytbUmw44M8dPL4ItsX": {
"title": "Prettier",
"description": "",
"links": []
},
"CvrHzkxg7ndCvd_tbYnK4": {
"title": "ESLint",
"description": "",
"links": []
},
"ThrO72opK7xGWpy0GG63T": {
"title": "Setting things Up",
"description": "",
"links": []
},
"iv6rWEqjh07d0n2kAQedO": {
"title": "Environment Variables",
"description": "",
"links": []
},
"3GI0xHGG_qgpLfEjaLYxr": {
"title": "Markdown and MDX",
"description": "",
"links": []
},
"Hj01UZuHkQppXTq6XV9Pn": {
"title": "Custom Server",
"description": "",
"links": []
},
"KTZRo1Y_Z-7eMYzZ9W0Vl": {
"title": "Vitest",
"description": "",
"links": []
},
"sc5Pliyq6bfeFXp0ca5yH": {
"title": "Jest",
"description": "",
"links": []
},
"qFDdfOBdOlGMjTEOiiuTe": {
"title": "Playwright",
"description": "",
"links": []
},
"KmOTgclnf-QYDYK0QwwVe": {
"title": "Cypress",
"description": "",
"links": []
},
"-yiJSBIoczJHOW8YMdWFI": {
"title": "Preparing for Production",
"description": "",
"links": []
},
"BPStVqWV0660A-_fJSuM7": {
"title": "Deployment Options",
"description": "",
"links": []
},
"FdvaN6BOxUEJt7TarSDmo": {
"title": "React Frameworks",
"description": "React frameworks provide structure and tools to streamline the development of React applications. They offer solutions for common challenges like routing, data fetching, state management, and build processes, allowing developers to focus on building features rather than configuring infrastructure. These frameworks often include pre-built components, optimized performance configurations, and conventions that promote code organization and maintainability.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Comparing The Top React Frameworks",
"url": "https://dev.to/surajondev/comparing-the-top-cra-alternatives-9cg",
"type": "article"
}
]
},
"7EYQnX3cEAjSL-iJSprEI": {
"title": "SSR",
"description": "Server-Side Rendering (SSR) is a technique where a web application's HTML is generated on the server in response to each user request. The server then sends the fully rendered HTML to the client's browser, which displays it. This differs from client-side rendering, where the browser downloads a minimal HTML page and then uses JavaScript to render the content.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Server-side Rendering (SSR)",
"url": "https://nextjs.org/docs/pages/building-your-application/rendering/server-side-rendering",
"type": "article"
},
{
"title": "What is Server-Side Rendering: Definition, Benefits and Risks",
"url": "https://solutionshub.epam.com/blog/post/what-is-server-side-rendering",
"type": "article"
}
]
},
"NC7s-EOLWhjXR70JFZxcg": {
"title": "SPA",
"description": "A Single-Page Application (SPA) is a web application that loads a single HTML page and dynamically updates that page as the user interacts with the application. This is achieved by using JavaScript to manipulate the DOM (Document Object Model) directly, rather than requesting new HTML pages from the server for each interaction. This approach provides a more fluid and responsive user experience, as the browser doesn't need to reload the entire page for every change.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "https://nextjs.org/docs/app/guides/single-page-applications",
"url": "https://nextjs.org/docs/app/guides/single-page-applications",
"type": "article"
},
{
"title": "Single-page application",
"url": "https://en.wikipedia.org/wiki/Single-page_application",
"type": "article"
}
]
},
"4CcK-BLP5NM3ZrCIEG4s8": {
"title": "CSR",
"description": "In Client-Side Rendering (CSR) with React, the browser downloads a minimal HTML page and the JavaScript needed for the page. The JavaScript is then used to update the DOM and render the page. When the application is first loaded, the user may notice a slight delay before they can see the full page, this is because the page isn't fully rendered until all the JavaScript is downloaded, parsed, and executed.\n\nAfter the page has been loaded for the first time, navigating to other pages on the same website is typically faster, as only necessary data needs to be fetched, and JavaScript can re-render parts of the page without requiring a full page refresh.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Client-side Rendering (CSR)",
"url": "https://nextjs.org/docs/pages/building-your-application/rendering/client-side-rendering",
"type": "article"
},
{
"title": "What is Client-side Rendering (CSR)?",
"url": "https://prismic.io/blog/client-side-rendering",
"type": "article"
}
]
},
"CqPZHOs1Iew6PCIjwiqUt": {
"title": "SSG",
"description": "Static Site Generation (SSG) is a rendering method that generates HTML pages at build time. This means that when a user requests a page, the server sends a pre-rendered HTML file, rather than dynamically generating it on each request. This approach leads to faster load times and improved SEO, as search engines can easily crawl and index the static content.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Static Site Generation (SSG)",
"url": "https://nextjs.org/docs/pages/building-your-application/rendering/static-site-generation",
"type": "article"
}
]
},
"htuyzi5_N-fqnx_SsO_DS": {
"title": "Pages",
"description": "The Pages Router in Next.js is a file-system based router built around the `pages` directory. Each file in the `pages` directory becomes a route based on its file name. For example, a file named `about.js` would create a route at `/about`. This approach simplifies routing by automatically mapping files to routes, making it easy to create and manage different pages within your application.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Pages Router",
"url": "https://nextjs.org/docs/pages",
"type": "article"
},
{
"title": "Pages Router Tutorial",
"url": "https://nextjs.org/learn/pages-router",
"type": "article"
}
]
},
"3VXKRDxDmqJObkoW8ndrz": {
"title": "App",
"description": "The App Router is a file-system based router that uses React's latest features, such as [Server Components](https://react.dev/reference/rsc/server-components), [Suspense](https://react.dev/reference/react/Suspense), and [Server Functions](https://react.dev/reference/rsc/server-functions)\n\nVisit the following resources to learn more:",
"links": [
{
"title": "App Router Tutorial",
"url": "https://nextjs.org/learn/dashboard-app",
"type": "article"
},
{
"title": "Next js Tutorial for Beginners | Nextjs 13 (App Router) with TypeScript",
"url": "https://www.youtube.com/watch?v=ZVnjOPwW4ZA",
"type": "article"
}
]
},
"dP6cZkEZ6lxPsy5SjvuZA": {
"title": "Intercepting Routes",
"description": "",
"links": []
},
"2N_hm9Zx_Lp-RFEMP9HFb": {
"title": "Parallel Routes",
"description": "",
"links": []
},
"hQHvu7MzNwA2lL9ADm5YQ": {
"title": "Static vs Dynamic",
"description": "",
"links": []
},
"lR7oPh0DCY_BhzXH31N36": {
"title": "Streaming",
"description": "",
"links": []
},
"K1wGmAy9L0VE6cwYE2pA6": {
"title": "Reditects",
"description": "",
"links": []
},
"0Rgs7jaFX1Gl5KDT6DKbX": {
"title": "Caching",
"description": "",
"links": []
},
"gpZNwsh075wl5eH2gLKro": {
"title": "Middelware",
"description": "",
"links": []
},
"XwDF-Kt9K5smm3ruxlkR2": {
"title": "Setting Headers",
"description": "",
"links": []
},
"8kUhcd2-BlqOKInEuSI95": {
"title": "Using Cookies",
"description": "",
"links": []
},
"54Cc_GdL327tzkdYBA305": {
"title": "Use cases",
"description": "",
"links": []
},
"Sn-8ztsjjtUxD_SP6w3cS": {
"title": "Route Matcher",
"description": "",
"links": []
},
"lkdBRzC8lAvRYKBt7E37V": {
"title": "Fetching Locations",
"description": "",
"links": []
},
"LN7SHgcQp9gX_jfEN84YP": {
"title": "Runtimes and Types",
"description": "",
"links": []
},
"0S37ka1K-TdYLnjCBrKSH": {
"title": "Node.js",
"description": "",
"links": []
},
"SYUKB1Afciqz7hA1n5yIx": {
"title": "Edge",
"description": "",
"links": []
},
"bSsM7VLZcJKYL5XXSG0r-": {
"title": "Internationalization",
"description": "",
"links": []
},
"Okw_IjU2iRSvSQVdKeeCo": {
"title": "Node.js Server",
"description": "",
"links": []
},
"y5_zX209AaHOf_wQibo12": {
"title": "Docker Container",
"description": "",
"links": []
},
"evmzZ6F7TWgYhdaahnZHY": {
"title": "Static Export",
"description": "",
"links": []
},
"fXXlJ6oN_YPWVr-fqEar3": {
"title": "Adapters",
"description": "",
"links": []
}
}

View File

@@ -905,7 +905,7 @@
"description": "_User-friendly glob matching_\n\nBased on fast-glob but adds a bunch of useful features.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Github Globby",
"title": "GitHub Globby",
"url": "https://github.com/sindresorhus/globby",
"type": "opensource"
},
@@ -1674,7 +1674,7 @@
"description": "Drizzle lets you build your project the way you want, without interfering with your project or structure. Using Drizzle you can define and manage database schemas in TypeScript, access your data in a SQL-like or relational way, and take advantage of opt-in tools to make your developer experience amazing.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Drizzle Github",
"title": "Drizzle GitHub",
"url": "https://github.com/drizzle-team/drizzle-orm",
"type": "opensource"
},

View File

@@ -1434,7 +1434,7 @@
"description": "Espresso is a native testing framework for Android to write reliable UI tests. Google released the Espresso framework in October 2013 and, as of release version 2.0, Espresso is part of the Android Support Repository. One of the important features in Espresso is that it automatically synchronizes your test actions with the user interface of your application. The framework also ensures that your activity is started before the test runs. It can also force a test to wait until all observer background activities have finished, which is sometimes a problem with other testing frameworks.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Espresso Code Samples on Github",
"title": "Espresso Code Samples on GitHub",
"url": "https://github.com/android/testing-samples",
"type": "opensource"
},
@@ -1476,7 +1476,7 @@
"description": "Appium is an open-source framework that allows QAs to conduct automated app testing on different platforms like Android, iOS, and Windows. It is developed and supported by Sauce Labs to automate native and hybrid mobile apps. It is a cross-platform mobile automation tool, which means that it allows the same test to be run on multiple platforms.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Appium example tests on Github",
"title": "Appium example tests on GitHub",
"url": "https://github.com/appium/appium/tree/1.x/sample-code",
"type": "opensource"
},
@@ -2143,7 +2143,7 @@
"description": "GitHub is a provider of Internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Github Roadmap",
"title": "Visit Dedicated GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},

View File

@@ -943,7 +943,7 @@
"description": "React Native AsyncStorage is an unencrypted, asynchronous, persistent key-value storage system that allows developers to store data globally within their applications. It is primarily used for persisting data offline, making it suitable for scenarios like saving user preferences or session data.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Async Storage - Github",
"title": "Async Storage - GitHub",
"url": "https://github.com/react-native-async-storage/async-storage",
"type": "opensource"
},
@@ -997,7 +997,7 @@
"description": "Besides AsyncStorage, there are other options available for handling data storage in React Native applications. This guide will briefly cover some popular options: Realm, Firebase Realtime Database, and SQLite.\n\nThese are just a few examples of additional storage options for React Native. Depending on your requirements, you may choose the one that best fits your project.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Realm - Github",
"title": "Realm - GitHub",
"url": "https://github.com/realm/realm-js",
"type": "opensource"
},

View File

@@ -882,6 +882,16 @@
"title": "Result",
"url": "https://doc.rust-lang.org/rust-by-example/error/result.html",
"type": "article"
},
{
"title": "Error Handling in Rust - Andrew Gallant's Blog",
"url": "https://burntsushi.net/rust-error-handling",
"type": "article"
},
{
"title": "Using unwrap() in Rust is Okay - Andrew Gallant's Blog",
"url": "https://burntsushi.net/unwrap/",
"type": "article"
}
]
},

View File

@@ -650,8 +650,24 @@
},
"gL7hubTh3qiMyUWeAZNwI": {
"title": "Apache Kafka",
"description": "Apache Kafka is an open-source stream-processing software platform developed by LinkedIn and donated to the Apache Software Foundation. It is written in Scala and Java and operates based on a message queue, designed to handle real-time data feeds. Kafka functions as a kind of message broker service in between the data producers and the consumers, facilitating efficient transmission of data. It can be viewed as a durable message broker where applications can process and reprocess streamed data. Kafka is a highly scalable and fault-tolerant system which ensures data delivery without loss.",
"links": []
"description": "Apache Kafka is an open-source stream-processing software platform developed by LinkedIn and donated to the Apache Software Foundation. It is written in Scala and Java and operates based on a message queue, designed to handle real-time data feeds. Kafka functions as a kind of message broker service in between the data producers and the consumers, facilitating efficient transmission of data. It can be viewed as a durable message broker where applications can process and reprocess streamed data. Kafka is a highly scalable and fault-tolerant system which ensures data delivery without loss.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Apache Kafka Quickstart",
"url": "https://kafka.apache.org/quickstart",
"type": "article"
},
{
"title": "Explore top posts about Kafka",
"url": "https://app.daily.dev/tags/kafka?ref=roadmapsh",
"type": "article"
},
{
"title": "Apache Kafka Fundamentals",
"url": "https://www.youtube.com/watch?v=B5j3uNBH8X4",
"type": "video"
}
]
},
"UESjGrFyUbNf4pQamaBoy": {
"title": "RabbitMQ",
@@ -892,8 +908,24 @@
},
"yrWiWJMSyTWxDakJbqacu": {
"title": "Apache Spark",
"description": "Apache Spark is an open-source, distributed computing system used for big data processing and analytics. It offers an interface for programming entire clusters with impeccable data parallelism and fault tolerance. With its high-level APIs in Java, Scala, Python and R, it provides a framework for distributed task dispatching, scheduling and basic I/O functionalities. Notable modules include SQL and DataFrames, MLlib for machine learning, GraphX for graph processing, and Structured Streaming for incremental computation and stream processing. Apache Spark can run standalone, on Hadoop, or in the cloud, and is capable of accessing diverse data sources such as HDFS, Apache Cassandra, Apache HBase, and Amazon S3.",
"links": []
"description": "Apache Spark is an open-source, distributed computing system used for big data processing and analytics. It offers an interface for programming entire clusters with impeccable data parallelism and fault tolerance. With its high-level APIs in Java, Scala, Python and R, it provides a framework for distributed task dispatching, scheduling and basic I/O functionalities. Notable modules include SQL and DataFrames, MLlib for machine learning, GraphX for graph processing, and Structured Streaming for incremental computation and stream processing. Apache Spark can run standalone, on Hadoop, or in the cloud, and is capable of accessing diverse data sources such as HDFS, Apache Cassandra, Apache HBase, and Amazon S3.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "ApacheSpark",
"url": "https://spark.apache.org/documentation.html",
"type": "article"
},
{
"title": "Spark By Examples",
"url": "https://sparkbyexamples.com",
"type": "article"
},
{
"title": "Explore top posts about Apache Spark",
"url": "https://app.daily.dev/tags/spark?ref=roadmapsh",
"type": "article"
}
]
},
"k3FJY26SVxdZx4MLLE25h": {
"title": "Containerization",

View File

@@ -660,7 +660,7 @@
"description": "Git is a distributed version control system designed to handle projects of any size with speed and efficiency. Created by Linus Torvalds in 2005, Git tracks changes in source code during software development, allowing multiple developers to work together on non-linear development. It provides strong support for branching, merging, and distributed development workflows. Git maintains a complete history of all changes, enabling easy rollbacks and comparisons between versions. Its distributed nature means each developer has a full copy of the repository, allowing for offline work and backup. Git's speed, flexibility, and robust branching and merging capabilities have made it the most widely used version control system in software development, particularly for open-source projects.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Git & Github Roadmap",
"title": "Visit Dedicated Git & GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
@@ -789,7 +789,7 @@
"description": "GitHub has become a central hub for open-source projects and is widely used by developers, companies, and organizations for both private and public repositories. It was acquired by Microsoft in 2018 but continues to operate as a relatively independent entity. GitHub's popularity has made it an essential tool in modern software development workflows and a key platform for showcasing coding projects and contributing to open-source software.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Git & Github Roadmap",
"title": "Visit Dedicated Git & GitHub Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
@@ -2058,7 +2058,7 @@
"description": "CI/CD is a method to frequently deliver apps to customers by introducing automation into the stages of app development. The main concepts attributed to CI/CD are continuous integration, continuous delivery, and continuous deployment. CI/CD is a solution to the problems integrating new code can cause for development and operations teams (AKA \"integration hell\").\n\nVisit the following resources to learn more:",
"links": [
{
"title": "CI/CID - Github",
"title": "CI/CID - GitHub",
"url": "https://github.com/resources/articles/devops/ci-cd",
"type": "article"
},

View File

@@ -258,7 +258,7 @@
},
"iBBeZopD8SNo7sWTohMim": {
"title": "Docs Generation Tools",
"description": "API documentation generation tools are software applications that create API documentation directly from the source code. This streamlines the process for developers and also ensures that the documentation stays updated with the code changes. Examples of these tools include Doxygen, Sphinx, Javadoc, Swagger UI, and Slate. Doxygen works with several programming languages including C++, Python, and Java. Sphinx is often used for Python. Javadoc is specifically for Java code. Swagger UI lets you visually interact with your APIs resources without having any of the implementation logic in place. Slate generates static HTML that looks great, is responsive, and can be easily hosted on sites like Github.",
"description": "API documentation generation tools are software applications that create API documentation directly from the source code. This streamlines the process for developers and also ensures that the documentation stays updated with the code changes. Examples of these tools include Doxygen, Sphinx, Javadoc, Swagger UI, and Slate. Doxygen works with several programming languages including C++, Python, and Java. Sphinx is often used for Python. Javadoc is specifically for Java code. Swagger UI lets you visually interact with your APIs resources without having any of the implementation logic in place. Slate generates static HTML that looks great, is responsive, and can be easily hosted on sites like GitHub.",
"links": []
},
"co-35BsWMrD6PXohpFqba": {