<?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: Sudhir Jangir</title>
    <description>The latest articles on DEV Community by Sudhir Jangir (@sudhirzb).</description>
    <link>https://dev.to/sudhirzb</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%2Fuser%2Fprofile_image%2F366539%2F7762f88b-22e8-4850-ab75-9bd8327fd1de.png</url>
      <title>DEV Community: Sudhir Jangir</title>
      <link>https://dev.to/sudhirzb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sudhirzb"/>
    <language>en</language>
    <item>
      <title>A multi-node and production like local kubernetes development environment</title>
      <dc:creator>Sudhir Jangir</dc:creator>
      <pubDate>Fri, 30 Apr 2021 09:06:28 +0000</pubDate>
      <link>https://dev.to/roost/a-multi-node-and-production-like-local-kubernetes-development-environment-4l93</link>
      <guid>https://dev.to/roost/a-multi-node-and-production-like-local-kubernetes-development-environment-4l93</guid>
      <description>&lt;p&gt;For Developers to run and test their containerized applications on a local system, a few options are available like Docker Desktop, Minikube, Kind or K3s, and many more. There is one more to the list — Roost, which is a complete end-to-end development platform with easy integration to various tools like Jenkins, Argo, Falco, Linkerd, or Istio.&lt;/p&gt;

&lt;p&gt;In this article, we will compare Docker Desktop with Roost. Both of them use native virtualization technology available by default.&lt;/p&gt;

&lt;p&gt;While both of them are one-click installs, Roost comes with a lot of enterprise-level configuration options. Docker desktop is a single node cluster, Roost gives your development team a multi-node Kubernetes environment on their local systems (Mac, Windows, and Ubuntu). Roost users get a rich UI to configure the cluster as per their needs.&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--flaLcA6H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7zoq0jcxc4kk0xxmxyvq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--flaLcA6H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7zoq0jcxc4kk0xxmxyvq.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
Docker Desktop is controlled and managed by individual developers. While working in a team, you need consistency in your development environment. Roost also has a SaaS Control Plane component with unique Left-Shifted Enterprise Policies, allowing you to create teams and define cluster policies/configuration, enabling your team’s consistent and production-like development experience. At the same, Roost allows you to have these development clusters on-prem or the cloud.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BFCvAe-1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xkleah80pb9pb1hz5r25.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BFCvAe-1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xkleah80pb9pb1hz5r25.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
Even with multiple nodes, Roost is much more lightweight and easy to configure. Making a configuration or a policy change on the development machine with the Roost control plane can easily be controlled by team admins. Policies can also be changed dynamically and can be different for various teams. A developer may also be part of multiple teams; switching teams is just a click away, and your cluster configuration will change accordingly. With Docker Desktop, you get an isolated environment, which is way different than production.&lt;/p&gt;

&lt;p&gt;Roost has a Team Dashboard built-in, which allows you to audit logs for compliance needs. They may be related to Docker file inspection or scanning or any other cluster event. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1dzYfbjR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3e8yhbgue99g1vho39qs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1dzYfbjR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3e8yhbgue99g1vho39qs.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
On Roost, teams can also create a shared Team cluster, and users, if a need is there, would be able to acquire an exclusive lock on the cluster. &lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>dockerdesktop</category>
      <category>roost</category>
    </item>
    <item>
      <title>Roost: Desktop/cloud-based cloud-native application collaboration &amp; health platform</title>
      <dc:creator>Sudhir Jangir</dc:creator>
      <pubDate>Thu, 19 Nov 2020 09:40:56 +0000</pubDate>
      <link>https://dev.to/sudhirzb/roost-desktop-cloud-based-cloud-native-application-collaboration-health-platform-1kmk</link>
      <guid>https://dev.to/sudhirzb/roost-desktop-cloud-based-cloud-native-application-collaboration-health-platform-1kmk</guid>
      <description>&lt;p&gt;Roost is a desktop/cloud-based cloud-native application collaboration &amp;amp; health platform. Developers struggle to learn or migrate to Kubernetes; this will help them get-going the moment they have it installed. &lt;/p&gt;

&lt;p&gt;They can just signup on &lt;a href="https://roost.io"&gt;https://roost.io&lt;/a&gt; and download the product.&lt;/p&gt;

&lt;p&gt;Developer to developer collaboration: Simplify your multi-developer workflow around coding and testing using Roost collaboration.&lt;br&gt;
A multi-node Kubernetes cluster: to make developers' life more comfortable, and bring them close to the production environment.&lt;br&gt;
Development environment: A complete Kubernetes ecosystem/tooling on one-click options.&lt;br&gt;
Service health and analytics: Monitor the health of your services.&lt;br&gt;
Service change management automation: Manage your micro-service changes/versions in a better way.&lt;br&gt;
Team/Enterprise Dashboard: Get your team productivity insights (number of collaborations, number of image scans, dependent service development efficiency)&lt;/p&gt;

&lt;p&gt;learn more at &lt;a href="https://roost.io"&gt;https://roost.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>roost</category>
      <category>kubernetes</category>
      <category>cloudnative</category>
    </item>
    <item>
      <title>Develop, build, and run in a production like cluster</title>
      <dc:creator>Sudhir Jangir</dc:creator>
      <pubDate>Wed, 19 Aug 2020 11:37:47 +0000</pubDate>
      <link>https://dev.to/sudhirzb/develop-build-and-run-in-a-production-like-cluster-1j8k</link>
      <guid>https://dev.to/sudhirzb/develop-build-and-run-in-a-production-like-cluster-1j8k</guid>
      <description>&lt;p&gt;Because of environment and tools gap: When a service is moved to a staging or production environment, the service may behave in a different way. We might have to spend multiple dev cycles before we get to a stable version.&lt;/p&gt;

&lt;p&gt;These differences can be close to zero if we can have a multi node cluster on the desktop. Or, we would have to run the code in dev or staging cluster with a different namespace. &lt;/p&gt;

&lt;p&gt;There are options like Minikube or Docker Desktop; they create a single node cluster on your desktop. But actual need is to have multi node production like environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Roost
&lt;/h2&gt;

&lt;p&gt;It creates a multi-node Kubernetes cluster on your desktop based on your system resources. It also provides a single click option to change cluster sizing, memory, CPU cap etc. as per your system or application requirements.&lt;/p&gt;

&lt;p&gt;Check my video for details:&lt;br&gt;
&lt;a href="https://youtu.be/SGF4NGX0Jmw"&gt;https://youtu.be/SGF4NGX0Jmw&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>minikube</category>
      <category>dockerdesktop</category>
      <category>roost</category>
    </item>
    <item>
      <title>Roost Desktop: No more mock services or versioning pain</title>
      <dc:creator>Sudhir Jangir</dc:creator>
      <pubDate>Wed, 19 Aug 2020 11:29:22 +0000</pubDate>
      <link>https://dev.to/sudhirzb/roost-desktop-no-more-mock-services-or-versioning-pain-22pn</link>
      <guid>https://dev.to/sudhirzb/roost-desktop-no-more-mock-services-or-versioning-pain-22pn</guid>
      <description>&lt;p&gt;How Roost is helping cloud native service development without the need for Mock services, and how to achieve production like accuracy from the first line of the code.&lt;br&gt;
 &lt;br&gt;
Typically an application has multiple discrete services. These services may be dependent on some internal or external services, because of that there will be some challenges, some of those challenges are:&lt;/p&gt;

&lt;h2&gt;
  
  
  my service keeps on changing with time
&lt;/h2&gt;

&lt;p&gt;over the time, the format in which data is shared might just keep on changing from service to service. I would need to be in sync with those changes. The change might break the services, which are dependent on it.&lt;/p&gt;

&lt;p&gt;Creating a different service versions for this change may be a solution; it's very difficult to maintain these versions.  Or create one more endpoint for that particular change.&lt;br&gt;
 &lt;/p&gt;

&lt;h2&gt;
  
  
  Performance/Integration Testing of my change
&lt;/h2&gt;

&lt;p&gt;If make a change in my service, and then if I need to do performance testing of my change, which depends on some other service. To do it without hitting a real service in production, I may have to create a mock service. &lt;/p&gt;

