News Aggregator


Navigating the Benefits and Risks of Request Hedging for Network Services

Aggregated on: 2023-02-13 17:44:40

Tail latency is a persistent challenge for network services, with unpredictable spikes in response times due to factors such as CPU wait times and network congestion. While cost-effectiveness is often achieved through the use of shared resources, this can lead to a compromise in user experience.  In this blog post, we examine the technique of request hedging as a solution to this problem. By understanding its benefits and limitations, we aim to provide insights into when and how this technique can be effectively utilized to build more predictable services.

View more...

How To Scan a URL for Malicious Content and Threats in Java

Aggregated on: 2023-02-13 17:14:40

At this point, we’ve all heard the horror stories about clicking on malicious links, and if we’re unlucky enough, perhaps we’ve been the subject of one of those stories.   Here’s one we’ll probably all recognize: an unsuspecting employee receives an email from a seemingly trustworthy source, and this email claims there’s been an attempt to breach one of their most important online accounts. The employee, feeling an immediate sense of dread, clicks on this link instinctively, hoping to salvage the situation before management becomes aware. When they follow this link, they’re confronted with a login interface they’re accustomed to seeing – or so they believe. Entering their email and password is second nature: they input this information rapidly and click “enter” without much thought.

View more...

An Overview of Creating Databases With Python

Aggregated on: 2023-02-13 16:44:40

Python provides several modules for working with databases, including sqlite3, MySQLdb, and psycopg2. These modules allow easy database interaction to store, retrieve, and manipulate data efficiently. You can construct, change, and manage databases effectively and efficiently with a basic understanding of Python language and SQL syntax. Steps for Database Creation Using Python Step 1 Install a database adapter that matches the database management system you want to use. For example, if you are to use SQLite, you can install the sqlite3 module. For MySQL, you can install the MySQLdb module, and for PostgreSQL, you can install psycopg2. In this tutorial, we shall consider SQLite, MongoDB, and MySQLdb. To use SQLite in your Python code, import the sqlite3 module:

View more...

Generative AI for DevOps: A Practical View

Aggregated on: 2023-02-13 15:14:40

The concept of generative AI describes machine learning algorithms that can create new content from minimal human input. The field has rapidly advanced in the past few years, with projects such as the text authorship tool ChatGPT and realistic image creator DALL-E2 attracting mainstream attention. Generative AI isn't just for content creators, though. It's also poised to transform technical work in the software engineering and DevOps fields. For example, GitHub Copilot, the controversial "AI pair programmer," is already prompting reconsideration of how code is written, but collaborative AI's potential remains relatively unexplored in the DevOps arena.

View more...

An Overview of Programming Languages

Aggregated on: 2023-02-13 14:29:40

Programming languages are the building blocks of the digital world, enabling developers to create software, apps, and websites. Over the past few decades, numerous programming languages have emerged, each with its own strengths and weaknesses. This article looks at some of the most popular programming languages and their applications. What Was the First Programming Language? Fortran (Formula Translation) was the first programming language created in the 1950s. It was designed to make scientific and engineering calculations easier and was initially used for scientific and engineering calculations on mainframe computers. Fortran is still widely used today, particularly in scientific and engineering fields, and has gone through several updates to keep pace with technological advancements.

View more...

Transform Your Web Development Skills With JavaScript: Top 5 Reasons Why

Aggregated on: 2023-02-13 14:29:40

Today, we constantly learn different programming languages to build websites and applications. It’s also important to not be relegated and remain updated with the latest interventions of the world. Every programming language has its significance and differentiation. It’s wrong to compare one with the other as they all have different characteristics and uses. But all of us would like to learn a machine language that can do multiple tasks. One such language is JavaScript which has made space in all companies irrespective of whether they are big or small. It is convenient and valuable and can create interactive applications and web pages for customers. Initially, it was a bit limited, but now it is giving competition to some of the most famous languages in the market. Currently, around 95% of the total websites are using JavaScript. According to a survey done in 2020 by StackOverflow Developers, JavaScript was the number one programming language.

