July 29, 2010, 4:54 pm UTC  

Postings

Speedy Web

With Google incorporating a “website speed” factor into site rankings, it has created renewed interests in rendering performance of web sites/apps. As a techie who has spent most of her career around web app delivery & performance, I’d like to highlight some (known) techniques and offer a few insights.

Browser-Side Optimization

Steve Souder identified 14 rules in his book for optimizing the performance of any given web page:

  • Make Fewer HTTP Requests
  • Use a Content Delivery Network
  • Add an Expires Header
  • Gzip Components
  • Put Stylesheets at the Top
  • Put Scripts at the Bottom
  • Avoid CSS Expressions
  • Make JavaScript and CSS External
  • Reduce DNS Lookups
  • Minify JavaScript
  • Avoid Redirects
  • Remove Duplicates Scripts
  • Configure ETags
  • Make Ajax Cacheable

These rules are primarily focused on reducing the impact of bandwidth, network latency, and the rendering of html/javascript/css.

Server-Side Optimization

As web applications become more complex and database-driven, a sluggish backend may completely negate any performance gains from client-side optimization. Back in 2003 when I managed the World Health Organization’s website, we employed a CMS tool that published all the content in static html. This allowed us to deliver a large quantity of (frequently updated) content without needing to scale out the CMS to handle millions of requests. (more…)

Filed under: httpd, web X.0 — appgirl @ 10:57 am
Comments (1)

Keeping the lights on

Having spent years running 24×7 internet-facing production systems, I find that the monitoring element of an application delivery environment is often the last item to be addressed and built outside of the application delivery architecture. As we continue to build our application delivery infrastructure in the cloud, having a good monitoring strategy will allow us to arm ourselves with the information we need to make intelligent decisions.

So exactly what should be monitored?

Availability

The first element in a monitoring strategy is to determine whether the application is accessible. The most simplistic form of determining availability is ping. However, as most applications are obscured behind a load balancer, a ping response doesn’t necessarily mean that the application is responding to requests. Use a monitoring system that can speak application-layer protocols to ensure that the application is indeed healthy and responding to user requests. It’s best to leverage a 3rd party solutions that can assess availability from multiple networks and provide an unbiased view on the availability of the application.

Resource Utilization / Load

Next element in a good monitoring strategy is to determine how healthy a system is. Tracking the load of various system components will enable us to uncover bottlenecks within the application delivery environment. Leverage SNMP to capture and record utilization statistics on CPU, memory, disk IO, network IO, threads, and so on. Graph these stats to establish baseline and find correlations between each monitored element. (more…)

Filed under: cloud & virtualization, web X.0 — Tags: , , , , , , — appgirl @ 9:15 am
Comments (1)

Cloud scaling considerations

Amazon’s new Relational Database Service (RDS) has generated quite a bit of buzz as of late. This move propels Amazon forward into the application services provider in the cloud computing arena. I’ve briefly written about different types of cloud services in an earlier post and outlined differences between Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), Software-as-a-Service (Saas), and IT-as-a-Service (ITaaS). As cloud-based services gain maturity and adoption, the lines between different “as-a-Service” offerings to blur as providers evolve their service offerings.

Under the covers, RDS instances are essentially EC2 images with MySQL with added services to automates the backup and scaling capabilities. Scaling, or elasticity, has been one of the lures in placing workloads in the cloud. Cloud computing will reach nirvana when compute resources are automagically provisioned and de-provisioned as workloads increase and decrease.

Today, cloud resources provides a mechanism to scale resources in a linear fashion:

  • add another server… in the case of web & application servers where workloads can be divided amongst a pool of servers;
  • move to a bigger server… in the case of database servers where a single server is responsible for processing all the workloads;

However, is linear scaling the right approach to servicing workload increase? (more…)

Filed under: cloud & virtualization — appgirl @ 7:09 am
Comments (2)

Technology as a service

Cloud computing concept is transforming the IT industry and shaping the IT service delivery into a pay-as-you-grow model. Here’s a whitepaper from Cisco on Cisco-powered “network clouds”. Thought I’d share some keypoints / highlights…

cloud pyramid

Abstraction of physical hardware (virtualization) & the ability to share common resources among users (multi-tenancy) are at the heart of cloud computing. It is with virtualization & multi-tenancy that various utility-based approach can be realized and built onto one another:

Infrastructure as a service (IaaS): the abilityy to buy servers, data center resources, network equipment as an outsourced service delivered through the network cloud. Amazon, Joyent, GoGrid and FlexiScale are some examples of providers in this arena.

Platform as a service (PaaS): provides developers access to development tools for various software platforms that the developer needs to develop on. Some examples of development platforms currently out there:

  • AppEngine from Google: based on Python and Django
  • Force.com from SalesForce: based on the SalesForce SaaS infrastructure and Apex language
  • Bungee Connect: visual development studio based on Java
  • LongJump: based on Java/Eclipse
  • WaveMaker: visual development studio based on Java and hosted on Amazon EC2

Software as a service (SaaS): enables service subscribers to access a software application from a software vendor through the web. Many traditional off-the-shelf application providers are transitioning to a SaaS model. The most well known SaaS provider is probably salesforce.com. WebEX is another example of SaaS.

IT as a service (ITaaS) encompasses IaaS, PaaS, and SaaS. It is a service model where an organization or individual contracts with a service provider to provide individual or bundled services. (more…)

Filed under: cloud & virtualization — Tags: , , , , , , , , — appgirl @ 3:31 pm
Comments (3)
Older Posts »

About

My name is Catherine Liao and you're reading the latest postings of various blogs I follow. You'll notice that the topics tend to center around Cloud Computing, Data Center, Virtualization, Servers, Web Technologies and 24x7 Operations.

These are topics that I'm interested in as I've spent a large chunk of my professional career building, deploying, and maintaining 24x7 application delivery environments. I use the knowledge I've garnered daily in my role as a Technology Solutions Architect for Cisco. I should note that this site is my personal site and does not reflect the views of Cisco.

Feel free to drop me a note if you find this site useful or if you'd like for me to check out your blog. I can be reached at catherine.liao@gmail.com. You can also connect with me via LinkedIn or Twitter.

Looking for less "geeky" content? Check out my travel blog 1-Day Itinerary.

Tweets

Fans

AppGirl on Facebook

Powered by WordPress