<?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: Iustin Ghergu</title>
    <description>The latest articles on DEV Community by Iustin Ghergu (@iusting20).</description>
    <link>https://dev.to/iusting20</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%2F231569%2F30fe7425-5124-4241-83df-eea261e2605e.png</url>
      <title>DEV Community: Iustin Ghergu</title>
      <link>https://dev.to/iusting20</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iusting20"/>
    <language>en</language>
    <item>
      <title>What Is Kubernetes and Why Should I Use It?</title>
      <dc:creator>Iustin Ghergu</dc:creator>
      <pubDate>Mon, 05 Feb 2024 16:30:57 +0000</pubDate>
      <link>https://dev.to/iusting20/what-is-kubernetes-and-why-should-i-use-it-54l5</link>
      <guid>https://dev.to/iusting20/what-is-kubernetes-and-why-should-i-use-it-54l5</guid>
      <description>&lt;p&gt;Kubernetes has been the tool of choice for devops in the IT industry, since 2014, without ANY competitor.&lt;br&gt;
But what does it do, exactly?&lt;br&gt;
Well, by the end of this article, you will fully understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When it's useful and how much it can improve your projects' turnaround time.&lt;/li&gt;
&lt;li&gt;How to tackle it and what aspects to consider when implementing it.&lt;/li&gt;
&lt;li&gt;Whether it's too much of an overhead for your project and if you're better off without using it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So let's start with the most important question - Why do we even need Kubernetes?&lt;/p&gt;

