<?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: Kavishka Rajakaruna</title>
    <description>The latest articles on DEV Community by Kavishka Rajakaruna (@kavishkarajaka1).</description>
    <link>https://dev.to/kavishkarajaka1</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%2F405784%2F8a357b3f-5ab5-4863-85bd-ef9133e4bf36.jpeg</url>
      <title>DEV Community: Kavishka Rajakaruna</title>
      <link>https://dev.to/kavishkarajaka1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kavishkarajaka1"/>
    <language>en</language>
    <item>
      <title>I built my first fingerprint attendance monitoring - Episode 1</title>
      <dc:creator>Kavishka Rajakaruna</dc:creator>
      <pubDate>Mon, 25 Mar 2024 20:19:54 +0000</pubDate>
      <link>https://dev.to/kavishkarajaka1/i-built-my-first-fingerprint-attendance-monitoring-episode-1-30fc</link>
      <guid>https://dev.to/kavishkarajaka1/i-built-my-first-fingerprint-attendance-monitoring-episode-1-30fc</guid>
      <description>&lt;p&gt;The new hype of the technology involving to boost the productivity every company decided to install fingerprint machines. The providers has given us a program that only runs only on the windows and the best part was it has a MS Access database. da!&lt;br&gt;
But I ended up finding a python library that supports for the types of fingerprint machines we are having. So I pulled a architecture. I had several things in my mind. I'm listing them to make you clear out the doughts. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple arhitecutre&lt;/li&gt;
&lt;li&gt;Space to upgrade the and new adition without breaking the current oprations.&lt;/li&gt;
&lt;li&gt;Needed to try out some new concepts. &lt;/li&gt;
&lt;li&gt;Lowest time to get the 1st result. &lt;/li&gt;
&lt;/ul&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%2Fh7buw2f4dvbg1lqc5fk4.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%2Fh7buw2f4dvbg1lqc5fk4.png" alt="Image description" width="800" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As per the basics of the presentations techniques we should leave a 'hook'. So in next episodes I will explain why I choose this. What are my plans for future to expand this. &lt;br&gt;
So stay tuned for the next episode. &lt;/p&gt;

</description>
      <category>docker</category>
      <category>architecutre</category>
      <category>python</category>
    </item>
    <item>
      <title>ServiceNow KB #1</title>
      <dc:creator>Kavishka Rajakaruna</dc:creator>
      <pubDate>Mon, 19 Feb 2024 15:23:58 +0000</pubDate>
      <link>https://dev.to/kavishkarajaka1/servicenow-kb-1-3c7j</link>
      <guid>https://dev.to/kavishkarajaka1/servicenow-kb-1-3c7j</guid>
      <description>&lt;p&gt;Greetings, my fellow code warriors. I have been a DevOps engineer for little over 2 years. &lt;br&gt;
