The Relationship Between Modularity and Polymorphism

Object-Oriented concepts and practices have a layered structure with both vertical and horizontal relationships between the layers and among items in each segment. The following chart shows this structure. The closer a layer is to the bottom of the inverted pyramid, the more important and fundamental it is.

As a reminder, the lowest layer consists of “Abstraction,” “Modularity,” “Encapsulation,” and “Hierarchy.” Those are the most fundamental tools in the Object-Oriented Paradigm; all other layers add more clarity to these principles. The second layer belongs to GRASP, an abbreviation for “General Responsibility Assignment Software Patterns.”

Enterprise Architecture – Building a Robust Business IT Landscape

Simple or ornate, the enterprise architecture forms the structure for IT.
“The goal of enterprise architecture is boundary-less information flow where all systems, IT and non-IT, interoperate.” – Allen Brown

Today, when technology has proven its necessity amongst almost all industry segments around the globe, digitalization seems to be having a great influence on enterprise architecture (EA). Businesses are expanding beyond enterprise limits and IT solutions are encompassing enterprise, clients, stakeholder, ecologies and more. At such times, it is tough to manage a traditional monolithic framework. Now is the time to have a process that offers enough space for planning and managing the entire digital wave.

You may also enjoy: Role of Enterprise Architecture in DevOps Adoption

With this concept in mind, around the 1960s began the start of enterprise architecture. Initiated by Professor Dewey Walker and taken forward by his student John Zachmann, enterprise architecture found its entry into the tech world. Somewhere in the 1980s, enterprises realized that they would need a perfect planning approach to match pace with the fast-growing technological web. That gave further impetus to enterprise architecture, to extend beyond mere IT, trying to encompass all important ingredients of the business. The focus area was large organizations who are already in the digitization mode and need to have a seamless integration of legacy apps and processes.

7 Microservices Architecture Books Every DevOps Enthusiast Must Read

Microservices is the most talked-about term in the software industry today. Microservices architecture is what every software-powered company wants to embrace to eliminate the complexities of building larger applications with more dependencies. Microservices architecture is all about breaking down the large applications into small, individual, separate and scalable parts to make sure the dependency and failure effects are bare minimum or nil. The Microservices architecture also increases the overall efficiency since they are more comfortable to plug and play, and easy to manage. This article from smart bear explains microservices architecture in more detail.

Microservices and DevOps go hand-in-hand, and we want you to get some real knowledge on microservices not just by browsing the internet, but also by going through some of these books we are about to list. Our article, "Our journey to microservices: mono repo vs. multiple repositories," talks about our own journey towards microservices and some advanced concepts of a monorepo and multiple repositories.

API vs. Microservices: A Microservice Is More Than Just an API

When writing software, consider both the implementation and the architecture of the code. The software you write is most effective when written in a way that logically makes sense. In addition to being architecturally sound, software should also consider the interaction the user will have with it and the interface the user will experience.

Both the concept of an API and the concept of a microservice involve the structure and interactions of software. A microservice can be misconstrued as simply an endpoint to provide an API. But microservices have much more flexibility and capabilities than that. This article will speak on the differences between APIs and microservices, plus detail some of the benefits a microservice can provide.

Welcome to Microdome! An Intro to the Microservices Zone

Welcome to Micro-Zone! All jokes aside, this is DZone's new home for microservices content, so you'll find news and tutorials dealing with microservices, breaking down the monolith, event-driven architecture, and more. It's the perfect place to learn, or expand the community's knowledge by sharing your skills! Our readers drive the sharing of knowledge on our site by submitting their own articles, and we'd be happy to host yours. For now, check out some great articles to get you started and meet some of the personalities in our newest Zone!


5 Trending Microservices Articles on DZone

  1. What Are Microservices? by Justin Albano. We've all felt the microservices hype. Now, let's take a deep breath and dive into their advantages, disadvantages, and what the ideal environment looks like.

The Flavors of APIs

Flavors of APIs

In today’s tech landscape, APIs are a hot topic. The rise of microservice-based architectures as opposed to legacy monoliths has further driven the necessity of robust APIs. With microservices, powerful applications are broken up – i.e. distributed as discrete components across numerous logical and physical machines. This is possible in part due to the availability of cloud computing – virtualized access to almost limitless compute and storage resources made available in a pay-as-you-go model, provided by large technology companies operating massive data centers around the globe.

You may also like:  Identifying the Different Types of APIs

These microservices-based architectures are a contrast to the large-scale, tightly coupled applications of the past that were better designed to run on the limited infrastructure available at the time. When applications required more resources, they would need to scale vertically (i.e. adding more memory, CPU, or storage to the machine). The ubiquity of computing resources in the cloud allows modern applications to instead scale horizontally, by distributing the load over many less powerful machines. Further, applications can be designed intelligently – with components running on infrastructure that better meets the unique load. This ultimately leads to bite-sized chunks of the larger application having infrastructure which is uncoupled from the rest.

10x Programmers: Myth Or Reality?

Originally published June 24, 2016

It's time to give the software engineers their due

10x programmers are a hot topic to discuss in the software industry nowadays, so thought it'd be a good idea to share my viewpoint in this regard.

Twelve-Factor Apps: A Retrospective and Look Forward

If your team is creating apps for the cloud, chances are the Twelve-Factor App methodology has influenced the frameworks and platforms you’re using. Popular frameworks such as Spring Boot, Magento, and more credit the twelve factors as part of their design. Leading companies such as Heroku, Amazon, and Microsoft use and recommend the methodology. While new frameworks and methodologies are released every month, few have the far-reaching impact of this one.

Let's take a look at what these factors are all about, the story behind the creation of this methodology seven years ago, and why they are just as important today.

Quick Introduction to Software Architecture

Good software architecture is essential to building great software. What is software architecture all about?

You Will Learn

  • What software architecture is.
  • What software architects do.
  • Some of the important decisions software architects make.
  • Why we need software architecture.

This is the first article in the following series of articles on software architecture:

How Many Architects Does it Take to Change a Light Bulb?

Looking at the Problem of Responsibility and Alignment

This is how changing the light bulb situation would pan out at a large corporation.

The business, or the Product Owner, would come and say that it was made clear that a light bulb in the living room had burned out. They engage a Solution Architect, who will suggest that the light bulb should be replaced, the BA would validate the voltage and size of the bulb, and the Infrastructure Architect would say that we need to turn off the power before attempting this operation.

Zero Downtime Deployment

Software availability is one of the important criteria considered for the success of any software. It is important to make sure your business is not impacted due to software deployment activity. Achieving the highest software availability is possible in many ways.

A new release of software should not bring down the system. To achieve a zero downtime deployment, the software should be built considering the factors that do not demand any downtime.