From 40b5484c9f8cfc17f56bd40972ec5ffa4ea5029b Mon Sep 17 00:00:00 2001 From: Inaki Fernandez Date: Sun, 6 Feb 2022 08:56:33 +0100 Subject: [PATCH] Feb 6th --- docs/argocd.md | 3 ++ docs/aws.md | 36 +++++++++++++++--- docs/azure.md | 5 +++ docs/cicd.md | 2 + docs/container-managers.md | 2 + docs/databases.md | 4 ++ docs/devel-sites.md | 1 + docs/devops.md | 11 ++++++ docs/devsecops.md | 7 ++++ docs/docker.md | 6 ++- docs/git.md | 2 + docs/gitops.md | 4 ++ docs/golang.md | 2 + docs/grafana.md | 1 + docs/helm.md | 1 + docs/images/aspittel.jpg | Bin 0 -> 11406 bytes docs/images/most_popular_cloud_platforms.jfif | Bin 0 -> 169364 bytes docs/images/thomas_maurer.jpg | Bin 0 -> 17107 bytes docs/index.md | 3 +- docs/introduction.md | 1 + .../java-and-java-performance-optimization.md | 3 ++ docs/java_app_servers.md | 10 ++++- docs/jenkins-alternatives.md | 1 + docs/kubernetes-monitoring.md | 2 + docs/kubernetes-networking.md | 2 + docs/kubernetes-on-premise.md | 1 + docs/kubernetes-operators-controllers.md | 1 + docs/kubernetes-security.md | 1 + docs/kubernetes-storage.md | 6 +++ docs/kubernetes-tools.md | 10 ++++- docs/kubernetes.md | 20 ++++++++++ docs/kustomize.md | 1 + docs/managed-kubernetes-in-public-cloud.md | 1 + docs/message-queue.md | 2 + ...ormance-testing-with-jenkins-and-jmeter.md | 1 + docs/project-management-methodology.md | 29 +++++++++----- docs/project-management-tools.md | 4 ++ docs/python.md | 1 + docs/recruitment.md | 13 ++++++- docs/terraform.md | 1 + docs/yaml.md | 9 ++++- 41 files changed, 188 insertions(+), 22 deletions(-) create mode 100644 docs/images/aspittel.jpg create mode 100644 docs/images/most_popular_cloud_platforms.jfif create mode 100644 docs/images/thomas_maurer.jpg diff --git a/docs/argocd.md b/docs/argocd.md index b12ed0c7..d9bf8d19 100644 --- a/docs/argocd.md +++ b/docs/argocd.md @@ -21,6 +21,9 @@ - [levelup.gitconnected.com: Getting Started With ArgoCD on your Kubernetes Cluster](https://levelup.gitconnected.com/getting-started-with-argocd-on-your-kubernetes-cluster-552ca5d8cf41) A step-by-step guide to set up ArgoCD on your Kubernetes cluster and synchronize your resources with your GitHub repository. - [digitalocean.com: How to Deploy to Kubernetes using Argo CD and GitOps](https://www.digitalocean.com/community/tutorials/how-to-deploy-to-kubernetes-using-argo-cd-and-gitops) - [aws.amazon.com: Cloud Native CI/CD with Tekton and ArgoCD on AWS](https://aws.amazon.com/blogs/containers/cloud-native-ci-cd-with-tekton-and-argocd-on-aws/) +- [blog.argoproj.io: New sync and diff strategies in ArgoCD](https://blog.argoproj.io/new-sync-and-diff-strategies-in-argocd-44195d3f8b8c) +- [blog.argoproj.io: What’s new in Argo Workflows v3.3](https://blog.argoproj.io/whats-new-in-argo-workflows-v3-3-dd051d2f1c7) +- [igboie.medium.com: Kubernetes CI/CD with GitHub, GitHub Actions and Argo CD](https://igboie.medium.com/kubernetes-ci-cd-with-github-github-actions-and-argo-cd-36b88b6bda64) ## Argo CD Tools - [argoproj-labs/argocd-autopilot: Argo-CD Autopilot](https://github.com/argoproj-labs/argocd-autopilot) The Argo-CD Autopilot is a tool which offers an opinionated way of installing Argo-CD and managing GitOps epositories. New users to GitOps and Argo CD are not often sure how they should structure their repos, add applications, promote apps across environments, and manage the Argo CD installation itself using GitOps. Argo Autopilot is a project that solves that diff --git a/docs/aws.md b/docs/aws.md index a1345169..c5e2b28b 100644 --- a/docs/aws.md +++ b/docs/aws.md @@ -47,8 +47,9 @@ - [AWS OpsWorks](#aws-opsworks) - [AWS Networking](#aws-networking) - [AWS Route 53](#aws-route-53) -- [AWS Elastic Load Balancing](#aws-elastic-load-balancing) +- [AWS Elastic Load Balancing (ELB)](#aws-elastic-load-balancing-elb) - [AWS Application Load Balancer (ALB)](#aws-application-load-balancer-alb) +- [Gateway Load Balancer (GWLB)](#gateway-load-balancer-gwlb) - [NGINX](#nginx) - [AWS Latency](#aws-latency) - [Amazon ECS optimized AMI](#amazon-ecs-optimized-ami) @@ -87,7 +88,7 @@ - [AWS Transfer](#aws-transfer) - [AWS Fargate](#aws-fargate) - [Admiralty](#admiralty) -- [AWS Backup and Recovery. Design for failure](#aws-backup-and-recovery-design-for-failure) +- [AWS Backup and Recovery. Design for failure. Disaster Recovery](#aws-backup-and-recovery-design-for-failure-disaster-recovery) - [AWS Backup Service](#aws-backup-service) - [AWS Config Rules](#aws-config-rules) - [AWS Big Data](#aws-big-data) @@ -212,6 +213,8 @@ You can filter by topic using the toolbar above. - [Implementing Microservices on AWS 🌟](https://docs.aws.amazon.com/whitepapers/latest/microservices-on-aws/microservices-on-aws.html) - [intellipaat.com: What is AWS?](https://intellipaat.com/blog/what-is-amazon-web-services-aws/) - [tech.twenix.com: Securiza tu infraestructura cloud sin arruinarte](https://tech.twenix.com/securiza-tu-infraestructura-cloud-sin-arruinarte-d9d2e2d5302c) +- [==amazon.qwiklabs.com/catalog==](https://amazon.qwiklabs.com/catalog) **One of the best ways to learn AWS services is to use them. If you want to grow your skills this year check out these AWS quicklabs. Free and paid quests to get you started and gaining experience.** +- [==freecodecamp.org/news/tag/aws==](https://www.freecodecamp.org/news/tag/aws/) Are you looking to get into cloud? Check out all the amazing free content available on freecodecamp under the AWS tag. ### AWS Cloud Adoption Framework (AWS CAF) - [==AWS Cloud Adoption Framework (AWS CAF)==](https://aws.amazon.com/professional-services/CAF/) The AWS Cloud Adoption Framework (AWS CAF) leverages AWS experience and best practices to help you digitally transform and accelerate your business outcomes through innovative use of AWS. AWS CAF identifies specific organizational capabilities that underpin successful cloud transformations. These capabilities provide best practice guidance that helps you improve your cloud readiness. AWS CAF groups its capabilities in six perspectives: Business, People, Governance, Platform, Security, and Operations. Each perspective comprises a set of capabilities that functionally related stakeholders own or manage in the cloud transformation journey. Use the AWS CAF to identify and prioritize transformation opportunities, evaluate and improve your cloud readiness, and iteratively evolve your transformation roadmap. @@ -400,6 +403,7 @@ You can filter by topic using the toolbar above. - [Migrate AWS Landing Zone solution to AWS Control Tower](https://aws.amazon.com/blogs/mt/migrate-aws-landing-zone-solution-to-aws-control-tower/) **AWS Control Tower creates your landing zone using AWS Organizations, thereby bringing together ongoing account management and governance, as well as implementation of best practices based on our experience of working with thousands of customers as they migrate to the cloud.** - [infoq.com: Amazon RDS Introduces Readable Standby Instances in Multi-AZ Deployments](https://www.infoq.com/news/2022/01/aws-rds-readable-standby/) - [Announcing Amazon Elastic File System Replication](https://aws.amazon.com/about-aws/whats-new/2022/01/amazon-elastic-file-system-replication/) Amazon EFS Replication provides you with an easy way to keep an up-to-date copy of your file system in a second AWS Region or within the same Region. +- [infoq.com: Amazon Announces Elastic File System Replication for Multi-Region Deployments](https://www.infoq.com/news/2022/02/aws-efs-replication/) ## AWS Management Console - [Working with the AWS Management Console](http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html) @@ -521,11 +525,18 @@ You can filter by topic using the toolbar above. ## AWS Route 53 - [How do I transfer a domain to AWS from another registrar?](https://aws.amazon.com/premiumsupport/knowledge-center/transfer-domain-to-aws/) -## AWS Elastic Load Balancing +## AWS Elastic Load Balancing (ELB) - [AWS Summit Series 2016 | London: Deep Dive on Elastic Load Balancing](https://www.youtube.com/watch?v=HinwLb2lpLQ) - [docs.aws.amazon.com: What Is Elastic Load Balancing?](http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) - [ably.com: Balancing act: the current limits of AWS network load balancers](https://ably.com/blog/limits-aws-network-load-balancers) - [==luis-sena.medium.com: Automated AWS Load Balancer Warm-Up==](https://luis-sena.medium.com/automated-aws-load-balancer-warm-up-d0b4084c8bbc) Automate AWS load balancer to avoid issues with huge traffic spikes +- [==dashbird.io: AWS Elastic Load Balancing from a Serverless perspective==](https://dashbird.io/blog/aws-application-load-balancer/) Should you switch your AWS API Gateway out for an Application Load Balancer (ALB)? A cheat sheet for all you need to know about ALB: + - Pricing + - Regions + - Transformations + - Limits + - Permissions + - Health ## AWS Application Load Balancer (ALB) - [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/applicationloadbalancer/) @@ -534,6 +545,9 @@ You can filter by topic using the toolbar above. - [Introducing the AWS Load Balancer Controller](https://aws.amazon.com/blogs/containers/introducing-aws-load-balancer-controller/) - [Fine-tuning blue/green deployments on application load balancer](https://aws.amazon.com/blogs/devops/blue-green-deployments-with-application-load-balancer/) +## Gateway Load Balancer (GWLB) +- [Centralized Traffic Inspection with Gateway Load Balancer on AWS](https://aws.amazon.com/blogs/apn/centralized-traffic-inspection-with-gateway-load-balancer-on-aws/) + ## NGINX - [NGINX Plus on the AWS Cloud: Quick Start Reference Deployment](https://aws.amazon.com/about-aws/whats-new/2016/09/nginx-plus-on-the-aws-cloud-quick-start-reference-deployment/) @@ -718,6 +732,7 @@ aws ec2 describe-instances --query 'Reservations[].Instances[].[Placement.Availa - [yobyot.com: AWS multi-region KMS keys and Data Lifecycle Manager: better together](https://www.yobyot.com/aws/aws-multi-region-keys-and-ec2-data-lifecycle-manager/2021/08/18/) - [try.jupiterone.com: The Absolute Minimum Every Developer Must Know about AWS Security](https://try.jupiterone.com/the-absolute-minimum-every-developer-must-know-about-aws-security) - [==How to automate AWS account creation with SSO user assignment==](https://aws.amazon.com/blogs/security/how-to-automate-aws-account-creation-with-sso-user-assignment/) +- [Security practices in AWS multi-tenant SaaS environments](https://aws.amazon.com/blogs/security/security-practices-in-aws-multi-tenant-saas-environments/) Many good tips, from identity management to tenant isolation. ### Policy as Code with AWS CDK and Open Policy Agent - [Realize Policy-as-Code with AWS Cloud Development Kit through Open Policy Agent 🌟](https://aws.amazon.com/blogs/opensource/realize-policy-as-code-with-aws-cloud-development-kit-through-open-policy-agent/) @@ -739,6 +754,8 @@ aws ec2 describe-instances --query 'Reservations[].Instances[].[Placement.Availa - [cloudkatha.com: Difference between Root User and IAM User in AWS You Need to Know](https://cloudkatha.com/difference-between-root-user-and-iam-user-in-aws-you-need-to-know/) - [ben11kehoe.medium.com: AWS Authentication: Principals (users and roles) in AWS IAM](https://ben11kehoe.medium.com/principals-in-aws-iam-38c4a3dc322a) this article uses the boto3, the AWS Python SDK, as an example, but other SDKs have analogous features. - [infoq.com: Incorrect IAM Policy Raised Questions About AWS Access to S3 Data](https://www.infoq.com/news/2022/01/aws-iam-s3-access/) +- [==iann0036/iamlive==](https://github.com/iann0036/iamlive) Generate an IAM policy from AWS calls using client-side monitoring (CSM) or embedded proxy +- [==awsiam.info: AWS IAM Search==](https://www.awsiam.info) ### AWS Organizations - [Simplifying permissions management at scale using tags in AWS Organizations](https://aws.amazon.com/blogs/mt/simplifying-permissions-management-at-scale-using-tags-in-aws-organizations/) @@ -795,7 +812,7 @@ aws ec2 describe-instances --query 'Reservations[].Instances[].[Placement.Availa - [thenewstack.io: Making Kubernetes Serverless and Global with AWS Fargate on EKS and Admiralty](https://thenewstack.io/making-kubernetes-serverless-and-global-with-aws-fargate-on-eks-and-admiralty/) - [admiralty.io: Multi-Region AWS Fargate on EKS](https://admiralty.io/docs/tutorials/fargate/) -## AWS Backup and Recovery. Design for failure +## AWS Backup and Recovery. Design for failure. Disaster Recovery - [Quantum Taps AWS for Cloud-Powered Disaster Recovery](http://www.infostor.com/backup-and_recovery/quantum-taps-aws-for-cloud-powered-disaster-recovery.html) - [Linkedin discussion: Need help on Backup and restore methods of EC2 using s3 services](https://www.linkedin.com/groups/49531/49531-6093375473969090562) - [Design for failure lessons learnt from the Sydney AWS outage](https://www.hava.io/blog/design-for-failure-lessons-learnt-from-the-sydney-aws-outage) @@ -803,6 +820,7 @@ aws ec2 describe-instances --query 'Reservations[].Instances[].[Placement.Availa - [Udemy - AWS: How to Architect with a Design for Failure Approach](https://www.udemy.com/how-to-architect-with-a-design-for-failure-approach/) - [How to Restore Your Instance Data from a Backup using Snapshots on AWS EC2/EBS](https://www.cloudinsidr.com/content/how-to-restore-your-instance-data-from-a-backup-using-snapshots-on-aws-ec2ebs/) - [Backup and archive to AWS Storage Gateway VTL with Veeam Backup & Replication v9](https://aws.amazon.com/es/about-aws/whats-new/2016/08/backup-and-archive-to-aws-storage-gateway-vtl-with-veeam-backup-and-replication-v9/) +- [Creating Disaster Recovery Mechanisms Using Amazon Route 53](https://aws.amazon.com/blogs/networking-and-content-delivery/creating-disaster-recovery-mechanisms-using-amazon-route-53/) ### AWS Backup Service - [AWS Backup Service](https://aws.amazon.com/backup) @@ -1024,6 +1042,8 @@ aws ec2 describe-instances --query 'Reservations[].Instances[].[Placement.Availa ![aws responsability model](images/s3_storage_classes.jfif) [![aws responsability model](images/aws_shared_responsability_model.jpg)](https://aws.amazon.com/compliance/shared-responsibility-model/) + + [![Most Popular Cloud Platforms with AWS removed for scale](images/most_popular_cloud_platforms.jfif)](https://twitter.com/okta) ## Videos @@ -1032,8 +1052,8 @@ aws ec2 describe-instances --query 'Reservations[].Instances[].[Placement.Availa
- +
@@ -1065,5 +1085,11 @@ aws ec2 describe-instances --query 'Reservations[].Instances[].[Placement.Availa

📚 AWS 1x1 - 𝗖𝗹𝗼𝘂𝗱𝗪𝗮𝘁𝗰𝗵

Your fully-managed monitoring & observability solution for your AWS services, resources & applications.

Almost all you need to know ↓

— Tobias Schmidt (@tpschmidt_) January 14, 2022

𝗔𝗪𝗦 𝗔𝗣𝗜 𝗚𝗮𝘁𝗲𝘄𝗮𝘆 is one of AWS' fully-managed flagship services ⚡

All of the important facts & key capabilities that you need to know in a single infographic 🌠 ↓ pic.twitter.com/uzdqdPMmCs

— Dashbird.io (@thedashbird) January 17, 2022
+ +

"Why do you only focus on @awscloud instead of other cloud providers? Doesn't that cut your market to a tiny fraction of the industry?"

The latest @okta report has a chart within that tells the story succinctly. pic.twitter.com/AkNt1jwUMU

— Corey Quinn (@QuinnyPig) January 31, 2022
+ +

In my opinion, IAM is the 𝗺𝗼𝘀𝘁 𝗰𝗼𝗺𝗽𝗹𝗲𝘁𝗲 & 𝗰𝗼𝗺𝗽𝗿𝗲𝗵𝗲𝗻𝘀𝗶𝘃𝗲 service by AWS 🔐

What's a 𝗳𝗮𝗰𝘁: the concepts are crucial & being confident in them is a necessity! pic.twitter.com/MtvOyLjRzS

— Tobias Schmidt (@tpschmidt_) February 2, 2022
+ +

I don't know who did this...but It made my day 😂 AWS moving workloads out of Exadata #HappyWednesday #CloudHumor pic.twitter.com/vq1CSCyr8b

— Guillermo Ruiz (@IaaSgeek) February 2, 2022
diff --git a/docs/azure.md b/docs/azure.md index 947b6edc..6b31e800 100644 --- a/docs/azure.md +++ b/docs/azure.md @@ -25,6 +25,7 @@ - [Azure Container Apps](#azure-container-apps) - [Azure Container Instances](#azure-container-instances) - [Windows Server Container Host](#windows-server-container-host) +- [Disaster Recovery](#disaster-recovery) - [Azure Samples (Boilerplates)](#azure-samples-boilerplates) - [Office 365](#office-365) - [Images](#images) @@ -107,6 +108,7 @@ - [techcommunity.microsoft.com: Standardize DevOps practices across hybrid and multicloud environments](https://techcommunity.microsoft.com/t5/itops-talk-blog/standardize-devops-practices-across-hybrid-and-multicloud/ba-p/2795010) With Azure Arc-enabled Kubernetes, you can attach and configure Kubernetes clusters located either inside or outside Azure. - [youtube: How to run an App Service Web App on Azure Arc-enabled Kubernetes - Part 2 | Azure Tips and Tricks](https://www.youtube.com/watch?v=53-Y_aI0KpE&ab_channel=MicrosoftAzure) - [docs.microsoft.com: CI/CD workflow using GitOps (Flux v2) - Azure Arc enabled Kubernetes](https://docs.microsoft.com/en-us/azure/azure-arc/kubernetes/conceptual-gitops-flux2-ci-cd) +- [thomasmaurer.ch: Run cloud-native apps on Azure PaaS anywhere](https://www.thomasmaurer.ch/2021/06/run-cloud-native-apps-on-azure-paas-anywhere/) ## Secure DevOps Kit for Azure - [Secure DevOps Kit for Azure](https://github.com/azsk/DevOpsKit) @@ -207,6 +209,9 @@ ## Windows Server Container Host - [thomasmaurer.ch: How to Install a Windows Server Container Host](https://www.thomasmaurer.ch/2020/06/how-to-install-a-windows-server-container-host/) +## Disaster Recovery +- [docs.microsoft.com: Using Policy with Azure Site Recovery](https://docs.microsoft.com/en-us/azure/site-recovery/azure-to-azure-how-to-enable-policy) Disaster Recovery with Azure Policy. Learn how to enable Policy Support to protect your VMs using Azure Site Recovery. + ## Azure Samples (Boilerplates) - [github.com/Azure-Samples 🌟](https://github.com/Azure-Samples) Microsoft Azure code samples and examples in .NET, Java, Python, Node.js, PHP and Ruby - [Azure-Samples/azure-pipelines-variable-templates](https://github.com/Azure-Samples/azure-pipelines-variable-templates) This sample Python Web app demonstrates the use of variable template files in Azure Pipelines. diff --git a/docs/cicd.md b/docs/cicd.md index 64115ab8..a6a6cedb 100644 --- a/docs/cicd.md +++ b/docs/cicd.md @@ -94,6 +94,8 @@ Here are some important things to consider while building a CI/CD pipeline: * [devopsdigest.com: CI/CD Deployments: How to Expedite Across a Kubernetes Environment With DevOps Orchestration](https://www.devopsdigest.com/cicd-deployments-how-to-expedite-across-a-kubernetes-environment-with-devops-orchestration) * [medium.com/softwareimprovementgroup: CI/CD best practices: How to set up your pipeline](https://medium.com/softwareimprovementgroup/ci-cd-best-practices-how-to-set-up-your-pipeline-4643eea14bfa) * [medium.com/dynatrace-engineering: How to combine and automate infrastructure and application deployment in a microservice environment](https://medium.com/dynatrace-engineering/how-to-combine-and-automate-infrastructure-and-application-deployment-in-a-microservice-environment-a16b664bb8b5) A collection of best practices to improve your confidence in your deployed applications. +* [thenewstack.io: 4 Best Practices to Drive Successful Adoption of CI/CD ](https://thenewstack.io/four-best-practices-to-drive-successful-adoption-of-ci-cd/) +* [about.gitlab.com: How to keep up with CI/CD best practices](https://about.gitlab.com/blog/2022/02/03/how-to-keep-up-with-ci-cd-best-practices/) ## Observability - [==betanews.com: Overcoming observability challenges in the CI/CD Pipeline==](https://betanews.com/2022/01/26/overcoming-observability-challenges/) diff --git a/docs/container-managers.md b/docs/container-managers.md index eb6ba3c7..449de246 100644 --- a/docs/container-managers.md +++ b/docs/container-managers.md @@ -142,5 +142,7 @@

Running openvscode-server from #podman with:

podman pull https://t.co/eXpnV9qXTt
podman run -it --init -p 3000:3000 -v "$(pwd):/home/workspace:cached" gitpod/openvscode-server

Note; you might get a permission denied, is not aware of rootless use. Resolve with `chmod o+w -R` :-/

— Forever Young (@gbraad) (@gbraad) October 27, 2021

The RHEL/UBI 9 container images were released today! I'm quite happy with the size reduction! We have UBI Micro down to 7MB compressed! pic.twitter.com/PBU3cAApsp

— Scott McCarty (@fatherlinux) November 3, 2021
+ +

Some of the things I like about @Podman_io is this ability to generate K8s pod YAMLs from podman pods.

(1): deploy a pod named webserver with an Nginx container.
(2): generate the K8s YAML for the podman pod
(3): You can direct the generated YAML to a file with redirection pic.twitter.com/PTykINAS4A

— SAIM SAFDAR (@cloudnativeboy) January 31, 2022
\ No newline at end of file diff --git a/docs/databases.md b/docs/databases.md index d1f9de70..a8002a2f 100644 --- a/docs/databases.md +++ b/docs/databases.md @@ -967,5 +967,9 @@ oc adm policy add-scc-to-user anyuid system:serviceaccount:pgophub:default

I'm super curious, how many people have successfully migrated their databases from Oracle to Postgres in production? I'm talking 100% migration with Oracle being turned off at the end.

— Kelsey Hightower (@kelseyhightower) November 1, 2021

Kubernetes can only meet stateful services half way. We need direct changes in databases, message brokers, and other stateful systems if we want to see a future where Kubernetes becomes the preferred destination to run them. The @vectorizedio team is doing their part. https://t.co/w94Q56nnXM

— Kelsey Hightower (@kelseyhightower) November 8, 2021
+ +

Sometimes we work for a database and need to connect to another (#migration ;) so I explained to a colleague the difference between Oracle SERVICE_NAME and SID. Pasting it here in case it helps 🧵

— Franck Pachot 🚀 (@FranckPachot) February 2, 2022
+ +

Kubernetes Database Operator is useful for building scalable database servers as a database cluster. But migrating existing databases to k8s requires a lot of manual work due to having to create new artifacts.

At our next meetup, we'll demo an open-source tool to solve this. pic.twitter.com/o55vnyITV2

— konveyor.io (@Konveyor_io) February 4, 2022
\ No newline at end of file diff --git a/docs/devel-sites.md b/docs/devel-sites.md index a293551c..74a4e4df 100644 --- a/docs/devel-sites.md +++ b/docs/devel-sites.md @@ -29,6 +29,7 @@ - [techrepublic.com: The best programming languages to learn in 2022](https://www.techrepublic.com/article/the-best-programming-languages-to-learn-in-2022/) - https://suckless.org/philosophy software that sucks less - [baeldung.com: Concurrency vs Parallelism](https://www.baeldung.com/cs/concurrency-vs-parallelism) +- [readwrite.com: Tech for Programmers in 2022: The Good, The Bad, and The Ugly](https://readwrite.com/tech-for-programmers-in-2022-the-good-the-bad-and-the-ugly/) ## Design Patterns - [==refactoring.guru: Design Patterns==](https://refactoring.guru/design-patterns/) diff --git a/docs/devops.md b/docs/devops.md index d7e73dc4..d96eb991 100644 --- a/docs/devops.md +++ b/docs/devops.md @@ -220,6 +220,15 @@ * DevOps is one of the most broad topics within software dev because it lacks boundaries and limitations. Many technologies, tools, concepts, processes and ideas converge to give a good DevOps pipeline and DevOps process resulting in agile planning, continuous integration, continuous delivery, and high level monitoring of your enterprise level software systems. Hence, devops is not a single role or even a team's work that deals with all the technologies and processes. It a mixture of culture, traditions and process. * [==github.blog: 5 DevOps tips to speed up your developer workflow== 🌟](https://github.blog/2021-11-30-5-devops-tips-to-speed-up-your-developer-workflow/) From learning YAML to scripting with Bash, here are a few simple tips for developers who want to speed up their workflows. * [valuecoders.com: Why Should You Adopt DevOps To Deliver Business Value Rapidly?](https://www.valuecoders.com/blog/technology-and-apps/why-should-you-adopt-devops-to-deliver-business-value-rapidly) +* [itproportal.com: Stop messing up with CI/CD vs. DevOps and learn the difference finally](https://www.itproportal.com/features/stop-messing-up-with-cicd-vs-devops-and-learn-the-difference-finally/) When asking development pros to weigh in on the concept of DevOps, and share their views, we realised one thing. +* [==blog.udemy.com: Becoming a DevOps Engineer: Understanding the Role and Responsibilities==](https://blog.udemy.com/devops-engineer/) The title “DevOps Engineer” itself is confusing, and no one can agree on what precisely a DevOps Engineer is (or does). So, for now, let’s list some typical activities you might have in this role: + * Providing leadership and guidance for reducing the time it takes to deploy a software change. + * Managing CI (continuous integration) systems and pipelines. + * Creating automated software builds and testing. + * Designing and implementing infrastructure. + * Automating infrastructure buildout and maintenance. + * Managing and enhancing logging and monitoring systems. + * Providing developers with self-service tools for provisioning systems, deploying code, and running tests.
@@ -448,6 +457,8 @@ Resolve your software incidents 10x faster + +
diff --git a/docs/devsecops.md b/docs/devsecops.md index 95bbce1f..66b35c3f 100644 --- a/docs/devsecops.md +++ b/docs/devsecops.md @@ -149,6 +149,10 @@ - [==redhat.com: Red Hat's approach to DevSecOps==](https://www.redhat.com/en/topics/security/devsecops/approach) - [thenewstack.io: Open Source Democratized Software. Now Let’s Democratize Security](https://thenewstack.io/open-source-democratized-software-now-lets-democratize-security/) - [==goteleport.com: Why DevSecOps is Going Passwordless==](https://goteleport.com/blog/devsecops-passwordless) +- [==infosecwriteups.com: How I Discovered Thousands of Open Databases on AWS==](https://infosecwriteups.com/how-i-discovered-thousands-of-open-databases-on-aws-764729aa7f32) My journey on finding and reporting databases with sensitive data about Fortune-500 companies, Hospitals, Crypto platforms, Startups during due diligence, and more. +- [thenewstack.io: Want Real Cybersecurity Progress? Redefine the Security Team](https://thenewstack.io/want-real-cybersecurity-progress-redefine-the-security-team/) +- [devops.com: Taking a DevSecOps Approach to API Security](https://devops.com/why-traditional-approaches-to-api-security-dont-work/) +- [devops.com: Continuous Security: The Next Evolution of CI/CD](https://devops.com/continuous-security-the-next-evolution-of-ci-cd/) ## Kubernetes Security Compliance Frameworks - [==armosec.io: Kubernetes Security Compliance Frameworks== 🌟](https://www.armosec.io/blog/kubernetes-security-frameworks-and-guidance/) @@ -285,6 +289,7 @@ - [infracloud.io: How to Secure Containers with Cosign and Distroless Images](https://www.infracloud.io/blogs/secure-containers-cosign-distroless-images/) - [appvia.io: Tutorial: Keyless Sign and Verify Your Container Images With Cosign](https://www.appvia.io/blog/tutorial-keyless-sign-and-verify-your-container-images) - [==github.blog: Safeguard your containers with new container signing capability in GitHub Actions (cosign)==](https://github.blog/2021-12-06-safeguard-container-signing-capability-actions/) +- [chrisns/cosign-keyless-demo: Cosign Keyless GitHub Action Demo](https://github.com/chrisns/cosign-keyless-demo) Proof of concept that uses cosign and GitHub's in built OIDC for actions to sign container images, providing a proof that what is in the registry came from your GitHub action. ## GitHub security - [GitHub security: what does it take to protect your company from credentials leaking on GitHub? 🌟](https://blog.gitguardian.com/github-security/) @@ -339,6 +344,8 @@ - **A typical solution is using services like Azure Key Vault, or HashiCorp Vault to persist sensitive data. Those services can be integrated with Kubernetes by using the Secrets Store CIS driver. However, relying on an additional service means that you have to manage and maintain that service in addition to Kubernetes. Additionally, depending on the service you use to store your sensitive data, some sensitive configuration must be stored somewhere to configure the CIS driver.** - As an alternative, you can use Mozilla SOPS (SOPS) to encrypt and decrypt your Kubernetes secret files. **Secrets that are encrypted via SOPS can be stored in source control.** Encrypted secrets will be decrypted locally just before they’ll be deployed to Kubernetes. This article demonstrates how to encrypt and decrypt Kubernetes secrets (YAML files) using SOPS in combination with Azure Key Vault, which allows you to store your secrets along with other Kubernetes manifests directly in git. +- [developers.redhat.com: Protect secrets in Git with the clean/smudge filter](https://developers.redhat.com/articles/2022/02/02/protect-secrets-git-cleansmudge-filter) + ### AWS Secret Manager - [medium: AWS Secret Manager: Protect sensitive information and functionality 🌟](https://medium.com/avmconsulting-blog/aws-secret-manager-protect-sensitive-information-and-functionality-f520e15293f4) Protect Your Secrets in ApplicationsSecrets are frequently used to protect sensitive information and functionality. - [blog.opstree.com: AWS Secret Manager](https://blog.opstree.com/2021/11/16/aws-secret-manager/) diff --git a/docs/docker.md b/docs/docker.md index 290caddd..97a7b004 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -125,6 +125,7 @@ * [cloudsavvyit.com: How to Manage Docker Engine Plugins](https://www.cloudsavvyit.com/15066/how-to-manage-docker-engine-plugins) * [iximiuz.com: Learning Containers From The Bottom Up](https://iximiuz.com/en/posts/container-learning-path/) Efficient Learning Path to Grasp Containers Fundamentals * [thenewstack.io: The Time to Decide on Docker Desktop Has Arrived](https://thenewstack.io/the-time-to-decide-on-docker-desktop-has-arrived/) +* [codeproject.com: How to Create an Image in Docker using Python](https://www.codeproject.com/Tips/5323808/How-To-Create-An-Image-In-Docker-Using-Python) ## Docker CLI * [docs.docker.com: docker buildx imagetools](https://docs.docker.com/engine/reference/commandline/buildx_imagetools/) Commands to work on images in registry @@ -258,6 +259,7 @@ PHP Docker Image for Cloud Native Deployments (and Kubernetes) - [buildkit](https://docs.docker.com/develop/develop-images/build_enhancements/) - [podman](https://podman.io/) - [==blog.logrocket.com: Top Docker alternatives for 2022==](https://blog.logrocket.com/top-docker-alternatives-2022/) +- [itnext.io: Replace Docker Desktop with lima](https://itnext.io/replace-docker-desktop-with-lima-88ec6f9d6a19) - [lima-vm/lima](https://github.com/lima-vm/lima) ## Videos and Podcasts
@@ -265,10 +267,10 @@ PHP Docker Image for Cloud Native Deployments (and Kubernetes)
- - + +
diff --git a/docs/git.md b/docs/git.md index dcedb34a..8459febd 100644 --- a/docs/git.md +++ b/docs/git.md @@ -412,6 +412,8 @@ git push origin -f * [freecodecamp.org: How to Use the .github Repository](https://www.freecodecamp.org/news/how-to-use-the-dot-github-repository/) * [==about.gitlab.com: How to install and use the GitLab Kubernetes Operator (on OCP)==](https://about.gitlab.com/blog/2021/11/16/gko-on-ocp) * [alsmola.medium.com: Securing GitHub organizations](https://alsmola.medium.com/securing-github-organizations-9c33c850638) +* [github.blog: Dependency graph now supports GitHub Actions](https://github.blog/2022-01-31-dependency-graph-now-supports-github-actions/) The dependency graph helps developers and maintainers understand the code they depend on, and now includes GitHub Actions! +* [==github.blog: How to build a CI/CD pipeline with GitHub Actions in four simple steps==](https://github.blog/2022-02-02-build-ci-cd-pipeline-github-actions-four-steps/) A quick guide on the advantages of using GitHub Actions as your preferred CI/CD tool—and how to build a CI/CD pipeline with it. ### GitHub Lab - [==lab.github.com== 🌟](https://lab.github.com) With GitHub Learning Lab, grow your skills by completing fun, realistic projects. Get advice and helpful feedback from our friendly Learning Lab bot. diff --git a/docs/gitops.md b/docs/gitops.md index 0b6d1003..0cc01a84 100644 --- a/docs/gitops.md +++ b/docs/gitops.md @@ -124,6 +124,8 @@ - [thenewstack.io: Getting Started with GitOps ](https://thenewstack.io/getting-started-with-gitops/) - [==medium: Stop Using Branches for Deploying to Different GitOps Environments | ostis Kapelonis==](https://medium.com/containers-101/stop-using-branches-for-deploying-to-different-gitops-environments-7111d0632402) - [codefresh.io: The pains of GitOps 1.0](https://codefresh.io/about-gitops/pains-gitops-1-0/) +- [==thenewstack.io: Can You GitOps Your APIs?==](https://thenewstack.io/can-you-gitops-your-apis/) +- [weave.works: GitOps takes DevOps teams to higher levels of maturity](https://www.weave.works/blog/gitops-takes-devops-teams-to-higher-levels-of-maturity)
[![gitops in a nutshell](images/GitOps-in-a-nutshell.png)](https://www.unifiedguru.com/gitops-and-the-cloud-operating-model-vmware-cloud-community/) @@ -260,6 +262,8 @@ + +
diff --git a/docs/golang.md b/docs/golang.md index 7544604e..cec8352b 100644 --- a/docs/golang.md +++ b/docs/golang.md @@ -89,12 +89,14 @@ ## Go Books - https://github.com/dariubs/GoBooks +- https://lets-go.alexedwards.net Learn to Build Professional Web Applications with Go ## Go Samples - [==GoogleCloudPlatform/golang-samples: Sample apps and code written for Google Cloud in the Go programming language.==](https://github.com/GoogleCloudPlatform/golang-samples) - [rehacktive/caffeine](https://github.com/rehacktive/caffeine) A very basic REST service for JSON data - enough for prototyping and MVPs! - [ebosas/microservices](https://github.com/ebosas/microservices) A microservices example in Go - [iximiuz/client-go-examples](https://github.com/iximiuz/client-go-examples) Collection of mini-programs demonstrating Kubernetes client-go usage. +- [Mathieu-Desrochers/Learning-Go](https://github.com/Mathieu-Desrochers/Learning-Go) Minimal working examples of Go's unique features. ## Dockerfile for go - [==dev.to: Dockerfile for Go==](https://dev.to/youngyoshie/dockerfile-for-go-4jjp) diff --git a/docs/grafana.md b/docs/grafana.md index 42a20c91..d3869bd6 100644 --- a/docs/grafana.md +++ b/docs/grafana.md @@ -32,6 +32,7 @@ * https://github.com/prometheus/snmp_exporter/tree/main/snmp-mixin * [==grafana.com: A 3-step guide to troubleshooting and visualizing Kubernetes with Grafana Cloud==](https://grafana.com/blog/2021/11/19/a-3-step-guide-to-troubleshooting-and-visualizing-kubernetes-with-grafana-cloud/) * [grafana.com: Video: How to build a Prometheus query in Grafana](https://grafana.com/blog/2022/01/27/video-how-to-build-a-prometheus-query-in-grafana/) +* [grafana.com: An advanced guide to network monitoring with Grafana and Prometheus](https://grafana.com/blog/2022/02/01/an-advanced-guide-to-network-monitoring-with-grafana-and-prometheus/) ## Grafana Agent - [grafana/agent: Grafana Agent](https://github.com/grafana/agent) Prometheus Metrics, Loki Logs, and Tempo Traces, optimized for Grafana Cloud. diff --git a/docs/helm.md b/docs/helm.md index b0fb3c0c..f69758a1 100644 --- a/docs/helm.md +++ b/docs/helm.md @@ -82,6 +82,7 @@ * [medium.com/dailymotion: Deploying apps on multiple Kubernetes clusters with Helm](https://medium.com/dailymotion/deploying-apps-on-multiple-kubernetes-clusters-with-helm-19ee2b06179e) * [gennyallcroft.medium.com: Understanding Kubernetes deployments with Helm](https://gennyallcroft.medium.com/understanding-kubernetes-deployments-with-helm-444116a622be) * [medium.com/codex: Helm Charts For Kubernetes Developers](https://medium.com/codex/helm-charts-for-kubernetes-developers-dce5719d4c8c) +* [==apiiro.com: Malicious Kubernetes Helm Charts can be used to steal sensitive information from Argo CD deployments==](https://apiiro.com/blog/malicious-kubernetes-helm-charts-can-be-used-to-steal-sensitive-information-from-argo-cd-deployments/) ## Helm Plugins * [Helm Diff Plugin 🌟](https://github.com/databus23/helm-diff) A helm plugin that shows a diff explaining what a helm upgrade would change diff --git a/docs/images/aspittel.jpg b/docs/images/aspittel.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2130390f7d33c9293f593425b18e8e93bc40f7e4 GIT binary patch literal 11406 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

QytR)ewxxn0<020`yD(xzH&atmr! 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

>T$Onmyqj>quDnh7t-3I?2^rvdfwnO;w-9+_ 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

cj(m(9UvDTmn(PjW(DzqR6@}AEQ8O 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 Wp9A~7j|U#N3w2<|JSigoZvp^f7 [![cloud academy](images/cloud_academy_logo.jpg){: style="width:7%"}](https://www.youtube.com/c/Cloudacademy) [![acloudguru](images/acloudguru_logo.jpg){: style="width:7%"}](https://www.youtube.com/c/AcloudGuru) [![devops_tv](images/devops_tv_logo.jpg){: style="width:7%"}](https://www.youtube.com/c/Devopsdotcom) [![xebialabs](images/xebialabs_logo.jpg){: style="width:7%"}](https://www.youtube.com/c/XebiaLabs) [![devops library](images/devops_library_logo.jpg){: style="width:7%"}](https://www.youtube.com/c/Devopslibrary) [![codecademy](images/codecademy.jpg){: style="width:7%"}](https://www.youtube.com/c/codecademy) [![coursera](images/coursera_logo.jpg){: style="width:7%"}](https://www.youtube.com/user/coursera) [![academind](images/academind_logo.jpg){: style="width:7%"}](https://www.youtube.com/c/Academind) [![guru99](images/guru99_logo.jpg){: style="width:7%"}](https://www.youtube.com/c/guru99comm) [![intellipaat](images/intellipaat_logo.jpg){: style="width:7%"}](https://www.youtube.com/c/Intellipaat) [![cloud quick POCs](images/cloudquickpocs.jpg){: style="width:7%"}](https://www.youtube.com/channel/UCv9MUffHWyo2GgLIDLVu0KQ)
[![thetips4you](images/thethips4you.jpg){: style="width:7%"}](https://www.youtube.com/c/Thetips4you) [![cloud learnhub](images/cloud_learn_hub.jpg){: style="width:7%"}](https://www.youtube.com/channel/UC57acx8sCmE7uFHfVMvIlNg) [![John Savill](images/John_Savill.jpg){: style="width:7%"}](https://www.youtube.com/c/NTFAQGuy) [![microservice factory](images/microservice_factory.jpg){: style="width:7%"}](https://www.youtube.com/channel/UCorFV-WGnajyfNu4zPI0AAA) [![kubedb appscode](images/kubedb_logo.jpg){: style="width:7%"}](https://www.youtube.com/c/AppsCodeInc) [![devops toolkit](images/devops_toolkit.jpg){: style="width:7%"}](https://www.youtube.com/c/DevOpsToolkit) [![ansible pilot](images/ansiblepilot.jpg){: style="width:7%"}](https://www.youtube.com/c/AnsiblePilot) [![codelytv](images/codelytv_logo.jpg){: style="width:7%"}](https://www.youtube.com/CodelyTV) [![pelado nerd](images/pelado_nerd.jpg){: style="width:7%"}](https://www.youtube.com/c/PeladoNerd) [![hola mundo](images/hola_mundo.jpg){: style="width:7%"}](https://www.youtube.com/channel/UC4FHiPgS1KXkUMx3dxBUtPg) [![javier garzas](images/jgarzas.jpg){: style="width:7%"}](https://www.youtube.com/c/JavierGarz%C3%A1s/)
-[![london IAC](images/londonIAC.jpg){: style="width:7%"}](https://www.youtube.com/c/LondonIAC) [![techworld nana](images/techworld_nana.jpg){: style="width:7%"}](https://www.youtube.com/c/TechWorldwithNana) [![honeypot](images/honeypot.jpg){: style="width:7%"}](https://www.youtube.com/c/Honeypotio) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) +[![london IAC](images/londonIAC.jpg){: style="width:7%"}](https://www.youtube.com/c/LondonIAC) [![techworld nana](images/techworld_nana.jpg){: style="width:7%"}](https://www.youtube.com/c/TechWorldwithNana) [![honeypot](images/honeypot.jpg){: style="width:7%"}](https://www.youtube.com/c/Honeypotio) [![Ali Spittel](images/aspittel.jpg){: style="width:7%"}](https://www.youtube.com/c/AliSpittelDev) [![thomas maurer](images/thomas_maurer.jpg){: style="width:7%"}](https://www.youtube.com/c/ThomasMaurerCloud) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) [![white square](images/empty_logo.jpg){: style="width:7%"}](https://www.youtube.com) ??? note "Click to expand!" diff --git a/docs/introduction.md b/docs/introduction.md index 6802f294..79ecf535 100644 --- a/docs/introduction.md +++ b/docs/introduction.md @@ -196,6 +196,7 @@ ## Technical Debt - [==medium: Technical debt 101==](https://medium.com/@joaomilho/festina-lente-e29070811b84) A primer about technical debt, legacy code, big rewrites and ancient wisdom for non technical managers +- [infoq.com: Managing Technical Debt in a Microservice Architecture](https://www.infoq.com/articles/managing-technical-debt-microservices/) ## Twelve-Factor Apps in Kubernetes - [acloudguru.com: Twelve-Factor Apps in Kubernetes](https://acloudguru.com/blog/engineering/twelve-factor-apps-in-kubernetes) diff --git a/docs/java-and-java-performance-optimization.md b/docs/java-and-java-performance-optimization.md index ae8b5c40..39b36185 100644 --- a/docs/java-and-java-performance-optimization.md +++ b/docs/java-and-java-performance-optimization.md @@ -104,6 +104,7 @@ etc| - [DZone: Revisiting the Advanced Theories of ‘Java Garbage Collection’ 🌟](https://dzone.com/articles/revisiting-the-advanced-theories-of-java-garbage-c) - [DZone: Understanding the Java Memory Model and Garbage Collection 🌟](https://dzone.com/articles/understanding-the-java-memory-model-and-the-garbag) In this article we will try to understand the Java memory model and how garbage collection works. In this article I have used JDK8 Oracle Hot Spot 64 bit JVM. First let me depict the different memory areas available for Java processes. - [DZone: Memory Leaks and Java Code](https://dzone.com/articles/memory-leak-andjava-code) When you aren't using objects, but they aren't touched by GC, a memory leak happens. Here are six ways memory leaks happen to look for and avoid. +- [javarevisited.blogspot.com: How Garbage Collection works in Java? Explained (2011)](https://javarevisited.blogspot.com/2011/04/garbage-collection-in-java.html) ## Java Tracing Tools. JDK Flight Recorder - [Byteman](https://byteman.jboss.org/) @@ -159,5 +160,7 @@ En cualquier caso hay una tendencia al Heap-Offloading. El consumo de memoria en

+ + \ No newline at end of file diff --git a/docs/java_app_servers.md b/docs/java_app_servers.md index 55aa018d..877f0c02 100644 --- a/docs/java_app_servers.md +++ b/docs/java_app_servers.md @@ -6,6 +6,7 @@ - [WildFly](#wildfly) - [IBM WebSphere Liberty](#ibm-websphere-liberty) - [Alternatives](#alternatives) +- [Tweets](#tweets) ## Introduction. Jakarta EE (formerly J2EE) - [wikipedia: Jakarta EE](https://en.wikipedia.org/wiki/Jakarta_EE) @@ -37,4 +38,11 @@ ## Alternatives - [TomEE from Tomitribe](http://tomee.apache.org/) -- [KumuluzEE](https://ee.kumuluz.com/) \ No newline at end of file +- [KumuluzEE](https://ee.kumuluz.com/) + +## Tweets +??? note "Click to expand!" + +
+ +
\ No newline at end of file diff --git a/docs/jenkins-alternatives.md b/docs/jenkins-alternatives.md index 4cb68e26..b5241304 100644 --- a/docs/jenkins-alternatives.md +++ b/docs/jenkins-alternatives.md @@ -60,6 +60,7 @@ * [Agola](https://agola.io/) * [harness.io](https://harness.io/) * [harness.io: AutoStopping Rules For Kubernetes Clusters](https://harness.io/blog/autostopping-rules-kubernetes/) Harness Intelligent Cloud AutoStopping Rules help manage your resources automatically to make sure that they run only when used, never when idle. + * [harness.io: Migrating CD Jenkins Pipelines To Harness Using Helm](https://harness.io/blog/cd-jenkins-pipelines-harness/) * [Drone](https://drone.io/) * [medium: Goodbye Jenkins: How Drone Simplifies CI/CD for Engineering Teams Everywhere](https://medium.com/@boomimagestudio-techblog/goodbye-jenkins-how-drone-simplifies-ci-cd-for-engineering-teams-everywhere-73a7db435a86) * [Buildbot](https://buildbot.net/) diff --git a/docs/kubernetes-monitoring.md b/docs/kubernetes-monitoring.md index 613234d2..446ecc6e 100644 --- a/docs/kubernetes-monitoring.md +++ b/docs/kubernetes-monitoring.md @@ -32,6 +32,8 @@ * [loft.sh: Kubernetes Cost Monitoring with Prometheus & Grafana](https://loft.sh/blog/kubernetes-cost-monitoring-with-prometheus-and-grafana/) * [==anaisurl.com: Full Tutorial: Monitoring and Troubleshooting stack with Prometheus, Grafana, Loki and Komodor== 🌟](https://anaisurl.com/full-tutorial-monitoring/) * [==blog.flant.com: Collecting system information from a bunch of Kubernetes clusters==](https://blog.flant.com/collect-system-information-stats-from-kubernetes-clusters/) +* [medium.com/is-it-observable: How to collect metrics in a Kubernetes cluster](https://medium.com/is-it-observable/how-to-collect-metrics-in-a-kubernetes-cluster-9ad4a69aafb0) +* [itnext.io: How to tackle Kubernetes observability challenges with Pixie](https://itnext.io/how-to-tackle-kubernetes-observability-challenges-with-pixie-4c6414ca913) ## Kubernetes Logging - [cncf.io: Logging in Kubernetes: EFK vs PLG Stack](https://www.cncf.io/blog/2020/07/27/logging-in-kubernetes-efk-vs-plg-stack/) diff --git a/docs/kubernetes-networking.md b/docs/kubernetes-networking.md index d84c0f4b..c327b6a7 100644 --- a/docs/kubernetes-networking.md +++ b/docs/kubernetes-networking.md @@ -246,5 +246,7 @@ + + \ No newline at end of file diff --git a/docs/kubernetes-on-premise.md b/docs/kubernetes-on-premise.md index 49be97de..6b147a9c 100644 --- a/docs/kubernetes-on-premise.md +++ b/docs/kubernetes-on-premise.md @@ -162,6 +162,7 @@ $ sudo mv kops-linux-amd64 /usr/local/bin/kops * [wecloudpro.com: VMware Tanzu Community Edition 🌟](https://www.wecloudpro.com/2021/11/13/Tanzu-Community-Edition.html) * [vmware-tanzu/octant](https://github.com/vmware-tanzu/octant) Highly extensible platform for developers to better understand the complexity of Kubernetes clusters. Octant is a tool for developers to understand how applications run on a Kubernetes cluster. It aims to be part of the developer's toolkit for gaining insight and approaching complexity found in Kubernetes. Octant offers a combination of introspective tooling, cluster navigation, and object management along with a plugin system to further extend its capabilities. * [zdnet.com: VMware brings Tanzu Application Platform into GA to ease Kubernetes adoption](https://www.zdnet.com/article/vmware-brings-tanzu-application-platform-into-ga-to-ease-kubernetes-adoption/) The platform, introduced in 2019, is designed to help customers quickly build and deploy software on any public cloud or on-premises Kubernetes cluster. +* [cabai.pro: Instalando Tanzu Community Edition (TCE)](https://cabai.pro/vmware/kubernetes/instalando-tanzu-community-edition/) #### KubeAcademy Pro (free training) * [tanzu.vmware.com: Introducing KubeAcademy Pro: In-Depth Kubernetes Training, Totally Free](https://tanzu.vmware.com/content/blog/introducing-kubeacademy-pro-in-depth-kubernetes-training-totally-free) diff --git a/docs/kubernetes-operators-controllers.md b/docs/kubernetes-operators-controllers.md index 9d3a5fef..9cccaf6a 100644 --- a/docs/kubernetes-operators-controllers.md +++ b/docs/kubernetes-operators-controllers.md @@ -75,6 +75,7 @@ - [==dzone.com: What Is a Kubernetes Operator?==](https://dzone.com/articles/what-is-a-kubernetes-operator) A Kubernetes Operator fills in the gaps between the capabilities and automation provided by Kubernetes and how your software uses Kubernetes for task automation. - [practicalkubernetes.blogspot.com: Making the case for Kubernetes Operators](https://practicalkubernetes.blogspot.com/2022/01/making-case-for-kubernetes-operators.html) - [reactive-tech/kubegres](https://github.com/reactive-tech/kubegres) Kubegres is a Kubernetes operator allowing to deploy one or many **clusters of PostgreSql instances and manage databases replication, failover and backup.** +- [==Capsule Operator==](https://github.com/clastix/capsule) is a Kubernetes multi-tenant Operator. It aggregates multiple namespaces in a Tenant. Within each tenant, users are free to create their namespaces and share all the assigned resources between the namespaces of the tenant. ## operatorhub.io * [operatorhub.io](https://operatorhub.io/) OperatorHub.io is a new home for the Kubernetes community to share Operators. Find an existing Operator or list your own today. diff --git a/docs/kubernetes-security.md b/docs/kubernetes-security.md index 4a609fff..27f2dfe7 100644 --- a/docs/kubernetes-security.md +++ b/docs/kubernetes-security.md @@ -162,6 +162,7 @@ * [betterprogramming.pub: Kubernetes and SSL Certificate Management 🌟](https://betterprogramming.pub/kubernetes-and-ssl-certificate-management-5f6a4b6f5ae9) Manage SSL certificate orders in K8s with Helm and Let’s Encrypt. * [getbetterdevops.io: How to Secure K8S Nginx Ingress With Let’s Encrypt and Cert Manager](https://getbetterdevops.io/k8s-ingress-with-letsencrypt/) Automate the provisioning of Let's Encrypt certificates for ingress resources * [faun.pub: Automate Certificate Management In Kubernetes Using Cert-Manager](https://faun.pub/automate-certificate-management-in-kubernetes-using-cert-manager-d0745e5c7757) +* [==cert-manager/cert-manager==](https://github.com/cert-manager/cert-manager) Automatically provision and manage TLS certificates in Kubernetes ## RBAC * [Configure RBAC in Kubernetes Like a Boss 🌟](https://medium.com/trendyol-tech/configure-rbac-in-kubernetes-like-a-boss-665e2a8665dd) Learn how to configure RBAC in kubernetes. In this post, you will configure RBAC both with kubectl and yaml definitions. diff --git a/docs/kubernetes-storage.md b/docs/kubernetes-storage.md index 36050f73..40d9c7b5 100644 --- a/docs/kubernetes-storage.md +++ b/docs/kubernetes-storage.md @@ -19,6 +19,7 @@ - [IOMesh](#iomesh) - [MinIO](#minio) - [NetApp Data Store](#netapp-data-store) + - [Stork Storage Operator](#stork-storage-operator) - [OpenShift Container Storage Operator (OCS)](#openshift-container-storage-operator-ocs) - [OCS 3 (OpenShift 3)](#ocs-3-openshift-3) - [OCS 4 (OpenShift 4)](#ocs-4-openshift-4) @@ -111,6 +112,8 @@ - [MayaData](https://mayadata.io/) Founder of OpenEBS - [goglides.io: Running OpenEBS in Kubernetes](https://goglides.io/running-openebs-in-kubernetes/371/) - [OpenEBS Features and Benefits](https://docs.openebs.io/docs/next/features.html) OpenEBS is cloudnative storage for stateful applications on K8s where "cloud native" means following a loosely coupled architecture. As such the normal benefits to cloud native, loosely coupled architectures apply. +- [openebs/dynamic-localpv-provisioner: Dynamic Kubernetes Local Persistent Volumes](https://github.com/openebs/dynamic-localpv-provisioner) Dynamic Local Volumes for Kubernetes Stateful workloads. +- [openebs/lvm-localpv](https://github.com/openebs/lvm-localpv) CSI Driver for dynamic provisioning of Persistent Local Volumes for Kubernetes using LVM. ### LightOS - [LightOS](https://www.lightbitslabs.com/product/) @@ -146,6 +149,9 @@ edge. MinIO is software-defined and is 100% open source under GNU AGPL v3. ### NetApp Data Store - [docs.netapp.com: Intro to Astra Data Store preview](https://docs.netapp.com/us-en/astra-data-store/concepts/intro.html) +### Stork Storage Operator +- [libopenstorage/stork: Stork - Storage Operator Runtime for Kubernetes](https://github.com/libopenstorage/stork) Stork - Storage Orchestration Runtime for Kubernetes + ## OpenShift Container Storage Operator (OCS) - [State of OpenShift Container Storage](https://www.openshift.com/blog/state-of-openshift-container-storage-eran-tamir-and-duncan-hardie-red-hat) diff --git a/docs/kubernetes-tools.md b/docs/kubernetes-tools.md index c779bd3d..0425d57f 100644 --- a/docs/kubernetes-tools.md +++ b/docs/kubernetes-tools.md @@ -57,6 +57,7 @@ - [Tackle](#tackle) - [Azure Placement Policy Scheduler Plugins](#azure-placement-policy-scheduler-plugins) - [Azure AAD Pod Identity](#azure-aad-pod-identity) +- [MicroShift](#microshift) - [Tweets](#tweets) ## Introduction @@ -159,7 +160,6 @@ * [dynamic-pv-scaler](https://github.com/opstree/dynamic-pv-scaler) is a golang based Kubernetes application which has been created to overcome the scaling issue of Persistent Volume in Kubernetes. This can scale the Persistent Volume on the basis of threshold which you have set. * [Sinker](https://github.com/plexsystems/sinker) Imagesync enables the syncing of container images from one container registry to another. This is useful in cases where you need to mirror images that exist in a public container registry, to a private one. * [Cluster Turndown](https://github.com/kubecost/cluster-turndown) is an automated scaledown and scaleup of a Kubernetes cluster's backing nodes based on a custom schedule and turndown criteria. -* [capsule](https://github.com/clastix/capsule) is a Kubernetes multi-tenant Operator. It aggregates multiple namespaces in a Tenant. Within each tenant, users are free to create their namespaces and share all the assigned resources between the namespaces of the tenant. * [Kubernetes Node Label Monitor](https://github.com/adaptant-labs/k8s-node-label-monitor) is a Kubernetes controller for monitoring and notifying about changes to Node label states * [kubeinit 🌟](https://github.com/Kubeinit/kubeinit) KubeInit provides Ansible playbooks and roles for the deployment and configuration of multiple Kubernetes distributions. * [kubergui: Kubernetes Deployment Builder🌟](https://github.com/BrandonPotter/kubergui) quickly builds out a basic Kubernetes Deployment and Kubernetes Service YAML. Kubernetes GUI YAML generators for simple but typo-prone tasks. @@ -446,6 +446,8 @@ * [corneliusweig/konfig](https://github.com/corneliusweig/konfig) konfig helps to merge, split or import kubeconfig files * [armosec/regolibrary](https://github.com/armosec/regolibrary) ARMO rego library for detecting miss-configurations in Kubernetes manifests * [groundnuty/k8s-wait-for 🌟](https://github.com/groundnuty/k8s-wait-for) A simple script that allows to wait for a k8s service, job or pods to enter a desired state +* [nabsul/k8s-ecr-login-renew: Renew Kubernetes Docker secrets for AWS ECR](https://github.com/nabsul/k8s-ecr-login-renew) Renews Docker login credentials for an AWS ECR container registry. +* [particledecay/kconf](https://github.com/particledecay/kconf) Manage multiple kubeconfigs easily ## Penetration Testing Tools * [intellipaat.com: What is Penetration Testing?](https://intellipaat.com/blog/what-is-penetration-testing) Penetration testing is otherwise referred to as pen testing. This blog on ‘What is Penetration Testing? - Types, Phases, Tools Explained’ discusses in detail what pen testing is and how it works, the numerous tools involved in this field, and so on. This blog aims to give you an insight into pen testing and how Ethical Hackers use it for the purpose of Cyber Security. Let’s dive right in. @@ -664,6 +666,12 @@ ## Azure AAD Pod Identity - [Azure/aad-pod-identity)](https://github.com/Azure/aad-pod-identity) Assign Azure Active Directory Identities to Kubernetes applications. +## MicroShift +- [==microshift.io==](https://microshift.io) **MicroShift is a research project that is exploring how OpenShift1 and Kubernetes can be optimized for small form factor and edge computing.** +- It requires only 2GB to run +- You can run it as a container with Docker or Podman +- It is a very trimmed version of OpenShift without many features + ## Tweets
Click to expand! diff --git a/docs/kubernetes.md b/docs/kubernetes.md index 5ffcc54e..4642987f 100644 --- a/docs/kubernetes.md +++ b/docs/kubernetes.md @@ -35,6 +35,7 @@ - [Kubernetes StatefulSet](#kubernetes-statefulset) - [Kubernetes DaemonSets](#kubernetes-daemonsets) - [Kubernetes Jobs and Cron Jobs](#kubernetes-jobs-and-cron-jobs) + - [Kubernetes Services](#kubernetes-services) - [Kubernetes Deployment Strategies](#kubernetes-deployment-strategies) - [Kubernetes API](#kubernetes-api) - [Multi-Cluster Services API](#multi-cluster-services-api) @@ -181,6 +182,7 @@ * [divya-mohan0209.medium.com: Getting started with K8s in 2022](https://divya-mohan0209.medium.com/getting-started-with-k8s-in-2022-1dfeb4bdc112) And a list of resources structured to help you learn! * [==docs.google.com: Kubernetes For Everyone==](https://docs.google.com/document/d/1p4ZYQYM2VrMCR8K3T68JOMzWHlV-C8Jogrl9Ces77OA/edit) * [medium.com/paypal-tech: Scaling Kubernetes to Over 4k Nodes and 200k Pods](https://medium.com/paypal-tech/scaling-kubernetes-to-over-4k-nodes-and-200k-pods-29988fad6ed) +* [learnsteps.com: What is kubelet and what it does: Basics on Kubernetes](https://www.learnsteps.com/what-is-kubelet-and-what-it-does-basics-on-kubernetes/) ### Kubernetes Jobs Market * [kube.careers: Kubernetes jobs market (Q2 2021)](https://kube.careers/report-2021-q2) We analyzed all the 113 Kubernetes jobs posted in the past 3 months (Apr-May-Jun 2021) and extracted metrics for: @@ -690,6 +692,9 @@ * [containiq.com: Kubernetes Jobs | Use Cases, Scheduling, and Failure](https://www.containiq.com/post/kubernetes-jobs) Learn more about Kubernetes best practices and job cases. This article will even teach you how to create kubernetes jobs and how to handle failures. * [medium.com/geekculture: Setup a CronJob to execute Kubectl or AWS commands](https://medium.com/geekculture/setup-a-cronjob-to-execute-kubectl-or-aws-commands-c1c15dd4ff1f) Kubernetes Tricks | AWS CLI | CronJob | Secrets | Backup Databases | Postgres Backup in Kubernetes +#### Kubernetes Services +- [blog.alexellis.io: A Primer: Accessing services in Kubernetes](https://blog.alexellis.io/primer-accessing-kubernetes-services/) + ### Kubernetes Deployment Strategies - [youtube: deployment strategies in kubernetes | recreate | rolling update | blue/green | canary](https://youtu.be/efiMiaFjtn8) - [auth0.com: Deployment Strategies In Kubernetes](https://auth0.com/blog/deployment-strategies-in-kubernetes) Learn what are the different deployment strategies available in Kubernetes and how to use them. @@ -700,6 +705,10 @@ - [semaphoreci.com: Continuous Blue-Green Deployments With Kubernetes](https://semaphoreci.com/blog/continuous-blue-green-deployments-with-kubernetes) - [medium: Fully automated canary deployments in Kubernetes](https://medium.com/containers-101/fully-automated-canary-deployments-in-kubernetes-70a671105273) - [auth0.com: Deployment Strategies In Kubernetes](https://auth0.com/blog/deployment-strategies-in-kubernetes/) Learn what are the different deployment strategies available in Kubernetes and how to use them. +- [blog.knoldus.com: Introduction to Kubernetes Deployment Strategies](https://blog.knoldus.com/introduction-to-kubernetes-deployment-strategies/) + - [blog.knoldus.com: Introduction to Kubernetes Deployment Strategies – Part 2](https://blog.knoldus.com/introduction-to-kubernetes-deployment-strategies-part-2/) + - [medium.com/@knoldus: Introduction to Kubernetes Deployment Strategies — Part 3](https://medium.com/@knoldus/introduction-to-kubernetes-deployment-strategies-part-3-5037a6b4d6aa) +- [==dzone: Advanced Kubernetes Deployment Strategies==](https://dzone.com/articles/advanced-kubernetes-deployment-strategies) **This article reviews concepts in Kubernetes deployment, as well as delves into various advanced Kubernetes deployment strategies, pros and cons, and use cases.** ### Kubernetes API - [kubernetes.io: Kubernetes API](https://kubernetes.io/docs/reference/kubernetes-api/) @@ -840,6 +849,7 @@ - [ubuntu.com: Kubernetes Fully Managed – half the cost of AWS](https://ubuntu.com/blog/managed-kubernetes-cheaper-than-aws) - [learnk8s.io: Kubernetes Instance Calculator 🌟🌟](https://learnk8s.io/kubernetes-instance-calculator) - [dev.to: Kubernetes Cost Management and Analysis Guide 🌟](https://dev.to/cloudforecast/kubernetes-cost-management-and-analysis-guide-1e1b) +- [hackernoon.com: Reducing Kubernetes Costs](https://hackernoon.com/reducing-kubernetes-costs) #### kubecost - [==Kubecost== 🌟](https://www.kubecost.com) @@ -1018,6 +1028,7 @@ * [containiq.com: Troubleshooting Kubernetes FailedAttachVolume and FailedMount](https://www.containiq.com/post/fixing-kubernetes-failedattachvolume-and-failedmount) When working with Persistent Volumes in Kubernetes, you might run into the FailedAttachVolume or FailedMount error. In this tutorial, we’ll show you how to troubleshoot these errors and find the root cause and fix them. * [==containiq.com: Kubernetes ImagePullBackOff: Troubleshooting With Examples==](https://www.containiq.com/post/kubernetes-imagepullbackoff) If you’ve worked with Kubernetes for a while, chances are good that you have experienced the **ImagePullBackOff** status. This issue can be frustrating if you are unfamiliar with it, so in this guide, you will walk the reader through how to troubleshoot this issue, what some common causes are, and where to start if they encounter this problem. * [==opensource.googleblog.com: Introducing Ephemeral Containers==](https://opensource.googleblog.com/2022/01/Introducing%20Ephemeral%20Containers.html) **Ephemeral containers are a new type of container that are part of the Kubernetes core API. An Ephemeral Container may be added to an existing Pod for administrative actions like debugging, it runs until it exits, and it won't be restarted. An ephemeral container runs within the Pod's existing resource allocation and shares common container namespaces.** +* [medium.com/@andrewachraf: Detect crashes in your Kubernetes cluster using kwatch and Slack](https://medium.com/@andrewachraf/detect-crashes-in-your-cluster-using-kwatch-an-slack-84b979e93e03) Monitor all changes in your Kubernetes(K8s) cluster & detects crashes in your running apps in real time
[![learnk8s debug your pods](images/learnk8s_debug_your_pods.png){: style="width:30%"}](https://learnk8s.io/troubleshooting-deployments) @@ -1247,6 +1258,7 @@ - https://medium.com/bb-tutorials-and-thoughts/practice-enough-with-these-questions-for-the-ckad-exam-2f42d1228552 - [kodekloud.com: CKA vs CKAD vs CKS – What is the Difference](https://kodekloud.com/cka-vs-ckad-vs-cks-what-is-the-difference/) +- [bmuschko/ckad-prep](https://github.com/bmuschko/ckad-prep) Exercises demonstrated as part of the video course "Certified Kubernetes Application Developer (CKAD) Prep Course" published by O'Reilly Media. ## Books and eBooks - [developers.redhat.com: Kubernetes Operators](https://developers.redhat.com/books/kubernetes-operators) @@ -1331,6 +1343,8 @@ + +
@@ -1385,6 +1399,12 @@ + + + + + + diff --git a/docs/kustomize.md b/docs/kustomize.md index 3e93d4de..2757d9a9 100644 --- a/docs/kustomize.md +++ b/docs/kustomize.md @@ -15,6 +15,7 @@ - [blog.stack-labs.com: Kustomize - The right way to do templating in Kubernetes](https://blog.stack-labs.com/code/kustomize-101/) - [opensource.com: Modify your Kubernetes manifests with Kustomize](https://opensource.com/article/21/6/kustomize-kubernetes) Modify your Kubernetes manifests without losing control of what's in the original versions. - [dev.to: Introduction to Kustomize - How to customize Kubernetes objects kubernetes](https://dev.to/katiatalhi/introduction-to-kustomize-how-to-customize-kubernetes-objects-3e08) +- [mirantis.com: Kustomize Tutorial: Creating a Kubernetes app out of multiple pieces](https://www.mirantis.com/blog/introduction-to-kustomize-part-1-creating-a-kubernetes-app-out-of-multiple-pieces/) ## Secretize plugin - [Secretize 🌟](https://github.com/bbl/secretize) Secretize is a kustomize plugin that helps generating kubernetes secrets from various sources such as AWS Secret Manager & Azure Vault. It's like a swiss army knife, but for kubernetes secrets. diff --git a/docs/managed-kubernetes-in-public-cloud.md b/docs/managed-kubernetes-in-public-cloud.md index 5f91e7c5..90d02f50 100644 --- a/docs/managed-kubernetes-in-public-cloud.md +++ b/docs/managed-kubernetes-in-public-cloud.md @@ -122,6 +122,7 @@ * [automateinfra.com: The Ultimate Guide on AWS EKS for Beginners (Easiest Way)](https://automateinfra.com/2021/10/19/the-ultimate-guide-on-aws-eks-for-beginners-easiest-way/) * [==aws/aws-node-termination-handler== 🌟](https://github.com/aws/aws-node-termination-handler) Gracefully handle EC2 instance shutdown within Kubernetes * [==howtoforge.com: How to Create a Kubernetes Cluster with AWS CLI==](https://www.howtoforge.com/how-to-create-a-kubernetes-cluster-with-the-aws-cli/) +* [blog.searce.com: Optimise cost for AWS EKS cluster using Spotinst 🌟](https://blog.searce.com/optimize-cost-for-aws-eks-cluster-using-spotinst-ffcebe8e3571) ### AWS EKS Vs ECS Vs Fargate * [cloudify.co: AWS EKS Vs. ECS Vs. Fargate: The Breakdown](https://cloudify.co/blog/aws-eks-vs-ecs-vs-fargate/) diff --git a/docs/message-queue.md b/docs/message-queue.md index 1b8a3777..836fff11 100644 --- a/docs/message-queue.md +++ b/docs/message-queue.md @@ -93,6 +93,7 @@ - [irfanyusanif.medium.com: Best practices to communicate between microservices](https://irfanyusanif.medium.com/how-to-communicate-between-microservices-7956ed68a99a) - [swapnil-chougule.medium.com: Rapid Feature Engineering through SQL](https://swapnil-chougule.medium.com/rapid-feature-engineering-through-sql-a92b0926683d) - [==blog.twitter.com: Processing billions of events in real time at Twitter==](https://blog.twitter.com/engineering/en_us/topics/infrastructure/2021/processing-billions-of-events-in-real-time-at-twitter-) +- [codeopinion.com: Event Sourcing vs Event Driven Architecture](https://codeopinion.com/event-sourcing-vs-event-driven-architecture/) ## RPC vs Messaging - [particular.net: RPC vs. Messaging – which is faster?](https://particular.net/blog/rpc-vs-messaging-which-is-faster) @@ -113,6 +114,7 @@ - [medium.com: **RabbitMQ vs. Kafka**](https://medium.com/better-programming/rabbitmq-vs-kafka-1ef22a041793) An architect’s dilemma - [blog.rabbitmq.com: First Application With RabbitMQ Streams](https://blog.rabbitmq.com/posts/2021/07/rabbitmq-streams-first-application/) - [geshan.com.np: How to use RabbitMQ and Node.js with Docker and Docker-compose](https://geshan.com.np/blog/2021/07/rabbitmq-docker-nodejs/) +- [salaboy.com: Event-Driven applications with CloudEvents on Kubernetes](https://salaboy.com/2022/01/29/event-driven-applications-with-cloudevents-on-kubernetes/) ### Redis message broker - [Redis](https://redis.io/) diff --git a/docs/performance-testing-with-jenkins-and-jmeter.md b/docs/performance-testing-with-jenkins-and-jmeter.md index dce3dfe9..444dc0e0 100644 --- a/docs/performance-testing-with-jenkins-and-jmeter.md +++ b/docs/performance-testing-with-jenkins-and-jmeter.md @@ -92,3 +92,4 @@ * [Locust](https://locust.io/) An open source load testing tool. Define user behaviour with Python code, and swarm your system with millions of simultaneous users. * [blog.dream11engineering.com: Finding Order in Chaos: How We Automated Performance Testing with Torque](https://blog.dream11engineering.com/finding-order-in-chaos-how-we-automated-performance-testing-with-torque-6eb63706fcea) * [blog.desdelinux.net: Microsoft Performance-Tools, una serie de herramientas open source para analizar el rendimiento del sistema](https://blog.desdelinux.net/microsoft-performance-tools-una-serie-de-herramientas-open-source-para-analizar-el-rendimiento-del-sistema/) +* [tech.loveholidays.com: Load testing in production with Grafana Loki, Kubernetes and Golang](https://tech.loveholidays.com/load-testing-in-production-with-grafana-loki-kubernetes-and-golang-1699554d2aa3) \ No newline at end of file diff --git a/docs/project-management-methodology.md b/docs/project-management-methodology.md index 901a0d4e..18036049 100644 --- a/docs/project-management-methodology.md +++ b/docs/project-management-methodology.md @@ -1,5 +1,6 @@ # Project Management Methodology - [Project Management Methodology](#project-management-methodology) + - [Spanish](#spanish) - [Team Topologies](#team-topologies) - [Agile vs Scrum vs Waterfall vs Kanban vs Lean](#agile-vs-scrum-vs-waterfall-vs-kanban-vs-lean) - [Waterfall vs Agile](#waterfall-vs-agile) @@ -23,8 +24,6 @@ - [dzone: A Complete Guide to the Project Management Lifecycle](https://dzone.com/articles/a-complete-guide-to-project-management-life-cycle) If you know about the product management lifecycle but aren't familiar with each of its phases, take a look at how they break down. - [dzone: Top 40 Project Management Terms and Concepts of 2019](https://dzone.com/articles/top-40-project-management-terms-and-concepts-of-20) - [dzone: 7 Project Management Basics](https://dzone.com/articles/7-project-management-basics-for-lifetime) Whether you're just starting out or are a career PM, these rules should never leave your mind. -- [scrum.org: Scrum no es una metodología, es un marco de trabajo](https://www.scrum.org/resources/blog/scrum-no-es-una-metodologia-es-un-marco-de-trabajo) -- [scrum.org: Posturas del Product Owner](https://www.scrum.org/resources/blog/posturas-del-product-owner) - [blog.scrumstudy.com: Scrum and Kanban, alike or different?](http://blog.scrumstudy.com/scrum-and-kanban-alike-or-different-2/) - [scrum.org: What Happens To The Sprint Backlog Items That Are Not Done?](https://www.scrum.org/resources/blog/vlog-what-happens-sprint-backlog-items-are-not-done) - [cio.com: Agile vs. waterfall: Project methodologies compared](https://www.cio.com/article/3584559/agile-vs-waterfall-project-methodologies-compared.html) Agile and waterfall each offer unique benefits and drawbacks. Here are the pros and cons of each method, and how to know which is right for your organization’s projects. @@ -32,7 +31,6 @@ - [scruminc.com: Better Scrum with Essence](https://www.scruminc.com/better-scrum-with-essence/) Essence is an industry standard for describing practices, which means there is no change to the actual Scrum content but an enhanced way for presenting it to teams. One of the main things you notice with Essence is the use of cards to represent the main concepts of any practice. - [enterprisersproject.com: Scrum and Kanban: 3 realities CIOs should know](https://enterprisersproject.com/article/2020/10/scrum-kanban-3-realities-cios) Agile methodologies can make all the difference in your digital transformation, but successful adoption requires culture change. Consider this expert advice on scrum and Kanban. - [forbes.com: Explaining Agile 🌟](https://www.forbes.com/sites/stevedenning/2016/09/08/explaining-agile) -- [itnove.com: La Guía Scrum 2020 en Español​](https://itnove.com/scrum-la-guia-scrum-2020-en-espanol/) - [scrum.org: Minimum Viable Product Considered Harmful 🌟](https://www.scrum.org/resources/blog/minimum-viable-product-considered-harmful) - [agilecheetah.com: Why So Many Developers are Fed Up with Agile](https://agilecheetah.com/why-so-many-developers-are-fed-up-with-agile-pt-3/) - [age-of-product.com: Scrum 2021: Getting You Started as Scrum Master or Product Owner](https://age-of-product.com/scrum-2021/) @@ -46,15 +44,24 @@ - [cloudbees.com: How Asynchronous Communication Can Boost Productivity](https://www.cloudbees.com/blog/asynchronous-communication) - [cloudbees.com: More Isn’t Always Better: Using Predictive Analytics to Show Adding More People Doesn’t Always Help](https://www.cloudbees.com/blog/using-predictive-analytics-to-show-adding-more-people) - [infoq.com: Driving DevOps with Value Stream Management](https://www.infoq.com/articles/DevOps-value-stream/) -- [rockcontent.com: Conoce los principales tipos de consultoría en las que tu negocio puede invertir para explotar su potencial](https://rockcontent.com/es/blog/tipos-de-consultoria/) La consultoría es un servicio profesional destinado a resolver un problema de tu empresa, ayudándola a detectar falencias y lograr el aprovechamiento de distintas oportunidades para su crecimiento. - [creately.com: How to Better Manage Your Projects with Kanban Boards](https://creately.com/blog/diagrams/what-is-a-kanban-board/) - [hbr.org: As Your Team Gets Bigger, Your Leadership Style Has to Adapt](https://hbr.org/2019/03/as-your-team-gets-bigger-your-leadership-style-has-to-adapt) - [carlos-piqueres.medium.com: Product Backlog vs Sprint Backlog](https://carlos-piqueres.medium.com/product-backlog-vs-sprint-backlog-c951f972e979) -- [entrepreneur.com: ¿Cómo manejar un equipo que trabaja desde sus casas?](https://www.entrepreneur.com/article/365880) - [skamille.medium.com: How New Managers Fail Individual Contributors](https://skamille.medium.com/how-new-managers-fail-individual-contributors-839a13bda1c5) - [blog.pragmaticengineer.com: How Big Tech Runs Tech Projects and the Curious Absence of Scrum](https://blog.pragmaticengineer.com/project-management-at-big-tech/) -- [mamaqueesscrum.com: Mamá… ¿Qué es Scrum?](https://mamaqueesscrum.com/2018/11/12/labores-que-un-product-owner-deberia-hacer-que-no-aparecen-en-la-scrum-guide/) Labores que un Product Owner podría hacer que no aparecen en la Scrum Guide - [acumen.io: Can Kanban scale for teams of over 50 developers? When should you consider moving to Scrum?](https://www.acumen.io/blog/can-kanban-scale-for-teams-of-over-50-developers-when-should-you-consider-moving-to-scrum) +- [infoq.com: Better Metrics for Building High Performance Teams](https://www.infoq.com/articles/better-metrics-team-performance/) +- [==noidea.dog/glue: Being Glue==](https://noidea.dog/glue) + +### Spanish +- [scrum.org: Scrum no es una metodología, es un marco de trabajo](https://www.scrum.org/resources/blog/scrum-no-es-una-metodologia-es-un-marco-de-trabajo) +- [scrum.org: Posturas del Product Owner](https://www.scrum.org/resources/blog/posturas-del-product-owner) +- [itnove.com: La Guía Scrum 2020 en Español​](https://itnove.com/scrum-la-guia-scrum-2020-en-espanol/) +- [rockcontent.com: Conoce los principales tipos de consultoría en las que tu negocio puede invertir para explotar su potencial](https://rockcontent.com/es/blog/tipos-de-consultoria/) La consultoría es un servicio profesional destinado a resolver un problema de tu empresa, ayudándola a detectar falencias y lograr el aprovechamiento de distintas oportunidades para su crecimiento. +- [entrepreneur.com: ¿Cómo manejar un equipo que trabaja desde sus casas?](https://www.entrepreneur.com/article/365880) +- [mamaqueesscrum.com: Mamá… ¿Qué es Scrum?](https://mamaqueesscrum.com/2018/11/12/labores-que-un-product-owner-deberia-hacer-que-no-aparecen-en-la-scrum-guide/) Labores que un Product Owner podría hacer que no aparecen en la Scrum Guide +- [bbc.com: Por qué en Japón los jefes NO felicitan a sus empleados cuando hacen bien su trabajo](https://www.bbc.com/mundo/vert-cap-37270163) +- [smoda.elpais.com: Destacar y venderse no implica trabajar bien: así es la nueva batalla por las apariencias del trabajo](https://smoda.elpais.com/trabajo/apariencias-venderse-trabajo/) Muchos trabajadores sufren en silencio la ‘performance’ diaria de quienes ponen más empeño en contar sus supuestos logros que en materializarlos. ### Team Topologies - [itrevolution.com: The Problem With Org Charts](https://itrevolution.com/the-problem-with-org-charts/) @@ -153,11 +160,8 @@
- - -
@@ -166,7 +170,6 @@
-
@@ -199,6 +202,12 @@ + + + + + + diff --git a/docs/project-management-tools.md b/docs/project-management-tools.md index e621c617..5df2ef1d 100644 --- a/docs/project-management-tools.md +++ b/docs/project-management-tools.md @@ -4,6 +4,10 @@ - [Productivity Tips with .new TLD to quickly create](#productivity-tips-with-new-tld-to-quickly-create) - [Tweets](#tweets) +
+ +
+ ## Products and Tools - [Jira](https://www.atlassian.com/software/jira) - [Transition Jira issues on merge](https://bitbucket.org/blog/transition-jira-issues-on-merge) Check out the latest diff --git a/docs/python.md b/docs/python.md index 610b618e..574f240f 100644 --- a/docs/python.md +++ b/docs/python.md @@ -187,6 +187,7 @@ - [blog.alluxi.com: 8 habilidades que necesitas para ser un gran programador Python](https://blog.alluxi.com/8-habilidades-que-necesitas-para-ser-un-gran-programador-python/) - [javarevisited.blogspot.com: Java vs Python - Which Programming Language beginners should learn in 2022?](https://javarevisited.blogspot.com/2018/06/java-vs-python-which-programming-language-to-learn-first.html#axzz7HHxvcHIY) - [freecodecamp.org: Python Dictionary – How to Perform CRUD Operations on dicts in Python](https://www.freecodecamp.org/news/everything-you-need-to-know-about-python-dictionaries/) +- [==freecodecamp.org: Python Requests – How to Interact with Web Services using Python==](https://www.freecodecamp.org/news/how-to-interact-with-web-services-using-python/) ## PHP vs Python - [geekflare.com: PHP vs Python: A Comprehensive Comparison](https://geekflare.com/php-vs-python-comparison) diff --git a/docs/recruitment.md b/docs/recruitment.md index 6a8d41f3..c7e02ec1 100644 --- a/docs/recruitment.md +++ b/docs/recruitment.md @@ -43,6 +43,8 @@ - [medium.com/hackernoon: How to hire a DevOps Engineer](https://medium.com/hackernoon/how-to-hire-a-devops-engineer-4e59e7847e9b) - [forbes.com: As Leaders: What Can We Learn From The Great Resignation?](https://www.forbes.com/sites/dedehenley/2022/01/30/as-leaders-what-can-we-learn-from-the-great-resignation/) - [stackoverflow.blog: The Great Resignation is here. What does that mean for developers? 🌟](https://stackoverflow.blog/2022/01/10/the-great-resignation-is-here-what-does-that-mean-for-developers/) Nearly two years into the pandemic, many Americans are reevaluating their relationship with work. +- [bbc.com: Is finding a 'new normal' in the workplace impossible?](https://www.bbc.com/worklife/article/20220104-future-of-work-2022) +- [askamanager.org: the new hire who showed up is not the same person we interviewed](https://www.askamanager.org/2022/01/the-new-hire-who-showed-up-is-not-the-same-person-we-interviewed.html) ## Articles in Spanish - [blogs.elconfidencial.com: El talento atrofiado: por qué en España escasean los profesionales de alto nivel](https://blogs.elconfidencial.com/tecnologia/tribuna/2021-06-02/talento-informatica-startups-silicon-valley-google_3112087/) @@ -57,7 +59,10 @@ - [elespanol.com: Qué tipos de jefes hay y cómo trabajar con ellos sin desfallecer: los consejos de Maribel Garben](https://www.elespanol.com/reportajes/20211211/tipos-trabajar-sin-desfallecer-consejos-maribel-garben/633687616_0.html) Los hay autoritarios, carismáticos, inseguros... EL ESPAÑOL analiza todos estos perfiles con la experta de 'employer branding'. - [codingpotions.com: ¿Cuánto cobra un programador en España en 2021?](https://codingpotions.com/salarios-programadores-2021) - [xataka.com: La guerra de talento en el sector tecnológico amenaza la viabilidad de muchas pymes españolas: cada vez les resulta más difícil retener a los seniors](https://www.xataka.com/empresas-y-economia/guerra-talento-sector-tecnologico-amenaza-viabilidad-muchas-pymes-espanolas-cada-vez-les-resulta-dificil-retener-a-seniors) - +- [expansion.com: El 'amiguismo' en las relaciones de trabajo](https://www.expansion.com/expansion-empleo/desarrollo-de-carrera/2022/01/28/61f40e29e5fdea61738b45aa.html) Si nuestra 'tribu' se encuentra bajo amenaza, el instinto nos llama a cerrar filas en lugar de buscar lo que es mejor para toda la organización. +- [xataka.com: La Gran Renuncia está ganando terreno en España, pero hay dos barreras: salarios bajos e indemnizaciones](https://www.xataka.com/empresas-y-economia/gran-renuncia-esta-ganando-terreno-espana-hay-dos-barreras-salarios-bajos-ley-laboral) +- [codigonuevo.com: ¿Debería adaptarse el sueldo del teletrabajo al lugar en el que vivas?](https://www.codigonuevo.com/sociedad/deberia-adaptarse-sueldo-teletrabajo-lugar-vivas) Los salarios del teletrabajo podrían disminuir hasta un 15% en función de la ciudad en la que vives. + ## Recruitment Portals - [relocate.me](https://relocate.me/) Job relocation made easy. Find tech jobs w/ relocation packages - [International Tech Job Search Handbook](https://github.com/andrewstetsenko/tech-jobs-with-relocation) All-in-one guide to getting a tech job abroad 🌎 @@ -153,6 +158,8 @@ + + @@ -172,6 +179,10 @@ + + + + diff --git a/docs/terraform.md b/docs/terraform.md index c635069f..3ddde61d 100644 --- a/docs/terraform.md +++ b/docs/terraform.md @@ -181,6 +181,7 @@ * [medium.com/@ranjana-jha: Infrastructure as a code best practices : Terraform](https://medium.com/@ranjana-jha/infrastructure-as-a-code-best-practices-terraform-d7ae4291d621) * [serhii.vasylenko.info: Some Techniques to Enhance Your Terraform Proficiency](https://serhii.vasylenko.info/2022/01/16/some-techniques-to-enhance-your-terraform-proficiency/) Learn what cool things Terraform can do with its built-in functionality * [thenewstack.io: Better Together: Hyper-Converged Kubernetes with Terraform](https://thenewstack.io/better-together-hyper-converged-kubernetes-with-terraform/) +* [==AdminTurnedDevOps/Terraform-The-Hard-Way==](https://github.com/AdminTurnedDevOps/Terraform-The-Hard-Way) The most efficient way to learn Terraform for beginners and intermediate practitioners ### Terraform Cloud * [learn.hashicorp.com: Manage Private Environments with Terraform Cloud Agents](https://learn.hashicorp.com/tutorials/terraform/cloud-agents) diff --git a/docs/yaml.md b/docs/yaml.md index cf361bcd..a2d64f1e 100644 --- a/docs/yaml.md +++ b/docs/yaml.md @@ -11,6 +11,7 @@ - [Kubernetes JSON Schemas](#kubernetes-json-schemas) - [Static Checking of Kubernetes YAML Files. Kubernetes YAML Validation Tools](#static-checking-of-kubernetes-yaml-files-kubernetes-yaml-validation-tools) - [Alternatives](#alternatives) +- [Tweets](#tweets) ## Templating YAML Files - [wikipedia: YAML](https://en.wikipedia.org/wiki/YAML) @@ -103,4 +104,10 @@ - [dzone.com: Use Ketch to Deploy Apps on Kubernetes Without YAML](https://dzone.com/articles/how-to-use-ketch-to-deploy-applications-on-kuberne) An open-source project for deploying and managing applications on Kubernetes with a command-line interface. - [shipa.io: DevOps Challenge – Kubernetes Deployment: Ketch vs YAML](https://www.shipa.io/ketch/devops-challenge-kubernetes-deployment-ketch-vs-yaml/) - [naml: Not another markup language](https://github.com/kris-nova/naml) Framework for replacing Kubernetes YAML with Go. - \ No newline at end of file + +## Tweets +??? note "Click to expand!" + +
+ +
\ No newline at end of file