&lt;p&gt;So Why Do We Need Kubernetes?&lt;br&gt;
The Purpose of Kubernetes&lt;br&gt;
A modern web application ecosystem (usually for big complex projects) makes use of multiple containers. (We'll get into what a container is later in this article, don't worry!)&lt;br&gt;
The containers need to be herded and managed so they do the right things at the right time.&lt;br&gt;
The name Kubernetes originates from Greek, meaning 'helmsman' or 'pilot'.&lt;br&gt;
And that is exactly what Kubernetes does!&lt;br&gt;
It orchestrates everything that happens with those containers at the right moment.&lt;br&gt;
Think of it this way:&lt;br&gt;
Kubernetes is the conductor of an orchestra. And each instrumental player is a separate container.&lt;br&gt;
When the trumpeteers end their part of the song, it's time for the violins to start theirs. When the violins get to a certain part of the song, the conductor signals the percussionist to switch to a different drum part.&lt;br&gt;
Kubernetes runs the show!&lt;br&gt;
All the containers start and end processes when Kubernetes signals them to do so.&lt;br&gt;
From simple things like changing storage information - to more complex processes like server load balancing.&lt;br&gt;
The 'orchestra' is the collection of containers that work together in a predefined order.&lt;br&gt;
And Kubernetes tells them what that order is.&lt;br&gt;
Let's dive into what a container is exactly…:&lt;br&gt;
What is a container anyway?&lt;br&gt;
A container is a 'place' in which your web app is located (with all its' files and folders). The container is what starts up and keeps your app running in the first place.&lt;br&gt;
Now, you may be asking 'isn't the computer the place where my apps' files are being kept and which keeps my app running?'&lt;br&gt;
Yes, that is correct - on the physical level.&lt;br&gt;
Now let's get deeper down the iceberg.&lt;br&gt;
On top of the physical computer (the hardware) you have the software level.&lt;br&gt;
Firstly, you have your operating system - your macOS or Linux or Windows.&lt;br&gt;
…and here is where things get interesting.&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%2Fs6oxf4lcsft6ygmh0oki.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%2Fs6oxf4lcsft6ygmh0oki.png" alt="Image description" width="800" height="294"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The schema above is the same one found on the official Kubernetes documentation.&lt;br&gt;
Running apps on servers - a.k.a. deploying them - has evolved in the last decades. Nowadays you can run more apps while using less computing power.&lt;br&gt;
This evolution of software deployment has three stages:&lt;br&gt;
Traditional Deployment&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%2F9bgtii0j0u2qs0ammih7.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%2F9bgtii0j0u2qs0ammih7.png" alt="Image description" width="385" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The basic way of running an app on a computer: you have your computer, on which you have an operating system installed (macOS, etc.).&lt;/p&gt;

&lt;p&gt;From there you just have to start an app just like you start Excel, Word, a video game, etc.&lt;br&gt;
And you have your app running!&lt;br&gt;
Multiple apps at the same time, even - or the same app running multiple times.&lt;br&gt;
It's quite straightforward.&lt;br&gt;
Virtualised Deployment&lt;br&gt;
So, why did this new way of deploying apps come to be?&lt;br&gt;
There are a couple of reasons:&lt;br&gt;
The need of running multiple instances of the app at the same time&lt;/p&gt;

&lt;p&gt;The same deployment process for each remote developer (to reduce unexpected errors)&lt;/p&gt;

&lt;p&gt;Multiple instances of databases or other complementary apps we need in our project&lt;/p&gt;

&lt;p&gt;And this is where virtual machines come into play.&lt;br&gt;
The problem is that they carry a huge overhead - an operating system for each deployment.&lt;br&gt;
If only we could strip the extra operating system layers from our diagram…&lt;br&gt;
And this is where we finally introduce containers.&lt;br&gt;
Container Deployment&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%2Fvt0euhnb8vhxsfgk9mvw.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%2Fvt0euhnb8vhxsfgk9mvw.png" alt="Image description" width="532" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this configuration, you've got rid of the Hypervisor (the app that runs operating systems) and replaced it with a Container Runtime (docker, containerd, etc.)&lt;br&gt;
The container runtime creates containers, which are isolated environments for your apps, code, and anything else your app needs (databases, etc.)&lt;br&gt;
The containers make use of your base operating system and of your computer's RAM and disk memory on a need-to-use basis - so it reduces wasted resources, unlike virtual machines.&lt;br&gt;
Now, by using isolated environments, we have a predictable and repeatable deployment process that doesn't make heavy use of hardware resources.&lt;br&gt;
Containers are powerful and lightweight. They can even be created in the cloud and provide a two-way screen via your web browser.&lt;br&gt;
Want to test operating systems at a whim?&lt;br&gt;
Visit &lt;a href="http://www.distrosea.com"&gt;www.distrosea.com&lt;/a&gt;.&lt;br&gt;
From there, it's as easy as choosing the operating system you want on your container and clicking start.&lt;/p&gt;

&lt;p&gt;How It Works&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%2F5k5q3crip078cq5u7x0q.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%2F5k5q3crip078cq5u7x0q.png" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kubernetes is actually composed of multiple parts. These parts are called nodes. A node may be either a virtual or a physical machine. And together they form a cluster.&lt;br&gt;
The Kubernetes cluster is formed of:&lt;br&gt;
A master node&lt;/p&gt;

&lt;p&gt;Multiple worker nodes&lt;/p&gt;

&lt;p&gt;The master node is a server which manages the worker nodes.&lt;br&gt;
You, as a developer, can connect to it via an user interface, a web api or a command line interface and configure the kubernetes cluster via the master node.&lt;br&gt;
The worker nodes are the ones that hold the containers of your apps.&lt;br&gt;
Now that you know what containers are, and how they are managed by Kubernetes, let's explore an example of a real world use case.&lt;br&gt;
Real-Life Example&lt;br&gt;
Imagine you are building an app that recognises different species of flowers.&lt;br&gt;
You built a prototype on your own computer. But now, it's time to make it available to the public.&lt;br&gt;
Using Kubernetes will give you all the control you need to keep your app performing well which in turn will keep your clients satisfied.&lt;br&gt;
If too many users access the app, therefore the traffic will slow down the container.&lt;br&gt;
In this case, Kubernetes will detect this and automatically create a new container and distribute the traffic to the new one as well.&lt;br&gt;
Problem avoided!&lt;br&gt;
You may want to use multiple storage systems, such as AWS, local storage, etc. Kubernetes enables you to change that on the fly, depending on your apps' design.&lt;br&gt;
Maybe, you update your database of flower species continuously, or you provide an app update each week.&lt;br&gt;
Kubernetes will schedule the creation of new containers (for the updated app), redirect traffic to them and shut down the outdated containers.&lt;br&gt;
If you know how much CPU and memory (RAM) each container needs, you can easily specify that within Kubernetes and it will take care of it for all subsequent containers.&lt;br&gt;
If a container fails, because of traffic overload for example or an error, Kubernetes will replace them with new containers - this way you prevent unexpected downtime.&lt;br&gt;
Passwords, SSH keys and other sensitive data can be stored within Kubernetes so that it isn't exposed in the container itself, keeping it safe from hackers.&lt;br&gt;
By using the features of Kubernetes, your flower species detector app will run smoothly and serve users as efficiently as you configure it!&lt;br&gt;
The Pitfalls of Using Kubernetes&lt;br&gt;
It Has A Steep Learning Curve&lt;br&gt;
You need to spend time building a good understanding of how it works and how to configure it properly. This takes time and if you have just started building your app you could make better use of spending that time on building the app itself.&lt;br&gt;
Requires Planning Ahead Of Time&lt;br&gt;
An app that runs on a containerised architecture needs to be structured in a specific way. This entails extra time on planning out the app and it's devops components (we'll see a simplified example later in this article)&lt;br&gt;
For a small project this time could be better used on building the app itself.&lt;br&gt;
You Might Not Use Most Of Its Features&lt;br&gt;
A lot of features will end up unused, including security measures, computer resources, cloud storage, etc.&lt;br&gt;
And spending time and money on training, app restructuring, updates and maintenance would not be a priority in many cases. Most projects that do not require the advanced features of scaling on multiple containers would work as well on a traditional deployment approach - the one we presented earlier in the article.&lt;br&gt;
Do You Really Need It?&lt;br&gt;
Is Kubernetes a mandatory tool to use nowadays for web developers?&lt;br&gt;
It depends on the size of the project.&lt;br&gt;
If you are working with a complex piece of software that spans across a large environment and requires container automatisation, then Kubernetes will probably be very helpful.&lt;br&gt;
This is what a streamlined pipeline of building apps using containers would typically look like:&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%2Ftcw6laxkzh7seg3m3nz0.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%2Ftcw6laxkzh7seg3m3nz0.png" alt="Image description" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's important to note that this workflow is optimised for big projects involving multiple developers.&lt;br&gt;
If you are focused more on building the app itself and especially if you are creating prototypes, you should probably not spend too much time on designing such a complex workflow and web architecture.&lt;br&gt;
You might be better off using the bare minimum and focus on building the app itself.&lt;br&gt;
What Now?&lt;br&gt;
If you got to the end of this article, well done!&lt;br&gt;
We had to dive into some technical aspects in the complex realm of web architecture in order to understand the role of Kubernetes. It wasn't an easy feat, but now you know what Kubernetes does.&lt;br&gt;
Now that you know where and why it is used, you should be able to know if you really need it or not.&lt;br&gt;
If you're not sure, you probably don't.&lt;br&gt;
So try not to spend too much time on things that will not impact the end result too much.&lt;br&gt;
Good luck on building your web app!&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>containers</category>
      <category>docker</category>
      <category>devops</category>
    </item>
    <item>
      <title>What Is A DAO?</title>
      <dc:creator>Iustin Ghergu</dc:creator>
      <pubDate>Sun, 02 Jan 2022 17:58:47 +0000</pubDate>
      <link>https://dev.to/iusting20/what-is-a-dao-2mhd</link>
      <guid>https://dev.to/iusting20/what-is-a-dao-2mhd</guid>
      <description>&lt;p&gt;It is a corporation that is run entirely by a set of rules upon which operations are delegated among a variety of computers and network nodes. DAOs can even be run by a Machine Learning agent, that constantly evolves and improves its algorithms and therefore its decisions. The DAO (Decentralised Autonomous Organisation) aims at providing a decentralized business model for organizing both commercial and non-profit enterprises.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“it takes the concept of traditional organizations and decentralizes it”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The idea of a decentralized organization takes the concept of traditional organizations and decentralizes it. So, instead of a hierarchical structure managed by a collective of humans interacting in person and controlling property via the legal system, a decentralized organization involves a set of people interacting with each other according to a protocol specified in code and enforced on the blockchain network.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“a paradigm shift in the very idea of economic organization. ”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In May 2016, TechCrunch described The DAO as “a paradigm shift in the very idea of economic organization. … It offers complete transparency, total shareholder control, unprecedented flexibility, and autonomous governance.”&lt;/p&gt;

