<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.5">Jekyll</generator><link href="https://devopsloft.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://devopsloft.github.io/" rel="alternate" type="text/html" /><updated>2024-04-12T05:02:11+00:00</updated><id>https://devopsloft.github.io/feed.xml</id><title type="html">DevOps Loft Blog</title><subtitle>To be the meeting point for DevOps practitioners, past, present and future
</subtitle><author><name>Liora Milbaum</name></author><entry><title type="html">Minimal Viable Product</title><link href="https://devopsloft.github.io/minimal-viable-product/" rel="alternate" type="text/html" title="Minimal Viable Product" /><published>2023-07-23T00:00:00+00:00</published><updated>2023-07-23T00:00:00+00:00</updated><id>https://devopsloft.github.io/minimal-viable-product</id><content type="html" xml:base="https://devopsloft.github.io/minimal-viable-product/"><![CDATA[<p>Last week I shared that I started working on a slightly different project than
usual. Managing the permissions scheme for the tree of Git projects managed in
the namespaces tree in Gitlab.<br />
As <a href="https://www.facebook.com/ybgny.pynqyn">Evgeny</a> pointed out in the comments, one of the tools that might be
suitable is <a href="https://backstage.io/">backstage</a>. There are of course other tools in this domain.
<a href="https://www.getport.io/">port</a> is one of them.<br />
Strategically, this is definitely the right direction to go with, but on a
tactical level, when the chaos reigns and the engineering work is stuck due
to imprecise permissions, it is important to provide a tactical response. I call
it - MVP or alternatively quick and dirty solution.<br />
For the benefit of my project, I chose <a href="https://www.terraform.io/">terraform</a> as a development tool to
help me code the configuration. In addition, I decided (and not for the first
time) to break the deployment into very small parts. And each time deploy a
small change, stop, check the pulse and only after making sure that everything
is good to move on to the next step.</p>

<p>I have dug enough and therefore I will go to the stage of the identical
questions:-<br />
Did this post bring you new insights?<br />
Did you learn something you didn’t know before?<br />
Have you faced a similar challenge in a different way? in different tools?</p>

<p>Original Facebook post in Hebrew <a href="https://www.facebook.com/groups/devopsloft/posts/1882742192119309/">here</a></p>]]></content><author><name>Liora Milbaum</name></author><category term="DevOps" /><category term="Platform Engineering" /><category term="Efficiency Engineering" /><category term="Engineering Enablement" /><summary type="html"><![CDATA[Minimal Viable Product]]></summary></entry><entry><title type="html">Product Discovery</title><link href="https://devopsloft.github.io/product-discovery/" rel="alternate" type="text/html" title="Product Discovery" /><published>2023-07-17T00:00:00+00:00</published><updated>2023-07-17T00:00:00+00:00</updated><id>https://devopsloft.github.io/product-discovery</id><content type="html" xml:base="https://devopsloft.github.io/product-discovery/"><![CDATA[<p>Well… I missed my own deadline. Happens. Happened. Will happen.</p>

<p>Last week I was busy with a new and slightly different project.
Managing the permissions scheme for the tree of Git projects managed in the
namespaces tree in Gitlab.
On the face of it, it sounds uncomplicated. This is true until product discovery
is conducted. Do you know what is it?</p>

<!-- markdownlint-disable MD033 -->
<p><a href="https://www.productboard.com/blog/step-by-step-framework-for-better-product-discovery/">
  <img src="https://www.productboard.com/wp-content/uploads/2019/10/screen-shot-2022-02-14-at-11-56-33-am.png" style="display:block;float:none;margin-left:auto;margin-right:auto;width:50%" />
</a>
<!-- markdownlint-enable MD033 --></p>

