Welcome to curated list of handpicked free online resources related to IT, cloud, Big Data, programming languages, Devops. Fresh news and community maintained list of links updated daily. Like what you see? [ Join our newsletter ]

Build a Node.js tool to record and compare Google Lighthouse reports

Categories

Tags web-development open-source nodejs

In this tutorial, Luke Harrison shows you step by step how to create a simple tool in Node.js to run Google Lighthouse audits via the command line, save the reports they generate in JSON format and then compare them so web performance can be monitored as the website grows and develops.

If a previous report already exists for the same website when a Lighthouse audit is complete, automatically perform a comparison against it and show any changes to key performance metrics.

The article is split into these sections:

  • What is Google Lighthouse?
  • Setup
  • Opening Chrome with Node.js
  • Running Lighthouse programmatically
  • Saving Lighthouse reports
  • Comparing Lighthouse reports

… and much more. You will also get complete source code for this detailed tutorial. Superb!

[Read More]

Attack matrix for Kubernetes

Categories

Tags devops kubernetes software-architecture containers golang

Security research software engineer Yossi Weizman put together this guide for considering new security challenges when moving workloads to Kubernetes.

The MITRE ATT&CK® framework is a knowledge base of known tactics and techniques that are involved in cyberattacks. Started with coverage for Windows and Linux, the matrices of MITRE ATT&CK cover the various stages that are involved in cyber attacks (tactics) and elaborate the known methods in each one of them (techniques).

MITRE ATT&CK framework tactics include:

  • Initial access
  • Execution
  • Persistence
  • Privilege escalation
  • Defense evasion
  • Credential access
  • Discovery
  • Lateral movement
  • Impact

When Azure Security Center started to map the security landscape of Kubernetes, they noticed that although the attack techniques are different than those that target Linux or Windows, the tactics are actually similar. To get full picture read this excellent article in full!

[Read More]

GitOps using Helm3 and Flux for Node.js and Express.js Microservice

Categories

Tags devops kubernetes software-architecture containers golang

In this tutorial author will show you how to build a GitOps pipeline for a Node.js application built with Express.js. The application was created in an earlier tutorial. Rather than deploying new versions manually, flux will deploy it to Kubernetes whenever a build of the Docker image is available. By Alex Ellis.

The article also goes through:

  • Why FluxCD and what are the alternatives?
  • How to get and run Kubernetes cluster
  • How to get and install Helm 3
  • Sample app, config repo and HelmRelease
  • Automate deployments for new versions

At the end of the tutorial, every new version of our app will be automatically updated in the cluster. What’s more, if we delete our cluster by accident, we can recover quickly because all of our resources are defined in our Git repository. This means we can easily re-create them in a new cluster.

You will also get plenty of links to further resources and link to GitHub repository with all the code. Also check an earlier tutorial for the app deployed: Guide to Helm 3 With an Express.js Microservice. Marvelous!

[Read More]

Kubernetes Canary deployment with Gitlab CI

Categories

Tags devops kubernetes software-architecture containers

We’re using GitlabCI and a manual GitOps approach to implement and perform Canary Kubernetes deployments. They use a manual approach and alter/create core-Kubernetes resources to perform a Canary deployment. This is mainly for understanding how a Canary deployment works. By Kim Wuestkamp.

In a Canary deployment, new changes are first deployed to a subset of users. Through monitoring, logging, manual testing or other feedback channels the release is tested before it is rolled out to all users.

The default strategy for a Kubernetes Deployment is rolling-update, where a certain number of pods with the new image version are spun up. If these were created without issues, pods of the old image version are terminated and new pods are created simultaneously.

Also in this article:

  • GitOps – Git as single source of truth
  • Example with
    • Application repo
    • Infrastructure repo
    • Infrastructure yaml
  • How to perform initial deployment
  • How to perform a Canary deployment

Running through this kind of deployment manually helps understanding how easily this can be configured using kubernetes. The author has more interesting articles on this topic, so please follow the link to full text. Nice one!

[Read More]

Graphql vs REST: Which one is better? (2020)

Categories

Tags apis nodejs web-development software-architecture

When you need to build an API, your mind will likely jump to REST, the de facto standard for API creation. However, this is changing with the increase of GraphQL popularity. This post was originally posted in May 2019 and updated in March 2020. Published by João Inez on imaginarycloud.com.

The goal is to provide a brief explanation to anyone who still hasn’t got to know GraphQL, clarify exactly what it does better than REST, for those who are still skeptic about this technology and in which cases we should use GraphQL or REST.

The article reads about GraphQL’s main features and the advantages that it has over REST, highlighting a few points in which both differ. GraphQL is a query language for APIs that enables declarative data fetching in order to give the client the power to specify exactly the data that is needed from the API. It makes easier to evolve APIs over time.

The main sections of the article:

  • What is GraphQL
    • Who created GraphQL
    • Which companies use GraphQL
    • GraphQL in context
  • What is REST
  • Why WAS GraphQL created if there’s already REST
  • Why GraphQL is better than REST

… and much more. GraphQL provides a smooth and fast development environment with its declarative and flexible nature, offering many improvements over REST. Excellent read!

