Presentation is loading. Please wait.

Presentation is loading. Please wait.

Building Scalable.NET Applications Guy Nirpaz, EVP R&D, GigaSpaces Technologies.

Similar presentations


Presentation on theme: "Building Scalable.NET Applications Guy Nirpaz, EVP R&D, GigaSpaces Technologies."— Presentation transcript:

1 Building Scalable.NET Applications Guy Nirpaz, EVP R&D, GigaSpaces Technologies

2 Who am I? 3 Years with GigaSpaces –VP of R&D –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@gigspaces.comguyn@gigspaces.com –@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 Your Application The typical scenario… Michael Jackson Tickets are on Sale!

7 Linear Dynamic Scalability Solution: Linear and Dynamic Scalability

8 Business tier Back-up Load Balancer Web Tier Messaging 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 Traditional Tier Based Architecture is not scalable

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 Users Load Balancer Micro-Blogging (ala Twitter) Example IIS Data Base Application Publish Service Read Service IIS Application Publish Service Read Service

12 Reader/Publisher Service namespace MicroBlog.Services { public interface IReaderService { ICollection GetUserPosts(String userID); ICollection GetUserPosts(String userID, DateTime fromDate); } namespace MicroBlog.Services { public interface IPublisherService { void PublishPost(Post post); }

13 Users Load Balancer What happens on success IIS Data Base Application Publish Service Read Service IIS Application Publish Service Read Service IIS Application Publish Service Read Service Application Publish Service Read Service The database becomes the bottleneck

14 Reader – Database Implementation public ICollection GetUserPosts(string userID, DateTime fromDate) { // Create command: IDbCommand dbCommand = _dbConnection.CreateCommand(); dbCommand.CommandText = String.Format( "SELECT * FROM Post WHERE UserID='{0}' AND PostedOn > {1}", userID, fromDate); // Execute command: IDataReader dataReader = dbCommand.ExecuteReader(); // Translate results from db records to.NET objects: List result = ReadPostsFromDataReader(dataReader); // Return results: return result; }

15 Users Load Balancer Step I – Remove DB Bottlenecks with Caching IIS Data Base Application Publish Service Read Service Cache Service Reduce I/O bottlenecks – less DB access In-Memory caching Reduced Network hops (if in- process) Suitable for read-mostly apps

16 Reader – Space Implementation public ICollection 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 Users Load Balancer Step II – Linear Scalability: Partitioning and Collocation IIS Data Base Writer Reader Space Writer Reader Space Writer Reader Space Writer Reader Space Writer Reader Space IIS

18 Poster Load Balancer Post Life Cycle Writer Reader Space IIS Writer Client Reader Client Post.NEW Post.VALID Reader

19 Writer Client public class SpacePublisherService : IPublisherService { private readonly ISpaceProxy _spaceProxy; public void PublishPost(Post post) { this._spaceProxy.Write(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 Poster Load Balancer Read Life Cycle Writer Reader Space IIS Writer Client Reader Client Post Reader Post

22 Users Load Balancer Step II – Linear Scalability: Partitioning and Collocation IIS Data Base Writer Reader Space Writer Reader Space Writer Reader Space Writer Reader Space Writer Reader Space IIS Collocation – write/read within the same process Partitioning and Content-Based Routing Async Writes to the Database

23 Users Load Balancer Step III – Dynamic Scalability IIS Data Base Writer Reader Space Writer Reader Space Writer Reader Space IIS Monitor Provision 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 Page: http://www.gigaspaces.com/ GigaSpaces XAP Product Overview: http://www.gigaspaces.com/wiki/display/XAP7/Concepts GigaSpaces XAP for the Cloud: http://www.gigaspaces.com/cloud


Download ppt "Building Scalable.NET Applications Guy Nirpaz, EVP R&D, GigaSpaces Technologies."

Similar presentations


Ads by Google