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 choose the right API style and technology

Categories

Tags event-driven programming apis web-development app-development

In this post, we’ll go through the 5 most popular API styles and look at very common questions like “How to decide on the right API style and which technology to choose for a style” and provide practical scenarios where an API Gateway can supplement their weaknesses. By Bobur Umurzokov.

APIs are an essential design element in any software architecture that interconnects components digitally and allows various systems and devices to communicate easily with each other. When we built a new API, initially we think about the API design, and how the API interacts with the external world by using which style and technology.

The infromation contained in the article:

  • No best API style​
  • Resource style​
  • Hypermedia style​
  • Query style​
  • Tunnel style​
  • Event-based style​

As we reviewed, 5 styles were the foundation of popular approaches and technologies such as REST, OpenAPI, HTTP, gRPC, GraphQL, and Kafka. The most important lesson to learn about these 5 API styles is that there is no “best style”. When it comes to choosing an API style, it all boils down to the following 3 classes: a problem, consumers, and context. Nice one!

[Read More]

What are Webhook Gateways?

Categories

Tags event-driven distributed apis web-development cio

A webhook gateway is a webhook management tool that sits between a webhooks provider and webhooks consumer. It acts as a reverse and forward proxy for webhooks. It can be deployed by both the API provider that sends webhooks and the consumer that receives webhooks to handle webhook events multiplexing and de-multiplexing respectively. By Subomi Oluwalana.

In today’s world of ever changing user requirements, speed is a competitive advantage. Development teams are required to move fast and deliver user value. More teams are adopting a serverless, micro-service, and service-oriented architecture to move fast.

Architecture of Webhooks Gateway

Source: https://getconvoy.io/blog/what-are-webhook-gateways/

The diagram above provides an high level view of how a webhook gateway operates. We used AWS specific elements but this can be any cloud environment - Azure, GCP, Digital Ocean, etc or even On-Prem. The arrows from the left show the flow of traffic from your backend services to client endpoints on the right, and the arrows from the right show the flow of traffic from third-party providers like (stripe, twilio, etc.) to your backend services for processing. You will also find a comparison between API Gateways and Webhook Gateways in the article. Nice one!

[Read More]

Event-driven APIs with webhook and API Gateway

Categories

Tags aws event-driven distributed apis web-development serverless

This post elaborates on building event-driven APIs by making use of Webhook and API Gateway, we understand the role of each in this solution. By Bobur Umurzokov.

The article explains:

  • Need for a webhook
  • What’s webhook?
  • Webhook and API Gateway in event-driven architecture
  • Subscription process
  • Callback process

Webhook tries to decouple the concerns like a message acknowledgment and the processing messages in the API and no synchronous business logic is performed. However, the above architectural example we discussed can be a complicated pattern to implement given that it has many moving parts and the API are not aware of a consuming application endpoint is up and running but that can be improved. Interesting!

[Read More]

AWS Lambda: Resilience under-the-hood

Categories

Tags aws distributed apis app-development serverless

AWS Lambda comprises over 80 services working together to provide the serverless compute service that it offers to customers. Under the hood, many of these services are built on top of Amazon Elastic Compute Cloud (Amazon EC2) instances, provisioned within Availability Zones. However, AWS Lambda is a Regional service. By Adrian Hornsby (Principal System Dev Engineer) and Marcia Villalba (Principal Developer Advocate).

This means that customers use Lambda services from the Region level and its services are designed to be resilient to impairments that the underlying Availability Zones might have.

The articles discusses:

  • The role of Availability Zones
  • How to prepare for failures
  • How Lambda tests its response to an Availability Zone impairment
  • How AWS Lambda uses AWS FIS
  • How to recover your applications rapidly from Availability Zones failures

This article discusses static stability, a mechanism that is used by AWS services such as Lambda to build resilient Regional services. It also discusses how AWS takes advantage of the same services and infrastructure as customers. It shows how Lambda uses multiple Availability Zones and services like AWS FIS to build highly available services and improve its recovery time from unexpected failures to only a few minutes without human intervention. Nice one!

[Read More]

A hands-on approach to symmetric-key encryption

Categories

Tags miscellaneous infosec programming devops

In this article, we will learn how symmetric-key encryption works from a practical perspective. We will use OpenSSL to put into practice some concepts about symmetric-key encryption. By Sergio Prado.

To follow along with this article and run the commands on your machine, you just need a terminal with a recent version of OpenSSL. Further content discussed:

  • Symmetric-key encryption
  • Generating a symmetric key
  • Encryption with AES-128
  • Block cipher modes and ECB
  • AES encryption in CBC mode

In a symmetric-key encryption algorithm, the same key is used for both encryption and decryption. This key is usually called a private key, and should stay private, or the security is broken! In this article, we learned some concepts about symmetric encryption, using AES in ECB and CBC modes to encrypt and decrypt data. In the next article, we will deep dive into asymmetric-key encryption and digital signatures. Good read!

[Read More]

Time to look at the role of the CISO differently

Categories

Tags miscellaneous cio cloud software

What is now required is political acumen, managerial experience and personal gravitas, more than raw technology skills. By JC Gaillard.

In spite of being widely used, the role of the Chief Information Security Officer (CISO) has only had a few decades of existence and is still evolving. Research from the Security Transformation Research Foundation — based on the semantic analysis of the content of 17 annual global security reports from EY between 2002 and 2019 — points towards the role having already gone through 2 clear phases in its evolution, as it heads into its third decade of existence.

