Jason Bittner (CEO): Good morning, everyone. I’m Jason Bittner, I’m CEO of Triple Helix Corporation and welcome again to our Helix Insider podcast. Today I’m joined in studio with one of our developers, Pedro Lopez, and our senior engineer, Shawn Coover, who are going to be talking with us today. Today’s topic we thought we would talk to you about application stacks. The work Triple Helix does is very largely based in software application stacks, and we thought we’d take a little bit of time to explain to you why we use an application stack and what we use and why we like to use it. So, Pedro, I’ll kick off and open up to you. What is an application stack and what are the components we use in our stack?
Pedro Lopes: So, an application stack is a combination of technologies that are used to run and build web applications. You know, we typically go for a LAMP stack, which is the operating system is Linux. We use, as a web server, Apache. The database is typically MySQL, and the language that we use is PHP. And so we typically try to stay within this kind of stack, but there’s variations of it that, you know, obviously we’re going to talk about in this podcast.
Jason Bittner (CEO): So basically LAMP is Linux, Apache, MySQL, PHP, L-A-M-P, yes?
Pedro Lopes: Exactly, yes.
Jason Bittner (CEO): Yeah, excellent. Shawn, why don’t you open up a little bit for us and talk to us about the operating system and what we use and why we like to use it?
Shawn Coover: We use Linux for our operating system. It’s free, it’s open source. There’s several different variations of it. There’s Red Hat, there’s CentOS, there’s the new CentOS stream, and there’s Ubuntu. Ubuntu is a great server, a platform. We use that specifically. They have a great long-term support. They have a rolling five years, but there’s many others. But all of the Linux core systems, the operating systems are open source. They’re free to use. There are some companies like Red Hat who offer support, so you can pay for subscription support for your Linux. There’s also the long-term support that Canonical offers for Ubuntu for their operating system, making sure all the security packages and patches are applied to the packages.
We also use Windows. You can use Windows for an operating system, but typically we like to use Linux. I like to know what’s going into the kernel of the operating system and what’s going into the core of the server itself, and we can really keep it small and modularized with Linux.
Jason Bittner (CEO): Yeah, that’s a good point, because the operating systems are so very important these days, and I’m aware Red Hat was a very go-to favorite from the open source community, ourselves included, and at one point they decided they wanted to start selling it as a paid license, and understandably they’re using support agreements to support that, but unfortunately it kind of breaks the pivotal cardinal reel for us is that we want to offer our solutions and our technology free, so after that I think this team decided to go to Ubuntu almost exclusively, though we do play in the other ones.
That’s a good point.
Talk to us now about the web server, Sean. Like, what is the A in the LAMP stack?
Shawn Coover: Well, the A in the LAMP stack stands for Apache and is one of the most long-standing web server software there is. It’s a very powerful, very modular and very dynamic piece of software. It can be a little slow if you blow it up with too much software or too many components, but it is a very, very powerful engine and it runs a lot of the internet web services in general.
Jason Bittner (CEO): Just for our listeners’ perspective, what actually is a web server? What’s it actually doing for the application stack?
Shawn Coover: A web server is a service that’s running on the server except HTTP and HTTPS requests from clients. It manages WebSockets, which is just the connection to the network so that when you send a request from your browser, the web server responds with the content that you’re requesting.
Jason Bittner (CEO): Right, so literally you go to a website, the client is the desktop, the browser of the user, and you’re requesting a page like google.com and the web server is literally serving the content. It’s providing the request back to the user and showing them everything, that’s it?
Shawn Coover: Yes, it’s the service that’s actually sending the content to the client.
Jason Bittner (CEO): Got it. Now, we don’t always use Apache, right? What else do we use?
Shawn Coover: There’s several other web servers out there. There’s Nginx, which is one that we use a lot as well. It was more designed for speed more than usability. It’s a very powerful proxy and caching server along with a very fast web server. If it’s a rather simple application, we’ll typically tend to use Nginx for its speed and caching abilities, but if we have a more in-depth piece of software that we’re running, then we’ll tend to lean on Apache for that.
Jason Bittner (CEO): Okay, Pedro, over to you now. Let’s talk a little bit about the M in t e LAMP stack, which is part of the database engine. Talk to us about that and what options we use there.
Pedro Lopes: Well, we typically use MySQL. That’s the M on the LAMP stack, and it’s essentially a system that stores and manages data for the application. It’s MySQL. It’s a technology that is very well known, and one of the reasons to use it is because a lot of the bugs have been already patched out, so it’s very stable as well.
Jason Bittner (CEO): What other database engines would we use besides MySQL? Because there are several out there we might use, right?
Pedro Lopes: Right. Well, there’s MongoDB, Firebase. There’s a couple other out there, but typically, we either go with MySQL, Postgres, MariaDB, some of these other. Depending on the need of the project, we might go in a different route, but typically, we stay with MySQL.
Jason Bittner (CEO): Awesome. I remember that MariaDB is actually a variant of MySQL, so it’s actually like MySQL all over again.
Pedro Lopes: Yes. It’s pretty much like MySQL with a few things here and there, but it’s essentially the same thing. Now, this is in contrast to the very, very popular Microsoft product, SQL Server, which I’m sure a lot of our listeners have used before. Nothing wrong with SQL Server. In fact, a lot of very good best-in-class applications use it, but we tend to shy away from SQL Server just for the basic reason is it’s not free.
Microsoft is a product charges for their license, and a Microsoft SQL Server license can be quite expensive, anywhere from $5,000 to $10,000, depending on the version you’re getting. That’s the one thing we like to stress is that we’re building these applications, and yet if we have to start the work with $10,000 in the hole, it’s counter-intuitive in our opinion. But at any rate, then the last piece of that, the P.
What is the P in our LAMP stack? The P stands for PHP, and that’s the programming language that we use to write our applications. But I just want to make a quick note here about the database as well is that any given application that we build, we typically have to connect with other databases that a client might have their data in. Even though you might be using primarily MySQL to host the data, it doesn’t necessarily mean that that has to be the database that the client needs to have. We can connect the application to the MySQL database, but also the SQL Server, and pull data from different databases into the application.
Jason Bittner (CEO): That’s an excellent point, and for listeners who have actually heard some of our other podcasts, we talked at length about enterprise resource planning, software systems, and ERP augmentations, and what, Pedro, you just mentioned is exactly how we do that. We have our own app stack, which is the LAMP stack, and it’s a self-contained application, but very often we have to reach out to a third-party data source like an ERP system, and frequently they’re using SQL Server. So we’ll use a special driver that lets us connect to it, and that’s referred to as an ODBC driver. I believe that stands for original database connection.
Pedro Lopes: Right. That’s right.
Jason Bittner (CEO): You touched on a really important point is with LAMP as a self-contained fully grown application, we’re actually using a framework in the PHP side that actually builds the entire application. Talk to our listeners, Pedro, a little bit about what application stack we like using. Of course, there’s many, many ones out there, but what is our framework of choice that we like to use?
Pedro Lopes: So we used to use YI, but there wasn’t as many updates as we would like to see year over year on a framework. So we ended up choosing Laravel, which is a PHP-based framework, and for those who don’t know, PHP is a server-side language.
Basically, a framework is a set of libraries and tools that provide a structure for building a web application. So that’s essentially what we use, and one of the reasons that we like Laravel, aside from the fact that it’s open source, it has a really big community behind it, and they update it every year, and they put security patches in. So it’s very important to have that kind of community when you pick a framework to long-term projects.
Yeah, that’s an excellent point because these frameworks, they’re very much beholden on the community that supports them, and if they’re not being updated and maintained, they can create security risks and flaws over time that then get exploited. So you always want to use a framework, even though it’s free, you want to use one that has a very large community behind it.
Jason Bittner (CEO): Yeah, excellent point. Shawn, talk to us now about the application stack in general, the entirety of everything, and why having a stack for software is so very important.
Shawn Coover: The application stack allows all of the services and all of the pieces of the stack to be modularized so that everything is granular, so there’s no single point of failure for the application itself. Obviously, if your database system goes down, you’ll have some issues, but you can have a replication set up for that.
The reason why it’s a stack is so you can separate out all the services and troubleshoot each one individually instead of having one big piece of software that’s containing all of these services and one that will chug on RAM and use a lot of resources to try to do all of these things at once, whereas four different pieces of software can do it individually and manage their own resource quicker and better.
Jason Bittner (CEO): Excellent point, and moreover, it makes the security much easier, right? You can sort of manage them independently, right?
Shawn Coover: Yes, you can manage all of the components of the LAMP stack individually. You can make sure that only you can access your Linux system.
Only the web server is listening on the network where the database is listening on a file socket on the server itself. You can make it much more secure by running a LAMP stack where everything’s modularized instead of just one piece of software that’s running at all.
Jason Bittner (CEO): Right, because we have seen that, right?
Shawn Coover: I mean, we’ve seen applications where they try to self-contain everything, and it’s a bit of a hot mess in that it’s trying to do everything for the user. And while that is nice, you have one component to worry about, the modularity, I think, is very powerful because it gives us the ability to lock things down independently, work on them independently. If we know something’s wrong with a specific service, you only have to look at one thing as opposed to the entire stack to see what’s going on.
Jason Bittner (CEO): So yeah, excellent point. It makes it much easier to manage, for sure.
Shawn Coover: Yeah, it definitely makes it much easier to manage, much easier to troubleshoot, and just much easier to maintain in general.
Jason Bittner (CEO): Yep, yep, exactly, exactly. I think that’s pretty much all we had for our users today. Any final thoughts? I’ll throw it back to you, Pedro, for a wrap-up. Anything, final comments you wanna make?
Pedro Lopes: I just wanna really state that even though we do have a stack that we typically work with, the stack can vary based upon the client’s needs. We tailor the project to whatever is best for the client. Whatever is best for the client. And so that can vary a little bit, but typically we stay within those parameters and we try to use as much open source, well-established frameworks and services as possible.
Jason Bittner (CEO): Awesome, Shawn same question. Any final thoughts and feedback?
Shawn Coover: Yeah, I did wanna speak briefly on the database services for a moment. We are making a strong shift towards MariaDB kind of away from MySQL, considering MySQL is sort of running a dual license approach. They’re still open source, but Oracle does have the ability to run other licenses for MySQL, whereas MariaDB, it’s now becoming the most popular relational database service. It was made by the original developers of MySQL, and it’s guaranteed to be open source for the rest of its life.
Jason Bittner (CEO): Excellent. No, that’s an important distinction. I think you were mentioning too earlier that application stacks in general, including these open source components, power over, what is it? 95% of the internet is running these servers?
Shawn Coover: Yeah, anywhere between 85 and 95% of the internet is running some sort of stack, whether it’s a XAMPP stack, Windows with Apache or Windows with IIS, which is internet information services, which is Microsoft’s web server. You do need a license for that, but yes, stacks are running just about everything on the internet currently. Yeah, so very important and for making sure that things running smoothly, for sure.
Jason Bittner (CEO): Okay, well, that’s all our time we have for us today. So I want to thank my two guests, Pedro Lopez and Shawn Coover for joining us in studio today. Thanks everybody, and have a great day.