&lt;h2&gt;
  
  
  The New Era Of Business
&lt;/h2&gt;

&lt;p&gt;Governance is the way rules, norms and actions of how people interact with each other are structured, sustained, regulated and held accountable. It regulates the process of decision-making among the actors involved in a collective problem that leads to the creation, reinforcement, or reproduction of social norms and institutions.&lt;/p&gt;

&lt;p&gt;The degree of formality depends on the internal rules of a given organization and, externally, with its business partners. As such, governance may take many forms, driven by many different motivations and with many different results.&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%2F647b4rpfoufbs2xalat6.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%2F647b4rpfoufbs2xalat6.png" alt="Image description" width="800" height="978"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Effects On Society
&lt;/h2&gt;

&lt;p&gt;They are pretty much here, at the intersection of Crypto, AI, and the Internet of Things. These Decentralized Autonomous Organizations (DAOs) should have a brain of software, the ability to select actions according to preference functions, and some way to instantiate in the world.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“a digital entity may have a strand by which to reach into our world”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The physical world is becoming more digital. Machine vision translates our reality into data that neural networks can recognize, classify and use in order to direct actions.&lt;/p&gt;

&lt;p&gt;Similarly, augmented reality layers are being drawn on top of the built environment by the large tech companies. With such mappings, a digital entity may have a strand by which to reach into our world and practice interacting with objects.&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%2F8jio4722yvnonaaheh8u.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%2F8jio4722yvnonaaheh8u.png" alt="Image description" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Machines And Their Human Role Models
&lt;/h2&gt;

