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 ]

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]

Architecturing an App with functional reactive programming

Categories

Tags agile web-development functional-programming software-architecture kotlin

Whenever a team is about to start a new project, there’s one question that always comes up: “Which architecture are we going to follow?” And every developer tends to have their own opinion on the matter, which makes perfect sense, because it’s such an important topic. By Vincent Pradeilles.

Think about it: Good architectures result in apps that perform well, are easy to maintain, and are fun to work on. On the other hand, a subpar architecture usually ends up delivering the kind of glitched and clunky project that people neither want to use or maintain.

The goal of a functional reactive architecture is therefore to enable the flexibility of reactive programming while relying on the principles of functional programming in order to structure the code in a viable manner. If we build upon the previously stated definition, we could say that a functional reactive program explicitly subscribes to future events, in order to process them once they have been emitted, in a scalable and maintainable way.

The article then goes over:

  • Functional, Reactive?
  • Let’s look at a concrete use case
  • Beyond front-end development
  • Making your project more reactive

The term functional reactive architecture definitely feels like a mouthful. And it should, because it encompasses two very broad concepts of software programming: Functional programming and reactive programming. So let’s start with a quick recap of these two concepts.

The code examples in this article mainly use RxSwift and RxKotlin, but thanks to the API standardization, everything you learn here will be easily applicable in your favorite language. Excellent read!

[Read More]

How I've learned to deal with touchy managers as a software engineer

Categories

Tags agile learning cio teams miscellaneous

How do I work around a touchy manager relationship as a software engineer? You asked and Neil from neilonsoftware.com has some answers. By Neil Green.

The definition of “touchy” is “oversensitive and irritable,” which necessarily means they are a poor manager. Good managers are calm, rational, and are empathetic to the needs of their subordinates.

What you have is better called a “boss,” as they allow their personality flaws to show in their managerial approach. Therefore, I read your question as, “How do I work around an oversensitive and irritable boss?

Working for a bad boss is often cited as the #1 reason why people quit their job, and I would be remiss not to recommend that you find a new position working for an experienced manager. Touchy bosses tend to focus primarily on the mistakes you make, which can result in nonconstructive criticism.

To make them easier to deal with, helping your boss deal with the sources of their stress might help improve their managerial style. Managers often deal with a copious amount of pressure at work, and you might be able to alleviate some of their stress to help calm them down:

  • Are they overseeing a project that is behind schedule? Help to put the project back on schedule
  • Are their subordinates not performing? Help them improve the performance of low-performing individuals
  • Are people constantly complaining to them about work conditions? Help address the source of the complaints.

All of these are easier said than done and share the characteristic of rewarding bad behavior. However, reducing the ambient stress your boss deals with might improve their managerial approach. Interesting.

[Read More]

Basic CI/CD pipeline for serverless apps

Categories

Tags serverless app-development cicd web-development

For deploying her applications, Emily have a CI/CD pipeline that uses the AWS Serverless Application Model (SAM), GitHub, and CircleCI. In this post author will show you how to set it up. Many people get started with serverless by using the AWS console. By Emily Shea.

While it’s helpful to start, building directly in the console can get tricky as you run into issues like keeping track of your Lambda function code edits or making manual, repetitive configuration changes to resources.

In order to build more complex applications and keep your sanity, a CI/CD pipeline will be a big help. A CI/CD pipeline will take you out of the console and allow you to store and update function code, configure resources, and deploy entire applications from right within your text editor. It is as magical as it sounds.

Content of this article:

  • Set up your development environment
  • Fork my example repo and clone to your computer
  • Create a CircleCI account and set up a new project
  • Give CircleCI AWS permissions
  • Review SAM template and function code
  • Create an S3 bucket for your deployment package
  • Managing secrets in your CI/CD pipeline
  • Deploy & test out your application

You will also get handful fo screen shots, commands and code examples explaining the concept. And the list of tools you will be working with. Very insightful!

[Read More]

Five things to do when you've got too much on your plate

Categories

Tags agile learning cio management analytics

I guess we’ve all been there sometimes – waking up in the morning, tired of the very thought of the day ahead of us, still exhausted from yesterdays’ chores. Our already low levels of energy pop like a balloon when we visualize our very first errand and a seemingly never ending list of tasks waiting to be finished. By Rebecca Brown.

You need to reset some things in your life to regain the balance. Here are the five essential things to begin with:

  • Reconnect with your authentic self
  • Re-evaluate and prioritize
  • Delegate and share responsibilities
  • Learn to say no
  • Ask for professional support

Along with learning to say “no” you should consider learning how to identify the tasks you can delegate or share responsibilities for. Learning when and how to say “no” is one of the tougher lessons one has to learn, but it’s vital for keeping balance in life. It is especially difficult when you have to say no to the things and people worthy of your time and effort. Really liked it!

[Read More]

Quick Guide on loading initial data with Spring Boot

Categories

Tags java app-development web-development programming

Spring Boot makes it really easy to manage our database changes in an easy way. If we leave the default configuration, it’ll search for entities in our packages and create the respective tables automatically. By Eugen Paraschiv.

But sometimes we’ll need some finer grained control over the database alterations. That’s when we can use the data.sql and schema.sql files in Spring.

The content of this article:

  • The data.sql file
  • The schema.sql file
  • Controlling database creation using Hibernate
  • @Sql
  • @SqlConfig
  • @SqlGroup

You will learn hwo we can leverage schema.sql and data.sql files for setting up an initial schema and populating it with data. We also saw how we can use @Sql, @SqlConfig, and @SqlGroup annotations to load test data for tests. Keep in mind that this approach is more suited for basic and simple scenarios, any advanced database handling would require more advanced and refined tooling like Liquibase or Flyway. Great read!

[Read More]