View more...

8 Awesome Source Code Management Tools to Keep In Check

Aggregated on: 2023-02-13 13:59:40

Looking for the best Source code management tools to boost your productivity? Well then, here I have collected the best eight SCM Tools that you will definitely find noteworthy. Before we move further, let's learn a bit about source code management tools and the advantages of using one.

View more...

Time For Me To Fly… To Render

Aggregated on: 2023-02-13 12:44:40

The Gartner hype cycle, illustrated below, can be applied to most aspects of technology: As new innovations enter their respective cycles, expectations are eventually realized—leading to some level of adoption. The goal for every innovation is to reach the plateau of productivity where consumers have determined that the reward of adopting the innovation far outweighs any known risks.

View more...

Will Event Sourcing Outgrow the Database?

Aggregated on: 2023-02-12 19:14:39

Event sourcing is not a new term. If you are working in tech, you must have come across event sourcing. Event sourcing is a powerful tool, and it is adapted by many large organizations as their database architectural design. It has the capability to scale up and serve the needs of the modern data industry. In this article, we will understand more about event sourcing and why it’s gaining popularity. We will also discuss the popular question: Is event sourcing going to outgrow databases?

View more...

Tasks, BackgroundWorkers, and Threads

Aggregated on: 2023-02-12 18:44:39

Even if you’re new to C#, you’ve probably come across at least one Task, Thread, or BackgroundWorker. With a bit of additional time, it’s likely you’ve seen all three in your journey. They’re all ways to run concurrent code in C# and each has its own set of pros and cons. In this article, we will explore how each one operates at a high level. It’s worth noting that in most modern .NET applications and libraries, you’ll see things converging to Tasks. The Approach I’ve gone ahead and created a test application that you can find here. Because this is in source control, it’s possible/likely that it will diverge from what we see in this article, so I just wanted to offer that as a disclaimer for you as the reader.

View more...

Developer Experience: The Metrics that Matter the Most

Aggregated on: 2023-02-12 18:14:39

Developer experience. If you provide APIs or API-first products, you likely hear that term a lot. After all, you need developers for an API to succeed — and if they don’t have a great experience, they’ll move on. What Is Developer Experience? Developer Experience (DevEx or DX) is an extension of user experience (UX) where the focus is on users impacted by the technical side of things — for example, tooling, languages, and workflows. But DevEx is far more than “UX for developers:” it means ensuring that developers can easily understand and leverage an API for their own applications and use cases. Great DevEx happens when you communicate with your developer users, understanding and meeting their needs directly. If you can win over developers, you can build a large and thriving ecosystem around your products.

View more...

Extract Insights From Text Data Inside Databases

Aggregated on: 2023-02-12 18:14:39

Imagine you have a lot of text data inside your database. And you want to extract insights to analyze it or perform various AI tasks on text data. In this article, you will learn how to integrate your database with OpenAI GPT-3 using MindsDB, an open-source AI platform to get insights from all your text data at once with a few SQL commands instead of making multiple individual API calls, ETL-ing and moving massive amounts of data. We'll walk you through the process using three practical examples. What Is OpenAI GPT-3? OpenAI GPT-3 is a powerful language model developed by OpenAI, a research lab focused on artificial general intelligence. It has earned its place in the world of machine learning by being one of the most powerful and accurate natural language models ever created. 

View more...

ClickHouse: Windows Functions From Scratch

Aggregated on: 2023-02-12 16:29:39

ClickHouse is a highly scalable, column-oriented, relational database management system optimized for analytical workloads. It is an open-source product developed by Yandex, a search engine company. One of the key features of ClickHouse is its support for advanced analytical functions, including windows functions. Windows functions were first introduced in the late 1990s by SQL Server, and since then, have become a standard feature in many relational databases, including ClickHouse. Today, windows functions are an indispensable tool for data analysts and developers and are widely used in many industries.

View more...

The Evolution of Cloud-Native Authorization

