20
Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftSer

Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Embed Size (px)

Citation preview

Page 1: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Software Architecture

In Practice

Volodymyr Yelchev, Solution Architect at SoftServe

Page 2: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Bio

• 16 years in Software Development• 6 years experience in Real Time systems

development• 10 Years of experience in Business Application

development for Enterprise• Certified Scrum Master• More than 2 years of Architecture experience• US Healthcare domain expert (EHR, EMR, PM)• SaaS architect at SoftServe

Page 3: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

What is Software Architecture?The high-level breakdown of a system into its parts

Page 4: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

What is Software Architecture?

The decisions that are hard to change

Page 5: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

What is NOT Software Architecture?

Details that do solely with internal implementation - are not architectural

Student1

*

School

Conselor

Teacher

-grade

Class

1

*

1*1

*

Page 6: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Why Architecture is needed?

Finnish houseBudget: $60KTeam: 5 developersTime: 45 daysNo Architects

Page 7: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Why Architecture is needed?

Finnish houseBudget: $60KTeam: 5 developersSchedule: 45 daysNo Architects

Burj KhalifaBudget: $1.5BTeam: 7,500 developersSchedule : 5 yearsArchitecture Team

Page 8: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Why Architecture is needed?

• Complex or non-trivial product• Multiple teams

Page 9: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

SA Activity

• Sales and Marketing Support• Technology Consulting• Discovery Projects• Project Bootstrap• Ongoing Architecture Support• New technology investigation• Trainings• Competence Development

Page 10: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Architect Decision Scope

Solutions Architect Scope(Delivery Group)

System Architect Scope(Domain, e.g. Java, .NET, BI)

Application Architect Scope(Project)

Component Scope

Page 11: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Logical Architectural Framework

Reference Architecture

SolutionArchitecture

Patterns

Technology

System Requirements

Business Requirements

derived

use

useuse

use

Abstract

Concrete

Page 12: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Architecture Drivers (example)

Business requirements: ?

System requirements: Hosted Web-based Solution (Private Cloud)

Desktop and Slate devices support (Win, Mac, iPad, Android, WebOS)

Multitenancy (SaaS Level 4)

Data Model Extensibility (Dynamic forms)

UI Customization (forms layouts, themes, logo…)

Multi-language support (run-time switch)

Integration with external systems

Provisioning (Automated)

Security (Role based, HIPAA, SSL 2048)

Availability (24x7, 99.9%)

Maint. Window (6h), Disaster Recovery (48h)

Fault-Tolerance

Scalability (~8000 offices)

Business Constraints: Time To Market (?)

Page 13: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Target Architectural Patterns

SaaS Patterns

Hosting

On-Premise Datacenter

Managed Hosting

Cloud

Application

Scalability

External Load Balancer

Client-Side Load Balancing

Stateless Principle

State Replication

Tenant Partitioning

Performance

Data Caching

Content Caching

Coarse-Grained Interface

Asynchronous Processing

High-AvailabilityRequest Queuing

Concurrency Control

Fault-ToleranceFailover Cluster (Active/Active)

Failover Cluster (Active/Standby)

MonitoringSLA Real-Time Monitoring (Active)

SLA Real-Time Monitoring (Passive)

Data StorageRDBMS

Data Isolation

Separate DB

Shared DB, Separate Schema

Shared DB, Shared Schema

Data Extensibility

Preallocated Fields

Custom Schemas

Name Value Extension Table

XML Columns

Data Security

Trusted Database Connections

Secure Database Tables

Tenant Data Encryption

Tenant Data Filter

Performance and ScalabilityTenant-Based Horizontal Partitioning

Vertical Scale Up

Fault-Tolerance and High-AvailabilityData Replication

NOSQL DB

Multi-Tenancy

Level 1 (Ad-Hoc/Custom)

Level 2 (Configurable)

Level 3 (Configurable, Multi-Tenant-Efficient)

Level 4 (Scalable, Configurable, Multi-Tenant-Efficient)

Page 14: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Reference ArchitectureTraditional Web Client

PC Browser

HTML Rendering

Application Services

Web Frameworks Programmatic Access

Business Logic Workflow (Processes)

REST WebServices

Rule EngineEvent

ProcessingBusiness

Components

Web Application framework

Template engine

BPM Engine

Data Access

O/RM Mem Caching

Collaboration

Search EngineContent

Management

Infrastructure Services

RIA Client

PC Browser

RIA framework

RIA components

RIA utilities

Web Server

Serlvet Container

Application Server

HTTP Server

Messaging

Message Queue ESB

Cross-Cutting

Sec

uri

ty

Iden

tity

and

A

cces

sS

ingl

e S

ign-

On

Distributed Computing

Distributed Computing Framework

Storage

NoSQL DBIn-memory

DBRDBMS

File storage

Op

erat

ion

Man

agem

ent

Bui

ld &

Dep

loy

Mon

itorin

gB

AM

Uti

litie

s

Com

mo

n F

ram

ewor

kIn

teg

ratio

n

Rep

ort

ing

/BI

AdH

oc

Rep

ortin

gR

epor

t Eng

ine

DW

Page 15: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Technology Presets (example)

Open Source MS .NET MS Azure

JSF/ExtJSSpringHibernate/JPAJBoss AS/TomcatJBoss DroolsJBoss BPMOpenJMSMule ESBMySQL/PostgreSQLJasperServer/JaperReports

ASP.NET MVC 3SilverLight/WPFEntity FrameworkWCFMSFWFMS BizTalk/ESBMSMQIISMS SQL ServerSSRSSSIS

Azure PlatformSQL Azure AppFabricAzure StorageService Bus

Page 16: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Ref Architecture + Technology StackTraditional Web Client

PC Browser

HTML Rendering

Application Services

Web Frameworks Programmatic Access

Business Logic Workflow (Processes)

REST WebServices

Rule EngineEvent

ProcessingBusiness

Components

Web Application framework

Template engine

BPM Engine

Data Access

O/RM Mem Caching

Collaboration

Search EngineContent

Management

Infrastructure Services

RIA Client

PC Browser

RIA framework

RIA components

RIA utilities

Web Server

Serlvet Container

Application Server

HTTP Server

Messaging

Message Queue ESB

Cross-Cutting

Sec

uri

ty

Iden

tity

and

A

cces

sS

ingl

e S

ign-

On

Distributed Computing

Distributed Computing Framework

Storage

NoSQL DBIn-memory

DBRDBMS

File storage

Op

erat

ion

Man

agem

ent

Bui

ld &

Dep

loy

Mon

itorin

gB

AM

Uti

litie

s

Com

mo

n F

ram

ewor

kIn

teg

ratio

n

Rep

ort

ing

/BI

AdH

oc

Rep

ortin

gR

epor

t Eng

ine

DW

ExtJS/jQuery

Grails Grails

Grails

GORM

JBoss/GlassFish

MS SQL

Gra

ils

Page 17: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Now Most Difficult Part

Page 18: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Questions

Page 19: Software Architecture In Practice Volodymyr Yelchev, Solution Architect at SoftServe

Copyrights

• During this presentation used following sources– Serhiy Haziyev materials – SoftServe AG materials