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.
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:
to make up the LAMP stack, or like this:
S Sql Server
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.
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.
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.
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.
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: