Tuesday, May 31, 2022

Katalon Studio

 Katalon Studio

Installation:

Download tool from www.katalon.com

Intro:

A low-code platform for web, api, mobile and desktop for automated testing.

Exploring product from an end-user POV and making sure existing features stay functional with every new code change.

Katalon studio is ready-made and has a regularly updated framework. The ready to use features are:

  • Intuitive UI
  • Page Object Model Design (for better management of web elements)

Katalon studio also comes with a large library of built-in keywords and three methods to create automated tests:

  1. codeless option with record and playback (macro)
  2. manual mode using drag and drop
  3. script mode for programmers (java language)

Katalon supports cross-platform execution: cross browser and devices as well as headless mode.

In which after tests are executed, a log viewer will be available for quick look at test results which later can be exported to pdf or html.

It also provides monitoring and analytical of pass and fail patterns, execution trends over time (This is called TestOps).

Katalon studio is also a stress-free test maintenance as you can just organize and manage your tests by putting in test suites and then store it in the test suite collection.


Katalon studio Top Features:

1. Codeless Mode: Record and Playback

- record the actions (e.g login, register, mock)

- converts the recording into runnable test scripts

- with the playback feature, you can run the script on different platforms or browsers.


2. Manual Mode

- drag and drop and pick from the list of built-in keywords to create and update tests easily.


3. Scripting Mode

- develop your own custom keywords

- content assist utils are present to help speed up the process


4. BDD (Behavior-driven Development): keep stakeholders on the same page using Given-When-Then.

- to maintain relation between non-tech business reps and the rest of the tech team, streamlined.

- using Gherkin language, the code and technical materials will be translated into business level language and an easier to understand format


5. Smart Wait: Handle web loading and timing issues

- sometimes opensource library and tools take up time to look into and handle flaky test cases due to item not found error, so with smart wait, each of the test steps automatically waits until the objects or webpage are fully loaded and able to interact with before proceeding further to the ones after.


6. Data Driven Testing: Expand coverage with diverse data inputs

- allows to use the same test case to run against diff input data that exists in external files such as excel or internal data created in katalon studio or from the organization's database.

- this is to attain a sufficient level of test coverage for projects at scale.

- other data sources like microsoft sql server, oracle or any dbms is also available by using the java database connectivity. Katalon studio allows to combine multiple data sources for the test scripts to read.


7. Self-Healing


8. Debugging Mode

- toggle debugging mode to know the exact step that is responsible for it's failure thereby saving time to troubleshoot compared to the ui mode.


9. Test Artifact sharing: easily transfer and reuse test assets across projects

- test artifacts are: test cases, objects, profiles, customized keywords.

- test artifacts can be imported into a different project.

- test artifact sharing can also backup the test objects before removing them from the repository.


10. Object refactoring: Improve project maintainability and organization

- on top of creating new tests, previously created tests also need to be updated and maintained or modified. If not maintained, this will result in an orphan test case and introduce a flakiness in the test cases. So in order to decrease the flakiness rate and the overall duration to build projects, Katalon Studio scans, sorts and categorizes the unused objects, keeping the repo neat and tidy.


11. Test Reporting: Full transparency to software quality for the whole team.

- Either using the log viewer and export results to pdf, html or csv file for on-the-fly fixes.

