architecture - december 2013 - avinash ramineni, shekhar veumuri

26
Recap Web services SOAP Rest Security Authentication and Authorization SSL AWS EC2,S3,RDS,EBS,ELB

Upload: clairvoyantllc

Post on 13-Jan-2017

14 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Recap• Web services

– SOAP– Rest

• Security– Authentication and Authorization– SSL

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

Page 2: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture Concepts

PART 1

Page 3: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

• Understanding business goals

• Understanding the constraints

• Set the vision and communicate

Page 4: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

• Software Architecture

• Enterprise Architecture

Page 5: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

• Who are the stakeholders of any Architecture?

• Business

• Technology Leadership

• Developers …

Page 6: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

• Functional vs Non Functional Requirements

• Constraints

• Point in time representation - evolves over time

Page 7: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

• A Conceptual or Logical View of the system

• Implementation View

• Data Flow

• Systems view / Physical view

Page 8: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

• How to communicate?

• UML

• Whiteboard diagrams - boxes and arrows

Page 9: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

• Whiteboard diagrams - boxes and arrows

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

Page 10: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

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

Page 11: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

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

happen?• What are the lower level technology choices?

Page 12: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

• What• does the detailed software component architecture

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

Page 13: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

• Component and Functional view

• Interactions - Flows• Data• Specific pieces of logic

Page 14: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

• HOW do we do it?

• All up front

• Agile

Page 15: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

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)

Page 16: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture - Process

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

• How does the architecture evolve?

• Quality - review - validate

Page 17: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

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

Page 18: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Architecture

• Monolithic Applications

• Service Oriented applications

Page 19: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

N- Tier Architectures

Page 20: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

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

Page 21: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Best Practices

YAGNI

KISS

DRY

Page 22: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Best Practices

Continuous Integration / Deployment

Premature Optimization

Page 23: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

Transactions

Page 24: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

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.

Page 25: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

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

Page 26: Architecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri

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