<p>This is from the product domain. What is the connection between devops and
product. In most if not all of the organizations I’ve encountered, and I must
admit that I’ve encountered quite a few of these, the devops people receive a
short and concise requirement. Characterize the solution, implement and deploy.
And continue on more or less.
Most of the time this is satisfactory, but sometimes we forget that there are
users on the other side. Our users are the development people (not only). But
they deserve a good user experience if not better. We all want to implement
new features as quickly, as qualitatively, as we say. And in order for all this
goodness to happen, someone has to extract the requirements and understand in
depth what the users really need.<br />
This is where the product discovery process comes in. Sit with the helpers and
dig for them until you extract the maximum possible requirements. User-stories
are created from the requirements and from here the road to design,
implementation and deployment is already paved.</p>

<p>I have dug enough and therefore I will go to the stage of the identical
questions:-<br />
Did this post bring you new insights?<br />
Did you learn something you didn’t know before?<br />
Have you faced a similar challenge in a different way? in different tools?</p>

<p>Original Facebook post in Hebrew <a href="https://www.facebook.com/groups/devopsloft/posts/1879291159131079/">here</a></p>]]></content><author><name>Liora Milbaum</name></author><category term="DevOps" /><category term="Platform Engineering" /><category term="Efficiency Engineering" /><category term="Engineering Enablement" /><summary type="html"><![CDATA[Product Discovery]]></summary></entry><entry><title type="html">Getting Help</title><link href="https://devopsloft.github.io/getting-help/" rel="alternate" type="text/html" title="Getting Help" /><published>2023-07-10T00:00:00+00:00</published><updated>2023-07-10T00:00:00+00:00</updated><id>https://devopsloft.github.io/getting-help</id><content type="html" xml:base="https://devopsloft.github.io/getting-help/"><![CDATA[<p>After opening and closing parentheses in last week’s post, I’m back on track.
Not a question. Time is short and the work is plentiful.
The goal is - to set up a DEV environment with a Gitlab server and also a
runner running on minikube. And all this goodness using devcontainer and helm
chart.
In the previous post (not the one from last week. The one before it) I shared
that I ran into some problem that at the time I didn’t have the solution to. And
when I’m stuck, I also know how to ask for help. And the one who came to my aid
is <a href="https://www.facebook.com/GUY312">Guy Inger</a>. His <a href="https://github.com/platform-engineering-org/gitlab-runners/pull/34">PR</a> is still in the review stage, so if you have
something to contribute, add, feedback then now is the time.</p>

<p>What’s more, I came to know that there is no sufficient information in the
project about how to set up the DEV environment. Having the devcontainer
configuration files doesn’t make it clear enough for a new contributor. So
today, I will work on that too. I will improve the README and maybe I will find
a volunteer who wants to do a review for me.</p>

<p>I have dug enough and therefore I will go to the stage of the identical
questions:-<br />
Did this post bring you new insights?<br />
Did you learn something you didn’t know before?<br />
Have you faced a similar challenge in a different way? in different tools?</p>

<p>Original Facebook post in Hebrew <a href="https://www.facebook.com/groups/devopsloft/posts/1874558922937636/">here</a></p>]]></content><author><name>Liora Milbaum</name></author><category term="DevOps" /><category term="Platform Engineering" /><category term="Efficiency Engineering" /><category term="Engineering Enablement" /><summary type="html"><![CDATA[Getting Help]]></summary></entry><entry><title type="html">Platform Engineering</title><link href="https://devopsloft.github.io/platform-engineering/" rel="alternate" type="text/html" title="Platform Engineering" /><published>2023-07-02T00:00:00+00:00</published><updated>2023-07-02T00:00:00+00:00</updated><id>https://devopsloft.github.io/platform-engineering</id><content type="html" xml:base="https://devopsloft.github.io/platform-engineering/"><![CDATA[<p>Pausing for a second to share a video that made a lot of sense in my mind. In
recent months I hear more and more the concept of platform engineering.
Intuition felt to me that this was the next thing for me. Not exactly the next
but what is today and another layer. But I didn’t know how to explain to others
what it meant.</p>