Oneday my manager came to and said there is a POC (Proof of Concept) requirement for one of our customers. We need to develop some features in his ServiceNow environment. I was wondering what the heck is ServiceNow? &lt;br&gt;
I did my homework and get to know little bit about the platform. It is a SaaS based ticketing platform (correct me if I'm wrong) and we can create tables, forms, customer facing portal workflows and many more. &lt;br&gt;
I accepted the challenge and delivered the POC tasks. After delivering I realized Snow (servicenow) is a really great platform. So I thought it would be great to share my knowledge and experince with my fellow code warriors.&lt;br&gt;&lt;br&gt;
I value your feedback for future articles of Snow KB. Cheers!&lt;/p&gt;

</description>
      <category>servicenow</category>
      <category>programming</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Docker in small scale production (Docker Swarm)</title>
      <dc:creator>Kavishka Rajakaruna</dc:creator>
      <pubDate>Wed, 15 Jun 2022 04:23:34 +0000</pubDate>
      <link>https://dev.to/kavishkarajaka1/docker-in-small-scale-production-docker-swarm-4jep</link>
      <guid>https://dev.to/kavishkarajaka1/docker-in-small-scale-production-docker-swarm-4jep</guid>
      <description>&lt;p&gt;If you are a micro services builder you have definitely come across the situation where to and how to deploy your docker containers for production without spending too much money and effort. In order to deploy the container in to production environment the platform should have few specifications. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Self Healing : The containers should be restarted if there is a execution failure. Also if a container failed to start it must be removed from the stack and replace it with the fresh container instance. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Horizontal Scaling and load balancing: If a service container is running it's maximum capacity another cloned instance should be spawned to relieve the increasing capacity. When the load becomes lower the extra spawned container should be deleted. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Docker swarm can be introduced as a small scale deployment method for the small scale production environments. But the docker officials recommend this swarm method not to use for the production environments. But as per my personal opinion swarm mode can be used for the startups whom cannot afford for the larger environments. &lt;br&gt;
&lt;code&gt;NOTE: Kubernetes is most sophisticated container orchestration platform for the production environments.&lt;/code&gt; &lt;br&gt;
Features of Swarm&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scaling: We can scale up or down the number of containers running for the given service.&lt;/li&gt;
&lt;li&gt;Multi-Host Networking: This swarm mode can be run on the multiple hosts. The hosts need to have a physical network connection. But for the internal inter service communication the Pods need to have a internal network.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8xV5JtBu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ap0adm1spnws0s8ih90s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8xV5JtBu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ap0adm1spnws0s8ih90s.png" alt="Docker Swarm diagram" width="800" height="375"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Enable Docker Swarm in a hosted environment.
&lt;/h2&gt;

&lt;p&gt;For this tutorial I will be using the Ubuntu 20.04 LTS version.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Install Docker &lt;br&gt;
&lt;code&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt install docker.io&lt;/code&gt;&lt;br&gt;
This installs the docker engine in the ubuntu system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run docker as sudo less&lt;br&gt;
&lt;code&gt;sudo groupadd docker&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo usermod -aG docker $USER&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change hostname to FQDNS&lt;br&gt;
&lt;code&gt;sudo nano /etc/hostname&lt;/code&gt;&lt;br&gt;
It is the best practice to change the hostname to the FQDNS (&lt;code&gt;manger.omigoz.net&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enable docker swarm&lt;br&gt;
&lt;code&gt;docker swarm init&lt;/code&gt;&lt;br&gt;
This will create a swarm named default with the IP address range of 10.0.0.0/8 (by default IP address range.) If you want to edit the default IP range you can use the below command. &lt;br&gt;
&lt;code&gt;docker swarm init --default-addr-pool 10.20.0.0/16&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In docker swarm we can attach additional workers to the cluster. So there is a way to generate the join command. &lt;br&gt;
&lt;code&gt;docker swarm join-token worker&lt;/code&gt;&lt;br&gt;
Also if you want to join a manager node to the cluster you need to generate the separate manger node attaching command. &lt;br&gt;
&lt;code&gt;docker swarm join-token manager&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Ciao Omigoz&lt;/em&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>swarm</category>
    </item>
    <item>
      <title>Kubernetes underlying infra monitor</title>
      <dc:creator>Kavishka Rajakaruna</dc:creator>
      <pubDate>Mon, 28 Jun 2021 17:32:53 +0000</pubDate>
      <link>https://dev.to/kavishkarajaka1/kubernetes-underlying-infra-monitor-322f</link>
      <guid>https://dev.to/kavishkarajaka1/kubernetes-underlying-infra-monitor-322f</guid>
      <description>&lt;p&gt;Recently I followed a tutorial on Kubernetes. That time I realized the Kubernetes also runs on the physical infra.&lt;br&gt;
When I was doing some homework, I found that there are much tools to monitor the states of the containers in the Kube. Cluster. When a container becomes unhealthy it can be easily monitored. &lt;br&gt;
Little while ago, I was searching for the network monitoring tools to monitor my Raspberry Pi based infra. Found several tools including PRTG Monitor and Zabbix. When I was doing some deeper research on the tools found that the PRTG monitor free tier exceeds after adding 100 sensors or devices. &lt;br&gt;
Then I focused on the Zabbix. Zabbix is an opensource network monitoring tools which uses the agent architecture to monitor the devices. I was bit trouble to install the Zabbix since it has several parts &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Server &lt;/li&gt;
&lt;li&gt;Frontend (Apache or Nginx)&lt;/li&gt;
&lt;li&gt;Java Gateway &lt;/li&gt;
&lt;li&gt;database server (MySQL or Postgres).
However I managed to install the Postgres DB based Zabbix version. Also I came up with a docker compose file for those installation.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: "3"
services:
    pgsql-server:
        image: postgres:latest
        ports: 
            - "5434:5432"
        environment:
            - POSTGRES_USER=root
            - POSTGRES_PASSWORD=password
            - APP_DB_USER=zabix
            - APP_DB_PASS=zabix
            - APP_DB_NAME=zabix

    zabix-server:
        image: zabbix/zabbix-server-pgsql
        environment:
            - DB_SERVER_HOST=pgsql-server
            - POSTGRES_USER=root
            - POSTGRES_PASSWORD=password
        ports: 
            - "10051:10051"

    zabix-frontend:
        image: zabbix/zabbix-web-nginx-pgsql
        environment: 
            - DB_SERVER_HOST=pgsql-server
            - POSTGRES_USER=root
            - POSTGRES_PASSWORD=password
            - ZBX_SERVER_HOST="zabix-server"
            - PHP_TZ=Asia/Colombo
        links: 
            - pgsql-server:postgres
        ports: 
            - "80:8080"


    zabix-java-gateway:
        image: zabbix/zabbix-java-gateway
        links: 
            - zabix-server:zabbix-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, my theory is that we can use Zabbix to monitor the underlying infra in a Kube. cluster. &lt;br&gt;
Highly appreciate your thoughts on this since I'm a rookie to the DevOps. &lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>docker</category>
      <category>monitoring</category>
    </item>
  </channel>
</rss>
