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 ]

Architecture Pattern: Orchestration via workflows

Categories

Tags leadership-and-career product-and-design architecture-and-apis frontend-and-mobile miscellaneous

Most business processes involve doing multiple things across multiple systems. Imagine onboarding a new vendor onto a B2B platform. When a vendor is onboarded, we might have to create an identity for it, trigger some sort of verification process, issue new API keys and credentials to it, and so on. All of these steps typically happen across multiple teams and technical modules. By Kislay Verma.

How should we implement such systems? One way to do this in the object-oriented/REST style is to identify a primary entity (Vendor/Vendor Service in the former example, Order/Order Service in the latter) which owns the entire operation. This primary entity invokes all the other components involved to make sure that the process runs end to end without any problems. If the process is asynchronous in some way (e.g. if verification of vendor documents is handled manually offline), the primary entity carries the state necessary to make sure that it can continue the process from where it was paused.

The article covers:

  • The problem in modelling business processes
  • The workflow pattern
  • Stateful Orchestration
  • Mixing declarative and imperative to create layered abstractions
  • Workflows as Products
  • Caveat Emptor

Calling workflows a separate architectural pattern is only a change in perspective. No matter what kind of design approach we take, we will always have to do all the things that make up the business process. Focussing on the process as a first-class concept puts the definition and management of the steps in the spotlight instead of brushing it inside an API boundary and considering it an implementation detail. Click the link to full article to learn more.

[Read More]

A complete guide to TypeScript's never type

Categories

Tags software-engineering frontend-and-mobile product-and-design backend-development

TypeScript’s never type is very under-discussed, because it’s not nearly as ubiquitous or inescapable as other types. A TypeScript beginner can probably ignore never type as it only appears when dealing with advanced types, such as conditional types, or reading their cryptic type error messages. By Zhenghao.

The never type does have quite a few good use cases in TypeScript. However, it also has its own pitfalls you need to be careful of.

The article then describes:

  • What is never type
  • Why we need never type
  • How to use never type
  • How to read never type (from error messages)
  • How to check for never

In TypeScript, never is an empty set of values. In fact, in Flow, another popular JavaScript type system, the equivalent type is called exactly empty. Interesting read!

[Read More]

How to become a Golang developer: A 6-step career guide

Categories

Tags software-engineering leadership-and-career frontend-and-mobile product-and-design backend-development

Go is an in-demand language across the board. Today, we’ll discuss the steps to become an employable and modern Go developer. By The Educative Team.

Golang (also called Go) is an in-demand programming language — especially for people working with Google products. Go is used by many big companies, like Uber, Medium, Dropbox, Salesforce, Netflix, IBM, and Twitter.

This career guide at a glance:

  • What is a Go developer?
  • Learn the basics of Go
  • Master Go libraries and other tools
  • Learn testing with Go
  • Understand Go patterns
  • Start building your portfolio
  • Practice Go coding interview questions
  • What to learn next

Golang developers use the Go language to build webpage and software products. A Go developer’s general duties include working with Go and using its full suite of tools and frameworks. Most Go developers also do testing and debugging. The entry threshold for Go is relatively low. It’s an easy language to learn and comes with detailed technical documentation. Switching to Go is relatively easy for those who have experience with the C language. Good read!

[Read More]

Build at the Edge with OpenFaaS and GitHub actions

Categories

Tags architecture-and-apis frontend-and-mobile product-and-design business-and-emerging-tech

Learn how GitHub Actions and OpenFaaS can be used for simple functions at the edge of your network. If you’re running Kubernetes in production then you’ll be aware of how difficult it can be to operate. Not only do you need to learn its concepts and API, but if you extend it in any way, then you’ll be needing to maintain all your custom changes over time. As the author of several applications and operators targeting Kubernetes, I have to dedicate much of my time to maintenance and migrations. By Alex Ellis.

I want to show you how to build functions at the edge of your network with the faasd project. faasd is the same OpenFaaS that you know from the world of Kubernetes, but repackaged to be vastly simpler to use on IoT devices. Unlike K3s, it barely consumes any resources at idle, its API is stable and upgrades are as simple as replacing a binary.