Aggregated on: 2023-02-12 04:14:39

Authentication in the Age of SaaS and Cloud Let's start with the differences between authentication and authorization. People tend to lump these concepts together as auth, but they're two distinct processes. Authentication describes the process of finding out that you are who you say you are. In the past, we used user IDs and passwords. These days it's much more common to use magic links or multi-factor authentication, etc. but, it's the same process.

View more...

A Proposal for the Less Conventional

Aggregated on: 2023-02-12 03:29:39

In the list of activities in the Scrum software development life cycle ranked by their popularity amongst developers, “attending meetings” is perhaps locked in a perpetual battle only with “writing documentation” for the position of last place. It’s quite understandable: meetings can easily become very boring — especially when a participant does not have anything to contribute to the meeting at hand — and are often perceived as having little value (if at all) compared to conducting actual code-writing in the software development project. However, these Scrum meetings can and do provide value to the project, even if the members of the team do not perceive it: Sprint refinements enable a product owner and the team to plan out development tasks in the weeks/months to come as well as identify whether any task might need further examination and/or design. Sprint plannings define what work the team should be set to accomplish in the given sprint period. Sprint demos provide visibility to other teams and/or project stakeholders into what a team is working on and has accomplished and permits questioning for clarity regarding the work (or even challenges to ensure that the produced work is robust and has fulfilled all objectives). Sprint retrospectives allow a team to identify factors in the previous sprint that were well-received, could be addressed for improvement or elimination, etc. This is, of course, merely reciting from the doctrine of Scrum. Whatever benefits these meetings may hope to provide will not appear if the participants of the Scrum meeting are not interested in “playing their part” in said meetings — execution, after all, eats strategy for breakfast. What can be done, then? One could:

View more...

5 Essential Tools in Your CloudOps Strategy

Aggregated on: 2023-02-11 21:44:39

What Is CloudOps? CloudOps is a term used to describe the set of processes, tools, and practices used to manage and operate cloud computing environments. This includes tasks such as provisioning and scaling resources, monitoring and troubleshooting issues, and managing security and compliance. CloudOps teams are responsible for ensuring that their organization's cloud-based applications and services are available, performant, and secure. Some benefits of CloudOps include:

View more...

COVID Risk Modeling Using Tableau Visualization

Aggregated on: 2023-02-11 19:44:39

A lot has happened in the last few years since the World Health Organization declared COVID-19 as a global pandemic, forcing every business to change the way they work to survive in this changing world. However, even though the lockdown slowed everything, still a huge amount of data continued to climb with speed, and big data grew and become even bigger.  As the world was changing and businesses were struggling to find new innovative ways and methods to continue doing business, data, and data analytics have provided a path of light. In this paper, an overview has been provided about Tableau, an extremely powerful tool that can crunch massive amounts of data and can provide hidden insights and trends through visual solutions that can be used by organizations to make quick business decisions. I have used Tableau to generate interactive visualizations to provide a solution for the biotech/pharma/healthcare industries about an improved method of doing peer-to-peer engagements. 

View more...

The Context: Introduction

Aggregated on: 2023-02-11 17:29:39

Every software project has its own aura. That aura existed before the project was even started. It gave birth to the project and will be alive when the project will be decommissioned and/or replaced with some other project. This aura is The Full Context. The Full Context consists of all information directly or indirectly related to the project. It's the single source of truth for every single decision related to the project, from the decision to start it to the name of every variable in the code.

View more...

How to Implement the Kubernetes Load Balancer

Aggregated on: 2023-02-11 16:44:38

“Kubernetes load balancer” is a pretty broad term that refers to multiple things. In this article, we will look at two types of load balancers: one used to expose Kubernetes services to the external world and another used by engineers to balance network traffic loads to those services. Keep reading to get proven best practices for dealing with a Kubernetes load balancer.

View more...

21 Best Ruby Testing Frameworks for 2023

Aggregated on: 2023-02-11 04:44:38

