Your SlideShare is downloading. ×
Scaling Application
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Scaling Application

579

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
579
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Scaling Application
    ESRI Developer Summit - 2011
    Alaor Bianco abianco@img.com.br @alaorbianco
    IMAGEM - BRAZIL
  • 2. Agenda
    Some good practices and tools
    Cache
    Instrumentation
    Performance counters
    How did good practices help us?
    Webcontrol approach vs. service approach
    Performance tests
  • 3. Introduction
    The main idea
    Only who knows can take control!
    Understand the application behavior
    Understand the application lifecycle
  • 4. Scaling
    Scale up (Scale vertically)
    Scale out (Scale horizontally)
  • 5. Where to use?
    Why to use?
    Reduce data transfer in inter-process communication
    Reduce data processing
    Reduce disk access
    Types
    Files based (disk)
    InMemory
    Pre-Build Caching
    On-Demand Caching
    Caching
  • 6. Map Caching
    Different scales
    Improvements to
    map cache tile
    generation (10.0)
    Feature Caching
    EsriFeatureCache
    GeoFeatureCache (NoSQL and InMemory)
    Caching
  • 7. Negative Caching
    Failed requests
    Low expiration
    Fail Fast, Fail Cheap
    Avoid cascade effects
    Caching
  • 8. Caching
    • Windows Server AppFabric Caching
    (Distributed Cache)
    Throughput : Amount of data transferred
    Latency: Time delay
    Load: Work
  • 9. Caching
    .NET 4.0 System.Runtime.Caching
    Ncache
    Memcached
    Varnish (html)
    Wikipedia
    Flickr
    Twitter
    Youtube
    Digg
    WordPress
    Craigslist
  • 10. Asynchronous Processing
    Heavy Processing
    Queue
    Examples:
  • Log and Trace
    Audit
    Diagnostic
    Analyze
    Behavior
    Lifecycle
    Instrumentation
  • 12. Interception Methods from Microsoft Enterprise Library Application Block
    publicclassReader : IOperation
    {
    [Common.Logging.Interception.Log]
    public override IEnumerable<Row>
    Execute(IEnumerable<Row> rows)
    {
    Log or Trace - Sample
  • 13. Different levels
    Debug
    Error
    Info
    Notice
    Warn
    Network
    Logs
    Others:
    facebook
  • 15. Instrumentation
    What´s alive
    What´s Processing
    What´s Processed
    Performance
    Statistics
    Available Resource
    Performance Counters
  • 16. Performance Counters from Microsoft Enterprise Library Application Block
    Can use Interception just like Logs
    Can be injected by IoC (Dependency Injection)
    Performance Counters
  • 17. Scalability
    Server do not need to maintain state for each
    Request
    User
    Etc
    Scaling Horizontally
    One server do not worry about a state create by another one
    Stateless
  • 18. How did it help us?
    Understand the application flow, lifecycle and behavior
    Identify bottleneck
    Identify improvement points
    Based on this information, build a good architecture
  • 19. ASP.NET Web Controls
  • 20. ASP.NET Web Controls
    Server side processed
    Viewstate
    For each callback all viewstate is sent to server
    For each callback all webcontrol fires onLoad event
  • 21. Architecture
  • 22. Architecture
    MVC
    Easy to test
    AJAX instead of callback
    COM Objects lifecycle management
    Application Container has all active objects reference
    Layers
    Map
    etc
  • 23. Started on ArcGIS Server 9.2
    GIS Framework with our own well known interfaces, implementation and services
    Migration to AGS 9.3.1 took 5 hours
    Architecture
  • 24. Migration to AGS 10 (took a little more!!)
    Write the controller layer as a SOE
    Write the framework initializer to get map objects references
    Can return JSON, GeoJSON or XML
    Was able to reuse all our business layer!!
    Architecture
  • 25. Comparison - Login
    System A – Service
    Others – Webcontrol (Initialization)
  • 26. Comparison - Zoom
    System A – Service
    Others – Webcontrol (Zoom)
  • 27. Comparison
    System A was able to support 900 simultaneous users
    System B was able to support no more than 30
    *Same operational environment (Hardware and Software)
  • 28. Performance Tests
    Load Tests in VisualStudio
    Web Performance Test
  • 29. Performance Tests
    Load Test
  • 30. Performance Tests
  • 31. Performance Tests
  • 32. Performance Tests
  • 33. Thanks and Questions

×