<p>So receive the ultimate, clear and simple explanation with drums and dances.
A little less than 43 minutes. You don’t have to watch until the end because
there is no good without trying to sell me and you something. Lest it be implied
that there is anything wrong with this practice. I’m all for it.</p>

<!-- markdownlint-disable MD033 -->
<p><a href="https://www.youtube.com/watch?v=ghzsBm8vOms">
  <img src="https://i1.ytimg.com/vi/ghzsBm8vOms/maxresdefault.jpg" style="display:block;float:none;margin-left:auto;margin-right:auto;width:50%" />
</a>
<!-- markdownlint-enable MD033 --></p>

<p>I have dug enough and therefore I will go to the stage of the identical
questions:-<br />
Did this post bring you new insights?<br />
Did you learn something you didn’t know before?<br />
Have you faced a similar challenge in a different way? in different tools?</p>

<p>P.S. Want to talk to me one on one. Click on
<a href="https://calendly.com/lmilbaum/chitchat">link</a>.</p>

<p>Original Facebook post in Hebrew <a href="https://www.facebook.com/groups/devopsloft/posts/1869857730074422/">here</a></p>]]></content><author><name>Liora Milbaum</name></author><category term="DevOps" /><category term="Platform Engineering" /><category term="Efficiency Engineering" /><category term="Engineering Enablement" /><summary type="html"><![CDATA[Platform Engineering]]></summary></entry><entry><title type="html">Tech Journaling</title><link href="https://devopsloft.github.io/tech-journaling/" rel="alternate" type="text/html" title="Tech Journaling" /><published>2023-06-25T00:00:00+00:00</published><updated>2023-06-25T00:00:00+00:00</updated><id>https://devopsloft.github.io/tech-journaling</id><content type="html" xml:base="https://devopsloft.github.io/tech-journaling/"><![CDATA[<p>Lately I’ve had an aha moment that this group has become my personal travel
diary into the ins and outs of DevOps and Platform Engineering.
I came to know that I learn a lot through the journeys of others and also from
my own journey. A significant part of my time is devoted to exchanging opinions
with people from the industry, colleagues and even with those who work at Red
Hat but not in my organization. I highly recommend the practice.
I hope that one day this group will serve not only me. There is something
empowering about unpacking and receiving feedback.</p>

<p>Just FYI, I’m still on a quest to acquire <a href="https://github.com/kubernetes/kubernetes">kubernetes</a> knowledge. The journey
is going to be long and tiring. I realized that I have many holes in my
education. Remember the problem I ran into in the previous chapter? (Do not
answer, rhetorical question). I recalculated my route and realized that I was
trying to mix a DEV environment with a PROD environment, so the problem is a
problem. The runner that remains “registered” in the PROD environment pollutes
my environment. The conclusion is that there is no way to mix the environments.
I need a gitlab server in the DEV environment. One that is created when I deploy
an environment and one that is torn down when I don’t need it.
And therefore, I switched to a <a href="https://gitlab.com/gitlab-org/charts/gitlab">helm chart</a> that knows how to deploy both the
server and the runner in one operation. It turns out there is one. Maybe in the
future I will split, but right now it seems like a more correct move.<br />
This move also creates new challenges that I still can’t solve. It turns out
that the domain parameter is a mandatory one. The domain is used to access the
console or whatever you call it. Well… to the GitLab UI. But, I don’t have local
dns when I deploy <a href="https://minikube.sigs.k8s.io/">minikube</a> inside <a href="https://containers.dev/">devcontainer</a>. And to complicate
matters, browsing is done in a browser running on the host while the server runs
in a container running on the host. The plot gets complicated. There is a
situation where I put myself in hopeless challenges.
Of course I did the obvious and addressed the <a href="https://discord.com/channels/778180511088640070/1122227859201740820/1122227859201740820">general public</a> for help. This
time to the community of Gitlab users on Discord. Maybe salvation will come from
there. Until then I populated the parameter with something completely
<a href="https://github.com/platform-engineering-org/gitlab-runners/blob/main/values.yaml">random</a>.</p>