QAs are always searching for the best automation testing frameworks that provide rich features with simple syntax, better compatibility, and faster execution. If you choose to use Ruby in conjunction with Selenium for web testing, it may be necessary to search for Ruby-based testing frameworks for web application testing. Ruby testing frameworks offer a wide range of features, such as support for behavior-driven development, mocking and stubbing, and test suite organization, making it easier for developers to write effective tests for their Ruby-based applications.

View more...

Apache Kafka [Video Tutorials]

Aggregated on: 2023-02-10 18:59:38

Below, you will see a series of video tutorials about Apache Kafka. After watching these videos, you will have more knowledge about Apache Kafka’s features, workflow, architecture, fundamentals, and so much more! So, let’s get started.  Video Tutorials Apache Kafka Introduction The following three introduction videos about Apache Kafka will go into detail about Apache Kafka’s:

View more...

Lessons Learned from Picking a Java-Based Driver for Amazon ElastiCache for Redis: Part 1

Aggregated on: 2023-02-10 18:59:38

In my day-to-day job, I support teams at different organizations and help them with their AWS challenges. One of the teams I recently supported was using Amazon ElasticCache for Redis as a storage/caching layer for their primary workload. They were validating their production setup and testing several failure scenarios. In this article, I will share some of the lessons learned. Keep in mind that the cases described in this article are very context-specific and might not reflect your use case, so my advice is to always do your own tests. Initial Architecture The team built a REST-based service by using API Gateway, AWS Lambda, and Amazon ElastiCache for Redis.

View more...

7 Common Machine Learning and Deep Learning Mistakes and Limitations to Avoid

Aggregated on: 2023-02-10 18:59:38

Whether you’re just getting started or have been working with AI models for a while, there are some common machine learning and deep learning mistakes we all need to be aware of and reminded of from time to time. These can cause major headaches down the road if left unchecked! If we pay close attention to our data, model infrastructure, and verify our outputs as well we can sharpen our skills in practicing good data scientist habits. Machine Learning and Deep Learning Data Mistakes to Avoid When getting started in machine learning and deep learning there are mistakes that are easy to avoid. Paying close attention to the data we input (as well as the output data) is crucial to our deep learning and neural network models. The importance in preparing your dataset before running the models is imperative to a strong model. When training an AI model, 80% of the work is data preparation (gathering, cleaning, and preprocessing the data), while the last 20% is reserved for model selection, training, tuning, and evaluation. Here are some common mistakes and limitations we face when training data-driven AI models.

View more...

Which Type of MFA Is Most Secure?

Aggregated on: 2023-02-10 18:29:38

More and more people are adopting multi-factor authentication today to protect themselves from increasing rates of hacking and data theft. Several popular options are available for MFA, but which is the most secure and effective?  1. Social Media Login One of the most common types of MFA is social media login. This method avoids using a password by having the user log in using a verified social media account. Most of today’s leading social media sites have their own two-factor authentication methods, such as one-time SMS codes. By logging in to other sites using a secure social media account, users can minimize the number of unique passwords they have to create and store.

View more...

Creating a Polar Chart to Measure Electromagnetic Field Strength

Aggregated on: 2023-02-10 17:44:38

JavaScript polar charts, also known as radar charts, are a type of data visualization that displays multivariate data in a circular format.  These charts are often used to represent multivariate data sets in a way that allows for easy comparison between data points and quick identification of trends and patterns. 

View more...

Building Your Own Apache Kafka Connectors

Aggregated on: 2023-02-10 16:44:38

