tag:blogger.com,1999:blog-29533585370822055122024-03-13T18:15:47.955-07:00Techno LadderTechnical articles, best practices, personal learning, tips and tricks in information and internet technologiesTechnohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.comBlogger127125tag:blogger.com,1999:blog-2953358537082205512.post-22567816382135373062024-03-13T18:15:00.000-07:002024-03-13T18:15:07.336-07:00HorizontalAutoScaler in OpenShift/k8s<p> 1. HorizontalAutoScaler in OpenShift/k8s, </p><p>Declerative:</p><p>apiVersion: autoscaling/v1</p><p> kind: HorizontalPodAutoscaler</p><p> metadata:</p><p> name: php-apache</p><p> namespace: hpa-test</p><p> spec:</p><p> scaleTargetRef:</p><p> apiVersion: apps/v1</p><p> kind: Deployment</p><p> name: php-apache</p><p> minReplicas: 1</p><p> maxReplicas: 10</p><p> targetCPUUtilizationPercentage: 50</p><p>kubectl command: kubectl -n hpa-test autoscale deployment php-apache --cpu-percent=50 --min=1 --max=5</p><p>2. Ingress Controller</p><p>- An ingress controller acts as a reverse proxy and load balancer. It implements a Kubernetes Ingress. The ingress controller adds a layer of abstraction to traffic routing, accepting traffic from outside the Kubernetes platform and load balancing it to Pods running inside the platform.</p><p>- Ingress exposes HTTP and HTTPS routes from outside the cluster to services within the cluster</p><p>3. Private endpoint. </p><p>- A private endpoint is a network interface that uses a private IP address from your virtual network. This network interface connects you privately and securely to a service that's powered by Azure Private Link. By enabling a private endpoint, you're bringing the service into your virtual network</p><p><br /></p><p>CDIR:</p><p>Classless or Classless Inter-Domain Routing (CIDR) addresses use variable length subnet masking (VLSM) to alter the ratio between the network and host address bits in an IP address. A subnet mask is a set of identifiers that returns the network address’s value from the IP address by turning the host address into zeroes. </p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-15880920735723684802024-03-10T03:05:00.000-07:002024-03-10T03:11:01.001-07:00Redhat Openshift<p>What are openshift operators?</p><p>Red Hat OpenShift Operators automate the creation, configuration, and management of instances of Kubernetes-native applications. Operators provide automation at every level of the stack—from managing the parts that make up the platform all the way to applications that are provided as a managed service.</p><p>What is Secret Store CSI?</p><p>CSI - Container Storage Interface</p><p>The Kubernetes Secret Store CSI is a storage driver that allows you to mount secrets from external secret management systems like HashiCorp Vault and AWS Secrets. It comes in two parts, the Secret Store CSI, and a Secret provider driver</p><p>What is configmap?</p><p>ConfigMap is similar to secrets, but designed to more conveniently support working with strings that do not contain sensitive information</p><p>The ConfigMap API object holds key-value pairs of configuration data that can be consumed in pods or used to store configuration data for system components such as controllers</p><p>How to create ConfigMap ?</p><p>oc create configmap my-key-vals --from-literal db-user=user1 db-password=db-password1</p><p>OR from yaml</p><p>------------------------------</p><p>apiVersion: v1</p><p>kind: ConfigMap</p><p>metadata:</p><p> name: env-config</p><p> namespace: my-project</p><p>data:</p><p> db-user: user1</p><p> db-password: db-password1</p><p>------------------------------</p><p>How do pods consume envs?</p><p>apiVersion: v1</p><p>kind: Pod</p><p>metadata:</p><p> name: my-project</p><p>spec:</p><p> containers:</p><p> - name: test-container</p><p> image: gcr.io/google_containers/busybox</p><p> command: [ "/bin/sh", "-c", "env" ]</p><p> env: </p><p> - name: DB-USER</p><p> valueFrom:</p><p> configMapKeyRef:</p><p> name: env-config</p><p> key: db-user</p><p> - name: DB-PASSWORD</p><p> valueFrom:</p><p> configMapKeyRef:</p><p> name: env-config</p><p> key: db-password</p><p> restartPolicy: Never</p><p>What is difference between Deployments and DeploymentConfig?</p><p>DeploymentConfig objects prefer consistency, whereas Deployments objects take availability over consistency. For DeploymentConfig objects, if a node running a deployer pod goes down, it will not get replaced. The process waits until the node comes back online or is manually deleted.</p><p><br /></p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-54389114384325713722024-02-24T04:33:00.000-08:002024-02-24T04:33:06.172-08:00Terraform Clarrification<p> 1. How to use existing resource group in terraform?</p><p>terraform import azurerm_resource_group.rg /subscriptions/<sub_id>/resourceGroups/<rg_name)</p><p>2. </p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-53128381692429295532024-02-24T00:00:00.001-08:002024-02-24T00:00:53.011-08:00Microsoft Azure Guest UserHow to give access to Azure guest user?<div><b>Business scenario</b>:</div><div>Let se I guess future create its file storage in Microsoft storage account and create a private and point. The URL of the private and point will not be accessible to the guest user who created the end point. </div><div><b>Solution:</b></div><div>To gain the access to the private endpoint, the guest user has to create a support ticket with some tools. Administrator will review and grant the access to a private end point based on business need.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-74701569488240139052024-02-22T09:00:00.000-08:002024-02-22T09:00:59.125-08:00How to automate creating Linux Virtual Machine in Azure using Terraform<p>Complete code: https://github.com/MaheshMagadum/cloudops/tree/main/terraform-02</p><p><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;">
<tbody><tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;">
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 450.8pt;" valign="top" width="601">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">terraform {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>required_version = ">=1.0.0"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>required_providers {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>azapi = {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>source<span style="mso-spacerun: yes;"> </span>=
"azure/azapi"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>version
= "~>1.5"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>azurerm =
{<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>source<span style="mso-spacerun: yes;"> </span>=
"hashicorp/azurerm"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>version
= "~>3.0.0"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>random = {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>source<span style="mso-spacerun: yes;"> </span>=
"hashicorp/random"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>version
= "~>3.0"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">provider "azurerm" {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>features{}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">}</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">resource "azurerm_resource_group"
"rg" {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>name =
"dev-rg"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>location =
var.location<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">}</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">resource "azurerm_virtual_network"
"azure_vnet" {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>resource_group_name = azurerm_resource_group.rg.name<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>name =
"aro-vnet"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>location =
azurerm_resource_group.rg.location<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>address_space = ["10.0.4.0/25"]<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">resource "azurerm_subnet"
"azure_subnet" {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>name =
var.subnet_name<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>resource_group_name = azurerm_resource_group.rg.name<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>virtual_network_name = azurerm_virtual_network.azure_vnet.name<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>address_prefixes = ["10.0.4.0/29"]<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"># Create public IPs<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">resource "azurerm_public_ip"
"public_IP" {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>name<span style="mso-spacerun: yes;"> </span>= "public_IP"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>location<span style="mso-spacerun: yes;"> </span>=
azurerm_resource_group.rg.location<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>resource_group_name = azurerm_resource_group.rg.name<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>allocation_method<span style="mso-spacerun: yes;"> </span>=
"Dynamic"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">}</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">resource "azurerm_network_interface"
"azure_ni" {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>name =
azurerm_virtual_network.azure_vnet.name<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>location =
var.location<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>resource_group_name = azurerm_resource_group.rg.name<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>ip_configuration {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>name =
"my_azure_ni"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>subnet_id
= azurerm_subnet.azure_subnet.id<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>private_ip_address_allocation = var.private_ip_allocation<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>public_ip_address_id<span style="mso-spacerun: yes;"> </span>=
azurerm_public_ip.public_IP.id<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">resource "azurerm_network_security_group"
"nsg" {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>name<span style="mso-spacerun: yes;"> </span>=
"myNetworkSecurityGroup"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>location<span style="mso-spacerun: yes;"> </span>=
azurerm_resource_group.rg.location<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>resource_group_name = azurerm_resource_group.rg.name<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>security_rule {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>name<span style="mso-spacerun: yes;"> </span>= "SSH"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>priority<span style="mso-spacerun: yes;"> </span>=
1001<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>direction<span style="mso-spacerun: yes;"> </span>=
"Inbound"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>access<span style="mso-spacerun: yes;"> </span>=
"Allow"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>protocol<span style="mso-spacerun: yes;"> </span>=
"Tcp"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>source_port_range<span style="mso-spacerun: yes;"> </span>=
"*"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>destination_port_range<span style="mso-spacerun: yes;"> </span>=
"22"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>source_address_prefix<span style="mso-spacerun: yes;"> </span>=
"*"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>destination_address_prefix = "*"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"># Connect the security group to the network
interface<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">resource
"azurerm_network_interface_security_group_association"
"namehere" {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>network_interface_id<span style="mso-spacerun: yes;"> </span>=
azurerm_network_interface.azure_ni.id<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>network_security_group_id = azurerm_network_security_group.nsg.id<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">}</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">resource "azurerm_linux_virtual_machine"
"azure_vm" {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>name =
var.vm_name<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>resource_group_name = azurerm_resource_group.rg.name<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>location =
var.location<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>network_interface_ids = [azurerm_network_interface.azure_ni.id] <o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>size<span style="mso-spacerun: yes;"> </span>= "Standard_B2s"</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>os_disk {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>name<span style="mso-spacerun: yes;"> </span>= "myOsDisk"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>caching<span style="mso-spacerun: yes;"> </span>=
"ReadWrite"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>storage_account_type = "Standard_LRS"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>}</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>source_image_reference {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>publisher
= "Canonical"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>offer<span style="mso-spacerun: yes;"> </span>=
"0001-com-ubuntu-server-jammy"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>sku<span style="mso-spacerun: yes;"> </span>= "22_04-lts-gen2"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>version<span style="mso-spacerun: yes;"> </span>= "latest"<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>computer_name<span style="mso-spacerun: yes;"> </span>= var.hostname<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>admin_username = var.username<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>admin_ssh_key {<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;">
</span>username<span style="mso-spacerun: yes;"> </span>= var.username<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>public_key
= jsondecode(azapi_resource_action.ssh_public_key_gen.output).publicKey<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-size: 10pt;"> </span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="font-size: 10.0pt;">}<o:p></o:p></span></p>
</td>
</tr>
</tbody></table><br /></p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-1378774705076106902024-02-21T08:10:00.000-08:002024-02-21T08:10:03.974-08:00Infrastructure as code (Terraform) - Automate creating an Azure resource using terraform <p>Create an Azure Resource Group using Terraform:</p><p><b>main.tf</b> </p><p>terraform {</p><p> required_version = ">=1.0.0"</p><p> required_providers {</p><p> azurerm = {</p><p> source = "hashicorp/azurerm"</p><p> version = "~>3.0.0"</p><p> }</p><p> }</p><p>}</p><p>provider "azurerm" {</p><p> features{}</p><p>}</p><p><br /></p><p>variable "location" {</p><p> type = string</p><p> default = "East US"</p><p>}</p><p><br /></p><p>resource "azurerm_resource_group" "rg" {</p><p> name = "dev-rg"</p><p> location = var.location</p><p>}</p><p><b>Execute below commands to install the provider (Azure) plugin, create source and destroy it</b></p><p>>terraform <b>init -upgrade</b></p><p>>terraform <b>validate</b></p><p>>terraform <b>plan</b></p><p>>terraform <b>apply</b></p><p>>terraform <b>destroy</b></p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-3288754830786435742024-02-20T02:21:00.000-08:002024-02-20T06:31:41.007-08:00How to access Azure KeyVault in RedHat OpenShift 4 cluster<p> Ref: https://learn.microsoft.com/en-us/azure/openshift/howto-use-key-vault-secrets</p><p>oc login https://api.alstt7ftx43328907e.eastus.aroapp.io:6443/ -u kubeadmin -p g9i2H-KVUqo-7SjUm-UthrL</p><p>oc new-project k8s-secrets-store-csi</p><p>oc adm policy add-scc-to-user privileged system:serviceaccount:k8s-secrets-store-csi:secrets-store-csi-driver</p><p>helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts</p><p>helm repo update</p><p>helm install -n k8s-secrets-store-csi csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver --version v1.3.1 --set "linux.providersDir=/var/run/secrets-store-csi-providers"</p><p><br /></p><p>Next,</p><p>helm repo add csi-secrets-store-provider-azure https://azure.github.io/secrets-store-csi-driver-provider-azure/charts</p><p>helm repo update</p><p><br /></p><p>Next,</p><p>helm install -n k8s-secrets-store-csi azure-csi-provider csi-secrets-store-provider-azure/csi-secrets-store-provider-azure --set linux.privileged=true --set secrets-store-csi-driver.install=false --set "linux.providersDir=/var/run/secrets-store-csi-providers" --version=v1.4.1</p><p>oc adm policy add-scc-to-user privileged system:serviceaccount:k8s-secrets-store-csi:csi-secrets-store-provider-azure</p><p>Next (Create key vault and a secret)</p><p>oc new-project my-application</p><p>az keyvault create -n ${KEYVAULT_NAME} -g ${KEYVAULT_RESOURCE_GROUP} --location ${KEYVAULT_LOCATION}</p><p>az keyvault secret set --vault-name secret-store-oljy7AQDbV --name secret1 --value "Hello"</p><p>export SERVICE_PRINCIPAL_CLIENT_SECRET="ces8Q~kBm~YYJTPLDOSsqrbLT0yDFWcil7r-XbbB"</p><p>export SERVICE_PRINCIPAL_CLIENT_ID="e8d92000-2a2c-4581-890f-6fb611717706"</p><p>az keyvault set-policy -n secret-store-oljy7AQDbV --secret-permissions get --spn ${SERVICE_PRINCIPAL_CLIENT_ID}</p><p>kubectl create secret generic secrets-store-creds --from-literal clientid=${SERVICE_PRINCIPAL_CLIENT_ID} --from-literal clientsecret=${SERVICE_PRINCIPAL_CLIENT_SECRET} </p><p>kubectl -n my-application label secret secrets-store-creds secrets-store.csi.k8s.io/used=true</p><p>kubectl exec busybox-secrets-store-inline -- ls /mnt/secrets-store/</p><pre class="has-inner-focus" style="-webkit-font-smoothing: auto; border: .125rem solid var(--theme-border); box-sizing: inherit; color: #161616; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace !important; font-size: 0.875rem; hyphens: none; line-height: 1.3571; margin-bottom: 0px; margin-top: 0px; outline-color: inherit; overflow-wrap: normal; overflow: auto; padding: 1rem; tab-size: 4; word-break: normal;"><div><br /></div></pre>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-81461618693770716712024-02-19T22:27:00.000-08:002024-02-19T22:42:16.237-08:00Warning: would violate PodSecurity "restricted:v1.24": unrestricted capabilities<p>Error from server (Forbidden): error when creating "<pod>.yaml": pods "busybox-secrets-store-inline" is forbidden: busybox-secrets-store-inline uses an inline volume provided by CSIDriver secrets-store.csi.k8s.io and namespace my-application has a pod security enforce level that is lower than privileged</p><p>ISSUE THIS COMMAND:</p><p>kubectl label --overwrite ns my-application pod-security.kubernetes.io/enforce=privileged pod-security.kubernetes.io/enforce-version=v1.29</p><p>AND HAXE POD YAML:</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4uNFzdYeawAwKVtvu5YEgt15tmhIf3_G5ZGoY17c6kI5sv9fIULGJ0-4fRr-UpUXrV0p_QkRPnm9MdG09K0q17Hqj-i689mhvU8d26rnxfE1lgEH5FrJ9tAduGRXroNhoQ2hjfqRf9cBKO8SuCmwRjKkJ-TlyGtlASiq-8EY4Nu0opXS-73cq4dZ8gQc/s536/Screenshot%202024-02-20%20115614.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="536" data-original-width="456" height="463" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4uNFzdYeawAwKVtvu5YEgt15tmhIf3_G5ZGoY17c6kI5sv9fIULGJ0-4fRr-UpUXrV0p_QkRPnm9MdG09K0q17Hqj-i689mhvU8d26rnxfE1lgEH5FrJ9tAduGRXroNhoQ2hjfqRf9cBKO8SuCmwRjKkJ-TlyGtlASiq-8EY4Nu0opXS-73cq4dZ8gQc/w456-h463/Screenshot%202024-02-20%20115614.png" width="456" /></a><br /><br /></p><p><br /></p><p><br /><br /></p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-70082127936374920352024-02-18T00:45:00.000-08:002024-02-19T00:19:57.691-08:00How to connect to Redhat Openshift 4 cluster's api server using Openshift CLI oc<p> Find address of the API Server</p><p>apiServer=$(az aro show -g $RESOURCEGROUP -n $CLUSTER --query apiserverProfile.url -o tsv)</p><p>ex: apiServer=$(az aro show -g aro_group -n arocluster --query apiserverProfile.url -o tsv)</p><p>oc login $apiServer -u kubeadmin -p <kubeadmin password></p><p><br /></p><p>C:\Users\santosh>helm install my-kong2 kong/kong -n kong --values ./full-k4k8s-with-kong-enterprise.conf.txt</p><p>coalesce.go:289: warning: destination for kong.proxy.stream is a table. Ignoring non-table value ([])</p><p>coalesce.go:289: warning: destination for kong.proxy.stream is a table. Ignoring non-table value ([])</p><p>NAME: my-kong2</p><p>LAST DEPLOYED: Sun Feb 18 15:16:30 2024</p><p>NAMESPACE: kong</p><p>STATUS: deployed</p><p>REVISION: 1</p><p>TEST SUITE: None</p><p>NOTES:</p><p>To connect to Kong, please execute the following commands:</p><p><br /></p><p>HOST=$(kubectl get svc --namespace kong my-kong2-kong-proxy -o jsonpath='{.status.loadBalancer.ingress[0].ip}')</p><p>PORT=$(kubectl get svc --namespace kong my-kong2-kong-proxy -o jsonpath='{.spec.ports[0].port}')</p><p>export PROXY_IP=${HOST}:${PORT}</p><p>curl $PROXY_IP</p><p><br /></p><p>Once installed, please follow along the getting started guide to start using</p><p>Kong: https://docs.konghq.com/kubernetes-ingress-controller/latest/guides/getting-started/</p><p>Article: https://arifkiziltepe.medium.com/kong-installation-on-openshift-3eb3291d3998</p><div><br /></div>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-47118142252932523052024-02-18T00:31:00.000-08:002024-02-18T00:31:13.374-08:00Install Kong API Gateway in Azure RedHat OpenShift 4 cluster<p> todo</p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-26454222326276247052024-02-17T23:37:00.000-08:002024-02-18T00:15:43.341-08:00Kubernetes Terminologies<p> CRI - Container Runtime Interface</p><p>OCI - Open Container Initiative (has imagespec, runtimespec)</p><p>ContainerD - comes with CLI ctl (docker vs containerd?)</p><p>kublet - [Register Node, create PODs, Monitor Node & PODs). Registers the node to kubernetes cluster. It requests the container runtime engine like docker to pull container image on to the node to run pods. Monitors node & pods</p><p>Kube-Proxy - Network traffic between PODs</p><p>Services - Enable kube apps to be accessible outside cluster. 2 service types, They have an IP address</p><p>NodePort: Maps a port on the node to the Port on the pod</p><p>ClusterIP: Communication between pods within the cluster. Apps->DBs</p><p>LoadBalancer - Kube native load balancer</p><p>CNI - <a href="https://github.com/containernetworking/cni" style="background-color: white; box-sizing: border-box; color: #0f306e; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 16px; text-decoration-line: none;">Container Network Interface</a></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-42297785121010130992024-02-17T01:42:00.000-08:002024-02-17T01:42:10.072-08:00Reactjs Application Deployment In Azure storage Account<p> 1. Create an Azure storage account</p><p>2. From Settings of created storage account, select 'configuration', a) select 'Disabled' for 'Secure transfer required' -> this enables http. b) select 'Enabled' for 'Allow Blob anonymous access'</p><p>3. Save the changes</p><p>4. Under 'Data Storage', click on Containers, create a container with access level as Blob(anonymous read access for blobs only)</p><p>5. Using Upload under container, upload a file called index.hmtl which I have attached/shared.</p><p>6. create a 'Front Door and CDN' and do this, search for 'Front Door and CDN profiles', and click +Create button, select Exlore other offerings and Azure CDN Standard from Microsoft (classic). Provide resource group name and cdn profile name (ex: cdn-profile)</p><p>7. Next, create an Endpoint. To do this, click on cdn-profile you created and click on +Endpoint, provide Endpoint name (Ex: myreactapp), and choose Storage under Origin type. Select Origin hostname from dropdown (ex: mystorageaccount.blob.core.windows.net)</p><p>8. Now, select the Endpoint you created and click on 'Rule Engine' that appears in Settings</p><p>9. choose Add rules button under EndPoint. Now give a name to rules and Click on Add Condition and select 'URL File Extension', choose Operator 'less than' and Extension as 1 and case transform as No transform. Then click on the “Add action” button and select “URL rewrite” action. </p><p>10. Click on Save button.</p><p>11. Now select container that you created under storage account and click Upload button and upload index.html OR your reacjs app after running npm build</p><p>12. Now you click on Endpoint created and click Endpoint hostname (ex: https://reactjsapp.azureedge.net) to open the hosted/deployed app in browser.</p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-92169653309628096462024-02-15T07:53:00.000-08:002024-02-16T02:54:07.999-08:00How to create ARO(Azure Redhat OpenShift) private clusterRegister to azure redhat <div><br /><div>az account set --subscription 7ce96666-9c91-4251-a956-c0bbc4617409 </div><div>az provider register -n Microsoft.RedHatOpenShift --wait </div><div>az provider register -n Microsoft.Compute --wait </div><div>az provider register -n Microsoft.Network --wait </div><div>az provider register -n Microsoft.Storage --wait </div><div><br /></div><div><b> Envirinment variables: </b></div><div><br /></div><div>LOCATION=eastus # the location of your cluster </div><div>RESOURCEGROUP="v4-$LOCATION" # the name of the resource group where you want to create your cluster </div><div>CLUSTER=aro-cluster # the name of your cluster </div><div><br /></div><div> az group create --name $RESOURCEGROUP --location $LOCATION </div><div><b><br /></b></div><div><b> Create a virtual network.</b></div><div><br /></div><div> az network vnet create --resource-group $RESOURCEGROUP --name aro-vnet --address-prefixes 10.0.0.0/22 </div><div><br /></div><div><b> Add an empty subnet for the master nodes. </b></div><div><br /></div><div> az network vnet subnet create --resource-group $RESOURCEGROUP --vnet-name aro-vnet --name master-subnet --address-prefixes 10.0.0.0/23 --service-endpoints Microsoft.ContainerRegistry </div><div><br /></div><div><b> Add an empty subnet for the worker nodes.</b> </div><div> az network vnet subnet create --resource-group $RESOURCEGROUP --vnet-name aro-vnet --name worker-subnet --address-prefixes 10.0.2.0/23 --service-endpoints Microsoft.ContainerRegistry </div><div><b><br /></b></div><div><b> Disable subnet private endpoint policies on the master subnet. This is required to be able to connect and manage the cluster. </b></div><div><br /></div><div> az network vnet subnet update --name master-subnet --resource-group $RESOURCEGROUP --vnet-name aro-vnet --disable-private-link-service-network-policies true
Check accessability
</div></div><div><br /></div><div>Links:</div><div>https://docs.openshift.com/container-platform/4.8/networking/configuring_ingress_cluster_traffic/configuring-ingress-cluster-traffic-ingress-controller.html</div><div>https://learn.microsoft.com/en-us/answers/questions/1165736/exposing-aro-cluster-application-on-internet</div>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-28023573071552215182024-02-08T23:58:00.000-08:002024-02-08T23:58:51.163-08:00Python Client to send messages to Azure EventHub with ConnectionString<p> Run this python code to send messages both in JSON format and string, both are sent successfully. You can just run this from your end, it will sure work. Note that the messages sent in NON JSON format will not be visible but the count increases and messages sent in JSON format can be viewed from Azure UI. Consumer can read all formats of message.</p><p><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;">
<tbody><tr style="height: 413.45pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;">
<td style="border: solid windowtext 1.0pt; height: 413.45pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 385.1pt;" valign="top" width="513">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">import asyncio</p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">from azure.eventhub import EventData<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">from azure.eventhub.aio import EventHubProducerClient</p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">EVENT_HUB_CONNECTION_STR = <o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">"Endpoint=sb://genericeventhub.servicebus.windows.net/;<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">SharedAccessKeyName=RootManageSharedAccessKey;<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">SharedAccessKey=4cI6t0fjJwhf8i0ZKIjJ+uww27yCsBtnf+AEhIiC9xQ="<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">EVENT_HUB_NAME = "javaappeh"</p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">async def run():<span style="mso-spacerun: yes;">
</span><o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;"> </span># Create a
producer client to send messages to the event hub.<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;"> </span># Specify a
connection string to your event hubs namespace and<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;"> </span># the event
hub name.</p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;"> </span>producer =
EventHubProducerClient.from_connection_string(<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;">
</span>conn_str=EVENT_HUB_CONNECTION_STR, eventhub_name=EVENT_HUB_NAME<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;"> </span>)<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;"> </span>async with
producer:<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;"> </span>#
Create a batch.<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;">
</span>event_data_batch = await producer.create_batch()</p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;"> </span># Add
events to the batch.<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;">
</span>messagebody =
'{"KEY20":"VALUE20","KEY21":"VALUE21","timestamp":"2024-05-17T01:17:00Z"}'
<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;">
</span>event_data_batch.add(EventData(messagebody))<o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;">
</span>#event_data_batch.add(EventData("Second event"))<span style="mso-spacerun: yes;"> </span><o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="mso-spacerun: yes;"> </span>await
producer.send_batch(event_data_batch)</p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">asyncio.run(run())<span style="font-size: 9pt;"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><br /></p>
</td>
</tr>
</tbody></table><br /></p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-73925936920025821862024-02-08T23:46:00.000-08:002024-02-08T23:46:26.956-08:00Dockerfile for Java Spring Boot Application in RHEL8<p> FROM registry.access.redhat.com/ubi8/ubi:8.1</p><p>WORKDIR /app</p><p>RUN yum update -y && yum install -y wget</p><p>RUN pwd</p><p>RUN cd /opt && wget --no-check-certificate https://downloads.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz</p><p>RUN cd /opt && tar -xvf apache-maven-3.8.8-bin.tar.gz</p><p>RUN cd /opt && ln -s apache-maven-3.8.8 maven</p><p>RUN yum -y install java-17-openjdk</p><p>COPY pom.xml .</p><p>COPY src ./src</p><p>ENV M2_HOME /opt/maven</p><p>ENV PATH ${M2_HOME}/bin:${PATH}:/usr/bin</p><p>RUN echo $PATH</p><p>RUN mvn -version</p><p>RUN mvn install -DskipTests</p><p>RUN ls target</p><p>EXPOSE 8080</p><p>ENV PORT 8080</p><p>CMD ["java", "-Dserver.port=8080", "-jar", "/app/target/test-service-0.0.1-SNAPSHOT.jar"]</p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-55340375155040183772024-02-08T23:41:00.000-08:002024-02-08T23:41:11.180-08:00Azure Red Hat OpenShift cluster<p><b> ARO( cluster):</b></p><p>When Ingress visibility is set as Private, routes default to internal load balancer and when set Public, routes the default to public standard load balancer. Here the default Virtual network traffic routing can changed. Refer to this link: https://learn.microsoft.com/en-au/azure/virtual-network/virtual-networks-udr-overview </p><p>Create Private ARO: https://learn.microsoft.com/en-au/azure/openshift/howto-create-private-cluster-4x</p><p>Ingress Controllers for ARO reference: https://www.redhat.com/en/blog/a-guide-to-controller-ingress-for-azure-red-hat-openshift</p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-23460007492134959352024-02-08T23:38:00.000-08:002024-02-19T22:55:50.447-08:00Azure KeyVault Access and how to use it in Azure Kubernetes Service<p><b> KeyVault Access:</b></p><p>With public access disabled for Azure Keyvaults, the private endpoints (privatelink.vaultcore.azure.net) can be created for azure key valts and will be accessible from VMs within the same virtual network and subnet as that of keyvault private link's virtual network and subnet.</p><p>Azure KeyVault can be accessed publicly (outside azure) with allow public networks enabled under networking.</p><p>Azure keyvault can be accessed only from certain virtual network with allow public networks only from specified different virtual network.</p><p>Links: https://learn.microsoft.com/en-gb/azure/key-vault/general/private-link-service?tabs=portal</p><p><b>Kubernetes & KeyVault:</b></p><p>Azure keyvault can be accessed in kubernetes cluster by configuring "Enable secret store CSI driver" present in "Advanced" tab while creating AKS. After enabling this, you can define azure keyvault in the network accessible by the cluster.</p><p>https://azure.github.io/secrets-store-csi-driver-provider-azure/docs/demos/standard-walkthrough/</p><p><br /></p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-15421681272283489212024-01-11T04:34:00.000-08:002024-01-11T04:36:41.872-08:00How to deploy ReactApp in Microsoft Azure Storage account<p>1. Create a storage account in Microsoft Azure.</p><p>2. From Settings of created storage account, select 'configuration', a) select 'Disabled' for 'Secure transfer required' -> this enables http. b) select 'Enabled' for 'Allow Blob anonymous access'</p><p>3. Save the changes</p><p>4. Under 'Data Storage', click on Containers, create a container with access level as Blob(anonymous read access for blobs only)</p><p>5. create a 'Front Door and CDN' and do this, search for 'Front Door and CDN profiles', and click +Create button, select Explore other offerings and Azure CDN Standard from Microsoft (classic). Provide resource group name and cdn profile name (ex: cdn-profile)</p><p>6. Next, create an Endpoint. To do this, click on cdn-profile you created and click on +Endpoint, provide Endpoint name (Ex: myreactapp), and choose Storage under Origin type. Select Origin hostname from dropdown (ex: mystorageaccount.blob.core.windows.net)</p><p>7. Now, select the Endpoint you created and click on 'Rule Engine' that appears in Settings</p><p>8. choose Add rules button under EndPoint. Now give a name to rules and Click on Add Condition and select 'URL File Extension', choose Operator 'less than' and Extension as 1 and case transform as No transform. Then click on the “Add action” button and select “URL rewrite” action. </p><p>9. Click on Save button.</p><p>10. Now select container that you created under storage account and click Upload button and upload index.html OR your reacjs app after running npm build</p><p>11. Now you click on Endpoint created and click Endpoint hostname (ex: https://reactjsapp.azureedge.net) to open the hosted/deployed app in browser.</p>Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-46916497341434510372014-10-15T08:21:00.000-07:002014-10-15T08:21:42.331-07:00Refactoring: Why do we get into that situation in first place?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihK8nLxy9cWE8M0Iun28GtMXIoHdw8RdMyYIAwxfSz4KyegP0rcR4fy1R8UFn53NDbA-7GP60upozuNZF_NZbIKTfeGxhgAN4D3XOvx6jnXm9z1MTizhVxZLJCknEFOzxUbRe3RJBnEv8/s1600/Untitled.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihK8nLxy9cWE8M0Iun28GtMXIoHdw8RdMyYIAwxfSz4KyegP0rcR4fy1R8UFn53NDbA-7GP60upozuNZF_NZbIKTfeGxhgAN4D3XOvx6jnXm9z1MTizhVxZLJCknEFOzxUbRe3RJBnEv8/s1600/Untitled.png" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><a href="http://technoladder.blogspot.in/2014/01/the-importance-of-code-refactoring-in.html" target="_blank">Refactoring</a> is a process of modifying the code without changing the software behavior. Re factoring is required to make the design robust and flexible for future code modifications and more importantly increasing the code readability. In lifetime of software most of the times, the code is read than written or modified. More time required in reading/understanding the code than time taken to make the actual changes because modifying the code without understanding it property there lies the risk of introducing the new bugs.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">I was just wondering why do we even get into the situation where we've to refactor the code? Well, this is tough question to answer. So my say is that the complexity of the software is directly proportional to the number of developers. While this is the fact, what if we have few developers(4 for example) who are always there to write and own the code and only those modify? Lets say that these four developers have been given the clear instruction that they have to follow all the design principles and guidelines that exist for object oriented languages. Over a period of time do we still get into the situation where we need to refactor the code? </span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Before seeing what's the conclusion on above question, let me write some of the essential facts that happen in software life span especially in legacy software.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">1. Different developers have different coding styles and different way of thinking this may happen due to developers being in different experience level. The same developers will not be there for ever to own the code. The extra time for correcting(refactoring) the old code is not planned/forgotten while making a fix, adding a new feature or during code reviews, the focus will be on the current issue being resolved than bothering about rest of the code </span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">2. No one initially designs the systems for better performance and future requirements. As a best practice, the systems are designed only to address the current requirements. And requirements change over the curse of time and you are bound to modify the code to accommodate the new requirements.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">3. Sometimes performance comes at the cost of not following certain design guidelines. The straight example is that method calls are costlier but OO design guideline says that methods should be smaller. </span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">4. Lack of having sufficient unit test cases specially automated unit test cases. Unless the team is following TDD(Test Driven Development), the developers do not bother touching the code which does not solve the current issue.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">So the discussion where in you hire expert developers with same experience level who will be writing the code from the scratch and also will be owning the code for future modifications. Does this team write and maintain the good quality code that does not have any <a href="http://technoladder.blogspot.in/2012/05/code-smells-coding-standards.html" target="_blank">code smells</a>? We've not tried this but the opinion of many (with developing experience of more than 10 years) was No. There may come one of the above four aspects on the way and there could many code smells which are resolved by refactoring.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Though its impractical or tough task to have good quality code that follows all the OO design guidelines over a period of time, efforts to improve the code quality are advised. Refactoring can not happen overnight, and hence there we have introduced something called "Continuous refactoring"</span></div>
</div>
Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-31375449712231232992014-09-27T23:53:00.000-07:002014-09-27T23:53:00.003-07:00Good Technical Web Resources To Bookmark<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeRvhUi270BRiKiYlifRNM-YeV1gJtOcKZ3F0SeIlcd-4KEIngFVJmmhE9JE9ziW7IKPjGpaNRRUg2Lg21g6XBk63UHL4pzV4sw1DsS67vxatMHNiLDi33LlTqwoOPUSuDflturjSMyyQ/s1600/images+(2).jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeRvhUi270BRiKiYlifRNM-YeV1gJtOcKZ3F0SeIlcd-4KEIngFVJmmhE9JE9ziW7IKPjGpaNRRUg2Lg21g6XBk63UHL4pzV4sw1DsS67vxatMHNiLDi33LlTqwoOPUSuDflturjSMyyQ/s1600/images+(2).jpg" /></a></div>
<span style="font-family: Verdana, sans-serif;">During my study, I came across some useful web resources which I thought of sharing with you all. My intent is to have them all in one place for my reference so that I can always come to this post and browse when needed. I'm going to update this post if I come across any new web resources which I think worth booking marking. The readers of this blog can also have a look at these resources. If you have any web resources which you think are good ones, you can leave a message against this post, I'll take a look and include those. Hope these resources benefit you all as well.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: #073763; font-family: Verdana, sans-serif;"><b>Design pattern & certification links:</b></span><br />
<span style="font-family: Verdana, sans-serif;">OO principles: <a href="http://www.objectmentor.com/omSolutions/oops_what.html">http://www.objectmentor.com/omSolutions/oops_what.html</a></span><br />
<span style="font-family: Verdana, sans-serif;">UML, design patterns: <a href="http://sourcemaking.com/uml">http://sourcemaking.com/uml</a> </span><br />
<span style="font-family: Verdana, sans-serif;">Strictly Singleton pattern: <a href="http://javarevisited.blogspot.in/2011/03/10-interview-questions-on-singleton.html">http://javarevisited.blogspot.in/2011/03/10-interview-questions-on-singleton.html</a></span><br />
<span style="font-family: Verdana, sans-serif;">IBM UML certification: <a href="http://www-03.ibm.com/certify/tests/edu833.shtml">http://www-03.ibm.com/certify/tests/edu833.shtml</a></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: #073763; font-family: Verdana, sans-serif;"><b>New tools/technology updates:</b></span><br />
<span style="font-family: Verdana, sans-serif;">News about tools, mobile apps, cool websites: <a href="http://www.makeuseof.com/">http://www.makeuseof.com/</a></span><br />
<span style="font-family: Verdana, sans-serif;">Highly successful kickstarted project: <a href="https://www.kickstarter.com/projects/556341540/pressy-the-almighty-android-">https://www.kickstarter.com/projects/556341540/pressy-the-almighty-android-</a>button . You can find someother cool projects here</span><br />
<span style="font-family: Verdana, sans-serif;">MIT technology review: <a href="http://www.technologyreview.com/">http://www.technologyreview.com/</a></span><br />
<span style="font-family: Verdana, sans-serif;">Geekwire: <a href="http://www.geekwire.com/">www.geekwire.com/</a></span><br />
<span style="font-family: Verdana, sans-serif;">Technology Advice, product review: <a href="http://www.thinkdigit.com/">www.thinkdigit.com</a></span><br />
<span style="font-family: Verdana, sans-serif;">Engadget: <a href="http://www.engadget.com/">www.engadget.com</a></span><br />
<span style="font-family: Verdana, sans-serif;">Technology updates: <a href="http://www.gizmodo.com/">www.gizmodo.com</a></span><br />
<span style="font-family: Verdana, sans-serif;">Tech journals: <a href="http://www.gigaom.com/">www.gigaom.com</a></span><br />
<span style="font-family: Verdana, sans-serif;">Java code geeks: <a href="http://www.javacodegeeks.com/">http://www.javacodegeeks.com/</a></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: #073763; font-family: Verdana, sans-serif;"><b>Understanding mechanics & engine:</b></span><br />
<span style="font-family: Verdana, sans-serif;">Mechanical movements animated: <a href="http://507movements.com/mm_114.html">http://507movements.com/mm_114.html</a> </span><br />
<span style="font-family: Verdana, sans-serif;">Animated engines: <a href="http://www.animatedengines.com/index.html">http://www.animatedengines.com/index.html</a></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: #073763; font-family: Verdana, sans-serif;"><b>Utility:</b></span><br />
<span style="font-family: Verdana, sans-serif;">Sorting algorithms Animated: <a href="http://www.sorting-algorithms.com/">http://www.sorting-algorithms.com/</a></span><br />
<span style="font-family: Verdana, sans-serif;">Compress photos without degrading quality: <a href="http://www.jpegmini.com/">http://www.jpegmini.com/</a></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Java Developer Links: <a href="http://www.cygnet-infotech.com/41-websites-every-java-developer-should-bookmark">http://www.cygnet-infotech.com/41-websites-every-java-developer-should-bookmark</a></span><br />
<span style="font-family: Verdana, sans-serif;">Good Read: <a href="http://money.cnn.com/2013/11/21/leadership/steve-jobs-elon-musk.pr.fortune/index.html">http://money.cnn.com/2013/11/21/leadership/steve-jobs-elon-musk.pr.fortune/index.html</a></span></div>
Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-73951688714322041792014-09-27T22:53:00.000-07:002014-09-27T22:53:41.954-07:00Teaching, Training & Coaching: What's the difference between them?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEittTryIRxZKMvcqGqyQWd8j8bG5w5uK6wNADcySriDrb_8s_CHd4JnjVc5zV3fHIcTVY86rh-XZjpr3mI3HUCPeRzWKjFTF7LHeS4Okf4e_XcG3o327mf1nyylem8sSVRVKkLuvNAk3x0/s1600/teaching.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEittTryIRxZKMvcqGqyQWd8j8bG5w5uK6wNADcySriDrb_8s_CHd4JnjVc5zV3fHIcTVY86rh-XZjpr3mI3HUCPeRzWKjFTF7LHeS4Okf4e_XcG3o327mf1nyylem8sSVRVKkLuvNAk3x0/s1600/teaching.jpg" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">We have come across these terminologies many a times in our day today activities. During our schooling, we were being taught. We had teachers. When we got job and joined an organization, we were trained. There were trainers.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">We have seen many training/tutorial centers. The teaching and training are pretty much same with certain differences. Coaching is what something different than teaching and training. In this short post I'll explain how coaching is different from training/teaching with certain examples.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Well, teaching is vast and is carried out with the intent of guiding people to impart the knowledge on the subject. The students are instructed with examples and accumulated experience by the teachers. Teaching is more of theoretical in nature. The teacher creates awareness among the students on the subject matter to help them better understand the theories. This is what is done in schools/colleges. Teaching is what is done in our academics and it is limited to that. </span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">The training by definition is form by instruction, discipline or to make prepare for a skill or test. This means that the training is more practical than theoretical. It is specific to real world concepts which is immediately required by the participants for doing their job. The professional training involves reshaping the learning that we've got in our academics to the practical /real world problems. Organizations conduct training to their new employees to align them to the goal/vision/mission of that organization. Most the learning that we've got during schooling days may not be applicable here, but is more focused to what problems that organization is trying solve.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Where as coaching is different story and is very effective than teaching and training. Coaching is "putting the participants in the context of the problems, make them realize/feel the problems and prepare them to come up with solutions". Coaching depends solely on the participation of participants. Coach identifies the strength and weaknesses of participants and he/she guides what they can do to improve. So coaching is more individual oriented. </span></div>
</div>
Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-73092368761941152762014-09-27T04:47:00.001-07:002014-09-27T04:47:57.143-07:00You May Not Be The First But You Can Always Be The Best : Finding An Edge In The Market<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-viFHvT0SAe2ljVFEXRkdMEER9sMDe1GQt-jiBC3uoaChlYqqpw9GoFFXaUC5Bq7TPtsG9VT2GUZuejWVY1Hj3EFtvszHnfF9IRJ0Lujj6rSfQNHs49aEm5Gi4mM1AWe_SubGHITiq2E/s1600/images+(1).jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-viFHvT0SAe2ljVFEXRkdMEER9sMDe1GQt-jiBC3uoaChlYqqpw9GoFFXaUC5Bq7TPtsG9VT2GUZuejWVY1Hj3EFtvszHnfF9IRJ0Lujj6rSfQNHs49aEm5Gi4mM1AWe_SubGHITiq2E/s1600/images+(1).jpg" height="200" width="165" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Innovative organizations, people like you always be thinking/doing something new, it could be new product, solution, method, mobile app etc. But if you look at today's world, the idea you are thinking of doing, is already done and available in market or someone is working on the same idea or someone has protected the <a href="http://en.wikipedia.org/wiki/Intellectual_property" target="_blank">Intellectual Property(IP)</a> by filing <a href="http://en.wikipedia.org/wiki/Patent" target="_blank">patents</a>. This is for some people can be a disappointing factor. According to me there is nothing much to worry here and back off. In this article I'll try to explain why we should not get disappointed and how to find a way forward.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">There are examples where many start ups who have failed to be success because the idea they are working on is already there. They have failed by this only factor. And there are also examples wherein certain start ups are indeed success in what they were doing even when some had already done the same thing. If you dig deeper why is this then you will realize that the success is not about just having a great idea and working on it, its about the way its executed. Before getting into the execution part, let tell about what if your idea is already IP protected by some body. Here what people should be doing here is that study the patents carefully. The patents may not cover the exact idea as that of your sometimes. In this case, frame your idea and protect it, you may have to consult IP lawyers for this. Secondly though companies/people have logged patents, but there is no product on that idea in the market due to several reasons. In this case you can go for <a href="http://www.iplcom.jp/patentsandlicensing.html" target="_blank">licensing</a> it. You'll have to pay for this. If you believe that the licensing the idea and making that to the market is really going click, then only you need to go for since it involves monetary aspects.</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Look at the examples. If you take smart phone companies as example, there are many companies that make phones. But yet iPhone is received by the people as the only best smart phone. All phones have the same feature. This tells that its how you make it. There is nothing important than user experience. And user experience is the base for word of mouth advertising.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Apple Inc. recently announced <a href="https://www.apple.com/watch/apple-watch/" target="_blank">Apple Watch</a> and this entered the crowded market, there were many smart wrist watches out there in the market, like pebble, for health monitoring, the FitBit was huge success. Of course there is some brand dominance to some extent, but its the user experience, ease of use is what it matters. Facebook was not the first one to have social networking site. Apple was not the first to bring the smart watch. But yet Apple watch is being received by the people very well.</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">So, <a href="http://en.wikipedia.org/wiki/Perseverance" target="_blank">perseverance </a>is what really matters. Having an idea is just not enough its the continuous execution is what matters. Especially India based start ups face many hurdles due to the fact that different people mindset. Its difficult to convenience them, taking the idea globally may work. Some guidelines are if idea you are working on is already in the market, its not that you stop doing it, but look at the customers using it, what are they saying about the product, list down the cons they are talking about. Remember that we can always make products more easy to use. </span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">So the bottom line is that 'You may not be the first but you can always be the Best'.</span></div>
</div>
</div>
Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-71952404490717270192014-09-22T09:43:00.000-07:002014-09-22T09:43:51.618-07:00Driving Culture Change In An Organization Effectively: Practices & Challenges<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3WYYKcj2xyJrnvWkICHDnxhOs1QXA9clD3zHo8zxJnEdkAi2GzGLK6HvOZ0g3nffGto3lNHKTAb-UG6Wta6mr6uLZie_6Gu9rp2g_HYoTd5rsQTGYaCgj2dvMitA5fCLvCNwxGIaBW20/s1600/images.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3WYYKcj2xyJrnvWkICHDnxhOs1QXA9clD3zHo8zxJnEdkAi2GzGLK6HvOZ0g3nffGto3lNHKTAb-UG6Wta6mr6uLZie_6Gu9rp2g_HYoTd5rsQTGYaCgj2dvMitA5fCLvCNwxGIaBW20/s1600/images.jpg" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Organization culture is built over the period of time influenced by business model, customer interactions, leadership behavior. Since culture is built over time, difficult task to change. However once organization learns that the current culture in not helping achieve business objectives, the change becomes mandatory to cope up with new trends, market developments for the organization to survive and set the standards.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">The cultural change boils down to people behaviors in the organization. We can change the processes easily but it is tough task to change people behavior. Culture change is a business challenge which has to happen collectively by joining hands with each other in organization. Some of the thoughts shared below.</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #073763;">What's the current situation/culture?:</span></span> The current situation needs to be assessed carefully by focused discussions, listing down the people concerns, complaints, thoughts. Sufficient time needs to be spent here writing down all the assessment comments, clearly identifying the gaps, problems, come up with clear, simple vision/intent of the new change.</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span style="color: #073763;">What is the new culture? </span>Set the vision/intent of change needs be clearly mentioned and understood by all. Everyone has to be in agreement with the culture vision. Let all employees understand that and acknowledge & sign it. If any one does not agree to the vision, spend sufficient time talking to the person to understand the different opinion and see there is really a problem/hurdle in change objective.</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span style="color: #073763;">Driving changes:</span> The leadership needs to be decentralized, and as much as possible this has to be bottom up approach. Since any change boils down daily activities performed by employees, the top management may not well understand these bottom level issues. Hence the leadership needs to be decentralized/flattened to better understand, drive the change. Reorganization may not just help.</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8ijMtadsBOvBYYPWbjsTPxZVBEH0c9jvGIGFWeDsr-MZ8BBJFfWWgcvQdH_m2qRWwFUwRTixaGdQFfW0w_7iw3JDVCPR-snfCu02L1nUVisNMxx-Rz96QEe9O5oJAwXNu7Fba9MNegCs/s1600/people.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8ijMtadsBOvBYYPWbjsTPxZVBEH0c9jvGIGFWeDsr-MZ8BBJFfWWgcvQdH_m2qRWwFUwRTixaGdQFfW0w_7iw3JDVCPR-snfCu02L1nUVisNMxx-Rz96QEe9O5oJAwXNu7Fba9MNegCs/s1600/people.jpg" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span style="color: #073763;">Coaching plays an important aspect:</span> To effectively convince the employees, <div class="separator" style="clear: both; text-align: center;">
</div>
they need to understand and realize what's going wrong with current organization culture. This can only be done through coaching and not by training. </span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span style="color: #073763;">Hire an outsider</span> to kick start the organization change, the employees listen to thoughts of a person who has newly joined the organization with vast experience in bringing the change. This simply works but existing employee's attempt to change the culture/process may not be effective or fail subsequently. This is the reason for teaching new processes, the organization hires outside trainers and employees are trained outside the company campus sometimes! </span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span style="color: #073763;">Track timely and closely the changes</span> being deployed. It has to be very clear as to what people should be doing in daily activities since all the changes being driven boil down to daily activities. The change is truly in effect once new culture change becomes part of employees' DNA and no guidance, change drivers required. This is when we truly have self organized people/teams.</span></div>
</div>
<div style="text-align: justify;">
<br /></div>
</div>
Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-57500353963250091522014-09-20T05:31:00.001-07:002014-09-20T05:31:47.274-07:00Internet of Things (IoT) : New Business Opportunities & Challenges<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPXWvqlQsE3wiItL3FjqymsDkkB5KbXbKAOUcvI313LysFV83Ogn36jX57W6TqILtaHwgI3oiw3LZzzOigbplUBn_XPx6IC7ZuU1utldSIu-gs0umDyeJS1kYrQVdq-Jc7hk_y89Jb0TA/s1600/images.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPXWvqlQsE3wiItL3FjqymsDkkB5KbXbKAOUcvI313LysFV83Ogn36jX57W6TqILtaHwgI3oiw3LZzzOigbplUBn_XPx6IC7ZuU1utldSIu-gs0umDyeJS1kYrQVdq-Jc7hk_y89Jb0TA/s1600/images.jpg" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">IoT has been around for many years now and today it is the much talked topic and buzz word today. IoT just means that the "things" have capability to communicate with each other through wireless network technologies such as Wifi, Blue-tooth, <a href="http://en.wikipedia.org/wiki/ZigBee" target="_blank">ZigBee</a>, NFC etc to understand each other and communicate over the internet to each other. The 'things' can be any thing from home appliances, tiny wearable computing devices such as watch, glass, shoes to animals! Yes, you can track and understand your pets through devices tied to your pets.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Internet of things, in-fact its internet of everything is changing the way the internet is being used creating new business opportunities. Some examples of new business opportunities are such as real time monitoring your products, processes which can lead to predictive maintenance and operational efficiency. Your mission critical systems can be more real time and productive. Optimization in your <a href="http://en.wikipedia.org/wiki/Supply_chain_management" target="_blank">supply chain management</a> by having inventory tracking systems in real time. This improves the visibility of the products and processes and thus winning customer royalty. We can have great energy savings by monitoring the device performance. </span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">IoT has impacts in all types of businesses. This is simply because, as of today, there are many gaps which can be filled with IoT solutions. Not all the 'things' at homes communicate without human intervention. The human intervention can be completely avoided by delegating certain decision making processes to a connected device. For Example: The water pumping motor can be started automatically based on the communication from water level monitoring device in the water storage tank. A self learning thermostat such as <a href="https://nest.com/thermostat/life-with-nest-thermostat/" target="_blank">Nest </a>or Lyric turns off the cooling/heating when nobody is there at home.</span></div>
</div>
<div style="text-align: justify;">
<br /></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">IoT has numerous business opportunities in healthcare sector. Patients being at their home are still connected to their doctor. The wearables for patients monitor the patient health data and report to the doctor in real time. So doctors can monitor the patients remotely. When it comes to smart cities, the real advantage of IoT can exploited. The smart street lamps for example can be auto turned off when there are no moving objects there by saving electricity and smart speakers in public can make automatic announcements based the unusual people activities in public etc.</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">The challenges for IoT could be lack of internet connectivity everywhere. Some of the IoT solutions today are not necessarily needed. People can still live without it, however the advantages of IoT based solutions need to be realized by all the stakeholders. Google is already making effort in providing the internet everywhere by having new projects such <a href="http://www.google.co.in/loon/" target="_blank">Google Loon project</a>, Google Internet Drone system etc. The internet usage is not free as of today and hope internet will be made free for all and thus increasing internet users and that's when IoT makes more sense and leads to unlimited business opportunities.</span></div>
</div>
</div>
Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0tag:blogger.com,1999:blog-2953358537082205512.post-67263319975257877572014-09-17T09:27:00.000-07:002014-09-17T09:27:10.233-07:00Wearable Technology: The Next Big Thing In Computing?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNWi9YaN2x7odZNZ2xTB8nIXZEtcKpYddsKXcPPDUfx_NIgi5sxO8D8G5CpAGEhHB8moRceLXezDzYeyYhZqUxMHzjfnK_a4yK1VB0SaSelkguRWcPVHJpyic9VMqFjsskvpj5QIvauWU/s1600/glass.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNWi9YaN2x7odZNZ2xTB8nIXZEtcKpYddsKXcPPDUfx_NIgi5sxO8D8G5CpAGEhHB8moRceLXezDzYeyYhZqUxMHzjfnK_a4yK1VB0SaSelkguRWcPVHJpyic9VMqFjsskvpj5QIvauWU/s1600/glass.jpg" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">There seems to be different wave in the market when computing evolved to wearable technology from mobile computing. With <a href="http://en.wikipedia.org/wiki/Internet_of_Things" target="_blank">Internet Of Things (IoT)</a>, the wearables (wearable devices) are gaining more and more popularity.The use cases are unlimited. Take any type of industry, be it consumer electronics, personal health care such as fitness, home automation, building automation, there are applications of wearables. The wearables could be in any form such as Wrist band/watch, glass, jewellery, belts, clothing, footwear, embedded etc. These wearables communicate and control in real time. This is changing the way people are communicating/sharing with one another boosting the personal relationships. This technology is bringing a kind of togetherness among the distant people. The wearable computing is creating new business opportunities with existing products or new products altogether and we can see companies are investing in this type of computing looking at its market trend. </span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">The reason for this kind of good trend in <a href="http://en.wikipedia.org/wiki/Wearable_technology" target="_blank">wearable technology</a> is mainly because of the availability of low cost sensors consuming less power. The wearables themselves may not have all the required intelligence built in them but they do interact with other devices such as mobile, computer system for further data analytic and get appropriate actions back to wearables. The fact that the devices (home appliances, electronic devices, home/building controls, health care systems) can communicate with each over wireless network such as Wifi, Blue-tooth, <a href="http://en.wikipedia.org/wiki/Bluetooth_low_energy" target="_blank">Blue-tooth low energy (BLE)</a>, <a href="http://en.wikipedia.org/wiki/Near_field_communication" target="_blank">Near Field Communication(NFC)</a> etc.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaxbul8BltooQ0mLnDf2BWsbyZtVUJmfAjGe9BQg4ClwyLB5Vhb8UcEgEdXkz5HTMoRuguYZ0wgD6nT6MZ5Cg_YiGWf8Jipiaqsy732q-qtnF6TifJzuktnJzXLnnmA7N7i23iBKhWHYw/s1600/wrist.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaxbul8BltooQ0mLnDf2BWsbyZtVUJmfAjGe9BQg4ClwyLB5Vhb8UcEgEdXkz5HTMoRuguYZ0wgD6nT6MZ5Cg_YiGWf8Jipiaqsy732q-qtnF6TifJzuktnJzXLnnmA7N7i23iBKhWHYw/s1600/wrist.jpg" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">No doubt that the wearable technology is going to make human life easier, intuitive, productive and enjoying. Some of the examples include, the wrist wearables from <a href="http://www.fitbit.com/" target="_blank">Fitbit</a>, Apple Watch telling how much calories you've burnt, your heart rate, mobile payment (Good news for people who hate to carry too many cards), <a href="https://www.google.com/glass/start/" target="_blank">Google glass</a> putting the information right at your eye taking voice commands as input. The next version of Google glass will be smart contact lenses that monitor your glucose levels in your tears. The diagnostic wearables measure your, heart rate, ECG, blood pressure etc. Some wearables take gestures as input for processing. The uses are unlimited and left to your imaginations.</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">While wearable computing is gaining popularity and having good trends, there are challenges to tackle. The power for all wearables is a major challenge. This can be little relaxed if the wearable works on BLE that may run on a coin cell. Apart from this, there can be solar powered wearables. The next challenge is that are wearables increasing our day to day work such as people need to deal with many gadgets such as computer system, phone, tablet, etc. However looking at the advantages these limitations are not severe.</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<br /></div>
</div>
Technohttp://www.blogger.com/profile/14095323815209780268noreply@blogger.com0