<p>I have dug enough and therefore I will go to the stage of the identical
questions:-<br />
Did this post bring you new insights?<br />
Did you learn something you didn’t know before?<br />
Have you faced a similar challenge in a different way? in different tools?</p>

<p>P.S. Want to talk to me one on one. Click on
<a href="https://calendly.com/lmilbaum/chitchat">link</a>.</p>

<p>Original Facebook post in Hebrew <a href="https://www.facebook.com/groups/devopsloft/posts/1865598790500316/">here</a></p>]]></content><author><name>Liora Milbaum</name></author><category term="DevOps" /><category term="Platform Engineering" /><category term="Efficiency Engineering" /><category term="Engineering Enablement" /><summary type="html"><![CDATA[Tech Journaling]]></summary></entry><entry><title type="html">Kubernetes - Gitlab runner</title><link href="https://devopsloft.github.io/kubernetes-gitlab-runner/" rel="alternate" type="text/html" title="Kubernetes - Gitlab runner" /><published>2023-06-18T00:00:00+00:00</published><updated>2023-06-18T00:00:00+00:00</updated><id>https://devopsloft.github.io/kubernetes-gitlab-runner</id><content type="html" xml:base="https://devopsloft.github.io/kubernetes-gitlab-runner/"><![CDATA[<p>I’m still on a journey to acquire <a href="https://github.com/kubernetes/kubernetes">kubernetes</a> knowledge. The tech wealth
(with light sarcasm) is significant.<br />
I made a little progress last week. In the previous chapter I shared that I
encountered a problem sharing secrets in both environments: DEV &amp; CI. So, I just
wanted to say that I got good feedback from you and others and in the end I
chose to go with <a href="https://github.com/kubernetes-sigs/kustomize">kustomize</a>. I came across this technology years ago but
only now the insight, why it is good, landed. What’s more, it seems to me that
the kubernetes community has officially adopted this technology (which probably
wasn’t the case when I first encountered it).</p>

<p>A short summary of what is already working in the <a href="https://github.com/platform-engineering-org/gitlab-runners">project</a>:</p>

<ul>
  <li>
    <p>DEV environment using <a href="https://containers.dev/">devcontainer</a> and the <a href="https://github.com/devcontainers/features/tree/main/src/kubectl-helm-minikube">feature</a></p>
  </li>
  <li>
    <p>Uploading and downloading the environment using <a href="https://www.gnu.org/software/make/">make</a>, <a href="https://minikube.sigs.k8s.io/docs/">minikube</a>,
<a href="https://github.com/kubernetes-sigs/kustomize">kustomize</a> &amp; <a href="https://github.com/helm/helm">helm</a></p>
  </li>
  <li>
    <p>CI environment using <a href="https://github.com/features/actions">GitHub Actions</a> &amp; <a href="https://docs.github.com/en/actions/security-guides/encrypted-secrets">GitHub Secrets</a></p>
  </li>
</ul>

<p>What’s more, I encountered a problem that started as soon as I transferred the
Gitlab Runner Token from the values file to the secret stored in the cluster.
When I download the environment, the registration of the runner is not deleted.
I made quite an effort to locate the problem and even tried to fix it. But I
still haven’t found a solution. And when I reach a kind of dead end, I <a href="https://forum.gitlab.com/t/gitlab-runner-helm-chart-runner-is-not-unregistering-when-using-secret/88389">turn to
the general public</a>, which is the community. There are two options. Either I
have a problem with the configuration or it’s a bug. I believe that I will have
a proper answer by the next chapter.</p>

<p>I have dug enough and therefore I will go to the stage of the identical
questions:-<br />
Did this post bring you new insights?<br />
Did you learn something you didn’t know before?<br />
Have you faced a similar challenge in a different way? in different tools?</p>

