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 ]

How to create a personal leadership development plan

Categories

Tags cio miscellaneous learning management teams

In every organization and in every industry, leaders play a critical role: managing teams, working together to make important (and sometimes difficult) decisions, and guiding an organization to move in the right direction. By Brian Eastwood.

While you might think of a leader as an experienced executive with a corner office, the reality is that successful organizations rely on employees who demonstrate strong leadership skills regardless of their job title or length of tenure.

If you are looking to enhance your leadership capacity, one important strategy for guiding your growth is to create a personal leadership development plan:

  • Benefits of a personal leadership development plan
  • Before the plan: conducting a self-assessment
  • Elements of a personal leadership development plan
    • Core skills to master
    • Experience gaps to close
    • New relationships to build
    • Specific tasks to delegate
    • Key action items to complete
    • Critical indicators of success
  • Beyond the plan: building leadership development into your role

And remember: take time to reflect. Leaders have a great deal of responsibility to juggle. Take 15 minutes every morning to assess the most important tasks for the day and 15 minutes in the evening to reflect on what went well and what could have been improved. Nice one!

[Read More]

Working with Terraform and Kubernetes

Categories

Tags devops cloud kubernetes javascript

Philipp Strube form Kubestack put together this article about Kubestack provisions managed Kubernetes services like AKS, EKS and GKE using Terraform but also integrates cluster services from Kustomize bases into the GitOps workflow.

Hashicorp recently announced better integration between Terraform and Kubernetes. Author took this as an opportunity to give an overview of how Terraform can be used with Kubernetes today and what to be aware of.

To be able to support different resources, Terraform requires providers that integrate the respective API. So, to create Kubernetes resources we need a Kubernetes provider. Here are our options:

  • Terraform kubernetes provider (official)
  • Terraform kubernetes-alpha provider
  • Terraform kustomize provider

For teams that are already invested into Terraform, or teams that are looking for ways to replace kubectl in automation, Terraform’s plan/apply life-cycle has always been a promising option to automate changes to Kubernetes resources. However, the limitations of the official Kubernetes provider resulted in this not seeing significant adoption. Good read!

[Read More]

MiniScaffold, setting up a new F# project the easy way

Categories

Tags app-development programming functional-programming

Setting up a new project can be a pain. Especially if you want to split it into separate folders for clarity. You might want a src folder for the project itself, a test folder for the unit and integration tests, a docs folder for documentation. By Simon Taite.

If you’re writing in F# you’ve probably long ago moved from NuGet to Paket, but the standard .NET templates still use NuGet so that has to be migrated. There’s build scripts to write too. It could be an hour or more of work before you start working on the code you actually wanted to write.

