5 Answers
5

It refers to the technologies used that make up your service: your web application language/framework depends on (is stacked on) your web server, which talks to (stacks on) a specific database flavor, and these run on (stack with) specific operating systems. So you might have a stack like this:

P PHPM MySQLA ApacheL Linux

to make up the LAMP stack, or like this:

C C#S Sql ServerI IISW Windows

to make up a WISC (windows) stack. Other common "stacks" are WIMP (Windows, IIS, MySql, PHP) and WAMP (Windows, Apache, MySQL, PHP).

And those are just a few of the simple ones. It doesn't even begin to take into account Oracle, Ruby, Java, Python, and numerous other options that could sit at various points. You could have a MySql running on linux serving as the database for a web app running in Windows, or a web service tier using a completely different technology set from your application tier (which might even be a desktop app). The important thing is we often talk about whether your stack is windows-based or linux-based.

It's important because software developers tend to develop products with a specific stack in mind. As long as you match up to their stack, the product should work as expected.

I tend to include some other details that are relevant to delivering the application. For example, many applications prominently use memcache for caching, and that's a key part of the stack. As are load balancers out in front of the server. IMO those are as important as the web server (e.g., Apache) in defining the stack in use.
–
chmulligMar 24 '11 at 16:54

In general this mean the technologies used to deliver the product. So in the case of Stack Exchange (formally known as Stack Overflow), we say we use a Windows Stack even though there is some Linux because we use SQL Server, Windows IIS, and .Net

Any technology that has dependencies can be portrayed as a "stack." Basically the protocols or technologies higher up in the stack cannot work without everything below it.

For instance:

The "Cloud Stack" refers to Infrastructure as a Service(IaaS), Platform as a Service(PaaS), and Software as a Service(SaaS). There are various versions with more layers, but the basic one looks like this:

Software runs on a platform, a platform runs on Infrastructure. Take out the infrastructure, and you have nothing to run your platform or software on.

This example doesn't quite work, because you can expose a SaaS application without also exposing any form of PaaS or Iaas. Sure, you have a platform and infrastructure, but they are not presented as services (so not PaaS or IaaS).
–
Chris ThorpeMar 24 '11 at 22:20

@Chris - But if you are a consumer of say, SaaS, you are also consuming the underlying platform and infrastructure.
–
JakeRobinsonMar 29 '11 at 20:51

*aaS are service delivery models, they are not stacks quite the same way we think of the TCP stack or LAMP stack. More like, IaaS provides a certain level of service. PaaS and SaaS provides everything IaaS does, but more. rationalsecurity.typepad.com/blog/2009/01/… Thinking of it in the stack model would suggest that, Amazon.com, was provisioned within Amazon Web Services which was provisioned within Amazon EC2. While they certainly use the same core of technology, they are not discreet layers.
–
BobMar 29 '11 at 23:23

I get that Jake, but I don't agree. Gmail's service doesn't provide you with infrastructure-as-a-service, it's purely software-as-a-service. The stuff underneath would have to be exposed as services, to be referred to as such. As it stands, Gmail's SaaS and the underlying Platform and Infrastructure are not exposed as services.
–
Chris ThorpeMar 30 '11 at 8:52

A stack when referring to infrastructure refers to the unique mix of technologies required to deliver an IT managed service to the business. When specifically referring to deleivering web based services, some of the most common stacks are WIMSA (Windows, IIS, SQL Server, and ASP) WISC (Windows, IIS, SQL Server, and C#), WISP (Windows, IIS, SQL Server, and PHP), WAMP (windows, apache, mysql, PHP) LAMP (linux, apache, mysql, PHP).

There are usually more technologies involved in deleivering these types of services however they are not referred to in the stack as those technologies are largely transparent to the technologies involved.