<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Distr</title>
    <description>The latest articles on DEV Community by Distr (@distr).</description>
    <link>https://dev.to/distr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F7741%2F0697275f-69e8-4986-bd0b-20d39acf3cfa.png</url>
      <title>DEV Community: Distr</title>
      <link>https://dev.to/distr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/distr"/>
    <language>en</language>
    <item>
      <title>Alerts for self-hosted customer deployments</title>
      <dc:creator>Louis Weston</dc:creator>
      <pubDate>Tue, 17 Feb 2026 21:12:02 +0000</pubDate>
      <link>https://dev.to/distr/alerts-for-self-hosted-customer-deployments-487a</link>
      <guid>https://dev.to/distr/alerts-for-self-hosted-customer-deployments-487a</guid>
      <description>&lt;p&gt;TL;DR: &lt;a href="https://github.com/distr-sh/distr" rel="noopener noreferrer"&gt;Distr&lt;/a&gt; is an Open Source platform to distribute applications to on-prem, BYOC, and air-gapped customers. It now supports alerts so you get notified about failed updates, crash loops, or unreachable deployments before your customers do.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Visibility Gap
&lt;/h2&gt;

&lt;p&gt;For your own application, you’ve got this figured out. Grafana alerts, PagerDuty, whatever. Something breaks in production, you know about it in minutes.&lt;/p&gt;

&lt;p&gt;For self-hosted customer deployments? Nothing. Radio silence unless they open a ticket.&lt;/p&gt;

&lt;p&gt;You have all this sophisticated monitoring for your own infrastructure, but the moment your software crosses over to customer-controlled environments, you’re flying blind. You find out things are broken when your customer tells you they’re broken. Sometimes days later.&lt;/p&gt;

&lt;p&gt;You can’t SSH into every customer deployment and tail logs. That doesn’t scale, and frankly, your customers probably wouldn’t let you even if you wanted to.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Built
&lt;/h2&gt;

&lt;p&gt;Alerts in Distr work for both sides:&lt;/p&gt;

&lt;p&gt;Distr lets you configure alerts in the Vendor portal. Set them once, they apply everywhere. Or get granular if you want.&lt;/p&gt;

&lt;p&gt;For customers that manage and update the deployments themselves, you can enable alerts for them as well so they can configure their own alerts in the Customer portal.&lt;/p&gt;

&lt;p&gt;This dual approach matters because not all customer relationships look the same. Some of your customers want you monitoring their deployments—they’d rather you catch issues first and fix them proactively. Others prefer to run their own ops and want full control over who gets notified when.&lt;/p&gt;

&lt;p&gt;For example, you’ll get alerted if an update fails or gets stuck looping, if we lose contact with a deployment (network issues, dead instance, whatever), or if your app’s in a crash loop. We filter out normal restarts from successful updates though—no point spamming you about routine operations.&lt;/p&gt;

&lt;p&gt;The details on setting this up are in the alerts documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Helps
&lt;/h2&gt;

&lt;p&gt;The main thing is you catch issues before your customer does. That’s worth a lot.&lt;/p&gt;

&lt;p&gt;We had one customer who didn’t realize their deployments were in a crash loop for two days because the app was restarting fast enough that it looked “up” when they checked. With alerts, that would’ve been caught in the first 10 minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;If you’re already using Distr, alerts are available now. Vendor settings for your side, customer portal for theirs. Takes about 30 seconds to configure.&lt;/p&gt;

&lt;p&gt;If you’re not using Distr yet and you’re dealing with software distribution to on-prem or customer-controlled infrastructure… well, &lt;a href="https://cal.glasskube.com/team/gk/demo" rel="noopener noreferrer"&gt;we should probably talk&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let us know what you think, we would love to hear from you or support us by leaving a star:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/distr-sh/distr" rel="noopener noreferrer"&gt;⭐ distr-sh/distr ⭐&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>opensource</category>
      <category>containers</category>
      <category>automation</category>
    </item>
    <item>
      <title>Glasskube Launch week #2: The wrap up</title>
      <dc:creator>Jake Page</dc:creator>
      <pubDate>Wed, 18 Sep 2024 10:15:00 +0000</pubDate>
      <link>https://dev.to/distr/glasskube-launch-week-2-the-wrap-up-39gp</link>
      <guid>https://dev.to/distr/glasskube-launch-week-2-the-wrap-up-39gp</guid>
      <description>&lt;p&gt;And just like that, our second launch week is in the books. Trying to emulate the success of companies like &lt;a href="https://supabase.com/launch-week" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt; and &lt;a href="https://signoz.io/launch-week/" rel="noopener noreferrer"&gt;SigNoz&lt;/a&gt; is a tall order, especially for a team that's still new to the launch week game. But one thing's for sure: successful launch weeks are a skill acquired through experience, and finding what works specifically for your project. We learned a ton from this one, and we're confident that future launches will be even more impactful.&lt;/p&gt;

&lt;p&gt;The best part? This launch was already a resounding success, delivering immense value. Before we dive into the key actions and outcomes, here's a quick TL;DR for those in a hurry.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🚀 We shared a new feature everyday on &lt;a href="https://x.com/glasskube/status/1833226176556634316" rel="noopener noreferrer"&gt;X&lt;/a&gt; and &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7239000640167784448/?actorCompanyId=83055300" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;, check them out here. &lt;/li&gt;
&lt;li&gt;💖 We got so much valuable support and feedback on Hacker News &lt;/li&gt;
&lt;li&gt;🥉 We came in 3rd on Dev Hunt &lt;/li&gt;
&lt;li&gt;🎉 We organised our first &lt;a href="https://lu.ma/xmanowsv?tk=7MBmoi" rel="noopener noreferrer"&gt;San Fransisco Kubernetes meetup&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;📈 We gathered some unexpected and exciting metrics and feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s take each item and explore them a little bit more in detail&lt;/p&gt;

&lt;h2&gt;
  
  
  A feature a day 📅
&lt;/h2&gt;

&lt;p&gt;The theme for this launch week was loud and clear: Glasskube is GitOps ready! Most of the features we showcased support our new GitOps functionalities in one way or another. If you remember just one thing, let it be this: thanks to our latest features, Kubernetes package management can now be handled the GitOps way.&lt;/p&gt;

&lt;p&gt;Eager to get started? Check out the &lt;a href="https://github.com/glasskube/gitops-template" rel="noopener noreferrer"&gt;Glasskube GitOps template&lt;/a&gt; for a working example of what's possible.&lt;/p&gt;

&lt;p&gt;Here's a quick recap of the features we shared:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Glasskube is &lt;a href="https://glasskube.dev/blog/launch-week-number-2/#1-glasskube-is-gitops-ready-with-argocd" rel="noopener noreferrer"&gt;"GitOps ready"&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The Glasskube &lt;a href="https://github.com/glasskube/gitops-template" rel="noopener noreferrer"&gt;GitOps template&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://glasskube.dev/docs/integration/renovate/" rel="noopener noreferrer"&gt;Renovate&lt;/a&gt; integration&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://glasskube.dev/products/hub/" rel="noopener noreferrer"&gt;Glasskube Hub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Glasskube &lt;a href="https://glasskube.dev/docs/design/package-scopes/" rel="noopener noreferrer"&gt;package scopes&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's dive deeper into each one!&lt;/p&gt;

&lt;h2&gt;
  
  
  Successful Show Hacker news launch 📰
&lt;/h2&gt;

&lt;p&gt;On Tuesday, we launched the GitOps template on &lt;a href="https://news.ycombinator.com/item?id=41502453" rel="noopener noreferrer"&gt;Show HN&lt;/a&gt;. We were blown away by the insightful engineers who gave it a go and came back with thought-provoking, challenging questions, the kind of feedback that's pure gold for us.&lt;/p&gt;

&lt;p&gt;Finding smart, generous people who dedicate time to giving valuable constructive feedback is rare, and we're incredibly lucky to have found it again in the Hacker News community.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcsq8afg78g2m9sxolh4h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcsq8afg78g2m9sxolh4h.png" alt="hacker news" width="633" height="87"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of this feedback even sparked GitHub issues and Discord conversations that have been incredibly fruitful and will undoubtedly leave a lasting mark on the project. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Not on the Glasskube Discord server? Join us &lt;a href="https://discord.gg/STk5Z3nFmT" rel="noopener noreferrer"&gt;here&lt;/a&gt;! &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Top 3 dev hunt 🚀
&lt;/h2&gt;

&lt;p&gt;Launch weeks are the perfect time to test assumptions and explore new platforms and tools. This time, we decided to give &lt;a href="https://devhunt.org/tool/glasskube" rel="noopener noreferrer"&gt;DevHunt&lt;/a&gt; a shot, a platform similar to Product Hunt, but tailored towards developer tools. While the audience is smaller than on sites like Product Hunt, we figured it was worth a try. After all, it's not just about quantity, but the quality of the members on the site. And I have to admit, if you're building a developer tool, you might get fewer upvotes on DevHunt, but the potential to find users who are closer to a perfect fit for your target persona is much higher. We're thrilled to have landed in 3rd place!&lt;/p&gt;

&lt;h2&gt;
  
  
  Our first every San Francisco meetup 🌉
&lt;/h2&gt;

&lt;p&gt;Why not mix it up any throw in an IRL event into the mix too. On Thursday we celebrated our first ever Kubernetes, DevOps and Security related meetup in San Francisco with more than 100+ sign-ups. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6hjt28vrpvknhth2e2j8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6hjt28vrpvknhth2e2j8.png" alt="meetup" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We had three great speakers who took the stage to bring technically rich yet super egnaging talks on the following topics: &lt;/p&gt;

&lt;p&gt;​- &lt;a href="https://www.linkedin.com/in/gentele/" rel="noopener noreferrer"&gt;Lukas Gentele (Loft Labs)&lt;/a&gt;: Tenant Autonomy &amp;amp; Isolation In Multi-Tenant Kubernetes Clusters - A Comprehensive Guide&lt;br&gt;
​- &lt;a href="https://www.linkedin.com/in/pmigat/" rel="noopener noreferrer"&gt;Philip Miglinci (Glasskube)&lt;/a&gt;: The State of Package Management on Kubernetes&lt;br&gt;
​- &lt;a href="https://www.linkedin.com/in/ramiroberrelleza/" rel="noopener noreferrer"&gt;Ramiro Berrelleza (Okteto)&lt;/a&gt;: Your AI team doesn't need a platform, but a paved ramp sure can help!&lt;/p&gt;

&lt;p&gt;The turnout and the vibe were amazing. To cap the evening off we had a great networking session fueled by a generous amount of Pizza. We might have overdone it, but can you really ever have enough pizza? &lt;/p&gt;

&lt;p&gt;If you weren’t able to miss it, don’t worry. We will be organizing more and will make sure to explore other locations also. &lt;/p&gt;

&lt;p&gt;Thanks to everyone who joined!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc02tiurbe8y0srtas59.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc02tiurbe8y0srtas59.png" alt="pizza picture" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Community feedback 🗣️
&lt;/h2&gt;

&lt;p&gt;While there are amazing companies that pull off launch weeks with seemingly endless reach and impact, this section highlights why any project, at any stage, should embrace them. The truth is, no level of social media reach or post impressions can replace real, tangible community feedback and action.&lt;/p&gt;

&lt;p&gt;A perfect example from this launch week is a community member who challenged the very conception of one of our newest features by spurring a conversation via &lt;a href="https://github.com/glasskube/glasskube/discussions/1220" rel="noopener noreferrer"&gt;GitHub discussions&lt;/a&gt;. This type of feedback is invaluable to us, and we genuinely welcome it. It's one of the main reasons we feel this launch week was so worthwhile.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reaching key metrics 📊
&lt;/h2&gt;

&lt;p&gt;Even though this launch week was primarily about sparking conversations with real Glasskube users and gathering feedback, we're happy to report some interesting key metrics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Over 100% website view growth&lt;/li&gt;
&lt;li&gt;Over 10% increase in real user installations&lt;/li&gt;
&lt;li&gt;2 days featured on the Show Hacker News page&lt;/li&gt;
&lt;li&gt;20+ Glasskube cloud signups&lt;/li&gt;
&lt;li&gt;+2 new Glasskube contributors&lt;/li&gt;
&lt;li&gt;Over 2400 impressions on Dev Hunt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Launch weeks are like a finely tuned orchestra playing in sync. Each day requires well-planned, prepared, and executed actions. As the week progresses, you build momentum, using it to amplify your message. We're excited to apply everything we've learned to our next launch. Nobody said launch weeks are easy, but with careful planning, scheduling, and execution, you can create a beautiful symphony.&lt;/p&gt;

&lt;p&gt;Thanks for joining us on this ride, and we'll see you at the next one!&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>cloud</category>
      <category>devops</category>
      <category>beginners</category>
    </item>
    <item>
      <title>2024: A new frontier for Kubernetes package management</title>
      <dc:creator>Jake Page</dc:creator>
      <pubDate>Mon, 19 Aug 2024 10:27:27 +0000</pubDate>
      <link>https://dev.to/distr/2024-a-new-frontier-for-kubernetes-package-management-28m5</link>
      <guid>https://dev.to/distr/2024-a-new-frontier-for-kubernetes-package-management-28m5</guid>
      <description>&lt;p&gt;2024 has been an action-packed year for &lt;a href="https://glasskube.dev/" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt;. In February, we launched a Kubernetes manager that was initially developed internally by our team following an unsuccessful product launch that failed to take off in part due to limitations in currently used package management tooling. After this lukewarm Kubernetes operator debut, Glasskube founders &lt;a href="https://www.linkedin.com/in/pmigat/" rel="noopener noreferrer"&gt;Philip&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/louisnweston/" rel="noopener noreferrer"&gt;Louis&lt;/a&gt; shared their launch post-mortem on Hacker News. They discovered that many others were experiencing similar frustrations with the existing package management solutions for Kubernetes. Recognizing this shared pain, a product pivot became inevitable, and the Glasskube package manager began to take shape.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8z9kjsjsff7p8jtertau.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8z9kjsjsff7p8jtertau.png" alt="the-start" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, it’s only mid-August of the same year, and we are already closing in on 1.5 million downloads, 2.6k GitHub stars, and 50+ contributors. We've witnessed significant growth in adoption, features, and use cases. As we continue to evolve, we wanted to take a moment to reflect on the work we've accomplished so far. This blog post serves as a comprehensive update, a flag in the road, to share everything you need to know about the current state of Glasskube, what’s on the horizon, and how you can help shape the future of Kubernetes package management.&lt;/p&gt;

&lt;p&gt;Welcome to the new frontier of Kubernetes Package Management.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why Kubernetes needs better package management
&lt;/h3&gt;

&lt;p&gt;Since its inception &lt;a href="https://kubernetes.io/" rel="noopener noreferrer"&gt;Kubernetes&lt;/a&gt; as a container orchestration system has never stopped growing in popularity and its adoption keeps increasing. In recent years, the number of &lt;a href="https://landscape.cncf.io/" rel="noopener noreferrer"&gt;available packages&lt;/a&gt; has grown from about 100 to over 800. This growth by all means is very impressive and shows the maturity of the Kubernetes ecosystem, but it has also shined a light on the problems with current package management tools. Developers often struggle with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Complex and highly bespoke workflows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time-consuming and many times manual processes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An over-reliance on current package manager tooling that leave a lot to be desired.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These issues can lead to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;More work for operations teams&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Non-scalable workflows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Possible security risks&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's clear that Kubernetes needs a way to manage packages that evolve in the way that modern-day Kubernetes clusters are used, that is in a more automated and overall declarative way.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Glasskube?
&lt;/h3&gt;

&lt;p&gt;Glasskube is an open-source package manager made for Kubernetes. It aims to make installing, updating, and setting up packages easier and faster. In fact, it can be up to 20 times quicker than tools like Helm or Kustomize.&lt;/p&gt;

&lt;p&gt;Glasskube took ideas from easy-to-use package managers like &lt;code&gt;Homebrew&lt;/code&gt; and &lt;code&gt;npm&lt;/code&gt;. It offers two ways to manage packages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A graphical user interface (GUI)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjq8s43psmq7iirfelktz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjq8s43psmq7iirfelktz.png" alt="Glasskube-UI" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A command-line interface (CLI)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube serve # to access the Glasskube UI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Current tools: Helm and Kustomize
&lt;/h3&gt;

&lt;p&gt;Helm and Kustomize are two main tools for managing Kubernetes packages. They help set up and run applications in Kubernetes, but work differently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Helm&lt;/strong&gt; uses templates to create Kubernetes yaml files. It packages apps into "charts," which are sets of YAML files. Some of it’s benefits are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Configuring complex apps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It shines at app installation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rolling back changes is straightforward&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It’s highly adopted&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Kustomize&lt;/strong&gt; takes a different approach and many times works in conjunction with Helm. It lets users:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Set up basic app configurations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add changes for different environments&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid complex templating&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Problems with existing tools
&lt;/h3&gt;

&lt;p&gt;While Helm and Kustomize are useful, they can cause issues for developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Helm&lt;/strong&gt; can be tricky:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Hard to learn due to complex templates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customizing apps for different setups can be confusing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CRD updates are not possible&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Updates are clunky&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Helm is inherently one-sided, after installation its job is done.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Kustomize&lt;/strong&gt; has its own problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;No built-in way to manage packages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Users need other tools to share their setups&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Handling complex dependencies can be hard&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Less automated than Helm for managing app lifecycles&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These issues show why a simpler package manager for Kubernetes is needed. This is where Glasskube comes in, aiming to make the whole process easier.&lt;/p&gt;

&lt;h3&gt;
  
  
  Care to support us?
&lt;/h3&gt;

&lt;p&gt;If this is the first time you've heard of Glasskube, we are working to build the next-generation &lt;code&gt;Package Manager for Kubernetes&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you like our content and want to support us on this mission, we'd appreciate it if you could give us a star ⭐️ on &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" alt="star-gif" width="480" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐️ Star us on &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; 🙏&lt;/p&gt;

&lt;h2&gt;
  
  
  Glasskube explained
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How Glasskube works
&lt;/h3&gt;

&lt;p&gt;Glasskube makes managing Kubernetes packages easier. It offers two ways to use it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;A graphical interface (GUI)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A command-line interface (CLI)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Glasskube uses a central package repository called the &lt;a href="https://glasskube.dev/products/hub/" rel="noopener noreferrer"&gt;Glasskub Hub&lt;/a&gt; that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Aware of package dependencies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Works well with GitOps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Updates packages automatically&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Allows for multiple public and private package repositories to be referenced   &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6so2y2e6c6crcnc9mqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6so2y2e6c6crcnc9mqu.png" alt="glasskube-archetecture" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Probably most importantly, Glasskube has client and server-side components. The server-side components constantly track the health status and desired state of the installed packages. The server-side components are the:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PackageController&lt;/strong&gt;: communicates with the Kubernetes API to deploy and reconcile packages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PackageInfoController:&lt;/strong&gt; reads package manifests from the configured backend package repositories to determine the state of truth of the cluster packages.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Main features
&lt;/h3&gt;

&lt;p&gt;Glasskube has several key features:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjlf9dodm4focl1fwshl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjlf9dodm4focl1fwshl.png" alt="main-features" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Solving common issues
&lt;/h3&gt;

&lt;p&gt;Glasskube directly addressed gaps that other Kubernetes package managers have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It's easier to use than Helm, which can be hard for new users&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It handles dependencies better than Kustomize, which doesn't have built-in package management&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It works well with GitOps, making it easier to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Roll back changes&lt;/li&gt;
&lt;li&gt;  Upgrade apps&lt;/li&gt;
&lt;li&gt;  Work together as a team&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Package scopes help to be more efficient with package installation and package sharing. Ex. if multiple packages depend on cert-manager, one instance will be enough to serve more than one package.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Have easy access to packages with frontends without having to manually portforward&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to set up Glasskube
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What you need to install
&lt;/h3&gt;

&lt;p&gt;Before you start, make sure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A working Kubernetes cluster, &lt;a href="https://minikube.sigs.k8s.io/docs/start/?arch=%2Fmacos%2Farm64%2Fstable%2Fbinary+download" rel="noopener noreferrer"&gt;minikube&lt;/a&gt; is an easy alternative for a quick local setup.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://kubernetes.io/docs/tasks/tools/" rel="noopener noreferrer"&gt;kubectl&lt;/a&gt; installed on your computer&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step-by-step installation guide
&lt;/h3&gt;