One of the best ways to describe what is open source is by saying that it is the art of democratizing knowledge. I like this description because it captures the essence of what open source really does—sharing knowledge that people can use to solve recurring problems. By recurring problem, I mean any problem that can be experienced by different people sharing the same context. Building Apache Kafka connectors is a good example. Different people may need to build one, and the reason is often the need to integrate with external systems. In this blog post, I will share the details of a very nice GitHub repository that does exactly this. Kafka Connectors: What, Why, and When Apache Kafka by itself is just a dumb pipe. It allows you to durably and reliably store streams of events and share them with multiple systems interested in either getting a copy of the data or processing it. To bring data in and to send data out, Kafka relies on another layer of technology called Kafka Connect. This is an integration platform that allows builders to connect with different systems via specialized connectors. There is a great number of connectors developed for different systems, available as both commercial and free offerings here. However, there are situations where you simply can't use them. Some of these connectors may not be available for the specific system you intend to connect; maybe you can't pay for the commercial licenses, or perhaps they don't offer the exact support you are expecting.

View more...

Securing Admin Access to Apache APISIX

Aggregated on: 2023-02-10 16:44:38

API Gateways are critical components in one's infrastructure. If an attacker could change the configuration of routes, they could direct traffic to their infrastructure. Consequences could range from data theft to financial losses. Worse, data theft could only be noticed after a long time by mirroring the load. Hence, protecting your API Gateway is of utmost importance. In this short blog post, I'll list a couple of ways to secure your Apache APISIX admin access.

View more...

User Space Dynamic Tracing and Feedback Control

Aggregated on: 2023-02-10 16:14:38

This article describes the use of a C library named Melon for user space dynamic tracing, processing the tracing data, and feeding back the results to the program itself and other remote programs. When it comes to dynamic tracing, the first impression may be BPF, Dtrace, Systemtap, etc., but the dynamic tracing introduced in this article does not depend on these. The functions provided in Melon are more inclined to allow the program to complete its own dynamic tracing in the user space, without relying on the kernel, nor on Uprobe or USDT.

View more...

ChatGPT for Newbies in Data Science

Aggregated on: 2023-02-10 15:29:38

ChatGPT is a cutting-edge artificial intelligence model developed by OpenAI, designed to generate human-like text based on the input provided. This model is trained on a massive dataset of text data, giving it extensive knowledge of the patterns and relationships in language. With its ability to understand and generate text, ChatGPT can perform a wide range of Natural Language Processing (NLP) tasks, such as language translation, question-answering, and text generation. One of the most famous examples of ChatGPT's capabilities is its use in generating realistic chatbot conversations. Many companies and organizations have used chatbots to interact with customers, providing quick and accurate responses to common questions. Another example is the use of ChatGPT in language translation, where it can automatically translate text from one language to another, making communication more manageable and more accessible.

View more...

A SOFT Methodology to Define Robust Data Platforms

Aggregated on: 2023-02-10 15:29:38

In today's data-driven era, it's critical to design data platforms to help business to foster innovation and compete in the market. Selecting a robust, future-proof set of tools and architecture requires an act of balance between purely technological concerns and the wider constraints of the project. These constraints include challenges regarding regulations, existing workforce skills, talent acquisition, agreed timelines, and your company’s established processes. A modern data platform is the set of technologies, configuration, and implementation details that allows data to be stored and moved across the company systems to satisfy business needs. The SOFT methodology introduces an approach, based on four pillars, to define future-proof and effective data platforms that are scalable, observable, fast, and trustworthy. Its aim is to enable data architects and decision-makers to evaluate both current implementations and future architectures across a different set of criteria.

View more...

UUID: Coordination-Free Unique Keys

Aggregated on: 2023-02-10 14:59:38

Let’s build an IoT application with weather sensors deployed around the globe. The sensors will collect data and we store the data along with the IDs of the sensors. We’ll run multiple database instances, and the sensors will write to the geographically closest database. All databases will regularly exchange data, so all the databases will eventually have data from all the sensors. We need each sensor to have a globally unique ID. How can we achieve it? For example, we could run a service assigning sensor IDs as a part of the sensor installation procedure. It would mean additional architectural complexity, but it's doable. Sensor IDs are immutable, so each sensor needs to talk to the ID service only once - right after the installation. That’s not too bad.

View more...

Release Management: Is Your Product Ready for Success?

Aggregated on: 2023-02-10 14:29:38