So what reasonable person would deploy faasd instead of Kubernetes?

  • If you need a few functions to extend a SaaS or respond to webhooks
  • You want to run a few cron jobs and write them using real code like JavaScript, Go or Python
  • You want to package up functions and something to run them as an appliance
  • You need to run at the edge or on IoT devices

We’ll create a new function to handle repository webhooks, these are events that happen on a GitHub repository such as push, PR and issue events. It’s now up to you to decide what language you want to write your functions in. Go and Python tend to use the least amount of resources, so if you want to pack in plenty of functions, they may be your best options. Node.js is also popular, but can be a bit more hungry for RAM. Excellent read!

[Read More]

Study finds consumers prefer digital banking experiences, but are concerned about security

Categories

Tags leadership-and-career miscellaneous how-to business-and-emerging-tech

A survey from Entrust details preferences of the modern banking customer, with consumers indicating a need for online banking capabilities, secure cards with chips and enhanced payment security. By Fintech News Desk.

Entrust surveyed 1,350 consumers from nine countries, including the United States, Canada, United Kingdom, Germany, Saudi Arabia, United Arab Emirates, Singapore, Australia and Indonesia, who have made or received digital payments in the past 12 months. The results help paint a picture of where the banking industry stands in 2022, and what the future holds as The Great Payments Disruption continues.

This study highlights how more than ever, consumer banking is about digital interactions first, and that they must create that digital experience with security at its foundation.

Each section of the study considers a different aspect of the transition in the banking and payments industry as more digital, contactless options become available for consumers. Here are some of the key findings from each section:

  • Omnichannel touchpoints are increasingly important in digital banking
  • Customers are security-conscious and lack of security can have damaging consequences:
  • Fee structures and flexible payment options give banks an edge
  • More digitally issued cards could further fuel the rise of contactless payments

Respondents listed credit/debit cards with chips (50%) as their most preferred payment method, but contactless credit/debit cards (48%) were a close second. Additionally, 53% of respondents said they’ve received a digitally issued debit or credit card from their bank or credit union. Digital cards can be an effective selling point as almost two-thirds of survey respondents prefer to open a bank account digitally

The global transformation of banking and payments has only accelerated over the past few years, and between web trends and a global pandemic, the industry has seen disruption from all angles. Consumers are digitally connected in almost all facets of their lives. Nice one!

[Read More]

How to take fewer breaks to be more productive at work

Categories

Tags software-engineering leadership-and-career miscellaneous how-to

Programmer’s work might look easy, but it turns out to be stressful to many programmers. Most programmers would complain about being unproductive — they should work eight hours per day, but these eight hours turn into 2 or 3 hours of work. By Nuha Khaled.

Coding for a long time needs lots of focus, and that causes fatigue, especially when this long focus includes long hours of sitting, analyzing, problem-solving, and just coding! At that point, the programmer feels they can’t reach a solution anymore, can’t focus anymore, and are getting a severe headache.

The article is paying attention to:

  • What everyone recommends?
  • What is an activity break?
  • How can we use it as programmers?

List of example activities for programmer which can be used for acitivity break:

  • Coding
  • Problem analyzing
  • Brainstorming
  • Meetings
  • Planning my working day
  • Responding to emails
  • Writing documents

In brief, we usually are doing a primary activity when working, and to refresh, we just need to take a break from the activity, not from the entire work! Changing the activity alone is not enough if they both have the same method. So, problem-solving might not be a break for you from coding, as both need focusing for example. Good read!

[Read More]

How to create GUI dialog boxes in bash scripts with Whiptail in Linux

Categories

Tags cloud-and-infrastructure devops-and-ci-cd architecture-and-apis software-engineering miscellaneous product-and-design

In this article, we are going to discuss yet another GUI utility called Whiptail that can be used to create GUI dialog boxes in Bash scripts in Linux. By Karthick.

Not every script that you write needs a frontend graphical interface. But sometimes it would be better if you create a graphical interface instead of relying on interacting with the command line. In my case, if there is a long list of responses needed in the script I would choose to go with a graphical interface.