- or by connecting and pushing everything on Katalan TestOps (the katalon studio's advanced built-in reporting and test orchestration platform). After which test results and trends of the software performance can be viewed over time.

- there are alot of other metrics to identify flaky or stale test cases.


12. Continous Testing

Katalon studio supports native integration with many cicd tools to act as the trusty quality gate to create automated api end end-to-end regression tests 

Wednesday, May 25, 2022

CHEAT SHEET: MYSQL, DYNAMODB, POSTGRES COMMAND

 








BMC Truesight




BMC TrueSight Operations Management is an analytics-driven performance management solution that proactively identifies and resolves availability and performance problems across hybrid IT environments.

BMC Remedy




BMC Remedy ITSM is a service management tool that automates the ITIL process in the modern era. They support various forms of service tickets by which users can create requests that flow to other systems within an organization. Currently, RiskSense supports creating tickets in the form of Incidents.


IT service management (ITSM) is a set of policies and practices for implementing, delivering and managing IT services for end users in a way that meets the stated needs of end users and the stated goals of the business. For this definition, end users can include employees, customers or business partners.


ITIL (Information Technology Infrastructure Library) is a framework designed to standardize the selection, planning, delivery, maintenance and overall lifecycle of IT services within a business. The goal is to improve efficiency and achieve predictable service delivery.




BMC Control-M



Control-M simplifies application and data workflow orchestration on premises or as a service. It makes it easy to build, define, schedule, manage, and monitor production workflows, ensuring visibility, reliability, and improving SLAs.




Monitor Production Batch jobs using CTRL-M which includes report generation, loading and processing of critical data
used by the Application and ensure that it is completed within SLA.



Complex application workflows? Problem solved.

  • Accelerate new business applications into production—by embedding workflow orchestration into your CI/CD pipeline
  • Scale Dev and Ops collaboration, with a Jobs-as-Code approach
  • Simplify workflows across hybrid and multi-cloud environments with AWS, Azure, and Google Cloud Platform integrations
  • Deliver data-driven outcomes faster, managing big data workflows in a scalable way
  • Take control of your file transfer operations with integrated, intelligent file movement and visibility
  • Considering SaaS? Check out BMC Helix Control-M


Application workflow orchestration meets operational standards





Splunk



Splunk is the data platform software that powers enterprise's observability, unified security and limitless custom applications in hybrid environments.


What is Splunk used for?

  • Splunk is used for monitoring and searching through big data which is pulled from various sources and accepts data in any format. 
  • It indexes and correlates information in a container that makes it searchable, and makes it possible to generate alerts, reports and visualizations.
  • It has a huge market in the IT infra and business.


Why is Splunk so popular?

  • It is Scalable and has no Backend
  • This makes Splunk available on multiple platforms and can be installed speedily on any software. If one server is not enough another can be added easily and data is distributed across both these servers evenly.


What is the difference between Splunk and Tableau?

  • Splunk is used to monitor all machine activities including logins and actions taken on those machines under each user.
  • Tableau provides pattern-based visualizations under a huge pile of data, on a real-time basis.

Splunk Dashboard
  • made up of panels.
  • A panel can contain modules such as  search boxes, fields, charts, tables and lists
  • A dashboard panel is usually connected to reports
  • there will be a Dashboard Editor to create and edit dashboard.
  • The Dashboard Editor can be used to quickly add set of saved reports to a dashboard.

Operations on Splunk Dashboard
  • change dashboard permissions or roles.
  • change dashboard panel visualizations.
  • edit the XML config of a dashboard.

Splunk Dashboard App
  • a new and advanced feature to give a new visual editing experience for building dashboard.
  • 2 new workflows.
  • absolute and grid layouts.
  • visualizations in both single instances and distributed environments.



app can export selected individual visualizations and can export to png image or pdf format. while classic only in pdf.



Installing Splunk

1. Create Splunk Account
2. 



BlackDuck



 Black Duck is a complete open source management solution, which fully discovers all open source in your code. It can map components to known vulnerabilities, and identify license and component quality risks.



Thursday, May 19, 2022

JAVA Spring Boot Tutorial



References:

Prerequisites

To get the most out of the tutorial, you should be comfortable using the Java Development Kit, version 8 (JDK 8). You'll also need to be familiar with Eclipse IDE, Maven, and Git.

To follow along with the tutorial, be sure this software is installed:

Spring-Starters

Starters are a big part of the magic of Spring Boot, used to limit the amount of manual dependency configuration that you have to do. If you're going to use Spring Boot effectively, you should know about starters.

A starter is essentially a set of dependencies (such as a Maven POM) that are specific to the type of application the starter represents.

All starters use the naming convention spring-boot-starter-XYZ, where XYZ is the type of application you want to build. Here are some popular Spring Boot starters:
  1. spring-boot-starter-web is used to build RESTful web services using Spring MVC (Model-View-Controller design pattern. It implements all the basic features of a core spring framework like Inversion of Control, Dependency Injection) and Tomcat as the embedded application container.
  2. spring-boot-starter-jersey is an alternative to spring-boot-starter-web that uses Apache Jersey rather than Spring MVC.
  3. spring-boot-starter-jdbc is used for JDBC connection pooling. It's based on Tomcat's JDBC connection-pool implementation.

Learn What You Can Do with Spring Boot

Spring Boot offers a fast way to build applications. It looks at your classpath and at the beans you have configured, makes reasonable assumptions about what you are missing, and adds those items. With Spring Boot, you can focus more on business features and less on infrastructure.


Tutorial
  1. setting up and running a simple Spring Boot application called HelloSpringBoot
  2. build and exercise a Spring MVC RESTful web services application using Spring Boot



JAVA SPRINGBOOT




Java Spring Boot simplifies development of web applications and microservices with Java Spring Framework.


Java Spring Framework (Spring Framework) is a popular, open source, enterprise-level framework for creating standalone, production-grade applications that run on the Java Virtual Machine (JVM).

Java Spring Boot (Spring Boot) is a tool that makes developing web application and microservices with Spring Framework faster and easier through three core capabilities:
  1. Auto-configuration
  2. An opinionated approach to configuration
  3. The ability to create standalone applications
These features work together to provide you with a tool that allows you to set up a Spring-based application with minimal configuration and setup.


Why is Spring Framework so popular?

Spring Framework offers a dependency injection feature that lets objects define their own dependencies that the Spring container later injects into them. This enables developers to create modular applications consisting of loosely coupled components that are ideal for microservices and distributed network applications.

Spring Framework also offers built-in support for typical tasks that an application needs to perform, such as:
  • data binding, 
  • type conversion, 
  • validation, 
  • exception handling, 
  • resource and event management, 
  • internationalization, 
  • and more. 

It integrates with various Java EE technologies such as:
  • RMI (Remote Method Invocation), 
  • AMQP (Advanced Message Queuing Protocol), 
  • Java Web Services, 
  • and others. 

In sum, Spring Framework provides developers with all the tools and features the need to create loosely coupled, cross-platform Java EE applications that run in any environment.


What Spring Boot adds to Spring Framework?

Spring Boot basically makes it easy by mitigating the process with three important capabilities.

  • Autoconfiguration
Autoconfiguration means that applications are initialized with pre-set dependencies that you don't have to configure manually. As Java Spring Boot comes with built-in autoconfiguration capabilities, it automatically configures both the underlying Spring Framework and third-party packages based on your settings (and based on best practices, which helps avoid errors). Even though you can override these defaults once the initialization is complete, Java Spring Boot's autoconfiguration feature enables you to start developing your Spring-based applications fast and reduces the possibility of human errors.

  • Opinionated approach
Spring Boot uses an opinionated approach to adding and configuring starter dependencies, based on the needs of your project. Following its own judgment, Spring Boot chooses which packages to install and which default values to use, rather than requiring you to make all those decisions yourself and set up everything manually.

You can define the needs of your project during the initialization process, during which you choose among multiple starter dependencies—called Spring Starters—that cover typical use cases. You run Spring Boot Initializer by filling out a simple web form, without any coding.

For example, the ‘Spring Web’ starter dependency allows you to build Spring-based web applications with minimal configuration by adding all the necessary dependencies—such as the Apache Tomcat web server—to your project. ‘Spring Security’ is another popular starter dependency that automatically adds authentication and access-control features to your application.

Spring Boot includes over 50 Spring Starters, and many more third-party starters are available.

  • Standalone applications
Spring Boot helps developers create applications that just run. Specifically, it lets you create standalone applications that run on their own, without relying on an external web server, by embedding a web server such as Tomcat or Netty into your app during the initialization process. As a result, you can launch your application on any platform by simply hitting the Run command. (You can opt out of this feature to build applications without an embedded Web server.)





Saturday, May 14, 2022

C# / C Sharp

 


Agenda:

  1. C# vs .NET
  2. CLR (Common Language Run-Time)
  3. Architecture of .NET Applications
  4. First C# Application

1. C# vs .NET (both are products from Microsoft)

C# is programming language, .NET is a framework for building apps in windows. Therefore .NET framework is not limited to C# as many other languages can use .NET framework and build apps (e.g F sharp or VB.NET)

.NET framework consists of 2 components:
    1. CLR (Common Language Runtime)
    2. Class Library for building apps

What is CLR?
Before C sharp, there were 2 C languages: C and C++.
When using C or C++, the code needs to be compiled so a compiler will translate the code into a native code for the machine on which it is running on.

so in C sharp, it borrowed the idea of JAVA, when a JAVA code is compiled, it is not translated rather it is 

Tuesday, May 10, 2022

DEVSECOPS: Jenkins Typical 9 Configurations

 


Agenda:

  1. Pre-requisite
  2. Configurations
  3. Users and Permissions
  4. Build Jobs (Freestyle jobs) & Schedule Jobs
  5. Integrate GitHub
  6. SMTP configuration for sending emails
  7. Deploy Maven based webapp to Tomcat Server
  8. Distributed build: Master - Slave Configuration and Setup
  9. Backing up Jenkins

1. Pre-Requisite
  • Java, JDK (to run war file, java -jar <warfile>)
  • 2GB Ram
  • Set environment variable JAVA_HOME to point to JDK base directory. (this is important as all opensource projects discover themselves by using the environment variables).

2. Configurations
  • Jenkins root folder (where jenkins stores all config data, jobs and project workspace)
  • when going into localhost:8080, you will need to unlock Jenkins
  • Suggested Plugins (install recommended plugins)
  • Create first admin user

3. Users and Permissions

To create roles:
  • Click Manage Jenkins
  • Go to Plugin Manager
  • search for "Role-based Authorization Strategy"
  • Check, install without restart
  • To see plugin, click Manage Jenkins go to configure global security and you will see "role-based strategy" option.
  • Once checked and saved, Manage and Assing Roles under the Manage Jenkins will appear.

To create users and assign roles:
  • click Manage Jenkins
  • click Manage Users
  • click Create User
  • click Assign roles
  • add the user then assign the roles
4. Build & Schedule Jobs
  • to build is simple.
  • for schedule jobs, need to use RegEx (e.g * * * * * means every minute).

5. Integrate GitHub/AWS/Docker Instance/SonarQube
  • need to install plugins.
  • Jenkins is nothing without plugin.
  • just google the plugin and you will find an index page of jenkins plugins.
  • when doing jobs, under the "source code management" tab, select Git and fill in all the needed things. For credentials, use the jenkins username and password.
  • For Build. add build step, in the execute windows batch command, type:
    • javac <nameofjavafile> #compile 
    • java Hello  #execute
7. Deploy Maven based webapp to Tomcat Server
  • download maven
  • download apache tomcat server
  • create a user on tomcat by going to tomcat-users.xml by adding <user username="deployer" password="deployer" roles="manager-script"/> 

DEVSECOPS: Jenkins Features & Architecture

 


Jenkins remove the development delays and decrease the amount of problems in the project.

Power Developing: 2 Developers sitting next to each other, coding based on the same piece of information to continuously develop and test their code.

So Jenkins basically expands this concept of power developing to the entire team where a developer can consistently submit their code into a source code environment. This is Continuous Integration.



what is a CI server?


So the developers will submit their code to the CI server where the server will run tests based on what a devops engineer has configured in it. Then it will be passed to a tester team that will check on compliance, if it is ok, then the code will be sent to a release and deploy team (the next section of devops - continuous delivery).



Jenkings Features:

  1. Jenkins is a self contained java program, ready to run on win,mac,linux.
  2. Jenkins is easy to set up and configured via web interface.
  3. Jenkins has hundreds of plugins in the Update Center and integrates with EVERY tools in CICD.
  4. Jenkins can be extended via its plugin architecture (you are extending jenkins not making a version of jenkins).
  5. Jenkins can easily distribute work across multiple machines helping in fast builds, test, deployment across multiple platforms.


Jenkins Architecture:


Maven and Selenium are plugins in Jenkins (Similar to Maven which has dependency such as JUnit).
But there is one limitation in Jenkins:
- What if the developers are developing different language code builds (PHP, HTML, Node.JS)? Jenkins server does not allow multiple code builds to be executed in a single server. you need a multiple server for this!
So there is a....jenkins master slave architecture.

Jenkins Master-Slave Architecture


Similar to Kubernetes

Monday, May 9, 2022

DEVSECOPS: Jenkins Installation

 


Where do Jenkins fall into the CICD Pipeline?



How to Install Jenkins?

1. Install JDK (Java Development Kit)

google jdk and download


2. Set Environment Variable for JDK

set environment variable and change PATH variables

copy the bin location

and check if java is installed via cmd (java -version)


3. Download and Install Jenkins

google jenkins and install jenkins for windows


4. Run Jenkins on localhost:8080

open web browser and type localhost:8080


Observe the Interface


1. New Item: to create a new project (either maven project or pipeline or folder, Github, Multibranch Pipeline)

2. Build History: shows the status of your build.

3. Manage Jenkins: Configure the system, security, credentials, download plugins, system log


Build and Run jobs on Jenkins

Step 1: Click on New Item, Give it the project a name and choose which project. In this job, we use Freestyle Project.

Step 2: Under General Tab, give this job a description.

Step 3: Under Build Environment Tab, give some windows command

echo "Hello World : %date% %time% ".

Step 4: Click apply and then save.

Step 5: After the job is created, let's build it by clicking on build now. (a build history will be auto created).

Step 6: on the build history tab, click on the job then click on console output.

DEVSECOPS: Prometheus Monitoring on Kubernetes

 


Prometheus

Prometheus is an open-source monitoring framework. It provides out-of-the-box monitoring capabilities for the Kubernetes container orchestration platform.

Metric Collection: Prometheus uses the pull model to retrieve metrics over HTTP.

Metric Endpoint: The systems that you want to monitor using Prometheus should expose the metrics on an /metrics endpoint. Prometheus uses this endpoint to pull the metrics in regular intervals

PromQL: Prometheus comes with PromQL, a very flexible query language that can be used to query the metrics in the Prometheus dashboard. Also, the PromQL query will be used by Prometheus UI and Grafana to visualize metrics.

Prometheus Exporters: Exporters are libraries that convert existing metrics from third-party apps to Prometheus metrics format. 

TSDB (time-series database): Prometheus uses TSDB for storing all the data. By default, all the data gets stored locally. However, there are options to integrate remote storage for Prometheus TSDB.


Prometheus Monitoring Setup on Kubernetes

I assume that you have a Kubernetes cluster up and running with kubectl setup on your workstation.

Connect to your Kubernetes cluster and make sure you are having admin privileges. 


Step 1:

First, we will create a Kubernetes namespace for all our monitoring components. If you don’t create a dedicated namespace, all the Prometheus kubernetes deployment objects get deployed on the default namespace.

kubectl create namespace monitoring


Step 2:

Prometheus uses Kubernetes APIs to read all the available metrics from Nodes, Pods, Deployments, etc. For this reason, we need to create an RBAC policy with read access to required API groups and bind the policy to the monitoring namespace.

Create a file clusterRole.yaml

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: prometheus
rules:
- apiGroups: [""]
  resources:
  - nodes
  - nodes/proxy
  - services
  - endpoints
  - pods
  verbs: ["get", "list", "watch"]
- apiGroups:
  - extensions
  resources:
  - ingresses
  verbs: ["get", "list", "watch"]
- nonResourceURLs: ["/metrics"]
  verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: prometheus
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: prometheus
subjects:
- kind: ServiceAccount
  name: default
  namespace: monitoring

Execute the file which creates role and role binding on cluster level for default service account in monitoring namespace.

kubectl create -f clusterRole.yaml


Step 3:

Create a Config Map To Externalize Prometheus Configurations

All configurations for Prometheus are part of prometheus.yaml file and all the alert rules for Alertmanager are configured in prometheus.rules

prometheus.yaml: This is the main Prometheus configuration which holds all the scrape configs, service discovery details, storage locations, data retention configs, etc).

