SlideShare a Scribd company logo
1 of 49
Building Highly Scalable
Java Applications
on Windows Azure
David Chou
david.chou@microsoft.com
blogs.msdn.com/dachou
Agenda
• Overview of Windows Azure
• Java How-to
• Architecting for Scale
> Introduction
What is Windows Azure?
• A cloud computing platform (as-a-service)
– on-demand application platform capabilities
– geo-distributed Microsoft data centers
– automated, model-driven services provisioning and management
• You manage code, data, content, policies, service models, etc.
– not servers (unless you want to)
• We manage the platform
– application containers and services, distributed storage systems
– service lifecycle, data replication and synchronization
– server operating system, patching, monitoring, management
– physical infrastructure, virtualization networking
– security
– “fabric controller” (automated, distributed service management system)
> Azure Overview
Anatomy of a Windows Azure instance
Guest VM
Guest VM
Guest VM
Host VM
Maintenance OS,
Hardware-optimized hypervisor
> Azure Overview > Anatomy of a Windows Azure instance
The Fabric Controller communicates with every server
within the Fabric. It manages Windows Azure, monitors
every application, decides where new applications
should run – optimizing hardware utilization.
Storage – distributed storage systems that
are highly consistent, reliable, and scalable.
Compute – instance types: Web Role &
Worker Role. Windows Azure applications
are built with web role instances, worker
role instances, or a combination of both.
Each instance runs on its
own VM (virtual machine)
and local transient storage;
replicated as needed
HTTP/HTTPS
Application Platform Services
> Azure Overview > Application Platform Services
Storage
Dynamic
Tabular Data
Blobs
Message
Queues
Distributed File
System
Content
Distribution
Data Transact-SQL
Data
Synchronization
Relational
Database
ADO.NET,
ODBC, PHP
Integration Registry RegistryService Bus
Security
Claims-Based
Identity
Federated
Identities
Secure Token
Service
Declarative
Policies
Marketplace
Application
Marketplace
Information
Marketplace
Frameworks
Workflow
Hosting
Distributed
Cache
Services
Hosting
Compute C/C++
Win32 VHD
On-Premises
Bridging
Networking
Application Platform Services
> Azure Overview > Application Platform Services
Compute
Storage
Data
Relational
Database
Integration
Security
Marketplace
Frameworks
Table Storage Blob Storage Queue Drive
Content Delivery
Network
VM Role
Networking Connect
ApplicationsDataMarket
Access
Control
Service Bus
Composite
App
Caching
Web Role Worker Role
ReportingDataSync
Integration
Connect
(BizTalk)
How this may be interesting to you
• Not managing and interacting with server OS
– less work for you
– don’t have to care it is “Windows Server” (you can if you want to)
– but have to live with some limits and constraints
• Some level of control
– process isolation (runs inside your own VM/guest OS)
– service and data geo-location
– allocated capacity, scale on-demand
– full spectrum of application architectures and programming models
• You can run Java!
– plus PHP, Python, Ruby, MySQL, memcached, etc.
– and eventually anything that runs on Windows
> Azure Overview
Java and Windows Azure
• Provide your JVM
– any version or flavor that runs on Windows
• Provide your code
– no programming constraints (e.g., whitelisting libraries, execution time limit, multi-threading, etc.)
– use existing frameworks
– use your preferred tools (Eclipse, emacs, etc.)
• File-based deployment
– no OS-level installation (conceptually extracting a tar/zip with run.bat)
• Windows Azure “Worker Role” sandbox
– standard user (non-admin privileges; “full trust” environment)
– native code execution (via launching sub-processes)
– service end points (behind VIPs and load balancers)
> Java How-To
Some boot-strapping in C#
• Kick-off process in WorkerRole.run()
– get environment info (assigned end point ports, file locations)
– set up local storage (if needed; for configuration, temp files, etc.)
– configure diagnostics (Windows Server logging subsystem for monitoring)
– launch sub-process(es) to run executable (launch the JVM)
• Additional hooks (optional)
– Manage role lifecycle
– Handle dynamic configuration changes
• Free tools
– Visual Studio Express
– Windows Azure Tools for Visual Studio
– Windows Azure Tools for Eclipse/Java (CTP 2010H2)
– Windows Azure SDK
> Java How-To > Boot-strapping
Running Tomcat in Windows Azure
Service Instance
Service Instance
Worker Role
RoleEntry
Point
Sub-Process
JVM
Tomcat
server.xmlCatalina
Fabric
Controller
Load
Balancer
Table
Storage
Blob
Storage
Queue
Service
Bus
Access
Control
SQL
Database
new Process()
bind port(x)
http://instance:x
http://instance:y
listen port(x)
http://app:80
get
runtime
info
index.jsp
> Java How-To > Tomcat
• Boot-strapping code in WorkerRole.run()
• Service end point(s) in ServiceDefinition.csdef
Running Jetty in Windows Azure
> Java How-To > Jetty
string response = "";
try {
System.IO.StreamReader sr;
string port = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["HttpIn"].IPEndpoint.Port.ToString();
string roleRoot = Environment.GetEnvironmentVariable("RoleRoot");
string jettyHome = roleRoot + @"approotappjetty7";
string jreHome = roleRoot + @"approotappjre6";
Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.FileName = String.Format(""{0}binjava.exe"", jreHome);
proc.StartInfo.Arguments = String.Format("-Djetty.port={0} -Djetty.home="{1}" -jar "{1}start.jar"",
port, jettyHome);
proc.EnableRaisingEvents = false;
proc.Start();
sr = proc.StandardOutput;
response = sr.ReadToEnd();
} catch (Exception ex) {
response = ex.Message;
Trace.TraceError(response);
}
<Endpoints>
<InputEndpoint name="HttpIn" port="80" protocol="tcp" />
</Endpoints>
Current constraints
Platform
– Dynamic networking
• <your app>.cloudapp.net
• no naked domain
• CNAME re-direct from custom domain
• sending traffic to loopback addresses not
allowed and cannot open arbitrary ports
– No OS-level access
– Non-persistent local file system
• allocate local storage directory
• read-only: Windows directory, machine
configuration files, service configuration
files
– Available registry resources
• read-only: HKEY_CLASSES_ROOT,
HKEY_LOCAL_MACHINE, HKEY_USERS,
HKEY_CURRENT_CONFIG
• full access: HKEY_CURRENT_USER
> Java How-To > Limitations
Java
– Sandboxed networking
• NIO (java.nio) not supported
• engine and host-level clustering
• JNDI, JMS, JMX, RMI, etc.
• need to configure networking
– Non-persistent local file system
• logging, configuration, etc.
– REST-based APIs to services
• Table Storage – schema-less (noSQL)
• Blob Storage – large files (<200GB block
blobs; <1TB page blobs)
• Queues
• Service Bus
• Access Control
Improvements on the way
Platform
– Networking modeling
• well known ports (or fixed VM ports)
• port ranges (for inbound traffic)
• load balancer control (on/off)
• network filters (inter-role access control)
– Improved automation
• startup tasks (execute OS-level scripts)
• role plugins (remote desktop, virtual
network, diagnostics, etc.)
– Full IIS
• multiple websites in same role
• virtual directories
• applications, modules
– Admin access
• full administrative access to role instances
• reboot/re-image support
> Java How-To > Platform Enhancements (Announced; Not Yet Released)
Java
– Traditional deployment models
• deploy your own Java EE stack
• configure internal networking
– More frameworks, packages, and
extended languages
• verify deployment and configuration
– Solution accelerators
• with bootstrapping and configuration
– Java API support
• Windows Azure SDK v2.0 (announced at
PDC10)
• www.windowsazure4j.org
– Development tools
• Windows Azure Tools for Eclipse/Java
(CTP 2010H2)
• Execute startup script in ServiceDefinition.csdef
• Service end point(s) in ServiceDefinition.csdef
Running Jetty with admin access + fixed ports
> Java How-To > Platform Enhancements (Announced; Not Yet Released)
<Startup>
<Task commandLine=“runme.cmd" executionContext=“elevated" TaskType=“background">
</Task>
</Startup>
<Endpoints>
<InputEndpoint name="HttpIn" protocol=“http" port="80" localPort="80" />
</Endpoints>
Running Fujitsu Interstage App Server
JavaEE 6
– Based on Glassfish 3.1
– Complete JavaEE execution environment
– Service Integrator SOA Platform
> Java How-To > Platform Enhancements (Announced; Not Yet Released)
Windows Azure 1.3 SDK
– Loopback adapter is no longer blocked
– Enabled Java NIO
– Enabled Port Ranges: for “inbound
traffic” (as opposed to 5 in the past)
Service end point(s) in ServiceDefinition.csdef
• Worker Role
– fabric sandbox native deployment
– automated, need additional code
– available now
• Admin Access
– script-based installation and execution
– automated, need scripts
– available shortly (not yet released)
• VM Role
– host your own pre-configured VM image
– automated, full control
– available later (not yet released)
Deployment Options
> Java How-To > Platform Enhancements (Announced; Not Yet Released)
• Runtime
– Multiple Java app servers
– Any Windows-based JRE
• Supports
– Windows Azure Storage
– Windows Azure Drive
– Windows Azure AppFabric
– SQL Azure
• One-click cloud deployment
• Integrated diagnostics,
monitoring, and logging
Windows Azure Tools for Eclipse/Java
> Java How-To > Platform Enhancements (Announced; Not Yet Released)
Accessing SQL Azure from Java
> Java How-To > SQL Azure
• SQL Azure Database
– Full relational Database as a Service
• Supports TDS & OData
• Direct connectivity to SQL Azure
– Connect with JDBC/ODBC using the latest driver
– Eclipse tooling support
• Interoperability using REST
– Easily wrap SQL Azure with WCF Data Services
– Restlet extension for OData (Java)
• Committed to OSS support and app compatibility
Accessing Windows Azure Storage from Java
> Java How-To > Windows Azure Storage
• Windows Azure SDK for Java
– Enables Java developers to develop against
Windows Azure Storage & Service Management
infrastructure using familiar & consistent
programming model
• Features
– Set of Java classes for Windows Azure Blobs,
Tables & Queues (for CRUD operations) & Service
Management
– Helper Classes for HTTP transport, AuhN/AuthZ,
REST & Error Management
– Manageability, Instrumentation & Logging(log4j)
• Open Source Project site:
– Developed by our Partner Soyatec
– www.windowsazure4j.org
Windows Azure SDK for Java
Blobs, Tables,
Queues
Manageability,
Instrumentation,
logging
Helper for Http,
Auth, REST, Error
Your Java application
REST
Accessing Windows Azure AppFabric from Java
> Java How-To > Windows Azure AppFabric
• Usage Patterns
– Extends reach of applications securely through the cloud
– Securely integrates partners outside of org boundaries
– Extends reach of on-premises web services layer
– Enables leveraging cloud quickly without having to rewrite apps
• App Fabric SDK for Java Developers
– Open source software development kit (SDK)
– a set of libraries, tools, Prescriptive guidance
– sample applications
• Open Source Project site:
– Developed by our partner Persistent Systems Limited
– www.jdotnetservices.com
Additional Cloud Interop Options
Application-layer
Connectivity & Messaging
> Cloud Scenarios
Facebook (2009)
• +200B pageviews /month
• >3.9T feed actions /day
• +300M active users
• >1B chat mesgs /day
• 100M search queries /day
• >6B minutes spent /day
(ranked #2 on Internet)
• +20B photos, +2B/month
growth
• 600,000 photos served /sec
• 25TB log data /day
processed thru Scribe
• 120M queries /sec on
memcache
> Architecting for Scale
Size matters
Twitter (2009)
• 600 requests /sec
• avg 200-300 connections
/sec; peak at 800
• MySQL handles 2,400
requests /sec
• 30+ processes for handling
odd jobs
• process a request in 200
milliseconds in Rails
• average time spent in the
database is 50-100
milliseconds
• +16 GB of memcached
Google (2007)
• +20 petabytes of data
processed /day by +100K
MapReduce jobs
• 1 petabyte sort took ~6
hours on ~4K servers
replicated onto ~48K disks
• +200 GFS clusters, each at 1-
5K nodes, handling +5
petabytes of storage
• ~40 GB /sec aggregate
read/write throughput
across the cluster
• +500 servers for each
search query < 500ms
• >1B views / day on Youtube
(2009)
Myspace (2007)
• 115B pageviews /month
• 5M concurrent users @
peak
• +3B images, mp3, videos
• +10M new images/day
• 160 Gbit/sec peak
bandwidth
Flickr (2007)
• +4B queries /day
• +2B photos served
• ~35M photos in squid cache
• ~2M photos in squid’s RAM
• 38k req/sec to memcached
(12M objects)
• 2 PB raw storage
• +400K photos added /day
Source: multiple articles, High Scalability
http://highscalability.com/
app server
• Common characteristics
– synchronous processes
– sequential units of work
– tight coupling
– stateful
– pessimistic concurrency
– clustering for HA
– vertical scaling
Traditional scale-up architecture
> Architecting for Scale > Vertical Scaling
app serverweb data store
units of work
web data store
app server
app server
Traditional scale-up architecture
> Architecting for Scale > Vertical Scaling
web
data storeweb
• To scale, get bigger servers
– expensive
– has scaling limits
– inefficient use of resources
data storeapp server
Traditional scale-up architecture
> Architecting for Scale > Vertical Scaling
app serverweb
web
• When problems occur
– bigger failure impact
Traditional scale-up architecture
> Architecting for Scale > Vertical Scaling
app serverweb
data storeweb
• When problems occur
– bigger failure impact
– more complex recovery
Use more pieces, not bigger pieces
LEGO 10179 Ultimate Collector's Millennium Falcon
• 33 x 22 x 8.3 inches (L/W/H)
• 5,195 pieces
LEGO 7778 Midi-scale Millennium Falcon
• 9.3 x 6.7 x 3.2 inches (L/W/H)
• 356 pieces
> Architecting for Scale > Horizontal scaling
app server
Scale-out architecture
> Architecting for Scale > Horizontal scaling
app serverweb data store
• Common characteristics
– small logical units of work
– loosely-coupled processes
– stateless
– event-driven design
– optimistic concurrency
– partitioned data
– redundancy fault-tolerance
– re-try-based recoverability
web data store
app server
app server
app server
app server
app server
Scale-out architecture
> Architecting for Scale > Horizontal scaling
app serverweb data store
web
web
web data store
web
web
• To scale, add more servers
– not bigger servers
data store
data store
data store
data store
app server
app server
app server
app server
app server
app server
Scale-out architecture
> Architecting for Scale > Horizontal scaling
web data store
web
web
web data store
web
web
• When problems occur
– smaller failure impact
– higher perceived availability
data store
data store
data store
data store
app server
app server
app server
Scale-out architecture
> Architecting for Scale > Horizontal scaling
app serverweb data store
web
web app server
web data store
web
web
• When problems occur
– smaller failure impact
– higher perceived availability
– simpler recovery
data store
data store
data store
data store
app server
app server
• Scalable performance at extreme scale
– asynchronous processes
– parallelization
– smaller footprint
– optimized resource usage
– reduced response time
– improved throughput
app server
app server
Scale-out architecture + distributed computing
> Architecting for Scale > Horizontal scaling
app serverweb data store
web
web app server
web data store
web
web
data store
data store
data store
data store
parallel tasks
async tasks
perceived response time
app server
app server
• When problems occur
– smaller units of work
– decoupling shields impact
app server
app server
Scale-out architecture + distributed computing
> Architecting for Scale > Horizontal scaling
app serverweb data store
web
web app server
web data store
web
web
data store
data store
data store
data store
app server
• When problems occur
– smaller units of work
– decoupling shields impact
– even simpler recovery
app server
app server
Scale-out architecture + distributed computing
> Architecting for Scale > Horizontal scaling
app serverweb data store
web
web app server
web data store
web
web
data store
data store
data store
data store
Live Journal (from Brad Fitzpatrick, then Founder at Live Journal, 2007)
> Architecting for Scale > Cloud Architecture Patterns
Partitioned Data
Distributed
Cache
Web Frontend
Distributed Storage
Apps & Services
Flickr (from Cal Henderson, then Director of Engineering at Yahoo, 2007)
> Architecting for Scale > Cloud Architecture Patterns
Partitioned Data Distributed
Cache
Web Frontend
Distributed Storage
Apps & Services
SlideShare (from John Boutelle, CTO at Slideshare, 2008)
> Architecting for Scale > Cloud Architecture Patterns
Partitioned Data
Distributed Cache
Web
Frontend
Distributed Storage
Apps &
Services
Twitter (from John Adams, Ops Engineer at Twitter, 2010)
> Architecting for Scale > Cloud Architecture Patterns
Partitioned
Data
Distributed
Cache
Web
Frontend
Distributed
Storage
Apps &
Services
Queues
Async
Processes
2010 stats (Source: http://www.facebook.com/press/info.php?statistics)
– People
• +500M active users
• 50% of active users log on in any given day
• people spend +700B minutes /month
– Activity on Facebook
• +900M objects that people interact with
• +30B pieces of content shared /month
– Global Reach
• +70 translations available on the site
• ~70% of users outside the US
• +300K users helped translate the site through
the translations application
– Platform
• +1M developers from +180 countries
• +70% of users engage with applications /month
• +550K active applications
• +1M websites have integrated with Facebook
Platform
• +150M people engage with Facebook on
external websites /month
> Architecting for Scale > Cloud Architecture Patterns
Facebook
(from Jeff Rothschild, VP Technology at Facebook, 2009)
Partitioned
Data
Distributed
Cache
Web
Frontend
Distributed
Storage
Apps &
Services
Parallel
Processes
Async
Processes
Windows Azure platform components
Apps & Services
Services
Web Frontend
QueuesDistributed Storage
Distributed
Cache
Partitioned Data
> Architecting for Scale > Cloud Architecture Patterns
Content Delivery
Network
Load Balancer
IIS
Web Server
VM Role
Worker Role
Web Role
Caching
Queues Access Control
Composite App
Blobs
Relational
Database
Tables
Drives Service Bus
Reporting
DataSync
Virtual Network
Connect
Fundamental concepts
> Architecting for Scale
• Vertical scaling still works
Fundamental concepts
> Architecting for Scale
• Horizontal scaling for cloud computing
• Small pieces, loosely coupled
• Distributed computing best practices
– asynchronous processes (event-driven design)
– parallelization
– idempotent operations (handle duplicity)
– de-normalized, partitioned data (sharding)
– shared nothing architecture
– optimistic concurrency
– fault-tolerance by redundancy and replication
– etc.
Partitioned data
> Architecting for Scale > Fundamental Concepts
Shared nothing architecture
– transaction locality (partition based on an
entity that is the “atomic” target of
majority of transactional processing)
– loosened referential integrity (avoid
distributed transactions across shard and
entity boundaries)
– design for dynamic redistribution and
growth of data (elasticity)
Cloud computing friendly
– divide & conquer
– size growth with virtually no limits
– smaller failure surface
Windows Azure platform services
– Table Storage Service
– SQL Azure
– AppFabric Caching (coming soon)
– SQL Azure DB federation (coming soon)
Web Role
QueuesWeb Role
Web Role
Worker Role
Relational
Database
Relational
Database
Relational
Database
Web Role
read
write
Asynchronous processes & parallelization
> Architecting for Scale > Fundamental Concepts
Defer work as late as possible
– return to user as quickly as possible
– event-driven design (instead of request-
driven)
Cloud computing friendly
– distributes work to more servers (divide &
conquer)
– smaller resource usage/footprint
– smaller failure surface
– decouples process dependencies
Windows Azure platform services
– Queue Service
– AppFabric Service Bus
– inter-node communication
Worker Role
Web Role
Queues
Service BusWeb Role
Web Role
Web Role
Worker Role
Worker Role
Worker Role
Idempotent operations
> Architecting for Scale > Fundamental Concepts
Repeatable processes
– allow duplicates (additive)
– allow re-tries (overwrite)
– reject duplicates (optimistic locking)
– stateless design
Cloud computing friendly
– resiliency
Windows Azure platform services
– Queue Service
– AppFabric Service Bus
Worker Role
Service Bus Worker Role
Worker Role
At most two of these properties for any shared-data system
C A
P
Consistency + Availability
• High data integrity
• Single site, cluster database, LDAP, xFS file system, etc.
• 2-phase commit, data replication, etc.
C A
P
Consistency + Partition
• Distributed database, distributed locking, etc.
• Pessimistic locking, minority partition unavailable, etc.
C A
P
Availability + Partition
• High scalability
• Distributed cache, DNS, etc.
• Optimistic locking, expiration/leases, etc.
CAP (Consistency, Availability, Partition) Theorem
> Architecting for Scale > Fundamental Concepts
Source: “Towards Robust Distributed Systems”, Dr. Eric A. Brewer, UC Berkeley
Hybrid architectures
> Architecting for Scale > Fundamental Concepts
Scale-out (horizontal)
– BASE: Basically Available, Soft state,
Eventually consistent
– focus on “commit”
– conservative (pessimistic)
– shared nothing
– favor extreme size
– e.g., user requests, data collection &
processing, etc.
Scale-up (vertical)
– ACID: Atomicity, Consistency, Isolation,
Durability
– availability first; best effort
– aggressive (optimistic)
– transactional
– favor accuracy/consistency
– e.g., BI & analytics, financial processing,
etc.
Most distributed systems employ both approaches
Lastly…
Windows Azure is an open & interoperable cloud platform
Microsoft is committed to Java, and we are on a journey – please give us your
feedback & participate in open source projects
Diverse Choice of Development Tools for Java Developers
– Eclipse Tools for Windows Azure – Write Modern Cloud Application
– Tomcat Solutions Accelerator
– Admin Access & VM Role
– Windows Azure Platform SDKs for Java Developers
• Windows Azure SDK (Storage, Diagnostics & Service Management)
• App Fabric SDK (Service Bus & Access Control Services)
• Restlet extension for OData (Java)
For more information:
– http://windowsazure.com/interop
– http://www.interoperabilitybridges.com
> Wrap-Up
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it
should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Thank you!
David Chou
david.chou@microsoft.com
blogs.msdn.com/dachou

More Related Content

What's hot

(ATS3-APP08) Top 10 things every Symyx Notebook by Accelrys Administrator sho...
(ATS3-APP08) Top 10 things every Symyx Notebook by Accelrys Administrator sho...(ATS3-APP08) Top 10 things every Symyx Notebook by Accelrys Administrator sho...
(ATS3-APP08) Top 10 things every Symyx Notebook by Accelrys Administrator sho...BIOVIA
 
Introduction to SQL Server Analysis services 2008
Introduction to SQL Server Analysis services 2008Introduction to SQL Server Analysis services 2008
Introduction to SQL Server Analysis services 2008Tobias Koprowski
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOpsFrank Munz
 
Mmik powershell dsc_slideshare_v1
Mmik powershell dsc_slideshare_v1Mmik powershell dsc_slideshare_v1
Mmik powershell dsc_slideshare_v1Mmik Huang
 
Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8Dimitris Andreadis
 
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15Frank Munz
 
AAI-1305 Choosing WebSphere Liberty for Java EE Deployments
AAI-1305 Choosing WebSphere Liberty for Java EE DeploymentsAAI-1305 Choosing WebSphere Liberty for Java EE Deployments
AAI-1305 Choosing WebSphere Liberty for Java EE DeploymentsWASdev Community
 
Building WebLogic Domains With WLST
Building WebLogic Domains With WLSTBuilding WebLogic Domains With WLST
Building WebLogic Domains With WLSTC2B2 Consulting
 
WebLogic Server Work Managers and Overload Protection
WebLogic Server Work Managers and Overload ProtectionWebLogic Server Work Managers and Overload Protection
WebLogic Server Work Managers and Overload ProtectionJames Bayer
 
77739818 troubleshooting-web-logic-103
77739818 troubleshooting-web-logic-10377739818 troubleshooting-web-logic-103
77739818 troubleshooting-web-logic-103shashank_ibm
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFlyJBUG London
 
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)Red Hat Developers
 
WildFly BOF and V9 update @ Devoxx 2014
WildFly BOF and V9 update @ Devoxx 2014WildFly BOF and V9 update @ Devoxx 2014
WildFly BOF and V9 update @ Devoxx 2014Dimitris Andreadis
 
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server PerformanceBIOVIA
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cAjith Narayanan
 
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...BIOVIA
 
AAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere LibertyAAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere LibertyWASdev Community
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the UnionDimitris Andreadis
 
(ATS3-APP14) Troubleshooting Symyx Notebook client performance
(ATS3-APP14) Troubleshooting Symyx Notebook client performance(ATS3-APP14) Troubleshooting Symyx Notebook client performance
(ATS3-APP14) Troubleshooting Symyx Notebook client performanceBIOVIA
 

What's hot (20)

(ATS3-APP08) Top 10 things every Symyx Notebook by Accelrys Administrator sho...
(ATS3-APP08) Top 10 things every Symyx Notebook by Accelrys Administrator sho...(ATS3-APP08) Top 10 things every Symyx Notebook by Accelrys Administrator sho...
(ATS3-APP08) Top 10 things every Symyx Notebook by Accelrys Administrator sho...
 
Introduction to SQL Server Analysis services 2008
Introduction to SQL Server Analysis services 2008Introduction to SQL Server Analysis services 2008
Introduction to SQL Server Analysis services 2008
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
 
Mmik powershell dsc_slideshare_v1
Mmik powershell dsc_slideshare_v1Mmik powershell dsc_slideshare_v1
Mmik powershell dsc_slideshare_v1
 
Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8
 
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
 
AAI-1305 Choosing WebSphere Liberty for Java EE Deployments
AAI-1305 Choosing WebSphere Liberty for Java EE DeploymentsAAI-1305 Choosing WebSphere Liberty for Java EE Deployments
AAI-1305 Choosing WebSphere Liberty for Java EE Deployments
 
Building WebLogic Domains With WLST
Building WebLogic Domains With WLSTBuilding WebLogic Domains With WLST
Building WebLogic Domains With WLST
 
WebLogic Server Work Managers and Overload Protection
WebLogic Server Work Managers and Overload ProtectionWebLogic Server Work Managers and Overload Protection
WebLogic Server Work Managers and Overload Protection
 
77739818 troubleshooting-web-logic-103
77739818 troubleshooting-web-logic-10377739818 troubleshooting-web-logic-103
77739818 troubleshooting-web-logic-103
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFly
 
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
 
WildFly BOF and V9 update @ Devoxx 2014
WildFly BOF and V9 update @ Devoxx 2014WildFly BOF and V9 update @ Devoxx 2014
WildFly BOF and V9 update @ Devoxx 2014
 
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
 
XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...
XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...
XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...
 
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
 
AAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere LibertyAAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the Union
 
(ATS3-APP14) Troubleshooting Symyx Notebook client performance
(ATS3-APP14) Troubleshooting Symyx Notebook client performance(ATS3-APP14) Troubleshooting Symyx Notebook client performance
(ATS3-APP14) Troubleshooting Symyx Notebook client performance
 

Similar to Java on Windows Azure (Cloud Computing Expo 2010)

CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows AzureCloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows AzureDavid Chou
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978David Chou
 
Java on Windows Azure
Java on Windows AzureJava on Windows Azure
Java on Windows AzureDavid Chou
 
What's New for the Windows Azure Developer? Lots!!
What's New for the Windows Azure Developer?  Lots!!What's New for the Windows Azure Developer?  Lots!!
What's New for the Windows Azure Developer? Lots!!Michael Collier
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC vipin kumar
 
Getting Started with Apache CloudStack
Getting Started with Apache CloudStackGetting Started with Apache CloudStack
Getting Started with Apache CloudStackJoe Brockmeier
 
Best Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft AzureBest Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft AzureBrian Benz
 
Openstack devops challenges a journey from dump baremetal to functional ope...
Openstack devops challenges   a journey from dump baremetal to functional ope...Openstack devops challenges   a journey from dump baremetal to functional ope...
Openstack devops challenges a journey from dump baremetal to functional ope...Harish Kumar
 
What's New In Microsoft System Center 2016 & OMS
What's New In Microsoft System Center 2016 & OMSWhat's New In Microsoft System Center 2016 & OMS
What's New In Microsoft System Center 2016 & OMSAsaf Nakash
 
Performance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMsPerformance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMsMaarten Smeets
 
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSCWinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSCWinOps Conf
 
Modernizing your AWS Deployment
Modernizing your AWS DeploymentModernizing your AWS Deployment
Modernizing your AWS DeploymentCloudHesive
 
azure track -05- windows azure pack deep dive
azure track -05- windows azure pack deep diveazure track -05- windows azure pack deep dive
azure track -05- windows azure pack deep diveITProceed
 
One daytalk hbraun_oct2011
One daytalk hbraun_oct2011One daytalk hbraun_oct2011
One daytalk hbraun_oct2011hbraun
 

Similar to Java on Windows Azure (Cloud Computing Expo 2010) (20)

CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows AzureCloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
 
Java on Windows Azure
Java on Windows AzureJava on Windows Azure
Java on Windows Azure
 
Oracle OpenWorld 2014 Review Part Four - PaaS Middleware
Oracle OpenWorld 2014 Review Part Four - PaaS MiddlewareOracle OpenWorld 2014 Review Part Four - PaaS Middleware
Oracle OpenWorld 2014 Review Part Four - PaaS Middleware
 
What's New for the Windows Azure Developer? Lots!!
What's New for the Windows Azure Developer?  Lots!!What's New for the Windows Azure Developer?  Lots!!
What's New for the Windows Azure Developer? Lots!!
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
 
Getting Started with Apache CloudStack
Getting Started with Apache CloudStackGetting Started with Apache CloudStack
Getting Started with Apache CloudStack
 
Best Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft AzureBest Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft Azure
 
Azure basics
Azure basicsAzure basics
Azure basics
 
devops_
devops_devops_
devops_
 
Openstack devops challenges a journey from dump baremetal to functional ope...
Openstack devops challenges   a journey from dump baremetal to functional ope...Openstack devops challenges   a journey from dump baremetal to functional ope...
Openstack devops challenges a journey from dump baremetal to functional ope...
 
What's New In Microsoft System Center 2016 & OMS
What's New In Microsoft System Center 2016 & OMSWhat's New In Microsoft System Center 2016 & OMS
What's New In Microsoft System Center 2016 & OMS
 
01 java intro
01 java intro01 java intro
01 java intro
 
Performance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMsPerformance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMs
 
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSCWinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
 
Azure Service Fabric Overview
Azure Service Fabric OverviewAzure Service Fabric Overview
Azure Service Fabric Overview
 
Modernizing your AWS Deployment
Modernizing your AWS DeploymentModernizing your AWS Deployment
Modernizing your AWS Deployment
 
azure track -05- windows azure pack deep dive
azure track -05- windows azure pack deep diveazure track -05- windows azure pack deep dive
azure track -05- windows azure pack deep dive
 
One daytalk hbraun_oct2011
One daytalk hbraun_oct2011One daytalk hbraun_oct2011
One daytalk hbraun_oct2011
 
Azure platform for customers
Azure platform for customersAzure platform for customers
Azure platform for customers
 

More from David Chou

Cloud Native Apps
Cloud Native AppsCloud Native Apps
Cloud Native AppsDavid Chou
 
Windows Phone app development overview
Windows Phone app development overviewWindows Phone app development overview
Windows Phone app development overviewDavid Chou
 
Microsoft AI Platform Overview
Microsoft AI Platform OverviewMicrosoft AI Platform Overview
Microsoft AI Platform OverviewDavid Chou
 
Designing Artificial Intelligence
Designing Artificial IntelligenceDesigning Artificial Intelligence
Designing Artificial IntelligenceDavid Chou
 
Immersive Computing
Immersive ComputingImmersive Computing
Immersive ComputingDavid Chou
 
Java on Windows Azure
Java on Windows AzureJava on Windows Azure
Java on Windows AzureDavid Chou
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft AzureDavid Chou
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing MicroservicesDavid Chou
 
Combining Private and Public Clouds into Meaningful Hybrids
Combining Private and Public Clouds into Meaningful HybridsCombining Private and Public Clouds into Meaningful Hybrids
Combining Private and Public Clouds into Meaningful HybridsDavid Chou
 
Windows Azure AppFabric
Windows Azure AppFabricWindows Azure AppFabric
Windows Azure AppFabricDavid Chou
 
Scale as a Competitive Advantage
Scale as a Competitive AdvantageScale as a Competitive Advantage
Scale as a Competitive AdvantageDavid Chou
 
Architecting Cloudy Applications
Architecting Cloudy ApplicationsArchitecting Cloudy Applications
Architecting Cloudy ApplicationsDavid Chou
 
Kelley Blue Book and Cloud Computing
Kelley Blue Book and Cloud ComputingKelley Blue Book and Cloud Computing
Kelley Blue Book and Cloud ComputingDavid Chou
 
Windows Phone 7
Windows Phone 7Windows Phone 7
Windows Phone 7David Chou
 
Silverlight 4 Briefing
Silverlight 4 BriefingSilverlight 4 Briefing
Silverlight 4 BriefingDavid Chou
 
Architecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The CloudArchitecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The CloudDavid Chou
 
SOA And Cloud Computing
SOA And Cloud ComputingSOA And Cloud Computing
SOA And Cloud ComputingDavid Chou
 
Microsoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure PlatformMicrosoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure PlatformDavid Chou
 
Microsoft Database Options
Microsoft Database OptionsMicrosoft Database Options
Microsoft Database OptionsDavid Chou
 
Microsoft Data Access Technologies
Microsoft Data Access TechnologiesMicrosoft Data Access Technologies
Microsoft Data Access TechnologiesDavid Chou
 

More from David Chou (20)

Cloud Native Apps
Cloud Native AppsCloud Native Apps
Cloud Native Apps
 
Windows Phone app development overview
Windows Phone app development overviewWindows Phone app development overview
Windows Phone app development overview
 
Microsoft AI Platform Overview
Microsoft AI Platform OverviewMicrosoft AI Platform Overview
Microsoft AI Platform Overview
 
Designing Artificial Intelligence
Designing Artificial IntelligenceDesigning Artificial Intelligence
Designing Artificial Intelligence
 
Immersive Computing
Immersive ComputingImmersive Computing
Immersive Computing
 
Java on Windows Azure
Java on Windows AzureJava on Windows Azure
Java on Windows Azure
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Combining Private and Public Clouds into Meaningful Hybrids
Combining Private and Public Clouds into Meaningful HybridsCombining Private and Public Clouds into Meaningful Hybrids
Combining Private and Public Clouds into Meaningful Hybrids
 
Windows Azure AppFabric
Windows Azure AppFabricWindows Azure AppFabric
Windows Azure AppFabric
 
Scale as a Competitive Advantage
Scale as a Competitive AdvantageScale as a Competitive Advantage
Scale as a Competitive Advantage
 
Architecting Cloudy Applications
Architecting Cloudy ApplicationsArchitecting Cloudy Applications
Architecting Cloudy Applications
 
Kelley Blue Book and Cloud Computing
Kelley Blue Book and Cloud ComputingKelley Blue Book and Cloud Computing
Kelley Blue Book and Cloud Computing
 
Windows Phone 7
Windows Phone 7Windows Phone 7
Windows Phone 7
 
Silverlight 4 Briefing
Silverlight 4 BriefingSilverlight 4 Briefing
Silverlight 4 Briefing
 
Architecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The CloudArchitecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The Cloud
 
SOA And Cloud Computing
SOA And Cloud ComputingSOA And Cloud Computing
SOA And Cloud Computing
 
Microsoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure PlatformMicrosoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure Platform
 
Microsoft Database Options
Microsoft Database OptionsMicrosoft Database Options
Microsoft Database Options
 
Microsoft Data Access Technologies
Microsoft Data Access TechnologiesMicrosoft Data Access Technologies
Microsoft Data Access Technologies
 

Recently uploaded

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Recently uploaded (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

Java on Windows Azure (Cloud Computing Expo 2010)

  • 1. Building Highly Scalable Java Applications on Windows Azure David Chou david.chou@microsoft.com blogs.msdn.com/dachou
  • 2. Agenda • Overview of Windows Azure • Java How-to • Architecting for Scale > Introduction
  • 3. What is Windows Azure? • A cloud computing platform (as-a-service) – on-demand application platform capabilities – geo-distributed Microsoft data centers – automated, model-driven services provisioning and management • You manage code, data, content, policies, service models, etc. – not servers (unless you want to) • We manage the platform – application containers and services, distributed storage systems – service lifecycle, data replication and synchronization – server operating system, patching, monitoring, management – physical infrastructure, virtualization networking – security – “fabric controller” (automated, distributed service management system) > Azure Overview
  • 4. Anatomy of a Windows Azure instance Guest VM Guest VM Guest VM Host VM Maintenance OS, Hardware-optimized hypervisor > Azure Overview > Anatomy of a Windows Azure instance The Fabric Controller communicates with every server within the Fabric. It manages Windows Azure, monitors every application, decides where new applications should run – optimizing hardware utilization. Storage – distributed storage systems that are highly consistent, reliable, and scalable. Compute – instance types: Web Role & Worker Role. Windows Azure applications are built with web role instances, worker role instances, or a combination of both. Each instance runs on its own VM (virtual machine) and local transient storage; replicated as needed HTTP/HTTPS
  • 5. Application Platform Services > Azure Overview > Application Platform Services Storage Dynamic Tabular Data Blobs Message Queues Distributed File System Content Distribution Data Transact-SQL Data Synchronization Relational Database ADO.NET, ODBC, PHP Integration Registry RegistryService Bus Security Claims-Based Identity Federated Identities Secure Token Service Declarative Policies Marketplace Application Marketplace Information Marketplace Frameworks Workflow Hosting Distributed Cache Services Hosting Compute C/C++ Win32 VHD On-Premises Bridging Networking
  • 6. Application Platform Services > Azure Overview > Application Platform Services Compute Storage Data Relational Database Integration Security Marketplace Frameworks Table Storage Blob Storage Queue Drive Content Delivery Network VM Role Networking Connect ApplicationsDataMarket Access Control Service Bus Composite App Caching Web Role Worker Role ReportingDataSync Integration Connect (BizTalk)
  • 7. How this may be interesting to you • Not managing and interacting with server OS – less work for you – don’t have to care it is “Windows Server” (you can if you want to) – but have to live with some limits and constraints • Some level of control – process isolation (runs inside your own VM/guest OS) – service and data geo-location – allocated capacity, scale on-demand – full spectrum of application architectures and programming models • You can run Java! – plus PHP, Python, Ruby, MySQL, memcached, etc. – and eventually anything that runs on Windows > Azure Overview
  • 8. Java and Windows Azure • Provide your JVM – any version or flavor that runs on Windows • Provide your code – no programming constraints (e.g., whitelisting libraries, execution time limit, multi-threading, etc.) – use existing frameworks – use your preferred tools (Eclipse, emacs, etc.) • File-based deployment – no OS-level installation (conceptually extracting a tar/zip with run.bat) • Windows Azure “Worker Role” sandbox – standard user (non-admin privileges; “full trust” environment) – native code execution (via launching sub-processes) – service end points (behind VIPs and load balancers) > Java How-To
  • 9. Some boot-strapping in C# • Kick-off process in WorkerRole.run() – get environment info (assigned end point ports, file locations) – set up local storage (if needed; for configuration, temp files, etc.) – configure diagnostics (Windows Server logging subsystem for monitoring) – launch sub-process(es) to run executable (launch the JVM) • Additional hooks (optional) – Manage role lifecycle – Handle dynamic configuration changes • Free tools – Visual Studio Express – Windows Azure Tools for Visual Studio – Windows Azure Tools for Eclipse/Java (CTP 2010H2) – Windows Azure SDK > Java How-To > Boot-strapping
  • 10. Running Tomcat in Windows Azure Service Instance Service Instance Worker Role RoleEntry Point Sub-Process JVM Tomcat server.xmlCatalina Fabric Controller Load Balancer Table Storage Blob Storage Queue Service Bus Access Control SQL Database new Process() bind port(x) http://instance:x http://instance:y listen port(x) http://app:80 get runtime info index.jsp > Java How-To > Tomcat
  • 11. • Boot-strapping code in WorkerRole.run() • Service end point(s) in ServiceDefinition.csdef Running Jetty in Windows Azure > Java How-To > Jetty string response = ""; try { System.IO.StreamReader sr; string port = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["HttpIn"].IPEndpoint.Port.ToString(); string roleRoot = Environment.GetEnvironmentVariable("RoleRoot"); string jettyHome = roleRoot + @"approotappjetty7"; string jreHome = roleRoot + @"approotappjre6"; Process proc = new Process(); proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true; proc.StartInfo.FileName = String.Format(""{0}binjava.exe"", jreHome); proc.StartInfo.Arguments = String.Format("-Djetty.port={0} -Djetty.home="{1}" -jar "{1}start.jar"", port, jettyHome); proc.EnableRaisingEvents = false; proc.Start(); sr = proc.StandardOutput; response = sr.ReadToEnd(); } catch (Exception ex) { response = ex.Message; Trace.TraceError(response); } <Endpoints> <InputEndpoint name="HttpIn" port="80" protocol="tcp" /> </Endpoints>
  • 12. Current constraints Platform – Dynamic networking • <your app>.cloudapp.net • no naked domain • CNAME re-direct from custom domain • sending traffic to loopback addresses not allowed and cannot open arbitrary ports – No OS-level access – Non-persistent local file system • allocate local storage directory • read-only: Windows directory, machine configuration files, service configuration files – Available registry resources • read-only: HKEY_CLASSES_ROOT, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG • full access: HKEY_CURRENT_USER > Java How-To > Limitations Java – Sandboxed networking • NIO (java.nio) not supported • engine and host-level clustering • JNDI, JMS, JMX, RMI, etc. • need to configure networking – Non-persistent local file system • logging, configuration, etc. – REST-based APIs to services • Table Storage – schema-less (noSQL) • Blob Storage – large files (<200GB block blobs; <1TB page blobs) • Queues • Service Bus • Access Control
  • 13. Improvements on the way Platform – Networking modeling • well known ports (or fixed VM ports) • port ranges (for inbound traffic) • load balancer control (on/off) • network filters (inter-role access control) – Improved automation • startup tasks (execute OS-level scripts) • role plugins (remote desktop, virtual network, diagnostics, etc.) – Full IIS • multiple websites in same role • virtual directories • applications, modules – Admin access • full administrative access to role instances • reboot/re-image support > Java How-To > Platform Enhancements (Announced; Not Yet Released) Java – Traditional deployment models • deploy your own Java EE stack • configure internal networking – More frameworks, packages, and extended languages • verify deployment and configuration – Solution accelerators • with bootstrapping and configuration – Java API support • Windows Azure SDK v2.0 (announced at PDC10) • www.windowsazure4j.org – Development tools • Windows Azure Tools for Eclipse/Java (CTP 2010H2)
  • 14. • Execute startup script in ServiceDefinition.csdef • Service end point(s) in ServiceDefinition.csdef Running Jetty with admin access + fixed ports > Java How-To > Platform Enhancements (Announced; Not Yet Released) <Startup> <Task commandLine=“runme.cmd" executionContext=“elevated" TaskType=“background"> </Task> </Startup> <Endpoints> <InputEndpoint name="HttpIn" protocol=“http" port="80" localPort="80" /> </Endpoints>
  • 15. Running Fujitsu Interstage App Server JavaEE 6 – Based on Glassfish 3.1 – Complete JavaEE execution environment – Service Integrator SOA Platform > Java How-To > Platform Enhancements (Announced; Not Yet Released) Windows Azure 1.3 SDK – Loopback adapter is no longer blocked – Enabled Java NIO – Enabled Port Ranges: for “inbound traffic” (as opposed to 5 in the past) Service end point(s) in ServiceDefinition.csdef
  • 16. • Worker Role – fabric sandbox native deployment – automated, need additional code – available now • Admin Access – script-based installation and execution – automated, need scripts – available shortly (not yet released) • VM Role – host your own pre-configured VM image – automated, full control – available later (not yet released) Deployment Options > Java How-To > Platform Enhancements (Announced; Not Yet Released)
  • 17. • Runtime – Multiple Java app servers – Any Windows-based JRE • Supports – Windows Azure Storage – Windows Azure Drive – Windows Azure AppFabric – SQL Azure • One-click cloud deployment • Integrated diagnostics, monitoring, and logging Windows Azure Tools for Eclipse/Java > Java How-To > Platform Enhancements (Announced; Not Yet Released)
  • 18. Accessing SQL Azure from Java > Java How-To > SQL Azure • SQL Azure Database – Full relational Database as a Service • Supports TDS & OData • Direct connectivity to SQL Azure – Connect with JDBC/ODBC using the latest driver – Eclipse tooling support • Interoperability using REST – Easily wrap SQL Azure with WCF Data Services – Restlet extension for OData (Java) • Committed to OSS support and app compatibility
  • 19. Accessing Windows Azure Storage from Java > Java How-To > Windows Azure Storage • Windows Azure SDK for Java – Enables Java developers to develop against Windows Azure Storage & Service Management infrastructure using familiar & consistent programming model • Features – Set of Java classes for Windows Azure Blobs, Tables & Queues (for CRUD operations) & Service Management – Helper Classes for HTTP transport, AuhN/AuthZ, REST & Error Management – Manageability, Instrumentation & Logging(log4j) • Open Source Project site: – Developed by our Partner Soyatec – www.windowsazure4j.org Windows Azure SDK for Java Blobs, Tables, Queues Manageability, Instrumentation, logging Helper for Http, Auth, REST, Error Your Java application REST
  • 20. Accessing Windows Azure AppFabric from Java > Java How-To > Windows Azure AppFabric • Usage Patterns – Extends reach of applications securely through the cloud – Securely integrates partners outside of org boundaries – Extends reach of on-premises web services layer – Enables leveraging cloud quickly without having to rewrite apps • App Fabric SDK for Java Developers – Open source software development kit (SDK) – a set of libraries, tools, Prescriptive guidance – sample applications • Open Source Project site: – Developed by our partner Persistent Systems Limited – www.jdotnetservices.com
  • 21. Additional Cloud Interop Options Application-layer Connectivity & Messaging > Cloud Scenarios
  • 22. Facebook (2009) • +200B pageviews /month • >3.9T feed actions /day • +300M active users • >1B chat mesgs /day • 100M search queries /day • >6B minutes spent /day (ranked #2 on Internet) • +20B photos, +2B/month growth • 600,000 photos served /sec • 25TB log data /day processed thru Scribe • 120M queries /sec on memcache > Architecting for Scale Size matters Twitter (2009) • 600 requests /sec • avg 200-300 connections /sec; peak at 800 • MySQL handles 2,400 requests /sec • 30+ processes for handling odd jobs • process a request in 200 milliseconds in Rails • average time spent in the database is 50-100 milliseconds • +16 GB of memcached Google (2007) • +20 petabytes of data processed /day by +100K MapReduce jobs • 1 petabyte sort took ~6 hours on ~4K servers replicated onto ~48K disks • +200 GFS clusters, each at 1- 5K nodes, handling +5 petabytes of storage • ~40 GB /sec aggregate read/write throughput across the cluster • +500 servers for each search query < 500ms • >1B views / day on Youtube (2009) Myspace (2007) • 115B pageviews /month • 5M concurrent users @ peak • +3B images, mp3, videos • +10M new images/day • 160 Gbit/sec peak bandwidth Flickr (2007) • +4B queries /day • +2B photos served • ~35M photos in squid cache • ~2M photos in squid’s RAM • 38k req/sec to memcached (12M objects) • 2 PB raw storage • +400K photos added /day Source: multiple articles, High Scalability http://highscalability.com/
  • 23. app server • Common characteristics – synchronous processes – sequential units of work – tight coupling – stateful – pessimistic concurrency – clustering for HA – vertical scaling Traditional scale-up architecture > Architecting for Scale > Vertical Scaling app serverweb data store units of work web data store
  • 24. app server app server Traditional scale-up architecture > Architecting for Scale > Vertical Scaling web data storeweb • To scale, get bigger servers – expensive – has scaling limits – inefficient use of resources
  • 25. data storeapp server Traditional scale-up architecture > Architecting for Scale > Vertical Scaling app serverweb web • When problems occur – bigger failure impact
  • 26. Traditional scale-up architecture > Architecting for Scale > Vertical Scaling app serverweb data storeweb • When problems occur – bigger failure impact – more complex recovery
  • 27. Use more pieces, not bigger pieces LEGO 10179 Ultimate Collector's Millennium Falcon • 33 x 22 x 8.3 inches (L/W/H) • 5,195 pieces LEGO 7778 Midi-scale Millennium Falcon • 9.3 x 6.7 x 3.2 inches (L/W/H) • 356 pieces > Architecting for Scale > Horizontal scaling
  • 28. app server Scale-out architecture > Architecting for Scale > Horizontal scaling app serverweb data store • Common characteristics – small logical units of work – loosely-coupled processes – stateless – event-driven design – optimistic concurrency – partitioned data – redundancy fault-tolerance – re-try-based recoverability web data store
  • 29. app server app server app server app server app server Scale-out architecture > Architecting for Scale > Horizontal scaling app serverweb data store web web web data store web web • To scale, add more servers – not bigger servers data store data store data store data store
  • 30. app server app server app server app server app server app server Scale-out architecture > Architecting for Scale > Horizontal scaling web data store web web web data store web web • When problems occur – smaller failure impact – higher perceived availability data store data store data store data store
  • 31. app server app server app server Scale-out architecture > Architecting for Scale > Horizontal scaling app serverweb data store web web app server web data store web web • When problems occur – smaller failure impact – higher perceived availability – simpler recovery data store data store data store data store
  • 32. app server app server • Scalable performance at extreme scale – asynchronous processes – parallelization – smaller footprint – optimized resource usage – reduced response time – improved throughput app server app server Scale-out architecture + distributed computing > Architecting for Scale > Horizontal scaling app serverweb data store web web app server web data store web web data store data store data store data store parallel tasks async tasks perceived response time
  • 33. app server app server • When problems occur – smaller units of work – decoupling shields impact app server app server Scale-out architecture + distributed computing > Architecting for Scale > Horizontal scaling app serverweb data store web web app server web data store web web data store data store data store data store
  • 34. app server • When problems occur – smaller units of work – decoupling shields impact – even simpler recovery app server app server Scale-out architecture + distributed computing > Architecting for Scale > Horizontal scaling app serverweb data store web web app server web data store web web data store data store data store data store
  • 35. Live Journal (from Brad Fitzpatrick, then Founder at Live Journal, 2007) > Architecting for Scale > Cloud Architecture Patterns Partitioned Data Distributed Cache Web Frontend Distributed Storage Apps & Services
  • 36. Flickr (from Cal Henderson, then Director of Engineering at Yahoo, 2007) > Architecting for Scale > Cloud Architecture Patterns Partitioned Data Distributed Cache Web Frontend Distributed Storage Apps & Services
  • 37. SlideShare (from John Boutelle, CTO at Slideshare, 2008) > Architecting for Scale > Cloud Architecture Patterns Partitioned Data Distributed Cache Web Frontend Distributed Storage Apps & Services
  • 38. Twitter (from John Adams, Ops Engineer at Twitter, 2010) > Architecting for Scale > Cloud Architecture Patterns Partitioned Data Distributed Cache Web Frontend Distributed Storage Apps & Services Queues Async Processes
  • 39. 2010 stats (Source: http://www.facebook.com/press/info.php?statistics) – People • +500M active users • 50% of active users log on in any given day • people spend +700B minutes /month – Activity on Facebook • +900M objects that people interact with • +30B pieces of content shared /month – Global Reach • +70 translations available on the site • ~70% of users outside the US • +300K users helped translate the site through the translations application – Platform • +1M developers from +180 countries • +70% of users engage with applications /month • +550K active applications • +1M websites have integrated with Facebook Platform • +150M people engage with Facebook on external websites /month > Architecting for Scale > Cloud Architecture Patterns Facebook (from Jeff Rothschild, VP Technology at Facebook, 2009) Partitioned Data Distributed Cache Web Frontend Distributed Storage Apps & Services Parallel Processes Async Processes
  • 40. Windows Azure platform components Apps & Services Services Web Frontend QueuesDistributed Storage Distributed Cache Partitioned Data > Architecting for Scale > Cloud Architecture Patterns Content Delivery Network Load Balancer IIS Web Server VM Role Worker Role Web Role Caching Queues Access Control Composite App Blobs Relational Database Tables Drives Service Bus Reporting DataSync Virtual Network Connect
  • 41. Fundamental concepts > Architecting for Scale • Vertical scaling still works
  • 42. Fundamental concepts > Architecting for Scale • Horizontal scaling for cloud computing • Small pieces, loosely coupled • Distributed computing best practices – asynchronous processes (event-driven design) – parallelization – idempotent operations (handle duplicity) – de-normalized, partitioned data (sharding) – shared nothing architecture – optimistic concurrency – fault-tolerance by redundancy and replication – etc.
  • 43. Partitioned data > Architecting for Scale > Fundamental Concepts Shared nothing architecture – transaction locality (partition based on an entity that is the “atomic” target of majority of transactional processing) – loosened referential integrity (avoid distributed transactions across shard and entity boundaries) – design for dynamic redistribution and growth of data (elasticity) Cloud computing friendly – divide & conquer – size growth with virtually no limits – smaller failure surface Windows Azure platform services – Table Storage Service – SQL Azure – AppFabric Caching (coming soon) – SQL Azure DB federation (coming soon) Web Role QueuesWeb Role Web Role Worker Role Relational Database Relational Database Relational Database Web Role read write
  • 44. Asynchronous processes & parallelization > Architecting for Scale > Fundamental Concepts Defer work as late as possible – return to user as quickly as possible – event-driven design (instead of request- driven) Cloud computing friendly – distributes work to more servers (divide & conquer) – smaller resource usage/footprint – smaller failure surface – decouples process dependencies Windows Azure platform services – Queue Service – AppFabric Service Bus – inter-node communication Worker Role Web Role Queues Service BusWeb Role Web Role Web Role Worker Role Worker Role Worker Role
  • 45. Idempotent operations > Architecting for Scale > Fundamental Concepts Repeatable processes – allow duplicates (additive) – allow re-tries (overwrite) – reject duplicates (optimistic locking) – stateless design Cloud computing friendly – resiliency Windows Azure platform services – Queue Service – AppFabric Service Bus Worker Role Service Bus Worker Role Worker Role
  • 46. At most two of these properties for any shared-data system C A P Consistency + Availability • High data integrity • Single site, cluster database, LDAP, xFS file system, etc. • 2-phase commit, data replication, etc. C A P Consistency + Partition • Distributed database, distributed locking, etc. • Pessimistic locking, minority partition unavailable, etc. C A P Availability + Partition • High scalability • Distributed cache, DNS, etc. • Optimistic locking, expiration/leases, etc. CAP (Consistency, Availability, Partition) Theorem > Architecting for Scale > Fundamental Concepts Source: “Towards Robust Distributed Systems”, Dr. Eric A. Brewer, UC Berkeley
  • 47. Hybrid architectures > Architecting for Scale > Fundamental Concepts Scale-out (horizontal) – BASE: Basically Available, Soft state, Eventually consistent – focus on “commit” – conservative (pessimistic) – shared nothing – favor extreme size – e.g., user requests, data collection & processing, etc. Scale-up (vertical) – ACID: Atomicity, Consistency, Isolation, Durability – availability first; best effort – aggressive (optimistic) – transactional – favor accuracy/consistency – e.g., BI & analytics, financial processing, etc. Most distributed systems employ both approaches
  • 48. Lastly… Windows Azure is an open & interoperable cloud platform Microsoft is committed to Java, and we are on a journey – please give us your feedback & participate in open source projects Diverse Choice of Development Tools for Java Developers – Eclipse Tools for Windows Azure – Write Modern Cloud Application – Tomcat Solutions Accelerator – Admin Access & VM Role – Windows Azure Platform SDKs for Java Developers • Windows Azure SDK (Storage, Diagnostics & Service Management) • App Fabric SDK (Service Bus & Access Control Services) • Restlet extension for OData (Java) For more information: – http://windowsazure.com/interop – http://www.interoperabilitybridges.com > Wrap-Up
  • 49. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. Thank you! David Chou david.chou@microsoft.com blogs.msdn.com/dachou

Editor's Notes

  1. Microsoft's Windows Azure platform is a virtualized and abstracted application platform that can be used to build highly scalable and reliable applications, with Java. The environment consists of a set of services such as NoSQL table storage, blob storage, queues, relational database service, internet service bus, access control, and more. Java applications can be built using these services via Web services APIs, and your own Java Virtual Machine, without worrying about the underlying server OS and infrastructure. Highlights of this session will include: • An overview of the Windows Azure environment • How to develop and deploy Java applications in Windows Azure • How to architect horizontally scalable applications in Windows Azure
  2. To build for big scale – use more of the same pieces, not bigger pieces; though a different approach may be needed
  3. Source: http://danga.com/words/2007_06_usenix/usenix.pdf
  4. Source: http://highscalability.com/blog/2007/11/13/flickr-architecture.html
  5. Source: http://www.slideshare.net/jboutelle/scalable-web-architectures-w-ruby-and-amazon-s3
  6. Source: http://www.slideshare.net/netik/billions-of-hits-scaling-twitter Source: http://highscalability.com/blog/2009/6/27/scaling-twitter-making-twitter-10000-percent-faster.html
  7. Source: http://highscalability.com/blog/2009/10/12/high-performance-at-massive-scale-lessons-learned-at-faceboo-1.html
  8. Picture source: http://pdp.protopak.net/Belltheous90/DeathStarII.gif