This is step by step tutorial which covers:

  • Install Whiptail in Linux
  • Message box
  • Info box
  • Yes/No box
  • Text box
  • Redirections
  • Password box
  • Input box
  • Checklist dialog box
  • Radio list dialog box
  • Menu dialog box
  • Progress bar

Whiptail is a friendly GUI utility that uses a newt programming library. Whiptail offers different dialog boxes for different purposes. Depending upon your use case you can use these dialog boxes to make your script more interactive. In this article we have briefly seen how to use Whiptail to create various dialog boxes in bash scripts. Good read!

[Read More]

Behaviors trees in AI: Why you should ditch your event framework

Categories

Tags data-and-analytics leadership-and-career architecture-and-apis

In this article, I look into some of the shortages of event-driven programming and suggest behavior trees as an effective alternative, suitable for back/front-end application development. By T de Souza.

The article deals with:

  • What is AI? (and what event frameworks have to do with it)
  • Correctness vs efficiency
  • What is a behavior tree?
  • Behavior trees in code

Behavior trees are a new (~2010) control paradigm based on tasks. A task can be succeeding, failing or running. Behavior trees are like decision trees (an intuitive concept, I hope) with the time dimension factored in.

Behavior trees were first introduced in games (Halo). They are making headway in robotics and the point of this article, essentially, is encouraging developers to consider their potential in developing interactive, time aware applications (front/back-end).

A behavior tree hooks a top-down decision process onto an update loop. The running state allows postponing decisions until an ongoing task has completed. Good read!

[Read More]

Is serverless just a stopover for event-driven architecture?

Categories

Tags product-and-design devops-and-ci-cd architecture-and-apis

I recently reviewed the State of Cloud Native Development report by SlashData supported by the Cloud Native Computing Foundation that shows a decline in cloud native technologies from the first quarter of 2020 to the first quarter of 2021. By Mark Hinkle.

This makes me think that the hype around serverless has died down, though that doesn’t mean that serverless isn’t going to be around for a long time.

Perhaps as CNCF CTO Chris Aniszczyk told SDX Central, “The trend reflects growing concern that serverless technologies lack the flexibility needed for widespread adoption and a reluctance among organizations to commit to specific technologies or providers.”

The article main content then focus on:

  • Serverless isn’t a failure, it’s an implementation detail
  • Event-driven architecture in cloud native computing
  • Event-driven data syncs and workflows

We are moving toward an event- and data-driven future, where the ability to act in real time on data is becoming a requirement for doing digital business. The first part of the equation requires data streaming technologies that are similar to AWS Kinesis but not specific to a single vendor. Apache Kafka and Apache Pulsar fit the bill as open source, cloud-agnostic ways to put data in motion. Then the next step is to adopt publish-subscribe communication across microservices rather than making REST calls to APIs.

The future of the cloud is not necessarily all-in-one vendors. We’ve been down that road before where users have sacrificed the freedom to choose the best-in-class solution for the convenience of a preassembled stack from one vendor. The future is composable systems of best-of-breed technologies rather than stacks from a single vendor. The new design pattern for cloud native users is composable infrastructure and consequently composable applications that are an amalgamation of various vendors and connected via event streams that are used to create automated workflows.

[Read More]

Docker -- Cross-host networking

Categories

Tags product-and-design devops-and-ci-cd leadership-and-career

When Docker is installed, three networks are automatically created on the host: bridge, host and none . You can use the command docker network ls to check. By Tony Li Xu.

libnetwork is a docker container network library. The core content is the Container Network Model (CNM) defined by it. This model abstracts the container network and consists of these components: sandbox, endpoint, network.

These network schemes solve the problem of container communication within a single Docker host. Let’s talk about scenarios for communications between containers across hosts in this article.

Container Network Model example

Source: https://blog.devgenius.io/docker-cross-host-networking-8761e3ddebc9

Cross-host networking scenarios include:

  • Docker native overlay and macvlan
  • Third-party solutions: commonly used ones include flannel and calico

The docker network is a very active technical field, and new solutions are constantly being developed, so it is a very important question to ask: “How do so many solutions integrate with docker?” The answer is: libnetwork and CNM. Interesting read!

[Read More]