<p>P.S. Want to talk to me one on one. Click on
<a href="https://calendly.com/lmilbaum/chitchat">link</a>.</p>

<p>Original Facebook post in Hebrew <a href="https://www.facebook.com/groups/devopsloft/posts/1861548744238654/">here</a></p>]]></content><author><name>Liora Milbaum</name></author><category term="DevOps" /><category term="Platform Engineering" /><category term="Efficiency Engineering" /><category term="Engineering Enablement" /><summary type="html"><![CDATA[Kubernetes - Gitlab runner]]></summary></entry><entry><title type="html">Kubernetes - second round</title><link href="https://devopsloft.github.io/kubernetes-second-round/" rel="alternate" type="text/html" title="Kubernetes - second round" /><published>2023-06-11T00:00:00+00:00</published><updated>2023-06-11T00:00:00+00:00</updated><id>https://devopsloft.github.io/kubernetes-second-round</id><content type="html" xml:base="https://devopsloft.github.io/kubernetes-second-round/"><![CDATA[<p>Summary of the previous chapters on the way to the destination -
<a href="https://github.com/kubernetes/kubernetes">kubernetes</a>:<br />
I started with the project itself but encountered difficulties due to the
architecture of my laptop- macOS M1. I tried <a href="https://kind.sigs.k8s.io/">kind</a> which worked quite nicely
and also <a href="https://github.com/abiosoft/colima">colima</a>. Both worked on the laptop but I was not able (in the short
time I invested in them) to use them in CI. And finally, I got to <a href="https://minikube.sigs.k8s.io/docs/">minikube</a>
thanks to one recommendation from last week. I have an environment that works
both locally (development environment) and there is also an environment that
works in CI. And when I say local I mean the <a href="https://containers.dev/">dev container</a> environment.
This was made possible because there is a <a href="https://github.com/devcontainers/features/tree/main/src/kubectl-helm-minikube">feature</a> that fit me like a charm.
Oh, one more little detail… I proceeded to install gitlab ci runner using
<a href="https://docs.gitlab.com/runner/install/kubernetes.html">helm chart</a> and it worked like a dream.</p>

<p>What’s more, I haven’t yet found the elegant way to share secrets in both
environments. Right now, I’m using the values file in the DEV environment.
While in the CI environment I use <a href="https://docs.github.com/en/actions/security-guides/encrypted-secrets">GitHub Secrets</a>. Not the <a href="https://en.wikipedia.org/wiki/Don%27t_repeat_yourself">DRY</a>est to
say the least. A tech debt that I will close as soon as possible.</p>

<p>And below is the <a href="https://github.com/platform-engineering-org/gitlab-ci-runners">project</a> in which I implemented the entire tech stack
mentioned above.</p>

<p>I have dug enough and therefore I will go to the stage of the identical
questions:-<br />
Did this post bring you new insights?<br />
Did you learn something you didn’t know before?<br />
Have you faced a similar challenge in a different way? in different tools?</p>

<p>P.S. Want to talk to me one on one. Click on
<a href="https://calendly.com/lmilbaum/chitchat">link</a>.</p>

