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 ]

Search indexing best practices for top performance (with code samples)

Categories

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

Every search interface relies on a fast back-end data-indexing process that keeps its search results up to date in as timely a manner as possible. But search indexing is only one side of the coin. The other side is the real-time speed of a high-quality relevant search engine. By Peter Villani.

The article then explains how you could imrpove search performance for Algolia NoSQL database:

  • Indexing for search
  • Indexing to create a company-wide, multi-purpose, searchable data layer
  • Indexing as a “matchmaker” – the collaborative indexing use case
  • Best practices for fast indexing performance (with code snippets)
    • Batch indexing instead of updating one record at a time
    • Batch indexing instead of updating one record at a time
    • Partial indexing (updating only changed attributes)

For all search engines, the search request is the highest priority, with indexing a (very) close second. There are several reasons for this, but the most important is a business argument: every search is a potential game changer, a path to a conversion. Any slow or dropped search request, or irrelevant result, is a potential financial or business loss. Nice one!

[Read More]

DevOps for Node.js engineers: Building and publishing JavaScript application artifacts

Categories

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

An artifact is a single portable file that allows us to deploy our application. It usally is an archive of the project with its dependencies (or not) but could also be a executable binary file. By Florian Goto.

The JavaScript world is generally more flexible than other languages in terms of how to do things. This is most of the time a benefit but it sometimes like standardization (efforts are being made to change that with the OpenJS foundation).

Blog post is split into these sections:

  • Packaging frontend code
  • Build with other languages
  • Publishing to an artifact repository

Contrary to certain belief, the frontend code is actually more complex than the backend (my opinion, could be wrong). On the frontend, you usually use some framework like React with its fancy JSX syntax which requires additional step to run the code. Good read!

[Read More]

Privacy fines: GDPR sanctions in 2021 exceeded $1 billion

Categories

Tags security-and-privacy leadership-and-career frontend-and-mobile miscellaneous data-and-analytics

Privacy regulators in Europe last year imposed known fines totaling more than 1 billion euros ($1.2 billion) under the EU’s General Data Protection Regulation, bolstered in part by two record-breaking sanctions, according to the law firm DLA Piper. But sanctions approach varies widely across 31 countries complying with privacy law. By Mathew J. Schwartz.

The amount of fines levied in the 12 months since Jan. 28, 2021, marked a sharp increase from the 159 million euros ($181 million) in fines seen for the preceding 12 months, according to DLA Piper’s latest GDPR and data breach report. Not all of those GDPR violations involved data breaches.

Since GDPR came into full effect on May 25, 2018, organizations that handle Europeans’ personal data must comply with tough breach notification rules, which can include a requirement to notify authorities they have suffered a breach within 72 hours of its discovery. Failure to comply exposes organizations to fines of up to 4% of their annual global revenue or 20 million euros ($22.8 million) - whichever is greater. Organizations’ ability to process people’s personal data can also be revoked (see: Privacy Rights: GDPR Enforcement Celebrates Third Birthday).

In a repeat from 2020, in 2021, Germany and the Netherlands logged the most breach notifications, according to the report. Last year, they were followed by Poland, the U.K and Denmark. Per capita, the number of 2021 breach notifications per 100,000 residents was greatest in the Netherlands (151), followed by Liechtenstein (136) and Denmark (131), according to the report. “Croatia, the Czech Republic and Greece reported the fewest number of breach notifications per capita since Jan. 28, 2021,” it says. Interesting read!

[Read More]

What identity management teaches CSOs/CDOs about data-centric security

Categories

Tags data-and-analytics security-and-privacy architecture-and-apis leadership-and-career how-to

At the turn of the 21st century, the identity management discipline within IT Security was born of necessity. Advancements in computer technology meant that every area, function, and discipline within organizations was turning to automation to gain a competitive advantage. A computer was placed on every desk, and servers, mini-computers, and mainframes were being deployed to automate every area of the business. By Chris Olive.

