This post is part of an ongoing series that explains IT concepts for business leaders. Some key concepts in this article are explained in the previous Distributed Systems Primer article.
With technology increasingly becoming a powerful differentiator, many business leaders are engaging with their IT leaders to understand how technology can better meet their business needs. This means having a foundational understanding of how software and system architectures work. But it also means understanding how decisions about selecting the right architecture can impact the desired business application or system and its flexibility, scalability, and usability.
This article provides the needed context so that business leaders can navigate that conversation. It is particularly applicable to conversations with software architects about understanding, deploying, and managing distributed cloud native systems.
As my earlier article explained, distributed systems are complex and must be properly organized. Two important organization concepts that we must first discuss are software architecture and system architecture.
Software architecture is the organization of a distributed system into key software components. Instead of a single, giant application, distributed systems are broken down into many components. How this architectural pattern is achieved can affect system performance, response latency, and reliability.
System architecture is the placement of these components on physical machines. They can be either co-located or located on separate machines. Where they are placed will impact performance and reliability.
The architectural style that is chosen will determine how components are connected, data is exchanged, and how the system works together.
Let’s take a deeper dive into each concept and how they can help achieve good architecture.
Distributed systems can be designed in many different software architectural styles: object-based architectures, layered architectures, service-oriented architectures (SOAs), RESTful architectures, pub/sub architects, etc. The style chosen depends on the functional requirements of the applications. Furthermore, as you build more complex, interconnected software systems your distributed system will only grow in size. So it’s important to ensure that processes across these systems, such as communication, are streamlined and simplified.
Let’s consider the quality attributes of each of your software architecture options.
In this architecture of a software, components are organized in layers. Those on a higher layer make downcalls to the lower layer. Components on the lower layer make upcalls to the higher layer, but only typically respond to requests from the higher layer.
Google Drive and Google Docs are a useful example of a layered architecture. At the interface layer you request the latest document on Google Drive. The processing layer processes your request and asks for information from the data layer. That data layer is where your file (known as persistent data) is stored and gives access to higher level layers.
From here, the data layer returns the information to the processing layer which then sends it to the interface for you to view and edit your file.
It can feel like a cohesive process, but is broken down into three components across three distinct layers. Each of these layers may or may not be located on a different server.
Simplified organization of a Google Drive/Doc view request
These architectures are more loosely organized and represent an evolutionary sequence. While all are grouped here, it’s important to know that object-oriented architectures aren’t in fact an architectural style but a programming methodology. Object-oriented architectures make (SOAs) and microservices possible.
This programming methodology is often used when dealing with monolithic apps where logical components are grouped as objects. It helps organize functionality and manage the complexity inherent to monolithic apps.
The object’s state is the term for the encapsulated data set within each object. The operations performed on that data is known as the object’s method.
While each object is distinguishable, they are highly interconnected through procedure call mechanisms. An object will call another object during a procedure with specific requests.
Object-based architectural style
Services are independent, self-contained objects that make use of other services. Messages sent to each interface ensure communication over the network.
The next step in the evolution of software architectures are microservices. These are smaller than the services in a SOA, are less tightly coupled, and are more lightweight.
The big benefit of microservices is that they speed time to market of business applications.
How? SOAs require developers to design and map all interactions and interfaces before an application can be deployed to users. This process can take months. Microservices, however, are independent. So developers can release updates without worrying about the underlying architecture they can also use any software programming language – which can further speed the application delivery time.
These are formed by processes or services that run on nodes that can’t easily be accounted for. They can connect and disconnect often using peer-to-peer connections and may not use the internet. Examples of mesh architectures include TOR, p2p messengers, torrents, and blockchain.
Mesh architectures are beneficial because the interacting services and processes are more uniform – unlike traditional architectures where there are dozens of non-uniform services. Just one or even a few service types may participate in a mesh network and each is equally trustworthy or untrustworthy from a security perspective.
Mesh architectures also place greater emphasis on their distributed design. This means they stay efficient even in unstable environments where connectivity can easily lapse between components. Some components may not even connect directly but communicate over multiple hops using other system elements.
Clearly, there’s an evolutionary path across each of the software architectures from the earliest object-oriented programming technologies. But this methodology still has a role to play. Object-oriented just refers to the separation of blocks inside a monolithic system or application. It’s a methodology that is still used today even as object-oriented microservices.
REST architectures are a key characteristic of the web (also known as a web-native architecture). It’s a distributed system characterized by a massive collection of resources that are each managed by components. These resources understand a limited set of commands, have only one naming scheme (URL-based), their interfaces follow the same conventions and semantics, and messages are fully self-described. After an operation is executed on a resource, it forgets everything about that call from the client except for the resulting changes in service state - called stateless execution.
Commands and interface specifications are highly restricted because the internet is made up of vastly diverse systems that need to communicate. When interfaces are standardized and commands are reduced, it becomes much easier to develop compatible systems. A URL is a descriptive resource address that gives developers enough flexibility to express everything they need. For example, the command here:
HTTP GET http://amazon.com/shoppingcart/546/items/98765
is a command to request items “98765” from shopping cart “546”. All the details needed are contained in the URL.
Also known as pub/sub, this architecture is a very loosely coupled architecture that allows processes to easily join or leave. What distinguishes pub/sub architectures is how services communicate. Instead of services calling and getting a response, they send one-way, typically asynchronous messages to a non-specific receiver who may be an administrator, configurator, or developer (who can also choose to sign-up to receive messages).
It’s a process you may be familiar with. It’s how people receive breaking news push notifications from CNN, for instance. Each time a news item is categorized as breaking news all subscribers receive the update.
In this way, pub/sub has most relevance for mobile applications where network reliability can be an issue. If there’s a network issue, you’ll simply get the update later when service is renewed.
Decisions about system architecture must be made to ensure the proper placement of specific software components. For example, should certain components reside together on the same or different machines? Organizations may also have high-speed processing servers or a certain storage facility that they prefer to use for certain components.
These architectural analysis decisions will define different types of architectural organizations and can be categorized as centralized and decentralized organizations.
A server is a system that implements a service, such as a database service. A client requests that service from the server and waits for a reply (request-reply behavior). These processes may be physically distributed which can lead to different multitiered architectural styles.
There are several ways to distribute a client-server app across machines. The simplest is to use two types of machines: a client machine with the user interface (layer one) and the server interface that contains the program implementing the process and the data (layers two and three). Everything is handled by the server, the client is a dumb terminal. This is known as a (physically) two-tiered architecture.
Other ways to separate these three layers in both machines include separation to having everything except the stored data running on the client – see below:
Variations of physically two-tiered three-layered architectures
Now in a three-tiered architecture the application is spread across one client and two servers. One of the servers must act as the client.
Three-tier architecture: one client and two servers with the app server also acting as a client.
Today’s modern architectures are characterized by distributed clients and servers (horizontal distribution). Although physically apart, each part operates with a share of complete data thus balancing the load. Rather than have a single data store that all components can access, a potential bottleneck, each component has its own dataset – these are called peer-to-peer systems and are connected via an overlay network. Each process acts simultaneously as client and server, often referred to as servant.
Peer-to-peer system network connected via an overlay network.
There are many ways to organize applications into logical components including layered software architectures, SOAs, REST, or pub/sub. Which is best depends on the application. Considerations about system architecture informs which components are placed on different physical machines whether in a client-server or peer-to-peer approach.
A dive into the implementation of the blockchain in finances, smart contracts and NFTs.Read more
Blockchain is a word that is now heard everywhere, but not everyone has a clear understanding and knows what is there under the hood. In our second part of the blockchain guide let's dive deeper into the technology and concepts behind it.Read more
Teaching computer science to teenagers is a no-brainer in today's digital world. Here's why weaving artificial intelligence and machine learning into the high school curriculum can increase the growth of innovative technologies like never before.Read more
While traditional computers continue to evolve and pump out more raw power, they are no match for the quantum computer, which can tackle calculations that the most powerful conventional machines would need decades to process – in a split second.Read more
HackTJ 2002 is in the books, bringing together more than 400 bright young minds eager to tackle real-world problems with creative technology solutions. As a Gold Sponsor for the event, EastBanc Technologies created three challenges for the young innovators, and we are delighted to announce this year's top contestants -- and their winning hacks.Read more
This is EastBanc Technologies 3rd year sponsoring HackTJ, and our participation includes designing three challenges for teams to hack. The challenges will explore how to alleviate some of the world’s most pressing issues impacting our personal and professional lives.Read more
One “new” technology that has stuck is Blockchain. To understand what Blockchain is, you only need to know three things. What is a block? What is a chain? What is a ledger?Read more
Modern technology brings the world closer together, but millions of people continue to be left behind. The "digital divide" is multifaceted and impacts society in a variety of ways. These are some of the technologies that are helping bridge the gap.Read more
Artificial intelligence (AI) can be found almost everywhere in modern life. Learn key lessons and best practices that help companies avoid common AI pitfalls and achieve ROI from their AI systems.Read more
Open Data fuels today's digital economy, enables communication and innovation, boosts business and generally makes our lives easier. But how do we protect privacy if everything is open? Zero-knowledge proof could be the answer.Read more
Blockchain capabilities, including fully-automated data storage and transparency, make it an essential technology for cybersecurity. In this article, we look at some of its use cases.Read more
DevOps built-in flexibility allows development teams to work at a level that suits their resources and skills without being held back by departmental barriers.Read more
Artificial Intelligence (AI) – the capability of a machine or piece of software to display human-like intelligence – permeates our daily lives, often in ways we do not notice.Read more
Data-driven software touches our lives every day. Sometimes, it is in ways you see, such as when you check your Twitter feed, pay for your bus ticket or order your latte using your phone.Read more
EastBanc Technologies is recognized on CIOReview’s list: “Most Promising Microsoft Azure Solution Providers.”Read more
In this article, we’re going to dig a bit deeper into AI-implementation. We will take our airline use case a step further, and we will describe a specific example of how EastBanc Technologies solved a particularly challenging problem through AI and machine learning.Read more
If your organization provides a product or service -- which applies to just about any business on the planet -- you, too, can benefit from Artificial Intelligence (AI). While implementing AI may sound daunting, it doesn't have to be complex or expensive. This article covers the basics of AI and looks at some easy-to-explore use cases.Read more
Digital transformation is about opportunity and survival. Businesses that transform digitally gain a significant competitive advantage.Read more
Part 2: Best practices for modernizing your company’s IT infrastructure to ensure innovation success.Read more
Best practices for modernizing your company’s IT infrastructure to ensure innovation success.Read more
Learn how machine learning engineers and data scientists collaborate and roll out models faster and with ease using Azure Machine Learning.Read more
What is DevOps, what are DevOps practices, and how do you implement DevOps? Your FAQs answered.Read more
Refactor, rewrite, or leave as is? Learn when and how to bring your legacy systems up to speed with modern application development practices.Read more
Ready to embrace AI? Explore why cloud computing is the best infrastructure for your AI model, not on-premises.Read more
Software is a strategic differentiator that can catalyze digital transformation. Organizations are investing in technology, such as modern cloud services, to drive efficiencies and increase the customer experience. To make this a reality, it’s essential that business leaders have a basic understanding of business software and applications work and the opportunities they bring.Read more
How an intelligence-driven customer technical support approach can transform your support from a reactive operation to a streamlined, efficient, and proactive operation.Read more
Kubernetes is a popular container orchestration system, but how did it come to be and why, and what role does it play in digital transformation?Read more
Continuous integration and continuous delivery (CI/CD) is integral to a DevOps approach to software development. But what is CI/CD and why is it key?Read more
This article is the third in a series that aims to demystify data science , machine learning, deep learning, and artificial intelligence (AI) – while exploring how they are interconnected.Read more
2020 has seen profound change in the way we live and work with COVID-19 accelerating the pace of digital transformation. Yet, business leaders are often confused about how to implement one of the key enablers of...Read more
Artificial intelligence (AI), together with its brethren buzzwords data science, machine learning, and deep learning have been around for some time now and are no longer future concepts. Yet misconceptions persist about the true meaning of these terms.Read more
When SUSE, the world’s largest independent open source company, announced its acquisition of Rancher Labs in early July 2020, the industry took notice. Clearly, the Kubernetes management industry is very much alive.Read more
We live in a technology-driven world. Even non-technology companies are seeing their business models increasingly shaped by technology. Led by disrupters such as Amazon and Netflix, those enterprises who recognized opportunities early have found ways to extend the analog experience into a digital one. Even creating new revenue streams that they could never have predicted.Read more
Digital transformation is about delivering core competencies in a digital, automated, and user-centric manner. Driven by data and powered by tech (e.g. cloud, cloud native stack, AI, machine learning, and deep learning), it increases business agility, competitiveness, and enhances customer value.Read more
Let’s start by understanding where DataOps falls in the line-up of current IT methodologies. DataOps is the next level up from ETL (extract, transform, and load) and MDM (master data management systems) in terms of organizing data and processes. It can also be thought of as a methodology that combines DevOps and Agile within the field of data science.Read more
The hotel industry hasn’t changed much in the past decades. While they have introduced some level of digitization such as websites and apps, they haven’t fully embraced digital transformation. Indeed, if things are working fine, why change? Because the next unforeseen disruptor may be right around the corner.Read more
The term “DataOps” has picked up momentum and is quickly becoming the new buzz word. But we want it to be more than just a buzz word for your company, after reading this article you will have the knowledge to leverage the best of DataOps for your organization.Read more
Unstructured text is found in many, if not all business functions, and can become a source of valuable insight. Product reviews will guide your customers’ preferences, customer support chats can identifyRead more
Disclaimer: We have not spoken to a WeWork executive and have no further background information. This is merely a thought experiment to exemplify what digital transformation is about.Read more
In part one of this series, we defined data science and explored the role of a data scientist — including data preparation, modeling, visualization, and discovery. We also introduced the role of a machine learning engineer who closely collaborates with the data scientist.Read more
Big data continues to grow exponentially creating a critical need for solutions that can make sense and extract valuable information from it. For example, the Internet is full of a wide variety of constantly growing text sources— blog posts, forum posts, chats, message boards, item and services reviews, etc.Read more
Kubernetes, the de facto container orchestrator, is great and should be part of any DevOps toolkit. But, just as any other open source technology, it’s not a full-fletched ready-to-use platform.Read more
With the increasing popularity of machine learning (ML), it’s becoming more difficult for data scientists to find the appropriate tools for a specific task and decide on a robust approach. Should they stick to the basics and code everything from scratch or use one of the many pre-built tools that keep popping up on the market?Read more
Blue-green deployments and canary releases mitigate application deployment risk by enabling IT to revert back to the previous version should an issue occur during the release. Switching back and forth between versionsRead more
For those who were still debating whether they should hop on the digital transformation bandwagon, the COVID-19 crisis was a wakeup call, maybe even a slap in the face.Read more
The entire business world is talking about digital transformation. IT leaders, on the other hand, talk about DevOps, cloud native, Kuberentes and containers.Read more
If your organization leverages technology as a differentiator, a DevOps approach to application and service delivery is inevitable. The benefits are just too great.Read more
Digital transformation is one of today’s biggest buzzwords. Everyone is talking about it; everyone wants it. We all know the role technology is playing in enabling businesses to innovate at an unprecedented pace.Read more
The data on big data indicates that up to 60% of analytics projects fail or are abandoned, costing companies an average of $12.5 million. That’s not the result we seek from data lakes. Instead, companies are increasingly finding themselves mired in data swamps that are overfilled and too muddy to offer any useful visibility. Or are they?Read more
We collect data at a mind-boggling pace. In fact, as companies, we’re hoarding it. But what good is data if it can’t speak to us? Fortunately, data complexity can be broken down through design and visualization – the charts, graphs and plots that show trends, outliers and opportunities.Read more
As a company and as a team, our lives at EastBanc Technologies have always been about tackling the biggest problems for the biggest organizations.Read more
Artificial intelligence (AI) surrounds us. It unlocks our phones, creates our shopping list, navigates our commute, and cleans spam from our email. It’s making customers’ lives easier and more convenient.Read more
Nearly every week there’s something new in our industry. The pace of technology is unprecedented, the role of IT is booming, and innovation is part of our DNA.Read more
Technology is accelerating at such a rate that it permeates all industries. In fact, software is the only industry that cuts horizontally across all verticals.Read more
Innovation is a critical part of business. While prioritizing production in general makes sense, the best approaches make innovation a component of the whole production process.Read more
We recently sat down with a large pharmaceutical company to discuss their data analytics projects. What we heard wasn’t a surprise. Three of the four large analytics efforts they undertook last year had failed.Read more
AMS Group is a cohesive group of established companies that provide technology and security equipment to aerospace, defense, and security markets.Read more
A European market leader in online survey and feedback software acquired complementary companies in different Wester European countries, each of which had its own survey platform.Read more
Everyone loves their own data. Collecting it. Analyzing it. Drawing conclusions from it. But often, when you allow departments or business units within your organization to gather their own data, that data isn’t shared.Read more
Gartner predicts that through 2017 60% of big data projects will fail to go beyond piloting and experimentation and ultimately will be abandoned.Read more
Organizations generally understand the power behind analytics, but how do you make it work culturally and technically? We take a look at the barriers to data analytics success and suggest new approaches that buck the system, with dramatic results.Read more
And how to make your next data analytics project succeed?Read more
Container use is exploding right now. Developers love them and enterprises are embracing them at an unprecedented rate.Read more
If you’re making the move to containers, you’ll need a container management platform. And, if you’re reading this article, chances are you’re considering the benefits of Kubernetes.Read more
Wouldn’t it be nice to reach artificial intelligence (AI) nirvana? To have a system that provides real-time, context-aware decisions.Read more
Today’s IT environment is moving and evolving at an unprecedented pace. So, all of a sudden, your 5-year old software infrastructure can look more like it’s 50. To get your software current – and stay there – requires flexibility. Moving to containers does just that. There’s been lots of talk about containers over the past few years – so why aren’t you on the bandwagon yet?Read more
Under pressure to deliver applications faster and ensure 24/7 runtime, organizations are increasingly turning to DevOps methodologies to deliver applications quicker and in an automated fashion. But what tools should you have in your DevOps toolkit?Read more
Amazon Web Services (AWS), Azure, and Google Cloud Platform (GCP) are the public cloud market leaders, but how do you determine which of them best supports your enterprise's specific needs? For most enterprises, and for the foreseeable future, it’s going to be a multiple answer question.Read more
As the dominant movie rental service in the 90s and early 2000s, Blockbuster was the market leader, seemingly indefatigable. Until the great disruptor, Netflix, hit the scene.Read more
Big Data. Everyone’s paying for it, collecting it, and talking about it, but what are companies actually doing with it?Read more
The API management market is a hot one. As more organizations make investments in mobile, IoT, and big data, APIs are a core of their digital strategy.Read more
Big data is everywhere. Organizations are being advised to hoard it and do everything they can to derive actionable insights. This article will argue that this approach puts the cart before the horse.Read more
Let’s face it. Organizations struggle with their legacy applications. Even when they still solve some of the business’ problems, they reach a point where they can no longer keep up with market and industry demands.Read more
Let’s flash back to 2000. You’ve survived Y2K and you’re building systems for CRM, inventory, logistics, or data. They’re all state-of-the-art, and get the job done, even if they don’t talk to each other.Read more
It’s a mobile app world, and we just live in it. But for those working on the “next big thing,” there’s a conundrum – everyone knows we should be building apps in HTML, but not every device out there runs it as smoothly as it should.Read more
In technology, everyone likes to talk about “future-proofing.” But even for the most cutting-edge tech, time always catches up.Read more
The future is here. No, we don’t have flying cars or robot butlers – yet – but it’s definitely a digital world.Read more
We’re excited to announce Microsoft Azure support for the Kubernetes auto scaling module, an open source system for automating deployment, scaling, and management of containerized applications.Read more
You can’t mention enterprise technologies today without getting into a discussion about the cloud. “Are you in the cloud yet?” Why jumping headlong into cloud computing may not be the necessary move for your business.Read more
In the mad rush to move to the cloud, some organizations put the proverbial cart in front of the horse. They’re just looking for the best hosting, the preferred provider, or whatever the rest of the industry is using.Read more
2016 saw momentum in many areas – DevOps, cloud technologies, and big data- at the thrust of innovation. So, what tech predictions will define 2017?Read more
Every month, week, or day, it seems there’s buzz about yet another solution or service that will revolutionize your industry – or more simply, make your life easier.Read more
Apps. Sensors. They’re everywhere. Your phone, your car, your TV, even your refrigeratorRead more
In an increasingly commoditized market, learn how to cut through the noise and forge a cloud strategy that meets your needsRead more
Fleet management is a challenging business. This is particularly true of snow removal services where the dynamics on the ground can change fast and the pressures to perform put fleet supervisors to the test – in the toughest of conditions.Read more
Long before the first flakes fall from the sky many municipalities begin to prepare for the cold, icy, and snowy conditions that inevitably lie ahead.Read more
Fun fact: in 2014, cloud services were already a $45 billion business worldwide, and are expected to grow to $95 billion by 2017. Will you be part of that equation?Read more
Simple is good. Simple is clean. And whether I’m cooking or planning a trip, simple is always better, right? So why do so many companies make user experience (UX) so complex?Read more
Future-ready predictive analysis infrastructures hold the key to gaining insights from data today, and into tomorrow.Read more
Immersive and exciting, Virtual Reality is already part of our lives, whether it’s a plot device in a new sci-fi thriller or the best way to enjoy the latest video games or thrill rides.Read more
Now that smartphones are the most widely used tool for navigating important life activities (nearly two thirds of Americans own one), there’s pretty much an app for everything these days.Read more
If you’re tasked with choosing an API management system, Charles Dickens summed it up best: “It was the best of times, it was the worst of times.”Read more
DevOps: the panacea for all that’s wrong with enterprise IT. Where siloed teams who keep information close to their chest are replaced by agile, transparent relationships between developers and operations and fast and stable workflows that improve IT efficiency significantly and very visibly.Read more
As a technology company focused on complex project integrations that unify legacy systems as well as modular solutions that ensure lasting scalability, we work on a multitude of projects that involve custom software development; packaged, open source, and SaaS software integration; infrastructure setup; and production operations and maintenance.Read more
In an earlier blog we talked about why you need to integrate API management into your business strategyRead more
In a previous release of “What the Tech?” we discussed why you should integrate API management into your business strategy.Read more
Smart cars, smart homes, smart devices. The Internet of Things (IoT) is already transforming how we live. But very soon, the IoT will swiftly extend into the enterprise.Read more
Why you Need to Integrate API Management into your Business StrategyRead more
The promise of big data is, well, big! With terabytes of intelligence at their disposal, organizations can make faster, more accurate decisions, monitor trends, and even predict the future.Read more
Businesses accumulate data, create content, or possess unique business logic—each of which represents an untapped business opportunity. But how can organizations realize that opportunity?Read more
The Internet of Things (IoT) is much more than a consumer trend, it’s rapidly changing the way enterprises are using data to improve business decision-making.Read more
Content consumption is changing rapidly. With multiple channels and media formats, reaching target audiences is getting harder than ever.Read more
The way in which we consume content is changing rapidly and a few trends have emerged recently that we think will have a meaningful impact on media organizations this year and in years to come.Read more
Building a mobile app isn’t as simple as it used to be. With multiple devices to cater to, development teams must ask themselves a few questions:Read more