architecture - december 2013 - avinash ramineni, shekhar veumuri

Post on 13-Jan-2017

14 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Recap• Web services

– SOAP– Rest

• Security– Authentication and Authorization– SSL

• AWS– EC2,S3,RDS,EBS,ELB

Architecture Concepts

PART 1

Architecture

• Understanding business goals

• Understanding the constraints

• Set the vision and communicate

Architecture

• Software Architecture

• Enterprise Architecture

Architecture

• Who are the stakeholders of any Architecture?

• Business

• Technology Leadership

• Developers …

Architecture

• Functional vs Non Functional Requirements

• Constraints

• Point in time representation - evolves over time

Architecture

• A Conceptual or Logical View of the system

• Implementation View

• Data Flow

• Systems view / Physical view

Architecture

• How to communicate?

• UML

• Whiteboard diagrams - boxes and arrows

Architecture

• Whiteboard diagrams - boxes and arrows

• Collapse related components• Have different views • Keep it abstract - but actionable• Typically Layered

Architecture

• What• Are we building• What roles interact with the system• How does it integrate into the rest of the environment• Data flows, process flows

Architecture

• What• is the technology stack• how do interactions between various components

happen?• What are the lower level technology choices?

Architecture

• What• does the detailed software component architecture

look like?• How do these components interact with each other • Fairly low level - developer oriented

Architecture

• Component and Functional view

• Interactions - Flows• Data• Specific pieces of logic

Architecture

• HOW do we do it?

• All up front

• Agile

Architecture - Process

• Find the Drivers of the business, Goals, requirements

• What is our strategy to implement this?

• How does the overall vision get implemented? (roadmap)

Architecture - Process

• What are the risks? How do we mitigate them?

• How does the architecture evolve?

• Quality - review - validate

Architecture

• A good architecture helps you evolve

• A good design lets you change at a lesser cost

• Abstractions - decoupling help with that

• Reduce tight coupling and hard dependencies

Architecture

• Monolithic Applications

• Service Oriented applications

N- Tier Architectures

Fallacies of Distributed Systems

• The network is reliable• Latency is zero• Bandwidth is infinite• The network is secure• Topology does not change• Transport cost is zero• Network is homogeneous

Best Practices

YAGNI

KISS

DRY

Best Practices

Continuous Integration / Deployment

Premature Optimization

Transactions

Distributed Transactions• Follows 2 Phase Commit protocol• Very Chatty protocol and does a lot of logging to be able to recover

from any failure scenario.• Too much overhead to 99.9% of the cases to handle less than 0.1% of

cases• Increases the chances for deadlocks on the database.• Lowers the overall performance of the system.• Bane of scalability. Grinds the entire system to halt by adding overhead

to each and every transaction.

Distributed Transactions• Availability of the Systems goes down.

• XA Configuration is complicated

• Difficult to test.

• Many People tend to believe that using JTA implementation of transaction manager will take care of a XA transactions

• Many a time people end up using JTA Manager even while dealing with single resource

Asynchronous Architectures• Event Delivery Guarantees

– Reliability

• At least Once - Duplicate events can be delivered

• At most Once - Some events can be lost• Once and only Once - Each is delivered Exactly once

– Order of Delivery

• In Order Guaranteed

• In Order not Guaranteed

top related