Shared Microservice Configurations Using Spring Cloud Config

The microservice architecture pattern, which is used widely across tech companies large and small, enables businesses to distribute functionality between many small applications, instead of larger monolithic portions. Each piece has a specifically defined task, along with communications and other services, usually via a REST API channel. The benefits of utilizing a microservice architecture include, but are not limited to: 

  • Simple development and maintenance of applications: developers and teams are able to focus on one application rather than multiple, with the benefit of faster development, and fewer hitches (such as bug and easy to miss errors) in the larger project. 

A Practical Multi-Cloud Distributed SQL Strategy for 2021

In order to meet the needs of the growing demand of businesses, many global enterprises are choosing cloud infrastructure from multiple providers like AWS, Azure, Google, or private data centers. According to a Gartner survey of public cloud users, 81% of respondents are already using multiple clouds. Leveraging multiple clouds to support data infrastructure provides these benefits:

  • Reduced operating and infrastructure costs by avoiding vendor lock-in.
  • Improved application resilience and redundancy with geographically distributed data centers. (Cloud providers suffer from outages so putting all your workloads on one provider’s infrastructure increases the risk of an application becoming downtime.)
  • Improved customer experience and performance optimization by choosing a data center closest to end users that can serve the requested data with minimum latency.
  • Achieving data compliance, such as the EU’s GDPR which requires data to be held in particular geographical locations. (If your primary cloud does not support all the regions where your customers reside, you need to consider a multi-cloud strategy.)
  • Ability to expand into new markets by taking advantage of regional data centers.

15 Software Architecture Newsletters That Are Worth Your Subscription

So you want to keep a close eye on software architecture? Well, the best place to start is signing up to a list of great software architecture newsletters out there. Some of them are created by leading companies like Thoughtworks and O'Reilly, some are created by renowned software architects like Dave Farley, and some by well-known events like GSAS or DDD Europe

So, here you will find our selection of software architecture newsletters that we follow on a weekly and monthly basis. 

Learning Vim for Beginners

Vim, or Vi Improved, is a powerful text editor that lets you do almost everything using keyboard shortcuts. You can replace text in a document, move or delete lines, automate edit actions, and more, without ever reaching for the mouse. Vim is the favorite source code editor of programmers but there’s no reason why you cannot use this editor for writing documents or composing long emails.

Vim can be confusing for people who are used to working inside visual editors like Microsoft Word or Google Docs but spend some time with Vim and it will be difficult for you to go back. Entire books have been devoted to teaching Vim but if you can manage to learn the basic commands, you’ll find yourself more efficient and productive.

Vim Logo

How to Learn Vi

Here’s a list of online tutorials and other helpful resources to help you learn Vim.

1. OpenVim - An interactive tutorial for learning the basics of Vim. Switch to the Practice page to test your existing Vim skills.

2. Vim Adventures - An online puzzle game for learning and memorizing Vim commands. You play the character of a blinking cursor that has to navigate the maze with the letter keys. If you are stuck, you can always type :help for a hint.

3. Vim Genius - This a flashcard style game to help you learn the basics of Vim. There are dedicated lessons for learning the motion keys (h,j,k,l) and for mastering copy-paste in vim.

4. Learn to Love Vim - The Linux Voice magazine has put together a quick video tutorial to get you started with Vim.

5. Vim Basics - Derek Wyatt has produced a bunch of video tutorials (screencasts) around teaching Vim. A good resource for novice users who prefer learning Vim by watching than reading.

6. Learning Vim - Mike Coutermarsh covers getting up and running, and eventually productive with Vim.

7. Vim - Precision Editing - Drew Neil, author of the popular Practical Vim title and Vimcasts.org, walks you through Vim and how the text editor is optimized for mouseless operations.

8. Vim Tutorial - The official Vim documentation is excellent and includes a step-by-step tutorial. You can also access this tutorial inside the Vim program through the :vimtutor command.

9. Vim Cheat Sheet - Print this because you’ll need it later.

10. Vim Masterclass - This Udemy course will help you master all the concepts of Vim and how to ‘think’ in Vim.

If you spend a lot of time typing text, learning Vim will be totally worth the effort. I wrote this article inside Visual Studio Code with Vim key bindings.

How to Convince People to Deal With Tech Debt

In this post, I'll share with you how the best in our field make the business case for any given piece of tech debt.

Apply these lessons and you too will be able to understand which debt you should address first. They will help you unlock the resources you need by enabling you to convince your colleagues — especially senior management — that this is the right move.

Reverse Engineering and Information Security

Upon the first look at these things, you could think that there is a big difference between them and maybe you are right: one of them means to protect information from stealing, compromise, and so on, but another one means to hack or trying to look under the hood of software if we can say that.

In this article, we can try to look at this from another perspective – these two things may go together as equals. So, let’s started. 

5 Reasons Why Prismatic Chose GraphQL for Our API

Prismatic is an integration platform used by B2B software companies to build reusable integration workflows and deploy customer-specific instances that handle each customer's unique configuration and credentials.