We are now seeing this pattern repeat with the mass proliferation of data to the cloud, catalyzed by the tsunami of Digital Transformation. The modern organization needs to adopt a Data-Centric Security approach to safely execute their digital transformation strategy.

The article then pays attention to:

  • Digital transformation has radicalized the data security landscape
  • Data security needs to grow up and mature
  • Speed
  • Scale
  • Strategy

Transformation based on automation twenty years ago meant organizations simply couldn’t keep pace with identity lifecycle events or address growing compliance and reporting needs using previous methods. Keeping up with the Speed of business was a real issue. Twenty years ago, Identity management was born from a massive acceleration of technology enablement adopted by organizations as a transformative need. Today, digital transformation driven by massive amounts of data is transforming the business landscape at incredible speed and in ways that seem to dwarf the transformation of the past. Good read!

[Read More]

How Kubernetes creates and runs containers: An illustrated guide

Categories

Tags cloud-and-infrastructure devops-and-ci-cd architecture-and-apis leadership-and-career how-to

Understanding how Kubernetes handles containers gives you greater flexibility to create custom configurations for specific needs. Kubernetes enables you to do a lot of productive work without having to understand a lot about the underlying details. By Bob Reselman.

The article then explains:

  • Understanding Kubernetes architecture and Kubelet
  • Understanding the difference between a container manager and a container runtime
  • Standardizing the container infrastructure with the OCI
  • Understanding the Container Runtime Interface
  • The benefit of understanding the details

Putting the CRI and the OCI specifications together makes it so that Kubernetes can support exactly the container manager and runtime you want to use in your Kubernetes cluster designs. Also, the CRI and the OCI make it so that you can run many different types of container managers and container runtimes across a single cluster.

When it comes to designing a Kubernetes infrastructure to support today’s modern applications, choice matters. Fortunately, choice exists due to the benefits provided by the OCI and CRI specifications. The tradeoff is the need to understand many details of Kubernetes and container technology to get it all to work for your benefit.

[Read More]

Async Rust in practice: Performance, pitfalls, profiling

Categories

Tags software-engineering architecture-and-apis leadership-and-career how-to

A few weeks ago, an interesting issue appeared on our GitHub tracker. It was reported that, despite our care in designing the driver to be efficient, it proved to be unpleasantly slower than one of the competing drivers, cassandra-cpp, which is a Rust wrapper of a C++ CQL driver. By Piotr Sarna.

Brendan Gregg’s flamegraphs are indispensable for performance investigations. What’s even better is that the Rust ecosystem already has fantastic support for generating flamegraphs integrated into the build system: cargo-flamegraph.

A flamegraph generated from one of the test runs shows that our driver indeed spends an unnerving amount of total CPU time on sending and receiving packets, with a fair part of it being spent on handling syscalls.

The article then describe how author was investigating reported issue with driver performance:

  • Reproducing the problem
  • Profiling
  • Hint
  • Root cause No1
  • Root Cause No2: Pitfall in Async Rust
  • Quadratic behavior?

You will find the solution in provided GitHub repository. The world of async programming in Rust is still young, but very actively developed. Investigating and getting rid of bottlenecks and pitfalls is a very useful skill, so don’t hesitate in joining in the effort — e.g. by becoming a contributor to our brand new, native Scylla driver!. Good read!

[Read More]

What software project management bring to SDLC

Categories

Tags leadership-and-career software-engineering business-and-emerging-tech

The role of software project managers is to see a project to fruition while software developers are expected to develop the product, but oftentimes, these roles are interchanged irresponsibly. By Andrew Burak.

You’ve been there: working with a software developer who you desperately want to focus on everything software but who finds themselves knee-deep in scheduling, budgeting, and meetings with stakeholders.

The article main parts are:

  • Software project management is important in Software Development Life Cycle (SDLC)
  • Project management and software development complement each other
  • The future role of project managers in software development
  • Interview with the founder of My Theory Test App by James May
    • The use of online software project management tools
    • Embracing a Systems Analyst/Project Manager hybrid role
    • Specializing in managing remote teams and projects

