17

Can someone please define what exactly is the "Stack". I know its an industry term but its very vague. I am referring to Infrastructure terminology not "Stack" in terms of memory allocation.

5 Answers 5

22

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 PHP
M MySQL
A Apache
L Linux

to make up the LAMP stack, or like this:

C C#
S Sql Server
I  IIS
W 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, and the reason it's important is because software developers tend to build products with a specific stack in mind, or have experience working with one stack (or family of stacks) but not another. As long as you match up to their stack, the product should work as expected.

1
  • 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.
    – chmullig
    Mar 24, 2011 at 16:54
15

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

3

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:

Basic Cloud Stack

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.

4
  • 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). Mar 24, 2011 at 22:20
  • @Chris - But if you are a consumer of say, SaaS, you are also consuming the underlying platform and infrastructure. Mar 29, 2011 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.
    – Bob
    Mar 29, 2011 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. Mar 30, 2011 at 8:52
2

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.

1

If they are network admins they may be referring to the TCP/IP stack.

  • Application - ie HTTP
  • Transport - ie TCP
  • Internet - ie IP
  • Data Link - ie Ethernet
  • Physical - ie Physical media/cable

or the OSI model:

Explained here

1
  • 3
    OSI: Please Do Not Throw Sausage Pizza Away... :D Mar 24, 2011 at 20:18

You must log in to answer this question.