The first decade of the century was essentially a “Compliance Decade”: Security was seen as a balancing act between compliance requirements, risk appetite and costs; the CISO was mostly a risk manager. The last decade has been effectively a “Realisation Decade”, during which cyber security started to be seen as a necessary barrier against real threats, in a context of increasing cyber-attacks and data breaches (in number and scale), massive technological change and the aftermath of a historical financial crisis.

The role of the CISO is entering its third decade of existence and it is likely to be an “Execution Decade” with cyber security becoming an imperative, as the “when-not-if” paradigm around cyber-attacks takes root in the boardroom. Follow the link to the full article to learn more!

[Read More]

NVIDIA Grace CPU superchip architecture in depth

Categories

Tags miscellaneous cloud performance software distributed

NVIDIA Grace CPU is the first data center CPU developed by NVIDIA. By combining NVIDIA expertise with Arm processors, on-chip fabrics, System-on-Chip (SoC) design, and resilient high-bandwidth low-power memory technologies, the NVIDIA Grace CPU was built from the ground up to create the world’s first superchips for computing. By Jonathon Evans, Ian Finder, Ivan Goldwasser, John Linford, Vishal Mehta, Daniel Ruiz and Mathias Wagner.

The NVIDIA Grace Hopper Superchip pairs a power efficient, high-bandwidth NVIDIA Grace CPU with a powerful NVIDIA H100 Hopper GPU using NVLink-C2C to maximize the capabilities for strong-scaling high performance computing (HPC) and giant AI workloads. More information is available in the NVIDIA Grace Hopper Superchip Whitepaper.

Further in the article:

  • A superchip built for HPC and AI workloads
  • Alleviate bottlenecks with NVLink-C2C Interconnect
  • NVIDIA Grace CPU core architecture
  • NVIDIA Grace CPU software

The NVIDIA Grace Superchip Architecture Whitepaper expands on the details covered in this post. It provides an in-depth explanation of how the NVIDIA Grace CPU delivers the superior performance shown in Figure 1, as well as the technology innovations behind the performance.

[Read More]

Empowering students to develop an Agile mindset

Categories

Tags agile learning app-development teams how-to

Fostering collaboration in the classroom is vital in preparing our students for life. Working in groups can be challenging, which is why implementing an agility framework can become a powerful tool. Developing an agile mindset will empower students to take ownership of their learning while developing social-emotional and critical thinking skills. By Greta Sandler.

Students team agreements board

Source: https://www.iste.org/explore/empowering-students-develop-agile-mindset

Let’s take a look at the steps to implement an agile framework in the classroom:

  • Grouping students
  • Team agreements
  • Sprint (learning progress)
  • Sprint review (reflection time)
  • Retrospective

Before the groups engage in the project, it’s essential to start building trusting relationships among team members by establishing team agreements. Each team should create its Definition of Fun (DoF). By DoF, the teams in your classroom are simply agreeing on what their needs are in order to enjoy learning and working together. Examples might be sharing creative ideas or respecting each other. This promotes safer learning environments and helps develop stronger teams. Very interesting for anybody devoted to edtech!

[Read More]

Kotlin coroutines - A comprehensive introduction

Categories

Tags kotlin java app-development programming jvm distributed

This article introduces Kotlin coroutines, a powerful tool for asynchronous programming. Kotlin’s coroutines fall under the umbrella of structured concurrency. They implement a model of concurrency which you can consider similar to Java virtual threads, Cats Effect and ZIO fibers. By Daniel Ciocîrlan.

The article requires a minimum knowledge of the Kotlin language. Still, you should be fine if you come from a Scala background. The topics discussed:

  • Background and setup
  • Why coroutines?
  • Suspending functions
  • Coroutine scope and structural concurrency
  • Coroutine builders
  • Cooperative scheduling
  • Cancellation

Our journey through the basics of the Kotlin coroutines library is over. We saw why coroutines matter and made a simplified explanation of how they’re implemented under the hood. Then, we showed how to create coroutines, also introducing the structural concurrency topic. We saw how cooperative scheduling and cancellation work with many examples. Finally, we introduced the main features of the coroutines’ context. There is a lot more to say about coroutines, but we hope this article can be a good starting point for those who want to learn more about them. Good read!

[Read More]

Data structures 101: How to use stacks and queues in Java

Categories

Tags java app-development programming queues data-science

Mastering data structures is a non-negotiable skill for success as a developer. Efficient data structures help execute effective programs. Today, many programming roles require great knowledge of data structures. They are also a fundamental part of coding interviews. By The Educative Team.

In programming, a stack is an abstract, linear data type with a predefined capacity (or boundary). It follows a particular order for adding or removing elements. Linear data structures organize their components in a straight line, so if we add or remove an element, they will grow or shrink respectively.

In the article authors will cover:

  • What is a Stack?
  • What is a Queue?
  • Pros and Cons of Stack and Queues
  • Essential operations
  • How to implement a Stack in Java
  • How to implement a Queue in Java
  • What to learn next & interview questions

Authors hope you now have a good foundation of how stacks and queues data structures work. There’s so much more to learn to master queues and stacks in Java. Nice one!

[Read More]