&lt;p&gt;Here's how to set up Glasskube:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install Glasskube CLI&lt;/strong&gt;: Open your terminal and run on MacOs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install glasskube/tap/glasskube
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For other installation methods click &lt;a href="https://glasskube.dev/docs/getting-started/install/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bootstrap Glasskube&lt;/strong&gt; to install the server-side components by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube bootstrap
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Check the installation&lt;/strong&gt; Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure both Glasskube and the package-operator are installed and running the same version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube: v0.17.0
package-operator: v0.17.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Using Glasskube: Key functions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Access the GUI
&lt;/h3&gt;

&lt;p&gt;Glasskube makes it easy to add and remove packages in your Kubernetes cluster:&lt;/p&gt;

&lt;p&gt;To add a package:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Install packages
&lt;/h3&gt;

&lt;p&gt;Any package available in the Glasskube hub is ready to be installed&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube install &amp;lt;package-name&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will then request confirmation on the package version before installing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To remove a package:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube uninstall &amp;lt;package-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Managing package dependencies
&lt;/h3&gt;

&lt;p&gt;Glasskube takes care of package dependencies for you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;When you install a package, it automatically installs any required dependencies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This saves time and prevents errors from missing components&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;In the example below upon installing the &lt;code&gt;keptn&lt;/code&gt; package, an instance of cert-manager will also be installed if not already present in the cluster.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd3z5pcy7noz2wws95uke.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd3z5pcy7noz2wws95uke.png" alt="keptn-dependency" width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Handling package configurations
&lt;/h3&gt;

&lt;p&gt;You can easily change or view package settings with Glasskube, note that &lt;strong&gt;not&lt;/strong&gt; &lt;strong&gt;all packages&lt;/strong&gt; have custom value configurations:&lt;/p&gt;

&lt;p&gt;In the example below, the caddy-ingress-controller has the &lt;code&gt;automaticHTTPS&lt;/code&gt; value exposed, where you can add an email address to enable HTTPS functionality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6dbb62moogr8urn1v4u9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6dbb62moogr8urn1v4u9.png" alt="dependency-management" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Working with GitOps
&lt;/h3&gt;

&lt;p&gt;Glasskube works well in GitOps workflows, letting users control their Kubernetes packages desired state in Git means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Your Kubernetes package setup stays in sync with your files stored in Git&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can use tools like ArgoCD or Flux to apply the desired package state stored in Git&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Changes are easy to track and undo if needed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cluster setup can be achieved in minutes instead of hours.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have a fully operational Glasskube GitOps template &lt;a href="https://github.com/glasskube/gitops-template" rel="noopener noreferrer"&gt;here&lt;/a&gt;. Follow the steps in the README.md file to get started.&lt;/p&gt;

&lt;h3&gt;
  
  
  Automatic updates with Renovate
&lt;/h3&gt;

&lt;p&gt;Glasskube keeps packages in Glasskube hub always updated to the latest stable versions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Enable &lt;code&gt;auto-updates&lt;/code&gt; or get notified when new versions are available&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shows package information including the current version and available versions for packages using &lt;code&gt;glasskube list&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Running &lt;code&gt;glasskube update &amp;lt;packageName&amp;gt;&lt;/code&gt; will install the newest available version of the package&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Also updating manually through the GUI is also an option.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi6c0fi0glc7vgcjyraqd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi6c0fi0glc7vgcjyraqd.png" alt="open-button" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Adding custom package repositories
&lt;/h3&gt;

&lt;p&gt;You can now add multiple package repositories for Glasskube to read from, this is be useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Companies that have their own private package lists&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Teams who want to manage internal packages more easily&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It allows following compliance rules for private packages that can’t be exposed publicly&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Add a public repository by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube repo add &amp;lt;name&amp;gt; &amp;lt;url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add private repositories&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube repo add &amp;lt;name&amp;gt; &amp;lt;url&amp;gt; --auth (none|basic|bearer)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F260q7np0mgtxbr9whkx1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F260q7np0mgtxbr9whkx1.png" alt="multi-repo-diagram" width="664" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Glasskube vs. other package managers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How it differs from Helm and Kustomize
&lt;/h3&gt;

&lt;p&gt;Glasskube offers a new way to manage Kubernetes packages, addressing limitations found in older tools like Helm and Kustomize. It offers features such as two-way communication between the package and package manager, enhanced automation, and a more declarative approach to package management. Here's how Glasskube stands out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic Notifications:&lt;/strong&gt; Glasskube keeps track of installed versions and can automatically notify users of new installations, if desired.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Seamless CRD Updates:&lt;/strong&gt; It updates Custom Resource Definitions (CRDs) smoothly, ensuring everything remains in sync.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Full GitOps Integration:&lt;/strong&gt; Glasskube enables a complete GitOps workflow, which wasn't possible before.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Efficient Control:&lt;/strong&gt; The additional layer of abstraction through package scopes allows for more efficient and granular control over package configuration and usage.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Business service offerings
&lt;/h3&gt;

&lt;p&gt;Companies that offer commercial tools with self-hosting options often leave money on the table. Custom self-hosting installations and management might not be within your company’s expertise or bandwidth. A Glasskube Native package can be the solution you need. We can collaborate with you to create standardized, customizable, and highly scalable packages tailored for a variety of self-hosted environments, all using Glasskube packaging. This approach ensures a seamless experience for your customers while maximizing your revenue potential.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmernclzyw932cdwn8ug7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmernclzyw932cdwn8ug7.png" alt="Business-service-offerings" width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you think that Glasskube Native packages could benefit your business, book a free &lt;a href="https://cal.glasskube.eu/team/founder/demo?date=2024-08-16&amp;amp;month=2024-08" rel="noopener noreferrer"&gt;demo call&lt;/a&gt; with us. Our team would be delighted to assist you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next for Glasskube
&lt;/h2&gt;

&lt;h3&gt;
  
  
  New features coming soon
&lt;/h3&gt;

&lt;p&gt;Glasskube is adding new tools to make package management easier:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xw98yi15y19q6lizoyy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xw98yi15y19q6lizoyy.png" alt="new-features" width="800" height="206"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These new features will help users manage their Kubernetes packages better.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap-up
&lt;/h2&gt;

&lt;p&gt;Kubernetes package management has been stagnant and unable to keep up with the fast growth and evolution of the general Kubernetes ecosystem. Glasskube aims to make Kubernetes package management easier, more declarative, flexible and far less reliant on rigid templating processes that require multiple tools to get the job done.&lt;/p&gt;

&lt;p&gt;As Glasskube grows, we will need help from users and developers to build in the right direction. What frustrates you the most about current Kubernetes package managers? How can we improve?&lt;/p&gt;

&lt;p&gt;For teams using Kubernetes, we hope tools like Glasskube will be increasingly adopted and applied in complex environments.&lt;/p&gt;

&lt;p&gt;2024 has been an incredible breakout year so far, but we have only just begun.&lt;/p&gt;




&lt;p&gt;If you like our content and want to support us on this mission, we'd appreciate it if you could give us a star ⭐️ on &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" alt="giff" width="480" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Star us on GitHub 🙏&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>cloud</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
    <item>
      <title>The GitOps Kubernetes starter template that gets you set-up in minutes instead of hours</title>
      <dc:creator>Jake Page</dc:creator>
      <pubDate>Thu, 08 Aug 2024 15:13:45 +0000</pubDate>
      <link>https://dev.to/distr/the-gitops-kubernetes-starter-template-that-gets-you-set-up-in-minutes-instead-of-hours-91e</link>
      <guid>https://dev.to/distr/the-gitops-kubernetes-starter-template-that-gets-you-set-up-in-minutes-instead-of-hours-91e</guid>
      <description>&lt;p&gt;We have all heard off writers looking at a blank page for hours trying to get over writers block. For Kubernetes admins, setting up a brand new Kubernetes cluster can be just as daunting. &lt;br&gt;&lt;br&gt;
Especially when it involves configuring multiple elements like ArgoCD, a PostgreSQL database, monitoring tooling, and custom web apps.&lt;/p&gt;

&lt;p&gt;However, what if there was an easier way? Our new GitOps template is designed to make this process straightforward and hassle-free. It offers an easy to set up solution that requires almost no manual steps for a basic yet highly extendable GitOps setup. With this template, you can have your cluster up and running quickly and efficiently, allowing you to focus on what matters most, building and scaling your applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8mhul4z53ot4yzr7ita5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8mhul4z53ot4yzr7ita5.png" alt="GitOps template" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re reading this, you likely already appreciate the benefits of GitOps and have a solid understanding of Kubernetes. However, until recently, there hasn’t been an elegant, standardized process for managing the packages installed in your Kubernetes clusters. That’s why we built one.&lt;/p&gt;

&lt;p&gt;Let’s put it to the test. With this template, ArgoCD, CloudNativePG and a simple bookmarking web app will be installed using the &lt;a href="https://glasskube.dev/" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; Package Manager and they’ll receive upgrades through a Renovate integration via pull requests. This future-proof setup is easy to maintain and ensures your clusters stay up-to-date effortlessly.&lt;/p&gt;
&lt;h3&gt;
  
  
  The next logical extension for infrastructure IaC
&lt;/h3&gt;

&lt;p&gt;There are clear frameworks, templates, and standards for provisioning infrastructure across almost all cloud providers, and even templates for provisioning Kubernetes clusters themselves. However, this is often where the smooth, paved Infrastructure as Code (IaC) road turns to gravel. Kubernetes admins are frequently left to their own devices to install, configure, and manage the packages within the Kubernetes cluster due to a lack of standardized and simple package management tooling.&lt;/p&gt;

&lt;p&gt;Converting package configurations to code and managing them through GitOps, as you would with internal applications, has proven difficult. We believe the Glasskube package is a significant step toward the much-needed standardization in this area.&lt;/p&gt;
&lt;h3&gt;
  
  
  What is a Glasskube package?
&lt;/h3&gt;

&lt;p&gt;A Glasskube package is a standardized unit for managing software deployments within Kubernetes clusters using the Glasskube Package Manager. It is defined by a &lt;code&gt;PackageManifest&lt;/code&gt;, which contains all necessary information for identifying, configuring and installing a package. This manifest can include a Helm resource or a link to a manifest. Dependencies between packages can be declared, ensuring all required components are present before installation.&lt;/p&gt;
&lt;h3&gt;
  
  
  Use ArgoCD to deploy Glasskube packages
&lt;/h3&gt;

&lt;p&gt;Helm charts or plain Kubernetes manifests lack the comprehensive framework that Glasskube packages offer for deploying resources declaratively in a reliable, consistent, and easily maintained way. In this demo, we’ll use the GitOps template to bootstrap a fresh Kubernetes cluster with an instance of ArgoCD, which will then be used to deploy all subsequent packages.&lt;/p&gt;

&lt;p&gt;Here’s what the cluster will look like.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frr7au29qm1jesckkm1r9.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frr7au29qm1jesckkm1r9.gif" alt="Diagram Gif" width="720" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Template diagram&lt;/p&gt;
&lt;h3&gt;
  
  
  Template structure
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;🔗 Link to&lt;/em&gt; &lt;a href="https://github.com/glasskube/gitops-template" rel="noopener noreferrer"&gt;&lt;em&gt;template&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The repository contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  a &lt;code&gt;bootstrap&lt;/code&gt; directory containing the initial/parent Argo Application, and the necessary Glasskube manifests.&lt;/li&gt;
&lt;li&gt;  a &lt;code&gt;packages&lt;/code&gt; directory containing the &lt;code&gt;ArgoCD&lt;/code&gt; ,&lt;code&gt;cloudnative-pg&lt;/code&gt; and &lt;code&gt;kube-prometheus-stack&lt;/code&gt; cluster packages.&lt;/li&gt;
&lt;li&gt;  an &lt;code&gt;apps&lt;/code&gt; folder containing a simple &lt;code&gt;shiori&lt;/code&gt; bookmarking web app. &lt;/li&gt;
&lt;li&gt;  the &lt;code&gt;renovate&lt;/code&gt; configuration file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Glasskube custom resources will only be picked up by ArgoCD after placing the package definition files inside the &lt;code&gt;packages&lt;/code&gt; directory.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;⚠️ Please do not delete/uninstall the argo-cd package, as this will also remove everything else!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Note that the parent application used to bootstrap (bootstrap/glasskube-application.yaml) will not be synced after the initial setup. If you want to change something about it, you will have to change the application via argo directly.&lt;/p&gt;
&lt;h3&gt;
  
  
  Cluster setup
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Prerequisites
&lt;/h4&gt;

&lt;p&gt;You will have to have access to an empty Kubernetes cluster.&lt;/p&gt;

&lt;p&gt;The easiest would be creating a new Minikube cluster with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minikube start -p gitops
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;⚠️ Glasskube should&lt;/em&gt; &lt;strong&gt;&lt;em&gt;not yet be bootstrapped&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;in the cluster.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Install the Glasskube CLI
&lt;/h3&gt;

&lt;p&gt;Make sure to have at least Glasskube version 0.16.0 &lt;a href="https://glasskube.dev/docs/getting-started/install/" rel="noopener noreferrer"&gt;installed&lt;/a&gt; locally. If you don’t, you can simply run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install glasskube/tap/glasskube
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How to use the template
&lt;/h3&gt;

&lt;p&gt;Use &lt;a href="https://github.com/glasskube/gitops-template" rel="noopener noreferrer"&gt;this&lt;/a&gt; repository as your GitOps template&lt;/p&gt;

&lt;p&gt;Create a public GitHub repository based on this starter template by clicking “Use this template“. You can move it and/or make it private afterward.&lt;/p&gt;

&lt;p&gt;Replace the placeholder &lt;strong&gt;repoURL&lt;/strong&gt; in your local GitOps repository&lt;/p&gt;

&lt;p&gt;Replace the default value of &lt;code&gt;repoURL&lt;/code&gt; to your repository url:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Line 12 in: &lt;code&gt;bootstrap/glasskube-application.yaml&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  Lines 11, 16 and 26 in: &lt;code&gt;bootstrap/glasskube/applicationset.yaml&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bootstrap ArgoCD and Glasskube for your Kubernetes cluster:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube bootstrap git --url &amp;lt;your-repo&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The result
&lt;/h3&gt;

&lt;p&gt;As a result, your cluster will be powered with GitOps capabilities by ArgoCD, as well as package management features by Glasskube. Argo manages itself, the Glasskube installation, as well as Glasskube packages — all of which you can now manage GitOps-style with this repo.&lt;/p&gt;

&lt;p&gt;Run &lt;code&gt;glasskube serve&lt;/code&gt; to open the Glasskube UI and either open the ArgoCD UI there, or with the command glasskube open argo-cd – but of course you can also use the Argo CLI. Follow the &lt;a href="https://argo-cd.readthedocs.io/en/stable/getting_started/#4-login-using-the-cli" rel="noopener noreferrer"&gt;ArgoCD docs&lt;/a&gt; to get and reset the password to log in.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;💡 Note that it might take a couple of minutes to start up ArgoCD, and for the initial GitOps sync to happen.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In this template, for demonstration purposes we’ve also installed the &lt;code&gt;cloudnative-pg&lt;/code&gt; and &lt;code&gt;kube-prometheus-stack&lt;/code&gt;clusterpackages and a bookmarking application (&lt;a href="https://github.com/go-shiori/shiori" rel="noopener noreferrer"&gt;shiori&lt;/a&gt;), which is making use of cloudnative-pg.&lt;/p&gt;

&lt;h3&gt;
  
  
  Managing your cluster
&lt;/h3&gt;

&lt;p&gt;Both CLI and UI offer features to manage your cluster following GitOps best practices.&lt;/p&gt;

&lt;h4&gt;
  
  
  Using the CLI
&lt;/h4&gt;

&lt;p&gt;The relevant CLI commands offer the flags &lt;code&gt;--dry-run&lt;/code&gt; and &lt;code&gt;-o yaml&lt;/code&gt; which output the yaml object code which should then be pushed to your repository to be deployed.&lt;/p&gt;

&lt;h4&gt;
  
  
  Through the UI
&lt;/h4&gt;

&lt;p&gt;The UI, when installed with the above &lt;code&gt;glasskube bootstrap git&lt;/code&gt; command, will also output the &lt;code&gt;yaml&lt;/code&gt; objects which you can copy to use in your git repo, instead of applying your changes directly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing packages
&lt;/h3&gt;

&lt;p&gt;To install a ClusterPackage, e.g. cert-manager, use the install command like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube install cert-manager --dry-run -o yaml --yes &amp;gt; cert-manager.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of directly installing the ClusterPackage, this will write the ClusterPackage custom resource to the cert-manager.yaml file, which can now be put into a new directory &lt;code&gt;packages/cert-manager/&lt;/code&gt; in the git repository. Once pushed to the repo, ArgoCD will pick up the changes after at most 5 minutes, create the ArgoCD Application wrapping the Glasskube ClusterPackage. After that, the Glasskube operator will pick up the ClusterPackage and finally install it in the cluster.&lt;/p&gt;

&lt;p&gt;Similarly, when using the Glasskube UI, one can generate the ClusterPackage resource by using the “Show YAML” button on the page of the ClusterPackage.&lt;/p&gt;

&lt;h3&gt;
  
  
  Updating packages
&lt;/h3&gt;

&lt;p&gt;There are two options handling package version updates:&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Manually&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Using the &lt;code&gt;glasskube update --dry-run -o yaml&lt;/code&gt; command, or the corresponding button on the Glasskube UI. And then pushing to your repo as seen before. &lt;br&gt;&lt;br&gt;
The downside of doing it that way, is that someone has to manually execute the command, even though checking for updates and preparing the updates to the git repository as an automatable task.&lt;/p&gt;
&lt;h4&gt;
  
  
  Automatically with Renovate
&lt;/h4&gt;

&lt;p&gt;Once Renovate is &lt;a href="https://github.com/renovatebot/renovate" rel="noopener noreferrer"&gt;integrated&lt;/a&gt; to track your GitOps repo, it will look for Glasskube packages and compare their versions to the official package repositories. When new versions are available, it will automatically open a PR. Once merged, you’ll be running the latest versions of your packages.&lt;/p&gt;
&lt;h3&gt;
  
  
  Uninstalling packages
&lt;/h3&gt;

&lt;p&gt;To uninstall a package or a &lt;code&gt;ClusterPackage&lt;/code&gt;, simply remove the custom resource from the git repository.&lt;/p&gt;
&lt;h3&gt;
  
  
  Updating Glasskube
&lt;/h3&gt;

&lt;p&gt;When a new Glasskube version is available, the manifests have to be updated. To update the Glasskube manifests in your git repo, run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube bootstrap --dry-run -o yaml --force &amp;gt; bootstrap/glasskube/glasskube.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After reviewing and merging those changes the update will be picked up by ArgoCD. The &lt;code&gt;--force&lt;/code&gt; flag is necessary for the command to continue manifest validation, even though failures occur.&lt;/p&gt;

&lt;h3&gt;
  
  
  Working with Apps
&lt;/h3&gt;

&lt;p&gt;This template also contains a demo application: a bookmark manager called &lt;a href="https://github.com/go-shiori/shiori" rel="noopener noreferrer"&gt;shiori&lt;/a&gt;.&lt;br&gt;
Its manifests are defined in &lt;code&gt;apps/shiori&lt;/code&gt;, which is a pattern you can follow for your own custom applications.&lt;/p&gt;

