Reddit DevOps
266 subscribers
30.9K links
Reddit DevOps. #devops
Thanks @reddit2telegram and @r_channels
Download Telegram
Sample of applications that can be used for CI/CD and Kubernetes practice

I'm looking for sample of applications that can be used for practicing CI/CD pipeline and Kubernetes deployment.

Any suggestion?

https://redd.it/11rqcse
@r_devops
CCNA or Network+ for DevOps/Cloud

Hey everyone, I have a question.

Currently, I work in helpdesk and I want to transition into DevOps/Cloud engineering.

I already have my CKA, Terraform associate, and AWS solutions architect associate certification with hands-on lab experience and projects.

However, I want to gain more foundational knowledge on networking. I know some people don't care about certifications, but I really enjoy having a structured learning path.

I have looked into Network+ and CCNA, and while CCNA is definitely more in-depth, I don't know if it's worth learning all the Cisco commands if I know I won't be working with it.

On the other hand, people say Network+ is more broad but not really deep enough.

For those who already work as a DevOps engineer or Cloud engineer and have CCNA or Network+ certifications, which one is more worthwhile?

https://redd.it/11rqi7a
@r_devops
LAB: Getting Artifacts on a VM - Wrong Path

Hello,

I've been trying to get Artifacts on to a VM without success and was wondering if anyone have experience attempting to get Artifacts like DSC Modules on to a VM without the use of WinRM, or a self-hosted build agent?

I've been attempting to use something like Azure CLI

​

Variables:

Invoke: 'Powershell/InvokeFiles.ps1'

      - task: AzureCLI@2
inputs:
azureSubscription: '$(azureServiceConnection)'
scriptType: 'ps'
scriptLocation: 'inlineScript'
inlineScript: 'az vm run-command invoke --resource-group $(ResourceGroupName) --name $(VM) --command-id RunPowerShellScript --scripts $($(System.DefaultWorkingDirectory)/s/$(Invoke)'

However this doesn't seem to work for me as desired, since the Powershell script isn't found at all,

Giving me the following error:

>"message": "D:\\\\a\\\\1/s/Powershell/InvokeFiles.ps1 : The term 'D:\\\\a\\\\1/s/Powershell/InvokeFiles.ps1' is not recognized as the name of \\na cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, \\nverify that the path is correct and try again.\\nAt C:\\\\Packages\\\\Plugins\\\\Microsoft.CPlat.Core.RunCommandWindows\\\\1.1.15\\\\Downloads\\\\script1.ps1:1 char:1\\n+ D:\\\\a\\\\1/s/Powershell/InvokeFiles.ps1\\n+ \~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\\n + CategoryInfo : ObjectNotFound: (D:\\\\a\\\\1/s/Powershell/InvokeFiles.ps1:String) [\], CommandNotFoundExceptio \\n n\\n + FullyQualifiedErrorId : CommandNotFoundException\\n ",

The InvokeFiles.ps1 is a simple script taking files from a storage account, and then places it on to a VM, this works without any issue being done manually or on my workstation, however deploying it thougth DevOps seems to not work as intended since i'm refering to a wrong path?

​

Hope someone is capable of helping, and thanks.

https://redd.it/11rq6h4
@r_devops
Multi-environment rollout process for AML

Hello All I am finding it hard to understand the following story that I need to work on. I don't have much experience working with MLops. Do you guys have any understanding of wat to do for this story?


* Develop a system for automating the rollout of changes to multiple environments without manual intervention.
* Naming convention
* Environment-specific directory structure
* Branching and PRs
* Pipeline parametrization and instancing
* Ensure that the system is ready for multi-environment infrastructure state, change, and configuration management.
* Test and validate the system to ensure it meets the requirements and works correctly.

https://redd.it/11rt5rj
@r_devops
Goals and Steps on How to Develop MVP

As a company, you want to build a product quickly and get it out to customers as soon as possible so that you can collect feedback and use it to enhance future iterations. The product that is not ready yet but is already functional is called MVP. The MVP stands for “Minimum Viable Product” and is the essence of what you are trying to build.

What is the reason for developing MVP before releasing a full-featured solution?