You never get a second chance to make a first impression. So how do you make sure it's a good one? This matter is constantly in the mind of release managers and product owners because they know that once a product is set loose into the world, all bets are off. Although releasing a product or new feature may be tempting as soon as it is functional, users expect (and deserve) quality and polish. Therefore, before even reaching the beta test stage, much non-technical work must be done: documentation must be written, security must be assessed, and business objectives must be established. These are some things we have learned about software releases at Semaphore.

View more...

Why Data Competency Is Critical for Cyber Intelligence

Aggregated on: 2023-02-10 13:59:38

Data engineering is a skill that's used to collect and analyze data. Then, it can be used to understand the data's quality and make predictions about it. This makes it an essential skill for cyber intelligence professionals to ensure that their systems collect good quality information to make accurate predictions. Data science is a large field with many different sub-specialties, and data engineering is one such specialty. Its focus on understanding how systems work means that these professionals have an affinity for building things from scratch; this includes programming languages like Python or R rather than just using pre-existing software packages available via third-party vendors (such as Google Analytics).

View more...

How to Secure Your Website in 10 Easy Steps

Aggregated on: 2023-02-10 13:29:38

A website for your business is essential for reaching a wider audience and establishing a solid online presence. However, security should be a top priority when creating a website to protect your business and customers from cyber threats.  Securing a website is crucial in today's digital landscape, as it protects the website and its users from various threats such as hacking, data theft, and malware infections. This article will outline easy steps for creating and securing your website.

View more...

Multiplying Software Quality Using Three Documentation Types

Aggregated on: 2023-02-10 12:59:38

You know that documentation is crucial in any software development, mainly because it increases the quality, decreases the number of meetings, and makes the team more scalable. The question is how to start a new repository or a non-documentation project. This project will clarify how to start documentation in a regular source code repository. The documentation on the source repository applies as tactical documentation. There are also strategic ones that cover the architecture, such as the C4 model, tech radar, and architecture decision record (ADR), which we won't cover in this tutorial. 

View more...

Mastering the API Marketplace Supply Chain

Aggregated on: 2023-02-10 03:44:38

API Marketplaces: Boom or Bust? In recent years, we’ve seen an explosion of buzz and tooling surrounding API marketplaces. The vision is clear; create a flourishing ecosystem where internal, partner, and/or public consumers can find, understand, and subscribe to your APIs to build better products and services. APIs are productized and directly or indirectly monetized. And fundamentally, we’re able to deliver on the promises of the API economy. But in practice, many marketplaces are falling short in both traction and ROI for organizations. When setting up a marketplace, many focus on the end result: a set of perfect APIs, advertised in a storefront that provides a great consumer subscribing and onboarding experience. But, without mastering the marketplace supply chain in a way that’s always on and always connected, the marketplace vision becomes just a glamorized developer portal and lacks strategic value.

View more...

Get Up to Speed With the Latest Cybersecurity Standard for Consumer IoT

Aggregated on: 2023-02-10 03:14:38

With growing concern regarding data privacy and data safety today, Internet of Things (IoT) manufacturers have to up their game if they want to maintain consumer trust. This is the shared goal of the latest cybersecurity standard from the European Telecommunications Standards Institute (ETSI). Known as ETSI EN 303 645, the standard for consumer devices seeks to ensure data safety and achieve widespread manufacturer compliance. So, let’s dive deeper into this standard as more devices enter the home and workplace.

View more...

Integrating DevOps with IT Service Management (ITSM): Best Practices for Effective DevOps-ITSM Integration

Aggregated on: 2023-02-10 00:59:37

Integrating DevOps with IT Service Management (ITSM) is a critical step for organizations looking to improve the speed, quality, and reliability of their software delivery processes. DevOps and ITSM are complementary approaches that can significantly benefit each other when integrated effectively. DevOps focuses on automating and streamlining the software delivery pipeline to improve the speed of delivery and reduce downtime. On the other hand, ITSM prioritizes service quality, availability, and support, ensuring that the end-user experience is seamless and efficient. By integrating DevOps and ITSM, organizations achieve better alignment between development and operations teams, reduce downtime, and improve the overall user experience. This integration enables organizations to create a more collaborative and efficient environment for their software delivery processes. It also helps organizations stay ahead of the curve in the fast-paced world of technology.