&lt;p&gt;In a minikube environment, two manual steps are required to access the application (for more information consult the &lt;br&gt;
&lt;a href="https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/" rel="noopener noreferrer"&gt;minikube docs&lt;/a&gt;):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run &lt;code&gt;minikube addons enable ingress -p gitops&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;minikube ip -p gitops&lt;/code&gt; and add the line &lt;code&gt;&amp;lt;your-IP&amp;gt; my-shiori.example&lt;/code&gt; to your &lt;code&gt;/etc/hosts&lt;/code&gt; file. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After that you will be able to access the application via &lt;a href="http://my-shiori.example" rel="noopener noreferrer"&gt;http://my-shiori.example&lt;/a&gt; in your browser. &lt;br&gt;
The default login credentials are &lt;code&gt;shiori&lt;/code&gt; / &lt;code&gt;gopher&lt;/code&gt; – for more information check the &lt;a href="https://github.com/go-shiori/shiori/tree/master/docs" rel="noopener noreferrer"&gt;shiori docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In general, you can use the &lt;code&gt;apps&lt;/code&gt; directory to deploy such custom applications into your cluster. Any subdirectory will be&lt;br&gt;
picked up by ArgoCD and grouped as an &lt;code&gt;Application&lt;/code&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  Monitoring with &lt;code&gt;kube-prometheus-stack&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This template also installs the &lt;code&gt;kube-prometheus-stack&lt;/code&gt; clusterpackage, which is an easy way to get started with monitoring your cluster. You can open Grafana with &lt;code&gt;glasskube open kube-prometheus-stack&lt;/code&gt;. It does not come preconfigured in this example, but you can easily add a nice postgres dashboard and observe the metrics of the database while you are working with the bookmarking application.&lt;/p&gt;

&lt;h4&gt;
  
  
  Setting up a postgres dashboard
&lt;/h4&gt;

&lt;p&gt;We are going to make use of the &lt;a href="https://grafana.com/grafana/dashboards/20417-cloudnativepg/" rel="noopener noreferrer"&gt;cloudnativepg dashboard&lt;/a&gt;.&lt;br&gt;
Import it by opening the &lt;a href="http://localhost:8888/dashboard/import" rel="noopener noreferrer"&gt;dashboard-import page&lt;/a&gt;, pasting&lt;br&gt;
&lt;a href="https://grafana.com/grafana/dashboards/20417-cloudnativepg/" rel="noopener noreferrer"&gt;https://grafana.com/grafana/dashboards/20417-cloudnativepg/&lt;/a&gt;&lt;br&gt;
into the first textfield, and pressing "Load". Use the "Prometheus" data source on the following screen and finish the import process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faltn1dz7oypxf9i0bggi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faltn1dz7oypxf9i0bggi.png" alt="CloudNativePG dashboard" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Of course monitoring your experimental minikube cluster is a bit of an overkill, but this is simply to demonstrate how these kind of cluster administration tasks can be integrated into this gitops stack. &lt;/p&gt;

&lt;h3&gt;
  
  
  Template setup walkthrough
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Xbs2Tq-dgbI"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Upcoming Features
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Private Repo Support
&lt;/h4&gt;

&lt;p&gt;We are aware that GitOps repositories should not be public, but for simplicity we omitted this feature in the first version of the new GitOps-bootstrap command. Supporting private repos with authentication of course has high priority for the upcoming releases. We will also replace the repoURL automatically, such that you don’t need to this step manually when setting up the repo.&lt;/p&gt;

&lt;h4&gt;
  
  
  Improved Renovate Integration
&lt;/h4&gt;

&lt;p&gt;As described above, the renovate integration currently is regex-based, and it does not consider dependencies yet. However, we don’t see these shortcomings as a blocker and recommend to try out the renovate integration in the Glasskube/Argo Gitops setup.&lt;/p&gt;

&lt;h4&gt;
  
  
  Improved Dependency Resolution
&lt;/h4&gt;

&lt;p&gt;Installing packages with dependencies is not 100% GitOps-compatible yet, as the dependencies will be created by the operator. Consider this: To install a &lt;code&gt;ClusterPackage &amp;lt;P&amp;gt;&lt;/code&gt; that has a dependency on &lt;code&gt;D&lt;/code&gt;, one would do &lt;code&gt;glasskube install &amp;lt;P&amp;gt; --dry-run -o yaml&lt;/code&gt;, which would output the &lt;code&gt;ClusterPackage&lt;/code&gt; custom resource for &lt;code&gt;&amp;lt;P&amp;gt;&lt;/code&gt;. However, the dependency &lt;code&gt;D&lt;/code&gt; will only be resolved at reconciliation time by the package operator, and will therefore not be represented in the git repository at all.&lt;/p&gt;

&lt;p&gt;A temporary workaround would be to have a closer look at the output of the install command, which also shows the dependencies which will be installed and in which version. One could then manually add the required packages custom resources to the git repo as well. However, this will be tackled in a future version to make the user experience better, see this &lt;a href="https://github.com/glasskube/glasskube/issues/430" rel="noopener noreferrer"&gt;issue&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;With this template repository and guide we show how Glasskube can easily be set up in a ArgoCD powered Gitops environment, and how efficient package management is possible with this stack. Additionally we install a web application to show how custom applications can make use of the Gitops setup and Glasskube packages.&lt;/p&gt;

&lt;p&gt;This is a first concept with some minor shortcomings, but we will continue to improve GitOps support. &lt;/p&gt;

&lt;h3&gt;
  
  
  Feedback
&lt;/h3&gt;

&lt;p&gt;We love feedback! Whether you are just starting out or you are a seasoned professional, we'd like to hear your thoughts, inputs and questions regarding this starter template and corresponding guide here, in the &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;glasskube/glasskube repo&lt;/a&gt; or on our &lt;a href="https://discord.gg/SxH6KUCGH7" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;. Thanks!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Why building an IDP for Series A companies doesn't make sense</title>
      <dc:creator>Jake Page</dc:creator>
      <pubDate>Wed, 07 Aug 2024 10:21:01 +0000</pubDate>
      <link>https://dev.to/distr/why-building-an-idp-for-series-a-companies-doesnt-make-sense-36d4</link>
      <guid>https://dev.to/distr/why-building-an-idp-for-series-a-companies-doesnt-make-sense-36d4</guid>
      <description>&lt;p&gt;CTO of a Series A company? Before reading on, just give yourself a quick pat on the back. What you and your team have done so far is no easy task, so fair play to you.&lt;/p&gt;

&lt;p&gt;Realistically though, the work is far from done. Many scaling and growth decisions lay ahead and probably more questions than clear convictions.&lt;/p&gt;

&lt;p&gt;You might be tempted to preemptively adopt tooling and processes, positioning your engineering team for the potential growth to come. In this piece we’ll explain why you are more likely to succeed by doubling down on what brought you to this point over adopting new processes or fancy Internal Developer platforms.&lt;/p&gt;

&lt;h3&gt;
  
  
  Setting the right foundations
&lt;/h3&gt;

&lt;p&gt;Series A companies are exciting environments to be in, usually a reasonable influx of new faces join the company, processes are increasingly standardised and overall, there is a progressive company-wide maturity that is starting to take hold. The instinct to mature the engineering org is understandable but nonetheless ill placed.&lt;/p&gt;

&lt;p&gt;No level of maturity or sophisticated tooling can compensate for a lack of Product Market Fit (PMF). Validating PMF across markets should be top of mind at this stage above all else. Elusive as it may be, your best chance of achieving it is staying agile, delivering rapidly and maintaining tight feedback loops.&lt;/p&gt;

&lt;p&gt;The idea of planning for future scalability might be appealing, especially with the buzz around platform engineering and the availability of ready-made internal developer platform (IDP) solutions. However, it’s crucial to understand why these options might not be the right choice for you right now. Let’s delve into the reasons why an IDP isn’t the change you think you need.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9zex3wen2xz0ehqkajx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9zex3wen2xz0ehqkajx.png" alt="platform-engineering" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is an IDP?
&lt;/h3&gt;

&lt;p&gt;An IDP is a self-service layer build on top of your organisation’s infrastructure, that enables your developer teams to deploy and manage applications without the need to have in-depth infrastructure knowledge or relying on the help of traditional infrastructure engineers. It aims to provide consistency, automation, and speed by standardizing workflows and environments as the organization grows.&lt;/p&gt;

&lt;p&gt;Think of an IDP as an internal product maintained by DevOps or Platform engineers, who essentially serve their own customer base, your development teams. To understand why adopting an IDP might be counterproductive for a Series A company, it’s essential to understand why IDPs emerged in the first place.&lt;/p&gt;

&lt;p&gt;As companies expand, so do their engineering teams. In large enterprises, maintaining code quality, keeping up with infrastructure requirements and sustaining deployment velocity is hard if operations teams can’t keep up. IDPs were designed to remove reliance on traditional operations teams, to rely on a platform that actively evolves to fit their needs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;A few assumptions are important to point out here:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You have the resources to maintain a completely new product (the IDP). &lt;strong&gt;&lt;em&gt;You probably don’t.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You have already scaled the engineering org and now need to optimise it. &lt;strong&gt;&lt;em&gt;You probably haven’t and don’t need to.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe72c4qd0rdet9cj60mnu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe72c4qd0rdet9cj60mnu.png" alt="graph-1" width="800" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What should Series A companies care about?
&lt;/h3&gt;

&lt;p&gt;Before going on about the types of tools and processes your shouldn’t care about, let’s take a more proactive approach and focus on things that will actually move the needle.&lt;/p&gt;

&lt;h4&gt;
  
  
  The right team
&lt;/h4&gt;

&lt;p&gt;You need a group of people who can run themselves, have the expertise to automate infrastructure related tasks and are open to working in flexible and not overly standardised structures. They should be the ones who propose changes and implement them as needed.&lt;/p&gt;

&lt;h4&gt;
  
  
  Finding and validating PMF
&lt;/h4&gt;

&lt;p&gt;By the time you are at a Series A level you have surely caught the scent of where you might find PMF. Do not let up, ship fast and communicate intensely with your target audience to validate your market assumptions. There is no reward in finding a gap in the market alone, you have to occupy it. Maintain development velocity to increasingly occupy the gap you have identified.&lt;/p&gt;

&lt;h4&gt;
  
  
  Staying agile and flexible
&lt;/h4&gt;

&lt;p&gt;The engineering team, like all teams within the company, should be unequivocally aligned with one primary objective: enabling the business. The engineering team sits at the centre of a short but tightly knit feedback loop which includes sales, feature ideation, feature development, deployment, and gathering feedback. Ideally, the sales team is working flat out, and customer service is maintaining close contact with customer. For the engineering team to keep it’s end of the bargain, it has to stay flexible and agile, ready to respond quickly the other teams inputs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftbr6c8ryk7q7qrefs46f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftbr6c8ryk7q7qrefs46f.png" alt="graph-2" width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Focusing on customer facing products only
&lt;/h4&gt;

&lt;p&gt;Even though we’ve mentioned this before, it’s important to emphasise that an IDP is a fully-fledged product that needs to be created, maintained, and evolved to meet the changing needs of internal developers over time. Focusing on an internal product like this can detract from the attention and resources needed for your customer-facing products, which ultimately bring you in closer contact with PMF and customer satisfaction.&lt;/p&gt;

&lt;h4&gt;
  
  
  Building the right culture
&lt;/h4&gt;

&lt;p&gt;This is a point that should not be overlooked. Regardless of your company’s stage, evolution is always and ongoing dynamic. A culture of alignment, healthy communication principles, and a focus on shared goals is the bedrock that must serve as a base for the discussions about architecture, tooling, and process definitions which enable said evolution. Collective buy-in can only happen if a meaningful shared culture exists.&lt;/p&gt;

&lt;h3&gt;
  
  
  What should a Series A CTO not be thinking about?
&lt;/h3&gt;

&lt;p&gt;It’s not un-common to hear people report having learned more from their bad managers than from their good ones. Why might that be? Because knowing what not to do can sometimes be more important the the opposite.&lt;/p&gt;

&lt;h4&gt;
  
  
  Don’t maintaining internal products
&lt;/h4&gt;

&lt;p&gt;Any time spend not addressing requests from your product and sales teams and hopefully your customers is time wasted.&lt;/p&gt;

&lt;p&gt;Any time spend that doesn’t involve delivering a better experience than your competitors is a mistake.&lt;/p&gt;

&lt;h4&gt;
  
  
  Avoid large engineering teams
&lt;/h4&gt;

&lt;p&gt;Just because the rest of the company is growing doesn’t mean the engineering team has to expand at the same rate. Those who praise the magic that can be harnessed by keeping &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fposthog.com%2Fnewsletter%2Fsmall-teams" rel="noopener noreferrer"&gt;engineering teams small&lt;/a&gt; are on to something.&lt;/p&gt;

&lt;p&gt;At this stage, as you may be bringing on your first DevOps engineers, ensure they integrate into a compact, developer-focused team with a single leader to avoid unnecessary managerial layers, allowing for open communication and quick decisions to be made.&lt;/p&gt;

&lt;h4&gt;
  
  
  Forget about perfection
&lt;/h4&gt;

&lt;p&gt;It’s not news to you that shipping quickly and continuously improving over time is the best way to build a product that eventually wins market share and meets customer expectations. Why would scaling engineering teams be any different? Trying to implement an Internal Developer Platform too soon runs contrary to those principles. There will be a time when you will build one out but let that process happen iteratively in a gradual manner. You have others things to worry about in the meantime.&lt;/p&gt;

&lt;h3&gt;
  
  
  You are on the right track
&lt;/h3&gt;

&lt;p&gt;Reaching a Series A funding round is not the end goal for anybody, you have a lot of room for growth. PMF is more than likely not locked down and occasional engineering bottlenecks should be dealt with on a case by case basis. Now is the time to double down on the strengths and keep on improving you capacity to identify your customer and increase user satisfaction.&lt;/p&gt;

&lt;p&gt;There will be a time to look inwards and improve internal engineering processes, and IDP might make sense in the future, but at this moment in time your limited engineering output should be laser focused on staying lean.&lt;/p&gt;

&lt;p&gt;Implementing internal products that don’t directly enable the business too soon have the potential for dire consequences. Approximately 35% of series A funded startups &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fluisazhou.com%2Fblog%2Fstartup-failure-statistics%2F%23%3A~%3Atext%3DIf%2520a%2520startup%2520makes%2520it%2Cof%252012%2520to%252018%2520months." rel="noopener noreferrer"&gt;fail&lt;/a&gt; before Series B, a lot is at stake.&lt;/p&gt;

&lt;p&gt;No need to worry though, you have made it this far, don’t give into platform engineering FOMO, put you head down and keep doing what you’ve been doing, because it’s working.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We would love to hear from you, what are your thoughts? when is an organization really ready for an IDP?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;If you like our content and want to support us on this mission, we'd appreciate it if you could give us a star ⭐️ on &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" alt="giff" width="480" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Star us on GitHub 🙏&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>cloud</category>
      <category>startup</category>
    </item>
    <item>
      <title>20 Life hacks for DevOps Engineers</title>
      <dc:creator>Jake Page</dc:creator>
      <pubDate>Tue, 23 Jul 2024 09:29:37 +0000</pubDate>
      <link>https://dev.to/distr/20-life-hacks-for-devops-engineers-3dn7</link>
      <guid>https://dev.to/distr/20-life-hacks-for-devops-engineers-3dn7</guid>
      <description>&lt;p&gt;Tricks of the trade, hacks, trade secrets, cheat sheets, best practices, call them what you will. Every industry has them, and anyone who sticks around long enough builds an arsenal of techniques and finely tuned tools to excel at their job.&lt;/p&gt;

&lt;p&gt;Some things simply take time to master. My dad, a retired builder, could tile a medium-sized bathroom in under an astonishing three hours, while it would take me a full day just to do the grouting afterwards. Experience is key for certain skills, but there are also tips that don’t require years of practice to acquire.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi5djnf7s7qtanf42u8hn.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi5djnf7s7qtanf42u8hn.webp" alt="gif" width="262" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DevOps is no different. There are no shortcuts to becoming a god-tier DevOps savant, put the years in and you might just get there. Having said that, there are some tricks of the trade, life hacks and useful tooling that are sure to give you an instant boost in productivity.&lt;/p&gt;

&lt;p&gt;Here is my non-comprehensive list of life hacks guaranteed to make any DevOps engineer’s life easier.&lt;/p&gt;

&lt;p&gt;The list is broken down into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Tooling 🧰
&lt;/li&gt;
&lt;li&gt;  Skills 🤸
&lt;/li&gt;
&lt;li&gt;  Habits 🔁
&lt;/li&gt;
&lt;li&gt;  Scripts, configs and extensions 💻&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tooling: 🧰
&lt;/h2&gt;

&lt;p&gt;Did you know that if you really want to get somebodies attention in Germany, &lt;a href="https://www.npr.org/2024/05/09/1250136510/germany-has-a-reputation-for-efficiency-so-why-do-fax-machines-remain-popular" rel="noopener noreferrer"&gt;sending a fax&lt;/a&gt; is your best bet? &lt;br&gt;
Also, in Japan up until this year, &lt;a href="https://www.abc.net.au/news/2024-07-10/japan-eliminates-use-of-floppy-disks/104077114" rel="noopener noreferrer"&gt;floppy disks&lt;/a&gt; were still in use by government institutions. &lt;/p&gt;

&lt;p&gt;Knowing which context you find yourself in is essential to then choose the best tools for the job. Even though it’s important not to obsess over having the best, newest, or shiniest tool on the market. The following tools can be real game-changers for DevOps engineers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"You don’t need to be the sharpest tool in the shed to use the sharpest tools in the shed" - Anonymous (I might have made it up)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp3x70y8c34btmgmth4ou.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp3x70y8c34btmgmth4ou.gif" alt="gif-2" width="480" height="268"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  1. k9s
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://k9scli.io/" rel="noopener noreferrer"&gt;K9s&lt;/a&gt; is a terminal-based UI for interacting with your Kubernetes clusters. It takes very little time to get accustomed to navigating, observing, and managing your live applications through the tool. And once you do, you might never go back. K9s continually monitors Kubernetes for changes and offers many useful commands to interact with your observed resources.&lt;/p&gt;

&lt;p&gt;Link to &lt;a href="https://k9scli.io/topics/install/" rel="noopener noreferrer"&gt;instal&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5qk2ahx3y75ho015a0mo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5qk2ahx3y75ho015a0mo.png" alt="k9s" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. tmux
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/tmux/tmux/wiki" rel="noopener noreferrer"&gt;tmux&lt;/a&gt; is a powerful terminal multiplexer that enhances productivity by allowing session persistence, window and pane management, and customization through key bindings and configuration files. It supports scripting for automation, facilitates collaboration with shared sessions, and integrates well with various shells and tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g9z9v1la2z1is08ti6x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g9z9v1la2z1is08ti6x.png" alt="tmux" width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Glasskube
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; is an Open Source package manager for Kubernetes. It makes deploying, updating, and configuring packages on Kubernetes &lt;strong&gt;20 times faster&lt;/strong&gt; than tools like &lt;strong&gt;Helm or Kustomize&lt;/strong&gt;. Inspired by the simplicity of Homebrew and npm. You can decide if you want to use the Glasskube UI, CLI, or directly deploy packages via GitOps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxzyje56hrgu3i75phal5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxzyje56hrgu3i75phal5.png" alt="glasskube-dash" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Care to support us?
&lt;/h3&gt;

&lt;p&gt;If this is the first time you've heard of Glasskube, we are working to build the next generation &lt;code&gt;Package Manager for Kubernetes&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you like our content and want to support us on this mission, we'd appreciate it if you could give us a star ⭐️ on &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" alt="star-gif" width="480" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐️ Star us on &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; 🙏&lt;/p&gt;
&lt;h3&gt;
  
  
  4. ripgrep
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/BurntSushi/ripgrep" rel="noopener noreferrer"&gt;Riggrep&lt;/a&gt; is a powerful search tool known for its speed, flexibility, and user-friendly output. It quickly processes large codebases using advanced algorithms, supports a wide range of search patterns, and presents clear, highlighted results. Riggrep integrates well with other tools, is cross-platform, and customizable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx33jvnbgbdzd4li38p9x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx33jvnbgbdzd4li38p9x.png" alt="ripgrep" width="769" height="295"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  5. Firefox containers for multi cloud account access
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/" rel="noopener noreferrer"&gt;Firefox Multi-Account Containers&lt;/a&gt; is a such an underestimated browser extension for it's utility. It helps manage online activity by separating websites into different containers or tabs, preventing sessions tracking across sites. It’s most useful feature is that it allows users to log into multiple accounts simultaneously within the same browser. By isolating sessions through cookie separation, it protects personal data and improves the overall browsing experience. Have multiple AWS accounts? Not an issues, you can log in to all of them from the same browser window.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxr7uji0zrxekr3bt0arq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxr7uji0zrxekr3bt0arq.png" alt="firefox-tabs" width="800" height="237"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  6. VPA
&lt;/h3&gt;