&lt;p&gt;On a fundamental level, with all of this technology it is important to keep humanity at the center of the conversation about work. Being augmented by machines doesn’t mean removing humans from the equation. There is an opportunity to distribute value and ownership, based on worker contributions.&lt;/p&gt;

&lt;p&gt;This type of decentralized organization can not only create a distributed network of contributors, but also long-term shared value, whereby individuals are part of the value equation as the future of work shifts and changes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“they present an opportunity to harness unprecedented levels of creativity”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As DAOs and blockchain technology gain more traction and use cases within larger organizations, they present an opportunity to harness unprecedented levels of creativity, innovation, and collective intelligence in solving some of the world’s biggest problems. Instead of technology being a threat to the future of work, it may open up a brave new decentralized world.&lt;/p&gt;

&lt;p&gt;Most scary scenarios for the future of work assume a traditional, hierarchical organizational structure. There is a CEO and a leadership team on the top, then middle management, then a busy workforce doing various tasks. AI and robots slowly automate jobs, replacing people in their individual roles.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Future
&lt;/h2&gt;

&lt;p&gt;There is a lot of talk about the threat of automation. AI and robots are coming to take our jobs. Corporations and the government are taking control of our lives. This creates a scarcity mindset of “us versus them,” leading us to ask, How am I going to protect myself? Will I be one of the few people left when machines take over?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“unleash new levels of creativity and ingenuity”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Rather than adopting a fearful mindset toward the unavoidable shift in society, people could start looking at advantages of these technological tools:&lt;/p&gt;

&lt;p&gt;What if instead of technology replacing humans, it augmented our abilities to unleash new levels of creativity and ingenuity?&lt;br&gt;
• What if we could collectively make decisions and govern organizations without leaders?&lt;/p&gt;

&lt;p&gt;• What if we could solve problems and increase productivity at scales never imagined?&lt;/p&gt;

&lt;p&gt;This is the potential power and promise of DAOs — decentralized autonomous organizations.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>career</category>
      <category>machinelearning</category>
      <category>decentralisation</category>
    </item>
  </channel>
</rss>