[Read More]

Serverless Service Mesh with Knative and Linkerd

Categories

Tags serverless kubernetes devops gcp containers

Charles Pretzer wrote this piece about how to use Linkerd with Knative. Two of the most popular serverless platforms for Kubernetes are Knative and OpenFaaS, and there’s a lot of existing content on using Linkerd and OpenFaaS together.

While the first version of Knative required Istio, in recent Knative releases they have removed this requirement. Author will show you how to add Linkerd to your Knative installation to automatically provide both mTLS (mutual TLS) and comprehensive metrics to your Knative services and system components.

The following steps are described in the article:

  • Setup
  • Install Knative Serving
  • Install Ambassador
  • Running a Simple Knative Service
  • Installing the Linkerd Service Mesh
  • Inject the Linkerd Proxy

.. and more. Plenty of CLI examples included. The Ambassador API Gateway (Kubernetes API Gateway + Layer 7 Load Balancer + Kubernetes Ingress and more) handles ingress traffic to a Kubernetes cluster. In this example, we will use Ambassador as a simple Kubernetes Ingress to the KinD cluster. Sweet!

[Read More]

Setting SSL/TLS protocol versions with PostgreSQL 12

Categories

Tags infosec database devops performance servers

Straight to the point tutorial about setting SSL/TLS protocol versions in open source database PostgresQL. Published by Peter Eisentraut.

PostgreSQL 12 contains two new server settings:

  • ssl_min_protocol_version
  • ssl_max_protocol_version

As the names indicate, these are used to control the oldest (minimum) and newest (maximum) version of the SSL and TLS protocol family that the server will accept.

For historical reasons, in PostgreSQL, all settings related to SSL and TLS are named ssl_something, even though TLS is the currently correct term. Which TLS versions PostgreSQL supports also depends on what the OpenSSL library in use supports. All releases under the “OpenSSL” label (as opposed to the predecessor “SSLeay”) support at least TLS 1.0.

By default, PostgreSQL server and client leave the negotiation of the TLS version up to the SSL library. They will negotiate a TLS version between 1.0 and 1.3 transparently and use the latest one that both sides support.

For details steps how can you check what TLS versions you are currently using, commands examples and more – follow the link to this excellent tutorial!

[Read More]

How to work from home: 20 tips from people who do it successfully

Categories

Tags agile career cloud distributed

Working from home is awesome … right up until the cat throws up on your computer. And your neighbor, who you can only assume is building a time machine, starts firing up all sorts of power tools and noisy machinery across the street. Written by Erik Devaney.

For many modern professionals, working from home every once in a while is a luxury that our respective companies afford us. But which environment actually allows us to be more productive: the home office or the office office?

At the home office, however, I find that it’s easy for you to become your own worst enemy. Because when you’re not surrounded by coworkers, you’re free to drop those pesky inhibitions. At the home office, no one’s watching. You don’t necessarily feel that same peer pressure or communal obligation to get stuff done. When I work from home, I wake up, put on a pot of coffee, and start working immediately – much earlier normal working hours.

The article covers:

  • Get started early
  • Pretend like you are going into the office
  • Structure your day like you would in the office
  • Choose a dedicated work space
  • Don’t stay at home

To learn the rest please follow the link to the author’s article. Nice one!

[Read More]

Data structures and algorithms in Java: A beginner's guide

Categories

Tags java programming web-development jvm

Learn all about array and list data structures in Java, and the algorithms you can use to search and sort the data they contain. By Jeff Friesen.

Data structures are based on abstract data types (ADT), which Wikipedia defines as follows:

[A] mathematical model for data types where a data type is defined by its behavior (semantics) from the point of view of a user of the data, specifically in terms of possible values, possible operations on data of this type, and the behavior of these operations.

This tutorial series is a beginner’s guide to data structures and algorithms in Java. You’ll learn:

  • How to recognize and use array and list data structures in your Java programs.
  • Which algorithms work best with different types of array and list data structures.
  • Why some algorithms will work better than others for your specific use case.
  • How to use time and space complexity measurements to choose the most efficient algorithm for your use case.

This is five part tutorial with excellent overview and explanation how more you understand about data structures and algorithms, and how they work together, the more efficient your Java programs will be. Brilliant!

[Read More]

Sprint goal template

Categories

Tags agile teams cicd management

The Sprint Goal is mentioned numerous times in the Scrum Guide, however it can be overlooked by many teams or seen as an “oh yeah” moment when teams are finishing Sprint Planning. By Steve Trapps.

When I started out in a Scrum Team we never really had a Sprint Goal, our focus tended to be looking at the items in the backlog then saying “Get that done and that one, if not all of them!”… Teams I have worked in have struggled to create a meaningful goal, i.e. one that people can read and easily understand without it being too prescriptive on what the team needs to do.

One purpose of the Sprint Goal is to provide focus to the Development Team during the Sprint. If the goal is just a set of items to complete then chances are the team will work in isolation from each other, as each person works on an item with potentially the team pulling in different directions. – Not a great place to be in!

Follow the link to original article to actually see the well tested template. Excellent!

[Read More]