prometheus.rules: This file contains all the Prometheus alerting rules.

By externalizing Prometheus configs to a Kubernetes config map, you don’t have to build the Prometheus image whenever you need to add or remove a configuration. You need to update the config map and restart the Prometheus pods to apply the new configuration.

The config map with all the Prometheus scrape config and alerting rules gets mounted to the Prometheus container in /etc/prometheus location as prometheus.yaml and prometheus.rules files.

 Create a file called config-map.yaml and copy the file contents from here Prometheus Config file

 Execute the following command to create the config map in Kubernetes.

kubectl create -f config-map.yaml


Step 4:

Create a Prometheus Deployment

 Create a file named prometheus-deployment.yaml and copy the following contents onto the file. In this configuration, we are mounting the Prometheus config map as a file inside /etc/prometheus

apiVersion: apps/v1
kind: Deployment
metadata:
  name: prometheus-deployment
  namespace: monitoring
  labels:
    app: prometheus-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: prometheus-server
  template:
    metadata:
      labels:
        app: prometheus-server
    spec:
      containers:
        - name: prometheus
          image: prom/prometheus
          args:
            - "--storage.tsdb.retention.time=12h"
            - "--config.file=/etc/prometheus/prometheus.yml"
            - "--storage.tsdb.path=/prometheus/"
          ports:
            - containerPort: 9090
          resources:
            requests:
              cpu: 500m
              memory: 500M
            limits:
              cpu: 1
              memory: 1Gi
          volumeMounts:
            - name: prometheus-config-volume
              mountPath: /etc/prometheus/
            - name: prometheus-storage-volume
              mountPath: /prometheus/
      volumes:
        - name: prometheus-config-volume
          configMap:
            defaultMode: 420
            name: prometheus-server-conf
 
        - name: prometheus-storage-volume
          emptyDir: {}

