HarperDB: More Than a Database

Introduction

I recently had a very interesting conversation on our podcast with Ron Lewis, the Director of Innovation and Engineering at Lumen Technologies. Ron brought up the notion that HarperDB is more than just a database, and for certain users or projects, HarperDB is not serving as a database at all. How can this be possible?

Database, Explained

Well, what really is a database? Wikipedia states “In computing, a database is an organized collection of data stored and accessed electronically from a computer system.” Another site simply states that “A database is a systematic collection of data. They support electronic storage and manipulation of data. Databases make data management easy.”

Improving Mobile App Performance With a Powerful Database

You are probably aware that there are seemingly endless options to consider when it comes to selecting a database and other technologies for your mobile app. With so many choices, it can be difficult and confusing to determine what really matters when it comes to your tech stack. A little while back, I wrote an extensive article on the different database architectures and use cases available to provide guidance on picking the right technology for the right project. While that is still an accurate and solid resource, this article takes a deeper dive into considerations for improving the performance of, specifically, mobile apps.

Mobile vs. Web Apps

First and foremost, perhaps we should take a quick look at the difference between mobile and web apps. Mobile apps live and run on a mobile device itself, whereas web apps are accessed through a web browser and will adapt to whichever device you're viewing them on. Native mobile apps are built for a specific platform, such as iOS for Apple or Android for, well, pretty much everything else. They are downloaded and installed through an app store and have access to system resources, such as GPS and the camera function. Web apps, however, are not native to a particular system and do not need to be downloaded or installed. Due to their responsive nature, they may look and function a lot like mobile apps, which is where some confusion arises.

AWS Application Deployment Basics: .NET Core Apps

Introduction

In the previous two posts in this series, we have set up a VPC with public and private subnets, launched EC2 instances. Setup PostgreSQL database and deploy a Nodejs application which we served via NGINX reverse proxy mechanism.

We have the following architecture in place:

Deploying Kafka on OpenShift

This article describes an easy way for developers to deploy Kafka on Red Hat OpenShift.

Managed Services

There are multiple ways to use Kafka in the cloud. One way is to use IBM’s managed Event Streams service or Red Hat’s managed service OpenShift Streams for Apache Kafka. The big advantage of managed services is that you don’t have to worry about managing, operating, and maintaining the messaging systems. As soon as you deploy services in your own clusters, you are usually responsible for managing them. Even if you use operators which help with day 2 tasks, you will have to perform some extra work compared to managed services.

How to Deploy Rails App to Heroku in 5 Minutes

Heroku is a platform that enables developers to build, run, and operate applications entirely on the cloud with multi-language support for Ruby, Go, Scala, PHP, etc.

Ruby on Rails is a popular web framework written in Ruby. This guide covers how to deploy Rails 6 apps to Heroku.

Self Service — The Key to Unlock DevOps

Enterprises today are dedicating a lot of time and resources to ensure that the apps they build are the best version of themselves in all ways. Meanwhile, developers and IT Ops together are trying to establish a continuous app delivery pipeline that enables effortless app deployment on demand. Yet, not all teams are able to achieve continuous delivery.

Presently, there is more pressure than ever for apps to move faster and be more Agile without compromising on the security or reliability which makes enterprises look for alternative approaches to software development. Apart from adopting modern app architectures, it is essential to change the workflow as well because the old methods of app development cannot be relied upon to speed up app delivery. That is why enterprises all around the world are trying to adopt the DevOps approach. DevOps is defined as the blending of the development and IT operations teams in order to enhance the app delivery process and have a continuous delivery pipeline in place.

Artificial Intelligence and IoT: Why They’re a Winning Combo

Artificial intelligence (AI) and the Internet of Things (IoT) have recieved a great deal of attention over the last few years, and with good reason — they both are transforming the way enterprises do business. And now, a new Gartner report says that the synergy between them will be so powerful that enterprises should consider rolling them out in tandem. The report, “AI on the Edge: Fusing Artificial Intelligence and IoT Will Catalyze New Digital Value Creation,” puts it this way:

“Artificial Intelligence and the Internet of Things are symbiotic technologies that will be the foundation of a new platform for digital business value creation. CIOs engaged in IoT initiatives should leverage these capabilities for strategic advantage.”

Companies that don't look carefully at artificial intelligence and IoT risk losing competitive advantage.

Deploying With Distillery and Docker

I use Distillery to generate Erlang releases for my Elixir applications. Through this post, I'll explain how I generate the releases that get shipped to production.

I use Docker to ensure that the final Erlang release is always the same across production instances. This approach also allows me to avoid generating the release on production, which means my production instances stay slimmer by not having Erlang, Elixir, and Node installed natively.