&lt;p&gt;Vertical Pod Autoscaler (VPA) frees users from the necessity of setting up-to-date resource limits and requests for the containers in their pods. When configured, it will set the requests automatically based on usage and there after allow proper scheduling onto nodes so that appropriate resource amounts are available for each pod.&lt;/p&gt;

&lt;p&gt;Install it &lt;a href="https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler#install-command" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Example config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
  name: my-app-vpa
spec:
  targetRef:
    apiVersion: "apps/v1"
    kind:       Deployment
    name:       my-app
  updatePolicy:
    updateMode: "Auto"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  7. Kctx and Kubens
&lt;/h3&gt;

&lt;p&gt;Is just hand’s down the most useful CLI tool for Kubernetes context and Namespace switching.&lt;/p&gt;

&lt;p&gt;Install it &lt;a href="https://github.com/ahmetb/kubectx" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnfovv5rex6xirw0o7ltx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnfovv5rex6xirw0o7ltx.gif" alt="kubectx" width="800" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. ChatGPT for guidance
&lt;/h3&gt;

&lt;p&gt;Use &lt;a href="https://chatgpt.com/" rel="noopener noreferrer"&gt;ChatGPT&lt;/a&gt; as if it were a senior member on your team who is never busy and always happy to answer all of your questions. Make sure your intention is deeper understanding and not blind task resolution.&lt;/p&gt;

&lt;p&gt;Prime ChatGPT to be a senior team member with a prompt like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You will act as a Senior DevOps Engineer to provide life hacks and tips on how to excel in the field of DevOps. You will also be ready to help junior team members with any questions they might have. Please include practical advice, recommended tools, and best practices for managing infrastructure and continuous integration/continuous deployment (CI/CD) pipelines. Write the output using my communication style, which is clear, concise, and practical. Here are examples of my communication style:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;"Focus on automating repetitive tasks to save time and reduce errors."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"Leverage tools like Docker and Kubernetes for containerization and orchestration."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"Always monitor system performance and be proactive in identifying potential issues."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"When mentoring juniors, be patient and explain concepts in simple terms."&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Here are some questions you can ask ChatGPT to further fine tune the prompt:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Do you want the advice and explanations to cater more to beginner-level juniors or those with some experience in DevOps?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Could you provide more detailed examples of your communication style, especially in scenarios where you explain complex concepts to juniors?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are there specific challenges or areas of focus within DevOps (e.g., automation, monitoring, security) that you want to prioritize for the advice and junior support?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Skills: 🤸
&lt;/h2&gt;

&lt;p&gt;It's no surprise that skills can't be absorbed instantly, they require time and effort. In the ever-evolving tech world, determining which skills to cultivate can be confusing. However, as DevOps engineers, you can't go wrong with mastering scripting and prioritizing documentation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Build your skills not your resume.” — &lt;a href="https://quotefancy.com/sheryl-sandberg-quotes" rel="noopener noreferrer"&gt;Sheryl Sandberg&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fojvxbcr8s76u9yozuhue.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fojvxbcr8s76u9yozuhue.webp" alt="skills" width="354" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Scripting
&lt;/h3&gt;

&lt;p&gt;Scripting is like a swiss army knife for DevOps engineers because it automates repetitive tasks, provides essential glue between processes, and ensures consistency across environments. Learning and practicing scripting involves familiarizing yourself with tools like &lt;a href="https://opensource.com/article/18/8/what-how-makefile" rel="noopener noreferrer"&gt;Makefiles&lt;/a&gt;, regular expressions (&lt;a href="https://support.smartbear.com/testcomplete/docs/scripting/regular-expressions.html" rel="noopener noreferrer"&gt;regex&lt;/a&gt;) for efficient text processing, and &lt;a href="https://www.freecodecamp.org/news/bash-scripting-tutorial-linux-shell-script-and-command-line-for-beginners/" rel="noopener noreferrer"&gt;Bash&lt;/a&gt; scripting for powerful command-line operations.&lt;/p&gt;

&lt;p&gt;Don't feel like you have to master scripting before implementing it at work. Look for manual steps in your current software or infrastructure delivery processes and try to script automations that make sense. Leverage an LLM for help if needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Documentation
&lt;/h3&gt;

&lt;p&gt;Write everything down. It’s the best way to take care of your future you.&lt;/p&gt;

&lt;p&gt;Try out a few note taking solutions here are a few:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.notion.so/" rel="noopener noreferrer"&gt;Notion&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.getoutline.com/" rel="noopener noreferrer"&gt;Outline&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://obsidian.md/" rel="noopener noreferrer"&gt;Obsidian&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://keep.google.com/" rel="noopener noreferrer"&gt;Google Keep&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://joplinapp.org/" rel="noopener noreferrer"&gt;Joplin&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It doesn’t matter which one you choose as long as you only choose one and you stick to it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🤔 Don’t fall into the trap of spending too much time organising and optimising your notes. Notes don’t have to be perfect only functional. Spending too much time on note maintenance is &lt;code&gt;meta-work&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Habits: 🔁
&lt;/h2&gt;

&lt;p&gt;You will never get far if you rely solely on pure motivation to get things done and improve. Well-defined and consistent habits are the glue that keep you growing and effective, even when your motivation wanes. Habits seamlessly integrate tools and skills, ensuring you are effective at your job.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Motivation is what gets you started. Habits is what keeps you going." - Jim Ryun&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftwuqyzc28my73gb3f0dq.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftwuqyzc28my73gb3f0dq.gif" alt="practice" width="600" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  11. Don’t write to-do lists, block time.
&lt;/h3&gt;

&lt;p&gt;I’ve been heavily influenced by Cal Newport’s writing on Deep Work and I’m quite convinced that efforts to preserve a certain amount of time per week dedicated to uninterrupted &lt;strong&gt;deep work&lt;/strong&gt; is crucial for an individual who wants to contributor meaningfully to a team.&lt;/p&gt;

&lt;p&gt;To-do list on their own are just wish lists. Once you plot them on a calendar, that’s when you have a plan.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It’s important to point out that I know very few people who execute on their time block plans with 100% fidelity every day of the week. Use them as north stars, schedule rest time when you need it. Update the list throughout the day even. But at least hold yourself to a plan.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajpplmlajhjl8bpcx05a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajpplmlajhjl8bpcx05a.png" alt="time-block" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  12. Reciprocal meeting blocks
&lt;/h3&gt;

&lt;p&gt;Unless you are your own boss, you’re most likely not 100% in charge of the meetings and commitments you might be obliged to participate in. Reciprocal meeting blocks is a way to counteract unexpected time commitments that just pop up in your calendar. &lt;br&gt;
The idea here to reserve an equivalent deep work block every time a new meeting is added to you calendar. That way you can stay flexible and relatively available without having to compromise on your weekly deep work quota.&lt;/p&gt;
&lt;h3&gt;
  
  
  13. Have a shutdown routine
&lt;/h3&gt;

&lt;p&gt;Especially useful if you are a remote worker. A shutdown routine is a series of questions and steps your run through to finish your working day. Ideally once you complete the checklist you should be able to forget about your work until the next day.&lt;br&gt;&lt;br&gt;
What I track is the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Did I exercise?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did I address all of the miscellaneous tasks I had?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do I have any open conversations?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do I need to push any tasks to the next day?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did I write a diary entry? (not work related but I like to get it done before I leave the desk)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How many deep hours did I do?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did I check the metrics I’m tracking one last time before I close the laptop for the day?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  14. Take notes during meetings
&lt;/h3&gt;

&lt;p&gt;Taking notes during meetings and sharing them afterward should ideally be a common practice in your organization. If it isn't, this is a perfect opportunity for you to start. Not only does it ensure that no important details slip through your fingers, but it also provides a great service to your team.&lt;/p&gt;
&lt;h3&gt;
  
  
  15. Test run outages
&lt;/h3&gt;

&lt;p&gt;Test run outages are essential for DevOps engineers to prepare for real incidents. You have to know exactly how to swiftly and efficiently connect to your clusters or VMs before an unexpected 1 a.m. alert for example, you can’t be caught off guard. &lt;/p&gt;

&lt;p&gt;Familiarize yourself with moving files, retrieving container logs, and other critical tasks. Setting up SSH keys, kubeconfigs, and other access tools in advance will save valuable time and reduce stress during actual outages. Proactively testing and optimizing these processes ensures that you are ready to respond effectively to any disruption.&lt;/p&gt;
&lt;h2&gt;
  
  
  Scripts, configs and extensions: 💻
&lt;/h2&gt;

&lt;p&gt;If you have to do something more than once, automate it. Why write out a full command when you can save time by using an alias? Over a long career, it might be hard to calculate exactly how much time is saved by typing "k" instead of "kubectl." One thing is for sure: it's a lot, and it's well worth it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“You’re either the one that creates the automation or you’re getting automated.” — Tom Preston-Werner&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgmrjgt8aa7vdfc1twmvn.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgmrjgt8aa7vdfc1twmvn.webp" alt="automation" width="356" height="200"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  16. Use helpful aliases
&lt;/h3&gt;

&lt;p&gt;Don’t waste time typing out the full commands you write every day.&lt;/p&gt;

&lt;p&gt;Here is a small snippet of a few of my configured aliases:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;k=kubectl
kctx='kubectl ctx'
kgp='kubectl get pods'
kns='kubectl ns'
l='ls -lah'
la='ls -lAh'
ll='ls -lh'
ls='ls -G'
lsa='ls -lah'
md='mkdir -p'
rd=rmdir
run-help=man
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  17. Efficiently cleaning up finished jobs with TTL controller
&lt;/h3&gt;

&lt;p&gt;You can specify the lifespan of finished jobs or pods before they are automatically removed by setting the &lt;code&gt;.spec.ttlSecondsAfterFinished&lt;/code&gt; field. If you working in a job heavy environment finished jobs can quickly accumulate and become quite resource heavy.&lt;/p&gt;

&lt;p&gt;Example config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apiVersion: batch/v1
kind: Job
metadata:
  name: test-ttl-job
spec:
  ttlSecondsAfterFinished: 100
  ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  18. Git script to keep synced with the upstream
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git remote add upstream &amp;lt;upstream-url&amp;gt;
git fetch upstream
git rebase upstream/main
git push --force-with-lease
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  19. Kubectl auto complete
&lt;/h3&gt;

&lt;p&gt;Kubectl autocompletion lets you create an alias for kubectl. This feature saves time by reducing the need for cheat sheets and is especially useful for managing Kubernetes clusters. It's also recommended for the CKA exam due to its time efficiency.&lt;/p&gt;

&lt;p&gt;Set up for Linux:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# install bash-completion
sudo apt-get install bash-completion

# Add the completion script to your .bashrc file
echo 'source &amp;lt;(kubectl completion bash)' &amp;gt;&amp;gt;~/.bashrc

# Apply changes
source ~/.bashrc

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check out other installation methods &lt;a href="https://komodor.com/learn/kubectl-autocomplete-enabling-and-using-in-bash-zsh-and-powershell/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  20. &lt;strong&gt;Visual Studio Code Remote – SSH&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The Remote - SSH extension lets you use any SSH-enabled remote machine for development, making it easier to develop on the same OS you deploy to, use powerful hardware, switch between environments, and debug applications remotely.&lt;/p&gt;

&lt;p&gt;Install it &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;There’s no magic formula for becoming a top 1% DevOps engineer. Like in most professions, it’s a matter of time, dedication, and experience that will gradually shape you into a highly effective professional. Over time, you'll get much better at recognizing patterns, recalling past situations, and finding quick solutions to recurring issues. So, don’t expect any single life hack from this list to instantly earn you a 50% raise and a promotion. &lt;/p&gt;

&lt;p&gt;However, if you consistently focus on refining your tools, honing your skills, refusing to break good habits, and implementing smart automations, you’ll be well on your way to rapidly evolving and surpassing your current self. And who knows, maybe that promotion is just around the corner.&lt;/p&gt;




&lt;p&gt;If you like our content and want to support us on this mission, we'd appreciate it if you could give us a star ⭐️ on &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" alt="giff" width="480" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Star us on GitHub 🙏&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
      <category>productivity</category>
      <category>learning</category>
    </item>
    <item>
      <title>Simplify Kubernetes Monitoring: Kube-prometheus-stack Made Easy with Glasskube</title>
      <dc:creator>Jake Page</dc:creator>
      <pubDate>Mon, 15 Jul 2024 10:18:11 +0000</pubDate>
      <link>https://dev.to/distr/simplify-kubernetes-monitoring-kube-prometheus-stack-made-easy-with-glasskube-54gn</link>
      <guid>https://dev.to/distr/simplify-kubernetes-monitoring-kube-prometheus-stack-made-easy-with-glasskube-54gn</guid>
      <description>&lt;p&gt;What do we, as developers and engineers, value most above all else? The answer is simple: &lt;strong&gt;our time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tools that deliver value in the shortest amount of time have the highest chance of user adoption, it's as simple as that.&lt;/p&gt;

&lt;p&gt;What else do most engineers value? Beautiful and data-rich &lt;strong&gt;dashboards&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyit2k6i4e19o0rb74ly6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyit2k6i4e19o0rb74ly6.webp" alt="like it" width="240" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://prometheus.io/" rel="noopener noreferrer"&gt;Prometheus&lt;/a&gt; and &lt;a href="https://grafana.com/" rel="noopener noreferrer"&gt;Grafana&lt;/a&gt; are open-source, community-backed solutions with stellar reputations. They bring immense value by fetching and storing metrics while enabling the creation of dashboards that are not only useful but also easy on the eyes.&lt;/p&gt;

&lt;p&gt;The uncomfortable truth is that anyone who has ever set up &lt;code&gt;Prometheus&lt;/code&gt; alongside &lt;code&gt;Grafana&lt;/code&gt; as their environment's monitoring stack from scratch has probably felt the frustration of not getting value especially quickly. Metric exporter configuration, dashboard widget customisation and deciding what to monitor and alert on in the first place takes time.&lt;/p&gt;

&lt;p&gt;That's why &lt;a href="https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack" rel="noopener noreferrer"&gt;Kube-Prometheus-Stack&lt;/a&gt; was created. It installs a collection of Kubernetes manifests, Grafana dashboards, and Prometheus rules, providing an easy-to-operate, end-to-end Kubernetes cluster monitoring solution with Prometheus using the Prometheus Operator.&lt;/p&gt;

&lt;p&gt;This sounds like good news, and it is, but the stack is bundled in a Helm chart, and just the &lt;code&gt;values.yaml&lt;/code&gt; file has &lt;em&gt;over 4000 lines&lt;/em&gt;. Configuring and maintaining the Helm chart isn’t necessarily straightforward or “fun.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvyjxge3kqk26cy92xx66.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvyjxge3kqk26cy92xx66.gif" alt="long-values-file" width="480" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With so many configuration options, we must be getting something good right? Well yeah, we are, by deploying kube-prometheus-stack we get all of this right out of the box: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2fcquzgd73xf9cc83ap1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2fcquzgd73xf9cc83ap1.png" alt="stack-diagram" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Top Layer:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;User:&lt;/strong&gt; Interacts with Grafana and Kubernetes API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Visualization and Alerting Layer:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://grafana.com/" rel="noopener noreferrer"&gt;Grafana&lt;/a&gt;:&lt;/strong&gt; Connects to Prometheus for data visualization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://prometheus.io/docs/alerting/latest/alertmanager/" rel="noopener noreferrer"&gt;Alertmanager&lt;/a&gt;:&lt;/strong&gt; Connected to Prometheus for alert management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/prometheus/prometheus" rel="noopener noreferrer"&gt;Prometheus Server&lt;/a&gt;:&lt;/strong&gt; Central component collecting and storing metrics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://observability.thomasriley.co.uk/prometheus/configuring-prometheus/using-service-monitors/" rel="noopener noreferrer"&gt;ServiceMonitors &amp;amp; PodMonitors&lt;/a&gt;:&lt;/strong&gt; Define how Prometheus scrapes metrics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/" rel="noopener noreferrer"&gt;Prometheus Rules&lt;/a&gt;:&lt;/strong&gt; Includes both alerting and recording rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Exporters Layer:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://prometheus.io/docs/guides/node-exporter/" rel="noopener noreferrer"&gt;Node Exporter&lt;/a&gt;:&lt;/strong&gt; Collects node-level metrics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/kubernetes/kube-state-metrics" rel="noopener noreferrer"&gt;Kube State Metrics&lt;/a&gt;:&lt;/strong&gt; Collects metrics from Kubernetes API objects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Other Exporters:&lt;/strong&gt; Additional exporters for various applications and services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes Cluster:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kubernetes Nodes&lt;/strong&gt;: Running applications and system components.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Applications:&lt;/strong&gt; Monitored by the Kube Prometheus Stack.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Luckily, &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; now supports the &lt;code&gt;Kube-Prometheus-Stack&lt;/code&gt;. Package configuration, lifecycle management, and installation can be done in record time.&lt;/p&gt;

&lt;p&gt;In this blog post, we will explore the steps to configure and install the &lt;code&gt;Kube-Prometheus-Stack&lt;/code&gt; using &lt;a href="https://glasskube.dev/" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt;, wasting no unnecessary time wrestling with never-ending values files and getting you working dashboards and alerts quicker than ever before.&lt;/p&gt;

&lt;h3&gt;
  
  
  Requirements:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Access to a &lt;strong&gt;Kubernetes cluster&lt;/strong&gt; (&lt;a href="https://minikube.sigs.k8s.io/docs/start" rel="noopener noreferrer"&gt;Minikube&lt;/a&gt; will be fine)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; installed&lt;/li&gt;
&lt;li&gt;An extra screen for all the cool dashboards you are going to want to look at all the time. 🤣&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fys9jr0f6ke1f7db3kfn0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fys9jr0f6ke1f7db3kfn0.gif" alt="image" width="350" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Before we begin
&lt;/h2&gt;

&lt;p&gt;For us at &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; crafting great content is as important as building great software. If this is the first time you've heard of us, we are working to build the next generation &lt;code&gt;Package Manager for Kubernetes&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;If you like our content and want to support us on this mission, we'd appreciate it if you could give us a star ⭐️ on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" alt="giff" width="480" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Star us on GitHub 🙏&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a cluster
&lt;/h2&gt;

&lt;p&gt;Install &lt;a href="https://minikube.sigs.k8s.io/docs/start" rel="noopener noreferrer"&gt;Minikube&lt;/a&gt; then run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minikube start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check your installation by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minukube status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Desired output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;➜  ~ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Install Glasskube
&lt;/h2&gt;

&lt;p&gt;If you already &lt;a href="https://glasskube.dev/docs/getting-started/install/" rel="noopener noreferrer"&gt;installed&lt;/a&gt; glasskube you can skip this step.&lt;br&gt;
If not, glasskube can easily be installed by following your distribution's specific instructions.&lt;/p&gt;

&lt;p&gt;MacOs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install glasskube/tap/glasskube
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Linux (Ubuntu/Debian)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -LO https://releases.dl.glasskube.dev/glasskube_v0.4.0_amd64.deb
sudo dpkg -i glasskube_v0.4.0_amd64.deb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;More installation &lt;a href="https://glasskube.dev/docs/getting-started/install/" rel="noopener noreferrer"&gt;guides here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After installing Glasskube on your local machine, make sure to install the necessary components in your Kubernetes cluster by running &lt;code&gt;glasskube bootstrap&lt;/code&gt;. For more information, check out our bootstrap guide.&lt;/p&gt;

&lt;p&gt;Once Glasskube has been installed access the UI with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Navigate to &lt;code&gt;http://localhost:8580/&lt;/code&gt; to access it. &lt;/p&gt;

&lt;h2&gt;
  
  
  Kube-prometheus-stack installation
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Installation can be done via the CLI, UI or even through a YAML package definition file. Since we will customize the deployment we will use the UI for this example.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Package Customization
&lt;/h2&gt;

&lt;p&gt;Glasskube offers a series of customisations that we can be tweaked and adjusted from the CLI or GUI, saving you from having to render and configure the &lt;code&gt;values.yaml&lt;/code&gt; file directly. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7txd2o9vw0mxvrebj3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7txd2o9vw0mxvrebj3g.png" alt="parameter config" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s take them one by one. &lt;/p&gt;