View more...

Get Started With Trino and Alluxio in Five Minutes

Aggregated on: 2023-02-10 00:59:37

Trino is an open-source distributed SQL query engine designed to query large data sets distributed over one or more heterogeneous data sources. Trino was designed to handle data warehousing, ETL, and interactive analytics by large amounts of data and producing reports.  Alluxio is an open-source data orchestration platform for large-scale analytics and AI. Alluxio sits between compute frameworks such as Trino and Apache Spark and various storage systems like Amazon S3, Google Cloud Storage, HDFS, and MinIO. 

View more...

Efficient Tools for Generating Mockserver From OpenAPI Spec and Tracking Changes

Aggregated on: 2023-02-09 23:14:37

Building an application with an undeveloped external API can be challenging. However, HTTP mocking tools can alleviate this pain point and simplify the development and testing process. A mock server uses fake responses to imitate a real server, enabling parallel development and early-stage testing. It allows developers to test API-consuming components before the actual backend is ready and provides faster feedback for improvement.

View more...

Principle of DevOps: Establish a Successful Development Team

Aggregated on: 2023-02-09 22:29:37

Undertaking a DevOps transformation can be overwhelming for many organizations. The initial phase of the journey can be complex and more challenging; "Where do I begin?" and "What quick successes can I attain to foster early progress?" It is easier said than done to define the objectives and framework of a DevOps transformation.  In this article, I will explain the principle of DevOps and also discuss the steps to establish and maintain top-notch performance to embed the DevOps principles into the DNA of the organizational culture.

View more...

Guide To Developing an Effective and Optimized Software

Aggregated on: 2023-02-09 21:59:37

Software development is a complex process, and it can take weeks or even months to create a complete product. However, when you understand the basics of software development and follow best practices for creating an effective and optimized software product, you can reduce the amount of time needed to create a quality product. In this article, we will go step-by-step through the essential steps of developing an effective and optimized software solution. Software Development Introduction Software development is the process of creating, testing, and maintaining software applications. It involves the use of various programming languages and tools to create and test software programs. The first step in software development is gathering client or customer requirements. This helps developers understand what the software should do and how it should work.

View more...

I Don’t TDD: Pragmatic Testing With Java

Aggregated on: 2023-02-09 21:29:37

We're building a Google Photos clone, and testing is damn hard!  How do we test that our Java app spawns the correct ImageMagick processes or that the resulting thumbnails are the correct size and indeed thumbnails, not just random pictures of cats? How do we test different ImageMagick versions and operating systems? 

View more...

GitLab as Helm Chart Registry With GitLab CI

Aggregated on: 2023-02-09 20:14:37

Kubernetes Helm Chart Charts are the packaging format that Helm utilizes. A chart is a group of files that list several Kubernetes resources that are related to one another. One chart may be used to deploy a simple pod, something straightforward, or an entire web app architecture, including HTTP servers, databases, caches, and other various components. Prerequisites Understanding of Kubernetes and Kubernetes setup on your machine. Basic understanding of Helm and installed on your machine. GitLab account. Set Up GitLab as Helm Chart Registry Creating a Helm Chart In this article, a Helm chart will be created, pushed to the GitLab project, packaged, and made available on the GitLab package registry, which we can use later to install on our Kubernetes clusters.

View more...

GraphQL vs REST: Differences, Similarities, and Why To Use Them

Aggregated on: 2023-02-09 19:14:37

Modern applications allow us to get connected to the world like never before. However, how is this structure so effective in providing a robust connection between different applications and data sharing between different devices? API (Application Programming Interface) allows developers to build complex features and expose application functionalities as resources. The purpose of an API is to communicate between the client and server. This includes the processes of data transfers, data security, and distribution to different networks and third-party applications. The beauty of APIs is that anyone can access information and features that would otherwise be unobtainable without the need to provide any custom code or integrations.

