DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Software Design and Architecture
  3. Microservices
  4. Should Every Application Leverage Microservices? Part 1

Should Every Application Leverage Microservices? Part 1

In Part 1 of this three-part interview series, a microservices expert discusses how microservices differ from SOA and obstacles to adoption.

Pete Pizzutillo user avatar by
Pete Pizzutillo
·
Mar. 20, 19 · Tutorial
Like (9)
Save
Tweet
Share
9.44K Views

Join the DZone community and get the full member experience.

Join For Free

Here’s Part 1 of my interview with Philippe Guerin, a super smart guy and well-rounded technologist with many years' experience helping organizations with software architecture and helping technologists within large corporations. He works with industry bodies to develop and educate the market on software standards around sizing and measuring software. He's an accomplished author and speaker, and he's a fine baker of baguettes. You can listen to the full interview here.

Pete: What we're going to talk about today is the question around software architecture: Should every application leverage microservices? There's a lot of buzz around microservices. So, I want to bring you into the studio today to talk about what you think and what you are seeing regarding microservices. But before we go there, let's bring everybody along here, so maybe that'll help us with our conversation. In your view, what's an easy way to describe microservices?

Philippe: If I have to simplify the definition of microservices, it's a way to redefine a very small scope of service, which includes an interface, business rules which will process data, and, ideally, to also be autonomous in terms of storing the information. And then after, based on the interface and communication with other services around this guide, this will help to serve the actual functionality.

Pete: So it's a way of designing and thinking about the construction of applications and systems. Why is this fundamentally different than what we've done before?

Philippe: Because, before, it was really a question of global architecture, i.e. a global set of elements to serve a specific functionality. It's a bit like object-oriented but to an extreme. So you need to think, a microservice is like an object, but the not-elements object. So this one can run on its own and doesn't especially rely on the others. If you need specific information or services, it can ask a third-party for the specific action, or it can do the action on its own.

Microservices and Service-Oriented Architecture

Pete: It sounds a lot like the service-oriented architecture, SOA, that was popular, I don't know, ten years ago. Is it just really kind of the SOA on steroids?

Philippe: Not really, it's more of an evolution. The concepts are the same, but the idea of having microservices is not just to delegate the actual action to someone else and that's it. It's really about how to reuse those elements and to find a way to not be locked into a specific technology. For example, you can have one microservice in JEE, one in C++, one in Java, and one in .NET. The goal is to find the way they best fit, e.g. the best technology stack, in order to serve the app's specific needs. And once you have this service, it can also be delegated to a third-party platform. This way the app can provide more resources, have more memory and CPU, resecure the response time, and be sure that it will be optimal.

Pete: Evolution is a good way to think about it when it comes to continuing our thinking about reusability and the distributed architecture. But why now? What's driving everybody to think and talk about microservices today?

Philippe: I think there are two main things. The first one is due to the pressure from the business to be more agile, more flexible, and to increase the productivity and response time of the team. And it's for that reason we now have development which is closer to operations in order to push a lot of releases every week or every other day. The second driver is the need to be able to move applications or a part of an application to the cloud. And since applications or systems can be huge, sometimes it's good to maybe take part of the system and put this specific part of the system into the cloud, but the rest can stay in your network.

Obstacles to Adopting Microservices

Pete: DevOps, continuous integration, and deployment are driving some of these things because people want to have some more modularity to get functionality quicker, so obviously you need to be able to work on small groupings of functionality and then cloud, of course, everybody rushing to the cloud and trying to figure out how best to leverage that. I get that as a business owner, I think that makes a lot of sense, getting things out quicker and reducing my overhead. So why aren't applications today automatically microservice-based or leveraging microservices? What are some of the obstacles that you're seeing people run into?

Philippe: The first obstacle is not really the fact that it's working fine, it's working fine, that's not the problem. The challenge people have now is addressing the core systems, and these are huge, aged, and composed of various technologies/frameworks. It's very difficult to address this system as a whole. The struggle at different organizations is to break these monolithic applications into different pieces and to accelerate the release schedule. So, to be able to deliver faster, as well as delegate some modules, some services to some third-party system and the cloud.

Pete: So, net new, greenfield development, and cloud-native companies have the luxury of leveraging microservices because they have a blank canvas, per se. But there's a lot of legacy in our marketplace, a lot of customers that are dealing with not only legacy but monolithic systems that have been built over many years. And if they want to move those systems, decouple them or modernize how do people start doing that?

Philippe: You need to take baby steps. I want to clarify one thing; these types of decisions are not solely an issue for mainframe or legacy systems. It can be a monolithic Java or .NET applications. It's really any application which is difficult to segment. So then after their struggle on how to start, and because these applications are mission-critical, you need to enhance and you need to transform that application, but you need to be sure that this system will not collapse, or still provide services and value.

So for that you need to understand the as-is architecture, how it's structured, to be sure that if you don't know a specific layer or specific aspect, you will be able to investigate, define a plan, and then execute this plan. It doesn’t have to be a long approach, to rewrite from scratch into a microservice. Maybe begin by defining specific baby steps in a way to transform the presentation, as an example, and then after decouple different sections or modules.

That's all for Part 1! Tune back in tomorrow when we'll cover 'as-is' architectures. 

microservice application Leverage (statistics) IT Software architecture

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • 5 Steps for Getting Started in Deep Learning
  • Journey to Event Driven, Part 1: Why Event-First Programming Changes Everything
  • Building a Real-Time App With Spring Boot, Cassandra, Pulsar, React, and Hilla
  • The Power of Docker Images: A Comprehensive Guide to Building From Scratch

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: