<?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>Forem: Ahmad Mohey</title>
    <description>The latest articles on Forem by Ahmad Mohey (@ahmadmohey).</description>
    <link>https://forem.com/ahmadmohey</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%2F1484765%2Fc36f7d49-3add-47b9-b82e-8bce51c04204.jpg</url>
      <title>Forem: Ahmad Mohey</title>
      <link>https://forem.com/ahmadmohey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ahmadmohey"/>
    <language>en</language>
    <item>
      <title>Build Distributed Applications in .NET Easily Using .NET Aspire</title>
      <dc:creator>Ahmad Mohey</dc:creator>
      <pubDate>Sat, 25 May 2024 13:10:13 +0000</pubDate>
      <link>https://forem.com/ahmadmohey/build-distributed-applications-in-net-easily-using-net-aspire-1lc5</link>
      <guid>https://forem.com/ahmadmohey/build-distributed-applications-in-net-easily-using-net-aspire-1lc5</guid>
      <description>&lt;p&gt;&lt;strong&gt;.NET Aspire is an opinionated, cloud ready stack for building observable, production ready, distributed applications.&lt;/strong&gt;​&lt;/p&gt;

&lt;p&gt;Cloud-native applications typically comprise small, interconnected components known as microservices instead of a single, monolithic codebase. These applications often utilize a variety of services, including databases, messaging systems, and caching.&lt;/p&gt;

&lt;p&gt;A distributed application leverages computational resources across multiple nodes, such as containers operating on different hosts. These nodes must communicate over network boundaries to respond to users. A cloud-native application is a specific type of distributed app designed to fully exploit the scalability, resilience, and manageability offered by cloud infrastructures.&lt;/p&gt;

&lt;p&gt;.NET Aspire is designed to enhance the experience of building cloud-native .NET applications. It offers a consistent and opinionated set of tools and patterns to aid in the development and deployment of distributed applications. .NET Aspire helps with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Orchestration:&lt;/strong&gt; It provides features for running and connecting multi-project applications and their dependencies in local development environments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Components:&lt;/strong&gt; .NET Aspire includes NuGet packages for commonly used services, such as Redis or Postgres, with standardized interfaces to ensure consistent and seamless integration with your app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tooling:&lt;/strong&gt; It comes with project templates and tooling experiences for Visual Studio and the dotnet CLI, facilitating the creation and interaction with .NET Aspire applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In .NET Aspire, orchestration primarily aims to improve the local development experience by simplifying the management of your cloud-native app's configuration and interconnections. It’s important to note that .NET Aspire’s orchestration is not meant to replace robust production systems like Kubernetes. Instead, it offers a set of abstractions that streamline the setup of service discovery, environment variables, and container configurations, removing the need to handle low-level implementation details. These abstractions provide a consistent setup pattern for applications with numerous components and services, making it easier to manage complex applications during development.&lt;/p&gt;

</description>
      <category>distributedsystems</category>
      <category>aspire</category>
      <category>dotnet</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Beyond Docker: Exploring Buildah and Podman for Container workflows</title>
      <dc:creator>Ahmad Mohey</dc:creator>
      <pubDate>Sat, 25 May 2024 11:41:18 +0000</pubDate>
      <link>https://forem.com/ahmadmohey/beyond-docker-exploring-buildah-and-podman-for-container-workflows-3lnk</link>
      <guid>https://forem.com/ahmadmohey/beyond-docker-exploring-buildah-and-podman-for-container-workflows-3lnk</guid>
      <description>&lt;p&gt;Containers have emerged as a game-changer in application development and deployment. Their lightweight, portable, and self-contained nature has streamlined workflows and fostered a more agile development environment.&lt;br&gt;
his article will introduce you to three key players in the containerization world: Docker, Buildah, and Podman. &lt;/p&gt;

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

&lt;p&gt;Docker is like the godfather of containerization. It's the most popular tool (around 80% of market share), offering a complete toolkit for building, running, sharing, and deploying containerized applications. It's user-friendly, making it a great starting point for beginners.&lt;br&gt;
Due to its extensive features and robust ecosystem, Docker remains the industry standard for managing containerized applications in production environments. It provides additional features like image registries for sharing images, orchestration tools for managing multiple containers, and security features to enhance container security.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6aemr7dg6zu8txi4g56y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6aemr7dg6zu8txi4g56y.png" alt="Image description" width="776" height="191"&gt;&lt;/a&gt;&lt;br&gt;
Buildah, on the other hand, is a lightweight tool built for efficiency. It focuses on crafting top-notch container images, giving you more control over what goes inside. This makes it a favorite for experienced users who want to keep their images lean and mean.&lt;br&gt;
Some experienced users prefer Buildah because it empowers them to create lean and mean images, ensuring they only contain the essential components needed for the application to function. This focus on efficiency makes Buildah ideal for scenarios where image size and resource utilization are critical considerations, such as deploying containers on resource-constrained environments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fia6t05pzw7e6ag99z1ts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fia6t05pzw7e6ag99z1ts.png" alt="Image description" width="434" height="116"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, Podman is a powerful alternative to Docker. It works similarly, letting you run and manage containers, but without needing a background program running all the time. This makes it a good fit for Linux systems and those who prefer open-source options.&lt;br&gt;
If you're looking for a robust container management tool that prioritizes open-source principles and efficiency, Podman might be the perfect fit for you. It integrates seamlessly with other open-source tools commonly used in Linux environments and provides a familiar command-line interface for users comfortable with the Linux ecosystem.&lt;/p&gt;

&lt;p&gt;Here’s a brief comparison of Docker, Buildah, and Podman:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fem3z7hxwisp3md6abzzp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fem3z7hxwisp3md6abzzp.png" alt="Image description" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you have a better understanding of Docker, Buildah, and Podman, the key players in the containerization game. Choosing the right tool depends on your specific needs. If you're a beginner or need a comprehensive solution for all aspects of containerization, Docker might be a great fit. For building efficient images with more control, Buildah shines. And if you're an open-source enthusiast working on Linux, Podman offers a powerful and lightweight alternative for container management.&lt;br&gt;
 No matter which tool you choose, containers can revolutionize your development workflow by making your applications more portable and efficient. So, experiment, explore, and happy containerizing!&lt;/p&gt;

</description>
      <category>docker</category>
      <category>podman</category>
      <category>buildah</category>
      <category>container</category>
    </item>
  </channel>
</rss>