When we set out to create Prismatic, it was clear that we needed an API for our web app and CLI to use. Additionally, we wanted our developer users to be able to hit our API programmatically so they could manage customers and integrations as they saw fit. This presented a problem: different developers would naturally have different needs and use cases. It didn't make sense to craft a series of custom RESTful endpoints for each individual's needs. GraphQL was growing in popularity (for good reason!) and was an appropriate choice for us given our needs.

Artificial Intelligence and the Changing Cyber Security Landscape in 2021

There are many ways that artificial intelligence and machine learning can make a difference. Consider the situations below:

  • Self-driving cars will significantly reduce the number of road accidents and keep commuters safe. Google Maps suggesting an optimal commute to and from work and alerting about any congestion on your route. 
  • Email inboxes becoming smart enough to reply to emails on behalf of a person.
  • OCR software that deciphers handwritten cheques, enabling people to deposit cheques via a smartphone app. Or, a bank’s system detecting a transaction as possibly fraudulent and alerting the bank and the customer. What about investing platforms that provide financial advice to consumers by collating and learning from the best practices of investors and experts?
  • Social networking sites identifying friends and family in a photo and suggesting tagging them. Chat and instant messaging apps able to prompt textual or emoji responses to a received message.
  • Robotics Process Automation helping businesses increase productivity by automating everyday operations, handling exceptions, and resolving issues.
  • Asking a smart personal assistant, like Google, Alexa, Siri, or Cortana to search for something on the internet, or to set an alarm or reminder. Integrating Google and Alexa into homes, shopping online, ordering food, and calling and speaking with your friends and family at the convenience of sitting anywhere in the house and not holding a smartphone.
  • Amazon displays product recommendations to a shopper on the website or app even if the shopper did not specifically search for the product. Content and streaming platforms like Netflix, Amazon Prime, or Disney show a viewer what other content is popular based on something they watched in the past.

What’s Common in All the Situations Mentioned Above?

All of these have Artificial Intelligence (AI) and Machine Learning (ML) at play. It’s a wonder how technology has evolved, and the speed at which it has, that these accomplishments were made possible in the past decade. Application and adoption of AI increased exponentially during 2020 as the Covid-19 pandemic forced people, organizations, and governments to rethink everyday tasks.

Useful Tools for Local Development With AWS Services

Over the last 2.5 years, I've been working with AWS and a wide range of its services. During this time, I noticed that for most projects, it's useful to be able to test your application against AWS services without having to deploy or move your code into the cloud. There are several free solutions available for you to use depending on the services required by your project. In this post, I'll describe some of the tools that I use.

DynamoDB Local

At one of my previous projects, we made extensive use of the combination of DynamoDB and Elasticsearch for storing and querying data. The fact that DynamoDB is a managed database service with immense scale and performance benefits makes DynamoDB a great fit for high traffic applications.

Reasons Why People Like Akeneo PIM Development

Akeneo development provides a fantastic, adaptable, adaptable product knowledge management system as a pioneer in open-source product expertise management.

Akeneo development is an open-source PIM business platform for (Product Knowledge Management). As Akeneo's e-commerce progresses day after day, it becomes an integral part of the stores to update the product details.

5 Types of Tests To Perform On Your APIs

API Test is crucial for the software systems to function at high quality. Every app you build nowadays completely relies on Application Programming Interfaces. Application Programming Interface acts as the center level between the database and presentation layer in the software development procedure.  It is mainly the channel that links the client to the server, drives business procedures, and gives the services which give worth to users.  They allow data exchange and communication from one to another software system. That means it is critical to thoroughly verify and test Application Programming Interfaces before rolling out the product to the end-users or customers. 

What is API Test?

API test is a series of QA activities that comprise sending calls to the API, getting the result, and validating the response of the system against the definite input parameters, in precise, HTTP status codes, the data’s accuracy and data’s format, and error codes. Generally, API test is executed on Application Programming Interfaces generated by the in-house development team. We do not text 3rd party Application Programming Interfaces; however, we can test the mode our software accepts their requests. The approach to the Application Programming Interface test principally depends on the form of API. There are web Application Programming Interfaces, aka web services, database Application Programming Interfaces that connect apps with database management systems, OSs Application Programming Interfaces, and remote APIs to access resources placed outside the device demanding them.

How to Simulate I/O Faults at Runtime

In a production environment, filesystem faults might occur due to various incidents such as disk failures and administrator errors. As a Chaos Engineering platform, Chaos Mesh has supported simulating I/O faults in a filesystem ever since its early versions. By simply adding an IOChaos CustomResourceDefinition (CRD), we can watch how the filesystem fails and returns errors.

However, before Chaos Mesh 1.0, this experiment was not easy and may have consumed a lot of resources. We needed to inject sidecar containers to the Pod through the mutating admission webhooks and rewrite the ENTRYPOINT command. Even if no fault was injected, the injected sidecar container caused a substantial amount of overhead.