are there books on designing highly scalable web sites? [closed] - scalability

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
are there books on designing highly scalable web sites?
(from a programmers perspective)
I read how ebay does it:
Partition by Function, Split Horizontally, Avoid Distributed Transactions, Decouple Functions Asynchronously, Move Processing To Asynchronous Flows, Virtualize At All Levels, Cache Appropriately.
Are these things actually taught or it is so niche that there isn't really any books on these topics?

The best I've found is
Scalable Internet Architectures

Building Scalable Web Sites has a good reputation.

Not sure on books but heres a good reference for Building highly scalable applications

Web-servers are stateless, web-application are statefull -- this leads to dependance on a data-layer to persist state. Relational databases are often the weakness to hard-core scaleability. For this reason I suggest looking at the research papers and presentations from the nosql community.
Nosql databases provide plug&play expansion, and require programming changes from the web-applications, therefore you will learn a lot about scalability from the material.
You will enough material by scholar.google.com'ing the names of the nosql databases.

I've written an eBook called "Web Scaling vol. 1" for Small Architectures. It has a few interesting examples for caching, splitting database reads/writes, and load-balancing across a pool of web servers. It might be of interest.
http://scalingexperts.com/books

Related

ASP.NET MVC Code First [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
When building an MVC application from scratch without a pre-existing database, is using the code-first approach the best way to do it?
While most applications are database-centric, it is perhaps the schema rather than the database itself that governs how the app is built around it. As such, I think a code-first approach isn't too bad. It was late to the party (happened after database-first and model-first), but I think the code-first approach will become the norm soon.
What's your opinion?
First i think that this link can provide you with more information
In my opinion both of the approaches are useful. A developer/company needs to decide what is the best approach for there system, in some situation.
I think one good distinguish is Big and complex against small and simple applications
I think that developers or companies will prefer "DataBase First" approach when they builds complex application. In most cases DBA's will be needed in such project.
In those cases the project will include Store Procedures/ Triggers and maybe also a Data-ware house
In the other hand when you build a small application with one of small group of developers you probably prefer using "Code First" approach
again this is my opinion...

What is the most popular design-patterns in web app [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What is the most popular design pattern in web app?
I know that in asp.net mvc often used dependency injection and repository, but I want to know which additional patterns can I use in web apps. And it would be best if you give me sample of situation in which I can use patterns, or give code snippet.
Most of the design patterns we've developed as software engineers over the last few decades are still applicable for the situations they were designed for. Depending on your needs you will use most of these in web apps at some point.
http://geekswithblogs.net/subodhnpushpak/archive/2009/09/18/the-23-gang-of-four-design-patterns-.-revisited.aspx
Also below is a link to a site that shows quite a few of these patterns and has explanations / examples. They have their own product, which the site is a shop front for, but the site does have examples and contain code samples so may be worth a visit if you feel like it. most in C#
http://www.dofactory.com/Patterns/Patterns.aspx
Singleton is the most popular pattern. It is also one of best know anti-pattern (patterns that are considered to be harmful).
Every newbie uses it, because it lets you use global state, that looks like object oriented code. It also lets you avoid, that confusing dependency injection thing.
As for the "Gang of Four" book, there has been a movement by some uneducated people to remove the Singleton pattern in latest editions, but the attempts has been successfully thwarted.
Or if you have $28... C# Design Strategies with Jon Skeet
I haven't watched it but I do plan to buy it soon.
edit: IMHO the most popular design pattern in asp.net web development is the Smart UI anti-pattern ;)

About to create my own webshop? Pros and cons [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I want to build an e-commerce application with a bunch of features, as multi-language and currency support and some social interaction between the users (it is a fashion store).
I am doing this basically for learning purposes, but also with the hope of earn a little money with it afterwards.
My question is, do you think with all the solutions out there, it is still worth to start from scratch? Which are the pros and cons, and which frameworks do you suggest?
I tend to use ruby on rails, but I know there are also Java and PHP based solutions, so I wonder about the pros and cons of them here as well...
Thanks in advance.
You can make money selling it to non-developer clients for sure. But if you are trying to make a business of an e-commerce platform you will find rough open source competition.
Check out these options:
PHP:
OpenCart
OSCommerce
Magento
Rails:
Spree
In my case I prepared a web-shop application out of one of the open source ones.
Now for learning it is a good experience start from scratch but it will be difficult to make money of it as a platform unless you do it open source and get paid in advertisement
You'll never learn more than when you build an app that does something you want to do for yourself. If your goal is to learn, go for it.
That said, if your goal is to make money selling stuff, you probably should skip ahead to selling -- use an existing platform like Shopify or Spree and start worrying about what you're going to sell and who is going to buy it. That's a totally different challenge from software development.
Good luck either way.

Which is the best data-warehousing tool to learn in the present market? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I am graduating soon in electrical engineering.
I would like to learn a data-warehousing tool. Which of the following would you suggest I learn to help me advance my career, bearing in mind I don't have a computer science degree?
business objects;
informatica;
hyperion;
datastage
cognos
Data warehousing is becoming more and more commoditized. Those products are just tools (and the tools you list address very separate areas - ETL and business intelligence).
If you are looking to make a career in data warehousing, you really need to get a solid basis in the theory and principles - particularly modelling philosophies and warehouse development lifecycle practices (and dealing with the business stakeholders) - read Inmon and Kimball.
Typically data warehousing is completely different from regular software lifecycle. In DW, you build the system AND THEN you get the requirements. Seriously. The point is to model your DW as best you can, get it into the users' hands and then refactor.
ETL is about as exciting as it sounds, and BI spans a wide range of things from reporting to dashboards to data mining and decision support - and the tools vary in capabilities.
I guess my point is that learning any particular tool is not going to really advance your career except to be able to check a box which might get you a job. Advancing your career comes from solving people's problems (and well) and becoming familiar with as many technologies, tools and techniques as it takes to do that.

Grails: enterprise level Grails [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am trying to persuade my boss about using Grails.
I tell him it is the most productive way to implement our shopping web site.
But he has doubts about its scalability when traffic gets higher and higher.
So can you give examples of enterprise level web sites with
notable traffic implemented in grails.
Also is there anything that I have to take into account when building
such an enterprise level web site that will probably have high
traffic.
Note: We may expect 10K daily hit.
Take a look at the Grails Success Stories. The most popular sites may be: Sky.com and mp3.walmart.com
Groovymag has some good information on this but costs $5 per issue. This issue has both an interview with a guy from Sky which is a very large site that uses grails as well as information in implementing an e-commerce site using Grails. The main point I got from reading the interview from one of the sky.com developers is that they have no problem scaling to millions of page views by smart use of caching. Although your site may have 10000 views a day most of those views should not need to access the database. You can cache information on each product available in order to limit the number of queries necessary when viewing the site. This should reduce the traffic on your database and make GORM less of a possible bottleneck. I have not been able to find out how GORM performs under heavy load, but if worse comes to worse you could write your performance critical database code using pure JDBC calls and put it in a service.
If you do the math, 10K daily hits is less than one hit per second- even if all 10K hits happened during a 3 hour "peak traffic" window. Even assuming you meant "page renders" and not hits, you are talking about a really miniscule amount of traffic.

Resources