Web Applications, Services, and Cloud Environments
apache, lighttpd, php, squid, sphinx, nginx consulting
Your web app layer is often times the glue between everything else. Writing scalable and reliable web applications requires a thorough understanding of all the other components of a complex web-based environment.
Developing and maintaining sophisticated web applications goes beyond programming languages or environments. Most large scale applications operate on the same fundamental concepts: horizontal scalability, fault tolerance, redundancy, reliability, high performance, automation, and great documentation.
Often times, the biggest architectural mistakes are made early. Over time, these mistakes prevent exponential growth, increase downtime, and decrease revenue. Address your architectural concerns as early as possible. Also, don't forget that most systems which scale don't use native database sharding or partitioning, and that modifying your web-application will often times be required when addressing database issues.
We work with:
-
Servers
Apache, Lighttpd, Ngninx, Squid
Cloud
Amazon Web Services (EC2, S3, SimpleDB, SQS), Nirvanix, RightScale, GoGrid, RackSpace
Server Side
Objective PHP (with templating), Perl, ASP Classic, Key/Value Store acceleration w/ BDB, TokyCabinet/ MemcacheFS / MongoDB
Client Side
Advanced Javascript, Custom Frameworks, mootools, thickbox, jquery, ajax
General
Custom XML Schema, CSS, Valid XHTML, JSON, SNMP, Advanced Regex and Data Mining/Scraping/Indexing
Other
We can help with other web technologies - just ask
Common Problems
- Session Persistence
- High load average
- Too much user data (files)
- Filesystem growth and count issues
- Too many files to transcode, resize, or convert
- Poor db performance
- Invalid or missing caching
- Bad expiration or etags
- Missing Compression
- Delayed & queued processing
- No modularity
- Inefficient nested or recursive loops
- Too many db queries
- Too many http requests
- Serialized, Non-concurrent HTTP transactions
- No separation of data and ui
- No auditing or metrics
- No monitoring or logging
- No graceful error handling
- Relies too much on db
- Not load-balancer ready
- Flash cross-domain issues
- Missing cache layers
- Difficult to measure throughput
- No separation of app and static services
- Poorly implemented queueing