Enter MiniScaffold, a dotnet template that is for creating and publishing applications (supporting .NET Core 3.1) and libraries (supporting both .NETStandard 2.1 and .NET Framework 4.6.1

It’s designed and built to take care of the humdrum for you, it gives you:

  • Clean and well separated folder structure
  • Matching .gitignore file
  • .editorconfig file tweaked for F# development
  • Configures CI builds on Appveyor (for Windows) and TravisCI (for Linux and macOS)
  • Fully configured build scripts using FAKE
  • Integrated package management with Paket
  • Integrated unit testing (Expecto) and code coverage reports (AltCover/ReportGenerator)
  • Automatic code formatting with Fantomas

To get started, install the template and run few commands. Easy!

[Read More]

How to improve JWT performance in Node.js

Categories

Tags app-development infosec nodejs javascript

Each operation, even the smallest one, counts towards the performance and availability of a service. High performance and availability must be maintained without compromising the security of the system. By Paolo Insogna @nearform.com.

Keep reading to discover how the team improved the performance of JSON Web Tokens (JWT), one of the most common authentication systems, in Node.js. They created a new plugin, fast-jwt, to demonstrate and measure the Node.js performance improvements. Using flamegraphs, they compared fast-jwt on a sample Fastify server with the existing jsonwebtoken implementation. This blog post also outlines the architecture of fast-jwt, which includes caching and asynchronous support.

The article is split into:

  • What is a JWT?
  • Node.js implementation
  • Performance of jsonwebtoken
  • fast-jwt architecture
  • Asynchronous support
  • Caching
  • Worker threads evaluation
  • Performance comparison between jsonwebtoken and fast-jwt

The purpose of fast-jwt is to improve jsonwebtoken performance while keeping the same features and a similar API. To do this, authors established the following architecture principles:

  • Minimise the number of external dependencies: except for the cache layer and a couple of small cryptographic utilities, fast-jwt has no external dependencies. This ensures the code is easily maintained and data flow can be followed.
  • Use factory pattern and single ahead options verification: fast-jwt uses the factory pattern to create the signer, decoder and verifier functions. This ensures that all options (with the exception of the key, which might be fetched at execution time, depending on the options passed) are validated only once and only during the startup phase.
  • Small public API: the public fast-jwt API consists of three factory functions (one for each operation) with a specific set of options.

Plenty of code examples thoroughly explained. Excellent job!

[Read More]

WebAssembly: Introduction to WebAssembly using Go

Categories

Tags apis web-development distributed browsers javascript

Welcome to tutorial no. 1 of our WebAssembly tutorial series. JavaScript has been the only programming language that the browser understands. JavaScript has stood the test of time and it has been able to deliver the performance needed by most web applications. But when it comes to 3D games, VR, AR, and image editing apps, JavaScript is not quite up to the mark since it is interpreted. Published on golangbot.bot by Naveen Ramanathan.

WebAssembly is a virtual assembly language for the browser. When we say virtual, it means that it cannot be run natively on the underlying hardware. Since the browser can be running on any architecture, it is not possible for the browser to run WebAssembly directly on the underlying hardware.

The existing JavaScript engines have support to run WebAssembly’s Virtual Assembly Code. WebAssembly is not meant to replace JavaScript. It is meant to operate hand in hand with JavaScript to take care of performance critical components of a web application. It is possible to make calls from JavaScript to WebAssembly and vice versa.

In this tutorial, we will cross compile a Go application to WebAssembly and run it on the browser. The article then describes following:

  • What is WebAssembly?
  • What are we developing?
  • Hello World WebAssembly program cross compiled from Go
  • Javascript glue
  • WebServer
  • Coding the JSON formatter
  • Exposing a function from Go to Javascript

… and more. Plenty of code examples together with excellent explanation what is happening in the code. The source code for this tutorial is available here and there is part 2 odf this article available, too. Very insightful!

[Read More]

Service mesh comparison: Istio vs Linkerd

Categories

Tags software-architecture apis kubernetes distributed cloud containers devops

From the latest CNCF annual survey, it is pretty clear that a lot of people are showing high interest in service mesh in their project and many are already using in Production. Nearly 69% are evaluating Istio, and 64% are evaluating Linkerd. By infracloud.io.

CNFC Service Mesh Survey

Source: @infracloud.io https://www.infracloud.io/service-mesh-comparison-istio-vs-linkerd/

Over the past few years, Microservices architecture has become a more popular style in designing software applications. In this architecture, we breakdown the application into independently deployable services. The services are usually lightweight, polyglot in nature, and often managed by various functional teams. This architecture style works well until a certain point when the number of these services becomes higher, difficult to manage and they are not simple anymore. This leads to challenges in managing various aspects like security, network traffic control, and observability. A service mesh helps address these challenges.

The article then pays attention to:

  • Introduction to Service Mesh
  • Istio
    • Architecture
    • Components
  • Linkerd
    • Architecture
    • Control plane
    • Data plane
  • Comparison: Istio vs Linkerd

Service meshes are becoming an essential building block in the cloud-native solutions and in the microservice architecture. It allows you to do all heavy lifting jobs like traffic management, resiliency and observability and relieve developers to focus on the business logic. Istio and Linkerd, both are mature and are being used in production by various enterprises. Planning and analysis of your requirements are essential in picking up which service mesh to use. Please spend sufficient time during the analysis phase because it is complex to move from one to another later in the game.

Loads of charts to describe architecture and main components of both meshes and plenty foi links to further reading. Excellent read!

[Read More]

Host a static site using Linode Object Storage

Categories

Tags distributed cloud containers cio web-development open-source

Static site generators are a popular solution for creating simple, fast, flexible, and attractive websites that are easy to update. Traditionally, these static HTML files would be served by a web server (like NGINX or Apache) running on a Linode. Using Object Storage to host your static site files means you do not have to worry about maintaining your site’s infrastructure. By linode.com.

Object Storage provides an HTTP REST gateway to objects, which means a unique URL over HTTP is available for every object. Once your static site is built, making it available publicly over the Internet is as easy uploading files to an Object Storage bucket.

The article is split into these sections:

  • Why host a static site on Object Storage?
  • Install the Hugo Static Site Generator
  • How to create a Hugo Site
  • Upload your static site to Linode Object Storage

After uploading your static site to Linode Object Storage, you may want to use a custom primary domain for your site. To do this, you can add a CNAME entry to your domain’s DNS records that aliases it to your Object Storage bucket’s website URL. It’s possible to trigger automatic deployments to the Object Storage service when you push new content updates to GitHub or GitLab.

Straightforward tutorial how tp create your first static website with Hugo and Linode Object Storage. Links to further reading and resources also provided. Good read!

[Read More]

How to get big results with a small SRE team

Categories

Tags devops cloud kubernetes distributed teams agile

One responsibility of every site reliability engineering team is to help other engineers deliver changes quickly and safely to customers. By Pierre Vincent Head of Site Reliability Engineering, Glofox.

Luckily, SRE principles were established with an eye to building lasting, scalable value, and are a critical part of DevOps. For example, when an SRE team provides developers with tools to own their service lifecycle, they become a productivity multiplier instead of a bottleneck.

Here’s tried and tested advice to help you build a strong and sustainable SRE team regardless of the team’s size:

  • Help others, never block them
  • Beware of rolling your own stack and tools
  • Avoid technology spread
  • Measure where your team is spending its time and effort
  • Put structure around unplanned work
  • Spread on-call responsibilities
  • Your small team can yield big results

The essence of SRE is to help build solutions that have lasting value and that will work at scale. A well-thought-out software delivery platform will work for 10 engineers or 200, as long as you keep aiming for zero SRE intervention between the developer committing code and seeing the change have an effect in production. Good read!

[Read More]

Esbuild JavaScript bundler claims 10-100x faster bundling time

Categories

Tags javascript frontend nodejs devops programming

esbuild, a JavaScript bundler and minifier, seeks to bring order-of-magnitude speed improvements in the JavaScript bundling and minification process. esbuild achieves its speed by being written in Go compiled to native code, parallelizing tasks to leverage multi-core processors, and minimizing data transformations. By Bruno Couriol for infoq.com.

The current build tools for the web are at least an order of magnitude slower than they should be… I’m trying to create a build tool that a) works well for a given sweet spot of use cases (bundling JavaScript, TypeScript, and maybe CSS) and b) resets the expectations of the community for what it means for a JavaScript build tool to be fast.

Evan Wallace , CTO and co-founder of @figmadesign and esbuild’s creator

Wallace provided a custom-made JavaScript benchmark that shows esbuild achieving build times under one second, while other tools’ build time varies between 30s and over a minute. Similar results are observed in the provided TypeScript benchmark.

JavaScript benchmark build times

Source: https://www.infoq.com/news/2020/06/esbuild-faster-go-js-bundler/

A developer has run the benchmark on a different machine and reproduces results confirming the speed improvements.

esbuild supports constant folding and is able to handle libraries such as React that may contain conditional exports etc.:

if (process.env.NODE_ENV === 'production') {
  module.exports = require('./cjs/react.production.min.js');
} else {
  module.exports = require('./cjs/react.development.js');
}

While the benchmark methodology needs to be refined to reflect realistic scenarios, the build times achieved by esbuild remain impressive. Super exciting!

[Read More]

How to reuse AWS S3 bucket for multiple serverless framework deployments

Categories

Tags serverless functional-programming software-architecture cloud aws

When using Serverless Framework, the default behaviour is the creation of a S3 bucket for each serverless.yml file, since they are treated as separated projects. By Eduardo Rabelo on serverlessguru.com.

AWS has a soft limit of 100 S3 buckets per account. You can increase your account bucket limit to a maximum of 1,000 buckets, but depending on your workload, this can still be a problem.

How can you leverage the benefits of Serverless Framework and still keep your AWS sane? The answer relies on one option of the serverless.yml file called deploymentBucket.

The article has these sections:

  • Anatomy of “deploymentBucket” option
  • Using “deploymentBucket” in multiple projects

This is very “hands on” tutorial which will explain and give you all you need for deployment of various services from one S3 bucket. With a simple change, you can avoid hitting the limits of your AWS account and still benefit from the usage of Serverless Framework. Links to additional articles and all the code is also available. Nice one!

[Read More]