Reddit DevOps
279 subscribers
70 photos
32.2K links
Reddit DevOps. #devops
Thanks @reddit2telegram and @r_channels
Download Telegram
*](https://istio.io/)\- One of the most popular service mesh projects on GitHub, Istio enables secure communication between services and provides the ability to apply policies to traffic. It also includes robust tracing and logging capabilities for all services.

## Runtime

Even in the cloud, there’s always someone else’s computer behind the scenes. That means hardware resources like storage, compute, and networking must be somehow provided to the cloud native application. The basics are still the same, but in a cloud native world, you need to abstract away from the underlying hardware. Manual processes and tools that are tied to a given server or physical location become impractical with cloud native.

These tools and platforms are geared towards the distributed, hyper-scale, high-performance demands of cloud native.

### Cloud native storage                

There are several big players in the cloud native storage space, including Amazon EBS (Elastic Block Store), Azure Disk Storage, and Dell EMC. However, we’d like to focus on open source solutions, since those are preferable in many cases and CNCF (rightfully) tends to have a cloud native bias.


Cloud native architecture places unique demands on the storage of data. Solutions must be scalable, resilient, and distributed. The ability to dynamically scale and automatically recover storage is a must at scale. Similarly, cloud native storage solutions should avoid platform lock-in and enable storage across multiple cloud service providers.

 Here are a few of the top open-source cloud native storage options:

* [**Rook**](https://rook.io/)\- Rook is a storage solution for K8s. It adds a layer of resilience, automation, and scalability to cloud native storage by focusing on self-healing, self-scaling, and self-management.
* [**OpenEBS**](https://www.openebs.io/)**-** OpenEBS is one of the biggest CAS (Container Attached Storage) solutions available. It is K8s native and runs completely in userspace. Two of the biggest benefits of OpenEBS are avoiding cloud platform lock-in and its quick & easy install process.
* [**StorageOS**](https://storageos.com/)\- StorageOS is a platform that delivers persistent storage built to run on any infrastructure. With a clear emphasis on extensibility and usability, StorageOS boasts compatibility with “any orchestration”, “any application”, and “any infrastructure”.

### Container runtime

“Container runtime” is an oft-misunderstood term. Container runtime is software that executes containers and manages container images on a node. As Daniel Walsh put it in [his post on Opensource.com](https://opensource.com/article/18/1/history-low-level-container-runtimes), container runtime manages container’s lifecycle by utilizing cgroups and namespaces of the kernel. It’s an overloaded term that is often confused with Docker itself.

Given that, you may be expecting this section to be just about [Docker](https://www.docker.com/). After all, it was once a monolith application that, apart from many other things, also managed container runtime. From the first glance, Docker abstracts away kernel resources and builds logically separated containers on top of them. What else do we need? Alena Varkockova did a good job answering this question in her [Medium piece](https://medium.com/@alenkacz/whats-the-difference-between-runc-containerd-docker-3fc8f79d4d6e). In short, as the container market matured, Docker application was separated into distinct microservices that now provide specific functionality (e.g. [containerd](https://blog.docker.com/2016/04/docker-containerd-integration/)).

So, beyond Docker and containerd, here are a few more container runtime projects worth noting:

* [**Firecracker**](https://firecracker-microvm.github.io/)**-** Traditionally, the tradeoff between containers and virtual machines has been viewed as one between being lightweight & fast (containers) or logically isolated & theoretically more secure (virtual machines). Firecracker aims to solve that problem by offering workload isolation and the speed of containers in a single
solution.
* [**gVisor**](https://gvisor.dev/)**-** gVisor helps layer security into Docker, containerd, and K8s. It helps serve as a lightweight container security tool for cloud native apps.

### Cloud native network

Automation, scalability, and resilience are key aspects of cloud native networking. One of the big potential “gotchas” of cloud native networking is ensuring network resources are released and reallocated when a given container is destroyed. By planning your cloud native network strategy properly you can avoid such problems, and create a robust and scalable service.

Cloud native networking tools enable scalable and automatic allocation of network resources. This, in turn, enables orchestration and management of your network resources at scale.

A few popular cloud native network projects are:

* [**Container Network Interface (CNI)**](https://github.com/containernetworking)\- CNI is a project focused on plugins for network interfaces on Linux containers and the specifications and libraries for writing them.
* [**Flannel**](https://github.com/coreos/flannel/)\- Flannel effectively enables subnet allocation and layer 3 networking for K8s. While this may seem simple, getting layer 3 right at scale can become complex. Flannel helps automate the process.
* [**Cilium**](https://cilium.io/)**-** Think about the myriad of challenges you could run into looking to use a traditional firewall like iptables with microservices. The visibility simply isn’t there. Cilium is an API-aware network security tool for Docker, K8s, and other container frameworks that helps address this issue.

# Provisioning

Manual infrastructure provisioning doesn’t scale well. To effectively scale out your application, the underlying infrastructure must be defined in the configuration files that would reside in a version control system. Having this done enables you to treat your infrastructure as code and automate its provisioning. As a result, you have an auto-scaling cloud native application.

Each of these subcategories dives deep into enabling provisioning of containers and microservices in an automated and scalable fashion.

### Automation & configuration management

Tribal knowledge and configurations details that only a few chosen team members know do not scale. Due to this reason, configuration management is the key DevOps process. By implementing IT operations practices like infrastructure as code, DevOps teams benefit from reproducibility, uniformity, and increased visibility in change management.

Cloud native automation and configuration tools allow configuration management at scale. Reproducible configuration files make it easy to deploy new servers with pre-defined ruleset or modify existing infrastructure at scale. Additionally, infrastructure as code helps to minimize differences between development and production environments, making your code run as expected once in production.

Some of the most popular configuration management tools include:

* [**Ansible**](https://www.ansible.com/)\- Ansible greatly simplifies configuration management and significantly reduces infrastructure complexity. Ansible Playbooks make otherwise challenging administrative tasks easier to roll out at scale.
* [**Puppet**](https://puppet.com/)\- Puppet is a holistic infrastructure automation and delivery tool. It enables automation of server configuration tasks, and [Project Nebula](https://puppet.com/project-nebula) is specifically targeted to cloud native apps.
* [**Terraform**](https://www.terraform.io/)\- Terraform is an infrastructure as code tool, that allows you to create declarative configuration files where you can map services from multiple cloud vendors, and automate multi-cloud infrastructure provisioning.

### Container registry

Container registries are simply repositories for container images.  A centralized and authoritative repository of container images helps build cloud native applications more rapidly. It allows you to quickly pull a known “good” image and use it as a building block in your application development. For many, a pu
blic registry like [Docker Hub ](https://www.docker.com/products/docker-hub)is sufficient. However, there are times where a more robust solution is required.

Companies use the container registry if they want to have more granular control over where the images are hosted. In simple terms, think of container registries as an on-prem or self-hosted version of Docker Hub.

Two popular container registries include:

* [**Docker Registry**](https://docs.docker.com/registry/)**-** Docker recommends using Docker Registry if you want tight control over where your images are, you want control over your image pipeline, and you want to integrate image storage into in-house workflows.
* [**Dragonfly**](https://d7y.io/en-us/)\- Dragonfly is an open-source file distribution system originally developed by Alibaba. It is built to be used with containers and K8s.

### Security and compliance

“Security is everyone’s responsibility” is a common refrain in the world of IT, and this is particularly true when it comes to cloud native application development. Since cloud native often means “everything” resides in the public cloud, there is plenty of room for error that could prove costly. With the ever-present threat of data breaches and the increasing importance of compliance to regulations like GDPR (General Data Protection Regulation), maintaining a strong security posture and adhering to regulations is more important than ever.

There are a variety of apps focused on enhancing the security of cloud native apps and making the process of integrating security easier. Here are some of the most useful:

* [**InSpec**](https://www.inspec.io/)**-** InSpec is a compliance solution from Chef. InSpec enables “compliance as code” by transforming security and compliance requirements into tests that can be automated.
* [JetStack Cert-Manager](https://www.jetstack.io/open-source/)\- Certificate management can be complex even for smaller web services. At scale, it can become a real challenge. Cert-Manager is a certificate management controller for K8s that keeps certs up to date and attempts automatic renewal before expiration.
* [**Clair**](https://coreos.com/clair/docs/latest/)\- Vulnerability scanning is a big part of keeping web services secure. It holds true whether they are cloud native or not. Clair is a tool for static vulnerability analysis of Docker and [appc](https://github.com/appc/spec)

### Key management

The principle of [least privilege](https://www.us-cert.gov/bsi/articles/knowledge/principles/least-privilege) and [zero trust](https://resources.infosecinstitute.com/zero-trust-security-what-is-it/) are popular approaches to security that many infosec professionals tout. A single compromised key can lead to a catastrophic breach. Therefore, it is no wonder securing encryption keys is fundamental to sound information security and identity management. In a cloud native world, identity and access management tools should scale easily.

Here are some popular key and identity management solutions for cloud native projects:

* [**KeyCloak**](https://www.keycloak.org/)\- KeyCloak is an Identity and Access Management tool that allows you to secure apps with minimal code. As opposed to authenticating directly against a given app, users authenticate using KeyCloak. KeyCloak supports Kerberos, social login, user federation, SAML 2.0, and more.
* [**ORY**](https://www.ory.sh/)\- ORY Hydra is an open-source Access Management tool that enables OAuth 2.0 and OpenID Connect. ORY Keto enables the creation of access management policies with granular rules based on specific attributes.

# Observability and Analysis

Feedback loops are vital to continuous improvement. If you are not monitoring and analyzing each aspect of your application, you may miss out on key areas of improvement until they impact users. The right tool can help you detect problems early on and build more robust applications. Think about it this way: if there is a memory leak, how soon would you want to detect it?  

Additionally, DevOps tools allow you to monitor performance and trigger
actions based on predefined conditions. It makes your system self-aware, being able to react to sudden changes more rapidly. If any given container is in poor health, proper monitoring can prevent significant performance impacts by quickly detecting and replacing broken containers.

Some of the more popular observability and analysis (or as I like to call it: monitoring) tools for cloud native are:

* [**Nagios**](https://www.nagios.com/)**-**Nagios has long been a major player in the on-prem monitoring world and has now effectively made the shift to cloud native. Nagios allows for centralized logging, alerting, monitoring, and notifications based on the data captured from your containers, K8s, and infrastructure.
* [**Zabbix**](https://www.zabbix.com/)\- Zabbix is a highly extensible open-source monitoring solution. It can monitor cloud services, applications, network resources, servers, and more. With over 300,000 installations, it is now clear that many organizations trust Zabbix, which has successfully rolled over into the world of cloud native and DevOps.

# Closing thoughts

That was our walk through the cloud native landscape as it relates to the cloud native stack. In addition to what we covered here, the CNCF also calls out a variety of [cloud native platforms](https://landscape.cncf.io/category=certified-kubernetes-distribution&format=card-mode&grouping=category) to choose from to run your cloud native apps, a list of  [Kubernetes Certified Service Providers](https://landscape.cncf.io/category=kubernetes-certified-service-provider&format=card-mode&grouping=category) and [Training Partners](https://landscape.cncf.io/category=kubernetes-training-partner&format=card-mode&grouping=category), and [serverless technologies](https://landscape.cncf.io/format=serverless). However, what we covered here is the focal point of cloud native: the cloud native stack. It is worth noting that you won’t necessarily need a tool from each category to deploy cloud native applications effectively, but as your business grows the right technology becomes increasingly important. If you are interested in learning more about DevOps and cloud native technology, [subscribe to our blog](https://blog.cherryservers.com/) or [contact us today](https://www.cherryservers.com/company/#contacts). We are passionate about DevOps and the [democratization of high-performance computing](https://blog.cherryservers.com/bare-metal-cloud-for-high-performance-computing), and we would love to help you identify the right solution for your workloads.

​

Originally posted on [https://blog.cherryservers.com/complete-overview-of-devops-cloud-native-tools-landscape](https://blog.cherryservers.com/complete-overview-of-devops-cloud-native-tools-landscape)

https://redd.it/dmwr6j
@r_devops
[Terraform] Reference a related resource by attribute

Hi. I am using the Hetzner Cloud provider (https://www.terraform.io/docs/providers/hcloud/r/server_network.html) to create servers and attach IPs from a private network to them. The only relationship between these two resources that I can see from the docs is that a server network (basically the representation of a server in the private network) references the server with the server_id attribute. Elsewhere, once both severs and server networks have been created, I need to find the private IP (server network) for each server. So the question is, how can I reference a resource by attribute? So I could find a server network by server_id, and get the private ip from the server network. Thanks in advance

EDIT: I found the lookup function which seems to work.

https://redd.it/dn22x8
@r_devops
Can we talk about titles?

I don't know what exactly to expect from this thread, but I think we have a title crisis in our industry. It's insanity. I'm a 'Systems Engineer' formally but what's does that even mean? It means totally different things to companies. I consider myself a Devops Engineer based on tooling alone but the goals of the team is more so about the availability of our systems if you think about the organization's goals rather than our ability to deploy code.



So what the hell am I (we)? Very fancy linux sys-admins? Cloud Engineers? Site Reliability Engineers? It makes looking for a job that fits your true skill set infuriating.

https://redd.it/dn7a21
@r_devops
Best way to proceed with black box server.

Hey so I think this is most likely the best option but I would love to hear some more opinions.

The company I work at has these black box web servers. Essentially windows servers with php and IIS roles. No documentation. No dev/engineer has any idea how they are built. That being said, these web servers house our stable version of our app while we have a new release on newer tech around the corner. So we aren’t tied to this configuration for long.

Now this week I have accomplished rebuilding these servers from scratch creating and documentation about it as well as automating what can be automated. The current problem is some things can’t be automated, but we want the ability to deploy scale sets and environments on demand through a pipeline. My current solution that I can think of is build an IIS/PHP base image, sysprep the machine, export to custom image in Azure. Then when we build our environments. We just use that image coupled with our configuration manager via the pipeline to deploy VMs > configure extra settings on top the image > deploy the code.

Is this my best option for something like this?

TLDR: company has black box servers, I figured out how to build them. I can’t automate all the steps. I will build Azure custom images and use those to configure and deploy code in an automated fashion. Is that the best option at this point?

https://redd.it/dn6hpr
@r_devops
send an email with the full elasticsearch message field when an error occurred

I am looking for a tool to send alert to email with the full message from elasticsearch when an error occurred.

We currently monitor the errors rate using grafana on top of elasticsearch by query \`level: "ERROR"\` and count.

If I will add to the query in grafana 'group by message' and the message is too long, grafana might now show the message and it will not send an alert.

I wonder if there is an opensource tool for it, Any suggestions?

Thanks

https://redd.it/dn5hwf
@r_devops
RKE provider for Terraform - upgrading Kubernetes and etcd backups/restores

Anyone using the (unofficial) RKE provider for Terraform to provision Kubernetes with Rancher's RKE? I am testing it now but I am wondering how to upgrade Kubernetes when a new version of the provider is available? Also, how do I take etcd snapshots manually or restore from an existing snapshot? When I terraform apply it doesn't save the rkestate and cluster.yml locally apparently (I think they are stored in Terraform's own state), so I can't run rke commands with rke binary directly.

Thanks

https://redd.it/dnfep1
@r_devops
A question About Devops

So I am just getting into IT and stuff but someone said that if I go to this Devops meetup thing and go to the classes they would get a job but the problem is that I don’t understand anything we are doing becuse I am just starting to get into IT so I don’t understand. The question I have is that is Doing Devops right now a waste ?

I forgot to add that I am only 18 year old right now .

https://redd.it/dngpit
@r_devops
Tutorial: Run Proxmox VE 6.0 using Vagrant

I wrote a tutorial on how to run the virtualization platform Proxmox VE 6.0 in a VM using Vagrant. I've mostly used this setup for Proxmox related development and testing. Maybe someone else will find it useful. :)

If you have any ideas on how I can improve the article, I'd really appreciate the feedback, thanks! :)

https://lunar.computer/posts/vagrant-proxmox-60/

https://redd.it/dngeoo
@r_devops
Jr Devops, remote jobs andscape

Hello Redditors,

I've been lately trying to move myself from networking (where I've worked mostly with ISP stuff like BGP, MPLS with several brands) to a devops role, I've acquired the AWS SA:A and working on AWS SysOps:A too, however I'm finding really hard to get a job for devops as a jr remotely.

I know how to code in python, speak english and spanish, git, cloudformation, a little bit of jenkins (some small labs), have worked a lot with linux and have done several labs including various tech in AWS and GCloud. I know quite a lot about networking since this is mostly what I've done in the past (around 5 years), I've also worked quite a lot remotely.

What do you think about the current landscape of this field for JRs who seek to work remotely? I am trying to work remotely because I live in latinamerica, devops here is... well null and when you find a job about that it's basically very very low paid (trying to get a salary increase).

Any ideas on where should I be looking? or if I should just suck it and find on-site jobs over here and then try the remote positions with more experience?

https://redd.it/dn0vtk
@r_devops
My company wants to start an analytics program. Advice what infra to use?

Hey,

I have a few questions as a totally analytics noob (but I'll be responsible for our analytics infra and code)

The company I work at wants to start a new analytics program after a pivot and new tech stack. Initially it will mostly support internal business intelligence with the intention that those analytics will turn into a customer facing product.

We currently use have a BI copy of all our postgres dbs and have mode analytics on top of that for our core transactional data. We also pump event analytics into segment. But product and marketing dont seem to be bought into that and keep talking about data warehouses and adhoc querying. A few product and marketing folks can use mode and amplitude but they dont seem happy about that saying it's too complex (ie. We use postgres jsonb for everything so queries are complex and support for relations to do joins and such is really hard)

Can anyone with analytics infra experience give me advice on how I should proceed? I am tasked with building our new analytics setup but without much experience i dont see the problems with out current set up.

Thanks!

https://redd.it/dnek6u
@r_devops
Are Azure certs worth it right now?

I feel like Azure certs haven't been very steady. By the time I start looking at material, it's already outdated or the video course is out dated. Thoughts?

https://redd.it/dnkvhb
@r_devops
Best interview questions?

I'm going to be on a hiring panel for an OpenShift admin. What are your best questions to understand a candidate fit for doing DevOps and problem solving.

https://redd.it/dn3l14
@r_devops
What is considered as advanced Jenkins knowledge or topics?

How do you identify if someone is Jenkins expert or has years of experience with it? What are some Jenkins advance topics an interviewer can ask a candidate about?

https://redd.it/dn3bia
@r_devops
Automate login to Azure in PowerShell using Connect-AzureAD

Hi, I have a PowerShell Core script that takes an AzureAD user name and assigns it access to a few AzureAD Enterprise apps in multiple Azure tenants.

I need to dockerize the script so it can be used to automate new user roll-on.

Currently it was made for manual execution. To do all the AzureAD actions I need to use Connect-AzureAD cmdlet to authenticate the session with Azure admin permissions.

I can do it manually (after using cmdlet it gives a code that I need to enter in MS authentication page) but this will not work in an automated pipeline.

Is there a way to automate this?

https://redd.it/dmxkig
@r_devops
How to automate outside teams?

In large corporations sometimes you can only go as fast as your slowest team. What are strategies to make teams who will not fully automate and upper management will not solve the issue? I am talking about teams other than software, such as legal. Is there a bottom up strategy that would work? A lot has already been tried with no success. The software teams already know how to automate the tasks, but people outside the software teams don’t want automation and they are experts in their field and fight upper management. This slows down the entire organization.

https://redd.it/dmwjb4
@r_devops
Spinnaker VS Terraform - can they co-exist?

We use Terraform extensively, for all our deployments. So much so than when I suggested we take a look at Spinnaker, there was a bit of hesitation because it might conflict with our existing Terraform IAC framework.

Can I make them work together? Should I? What really separates them? For me, the immutability of Terraform IAC is the most valuable aspect, aka being able to destroy and recreate from scratch and have everything exactly as declared. Can Spinnaker accomplish this as well?

I saw that Google uses Spinnaker and Apple had a position that also required it. if it's the next thing (Outside Netflix) I want to get into it. I started exploring it 2 years ago but it seems too complicated to get going. Now we have tutorials on running Spinnaker on Kubernetes (like v2 on EKS) and stuff.

I have a limited amount of time to invest implementing new techs. If this is not the way of the future, I can spent that time strengthening my knowledge of K8s, implementing Prometheus, which I know are both very required and marketable skills right now.

Anyone with experience care to chime in? Would love to hear some perspectives, thanks!

https://redd.it/dmwi41
@r_devops