&lt;h3&gt;
  
  
  Enable Alertmanager 🚨
&lt;/h3&gt;

&lt;p&gt;We want &lt;code&gt;Alertmanager&lt;/code&gt; to be enabled so we can leverage the metrics prometheus exposes to create helpful alerts.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Grafana Domain 📊
&lt;/h3&gt;

&lt;p&gt;We will leave this empty for this demo since we would need to deploy an ingress controller to our cluster to handle the ingress object associated with the Grafana service. We could use &lt;a href="https://glasskube.dev/guides/ingress-nginx/" rel="noopener noreferrer"&gt;Ingress-nginx&lt;/a&gt; or &lt;a href="https://github.com/caddyserver/ingress" rel="noopener noreferrer"&gt;Caddy-ingress&lt;/a&gt; which are also supported by Glasskube for this. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Glasskube will automatically port-forward the Grafana pod so we can access the dashboard via the &lt;code&gt;Open&lt;/code&gt; button.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Node Exporter host network 💽
&lt;/h3&gt;

&lt;p&gt;Let’s also enable this to export node level metrics like memory and node level CPU usage.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prometheus retention 📅
&lt;/h3&gt;

&lt;p&gt;This is a duration in days for how long we want to persist the collected metrics.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prometheus storage size
&lt;/h3&gt;

&lt;p&gt;The amount of storage requests we consider the package will need. &lt;/p&gt;

&lt;h3&gt;
  
  
  Parameter input methods 🗄️
&lt;/h3&gt;

&lt;p&gt;Glasskube allows for various methods of parameter input:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From a &lt;strong&gt;Kubernetes Secret&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;From &lt;strong&gt;ConfigMap&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Value from &lt;strong&gt;Package Configuration&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Via the &lt;strong&gt;UI&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8dd9vj10hqw13qk98td.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8dd9vj10hqw13qk98td.png" alt="data input methods" width="800" height="203"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By choosing to inject data via &lt;strong&gt;Kubernetes Secrets&lt;/strong&gt;, &lt;strong&gt;ConfigMaps&lt;/strong&gt; and &lt;strong&gt;Package configuration&lt;/strong&gt; we can maintain simplicity without compromising security. &lt;/p&gt;

&lt;p&gt;Here is the example of how we would reference a specific &lt;code&gt;configMap&lt;/code&gt; we have already created and deployed to our cluster. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67dqnt7cxgpeq1zvdea4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67dqnt7cxgpeq1zvdea4.png" alt="Value from ConfigMap" width="800" height="73"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 If you're using &lt;code&gt;Kube-prometheus-stack&lt;/code&gt; and considering Glasskube for package lifecycle management but need support for specific key parameter customizations, please &lt;a href="https://github.com/glasskube/glasskube/issues" rel="noopener noreferrer"&gt;open an issue&lt;/a&gt; on GitHub with your use case. We'll do our best to expand the parameter list accordingly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Install via Glasskkube
&lt;/h2&gt;

&lt;p&gt;Once the configuration section is complete, install &lt;code&gt;kube-prometheus-stack.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ch181euwexulffkli9d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ch181euwexulffkli9d.png" alt="Glasskube UI" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Upon installation you can see that the &lt;code&gt;kube-prometheus-stack&lt;/code&gt; namespace has been created. And a series of pods have been deployed, including the &lt;code&gt;grafana&lt;/code&gt; dashboard, the &lt;code&gt;prometheus operator&lt;/code&gt; and the &lt;code&gt;kube state metrics&lt;/code&gt; pods too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl3pgws4cf2qtib4449m3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl3pgws4cf2qtib4449m3.png" alt="cli output" width="800" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Access the dashboards
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;In next weeks blog post we will access the dashboard via a custom dedicated Grafana URL&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmnt9zl5qxuq8cd54qwni.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmnt9zl5qxuq8cd54qwni.gif" alt="open command" width="560" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hit the &lt;code&gt;Open&lt;/code&gt; button or if you want to access Grafana on a different port you can simply &lt;code&gt;port-forward&lt;/code&gt; the pod, which will map the exposed Grafana port to a port on your localhost. I've arbitrarily chosen to &lt;code&gt;port-forward&lt;/code&gt; to &lt;code&gt;localhost 52222&lt;/code&gt; since it's available.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl port-forward POD_NAME 52222:3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Head over to &lt;code&gt;http://localhost:52222/&lt;/code&gt; and you will then be greated by the Granfana login page. To find your credentials which are stored in a Kubernetes secret that was generated as part of the deployed stack, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get secret kube-prometheus-stack-kube-prometheus-stack-grafana  -o go-template='
{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"\n"}}{{end}}'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Which will output something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;admin-password: prom-operator
admin-user: admin
ldap-toml:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Upon access you we be greeted by a long list of powerful pre-configured Grafana dashboards which are already showing local cluster metrics:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6qet3srm7xly065jfbx5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6qet3srm7xly065jfbx5.png" alt="dashboards" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Easily access CPU usage information
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikbx8hwn3ffssi7zeutr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikbx8hwn3ffssi7zeutr.png" alt="CPU dashboard" width="800" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Here is a segment of the nifty CoreDNS dashboard that also comes preconfigured
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywy90tbmkhuhrz0bb0ul.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywy90tbmkhuhrz0bb0ul.png" alt="CoreDNS" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Alerting
&lt;/h2&gt;

&lt;p&gt;We already get many useful alerts created for us right out of the box. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fptnr7vl5hux0hur8tzh3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fptnr7vl5hux0hur8tzh3.png" alt="alerting rules" width="800" height="173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this snippet you can see that some of the preconfigured alerts are already firing: ↘️&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0dguekqv6cg5yox9ofq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0dguekqv6cg5yox9ofq4.png" alt="firing alerts" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to be notified in via &lt;strong&gt;email&lt;/strong&gt;, &lt;strong&gt;PagerDuty&lt;/strong&gt; or any number of third party supported you will just need to add your &lt;a href="https://grafana.com/docs/grafana/latest/alerting/fundamentals/notifications/contact-points/#:~:text=A%20contact%20point%20is%20a,custom%20message%2C%20or%20notification%20templates." rel="noopener noreferrer"&gt;contact points&lt;/a&gt; of preference and then add them as destination inside &lt;a href="https://grafana.com/docs/grafana/latest/alerting/configure-notifications/create-notification-policy/" rel="noopener noreferrer"&gt;custom notification policies&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;Kube-prometheus-stack&lt;/code&gt; offers tremendous &lt;strong&gt;"out-of-the-box"&lt;/strong&gt; value for Kubernetes cluster monitoring, eliminating the need to start from scratch. It bundles essential components for metrics exposure, extraction, alerting, and visualization, helping you establish a robust monitoring posture from the get-go. With official support from &lt;code&gt;Glasskube&lt;/code&gt;, managing and updating a comprehensive, best practice-compliant monitoring stack has never been easier.&lt;/p&gt;




&lt;p&gt;If you like our content and want to support us on this mission, we'd appreciate it if you could give us a star ⭐️ on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" alt="giff" width="480" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Star us on GitHub 🙏&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>opensource</category>
      <category>kubernetes</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>Log and trace management made easy. Quickwit Integration via Glasskube</title>
      <dc:creator>Jake Page</dc:creator>
      <pubDate>Mon, 01 Jul 2024 12:14:52 +0000</pubDate>
      <link>https://dev.to/distr/log-and-trace-management-made-easy-quickwit-integration-via-glasskube-2hg2</link>
      <guid>https://dev.to/distr/log-and-trace-management-made-easy-quickwit-integration-via-glasskube-2hg2</guid>
      <description>&lt;p&gt;Distributed application troubleshooting can be a nightmare. Unless you have the budget for expensive proprietary monitoring SaaS solutions or the expertise to run and maintain an complex ELK stack you might feel as if you are stuck in a cave without a flashlight. &lt;/p&gt;

&lt;p&gt;Luckily, viable open-source alternatives like &lt;a href="https://quickwit.io/" rel="noopener noreferrer"&gt;Quickwit&lt;/a&gt; are here to come to the rescue. By weaving together existing tooling for log and trace ingesting as well as pairing well with dashboard and visualisation tools such as Grafana and Jaeger. And sandwiching powerful indexing storage and search capabilities in between. Even if the tool sounds new, it won’t be for long. &lt;/p&gt;

&lt;p&gt;We recently integrated Quickwit with &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; and it’s available to be easily deployed to your cluster. I spoke directly with Quickwit co-founder &lt;a href="https://www.linkedin.com/in/fran%C3%A7ois-massot-473006b/" rel="noopener noreferrer"&gt;François Massot&lt;/a&gt; to get the insider scoop, and to learn how the tool works. Let's dive in!&lt;/p&gt;

&lt;h2&gt;
  
  
  But what is Quickwit exactly? 🤷
&lt;/h2&gt;

&lt;p&gt;Quickwit is a cloud-native search engine that emerged with the goal of creating an open-source alternative to expensive monitoring software like Datadog and Splunk. Along the way, they’ve also developed and open-sourced several components, including ChitChat (cluster membership protocol), mrecordlog (WAL), Whichlang (fast language detection), witty actors (actor framework), and bitpacking (SIMD algorithms for integer compression).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F154x37vzjunqayriczlx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F154x37vzjunqayriczlx.png" alt="quickmit-diagram" width="800" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quickwit, with its robust Elasticsearch-compatible API, integrates well with tooling from the OSS ecosystem, such as Grafana, Jaeger, and OpenTelemetry. Users are successfully deploying Quickwit at scale, with hundreds of nodes and hundreds of terabytes of data ingested daily, all while enjoying significant cost reductions and how thanks to Glasskube to can get up and running in no time.&lt;/p&gt;

&lt;p&gt;Quickwit excels in handling logs, traces, security data, and append-only datasets, with plans to support metrics soon. A key feature is the usage of object storage for the indexed data, which simplifies cluster management, cuts infrastructure costs, and enhances reliability. Multiple storage options are available such as local disk, Amazon S3, Azure Blob storage or Garage, an OSS distributed object storage, are available.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions for the co-founder François Massot 🙋
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What are the benefits of using external Object Storage as opposed to node attached storage?
&lt;/h3&gt;

&lt;p&gt;There are a lot of benefits! From the beginning, we chose to decouple compute and storage to make our search engine scalable, reliable, and very cost-efficient. If you want to remember one thing distinguishing Quickwit from traditional search engines, this is decoupled storage and computing.&lt;/p&gt;

&lt;p&gt;Firstly, it provides elasticity, allowing us to scale storage and compute resources independently, which is ideal for cloud environments. Secondly, it’s cost-efficient, as object storage like S3 is cheaper than traditional disk storage, especially for large volumes of log data. And you don’t need to replicate your index data; this is done by the object storage layer. Additionally, it ensures high durability and availability, reducing the risk of data loss. Last, but not least, it simplifies cluster management as most of Quickiwt’s components are stateless.&lt;/p&gt;

&lt;h3&gt;
  
  
  Performance Comparison: Is Quickwit Faster than Elasticsearch?
&lt;/h3&gt;

&lt;p&gt;It depends!&lt;/p&gt;

&lt;p&gt;On indexing, Quickwit is generally twice as fast as Elasticsearch and uses less CPU. Our users, like Binance, report a reduction of 80% of CPU usage at indexing!&lt;/p&gt;

&lt;p&gt;The story is different regarding querying, as Elasticsearch has all its data on a local disk, typically SSD, and Quickwit has its indexed data in very slow object storage. In this case, you can expect query time to be lower. But Quickwit's main goal is to be sub-second queries, which is perfectly fine in the observability/security domains. If we look at this indicator, Quickwit is on par with Elasticsearch and is even faster for demanding analytics queries, whereas the data is stored on object storage!&lt;/p&gt;

&lt;h3&gt;
  
  
  What's in store for quickwit in the future?
&lt;/h3&gt;

&lt;p&gt;We have a very ambitious roadmap! Here are the key features that will be added in the following 12 months:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Distributed ingest (July 2024)&lt;/strong&gt;: High-throughput indexing on tens of thousands of indexes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;OpenSearch Dashboard support (Q3 2024)&lt;/strong&gt;: This will enable OpenSearch users to migrate seamlessly to Quickwit with their existing dashboards.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Metrics support (Q4 2024)&lt;/strong&gt;: New storage engine optimized for time series data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Distributed SQL engine (Q1 2025)&lt;/strong&gt;: Distributed SQL engine for analytics on top of Apache Arrow, Datafusion, and Ballista.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pipe-based query language (Q2 2025)&lt;/strong&gt;: Introduction of a flexible and powerful query language similar to SPL (Splunk Query Language)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Use cases
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Log management 🪵
&lt;/h3&gt;

&lt;p&gt;Quickwit is built from the ground up to efficiently index unstructured data, and search it effortlessly on cloud storage. Moreover, Quickwit supports OpenTelemetry gRPC and HTTP (protobuf only) protocols out of the box and provides a REST API ready to ingest any JSON formatted logs. This makes Quickwit a perfect fit for logs!&lt;/p&gt;

&lt;h3&gt;
  
  
  Distributed tracing 📊
&lt;/h3&gt;

&lt;p&gt;Distributed Tracing involves monitoring application requests as they traverse various services like frontend, backend, and databases. It's instrumental for understanding application behavior and diagnosing performance issues.&lt;/p&gt;

&lt;p&gt;Additionally, Quickwit seamlessly integrates with OpenTelemetry using gRPC and HTTP protocols (protobuf only), as well as Jaeger's gRPC API (SpanReader only). This means you can store traces in Quickwit and effortlessly query them using Jaeger's UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key features 🔑
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Full-text &lt;em&gt;search&lt;/em&gt; and &lt;em&gt;aggregation&lt;/em&gt; queries&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Elasticsearch&lt;/em&gt; query language support&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Sub-second search&lt;/em&gt; on cloud storage (Amazon S3, Azure Blob Storage, …)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Decoupled compute&lt;/em&gt; and &lt;em&gt;storage&lt;/em&gt;, stateless &lt;em&gt;indexers &amp;amp; searchers&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Schemaless&lt;/em&gt; or &lt;em&gt;strict&lt;/em&gt; schema &lt;em&gt;indexing&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Schemaless analytics&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Grafana&lt;/em&gt; data source&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Jaeger-native&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;OTEL-native&lt;/em&gt; for logs and traces&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Kubernetes ready&lt;/em&gt; via Glasskube&lt;/li&gt;
&lt;li&gt;&lt;em&gt;RESTful API&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation guide 🦮
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Prerequisites​
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Access to a Kubernetes cluster (you can easily create a local cluster by using &lt;a href="https://minikube.sigs.k8s.io/docs/start/?arch=%2Fmacos%2Fx86-64%2Fstable%2Fbinary+download" rel="noopener noreferrer"&gt;Minikube&lt;/a&gt; or &lt;a href="https://kind.sigs.k8s.io/" rel="noopener noreferrer"&gt;Kind&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kubernetes.io/docs/tasks/tools/" rel="noopener noreferrer"&gt;kubectl&lt;/a&gt; isn't strictly speaking a dependency for installing packages via glasskube, but it is the recommended way to interact with the cluster. Therefore, it is highly recommended. Installation instructions are available for macOS, Linux and Windows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Install Glasskube
&lt;/h2&gt;

&lt;p&gt;If you already &lt;a href="https://glasskube.dev/docs/getting-started/install/" rel="noopener noreferrer"&gt;installed&lt;/a&gt; glasskube you can skip this step.&lt;br&gt;
If not, glasskube can easily be installed by following your distribution's specific instructions.&lt;/p&gt;

&lt;p&gt;For this demo I'll be using a MacOs distribution:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;glasskube/tap/glasskube &lt;span class="c"&gt;# install the glasskube cli&lt;/span&gt;
minikube start &lt;span class="c"&gt;# start a minikube Kubernetes cluster&lt;/span&gt;
glasskube bootstrap &lt;span class="c"&gt;# install glasskube on the kind cluster&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For more installation &lt;a href="https://glasskube.dev/docs/getting-started/install/" rel="noopener noreferrer"&gt;guides, find them here.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once Glasskube has been installed access via the UI with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;glasskube serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The dashboard will open up on &lt;code&gt;http://localhost:8580/&lt;/code&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Creating an S3-Compatible Bucket
&lt;/h2&gt;

&lt;p&gt;Before installing Quickwit, you'll need to create an object storage bucket to hold your Quickwit &lt;code&gt;indexes&lt;/code&gt;. You can use use your choice of Cloud provider such as &lt;a href="https://www.scaleway.com/en/" rel="noopener noreferrer"&gt;Scaleway&lt;/a&gt;, &lt;a href="https://aws.amazon.com/" rel="noopener noreferrer"&gt;AWS&lt;/a&gt; S3 or &lt;a href="https://min.io/" rel="noopener noreferrer"&gt;MinIO&lt;/a&gt;. Refer to our official Quickwit &lt;a href="https://quickwit.io/docs/configuration/storage-config" rel="noopener noreferrer"&gt;documentation&lt;/a&gt; for storage configuration details.&lt;/p&gt;

&lt;p&gt;Here I will be creating an &lt;code&gt;AWS S3 bucket&lt;/code&gt; to store the Quickwit indexes.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3aed8xtewfgf10filkj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3aed8xtewfgf10filkj.png" alt="s3-dashboard" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to the AWS management console and create a new S3 bucket.&lt;/li&gt;
&lt;li&gt;In &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html" rel="noopener noreferrer"&gt;IAM generate an API key&lt;/a&gt;, with S3 permissions, save the 'Access Key Id' and 'Secret Key', we will need them shortly.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Deploy Quickwit​
&lt;/h2&gt;

&lt;p&gt;From the Glasskube dashboard, find the Quickwit pacakge and add your custom configuration parameters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ye6uqvhdwciumt65aal.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ye6uqvhdwciumt65aal.png" alt="quickmit-parameters" width="800" height="635"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;defaultIndexRootUri&lt;/strong&gt;: for this demo it's &lt;code&gt;s3://quickwit-indexes&lt;/code&gt;. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;metastoreUri:&lt;/strong&gt; we won't use PostgreSQL so let's pick the same value we used for &lt;code&gt;defaultIndexRootUri&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;s3AccessKeyId:&lt;/strong&gt; the &lt;code&gt;"Access Key Id"&lt;/code&gt; from AWS we generated before.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;s3Endpoint:&lt;/strong&gt; Custom endpoint for use with S3-compatible providers. Not needed for S3 configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;s3Flavor:&lt;/strong&gt; we are using the default &lt;code&gt;empty value&lt;/code&gt; for genuine S3-compatible object storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;s3Region:&lt;/strong&gt; &lt;code&gt;US-east-1&lt;/code&gt; in my case.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;s3SecretAccessKey:&lt;/strong&gt; the &lt;code&gt;"Secret Key"&lt;/code&gt; from AWS we generated before.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here you can find the &lt;a href="https://quickwit.io/blog/glasskube" rel="noopener noreferrer"&gt;official Quickwit documentation &lt;/a&gt;for parameter completion. &lt;/p&gt;

&lt;p&gt;It's also possible to install and configure Quickwit using the Glasskube CLI by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;glasskube &lt;span class="nb"&gt;install &lt;/span&gt;quickwit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once installed, you can see that a &lt;code&gt;quickwit&lt;/code&gt; namespace has been created:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;default
flux-system
glasskube-system
kube-node-lease
kube-public
kube-system
kubernetes-dashboard
quickwit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, check to see if the pods are running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;NAME                                               READY   STATUS    RESTARTS      AGE
quickwit-quickwit-control-plane-86bd9955f7-bwm2r   1/1     Running   1 &lt;span class="o"&gt;(&lt;/span&gt;27m ago&lt;span class="o"&gt;)&lt;/span&gt;   29m
quickwit-quickwit-indexer-0                        1/1     Running   1 &lt;span class="o"&gt;(&lt;/span&gt;27m ago&lt;span class="o"&gt;)&lt;/span&gt;   29m
quickwit-quickwit-janitor-9479697ff-x4x2c          1/1     Running   1 &lt;span class="o"&gt;(&lt;/span&gt;27m ago&lt;span class="o"&gt;)&lt;/span&gt;   29m
quickwit-quickwit-metastore-56ff74df9f-k6d2g       1/1     Running   0             29m
quickwit-quickwit-searcher-0                       1/1     Running   1 &lt;span class="o"&gt;(&lt;/span&gt;27m ago&lt;span class="o"&gt;)&lt;/span&gt;   29m
quickwit-quickwit-searcher-1                       1/1     Running   0             27m
quickwit-quickwit-searcher-2                       1/1     Running   0             27m
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can try to access to the Quickwit UI using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;kubectl &lt;span class="nt"&gt;-n&lt;/span&gt; quickwit port-forward pod/quickwit-quickwit-searcher-0 7280
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Head over to &lt;a href="http://localhost:7280" rel="noopener noreferrer"&gt;http://localhost:7280&lt;/a&gt;. And you should be ready to go!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fchju7g5d8nqx6nguzhbp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fchju7g5d8nqx6nguzhbp.png" alt="quickwit dashboard" width="800" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create your first index​
&lt;/h3&gt;

&lt;p&gt;Before adding &lt;strong&gt;documents&lt;/strong&gt; to &lt;a href="https://quickwit.io/" rel="noopener noreferrer"&gt;Quickwit&lt;/a&gt;, you need to create an &lt;strong&gt;index&lt;/strong&gt; configured with a YAML config file. This config file notably lets you define how to map your input documents to your index fields and whether these fields should be stored and indexed. See the &lt;a href="https://quickwit.io/docs/main-branch/configuration/index-config" rel="noopener noreferrer"&gt;index config documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let's create an index configured to receive Stackoverflow posts (questions and answers).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# First, download the stackoverflow dataset config from Quickwit repository.
curl -o stackoverflow-index-config.yaml https://raw.githubusercontent.com/quickwit-oss/quickwit/main/config/tutorials/stackoverflow/index-config.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The index config defines three fields: &lt;strong&gt;title&lt;/strong&gt;, &lt;strong&gt;body&lt;/strong&gt; and &lt;strong&gt;creationDate&lt;/strong&gt;. &lt;em&gt;title&lt;/em&gt; and &lt;em&gt;body&lt;/em&gt; &lt;a href="https://quickwit.io/docs/configuration/index-config#text-type" rel="noopener noreferrer"&gt;are indexed and tokenized&lt;/a&gt;, and they are also used as default search fields, which means they will be used for search if you do not target a specific field in your query. &lt;em&gt;creationDate&lt;/em&gt; serves as the timestamp for each record. There are no more explicit field definitions as we can use the default &lt;a href="https://quickwit.io/docs/main-branch/configuration/index-config#mode" rel="noopener noreferrer"&gt;dynamic mode&lt;/a&gt;: the undeclared fields will still be indexed, by default fast fields are enabled to enable aggregation queries. and the raw tokenizer is used for text.&lt;/p&gt;

&lt;p&gt;And here is the complete config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Index config file for stackoverflow dataset.&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.7&lt;/span&gt;

&lt;span class="na"&gt;index_id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;stackoverflow&lt;/span&gt;

&lt;span class="na"&gt;doc_mapping&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;field_mappings&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;title&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;text&lt;/span&gt;
      &lt;span class="na"&gt;tokenizer&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;default&lt;/span&gt;
      &lt;span class="na"&gt;record&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;position&lt;/span&gt;
      &lt;span class="na"&gt;stored&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;body&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;text&lt;/span&gt;
      &lt;span class="na"&gt;tokenizer&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;default&lt;/span&gt;
      &lt;span class="na"&gt;record&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;position&lt;/span&gt;
      &lt;span class="na"&gt;stored&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;creationDate&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;datetime&lt;/span&gt;
      &lt;span class="na"&gt;fast&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="na"&gt;input_formats&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;rfc3339&lt;/span&gt;
      &lt;span class="na"&gt;fast_precision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;seconds&lt;/span&gt;
  &lt;span class="na"&gt;timestamp_field&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;creationDate&lt;/span&gt;

&lt;span class="na"&gt;search_settings&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;default_search_fields&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;body&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="na"&gt;indexing_settings&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;commit_timeout_secs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;30&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we can create the index with the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./quickwit index create --index-config ./stackoverflow-index-config.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check that a directory &lt;code&gt;./qwdata/indexes/stackoverflow&lt;/code&gt; has been created, Quickwit will write index files here and a &lt;code&gt;metastore.json&lt;/code&gt; which contains the &lt;a href="https://quickwit.io/docs/overview/architecture#index" rel="noopener noreferrer"&gt;index metadata&lt;/a&gt;. You're now ready to fill the index.&lt;/p&gt;

&lt;p&gt;Continue on to the Quickwit documentation to add your &lt;a href="https://quickwit.io/docs/get-started/quickstart#lets-add-some-documents" rel="noopener noreferrer"&gt;first documents&lt;/a&gt; and execute your &lt;a href="https://quickwit.io/docs/get-started/quickstart#execute-search-queries" rel="noopener noreferrer"&gt;first search queries&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;If you like our content and want to support us on this mission, we'd appreciate it if you could give us a star ⭐️ on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" alt="giff" width="480" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Star us on GitHub 🙏&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>devops</category>
      <category>database</category>
      <category>opensource</category>
      <category>aws</category>
    </item>
    <item>
      <title>Glasskube v0.10.0 out now!</title>
      <dc:creator>Jake Page</dc:creator>
      <pubDate>Mon, 24 Jun 2024 11:27:08 +0000</pubDate>
      <link>https://dev.to/distr/glasskube-v0100-out-now-3ipi</link>
      <guid>https://dev.to/distr/glasskube-v0100-out-now-3ipi</guid>
      <description>&lt;p&gt;Welcome back to another &lt;code&gt;new release&lt;/code&gt; blog post 🚀&lt;/p&gt;

&lt;p&gt;This is where we cover the newest shipped features, enhancements, bug fixes and cover all of the recent &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; news to make sure you are fully up to speed. We have been riding a continous wave off momentum of internal feature developments as well as interest from the wider community which has led to the delivery of &lt;strong&gt;Glasskube v0.10.0&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Let’s check out what you can expect to find in this new minor release. &lt;/p&gt;

&lt;h2&gt;
  
  
  🚨 Alert: Breaking changes on the horizon ⛓️‍💥
&lt;/h2&gt;

&lt;p&gt;Up until now, Glasskube packages could only be installed once per cluster, which sometimes imposed unnecessary restrictions and limited certain use cases.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;From v0.10.0 onwards, the author of a package can specify a &lt;strong&gt;"scope,"&lt;/strong&gt; which can be either &lt;strong&gt;"Cluster"&lt;/strong&gt; or &lt;strong&gt;"Namespaced"&lt;/strong&gt; (with the default being "Cluster"). Based on the package scope, the Glasskube system creates either a cluster-scoped or namespace-scoped custom resource. The name of the cluster-scoped CRD is &lt;code&gt;ClusterPackage&lt;/code&gt;, while the name for the namespace-scoped CRD is &lt;code&gt;Package&lt;/code&gt;. This update introduces a breaking change since we previously used the &lt;code&gt;Package&lt;/code&gt; CRD name for cluster-scoped resources. However, we decided to implement this change to align with common Kubernetes nomenclature (e.g., &lt;code&gt;Role&lt;/code&gt;/ &lt;code&gt;ClusterRole&lt;/code&gt;). &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Additional features and UI enhancements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To assist in upgrading to v0.10.0 the &lt;code&gt;glasskube purge&lt;/code&gt; command was added to help remove the previous installation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;code&gt;glasskube repo update&lt;/code&gt; command was also added to fetch the latest package manifests from configured Glasskube package repository.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Access to the full changelog &lt;a href="https://github.com/glasskube/glasskube/releases" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Upgrading to v0.10.0
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;For first time installations, please follow the installation guide &lt;a href="https://glasskube.dev/docs/getting-started/install/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To upgrade the Glasskube CLI, Install the newest binary files if you are on &lt;a href="https://glasskube.dev/docs/getting-started/install/" rel="noopener noreferrer"&gt;Linux&lt;/a&gt; or &lt;a href="https://releases.dl.glasskube.dev/glasskube_v0.9.0_windows_x86_64.zip" rel="noopener noreferrer"&gt;Windows&lt;/a&gt; machines. &lt;/p&gt;

&lt;p&gt;For macOS, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew upgrade glasskube
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To upgrade Glasskube’s cluster components follow to &lt;a href="https://glasskube.dev/docs/getting-started/upgrading/" rel="noopener noreferrer"&gt;upgrading guide here&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  🆕 New Packages integrations available now
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Quickwit
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://quickwit.io/" rel="noopener noreferrer"&gt;Quickwit&lt;/a&gt; is a cloud-native search engine that emerged with the goal of creating an open-source alternative to expensive monitoring software like Datadog/Splunk. With its robust Elasticsearch-compatible API, Quickwit integrates well with tooling from the OSS ecosystem, such as Grafana, Jaeger, and OpenTelemetry. &lt;/p&gt;

&lt;p&gt;Users are successfully deploying Quickwit at scale, with hundreds of nodes and hundreds of terabytes of data ingested daily, all while enjoying significant cost reductions and how thanks to Glasskube to can get up and running in no time. Quickwit excels in handling logs, traces, security data, and append-only datasets, with plans to support metrics soon.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49oonpe9gv2zet0vs9aj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49oonpe9gv2zet0vs9aj.png" alt="Glasskube and Quickwit" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hatchet
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://hatchet.run/" rel="noopener noreferrer"&gt;Hatchet&lt;/a&gt; is a distributed, fault-tolerant task queue which replaces traditional message brokers and pub/sub systems, built to solve problems like concurrency, fairness, and durability.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv7p2mniv0hgb9q7hhzz0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv7p2mniv0hgb9q7hhzz0.png" alt="Hatchet-glasskube" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Find installation instructions &lt;a href="https://docs.hatchet.run/self-hosting/kubernetes-glasskube" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⏭️ Next packages to be supported
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Kubeflow
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://www.kubeflow.org/" rel="noopener noreferrer"&gt;Kubeflow&lt;/a&gt; project is dedicated to making deployments of machine learning (ML) workflows on Kubernetes simple, portable and scalable. Their goal is not to recreate other services, but to provide a straightforward way to deploy best-of-breed open-source systems for ML to diverse infrastructures.&lt;/p&gt;

&lt;h3&gt;
  
  
  Headlamp
&lt;/h3&gt;

&lt;p&gt;Out of the box, &lt;a href="https://headlamp.dev/" rel="noopener noreferrer"&gt;Headlamp&lt;/a&gt; is a fully functional Kubernetes UI. By leveraging its powerful plugin system, builders can shape Headlamp to fit their bespoke use-cases, products, and environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Velero
&lt;/h3&gt;

&lt;p&gt;Under the VMWare umbrella, &lt;a href="https://velero.io/" rel="noopener noreferrer"&gt;Velero&lt;/a&gt; is an open source tool to safely backup and restore, perform disaster recovery, and migrate Kubernetes cluster resources and persistent volumes.&lt;/p&gt;

&lt;h2&gt;
  
  
  📹 Updated demo video
&lt;/h2&gt;

&lt;p&gt;Check out the newest Glasskube demo video delivered by Philip, where you can find the latest project updates up to v0.9.0.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/aIeTHGWsG2c"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;

&lt;p&gt;If you haven’t already, head on over to the &lt;a href="https://www.youtube.com/@glasskube/videos" rel="noopener noreferrer"&gt;Glasskube YouTube channel&lt;/a&gt; where you can find the growing archive of weekly Community Calls, Release videos and even some short form content. &lt;/p&gt;
&lt;h2&gt;
  
  
  ☁️ Join Glasskube Cloud
&lt;/h2&gt;

&lt;p&gt;We are starting to build our Glasskube cloud offering to include advanced features in security, accessibility, and team collaboration. Stay updated on our progress by signing up &lt;a href="https://glasskube.cloud/signup.html" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jya4p0vqd8dgpmoy74c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jya4p0vqd8dgpmoy74c.png" alt="Glasskube cloud snippet" width="800" height="326"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;If you like our content and want to support us on this mission, we'd appreciate it if you could give us a star ⭐️ on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" alt="giff" width="480" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Star us on GitHub 🙏&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>devops</category>
      <category>kubernetes</category>
      <category>programming</category>
    </item>
    <item>
      <title>10 Essential Books to Accelerate your Cloud Career</title>
      <dc:creator>Jake Page</dc:creator>
      <pubDate>Wed, 19 Jun 2024 13:17:44 +0000</pubDate>
      <link>https://dev.to/distr/10-essential-books-to-accelerate-your-cloud-career-6jf</link>
      <guid>https://dev.to/distr/10-essential-books-to-accelerate-your-cloud-career-6jf</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR 🤓
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;DevOps&lt;/strong&gt; and &lt;strong&gt;cloud engineers&lt;/strong&gt; need not have a floor-to-ceiling bookshelf full of books to enhance their skills. &lt;strong&gt;A few key books are all you need (at least at the beginning)&lt;/strong&gt;. Below I highlight key titles for both junior and senior DevOps and cloud engineers, focusing on improving productivity, understanding cloud native technologies and cloud infrastructure. Emphasizing &lt;strong&gt;practical application&lt;/strong&gt; and continuous learning is essential for advancing a career in the rapidly evolving cloud industry.&lt;/p&gt;




&lt;p&gt;With the vast amount of valuable and entertaining sources of Cloud Engineering information, from &lt;a href="https://open.spotify.com/show/6VRDZ6E89JfNY9BCANx70m?si=c08f83248aee4df7" rel="noopener noreferrer"&gt;podcasts&lt;/a&gt; and &lt;a href="https://www.youtube.com/@KodeKloud" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; channels to even &lt;a href="https://www.youtube.com/watch?v=BE77h7dmoQU" rel="noopener noreferrer"&gt;movies&lt;/a&gt;, it can sometimes make us question the authenticity of the well-stocked bookshelves we see behind team members on our daily Zoom calls. &lt;strong&gt;Do they actually read those books, or are they just for show?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As someone who has always loved books for their content and entertainment value, I've found myself increasingly drawn to them in recent years for the change of mental pace they provide compared to other modern content mediums.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Femn3uta3irrsmltoiku7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Femn3uta3irrsmltoiku7.gif" alt="reading-gif" width="470" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike other technical book recommendation articles, I want to distinguish between four distinct categories of books that I find helpful to keep in mind. Not every book on this list is meant to be read from cover to cover, nor is every book a dense technical textbook that will gather dust on your shelf after a quick leaf-through. &lt;/p&gt;

&lt;p&gt;The handful of book recommendations that have made an impact on my own cloud journey &lt;strong&gt;fall into the following categories&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core concepts:&lt;/strong&gt; 🏗️&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud Computing: Concepts, Technology &amp;amp; Architecture&lt;/li&gt;
&lt;li&gt;The DevOps Handbook&lt;/li&gt;
&lt;li&gt;Cloud Native Infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Reference books:&lt;/strong&gt; 🔎&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Site Reliability Engineering&lt;/li&gt;
&lt;li&gt;AWS Fundamentals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Page turners:&lt;/strong&gt; 📑&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Phoenix Project&lt;/li&gt;
&lt;li&gt;Accelerate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Not cloud specific but still must reads:&lt;/strong&gt;📍&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wiring the winning organisation&lt;/li&gt;
&lt;li&gt;Slow productivity&lt;/li&gt;
&lt;li&gt;Designing Data-Intensive Applications&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;🚨 Disclaimer: Gene Kim is going to feature prominently on this list &lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Before we begin
&lt;/h2&gt;

&lt;p&gt;For us at &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; crafting great content is as important as building great software. If this is the first time you've heard of us, we are working to build the next generation &lt;code&gt;Package Manager for Kubernetes&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;If you like our content and want to support us on this mission, we'd appreciate it if you could give us a star ⭐️ on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" alt="giff" width="480" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Star us on GitHub 🙏&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Core concepts 🏗️
&lt;/h2&gt;

&lt;p&gt;These are the types of books that provide beginners with &lt;strong&gt;essential core concepts and frameworks&lt;/strong&gt;, forming a solid foundation that helps future lessons fall right into place.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Cloud Computing: Concepts, Technology &amp;amp; Architecture
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnpfg6ecfvb1o7r26cdf7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnpfg6ecfvb1o7r26cdf7.png" alt="cloud-computing" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synopsis:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Originally published in 2013, this book is respected industry wide and is a comprehensive guide to cloud computing by exploring its history, models, mechanisms, architectures, and security considerations. Combining case studies with technical analysis, the book examines topics ranging from cloud-enabling technologies to cloud service level agreements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you will learn:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You will get a comprehensive and &lt;strong&gt;vendor-neutral understanding of cloud technologies&lt;/strong&gt;, making it easier to assess various cloud solutions and providers objectively.&lt;/li&gt;
&lt;li&gt;Fundamental &lt;strong&gt;cloud computing concepts, models, and mechanisms&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;A deeper understanding of &lt;strong&gt;cloud characteristics, security threats, and risk management frameworks&lt;/strong&gt;, crucial for designing secure and reliable cloud solutions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quote from the book:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"There is no greater danger to a business than approaching cloud computing adoption with ignorance. The magnitude of a failed adoption effort not only correspondingly impacts IT departments, but can actually regress a business to a point where it finds itself steps behind from where it was prior to the adoption—and, perhaps, even more steps behind competitors that have been successful at achieving their goals in the meantime."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;A review that caught my eye:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi00obtif4agkln48lwv7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi00obtif4agkln48lwv7.png" alt="cloud-review" width="800" height="203"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get it &lt;a href="https://www.oreilly.com/library/view/cloud-computing-concepts/9780133387568/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The DevOps Handbook
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzn870tcuyzreoqcwzvus.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzn870tcuyzreoqcwzvus.png" alt="devops-hb-cover" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synopsis:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;By presenting the “Three ways” as the principles for mitigating these challenges and achieving world-class performance, the book illustrates how organizations can adopt DevOps principles and practices to accelerate delivery, improve reliability, and create a more satisfying and productive work environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you will learn:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;Three Ways&lt;/strong&gt; (Flow, Feedback &amp;amp; Continual Learning and Experimentation).&lt;/li&gt;
&lt;li&gt;Focus on &lt;strong&gt;Deployment Lead Time.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Conway%27s_law" rel="noopener noreferrer"&gt;Conway’s law.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quote from the book:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"DevOps isn't about automation, just as astronomy isn't about telescopes."&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;A review that caught my eye:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0j47u1q1fb4jamxcyva.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0j47u1q1fb4jamxcyva.png" alt="devops-review" width="800" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get it &lt;a href="https://itrevolution.com/product/the-devops-handbook-second-edition/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Cloud Native Infrastructure
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1k95xt1eulbux4o1geb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1k95xt1eulbux4o1geb.png" alt="cn-cover" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synopsis:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The authors explain key concepts like representing infrastructure through code, APIs, managing application life cycles in a cloud-native way, and ensuring security and compliance, but overall the book stresses that cloud native infrastructure is about adapting principles and processes more than specific technologies, impacting application management as much as hardware. &lt;/p&gt;

&lt;p&gt;It guides readers on when and why to adopt these practices, outlining how they differ from traditional approaches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you will learn:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud native infrastructure &lt;strong&gt;prioritizes building infrastructure with software&lt;/strong&gt; over manual configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resiliency&lt;/strong&gt; is paramount in cloud native infrastructure.&lt;/li&gt;
&lt;li&gt;Cloud native infrastructure &lt;strong&gt;necessitates a shift in mindset&lt;/strong&gt; and company culture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embracing chaos&lt;/strong&gt; and designing for failure are essential.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quote from the book:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The only systems that should never fail are those that keep you alive (e.g., heart implants, and brakes)"&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;A review that caught my eye:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fam7khik68bij17hznpsb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fam7khik68bij17hznpsb.png" alt="Cloud-native-review" width="800" height="186"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get it &lt;a href="https://www.oreilly.com/library/view/cloud-native-infrastructure/9781491984291/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reference books 🔎
&lt;/h2&gt;

&lt;p&gt;Keep these books close by, preferably within arm's reach. In truth, the "Core Concepts" books could also fall into this category and vice versa. As you build your personal home library, you'll definitely want hard copies of these books. This way, you can reference them easily, make annotations, earmark important sections, and fully extract the valuable insights they offer.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Site Reliability Engineering (SRE)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36edy12z1m1md5gj1icr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36edy12z1m1md5gj1icr.png" alt="sre-cover" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synopsis:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Site Reliability Engineering (SRE), a discipline pioneered by Google, offers a distinct approach to managing large-scale software systems by emphasizing the application of software engineering principles to operations. The book explores this approach in detail, providing insights into Google's production environment, SRE principles such as embracing risk and eliminating toil, and practical practices including monitoring, incident response, and capacity planning. &lt;/p&gt;

&lt;p&gt;It emphasizes the importance of automation, simplicity in software design, and a blameless postmortem culture for continuous improvement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you will learn:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;core&lt;/strong&gt; principles and practices of &lt;strong&gt;Site Reliability Engineering&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Gain insights into Google's production environment and the challenges of running &lt;strong&gt;large-scale systems&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;How to apply &lt;strong&gt;SRE principles&lt;/strong&gt; to their own organizations, regardless of size or technical expertise.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quote from the book:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"If a human operator needs to touch your system during normal operations, you have a bug. The definition of normal changes as your systems grow."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;A review that caught my eye:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pedygn90llvtg9sdczl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pedygn90llvtg9sdczl.png" alt="sre-review" width="800" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get it &lt;a href="https://sre.google/books/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. AWS Fundamentals
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiqqe3pyhrpgcsn296qlu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiqqe3pyhrpgcsn296qlu.png" alt="aws-cover" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synopsis:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;"AWS Fundamentals" guides readers through the essentials of Amazon Web Services (AWS), emphasizing practical application over certification preparation. It provides a comprehensive overview of core AWS services like EC2, S3, RDS, DynamoDB, Lambda, and more, categorized by function (compute, database and storage, messaging, etc. &lt;/p&gt;

&lt;p&gt;The authors offer practical examples, use cases, configuration recommendations, and tips for each service. Additionally, the book introduces Infrastructure as Code (IaC), explaining its importance and demonstrating how to use frameworks like CloudFormation, Serverless, and CDK to provision infrastructure. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you will learn:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding the &lt;strong&gt;core building blocks of AWS&lt;/strong&gt; (a lot of core cloud concepts are valid for over cloud providers).&lt;/li&gt;
&lt;li&gt;Learning how to apply AWS knowledge in &lt;strong&gt;real-world scenarios.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Gaining an understanding of &lt;strong&gt;Infrastructure as Code&lt;/strong&gt; (IaC).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quote from the book:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Learning AWS doesn’t need to be hard. It is important to focus on the basics and to understand them well. Once this is done all new services or features can be understood really well.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;A review that caught my eye:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiu2fyrkna92rek37y3zv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiu2fyrkna92rek37y3zv.png" alt="aws-fundamentals-review" width="432" height="234"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get it &lt;a href="https://awsfundamentals.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Page turners 📑
&lt;/h2&gt;

&lt;p&gt;Apart from teaching valuable professional lessons these books have felt as entertaining as other non technical works of fiction or non-fiction. All three left me with a strong “I need you to read this“ feeling. &lt;/p&gt;

&lt;h3&gt;
  
  
  6. The Phoenix project
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcz8ipmf9j77l3ht5wpb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcz8ipmf9j77l3ht5wpb.png" alt="phoenix-cover" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synopsis:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;A novel (yes an actual novel) that follows Bill Palmer, a VP of IT Operations at Parts Unlimited, who is tasked with salvaging the company's failing IT project, code-named "Phoenix." As Bill navigates the challenges of a stressful work environment full of miscommunication, finger-pointing, and a looming audit, he crosses paths with Erik, a board member who introduces him to the principles of DevOps, without calling it that. &lt;/p&gt;

&lt;p&gt;Throughout the story, Bill and his team work to implement these principles, striving to streamline their workflow and improve collaboration between Development and IT Operations. The book is special since the conceptual thrust of the book of spreading DevOps practices is delivered in the refreshing form of a fully fledged narrative novel. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you will learn:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;three ways&lt;/strong&gt; is also touched upon in this book (similar to the DevOps Handbook).&lt;/li&gt;
&lt;li&gt;The importance of &lt;strong&gt;identifying and managing constraints&lt;/strong&gt; to optimize the flow of work.&lt;/li&gt;
&lt;li&gt;The importance of &lt;strong&gt;collaboration&lt;/strong&gt; and &lt;strong&gt;communication&lt;/strong&gt; between Development, IT Operations, and the business as a whole.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quote from the book:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Being able to take needless work out of the system is more important than being able to put more work into the system.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;A review that caught my eye:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fww59cx1cecsa4s2ru3nq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fww59cx1cecsa4s2ru3nq.png" alt="phoenix-review" width="800" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get it &lt;a href="https://itrevolution.com/product/the-phoenix-project/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Accelerate
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmbgt8w1disnuykguanqq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmbgt8w1disnuykguanqq.png" alt="accelerate-cover" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synopsis:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The book presents four years of research exploring the practices that contribute to high-performing technology organizations. The authors sought to identify the capabilities that drive software delivery performance and, in turn, impact organizational performance. Their findings highlight twenty-four key capabilities, categorized as continuous delivery, architecture, product and process, lean management and monitoring, and cultural, that demonstrably improve software delivery and overall business outcomes. &lt;/p&gt;

&lt;p&gt;The book emphasizes that these capabilities are measurable and improvable, offering guidance for organizations to assess their current state and embark on a journey of continuous improvement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you will learn:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Software delivery performance&lt;/strong&gt; is a key predictor of organizational performance&lt;/li&gt;
&lt;li&gt;A set of capabilities, including &lt;strong&gt;technical practices&lt;/strong&gt;, &lt;strong&gt;Lean management&lt;/strong&gt;, and a &lt;strong&gt;generative culture&lt;/strong&gt;, drive improvements in software delivery performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transformational leadership&lt;/strong&gt; is crucial in enabling and amplifying the adoption of these capabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quote from the book:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The most important characteristic of high-performing teams is that they are never satisfied: they always strive to get better."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;A review that caught my eye:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgxskcoibuunvft84mvq5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgxskcoibuunvft84mvq5.png" alt="accelerate-review" width="800" height="131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get it &lt;a href="https://itrevolution.com/product/accelerate/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not cloud specific but still must reads📍
&lt;/h2&gt;

&lt;p&gt;Not specifically cloud related at all but these are book that for different reasons I feel can round out a cloud engineer. &lt;/p&gt;

&lt;h3&gt;
  
  
  8. Wiring the Winning Organization
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7k50mm9pvqllxki6nyt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7k50mm9pvqllxki6nyt.png" alt="wiring-cover" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I'm a huge fan of reading "leadership" or "management" focused books, even though I'm not in either of those positions. Learning what leadership should care about and the key ingredients needed to achieve excellent results serves as a cheat sheet for any individual contributor wanting to stand out by being impactful. Change doesn’t always have to come from the top, you can push it from wherever you find yourself.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Synopsis:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The book presents a new theory of performance management, emphasizing how leaders can create the conditions for their organizations to achieve exceptional results. The book introduces three key mechanisms for building a "winning organization": slowification (making problem-solving easier), simplification (making problems easier to solve), and amplification (making problems more visible). &lt;/p&gt;

&lt;p&gt;Through a combination of theoretical explanations, practical case studies, and real-world examples, the authors demonstrate how these mechanisms can be applied across diverse industries and organizational contexts to achieve superior performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you will learn:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Greatness in any endeavor is achievable through a focus on refining the &lt;strong&gt;"social circuitry"&lt;/strong&gt; of an organization.&lt;/li&gt;
&lt;li&gt;Three key mechanisms &lt;strong&gt;slowification&lt;/strong&gt;, &lt;strong&gt;simplification&lt;/strong&gt;, and &lt;strong&gt;amplification&lt;/strong&gt; can be employed to move an organization from a &lt;strong&gt;"danger zone"&lt;/strong&gt; to a "&lt;strong&gt;winning&lt;/strong&gt; zone".&lt;/li&gt;
&lt;li&gt;Leaders who embrace these mechanisms can create organizations that achieve extraordinary results.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quote from the book:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Slowification enables the shift from reactive, "fast thinking" based on ingrained habits to more effective "slow thinking" that allows for deliberation, reflection, and creativity in problem-solving.“&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;A review that caught my eye:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgy73k0tmgjyk5jehu4oj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgy73k0tmgjyk5jehu4oj.png" alt="wiring-review" width="800" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get it &lt;a href="https://itrevolution.com/product/wiring-the-winning-organization/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Slow productivity
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxj76w8setfiv38hjs354.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxj76w8setfiv38hjs354.png" alt="slow-prod-cover" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synopsis:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Slow Productivity by Cal Newport challenges the modern obsession with visible busyness as a measure of productivity, what he terms pseudo-productivity. Instead, the book champions a slow productivity philosophy based on three core principles: doing fewer things, working at a natural pace, and obsessing over quality. &lt;br&gt;
This philosophy argues that by intentionally limiting workloads, embracing a sustainable work pace, and prioritizing quality over quantity, knowledge workers can achieve greater meaning and produce superior results. &lt;/p&gt;

&lt;p&gt;The book explores the theoretical underpinnings of these principles and offers practical strategies for implementing them in various professional settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you will learn:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To do &lt;strong&gt;less&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Work at the more &lt;strong&gt;natural pace&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;Obsess over &lt;strong&gt;quality&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quote from the book:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"for all of our complaining about the term, knowledge workers have no agreed-upon definition of what “productivity” even means."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;A review that caught my eye:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F84ck5pcb3idjgi7oj6yl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F84ck5pcb3idjgi7oj6yl.png" alt="slow-review" width="800" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get it &lt;a href="https://calnewport.com/slow/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  10. Designing Data-Intensive Applications
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb26uimgoj36uc95x1hd4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb26uimgoj36uc95x1hd4.png" alt="data-intensive-book" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;As cloud engineers, we collaborate closely with the developers in our organization who write the applications we deploy and maintain. While this book doesn’t provide directly actionable knowledge for our day-to-day tasks, it has given me a deeper understanding of the concepts underpinning the creation of our organization’s apps. More importantly, it has provided me with a common language to effectively communicate with the developers on my team.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Synopsis:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Designing Data-Intensive Applications, by Martin Kleppmann, explores the fundamental principles and practical considerations for building reliable, scalable, and maintainable data systems. The book examines various data models, including relational, document, and graph-based models, and their respective query languages, analyzing their suitability for different applications. &lt;/p&gt;

&lt;p&gt;It also examines storage engines, data encoding formats, and schema evolution. A key focus is the exploration of distributed data systems, including replication, partitioning (sharding), and the challenges of maintaining consistency and consensus in such environments. The book uses real-world examples of successful data systems to illustrate key concepts and trade-offs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you will learn:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Various &lt;strong&gt;data models&lt;/strong&gt;, including relational, document, and graph-based models, and their respective query languages, analyzing their suitability for different applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage engines&lt;/strong&gt; and how databases arrange data on disk to find it again efficiently&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt;, &lt;strong&gt;scalability&lt;/strong&gt;, and &lt;strong&gt;maintainability&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quote from the book:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;A review that caught my eye:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkx4z0k4x269gn7qdtaxa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkx4z0k4x269gn7qdtaxa.png" alt="data-review" width="800" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get it &lt;a href="https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;



&lt;p&gt;If you like our content and want to support us on this mission, we'd appreciate it if you could give us a star ⭐️ on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz881yt0e33ikhnsnta79.gif" alt="giff" width="480" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Star us on GitHub 🙏&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>devops</category>
      <category>career</category>
    </item>
    <item>
      <title>Glasskube reaches 1k stars 🌟</title>
      <dc:creator>Jake Page</dc:creator>
      <pubDate>Mon, 10 Jun 2024 09:04:10 +0000</pubDate>
      <link>https://dev.to/distr/glasskube-reaches-1k-stars-o5j</link>
      <guid>https://dev.to/distr/glasskube-reaches-1k-stars-o5j</guid>
      <description>&lt;p&gt;I was trying to thinking of sayings or mantra’s ambitious people repeat to themselves to keep themselves motivated. A few came to mind: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"Fortune favors the bold."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"No guts, no glory."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"You miss 100% of the shots you don't take."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Nothing ventured, nothing gained."&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many of us have heard these sayings or something similar before, what you have less often which I think is &lt;strong&gt;equally important&lt;/strong&gt; maybe doesn’t fit that well into a motivating one liner but might go something like this: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Sure, shoot for the stars but make sure to celebrate every win along the way. Because the journey is equally as important as the eventual goal.&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;While nobody starts a project with the sole aim of getting 1,000 GitHub stars, the entire &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; team is incredibly proud of reaching this milestone so quickly. I wanted to take a moment to reflect on our rapid organic growth and celebrate our achievements.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Glasskube?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; is the next-generation Kubernetes package manager, now available in its beta version. With Glasskube, you can effortlessly install, upgrade, configure, and manage your Kubernetes cluster packages. Check out the available packages here. Glasskube streamlines repetitive and cumbersome maintenance tasks, making cluster management a breeze. The project is evolving rapidly, with new functionalities being shipped with every weekly release.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7j70qlz9agbi24zhtar.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7j70qlz9agbi24zhtar.png" alt="glasskube-dashboard" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So go ahead, dive in, explore, and share your thoughts with us! Your feedback is incredibly valuable as we strive to make Glasskube the best Kubernetes package manager out there. We're also beginning to develop Glasskube Cloud, building on the requests from our current users to enhance the tool further. We're eager to hear which features you'd like to see included in the Glasskube Cloud offering.&lt;/p&gt;

&lt;p&gt;The best way to stay in the loop is to sign up for Glasskube Cloud and be informed when it's ready: &lt;a href="https://glasskube.cloud/" rel="noopener noreferrer"&gt;https://glasskube.cloud/&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The story of our organic growth so far
&lt;/h2&gt;

&lt;p&gt;Having oficially launched the project in February 2024 we are super happy to have hit the 1000k milestone in the first days of June. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8qw0vnkgs16fj9q5xph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8qw0vnkgs16fj9q5xph.png" alt="Glasskube star growth" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s take a look at some of the work be have been doing to make this happen. &lt;/p&gt;

&lt;h3&gt;
  
  
  We’ve been shipping 🚢
&lt;/h3&gt;

&lt;p&gt;In the past few months, our team and a growing legion of open-source contributors have helped us ship eight minor version releases, the latest being v0.8.0. You can find the full changelog &lt;a href="https://github.com/glasskube/glasskube/releases" rel="noopener noreferrer"&gt;here&lt;/a&gt;. Jakob and Christophe, both Glasskube developers, have been hard at work rolling out new features and functionalities. They've also been invaluable in providing feedback and managing the PR review process, ensuring that code is merged swiftly and safely.&lt;/p&gt;

&lt;p&gt;Every contributor, found on the &lt;a href="https://discord.gg/STk5Z3nFmT" rel="noopener noreferrer"&gt;Glasskube Discord server&lt;/a&gt;, has brought something valuable to the community. However, a few deserve a special shoutout: Hanshal, Utkarsh, and Baalakshan. These contributors have been diligently submitting valuable PRs, addressing open issues, and advocating for Glasskube wherever they go.&lt;/p&gt;

&lt;p&gt;We've been organizing weekly community calls every Monday on the Discord server. These calls have been a fantastic opportunity to share news, align expectations, and grow together. Some contributors have even given short talks exploring concepts like Kubernetes CRDs, presented by Hanshal, and Chaos Engineering, shared by Baalakshan.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/c0Y9m7HQv9s"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;
&lt;h3&gt;
  
  
  Meetups
&lt;/h3&gt;

&lt;p&gt;Cofounders Philip and Louis, myself and Community members have been really active attending meetups and conferences around Europe and India. We were at a few KCD’s, AWS Summit Madrid and other CNCF meetups too. It has been a great way to spark conversations and share the work that’s being done. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/8FSaYcJgQXo?start=607"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Partnerships 🫂
&lt;/h3&gt;

&lt;p&gt;We have partnered with third party packages such as &lt;a href="https://keptn.sh/latest/docs/installation/#install-keptn-via-glasskube" rel="noopener noreferrer"&gt;Keptn&lt;/a&gt; and &lt;a href="https://quickwit.io/" rel="noopener noreferrer"&gt;Quickwit&lt;/a&gt; to expedite their integration onto Glasskube.&lt;/p&gt;

&lt;p&gt;You can now find installation steps right in the documentation of the supported packages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fed24wokm42bo6l01xpde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fed24wokm42bo6l01xpde.png" alt="Keptn install" width="800" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Content creation 📚
&lt;/h3&gt;

&lt;p&gt;As we build and continually refine a quality product to support our ever-expanding user base, we aim to be a consistent source of valuable content. This includes in-depth Kubernetes topics like this, more technical product explorations like this, and even broader opinion pieces like our Git guide and our article on the current state of the DevOps scene.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh99pcowhe2oett5o0n08.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh99pcowhe2oett5o0n08.gif" alt="content" width="600" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Check out our latest launch video 🚀
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/HAtWQZ0Ex-I"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Building Glasskube so far has been such a gratifiying experience, on the one hand we are connecting and understanding the issues so many cloud practitioners are having in there efforts to deal with Kubernetes Package management in their daily routines. Better understanding them and delivering on their requests is special. &lt;/p&gt;

&lt;p&gt;On the other hand, collaborating with so many stellar open-source community contributors is a massive perk and added bonus of building an OSS tool in public. Much of our early growth can be directly attributed to these outstanding OSS contributors. We hope to continue this collaboration as we aim for 2, 3, and 10k stars, and more importantly, to make Glasskube a tool installed in Kubernetes clusters far and wide.&lt;/p&gt;




&lt;p&gt;If you get value from the work we do, we'd appreciate it if you could&lt;br&gt;
&lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;⭐️ Star Glasskube on GitHub 🙏&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwm56xwcn9qhzp7xnndu.gif" alt="star-on-github" width="400" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>kubernetes</category>
      <category>cloud</category>
      <category>github</category>
    </item>
    <item>
      <title>Standout as a Junior Engineer: Work slower to grow faster</title>
      <dc:creator>Jake Page</dc:creator>
      <pubDate>Mon, 03 Jun 2024 12:33:53 +0000</pubDate>
      <link>https://dev.to/distr/standout-as-a-junior-engineer-work-slower-to-grow-faster-4ac3</link>
      <guid>https://dev.to/distr/standout-as-a-junior-engineer-work-slower-to-grow-faster-4ac3</guid>
      <description>&lt;p&gt;I recently finished one of the most important books I think I’ll read this year. &lt;a href="https://www.amazon.com/Slow-Productivity-Accomplishment-Without-Burnout/dp/0593544854" rel="noopener noreferrer"&gt;Slow productivity: The Lost Art of Accomplishment Without Burnout&lt;/a&gt; by Cal Newport is a short but value-dense read that unpacks what it is to be productive in the knowledge work economy. The book coalesces around three main directives to unlock quality work without burning out. &lt;br&gt;
By &lt;strong&gt;“doing less“&lt;/strong&gt;, &lt;strong&gt;“working at a more natural pace“&lt;/strong&gt;, and &lt;strong&gt;“obsessing over quality“&lt;/strong&gt; the author argues that our best work is yet to be done. Another key concept explored in the book is what Mr. Newport calls &lt;strong&gt;“pseudo-productivity”&lt;/strong&gt;, the faulty heuristic that has emerged as a way to measure the productivity of knowledge workers and how detrimental it actually is to produce the work that actually matters. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fitleydmvknx6m4erckmb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fitleydmvknx6m4erckmb.jpeg" alt="book-cover" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a computer scientist himself and general topic book author, famous for books like &lt;a href="https://www.amazon.com/Digital-Minimalism-Choosing-Focused-Noisy/dp/0525536515" rel="noopener noreferrer"&gt;Digital Minimalism&lt;/a&gt; and the NYT bestseller &lt;a href="https://www.amazon.com/Deep-Work-Focused-Success-Distracted/dp/1455586692" rel="noopener noreferrer"&gt;Deep Work&lt;/a&gt;, the author speaks to a broad audience, knowledge workers of any industry and seniority. What I would like to do in this blog post is to apply some of the primary ideas from the book and apply them specifically to engineers starting out in their careers. &lt;/p&gt;

&lt;p&gt;As a relative newcomer to the field of Kubernetes and Cloud engineering myself, I have found a lot of success applying many of Cal’s ideas around productivity and it would be a shame for other Junior engineers to miss out on the ideas which I believe can really help propel their careers. Below I will explain some of the most important ideas applicable to Junior developers and also add a comprehensive list of actionable tips at the end.&lt;/p&gt;

&lt;p&gt;⚠️ Disclaimer&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;1- Even though I’m writing this with Junior Engineers in mind, most of the ideas and general tips I’ll provide are applicable to most roles and seniority. &lt;br&gt;
2- I work remotely and understand that some of these ideas might not be as applicable if you are working in an office setting. I will do my best to adapt advice for in-office settings when applicable.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Before I forget, let me thank &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; for allowing me to take the time to create content just like this. If this is the first time you've heard of us, we are working to build the next generation &lt;code&gt;Package Manager for Kubernetes&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;If you'd like to support us on this mission we would appreciate it if you could&lt;br&gt;
&lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;⭐️ Star Glasskube on GitHub 🙏&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4rywgtw2rog0v4g05dwj.webp" alt="thanks for the support" width="268" height="200"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Quality work and Pseudo-productivity
&lt;/h2&gt;

&lt;p&gt;How can you judge what you can’t measure? As an engineer, how do you know if you are doing a good job? How do you know if you are an effective team member or if your work has a real impact on the overall business? If you were a farmer or a factory worker, it would be much easier to measure your productivity. However, in knowledge work, defining &lt;strong&gt;“productivity” is much harder to pin down.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, since everyone is just a DM or Slack message away, a heuristic that has emerged to measure our impact is pseudo-productivity. This encompasses all the work that revolves around the actual work we are here to do. We appear productive when we are answering emails, responding to DMs, spending time in meetings, and checking metrics. We often feel compelled to perform these tasks, especially when we spend a lot of time working on something that doesn’t have an obvious output just yet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffzikzfn9iyzvrow41t39.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffzikzfn9iyzvrow41t39.webp" alt="busy" width="356" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Pseudo-productivity is performative and gets in the way of the “real work”.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What is &lt;strong&gt;“real work“&lt;/strong&gt; anyway? This will change for every engineer of course but a question that might help you in case you are in need of a definition applicable to you. &lt;/p&gt;

&lt;p&gt;Try to think of yourself in the future, what work will you be &lt;strong&gt;most proud of having produced&lt;/strong&gt;? Are you going to remember all of the emails you got back to and all the meetings you attended? Probably not, what is going to matter to you is the quality work you were able to produce in the time your weren’t doing all of the other tasks. &lt;/p&gt;

&lt;p&gt;One of the three ideas in the book is to &lt;strong&gt;“Obsess over quality“&lt;/strong&gt;. If you are a Junior Engineer I would try to internalize this point above all others because it’s the kind of work you can lean on to progress through your career and it’s also the only kind of work you are going to care about when you retire. There are two things that might get in the way of producing quality work. The first is all of the pseudo productivity tasks you have to do and the second is your ability to focus. &lt;/p&gt;

&lt;h2&gt;
  
  
  Distraction is the silent killer
&lt;/h2&gt;

&lt;p&gt;Every individual has their own strengths and weaknesses. Unfortunately, no matter how your unique constellation of qualities and skills makes you stand out, it won't matter unless you &lt;strong&gt;can produce cognitive effort for sustained periods of time.&lt;/strong&gt; Our ability to focus has been greatly diminished by the rise of smartphones and algorithmically enhanced apps and services cleverly engineered to capture our attention.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9g107lv5en2gh1iqosy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9g107lv5en2gh1iqosy.gif" alt="distracted" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;When was the last time you were able to sit down to read a book for more than 15 minutes without picking up your phone? If you don’t mind me asking, when was the last time you went to the bathroom all on you lonesome, no phones in sight?&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The issue of seeking entertainments or relief from boredom from moment to moment is bad for a long list of reasons that many have articulated much better then I could. So I will only focus on one. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;As an up and coming knolwedge worker you will be valuable for your capacity to focus over non trivial streches of time to produce solutions, services, projects etc. &lt;strong&gt;You will need to adapt and learn new skills as times goes by and there is no way to do so unless you protect your capacity to focus.&lt;/strong&gt;&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In many remote and engineering settings, distractions can come from anywhere. On the professional side, you have to consider how many tools and platforms send notifications your way. How long are your meetings? Do you have your camera on and a second screen only you can see? &lt;/p&gt;

&lt;p&gt;On the personal side, it’s important to &lt;strong&gt;know your triggers&lt;/strong&gt;. Does Reddit have a particularly strong pull on you, or maybe it’s YouTube? The danger is that most sources of distraction can be justified as helpful for your work. You might hear justifications like, "Where would I be without YouTube University?" or "How could I keep up to date without being on Reddit or X?"&lt;/p&gt;

&lt;p&gt;One of the most important messages I want to convey is &lt;strong&gt;that you simply cannot produce quality work if you are distracted.&lt;/strong&gt; Avoiding distraction is easier said than done, especially when pseudo-productivity (with all its distracting pings and notification bells) is the way your output is measured.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are knowledge workers paid for?
&lt;/h2&gt;

&lt;p&gt;The second idea of Slow Productivity says to &lt;strong&gt;“Work at a more natural pace“&lt;/strong&gt;. To come to this conclusion, in the book, Mr Newport goes back in time and tries to understand how the Knowledge workers of the past (Writers, Scientists, philosophers) approached productivity. What he found is that we nowadays we consider Marie Curie and Jane Austin among others to be incredibly productive individuals having contributed hugely impactful and valuable bodies of work. But if we look at any particular year in the lives of these important figures we can see that they weren’t particularly busy. &lt;/p&gt;

&lt;p&gt;Marie Curie was known to take long vacations interrupting important experiments that would eventually lead to a Nobel prize because it was how she organized her life with her family. &lt;br&gt;
What I would like for you to consider, applying the idea of productivity to your life is the idea that you career will be long, and there will be ups and downs. Moments of intense work and others of relative inaction. You have to embrace them all the same because productivity in engineering requires that you actually understand what you are doing, the context around it, and the reasons why a specific approach is taken over another. &lt;/p&gt;

&lt;p&gt;Here is an anecdote Cal Newport mentions in his podcast whcih I find fitting. At dissertation conferences for Masters and PhD students, Cal noticed speakers emphasizing "getting your writing hours in" with phrases like "Did you get your writing in today?". When it was his turn, he challenged this by asking, &lt;strong&gt;"Forget about the writing, are you getting your thinking hours in?".&lt;/strong&gt; Often, we confuse busy work with our real job: creating value with our brains &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Thinking and understanding are the &lt;strong&gt;non-negotiable prerequisites&lt;/strong&gt; to adding value and growing in your career, and they take time.&lt;/em&gt;  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Futuui505m5rrr6vedcnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Futuui505m5rrr6vedcnx.png" alt="programmers-thinking" width="702" height="753"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Take the following example,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Imagine you join a team as a newly minted Cloud Engineer and learn how to deploy apps using ArgoCD with a GitOps approach. The team lead shows you that ArgoCD monitors a target Git branch, ensuring the Kubernetes cluster's state matches it. You become an expert at managing this setup, rolling back deployments effortlessly by pointing to a previous branch state. But what happens when you join another team that uses Git tags instead of branches, or Flux instead of ArgoCD, or a completely different approach to Continuous Delivery? &lt;strong&gt;Without understanding the high-level concepts, mechanisms, and reasons behind them, you won't be an effective team member.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Don’t be mistaken and think that you are there to simply maintain systems that have been created by others. You are paid to understand, think, adapt, learn, and improve. If you protect your capacity to focus, your capacity to learn will be intact. Keep on learning and you will always be valuable. Actually enjoy what you are learning? &lt;strong&gt;Then you are unstoppable&lt;/strong&gt;.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Rethink your week
&lt;/h3&gt;

&lt;p&gt;To take full control of your career, understand how you want to grow, and get closer to producing quality work you'll be proud of decades from now, you need to prioritize the projects or "buckets" you dedicate your time to. &lt;/p&gt;

&lt;p&gt;Often, &lt;strong&gt;we unknowingly focus on too many projects at once&lt;/strong&gt;. We might be learning a new coding language while we start a new side project, writing a blog post here and there, all while handling the tasks that pop up on our works kanban board during the week. This approach needs to stop. You have to take a step back, identify the projects you want to prioritize and work on one, or at most, two at a time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmb6fm7gq8ybnx213tmg.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmb6fm7gq8ybnx213tmg.gif" alt="plan-the-week" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Not every job is flexible enough to let you work on what you want when you want to. However, if you have a clear idea of your professional priorities, you can align your tasks with these priorities and request them when they arise. As a junior, and even at higher levels, you'll have to do tasks you might not enjoy. But you can at least try to reduce the time spent on those tasks to focus on the work you want to excel at.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Case:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Suppose you have to balance two types of tasks: &lt;strong&gt;internal developer support&lt;/strong&gt; (which you don't enjoy) and &lt;strong&gt;implementing a new infrastructure provisioning platform using Account Factory for Terraform&lt;/strong&gt; (which excites you). You can plan uninterrupted blocks of time to work on your desired tasks and bundle the support-related tasks into other time blocks. Multitasking and sharing mental bandwidth between both tasks will reduce the quality of each.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A useful strategy that Mr. Newport talks about is having a visual and ordered task board separated by the &lt;strong&gt;“holding tank“&lt;/strong&gt; which is planned work organized in order but that isn’t being worked on yet, the &lt;strong&gt;“Active”&lt;/strong&gt; swim lane, which is what you are actually working on and the &lt;strong&gt;“Done”&lt;/strong&gt; column, you are probably already using one. Apart from using the board to contain the tasks you have, make sure the tasks represent in real-time the order in which you will execute the tasks and the current tasks you are working on. &lt;/p&gt;

&lt;p&gt;Make sure that anybody who asks you for new ad-hoc tasks during the week, make sure to communicate where in the task pool the tasks land and how long it will take to get to it. If an incoming task has to be pushed to the front on the line, make sure that you communicate to any potential stakeholders the delay this might incur to other tasks on the list. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66no4q6xmtfd4w1h6g8l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66no4q6xmtfd4w1h6g8l.png" alt="Trello-board" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Your manager is your ally
&lt;/h2&gt;

&lt;p&gt;You might feel guilty about approaching your manager with “selfish“ task preferences but you shouldn’t. It’s helpful to put yourself in the shoes of a manager, team lead or boss. If you are on their team, almost always the boss wants one thing from you.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;A manager simply wants you reduce the amount of stress they themselves have to carry.&lt;/strong&gt; A manager simply wants to have the confidence to that if you are tasked with something, that you are going to be able to take care of it.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A good manager will greatly appreciate a team member making a concerted effort to work in a systematic, communicative way that values quality over pseudo productivity. If you can communicate effectively to your manager the tasks you have on your plate, and the order in which you are going to deliver them, they can now rest assured that it will be done. It is then up to you to organize your day to make sure you deliver and preserve the confidence your manager has in you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvj9uswwjar3qh7qwc14.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvj9uswwjar3qh7qwc14.webp" alt="boss" width="372" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some ideas to bring up with your manager:&lt;/strong&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Communicate goals and projects during 1:1 meetings.&lt;/li&gt;
&lt;li&gt;Align these goals with your company’s yearly career progression assesments.&lt;/li&gt;
&lt;li&gt;Take a look at the triage task channel before the triage meeting to see which tasks you will volunteer for.&lt;/li&gt;
&lt;li&gt;Request additional resources to assist you in creating quality work.&lt;/li&gt;
&lt;li&gt;Align on communication and time expantancy for replies if working remotely.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Actionable tips
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Use time blocking, not to-do lists
&lt;/h3&gt;

&lt;p&gt;Todo lists haven't ever fully worked for me, depending on how I'm feeling or how long I perceive a task might take, I often end up picking and choosing tasks, which leads to dragging out the ones I'm less excited about doing and pushing tasks endlessly from one day to the next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time blocking, on the other hand, adds the missing structure lacking in to-do lists&lt;/strong&gt;. By planning exactly when you will do deep work, communicate with others, and rest, you’ll be surprised at the amount of quality time you have each day. Time blocking allows you to plan your week or day once, decide on your plan of action, and move through your day in a much more intentional way.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;A good rule of thumb is to &lt;strong&gt;book more time than you think you’ll need to complete a task&lt;/strong&gt;. We tend to underestimate how long tasks will take. If a task runs longer than expected, cross out the upcoming tasks and amend the schedule accordingly.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you have a series of small tasks, bundle them and execute them in a designated time block. If you know you need to collaborate with others on a topic, block the time you will dedicate to communication and try your best to get it all done within that designated time. This way, you can then turn off notifications and reduce distractions when working on projects that require deep focus.&lt;/p&gt;

&lt;p&gt;Mr. Newport is a big proponent of time blocking and even has a &lt;a href="https://www.timeblockplanner.com/" rel="noopener noreferrer"&gt;time block planner you can buy&lt;/a&gt; to track four months' worth of work. Of course, you don’t need it to start time blocking yourself, but having a dedicated journal for this purpose can be handy. The journal also comes with more in-depth guides on how to make the most of this method of organizing work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh33bqu5qvvgnc42u6pa2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh33bqu5qvvgnc42u6pa2.png" alt="time-blocker" width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An added layer I like to incorporate into my time planner is pairing it with an online &lt;a href="https://pomofocus.io/" rel="noopener noreferrer"&gt;Pomodoro timer&lt;/a&gt;. I match each time-blocked segment to a Pomodoro of the same duration. During a Pomodoro session, no distractions are allowed. Only the task designated in the planner can be worked on during that time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reduce meetings
&lt;/h3&gt;

&lt;p&gt;For most of us, we don’t have the freedom to pick and choose when we have meetings. However, we can propose meeting-free days at least once a week. We can advocate for being more mindful of everyone's time if we see that meetings routinely go over the allotted time. Pushing to prepare for meetings is another way to influence the length of the meetings we are involved in.&lt;/p&gt;

&lt;p&gt;Most people are equally underwhelmed by meetings and will appreciate their reduction, as long as the quality of the work and collaboration doesn’t suffer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Status updates, notification blocking, and phone restriction
&lt;/h3&gt;

&lt;p&gt;Most IM platforms like Slack, Discord, and even your desktop and mobile devices, have status modes. &lt;strong&gt;Use these status modes to communicate to others whether you are available for synchronous interaction or if you are in a deep work session.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The added benefit is that these status modes also block or modify notification settings, reducing or even eliminating ping noises and pop-ups altogether. The cost of breaking deep focus time is high, so don’t feel bad for not being 100% available for real-time interactions all the time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwf7ap1x23czmb5hy1m86.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwf7ap1x23czmb5hy1m86.png" alt="discord-screenshot" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are still unsure about applying such strict restrictions, consider the findings is this study published in Nature magazine, which found that the simple presence of mobile devices reduces basal attentional performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Track personal metrics
&lt;/h3&gt;

&lt;p&gt;It’s hard to know if you are living up to your potential or if you are improving in the ways you care about unless you track some personal key metrics. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;These are the metrics I find useful to track are:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exercise (did I exercise that day not).&lt;/li&gt;
&lt;li&gt;Deep hours worked.&lt;/li&gt;
&lt;li&gt;Healthy eating.&lt;/li&gt;
&lt;li&gt;Did I do the shutdown routine or not.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvt4ukbopre2fjf4bhxj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvt4ukbopre2fjf4bhxj.png" alt="personal-metrics" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Have a shutdown ritual
&lt;/h3&gt;

&lt;p&gt;Cognitive capacity is a limited resource. Like our physical body, it needs time to recover and replenish, especially after productive workdays full of deep focus. You might feel tempted, due to notifications or out of habit, to look at your emails, check certain KPIs, or follow up on an open thread or a pesky task you weren’t able to fully complete.&lt;/p&gt;

&lt;p&gt;With a shutdown routine, you can have tasks that allow you to appraise the work done during the day. If there are any open threads or tasks you need to carry over to the next day, the shutdown routine is the time to address them. Some possible shutdown routine tasks might be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check emails.&lt;/li&gt;
&lt;li&gt;Check notifications.&lt;/li&gt;
&lt;li&gt;Update tickets.&lt;/li&gt;
&lt;li&gt;Communicate with teammates.&lt;/li&gt;
&lt;li&gt;Reviewing and noting any incomplete tasks. &lt;/li&gt;
&lt;li&gt;Add tasks or ideas to consider tomorrow.&lt;/li&gt;
&lt;li&gt;Check KPIs, and metrics for the last time.&lt;/li&gt;
&lt;li&gt;Update personal metrics.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Schedule time for undistracted thinking
&lt;/h3&gt;

&lt;p&gt;This has probably been one of the most difficult tips for me to apply personally, as I often justify constant podcast and audiobook consumption under the guise of "being informed" or simply "curious." The fact is, with so much interesting and relevant content out there, we run the risk of constantly consuming information. This practice can be counterproductive to maintaining a high capacity to focus. If you're constantly consuming content, there is less time to actually process what you're taking in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For me, scheduling undistracted thinking time has meant changing these behaviors:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cooking my lunch without listening to anything&lt;/li&gt;
&lt;li&gt;Doing grocery shopping a few times a week without earphones&lt;/li&gt;
&lt;li&gt;No speakers booming while in the shower&lt;/li&gt;
&lt;li&gt;No phones in the bathroom, for that matter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't get me wrong, there is a time and place for consuming quality content. I will never stop listening to podcasts or audiobooks, but I will be much more attentive to allowing my brain uninterrupted time to just think.&lt;/p&gt;

&lt;h3&gt;
  
  
  ChatGPT is really good at explaining things
&lt;/h3&gt;

&lt;p&gt;We all know how incredibly influenced we are by the people around us. Hopefully, you'll have the experience of working with highly talented and experienced senior engineers in your career and learn from them. Consider ChatGPT a senior engineer who is always sitting right next to you, ready to help you understand the issue at hand. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notice that I recommend treating ChatGPT as a senior teammate and not as a personal assistant.&lt;/strong&gt; You wouldn’t ask a senior team member to do the work for you, instead, you would ask for explanations if you lack understanding of certain topics.&lt;/p&gt;

&lt;p&gt;Of course, be aware that the current state of the art in LLMs still tends to hallucinate, so you shouldn't take its output to the bank. However, using LLMs as tools to work through complex concepts and gain a deeper understanding is a cheat code older generations could only dream of.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;If I were a young junior engineer starting my career now, I would probably feel unsettled by the many conflicting signals out there. &lt;strong&gt;Will AI take my job? How can I stand out among so many other talented up-and-comers? How can I keep my skills sharp and relevant?&lt;/strong&gt; If you have these anxiety-filled thoughts, it's okay. It's entirely valid to feel unsure, and believe me, you are not alone in second-guessing your career decisions.&lt;/p&gt;

&lt;p&gt;Nobody knows what the tech field will look like in ten years, five years, or even one year from now. Since we can't control the future, focus on what you can control. Inspired by Cal Newport's principles, the closest antidote to uncertainty is self-investment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You are your biggest asset.&lt;/strong&gt; Your capacity to produce quality work will keep you relevant in the workplace. Quality work requires understanding that cognitive effort is finite. It isn't done in a rush, and distractions sap your ability to focus. Bad cognitive habits can completely throw you off your stride.&lt;/p&gt;

&lt;p&gt;Take a step back, inhale deeply, and envision a long, evolving career. Remember that no single day is especially important. Work at a pace that prioritizes understanding and constructive thinking over simply completing tasks. &lt;strong&gt;The systems you put in place and the priorities you choose to protect will lay the foundation for a career you will look back on with pride.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Help us make more content like this!
&lt;/h2&gt;

&lt;p&gt;At &lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;Glasskube&lt;/a&gt; we're putting a lot of effort into content just like this, as well as building the &lt;code&gt;next generation package manager for Kubernetes&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;If you get value from the work we do, we'd appreciate it if you could&lt;br&gt;
&lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;⭐️ Star Glasskube on GitHub 🙏&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/glasskube/glasskube" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwm56xwcn9qhzp7xnndu.gif" alt="star-on-github" width="400" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>productivity</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