&lt;h2&gt;
  
  
  Latency
&lt;/h2&gt;

&lt;p&gt;As microservices are developed in isolation, this means I might have to wait for the dependent service to be ready before starting my work.  &lt;/p&gt;

&lt;p&gt;So versioning is challenging to maintain and endpoints add lot of work. Mocking creates a fake version of a service, besides that keeping my mock in sync is not an easy task.&lt;br&gt;
 &lt;/p&gt;

&lt;h1&gt;
  
  
  So how Roost is solving these problems:
&lt;/h1&gt;

&lt;p&gt;Roost provides a peer to peer collaboration feature, where services can be shared in a secure, and a realtime way with other Roosters or Roost instances&lt;/p&gt;

&lt;p&gt;With this, we can do realtime integration, end to end testing; will eliminate the need of Mocking, versioning, or separate end-points.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/RGuky8rVGX0"&gt;https://youtu.be/RGuky8rVGX0&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>roost</category>
    </item>
    <item>
      <title>Kubernetes in Restrictive or regulated environments</title>
      <dc:creator>Sudhir Jangir</dc:creator>
      <pubDate>Sat, 06 Jun 2020 11:47:30 +0000</pubDate>
      <link>https://dev.to/sudhirzb/kubernetes-in-restrictive-or-regulated-environments-3fh3</link>
      <guid>https://dev.to/sudhirzb/kubernetes-in-restrictive-or-regulated-environments-3fh3</guid>
      <description>&lt;p&gt;There could be situations where Internet access is regulated or even not there. These "air-gap" or regulated/isolated deployments become more involved with cloud-based environments, where full control is not available. Existing k8s/Cloud providers don't give you access to the cluster or configuration, or may not have an equivalent distribution for your local network or environment. &lt;/p&gt;

&lt;p&gt;Now public cloud offering is being centred around containers/Kubernetes/open source, having these in Hybrid or local system has become a need. Localstack or outposts still ties you with the cloud providers, while container movement is also about flexibility. The whole exercise becomes too complicated where the effort to put this in place becomes more than a few weeks of effort. &lt;/p&gt;

&lt;p&gt;How do you install/run packages in these Restrictive or regulated environments? &lt;/p&gt;

&lt;p&gt;Running Kubernetes cluster in "Air-gap" kind of environments means having local repositories for container images, bundled packages, or approved/regulated binaries. Even for additional tools like image scanning or ci/cd, should be available locally. The application package may include everything needed to run the application – binaries, dependencies, or built-in container registry. &lt;/p&gt;

&lt;p&gt;With work from home situations (COVID or even after that), "air-gap" kind of need would arise even for desktop users, where they may have limited connectivity or restricted by office network/installation policies. Users should be able to get a production-like environment with a local registry, control over cluster resizing, version switch capability, or configuration control. &lt;/p&gt;

&lt;p&gt;Such packages should not interfere with your existing installations and should be light on your machine. &lt;/p&gt;

&lt;p&gt;As a developer working from home, I need to bring my cluster closer to me and should be able to control my cluster behaviour even if I am in Air-gap environment. Developer Focus should be on service development rather than getting worried about how to install or how to run or configure in these situations. &lt;/p&gt;

</description>
      <category>airgap</category>
      <category>kubernetes</category>
      <category>roost</category>
    </item>
    <item>
      <title>Scala or Go</title>
      <dc:creator>Sudhir Jangir</dc:creator>
      <pubDate>Tue, 14 Apr 2020 13:48:06 +0000</pubDate>
      <link>https://dev.to/sudhirzb/scala-or-go-1647</link>
      <guid>https://dev.to/sudhirzb/scala-or-go-1647</guid>
      <description>&lt;p&gt;Compared to scala: easier to learn, understand code and write; faster to build; smaller image; performance closer to c++, great for microservices; easier with docker/containers/k8s; newer tools/frameworks are on it; go, grpc, protobuf is the way.&lt;/p&gt;

</description>
      <category>zbio</category>
    </item>
  </channel>
</rss>