Project managers bring relationship management to software development in addition to overseeing all management-related tasks that could impede the progress of the software project.

Software project management and software development complement each other by working together in a way that allows both to fully immerse themselves in their respective job functions without any implications from the other’s role.

[Read More]

How we saved 70k cores across 30 mission-critical services

Categories

Tags how-to architecture-and-apis software-engineering devops-and-ci-cd product-and-design leadership-and-career

As part of Uber engineering’s wide efforts to reach profitability, recently our team was focused on reducing cost of compute capacity by improving efficiency. Some of the most impactful work was around GOGC optimization. In this blog we want to share our experience with a highly effective, low-risk, large-scale, semi-automated Go GC tuning mechanism. By Cristian Velazquez.

Uber’s tech stack is composed of thousands of microservices, backed by a cloud-native, scheduler-based infrastructure. Most of these services are written in Go. Our team, Maps Production Engineering, has previously played an instrumental role in significantly improving the efficiency of multiple Java services by tuning GC. At the beginning of 2021, we explored the possibilities of having a similar impact on Go-based services.

The article then explains:

  • GOGC tuner
  • Dynamic and diverse: One size does not fit all
  • A case for automation
  • Observability
  • Implementation
  • Impact

Garbage collection is one of the most elusive and underestimated performance influencers of an application. Go’s robust GC mechanism and simplified tuning, our diverse, large-scale Go services footprint, and a robust internal platform (Go, compute, observability) collectively allowed us to make such a large-scale impact. We expect to continue improving how we tune GC as the problem space itself is evolving, due to changes in the tech and our competency. Super interesting read!

[Read More]

How we built a VS Code extension with Rust, WebAssembly, and TypeScript

Categories

Tags product-and-design cloud-and-infrastructure software-engineering

We’ll talk through our design decisions in building the extension, and along the way we’ll touch on the Language Server Protocol and, more generally, how an IDE extension works. By osohq.com.

The article dives straight in:

  • Why we chose VS Code
  • Using the Language Server Protocol (LSP)
  • Design
  • Why we chose WebAssembly
  • Deciding against a Rust LSP Library
  • Implementation

With our sights set on Wasm, implementing the language server in Rust largely went off without a hitch, and we landed on a clean, three-part design consisting of a TypeScript entrypoint module, a second, tiny TypeScript module that delegates connection handling to Microsoft’s vscode-languageserver package, and the polar-language-server crate compiled to Wasm.

By splitting the language server into a thin TypeScript wrapper and a Rust core, we were able to build on top of some nice LSP scaffolding that exists in the JavaScript ecosystem while still implementing all of the new diagnostic-wrangling logic in Rust. Nice one!

[Read More]

GraphQL as a migration strategy for REST APIs

Categories

Tags architecture-and-apis how-to devops-and-ci-cd frontend-and-mobile cloud-and-infrastructure

Traditional API architectures like SOAP and REST have been powering the web for a long time. But over the past five years, a change towards a more flexible and frontend-driven approach to API protocols has started, using GraphQL. But moving from a traditional API architecture like REST towards GraphQL can be challenging. Not only does your team need to adapt to GraphQL, but it also means you could be losing your investment in your current API architecture. By Mark Smallcombe.

Luckily, you can create a clear migration path from REST to GraphQL using StepZen. You get the advantage of adding GraphQL to your stack, but you can still leverage all your current APIs. In this post, author will show how you can use your existing REST API endpoints while migrating to GraphQL.

The article covers:

  • Mapping REST API endpoints to GraphQL
  • Combining REST API endpoints
  • Migration path with Authentication

You map REST API endpoints to GraphQL types and operations. These types and operations can combine the responses of multiple REST API endpoints at once. If you’ve already invested in your application’s authentication flow, you can leverage these investments by adding this flow to your GraphQL schema. Nice one!

[Read More]