Do You Really Need A Distributed Architecture?

Alik here.

Does the question sound rhetoric to you? Do you think the answer is “Yes” by default these days?

Think twice. Ask yourself the questions below. You may change your mind at the end.

Performance

Is performance important to you and your customers? Consider the following performance threats specifically applicable to distributed architectures.

  • Network latency as a result of multiple round trips to perform a single operation.
  • High network utilization by sending more data than is required.
  • Increased serialization overhead.
  • Performance costs as a result of security checks.

Security

Care to build security aware systems? Care to protect your and your customers mission critical assets? Consider the following security threats and challenges specifically related to distributed architectures.

  • Parameters manipulation.
  • Network eavesdropping and information disclosure.
  • Credential theft.
  • Data tampering.
  • Unauthorized access to administration interfaces.
  • Denial of service.
  • Identity flow across physical tiers.
  • Unauthorized access due to lack of network protection.

Operations

Care to respond to production incidents quickly? Want to keep up with tight SLA's? Have a small talk with your production IT guys who are supposed to support your system in production. I am sure they will ask you the following questions. Do you have a good answers?

  • What do I check when end users ask me  the following questions?
    • Why it is not working?
    • Why it works so slow?
    • Why I am not allowed to do this operation?
  • How do I configure this?
  • What alerts your system raises when it fails?
  • Where all alerts are sent?
  • How do I roll back the version?
  • What should I do when I see specific alert?
  • How do I distribute patches for your system?
  • How do I know what is the source of the incident?
  • How do I get detailed information regarding the incident?
  • How do I recognizes the trends that usually lead to incident?
  • How do I back up the configuration?

Benefits

What are the benefits of SOA?

"Service-oriented architecture is, first and foremost, a means of attaining greater business agility from existing IT investments. SOA-based solutions connect systems and thereby automate previously manual information-transfer processes whether the goal is to develop new applications; to connect systems, workgroups, or geographically distributed subsidiaries; or to collaborate with trading partners."

Are you building next Google or Flickr or just building departmental HR system? Do you really achieve the benefits creating your distributed architecture? Do you really automate the process or add more operational costs?

Case studies

More questions and answers

Comments

  • Anonymous
    February 14, 2008
    PingBack from http://msdnrss.thecoderblogs.com/2008/02/14/do-you-really-need-a-distributed-architecture/
  • Anonymous
    February 15, 2008
    You've been kicked (a good thing) - Trackback from DotNetKicks.com
  • Anonymous
    February 16, 2008
    So, are you suggesting people NOT architect for distribution and rewrite the system when load becomes such that it isn't cost effective to scale it up any more?
  • Anonymous
    February 16, 2008
    Very nice article! I have a question for you... Would you want to use an SOA-based solution for the purpose of future scalability?For example, we have built a service which is an endpoint for scheduling data. Currently the only consumer is our web application. The consumer could one day grow to include Windows apps or Silverlight apps.Your thoughts?Thanks!
  • Anonymous
    February 17, 2008
    that was a great articlemost developers these days talk alot abt SOA like it's flawless!a kick from me :)
  • Anonymous
    March 18, 2008
    Dearest commentators!Let me first express my deepest sorrow about super late response! Usually am very fast on replies – less than 24 hours, something really went wrong here.@Udi DahanThat is NOT what I suggest. I do suggest planning for SOA and other distributed architectures. What I suggest is asking questions I mentioned in this post. Asking these questions will help you identify what you know and what you do not know. If you are not asking these questions you are in the position where you do not know what you do not know. That is bad situation to be in. Expect non-pleasant surprises. A lot of. From your end users complaining on bad perf, IT folks who do not know how to handle incidents, security stuff, and few more. If you are NOT asking these questions you are more likely to rewrite your SOA architecture-based app either.@Denny FerrassolyI would. You describe very valid scenario for “SOA” app. I like calling it distributed app vs SOA. Just do not forget that your customers are the most important part.  SOA customers are more IT guys, developers, and architects. Want to satisfy them? Ask those questions when you build your next SOA app@Fady AnwarGreat to hear you liked it! Thanks for the KICK!
  • Anonymous
    September 08, 2008
    Es lo que me ha estado diciendo el servidor de pruebas. Esa semana la hemos dedicado a probar toda la
  • Anonymous
    February 22, 2009
    No witty opening comment this week...sorry to disappoint. :) General Improve .Net Performance Effectively & Efficiently : Microsoft's ACE team, who are are responsible for application performance, security, and privacy, has a great post about improving