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 ]

Delivering messages at the scale of the World Cup

Categories

Tags messaging cloud queues nosql microservices

Events like the World Cup bring together a huge number of fans like Alex all over the world. The biggest challenge in maintaining such a service is scale. The type of traffic for such events can be extremely spiky. A very steady traffic volume can suddenly spike when Mbappe scores the goal that ties the game. Suddenly, FCM needs to notify 250M users about this event. By Michelangelo Mecozzi.

To prepare for an event of this size, Firebase Messaging implemented several changes and best practices that we want to share with the rest of the engineering community. Hopefully, lessons learned here will help you prepare your infrastructure for the next big event. The article then delve into:

  • Understanding the traffic
    • Using the past to predict the future
  • Capacity planning
  • Load balancing
  • Defense in depth
  • Cluster scaling
  • Load tests

Managing high spikes in traffic is certainly no easy task. But equipped with the right best practices and the most effective mitigation strategies, you will be in the best position to handle large traffic volumes. Very interesting!

[Read More]

Character sets and collations in MySQL

Categories

Tags web-development app-development sql database how-to

Understanding the differences between character sets and collations in MySQL. Character sets and collations are fundamentally important concepts to understand when dealing with string columns in MySQL. A slight misunderstanding of either can lead to poor performance or unexpected errors when inserting data. By planetscale.com.

The article then goes over (with examples):

  • Character sets in MySQL
  • How do you define a character set?
  • Collations in MySQL#
  • How do you define a collation?#

MySQL supports a wide range of character sets, which you can view by selecting from the information_schema database. There are a few ways to define the character set of a column. If you don’t specify a character set at the table or column level, the server default of utf8mb4 will be applied (unless you’ve explicitly declared a different server or database default).

While character sets define the legal characters that can be stored in a column, collations are rules that determine how string comparisons are made. If you are sorting or comparing strings, MySQL uses the collation to decide the order and whether the strings are the same. Understanding character sets and collations is fundamental when dealing with string data in MySQL. A character set defines the legal characters that can be stored in a column, while a collation determines how string comparisons are made. Good read!

[Read More]

PayPal open sources key-value store JunoDB

Categories

Tags open-source performance web-development app-development database

PayPal last month released the source code for JunoDB, a distributed key-value store it developed internally and which today powers a variety of backend services at the payment site, including 350 billion transaction requests per day, the company says. By Alex Woodie.

JunoDB was originally developed over a decade ago in C++ to address the specific needs of the company. Since no commercial or open-source solutions were available to handle the required scale out-of-the-box, we developed our own solution to adopt a horizontal scaling strategy for key-value stores.

The new database would addresses two primary scaling needs in distributed key-value stores. Handling the a large number of client connections, and handling growth in read and write throughput. PayPal database developers created JunoDB with a proxy-based architecture to enable horizontal scaling. The JunoDB client library, which resides in the application, was developed to enable simple data actions through the JunoDB proxy, which manage requests from the clients, coordinates with the data stored on the JunoDB storage server, and provides load balancing. All data is encrypted, either at the client or the proxy layer using TLS; all stored data is also encrypted using TLS.

JunoDB utilizes consistent hashing to partition data and minimize data movement. To support horizontal scale, it shards data among a number of database partitions located on server nodes. JunoDB has since been rewritten in Golang to provide multi-threading and multi-core capabilities. With JunoDB’s data replication methods, including within-data center and cross-data center replication, the key-value store delivers six 9’s of system availability for PayPal. Interesting read!

[Read More]

Develop data visualization interfaces in Python with Dash

Categories

Tags python programming web-development frameworks analytics

In the past, creating analytical web applications was a task for seasoned developers that required knowledge of multiple programming languages and frameworks. That’s no longer the case. Nowadays, you can make data visualization interfaces using pure Python. One popular tool for this is Dash. By Bob Pacheco.

Dash gives data scientists the ability to showcase their results in interactive web applications. You don’t need to be an expert in web development. In an afternoon, you can build and deploy a Dash app to share with others. Dash is an open-source framework for building data visualization interfaces. Released in 2017 as a Python library, it’s grown to include implementations for R, Julia, and F#. Dash helps data scientists build analytical web applications without requiring advanced web development knowledge.

The article then explains in detail:

  • What is Dash?
  • Get started with Dash in Python
  • Style your Dash application
  • Add interactivity to your Dash apps using callbacks
  • Deploy your dash Application to PythonAnywhere

You can use Dash to build analytical applications to share with others. As more companies put more weight on the use of data, knowing how to use Dash will increase your impact in the workplace. What used to be a task only experts could perform, you can now do in an afternoon. Excellent read!

[Read More]

CI/CD with Crunchy Postgres for Kubernetes and Argo

Categories

Tags devops cloud cicd kubernetes

Continuous Integration / Continuous Delivery (CI/CD) is an automated approach in which incremental code changes are made, built, tested and delivered. Organizations want to get their software solutions to market as quickly as possible without sacrificing quality or stability. While CI/CD is often associated with application code, it can also be beneficial for managing changes to PostgreSQL database clusters. By Bob Pacheco.

Crunchy Postgres is the first commercially available open source relational database management system to receive Common Criteria certification. Turnkey Monitoring. Easily deploy Kubernetes native open source PostgreSQL - powered by Crunchy Postgres Operator (PGO).

GitOps plays an important part in enabling CI/CD. If you are unfamiliar with GitOps, I recommend starting with my previous post on Postgres GitOps with Argo and Kubernetes. The article covers:

  • Prerequisites
  • Self test container
  • ArgoCD
  • Create an ArgoCD repository
  • Create an ArgoCD project
  • Create the ArgoCD applications
  • Deploy the Crunchy Postgres for Kubernetes cluster

The declarative nature of the manifest combined with the power of GitOps and ArgoCD makes creating a CI/CD pipeline easier than ever. This blog only covers a segment of a full end to end pipeline. In my next blog we will look at how to apply new images to an existing application using ArgoCD Image Update. Nice one!

[Read More]

How to access, install, and use AI ChatGPT-4 plugins (and why you should)

Categories

Tags startups cloud machine-learning miscellaneous

ChatGPT-3.5 is useful. ChatGPT-4 can be very useful. But, for the most useful version of ChatGPT to date, you need to add, implement, and use ChatGPT-4 with plugins. By Steven Vaughan-Nichols.

Plugins add more search capabilities to the chatbot and integrate it with third-party services. Extensions, like any Chrome extensions, are just added via the Chrome Web Store. Plugins are trickier. Here’s how you find and install them. Further in the article:

  • How to install ChatGPT-4 plugins
  • How to use ChatGPT Browse with Bing
  • Select your AI model and feature
  • How to use ChatGPT plugins
  • Explore the plugins
  • What are the caveats of ChatGPT-4 plugins?

Once installed, you simply choose to use the model with them activated. That’s all there is to it. Under the hood, the ChatGPT application programming interfaces (API)s are being invoked, but you don’t have to worry about the tech details. Just write your prompt and go. Good read!

[Read More]

The role of User Experience (UX) in custom software development

Categories

Tags ux web-development app-development miscellaneous

User Experience, commonly called UX, is an all-encompassing term that refers to a user’s overall perception of and response to using a product, system, or service. In the context of software development solutions, it is the quality of the interaction a user has with a software product. By Naveen Joshi.

This article explores the importance of UX design in software development. Amongst others it explains:

  • Components of UX
  • The difference between UX and UI
  • How does UX impact custom software development?
  • Incorporating UX into custom software development solutions
  • Challenges in integrating UX
  • The future of UX in custom software development

… and more. The field of UX is evolving rapidly, driven by technological advancements and changes in user behavior. One significant trend is the growing role of Artificial Intelligence (AI) in UX design. AI and machine learning algorithms can analyze large amounts of user data to deliver personalized experiences, predict user behavior, and make intelligent recommendations. Good read!

[Read More]

Rails design patterns - the big picture

Categories

Tags web-development app-development cloud open-source

A design pattern is a repeatable solution to solve common problems in a software design. When building apps with the Ruby on Rails framework, you will often face such issues, especially when working on big legacy applications where the architecture does not follow good software design principles. By Paweł Dąbrowski.

The article then explains:

  • Advantages of using design patterns
  • Commonly used design patterns in Rails applications
    • Service
    • Value object
    • Presenter
    • Decorator
    • Builder
    • Form object
    • Policy object
    • Query object
    • Observer
    • Interactor
    • Null object

Any design pattern should be used with caution. When using them not correctly, we can harm our architecture and overcomplicate the code, which leads to longer development time and higher technical debt. Interesting read!

[Read More]

The fundamentals to enterprise architecture

Categories

Tags cio devops software-architecture software

In today’s digital era, it is essential for businesses to stay competitive by modernising their legacy processes. By updating outdated process flows, software systems and data models, businesses can strengthen their competitive edge in the marketplace, develop new business capabilities and focus on growth into new and developing areas rather than on continually maintaining rigid and inefficient business fundamentals. By Tobias Moeglich.

For most organisations however, it is tricky to know where to begin. Staggeringly, 70% of digital transformations fail, deterring some companies from taking the leap of faith.

This process can be divided into four layers:

  • Business strategy
  • System architecture
  • Operational architecture
  • Data models

The first fundamental layer is business strategy. Business strategy determines the three to five-year vision for the business and operations in order to apply this to the IT strategy. The goal of business-IT alignment is to integrate the IT roadmap with business goals in order to lower costs, increase agility, and boost return on investment. This vision should consider the impact of technology on business operations, customer experience, and revenue growth. Good read!

[Read More]

Protecting serverless applications with AWS WAF

Categories

Tags serverless cloud infosec aws

Since serverless is designed to scale to infinity, one of the questions we get asked very often is whether a DDoS attack on the serverless application can result in a hefty Cloud Bill. One way to prevent this is to have rate limiting on API Gateway in place so that the serverless application doesn’t scale to unexpected levels and end up using all underlying resources. By Vishwasa Navada K.

Other than rate limiting at the API Gateway level, AWS offers a service called WAF (Web Application Firewall) that is dedicated to protecting the internet-facing services of AWS like API Gateway, AppSync, App Runner, Application Load Balancer, CloudFront, and Cognito.

WAF offers various predefined configurations to protect the applications from known threats like DDoS, SQL Injection, and XSS. WAF calls these configurations Managed Rules. You could write up your own Rules, or use various rules that are available to use on the WAF Console. A few of these are free to use and provided by AWS, while you could find advanced rules from third-party providers through AWS Marketplace. For details follow the link to full article. Nice one!

[Read More]