<p>Original Facebook post in Hebrew <a href="https://www.facebook.com/groups/devopsloft/posts/1857065694686959/">here</a></p>]]></content><author><name>Liora Milbaum</name></author><category term="DevOps" /><category term="Platform Engineering" /><category term="Efficiency Engineering" /><category term="Engineering Enablement" /><summary type="html"><![CDATA[Kubernetes - second round]]></summary></entry><entry><title type="html">Kubernetes - initial steps</title><link href="https://devopsloft.github.io/kubernetes-initial-steps/" rel="alternate" type="text/html" title="Kubernetes - initial steps" /><published>2023-06-04T00:00:00+00:00</published><updated>2023-06-04T00:00:00+00:00</updated><id>https://devopsloft.github.io/kubernetes-initial-steps</id><content type="html" xml:base="https://devopsloft.github.io/kubernetes-initial-steps/"><![CDATA[<p>I finally returned to Israel after a significant stay in Milan, Italy. Back to
Israeli time.<br />
Sunday at 10:00 a new post lands.<br />
Last week I updated that I am entering the world of Kubernetes. Yes yes… the
time<br />
has come even though I have been in business for years, just not at the level<br />
I would like to be at.<br />
So, I made a move forward and also one backwords. I said to myself, how do one<br />
starts with a new technology when the table is completely clean. For me the<br />
answer is quite clear. First of all, clone the project, go through the<br />
instructions and start a development environment.<br />
Oh, here I failed. It turns out that the combination of macOS M1 and<br />
Kubernetes still does not work smoothly. So, I took a step back and am trying<br />
a new approach. I took out of the attic my old laptop. At the time it was a<br />
bad beast. Macbook Pro based on Intel this time. I am trying. What will be<br />
will be. What is important is to try, at most I will succeed.<br />
In parallel, I’m also diving into <a href="https://kind.sigs.k8s.io/">kind</a>. For those who don’t know, it’s an<br />
abbreviation of Kubernetes in Docker. One of the lighter versions adapted to a<br />
local development environment and CI. That’s what they say. I haven’t tried yet.</p>

<p>I have dug enough and therefore I will go to the stage of the identical
questions:-<br />
Did this post bring you new insights?<br />
Did you learn something you didn’t know before?<br />
Have you faced a similar challenge in a different way? in different tools?</p>

<p>P.S. Want to talk to me one on one. Click on
<a href="https://calendly.com/lmilbaum/chitchat">link</a>.</p>

<p>Original Facebook post in Hebrew <a href="https://www.facebook.com/groups/devopsloft/posts/1852452395148289/">here</a></p>]]></content><author><name>Liora Milbaum</name></author><category term="DevOps" /><category term="Platform Engineering" /><category term="Efficiency Engineering" /><category term="Engineering Enablement" /><summary type="html"><![CDATA[Kubernetes - initial steps]]></summary></entry><entry><title type="html">Cocktail 1</title><link href="https://devopsloft.github.io/cocktail-1/" rel="alternate" type="text/html" title="Cocktail 1" /><published>2023-05-28T00:00:00+00:00</published><updated>2023-05-28T00:00:00+00:00</updated><id>https://devopsloft.github.io/cocktail-1</id><content type="html" xml:base="https://devopsloft.github.io/cocktail-1/"><![CDATA[<p>Yesterday I found out that a <a href="https://christaceygreen.com/blog/paved-paths-series-part-4-the-anatomy-of-paved-paths">new chapter</a> in the Paved Paths series was<br />
released. I still haven’t finished going through it and getting the<br />
information to sync in. From what I have already read, this is another<br />
excellent episode. One that has something to take from it and apply already<br />
today.<br />
As a live example, the <a href="https://github.com/devopsloft/devopsloft.github.io">project</a> behind devopsloft’s English blog. All the<br />
topics on the short and improving list are already there. And so that I don’t<br />
get confused, God forbid, I also bothered to add badges in the README to avoid<br />
misunderstandings.<br />
And now, with the information I have acquired in the field, I continue on and<br />
expand the canvas. And this time it is about one of the most exciting projects<br />
in the devops industry - <a href="https://github.com/kubernetes/kubernetes">kubernetes</a>.<br />
There is tons and tons of information about Kubernetes on the web. Since the<br />
forest is large and scattered, you can’t see the trees. My way of getting into<br />
things goes through my hands. That means, start from the bottom. This means,<br />
pick up a local environment and grow from there.<br />
Here too, the information is scattered and the road is really not paved<br />
(or it is and I still haven’t found the beginning of the route).<br />
I started with fork and clone and from there I continued to spin the<br />
environment according to the instructions (and there are quite a few of them<br />
scattered over several files).<br />
I still haven’t succeeded. I’ll update later.</p>