View more...

What Is Azure Service Bus?

Aggregated on: 2023-02-09 18:44:37

Introduction Message queues and publish-subscribe topics are features of the fully managed enterprise message broker Azure Service Bus (in a namespace). The following advantages are available when using Service Bus to decouple applications and services from one another: Distributing tasks among rival employees. Exchanging data and control across service and application boundaries in a secure manner. Coordinating transactional work that requires a high degree of reliability. Overview of Microsoft's Azure Bus Service Messages are used to move data between various apps and services. A message is a data-filled container that has metadata on it. Any type of information can be used as the data, including structured data stored in popular formats like JSON, XML, Apache Avro, and plain text. 

View more...

O11y Guide: Exploring Perses Dashboards

Aggregated on: 2023-02-09 16:44:37

In this eighth installment of the series covering my journey into the world of cloud-native observability, I'm continuing to explore an open-source project called Perses. If you missed any of the previous articles, head on back to the introduction for a quick update. After laying out the groundwork for this series in the initial article, I spent some time in the second article sharing who the observability players are. I also discussed the teams that these players are on in this world of cloud-native o11y. For the third article, I looked at the ongoing discussion around monitoring pillars versus phases. In the fourth article, I talked about keeping your options open with open-source standards. In the fifth article in this series, I talked about bringing monolithic applications into the cloud-native o11y world. In my sixth article, I provided you with an introduction to a new open-source dashboard and visualization project and shared how to install the project on your local developer machine. In the previous and seventh article, I explored the API and tooling provided by the Perses project.

View more...

Introduction to Kubernetes Event-Driven Auto-Scaling (KEDA)

Aggregated on: 2023-02-09 15:14:37

Manual scaling is slowly becoming a thing of the past. Currently, autoscaling is the norm, and organizations that deploy into Kubernetes clusters get built-in autoscaling features like HPA (Horizontal Pod Autoscaling) and VPA (Vertical Pod Autoscaling). But these solutions have limitations. For example, it's difficult for HPA to scale back the number of pods to zero or (de)scale pods based on metrics other than memory or CPU usage. As a result, KEDA (Kubernetes Event-Driven Autoscaling) was introduced to address some of these challenges in autoscaling K8s workloads. In this blog, we will delve into KEDA and discuss the following points: What is KEDA?KEDA architecture and componentsKEDA installation and demoIntegrate KEDA in CI/CD pipelines What Is KEDA? KEDA is a lightweight, open-source Kubernetes event-driven autoscaler that DevOps, SRE, and Ops teams use to scale pods horizontally based on external events or triggers. KEDA helps to extend the capability of native Kubernetes autoscaling solutions, which rely on standard resource metrics such as CPU or memory. You can deploy KEDA into a Kubernetes cluster and manage the scaling of pods using custom resource definitions (CRDs).

View more...

gRPC vs. REST

Aggregated on: 2023-02-09 14:14:37

REST or gRPC, which should you choose? In this article, we will look at gRPC and REST client-server architectures for communication and compare their strengths and weaknesses and the factors you should consider to make the right choice. The popular client-server architecture divides communication into two parts: 

View more...

Ensuring Predictable Performance in Distributed Systems

Aggregated on: 2023-02-09 13:44:37

Latency spikes can be a frustrating reality for many organizations, especially regarding tail percentiles. It's not uncommon to see unexplained spikes in latency, especially when there's no deliberate focus on predictability. Consider a scenario where a web service must render a personalized web page. To provide a good user experience, ensuring low latency for 90% to 95% of requests is necessary. However, the page's content may require dozens or even hundreds of sub-requests from various components, each with its own variance and randomness. While each component may have low latency in 99% of cases, it might not be enough to guarantee consistent end-user latency. This highlights the importance of having the right Service Layer Objectives (SLOs) for each component to ensure overall system performance.

View more...