## Why and How to Develop an MVP?

There are several reasons why an MVP is required prior to releasing a fully finished version of a product.

### Basic Goals of Building an MVP

* **Checking the viability of a product.** MVP assists in determining whether the developing product concept is worth considering. There is no sense in creating a product from start to finish if it is not tested. Minimum viable product shows whether the user’s response to the software is positive or not. Should you maintain working this way, or should you implement something else?
* **Spending less on building MVP.** Since the MVP building process involves only the key elements of a product, the budget for development is substantially decreased. You test and make modifications before committing to a full-scale launch, which saves a significant amount of money compared to how much improvements cost after a final product release.
* **Ensuring quick release.** The time needed to create and release a product is limited. In MVP, a team solves one problem at a time, which speeds up the overall [**development process**](https://qarea.com/blog/product-development-process-objectives-challenges-and-solutions). As a result of not piling up complex features, you get frequent and quick releases. The product is introduced to the public sooner than if you waited until it was finished. You can evaluate how the product behaves early.
* **Improving flexibility and guaranteeing constant updates.** The primary goal is [**to build MVP**](https://qarea.com/blog/why-mvp-development-should-be-outsourced) that keeps a product relevant throughout the entire development cycle, rather than visualizing and displaying the full version at the start. It occurs even when new technology or tools hit the market. MVP is 100% responsive to constantly changing requirements and new features the audience is constantly asking for.

The main reasons you might want **to develop MVP** first are to reduce the time it takes to release as well as the risk of your competitors launching something similar to the market, and get much faster feedback on the app’s core functionality. This helps to avoid spending tons of money and time developing something for no one. Minimum viable product allows you to test your product with actual customers and see whether they enjoy it and if you are on the right track with developing a specific feature. But how to create MVP properly?

Minimum viable product is not a mediocre design delivered every few weeks. To create an MVP that is the absolute essence of the product, you must remove every feature that is not required to get to the point. It should be designed in such a way as to answer the majority of questions before a final release.

Here is **how to build minimum viable product** in a few simple steps.

## How to Build MVP: Step-by-Step Checklist

MVP is developed through the following stages.

* **Identify the problem you want to resolve**. What are the pain points you would like to solve for your audience? Who is your audience? What will make your product competitive? Consider what people need you to build in addition to what you wish to create. Think of the problem rather than the solution.
* **Conduct market analysis.** A thorough market analysis beforehand is a must. Every aspect is taken into consideration. Identify the existing gap in the industry, which can be filled with the concept your future MVP process holds.
* **Specify the understandable idea.** Prepare all of your product ideas, give them a rough shape, and designate which one you are going to work on further. Evaluate the idea to
see if it is feasible and viable. Does the concept have market acceptance and potential?
* **Prioritize your features**. You do not want to simplify the software to the point where one of its core features is removed. The secret to creating MVP is to concentrate on a few important features. Prioritizing helps to point out all the elements you might want to have in your app. Basic features should not be sacrificed. Do not expand the limited scope of the product in the development process. Consider the user’s point of view, not only the developer’s or product manager’s.
* **Build an MVP and release**. Even though building an MVP does not fully represent the final version of a product, you should still maintain high quality in design, content, and user experience. The scope is limited, but the quality is not. The product must serve a target audience, focus at least on one problem, and be functional, usable, and comfortable. Create and release quickly.
* **Monitor the comments.** Seek feedback. Ask users to review the product. Incorporate user feedback into the development process to ensure the upgraded version meets the requirements. The purpose is not to obtain positive reviews, but to avoid bias and establish objectivity in gathering and analyzing them. Learn how to qualify feedback so that it benefits the company rather than harms it.

Based on the thorough market analysis and feedback obtained after creating an MVP, you can finally deliver the completed software to the market.

What is the proper method for implementing an MVP?

### How to Build a MVP Project Successfully?

**Keep track of your competitors**

Identifying the existing solutions helps to avoid pitfalls and flaws in what you are offering. How will your product assist your customers? Conducting competitive research before you build an MVP allows you to leverage the work of competitors as a foundation and learn more about what is not yet presented on the market. It is a starting point for deciding which market trends and opportunities to prioritize.

**Identify the ideal customer**

Who is more likely to be interested in your product? Each user group has its own preferences and requirements. Focus on a smaller number of people, since it is simpler and cheaper to reach them than if you were working for everyone on the market. Before deciding to develop an MVP model, do research. A market segmentation method eliminates irrelevant audience groups by using demographic, geographic, and behavioral factors like age, gender, occupation, region, purchase patterns, and others to obtain the data you need to better understand your possible target audience.

**Perform research**

Get an understanding of the problem and its solution. Answer the following questions: What is your market? Who is your audience? Which exact problem is your product meant to solve? What existing solutions does your competitor offer? Make a list of functions you want the product to have. Prioritize everything by categorizing them as must-haves, could-haves, and will-not-haves. Define success criteria for the [**MVP development process**](https://qarea.com/services/mvp-development) to evaluate desired results. Decide on the form of MVP you will be working with. One-feature or Product-mockup MVP?The best way to approach the project is to always begin with a minimum viable product that has just enough functionality to verify the concept without investing a lot of resources upfront. Always create an MVP to be ahead of the curve and prove the idea is working well.

https://redd.it/11ruzjc
@r_devops
I've come to the end of the DevOps road(map) - my mojo has gone.

I've been working in devops for quite a while and I don't think I find it rewarding anymore. It's not the technology stacks, I've always enjoyed being on the cutting edge of change, getting different things working together its more the mindset in the use or management of devops.

I dunno, I haven't enjoyed my last two jobs because of the internal politicing, the poor management, the lack of objectives and lack of direction.

Thing is I need a job because of family and cost of living etc, but I'm not sure I want to do devops work anymore.

I think I've become burnt out and disillusioned and I'm just venting as I decide my next steps

https://redd.it/11rv6rj
@r_devops
Do any of you guys do independent consulting? If so, how much do you charge?

I've been thinking about doing independent consulting on the side for a while (and eventually maybe go into it full-time). But the challenge is I already get paid pretty well, so I don't know what I'd charge for my time to a client. What's the typical going rate?

https://redd.it/11rx9e2
@r_devops
Does any one know how to add XML transformation and variable substitution in Github Actions for Azure Deployment?

Essentially my company are moving our deployments away from Azure DevOps to GH Actions (as we are fully switching over to AWS in the coming months) - However I still need to put together a pipeline that imitates the Azure App Service deploy job we have in DevOps.

The Issue I'm having is that the xml transformation + variable substitution part of the job is super important (for using the correct connection strings based on deployment environment for instance), but there doesn't seem to be any documentation about how to add this onto the "azure/webapps-deploy@v2" action I'm using.

Below is the deployment part of my pipeline, any help on this would be appreciated!

- name: Log in with Azure
uses: azure/login@v1
with:
creds: '${{ secrets.AZURECREDENTIALS }}'

- name: Deploy to staging # deploys to staging
id: deploy-to-staging
uses: azure/webapps-deploy@v2
with:
app-name: WebApp
slot-name: staging
package: ${{ env.RUNNER
TEMP }}/WebAppContent.zip
publish-profile: ${{ secrets.AZUREWEBAPPSTAGINGPUBLISHPROFILE }}

https://redd.it/11ruu5c
@r_devops
Job advice

After trying for more than a year trying to get into software dev position. I've largely given up in favor of a military application as a sysadmin.

I'm hoping this can be transitioned into some kind of dev-ops foot in the door, or is this widely unrealistic?

I'm kind of desperate at the moment.

https://redd.it/11rvrbd
@r_devops
Update notification tool

Any tool that notify you when a list of software that you decide receive an update?
Ideally with changelogs and filter on type of update to notify (major, minor, bug)?

https://redd.it/11s23tt
@r_devops
Personal docs

Hi,
I wanted to ask if anyone here using some free tool for personal documentation?
It can be related to work or something else.
Besides tool, how do you organize these docs?
I want to start documenting things, so any useful informations or recommendations will be helpful.
Thank you

https://redd.it/11s6aki
@r_devops
manage old dockerhub images

How do you keep track and solve the problem of old dockerhub images ? my own images are updated and rebuilt every day. no problems here. But i just noticed that i am using old images from dockerhub ( one of them is 5 years old :) ).

i was considering valid options arround this :

1. create a dockerfile using "FROM dockerhub/image" and adding apt-get update & upgrade. set the cicd and then using this image instead of dockerhub's
2. find a fork and use it
3. find a concurent project and migrate my config and use it
4. develop it my way

https://redd.it/11r91zj
@r_devops
Any recommended automations ?

Recently moved into a DevOps role and I’m relatively new to the DevOps realm.

Though, I have a decent understanding on how the tools work together and end goals.

With that said, I was curious to know if anyone implemented any automations in their day to day work that they would recommend ?

https://redd.it/11s93r9
@r_devops
Deploying to multiple environments using Gitlab-Terraform

So I am currently making the transition from cloud formation to gitlab-terraform and I'm trying to wrap my head around trunk based deployment. We've done branch-per-environment in the past and have seen the pitfalls of that, so I am trying to see if this is a better solution.

A few hurdles we have is that we have three environments: Dev, Test, and Prod. And we have two gitlab servers. One responsible for deploying to Dev and the other is responsible for deploying to Test and Prod. It's a requirement for security purposes that I don't really want to get into, but syncing code between servers isn't the issue I am having.

I am confused on using one branch to deploy to multiple environments. I currently have the standard gitlab ci-yml working and we also pull in auto.tfvars file during the setup phase to control environment specific values. On the success of a development merge, we sync the code to the 2nd gitlab server, so that it can be used in the test / prod environment.

I guess my question is how am I supposed to handle deploying to test and prod with a single MR? I could definitely do it sequentially, where I run through my stages [setup, validate, plan, deploy\] again and swap out the environment variable so that the correct tfvars comes. But that seems clunky / wrong?

What is the cleanest way of doing this? Am I supposed to have a pipeline that goes sequentially? Or is there a slicker way of doing test / prod in parallel where I have two plans at the same time representing both environments that can be manually deployed? I feel like I am missing something here and haven't really been able to find a full solution yet.

https://redd.it/11r7q66
@r_devops
I want to be able to deploy apps as quickly as possible to on-prem k8s. I was looking at Jenkins-x with their jx create command, looks pretty powerful, but it looks complicated to setup. Any easier alternatives?

What other cli tools are available to build an app on k8s?

https://redd.it/11sdyem
@r_devops
Does anyone using chatGPT in day to day task/ projects?

I have used it for a couple of projects i have been working on. And as well to produce best texts.

I would kike to know if how other professionals in our field are using this amazing tool.

https://redd.it/11sdwjq
@r_devops
How to manage and release features to different customers in both SaaS and self-hosted environments

Many organisations struggle with how to maintain a single repository and master branch to continuously deliver their software to their customers who require different features.

Some customers use online SaaS services, but some customers need to deploy in a private and self-hosted environment. You're struggling with how to keep the same released version.

If a new feature is only built for one particular customer at the beginning, you're struggling with how to canary ship a new feature to that particular customer and keep the same code for all the other customers.

You also struggle with how to respond quickly to customer requirements without involving too many engineers. If a customer success team can do that without engineers, that's perfect.

How to mitigate the situation?

Feature Flags Management Service is the must-have technology to solve these scenarios. Feature Flags is a modern engineering technology that decouples code deployments from feature releases, giving you control over who sees each feature and when they see it.

Feature Flags can be categorized into four pillars (Release Flag, Experimentation Flag, Operational Flag, and Permission Flag) in its lifecycle through development to customer success.

Operational flags and permission flags can be used to manage entitlements in software, which refers to controlling what features or functionality a user has access to based on their subscription or payment plan.

Release flags and experiment flags can help you to deliver a feature to a specific customer with minimal risk. It allows teams to test new features in production and progressively (percentage rollout) release the new feature to targeted customers to reduce the "blast radius".


I wrote an article of how to use feature flags to manage and release features to different customers in both SaaS and self-hosted environments. I hope this can help and get feedbacks.


How to manage and release features to different customers in both SaaS and self-hosted environments (featbit.co)

https://redd.it/11shfm5
@r_devops