Execute above deployment

kubectl create  -f prometheus-deployment.yaml 

You can check the created deployment using the following command.

kubectl get deployments --namespace=monitoring


Step 5:

Access the deployment by using NodePort service

Create a file named prometheus-service.yaml and copy the following contents. We will expose Prometheus on all Kubernetes node IPs on port 30000.

apiVersion: v1
kind: Service
metadata:
  name: prometheus-service
  namespace: monitoring
  annotations:
      prometheus.io/scrape: 'true'
      prometheus.io/port:   '9090'
spec:
  selector:
    app: prometheus-server
  type: NodePort  
  ports:
    - port: 8080
      targetPort: 9090
      nodePort: 30000

Execute this service to Access Prometheus Dashboard

kubectl create -f prometheus-service.yaml --namespace=monitoring


Step 6: 

Go to browser and access the Prometheus Dashboard on port number 30000


DEVSECOPS: Kubernetes with Grafana

 


Grafana:

It is a visualization tool to provide graphical representation for monitoring services like Prometheus.

Steps to install Grafana on the Kubernetes environment.


Step 1:

Create a file named grafana-datasource-config.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: grafana-datasources
  namespace: monitoring
data:
  prometheus.yaml: |-
    {
        "apiVersion": 1,
        "datasources": [
            {
               "access":"proxy",
                "editable": true,
                "name": "prometheus",
                "orgId": 1,
                "type": "prometheus",
                "url": "http://prometheus-service.monitoring.svc:8080",
                "version": 1
            }
        ]
    }