<p>I have dug enough and therefore I will go to the stage of the identical
questions:-<br />
Did this post bring you new insights?<br />
Did you learn something you didn’t know before?<br />
Have you faced a similar challenge in a different way? in different tools?<br />
A good and magical week.</p>

<p>P.S. Want to talk to me one on one. Click on
<a href="https://calendly.com/lmilbaum/chitchat">link</a>.</p>

<p>Original Facebook post in Hebrew <a href="https://www.facebook.com/groups/devopsloft/posts/1848153328911529/">here</a></p>]]></content><author><name>Liora Milbaum</name></author><category term="DevOps" /><category term="Platform Engineering" /><category term="Efficiency Engineering" /><category term="Engineering Enablement" /><summary type="html"><![CDATA[Cocktail 1]]></summary></entry><entry><title type="html">Paved Paths 2</title><link href="https://devopsloft.github.io/Paved-Paths-2/" rel="alternate" type="text/html" title="Paved Paths 2" /><published>2023-05-21T00:00:00+00:00</published><updated>2023-05-21T00:00:00+00:00</updated><id>https://devopsloft.github.io/Paved%20Paths-2</id><content type="html" xml:base="https://devopsloft.github.io/Paved-Paths-2/"><![CDATA[<p>Following on from last week’s post. The series of blog posts talks about paved
paths.<br />
I won’t tell you what it means. Read the series (which is not yet completed).
The writers explain it really well and clearly.<br />
I have been thinking with myself since I came across the topic about how it is<br />
actually applied in the environment I work in.<br />
It’s true, it’s still WIP (work in progress). But, I already have several<br />
processes and technologies that I can put on the table here.<br />
Below is my initial list:-</p>

<ul>
  <li>Static code analysis - <a href="https://github.com/pre-commit/pre-commit">pre-commit</a>. I make sure every project I work on
including open source projects, are onboarded.<br />
There are several areas in the development lifecycle it can be applied:
    <ul>
      <li>Locally, by IDE extensions which warn/correct while editing the code</li>
      <li>Locally, which is triggered by the <code class="language-plaintext highlighter-rouge">git commit</code> command</li>
      <li>In CI, catching the cases where it was not run locally</li>
    </ul>
  </li>
  <li>Automatic dependency update - <a href="https://github.com/renovatebot/renovate">renovate</a>. I’ve been digging into this topic
quite a bit in the last few weeks. Say no more.</li>
  <li>A development environment inside a container. Instead of installing and
maintaining on my computer(s) all the tools required to run an environment
all that is required is docker or podman or any other containers engine.<br />
Two options for activation:
    <ul>
      <li>Local - <a href="https://github.com/devcontainers">devcontainer</a></li>
      <li>Remote - <a href="https://github.com/features/codespaces">codespaces</a> or <a href="https://www.gitpod.io/">gitpod</a></li>
    </ul>
  </li>
</ul>

<p>I have dug enough and therefore I will go to the stage of the identical
questions:-<br />
Did this post bring you new insights?<br />
Did you learn something you didn’t know before?<br />
Have you faced a similar challenge in a different way? in different tools?<br />
A good and magical week.</p>

<p>P.S. Want to talk to me one on one. Click on
<a href="https://calendly.com/lmilbaum/chitchat">link</a>.</p>

<p>Original Facebook post in Hebrew <a href="https://www.facebook.com/groups/devopsloft/posts/1843968359330026/">here</a></p>]]></content><author><name>Liora Milbaum</name></author><category term="DevOps" /><category term="Platform Engineering" /><category term="Efficiency Engineering" /><category term="Engineering Enablement" /><summary type="html"><![CDATA[Paved Paths 2]]></summary></entry></feed>