News AggregatorDocker Files and Volumes: Permission DeniedAggregated on: 2022-10-25 20:28:33 Encountered a ‘Permission Denied’ error on a file copied to a Docker image or when accessing a file on a mounted volume within a Docker container? In this blog, you will learn why you get a ‘Permission Denied’ error and how to solve it. Enjoy! 1. Introduction Before diving into the Permission Denied problem within Docker containers, it is good to have a basic knowledge how permissions function in Linux. If you are already familiar with these concepts, you can skip this paragraph. View more...Managed MQTT Broker Comparison — Product Packages and PricingAggregated on: 2022-10-25 19:43:33 What Is Managed MQTT Broker? What’s the Benefit? MQTT, “message queuing telemetry transport,” was created to solve problems of efficient use of the bandwidth of the low-speed data channel. Accordingly, server solutions (in particular messaging brokers) were needed to serve the operation of this protocol. Since cloud solutions are currently distributed in almost all areas of information technology, the corresponding cloud systems, or managed brokers, have appeared in the field of management and monitoring of the Internet of Things. View more...Monoliths to Microservices: Untangling Your SpaghettiAggregated on: 2022-10-25 19:43:33 I had the opportunity to meet with Bob Quillen, Chief Ecosystem Officer at vFunction. Bob presented in the Source Lounge in the Developer Hub at JavaOne. The premise of Bob's presentation is to use AI and automation to refactor monolithic apps into microservices faster, easier, and with less risk. The Pain Engineering velocity has slowed. Monolithic applications are hindering innovation due to compounding technical debt. The points of pain include: Long test cycles Long release cycles Inability to meet business requirements Difficult to ramp up developers Poor customer and user experience Technical debt has a people effect as well. Developers don't want to work on legacy code, they want to work on greenfield projects. Another pain is that engineering velocity has slowed. Monolithic applications do not scale and have zero elasticity. This results in out-of-control costs, downtime, and poor user experience. Microservices are more cost-efficient than monolithic applications. Microservices take advantage of cloud on-demand services like serverless. They also scale. The goal is to break monolithic applications into pieces. Modularize the components into containers. Doing this enables you to see how the code interoperates with each other. Seeing how things connect is a key architecture issue. Migration to Modernization Strategy The four stages of a migration to a modernization strategy are: View more...Troubleshooting App Unresponsiveness Due to Oracle DBAggregated on: 2022-10-25 19:28:33 Recently we encountered a production in an application. This application was connecting to multiple systems of records (SOR). Oracle RAC cluster is one of the primary systems of record. This Oracle RAC cluster was slowing down due to resource constraints. This slowdown in the Oracle RAC cluster degraded the entire application’s response time. In this post, let’s discuss the steps we pursued to troubleshoot this problem. Capturing Troubleshooting Artifacts The application was running on a WebLogic server. All of a sudden, this application started to become unresponsive. We ran the yCrash open-source script against it. This script captures 16 different troubleshooting artifacts such as Garbage Collection log, thread dump, heap dump, netstat, vmstat, iostat, top, etc. from the application stack. When an application becomes unresponsive, there could be multiple reasons for it: Garbage collection pauses, threads getting blocked, network connectivity issues, CPU starvation, memory constraints, etc. Thus, it’s ideal to capture all the troubleshooting artifacts. View more...Configure Single Sign On for CockroachDB CLI With Okta IdPAggregated on: 2022-10-25 18:43:33 CockroachDB supported Single Sign On for DB Console and CC Console for a while. Today, we're going to introduce Single Sign On for CockroachDB CLI. It is an industry-first method to authenticate to a database via JWT tokens. This capability allows you to authenticate with a cluster via an IdP of your choice and issue SQL commands. I've written articles covering SSO for DB Console previously. You may find articles covering Google OAuth, Microsoft Identity Platform and Okta. View more...Metaverse and Software Testing: Developing A More Accessible Virtual WorldAggregated on: 2022-10-25 17:43:33 Metaverse is one of the most talked about things at the moment. With its agnostic and industry-oriented nature, Metaverse applies to many dynamic use cases, from work to socialization and gaming, transforming lives in personal and professional spheres. In other words, the Metaverse will be the next big move for the transformation we will witness with all the upcoming applications, websites, and software solutions. However, driving the maximum value out of the metaverse concept requires immediate access to testing to validate the innovation benchmarks while working on user experience. View more...Keeping Sensitive Data Out of Your LogsAggregated on: 2022-10-25 17:43:33 If your organization builds or maintains an application stack that processes customer data, then you know that protecting sensitive data like personally identifiable information (PII) and personal healthcare information (PHI) is essential to keeping your business going and trusted by your customers. You might think it’s enough to store PII and PHI securely, only exposing it in the proper contexts through your system’s UI and APIs. However, some of the biggest breaches of customer data have happened because sensitive data found its way into poorly secured logs. How do you ensure that PII and PHI stay out of your logs? In this article, we’ll talk about how to isolate this sensitive data and which practices will assure your customers that they can trust you to protect their data. View more...Why Data Analytics Is Central to Digital Adoption OptimizationAggregated on: 2022-10-25 17:13:33 Big data is no longer a buzzword; data is generated at very mammoth rates daily; considering that each individual generates approximately 2.5 quintillion bytes daily, data scientists and analysts have a lot on “their plates.” Why data scientists and analysts need to buckle up is not far-fetched; a more significant proportion of the data we generate daily is in the unstructured or semi-structured format; for data analysts and scientists to effectively use data, they must work around the clock to ensure the data is structured. Incidentally, this is not a task that private and public organizations can embark on manually. There is a need for organizations to integrate digital adoption. View more...Three Ways To Scale Your Apps With RenderAggregated on: 2022-10-25 16:43:33 When your app is experiencing high traffic or utilization, you need to scale your service to handle that load. Scaling can be done either vertically or horizontally — or both! Vertical scaling means making a single resource bigger or more powerful. For example, you might add more CPU or RAM to your server. Horizontal scaling means creating multiple instances of the same service. For example, you might deploy three copies of your server instead of one and then place them all behind a load balancer that handles routing the traffic to each of them. Both types of scaling can be done manually or automatically (autoscaling). View more...An Overview of CI/CD Pipelines With KubernetesAggregated on: 2022-10-25 12:28:33 This is an article from DZone's 2022 Kubernetes in the Enterprise Trend Report.For more: Read the Report Automation and cross-functional collaboration are two fundamental features of a DevOps model. As one of the core components of a DevOps framework, continuous integration and continuous delivery (CI/CD) pipelines speed up application delivery by automating various stages of the software development lifecycle. Although Kubernetes inherently automates the delivery, scaling, and management of applications by deploying and orchestrating them in flexible, portable containers, adopting a CI/CD-based workflow brings a plethora of additional features by offering an iterative cycle of configuration merges and testing. View more...What Are the Key Applications and Benefits of IoT Fleet Management?Aggregated on: 2022-10-25 04:28:32 With IoT solutions implemented in fleet management, the supervisors and managers will know about the vehicle's health, current position, updates from the drive, fleet health, cargo, and so on. No matter where you are located, the right fleet management structure will make it more proactive and precise. Understanding Fleet Management and the Role of IoT The basic purpose of fleet management is to structure the fleet and its activities to get the best outcome. In terms of management, this includes taking care of the vehicles and drivers, monitoring the vehicle’s health, tracking the cargo, ensuring that the vehicles can deliver the cargo on time, adjusting the vehicle route, and so on. View more...Internal SecurityAggregated on: 2022-10-25 02:58:32 Sixty percent of security breaches are internal to the organization and yet when we think about security we usually think about vulnerabilities, exploits, and so on. All the while, 60 percent of hacks are just from a person just logging into the system and taking whatever the hell they want. I’ve been thinking about this quite a bit recently. I spent a great deal of time researching security-related issues for a chapter of my upcoming book and unfortunately found very little on hardening internal systems. Yes, there’s material about that too. But it seems that the vast majority is geared towards external threats rather than internal threats. I get that. Securing internally is hard, but it’s probably the most important thing we can do and it’s probably not as hard as many of us think. I’d like to preface this by stating that I’m not a security expert. The reason I’m writing this post is because most of us aren’t. So what can we “typical programmers” do to mitigate security risks? View more...The Rise of the Semantic Layer: Metrics On-The-FlyAggregated on: 2022-10-25 00:58:32 A semantic layer is something we use every day. We build dashboards with yearly and monthly aggregations. We design dimensions for drilling down reports by region, product, or whatever metrics we are interested in. What has changed is that we no longer use a singular business intelligence tool; different teams use different visualizations (BI, notebooks, and embedded analytics). Instead of re-creating siloed metrics in each app, we want to define them once, open in a version-controlled way and sync them into each visualization tool. That’s what the semantic layer does, primarily defined as YAML. Additionally, the semantic layer adds powerful layers such as APIs, caching, access control, data modeling, and metrics layer. View more...What Aren’t Events?Aggregated on: 2022-10-24 23:58:32 Despite the hype around ‘Event-Driven Architecture’ (EDA) over the past few years, I am confident that you will be unable to find a solid definition for ‘Event,’ on the web today. After an hour of research, the best definition I managed to find is one of several definitions provided by Red Hat: “We will define a software event as the immutable record that something happened within an application… Normally, events are broadcast to notify of change or replicate state across multiple applications.” Here, Red Hat are talking specifically about ‘Software Events’: each of which signals a ‘change of state’ in a particular ‘entity’ (e.g. Customer address changed) within a given distributed application. This definition perhaps seems very straightforward, but what is not mentioned, is that there are in fact three different types of ‘Events’ according to today’s pundits: View more...Key Takeaways After Reading the Latest Amazon DynamoDB PaperAggregated on: 2022-10-24 21:13:32 It’s been a long time since DynamoDB published a paper. A few days ago, I read its newly published one, “Amazon DynamoDB: A Scalable, Predictably Performant, and Fully Managed NoSQL Database Service,” and I think it’s one of the most practical papers in recent years for large-scale distributed systems from an engineering perspective. It doesn’t even explain much about the architecture because it doesn’t need to. Shared-nothing systems look similar, and the authors know exactly who the readers of this paper are ^_^. What’s more, the paper is written simply, and there’s no math! After all, DynamoDB doesn’t need to try to “prove” anything. It has fully proven itself in the past ten years, both in terms of scale and stability. I found that the paper is relatively new, and not too many blogs talk about it, so why don’t I write something about it? View more...Use Selenium Wait for Page to Load With Python [Tutorial]Aggregated on: 2022-10-24 20:13:32 One of the primary requisites to automate interactions with a WebElement in the DOM is that it should be visible and intractable. Like me, you would also come across several scenarios where your Selenium Python scripts threw an ElementNotVisibleException. The failure in the test automation script can be attributed to the presence of dynamic WebElements on the web page. The WebElement under test might not have been loaded on the web page, and your test is trying to perform some activity on that WebElement. It is known that dynamic content loading with AJAX is widely used across different web products (or websites). When interacting with dynamic WebElements using Selenium test automation, it is recommended to add Selenium to wait for the page to load so that the element is available for performing tests. View more...Best 10 Front-End Technologies for Web DevelopmentAggregated on: 2022-10-24 19:28:32 In this Covid-struck era, digitization has become more important than ever. Front-end technologies, such as front-end frameworks, have been instrumental in developing all software applications. Although the back end is important, it is not the first thing users encounter. View more...Java Records — Etched in FinalityAggregated on: 2022-10-24 18:58:32 This article uses a story format to show the concept of records in Java. It shows the different concepts and parts that make up the records, including a restricted identifier, java.lang.Record, Components, Canonical, Compact, Normal constructors, and more. The Minimalist — A Resolution Working from home has taught some of us to think of being minimalistic. It was no different for our protagonist, “Dev” — Dev decided to be minimalistic with respect to some of the dresses — So he decided to keep track of what he was wearing to donate the new dresses. To keep it simple, he decided to keep track of two items, shirts and shoes, and wrote the following class in Java: View more...The Top Elastic Beanstalk Alternatives for Startups in 2022Aggregated on: 2022-10-24 17:13:32 Developers at startups are almost always faced with the question of the most cost-effective way of getting the benefits of the cloud without managing the underlying systems. Years ago, when we were still building monoliths and using EC2 instances, Elastic Beanstalk (or Google App Engine and Azure App Service) was a tempting choice for young start-ups looking to deploy fast. Even then, Elastic Beanstalk (EB) was a fit only for non-mission-critical applications that required standard configuration and deployments. (Here are some accounts of real developers getting their hands burnt with EB). Besides, Elastic Beanstalk has not seen a major upgrade for some time, so should you use it even for non-mission-critical applications? What are the modern alternatives to Elastic Beanstalk in 2022? View more...Event Stream Programming Unplugged —Part 1Aggregated on: 2022-10-24 16:28:32 Welcome to event streaming unplugged; this is the first in a series of articles covering the topic of real-time event stream processing. This is a practical programming series with resources at unplugged part 1. What you will learn in these articles: The basics of unbounded event processing. Functional reactive programming introducing concepts like map, filtering, groupBy, and flatMap. Constructing directd acyclic execution graphs. Managing event streams of heterogeneous types. Imperative event programming, integrating application code. Input and output. Building, testing, and deploying. Auditing, logging, and debugging event execution flow. This article starts with a simple hello world and then moves on to a more complex example. The second example calculates the mark-to-market value for a set of traded currency pairs. Two independent event streams, instrument market price and execute trades, are processed. Batches of trades and reset signals are also supported. A more complex example serves as a meaningful comparison to an imperative solution. The open-source event stream processing library Fluxtion is used to implement the examples. I hope to receive feedback on the library and make improvements. Unplugged From What? There are many great products and projects available that offer real-time stream processing capabilities, but in general, they come connected to an infrastructure service or some other unrelated concerns. This series is focused on processing logic, so we are unplugged from: View more...The Power of Communities for Open-Source and the KIE CommunityAggregated on: 2022-10-24 13:28:32 What Is KIE, After All? If you work with projects like jBPM, Drools, OptaPlanner, and Kogito, there is a high probability of seeing “KIE” somewhere. Either in APIs, package names, communities, etc. So let’s take some time to clarify what KIE is. Understanding KIE will unlock your understanding of how to mix and naturally match these projects and deliver reliable and production-ready solutions for several business automation scenarios. View more...Architectural Patterns for Microservices With KubernetesAggregated on: 2022-10-24 12:13:32 This is an article from DZone's 2022 Kubernetes in the Enterprise Trend Report.For more: Read the Report For some time, microservices have drawn interest across the architecture and software engineering landscape, and now, applications comprised of microservices have become commonplace. So what exactly is the definition of a microservice? That is somewhat of a loaded question as there is plenty of debate on granularity, segmentation, and what designates a microservice. For the purposes of this discussion, a microservices-based architecture is segmenting an application's units of work into discrete, interoperable components. This is a broad definition, but it is workable in that it identifies two foundational microservice concepts: discrete and interoperable. View more...Mock gRPC Services for Unit TestingAggregated on: 2022-10-24 00:58:32 In our day-to-day work, we develop applications that include interactions with software components through I/O. They can be a database, a broker, or some form of blob storage. Take, for example, the cloud components you interact with: Azure Storage Queue, SQS, Pub/Sub. The communication with those components usually happens with an SDK. From the start, testing will kick in. Therefore, the interaction with those components should be tackled in a testing context. An approach is to use installations (or simulators) of those components and have the code interacting with an actual instance, just like the way it can be achieved by using test containers or by creating infrastructure for testing purposes only.Another approach is to spin up a mock service of the components and have the tests interacting with it. A good example of this can be Hoverfly. A simulated HTTP service is run during testing and test cases interact with it. View more...How Disaster Recovery Solutions for Cloud Databases Have Evolved Over the YearsAggregated on: 2022-10-24 00:13:32 Disaster recovery (DR) is a core feature of enterprise-level databases. Database vendors are constantly looking to improve DR, and in the last 10 years they’ve made major innovations. This article is a brief history of database DR, with an emphasis on DR and high availability (HA) innovations in cloud-based distributed databases. View more...What is GitOps?Aggregated on: 2022-10-24 00:13:32 What is GitOps? Well, GitOps is a software development framework that enables organizations to continuously deliver software applications while efficiently managing IT infrastructure using Git as a single source of truth. GitOps, a subset of DevOps, combines Infrastructure-as-Code (IaC) and DevOps best practices to create an operating model for managing architecture and instantly reproducing the system’s cloud infrastructure based on the state of Git repos. While there are several tools and solutions for software development, infrastructure management has always been a complex task. It requires expert knowledge to build and maintain infrastructure. DevOps revolutionized the software development landscape and empowered infrastructure management with the “Infrastructure-as-Code (IaC)” approach. View more...How to Calculate OHLC Bars in DolphinDBAggregated on: 2022-10-23 16:13:32 OHLC bars can be efficiently calculated in various scenarios in DolphinDB. This tutorial will introduce how to calculate OHLC bars with historical data and real-time data. With historical data We will explain how to calculate OHLC bars with batch calculation for the following scenarios: View more...How a Trained Therapist Diagnoses Healthy Dev TeamsAggregated on: 2022-10-23 15:43:32 Not only is Kelly Vaughn one of the pioneers in building thought-leadership content for the developer community, she’s one of the rare programmers who comes to the craft with the background of a trained therapist. From knowing what content devs need to grow to being able to recognize the cognitive-behavioral impacts of the developer experience, Kelly Vaughn is truly one of our most unique guests to date. View more...The Technology Stack Needed To Build a Web3 ApplicationAggregated on: 2022-10-22 22:43:31 The internet ecosystem is currently shifting significantly with the dawn of decentralization. More and more decentralized technologies are becoming mainstream and gaining acceptance by the world at large. As far as innovation and development is concerned, the startup way of doing things has prevailed. While more prominent companies have tried to get into the space, none of their projects has been groundbreaking regarding their usage. Startups have the upper edge, with many creating successful businesses like opensea.io, Alchemy, and IPFS/filecoin (Protocol Labs). View more...JQueue: A Library to Implement the Outbox PatternAggregated on: 2022-10-22 16:43:31 In microservices or any other event-based architecture, in some use cases, a service might require us to make changes to their own local database and also publish an event. That event is then consumed by other services. To have a consistent software system, it is mandatory that these two actions get performed atomically. Both actions need to complete successfully, or none of them need to complete. There should not be another way. An elegant way to solve this is by using the Outbox Pattern. This works by using a database table (if your service uses a relational database), usually called the outbox table, to store the events. In this case, you are able to include the insert SQL statement of the event into the use case local transaction. Another runner can periodically check if the outbox table is not empty and process the events by publishing them into a message broker. View more...Caching in RavenDBAggregated on: 2022-10-22 16:13:31 Generally speaking, retrieving data from main memory is about four times faster than from a solid state drive, which in turn is about 150 times faster than from a server across the network. These values can vary a lot, but what’s certain is that the source of the data significantly affects the speed of retrieval. Caching is the process of temporarily storing a copy of retrieved data in a more quickly accessible (lower latency) location, called a cache. It’s used to speed up applications by allowing subsequent requests for the same data to be served from the cache orders of magnitude faster than from the original source. View more...Searchable Pod Logs on Kubernetes in MinutesAggregated on: 2022-10-22 16:13:31 Log data, as it grows in importance and its sheer volume – is increasingly looking like analytical data. Small, semi-structured datasets in high volumes, critical insights to be captured from the data – the boundary between a log and an analytical event is as thin as ever. Organisations are adapting by switching to OLAP stores like ClickHouse for their log storage. But OLAP platforms are essentially databases, built for BI-type use cases. This leaves a huge gap in the overall experience. Most important logging features like alerts, correlation, deep diving into an incident, and much more are not at all available. View more...Is There Life Without RTTI or How We Wrote Our Own dynamic_castAggregated on: 2022-10-22 15:13:31 There aren't many things left in modern C++ that don't fit the "Don't pay for what you don't use" paradigm. One of them is dynamic_cast. In this article, we'll find out what's wrong with it, and after that — try to find an alternative. About dynamic_cast Let's refresh our memory about the C++ basics. If you find that part boring, you can always skip it. View more...Understanding MQTT Topics and Wildcards by CaseAggregated on: 2022-10-22 15:13:31 An MQTT topic is a UTF-8 encoded string that is the basis for message routing in the MQTT protocol. A topic is typically leveled and separated with a slash / between the levels. This is similar to URL paths, for example: Plain Text chat/room/1 sensor/10/temperature sensor/+/temperature sensor/# In comparison to topics in other messaging systems, for example, Kafka and Pulsar, MQTT topics are not to be created in advance. The client creates the topic when subscribing or publishing, and does not need to delete the topic. View more...JavaOne 2022: Java Continues to EvolveAggregated on: 2022-10-22 14:43:31 I met with Georges Saab, Senior Vice President, Java Platform Group, Oracle Chair, OpenJDK Governing Board following his keynote at JavaOne. This was the first JavaOne conference since 2017 and was held in conjunction with Oracle Cloud World. Java has been around for 27 years. It continues to be an important language for enterprises and developers. It's the preferred language for technology trends in development and organizational use. There are 60 billion active JVMs and 38 billion cloud-based JVMs. View more...Advanced Guide to Helm Charts for Package Management in KubernetesAggregated on: 2022-10-22 14:28:31 This is an article from DZone's 2022 Kubernetes in the Enterprise Trend Report.For more: Read the Report Helm is undoubtedly one of the most popular and successful open-source projects in the Kubernetes ecosystem. Since it was introduced at the inaugural KubeCon in 2015, Helm's usage has steadily grown to solidify its status as the de facto package manager for Kubernetes. It graduated from the Cloud Native Computing Foundation in 2020, and in the CNCF Survey 2020, more than 60% of the survey respondents reported Helm as their preferred method for packaging Kubernetes applications. This rates significantly higher than Kustomize and other managed Kubernetes offerings. View more...Scaling… to K8s MessAggregated on: 2022-10-22 01:28:31 This is an article from DZone's 2022 Kubernetes in the Enterprise Trend Report.For more: Read the Report View more...Advancements in Cloud-Native and Kubernetes ObservabilityAggregated on: 2022-10-21 12:13:30 This is an article from DZone's 2022 Kubernetes in the Enterprise Trend Report.For more: Read the Report In today's world, it's more important than ever to have visibility into your system's performance and health. Modern applications rely on complex microservices architectures and cloud-native technologies, like Kubernetes. Observability helps us understand not just application behavior, but also infrastructure configuration changes and dependencies, as they happen in real-time. View more...Writing an API Wrapper in GolangAggregated on: 2022-10-21 03:43:30 I had a really time-limited effort to do to prove how to write a command line wrapper for an open API a customer is developing. The target REST API is the jquants-api, as presented in a previous article. View more...iOS Meets IoT: Five Steps to Building Connected Device Apps for AppleAggregated on: 2022-10-21 03:28:30 Smartphones continue to evolve the functionality of connected devices. Mobile apps now serve as the principal means of device control in the Internet of Things (IoT). Instead of hardwired screens and buttons, today’s developers are offloading the vast majority of user interfaces to our handheld companions. In this way, app developers must ensure their designs are user-friendly and technically sound. And, with more than one billion of them around the world, this means developers need to consider the ins and outs of the iPhone. Apple’s flagship device counts a unique operating system — iOS — that should not be ignored in app rollouts. View more...Why Passkeys Are Better Than PasswordsAggregated on: 2022-10-21 02:43:30 Maybe you’ve had the feeling — or maybe you’ve imagined it. The feeling of your stomach sinking to the bottom of your belly. That panic you feel the very second you realize that you just entered your login credentials into a fake website. Maybe you realized it right away. Or maybe you realized because you went back the next day and couldn’t log in. Maybe you realized it because your bank account has been cleaned out. However you realized — or imagined — it, it’s not a feeling you ever want to have. But imagine not having to worry about that ever again. View more...The Art of Engineering ManagementAggregated on: 2022-10-21 02:28:30 Engineering teams are the core of every software development company. For some, establishing an engineering team may seem a challenge but for many keeping a motivational and collaborative atmosphere is a desired goal for the long term. I had a chance to interview one of the successful CEOs of a new startup who has been successful in engineering management. He is going to share with us the secret behind his management style. My guest this week in the Proof Of Concept was Thomas Hansen, founder of Aista, who has experience in software development for over two decades. He is an exceptional founder who is developing his platform while managing his team and growing his startup. It's a fantastic talk, and I invite you to watch it. View more...The Importance of Kubernetes in the Cloud-Native EcosystemAggregated on: 2022-10-21 01:28:30 This is an article from DZone's 2022 Kubernetes in the Enterprise Trend Report.For more: Read the Report If you are a developer or an engineer working in the software industry, then you have undoubtedly noticed the complexity of managing resources across different services and applications. This is especially true when your company has scaled beyond a single data center or environment. With so many stakeholders involved in various projects, it becomes difficult for everyone to keep track of where everything stands at any given time. This is where Kubernetes comes into the picture. View more...gRPC Introduction and Implementation Using .NET Core 6Aggregated on: 2022-10-21 00:13:30 Prerequisites "Visual Studio 2022" Basic Knowledge of C# Agenda Introduction of gRPC Scenarios Where gRPC is Used Pros and Cons of gRPC Implementation of gRPC Introduction gRPC stands for Google Remote Procedure Calls. gRPC is a modern, open-source, high-performance remote procedure call (RPC) framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking, and authentication. It is also applicable in the last mile of distributed computing to connect devices, mobile applications, and browsers to back-end services. — gRPC Website Figure From grpc.io gRPC is the framework used to implement APIs using HTTP/2. gRPC uses protocol buffers (protobuf) for serialization and the HTTP/2 protocol, which provides more advantages than HTTP. gRPC clients and servers intercommunicate using a variety of environments and machines. It also supports many languages like Java, C#, Go, Ruby, and Python. The binary layer of gRPC will do all data operations like encoding and uses protobuf as an intermediator between client and server, improving performance. It is also used for communication between multiple microservices efficiently. Scenarios Where gRPC Is Used When we use microservice architecture, we use it for internal communication from one or more servers. When performance is a high priority and low latency. When we require duplex communication between services with different types of data. Pros and Cons of gRPC gRPC Pros High performance—faster than REST and SOAP Lightweight messages—gRPC messages are more lightweight than other types like JSON. Higher efficiency Duplex data streaming gRPC Cons Limited browser support Uses binary data because it’s not easily readable like JSON or XML. Implementation of gRPC Step 1 Create a new gRPC project View more...Node.js Unit Testing Automation With Drone CI Using Mocha FrameworkAggregated on: 2022-10-20 23:43:30 Unit testing is an essential practice of any software development lifecycle and can’t be avoided. In today’s modern cloud-native space, automating the testing part is in high demand with so many available platforms and tools. This automation of testing can be done through the continuous integration process. Continuous integration forms an essential method in the DevOps wonderland. It is a process that helps developers test and build their code to make sure nothing is breaking and can be confidently integrated into the main branch with a simple approval by an approver. The continuous integration process can be seamlessly automated with Drone CI to test, build, and give confidence to your developers. With continuous integration, developers can save a lot of time on manual testing and focus their valuable time on building rich features that their customers need. Today, we will see how to do continuous integration using Drone CI, taking a simple Node.js application and Mocha as our unit testing framework. Prerequisites Download and install Node.js from the official website View more...Why Is the Flutter Framework Better Than React Native?Aggregated on: 2022-10-20 22:13:30 Flutter is a new framework for developing mobile apps that promise to be faster and more efficient than React Native. But what exactly is Flutter, and how does it compare to React Native? Flutter is a mobile app SDK that allows developers to create high-quality native apps for both iOS and Android. Flutter uses the Dart programming language, which is similar to JavaScript, but with some important differences. View more...What Is BDD? - A Complete GuideAggregated on: 2022-10-20 21:13:30 Behavior Driven Development, or BDD for short, is a subset of the values outlined by Test Driven Development. We create the object correctly when using test-driven development. Contrarily, behaviour-driven development makes sure we create the right object. Essentially, TDD is extended by behaviour-driven development. Using Cucumber and SpecFlow in a BDD testing framework enables non-technical product owners to specify application behaviour as human-readable text. View more...Building a NestJS Rest API Using Prisma ORMAggregated on: 2022-10-20 20:28:30 NestJS is a pretty solid framework for building backend applications. In this post, we are going to take our NestJS knowledge and combine it with Prisma to build a RESTful API. This post is going to have a bunch of code that you can get from the Github link at the end or you can also code along. View more...Kubernetes: Beyond Container OrchestrationAggregated on: 2022-10-20 19:28:30 This is an article from DZone's 2022 Kubernetes in the Enterprise Trend Report.For more: Read the Report Kubernetes today is the most prominent and prevailing container orchestration engine. Kubernetes became central to cloud-native computing because it is open source and has a rapidly growing ecosystem. If we observe its evolution and adoption trend in the last few years, especially around the cloud-native world, it is more than "just" a container orchestration tool. It has outgrown being a container orchestration engine and is now a frontline building block of a next-generation cloud-native ecosystem. View more...Data Streaming for Data Ingestion Into the Data Warehouse and Data LakeAggregated on: 2022-10-20 18:28:30 The concepts and architectures of a data warehouse, a data lake, and data streaming are complementary to solving business problems. Storing data at rest for reporting and analytics requires different capabilities and SLAs than continuously processing data in motion for real-time workloads. Many open-source frameworks, commercial products, and SaaS cloud services exist. Unfortunately, the underlying technologies are often misunderstood and overused for monolithic and inflexible architectures, and vendors pitch for the wrong use cases. Let’s explore this dilemma in a blog series. Learn how to build a modern data stack with cloud-native technologies. Blog Series: Data Warehouse vs. Data Lake vs. Data Streaming This blog series explores concepts, features, and trade-offs of a modern data stack using a data warehouse, data lake, and data streaming together: View more...Great Time at JavaZone 2022Aggregated on: 2022-10-20 16:58:30 I had a pretty awful travel experience trying to reach Oslo, but it’s all worth it for what is possibly my favorite conference: JavaZone. I absolutely love this conference. It has everything: Sense of humor, craziness, heavy metal, continuous integration of food and amazing talks with great people. This years conference has a fantasy theme which fits into the "weirdness" of the conference. Notice that when I say "weird" this is one of the highest complements I can give a conference. I a world of cookie cutter conferences JavaZone is unique in every way. See this opening scene in the morning of the first day... </div> View more... |
|
|