Building Scalable 'NET Applications - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Building Scalable 'NET Applications

Description:

... Scalability: Partitioning and Collocation. IIS. Data Base. Writer ... Collocation write/read within the same process. Partitioning and Content-Based Routing ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 26
Provided by: michael1122
Category:

less

Transcript and Presenter's Notes

Title: Building Scalable 'NET Applications


1
Building Scalable .NET Applications
Guy Nirpaz, EVP RD, GigaSpaces Technologies
2
Who am I?
  • 3 Years with GigaSpaces
  • VP of RD
  • Speaker at dev conferences
  • Agile, Technology, Architecture
  • Veteran of several Startups
  • Spent most of my life in design and architecture
    of complex systems
  • Financial Services, Command and Control, Teleco
  • Mercury, IBM, others
  • Contact
  • guyn_at_gigspaces.com
  • _at_gnirpaz Twitter
  • jroller.com/gnirpaz - Blog

3
About GigaSpaces
  • A Scale-Out Platform, optimized for distributed
    and virtualized environments
  • Any deployment environments clouds, grids,
    commodity servers, multi-core
  • Any languages Spring/Java, .Net, C, Dynamic
  • Driven by the need for
  • confidence to handle unpredictable demand and
    peak loads
  • guaranteed performance under any processing
    loads
  • cost-effective, on-demand scalability for clouds
    and grids
  • rapidly develop, change and scale applications

4
Global 1000 Companies Rely on GigaSpaces
5
  • Explore technical and business challenges of
    building scalable applications. Analyze
    fundamental architecture limitations and propose
    cost-effective alternative

6
The typical scenario
Michael Jackson Tickets are on Sale!
Your Application
7
Solution Linear and Dynamic Scalability
Linear Dynamic Scalability
8
Traditional Tier Based Architecture is not
scalable
Business tier
  • Relies on centralized resources
  • Hard to install
  • Bound to static resources (IPs, disk drives,
    etc.)
  • Separate clustering model for each tier
  • Hard to maintain
  • Non-scalable

Web Tier
Load Balancer
Back-up
Back-up
Back-up
Messaging
9
Peak loads are unpredictable
  • Constant transaction, data and user growth
  • Volatile and unpredictable loads

10
Scalability Disasters Are More Common Than Ever
  • Lost customers
  • Lost revenues
  • Brand damage

11
Micro-Blogging (ala Twitter) Example
IIS
Data Base
Users
Load Balancer
IIS
12
Reader/Publisher Service
namespace MicroBlog.Services public
interface IReaderService ICollectionltPostgt
GetUserPosts(String userID) ICollectionltPostgt
GetUserPosts(String userID, DateTime fromDate)

namespace MicroBlog.Services public
interface IPublisherService void
PublishPost(Post post)
13
What happens on success
Users
The database becomes the bottleneck
IIS
Data Base
IIS
Load Balancer
IIS
IIS
IIS
IIS
14
Reader Database Implementation
public ICollectionltPostgt GetUserPosts(string
userID, DateTime fromDate) // Create
command IDbCommand dbCommand
_dbConnection.CreateCommand() dbCommand.Com
mandText String.Format( "SELECT FROM Post
WHERE UserID'0' AND PostedOn gt
1", userID, fromDate) // Execute
command IDataReader dataReader
dbCommand.ExecuteReader() // Translate results
from db records to .NET objects ListltPostgt
result ReadPostsFromDataReader(dataReader) //
Return results return result
15
Step I Remove DB Bottlenecks with Caching
  • Reduce I/O bottlenecks less DB access
  • In-Memory caching
  • Reduced Network hops (if in-process)
  • Suitable for read-mostly apps

Users
Load Balancer
Data Base
Cache Service
IIS
16
Reader Space Implementation
public ICollectionltPostgt GetUserPosts(String
userID) // Create a template to get all posts
by a user id Post template new
Post() template.UserID userID // Use space
proxy to read entries matching template Post
result _spaceProxy.ReadMultiple(template) //
Return result return result
17
Step II Linear Scalability Partitioning and
Collocation
IIS
Users
Load Balancer
Data Base
IIS
IIS
IIS
18
Post Life Cycle
Writer
Reader
Poster
Load Balancer
Post.NEW
IIS
ReaderClient
Post.VALID
Space
Writer Client
Reader
19
Writer Client
public class SpacePublisherService
IPublisherService private readonly
ISpaceProxy _spaceProxy public void
PublishPost(Post post) this._spaceProxy.Writ
e(post)
20
Event Driven Programming Writer Example
PollingEventDriven, TransactionalEvent public
class PendingPostsProcessor
DataEventHandler public Post
ProcessPendingPost(Post post)
PostStatus newStatus PostStatus.Published
foreach (String illegalWord in _illegalWords)
if (post.Subject.Contains(illegalWord)
post.Body.Contains(illegalWord))
newStatus PostStatus.Rejected break
// Set new status
post.Status newStatus return post
21
Read Life Cycle
Writer
Reader
Poster
Load Balancer
IIS
ReaderClient
Space
Writer Client
Post
Post
Post
Reader
22
Step II Linear Scalability Partitioning and
Collocation
IIS
Users
Load Balancer
Data Base
IIS
IIS
  • Collocation write/read within the same process
  • Partitioning and Content-Based Routing
  • Async Writes to the Database

IIS
23
Step III Dynamic Scalability
Monitor
Provision
Users
Load Balancer
Data Base
IIS
IIS
  • SLA Driven Policies
  • Dynamic Scalability
  • Self healing

24
Space Based Architecture Values
  • Linear Scalability
  • Predictable cost model pay per value
  • Predictable growth model
  • Dynamic
  • On demand grow only when needed
  • Scale back when resources are not needed anymore
  • SLA Driven
  • Automatic
  • Self healing
  • Application aware
  • Simple
  • Non intrusive programming model
  • Single clustering Model

25
Questions?
26
GigaSpaces Home Pagehttp//www.gigaspaces.com/
GigaSpaces XAP Product Overview http//www.gigasp
aces.com/wiki/display/XAP7/Concepts GigaSpaces
XAP for the Cloud http//www.gigaspaces.com/clou
d
Write a Comment
User Comments (0)
About PowerShow.com