Execute the script

kubectl create -f grafana-datasource-config.yaml


Step 2

Create a file named deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: grafana
  namespace: monitoring
spec:
  replicas: 1
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      name: grafana
      labels:
        app: grafana
    spec:
      containers:
      - name: grafana
        image: grafana/grafana:latest
        ports:
        - name: grafana
          containerPort: 3000
        resources:
          limits:
            memory: "1Gi"
            cpu: "1000m"
          requests:
            memory: 500M
            cpu: "500m"
        volumeMounts:
          - mountPath: /var/lib/grafana
            name: grafana-storage
          - mountPath: /etc/grafana/provisioning/datasources
            name: grafana-datasources
            readOnly: false
      volumes:
        - name: grafana-storage
          emptyDir: {}
        - name: grafana-datasources
          configMap:
              defaultMode: 420
              name: grafana-datasources

Execute the script

kubectl create -f deployment.yaml


Step 3:

Create a service file named service.yaml

apiVersion: v1
kind: Service
metadata:
  name: grafana
  namespace: monitoring
  annotations:
      prometheus.io/scrape: 'true'
      prometheus.io/port:   '3000'
spec:
  selector:
    app: grafana
  type: NodePort  
  ports:
    - port: 3000
      targetPort: 3000
      nodePort: 32000

Execute the script

kubectl create -f service.yaml


Now you should be able to access the Grafana dashboard using any node IP on port 32000. Make sure the port is allowed in the firewall to be accessed from your workstation.


http://<your-node-ip>:32000

Thursday, May 5, 2022

DEVSECOPS - Cloud Architect Skills


To become a cloud architect, you need to have more people skills in contrast to technical skills, while tech skill is important too as we are dealing with the tech, people skills are essential in becoming a good architect.

so what do architects do?

  • design, document, sell
  • lead, translate, customer relationship management
  • project management, client entertainment

1. Design (by understanding the business)
system design, end-to-end design. build based on inputs from client:
  1. business goals/objectives?
  2. pain points?
  3. vision?
  4. are there other competitors and what are they doing?
  5. budget?
2. Documentation
25% of the work is documenting.
easy to understand document for non-tech executives.
deep technology document for tech people.

3. Sell
Must have sales skills. selling solutions to customers. selling internal management to say we need manpower. Sell to upper management to implement solution. 
Risk, Cost, Propose, get Buy Ins

4. Lead
architects are director levels or above positions.
leading and managing other people's employees.

5. Translate
need to have the business acumen/knowledge to be able to translate the input from client side into tech solution.
ask questions, get the baseline of the client's organization current systems.
bring in a team of cloud engineers to baseline the systems (what are their CPU and Memory utilization, how many systems, etc.) therefore cloud engineers need more knowledge on how to do the things
 
6. Customer relationship management
You're only as strong as your weakest link in your team.

7. Project Management
as an architect, you basically are managing alot of different projects.
each project will have a PoC, a it needs to be done, thus you will require good project managment skills because on top of PoC, you might be needing to do manage a third-party solution such as Cisco or Fortinet to help design for your customer, a better solution.

8. Entertain Clients
Lunch and dinners to entertain clients. develop deep relationship with clients cause sometimes you are on a 16-hour project so you will need some time to talk.

Fluentd

Open-source log data collector > why logs? - for compliance (auditing, company, business) - for security (transparency, monitoring, admin...