Welcome to another episode of 'This is My Architecture'.
Today I'm joined by Kevin Jones from NGINX.
Hey, Kevin. Hey, thanks for having me.
Tell us a little bit about what NGINX does.
Yes, NGINX is the number one used web server.
We have about 400 million websites running on NGINX
and we are the number one used ingress controller in Kubernetes.
A couple of those websites are mine, Kevin, I've been using your tech for a while.
Now today we're going to talk about old things, modern applications.
Tell us about some of the challenges associated with managing this new environment.
Yeah, a lot of companies are trying to grow their applications quickly
and they're trying to go to market with new features, and so what we're seeing is
a lot of new modern applications are being built in large amounts of numbers
and people are losing visibility and control and security of those applications in their infrastructure.
And Kevin, you've built a really elegant solution around that, so let's dive in.
Yeah, absolutely. In a traditional Amazon environment we have, users are coming in
and they're usually using some kind of a built-in load balancing solution from Amazon, right?
The classic load balancer may be an ELB, and really that's going to provide some basic load balancing
to get that application traffic into the infrastructure that they're running,
and typically that is actually connecting into a containerless environment,
if it's a modern application it's built in a containerless environment.
And the ingress controller here is basically going to give the user a lot of control
into the traffic of the application.
So, as the traffic gets distributed through to their services, they can do things like
route based off the URL or control the application from a security perspective here in that ingress controller.
So, Kevin, If I've already got a load balancer, tell us about why we even need an ingress controller.
Yeah, again, this Edge load balancing is going to provide the basic infrastructure load balancing,
high availability load balancing that you need to get this from the Edge.
But when you get in here you can start doing more advanced things like
routing based off the URL, routing based off arguments, the host header,
you can also inspect the request to see if there's anything malicious going on
with our NGINX App Protect, which is a WAF solution.
You can also do things like protect against DDoS services, to keep hackers from coming in and
doing a denial of service against your services.
You also can tie into an identity provider and do authentication and authorization control of your application.
So there's a slew of things that you can control with the application
and that's why NGINX is known as the Swiss army knife of the web.
So, all the intelligence that can be packed into that Layer 7 traffic, right?
Yep. So tell us a little bit about the administration experience.
How do you build and deploy all this?
The administrator is usually in charge of a couple of things, right?
He's building infrastructure as code, and so he's usually building
the container in something like Docker, right?
And so he's creating a Docker container, and he's pushing that into a container registry
like Elastic Container Registry, and he's using commands like
kubectl, which is the way to administer and manage Kubernetes, through here.
And then those containers are getting pulled down from the container registry.
The nice thing about NGINX is here there's a Daemon that runs that essentially automates
the changes as you scale up your services on the back end.
So really, the administrator can just use command line utilities and automate
this kind of entire workflow with CI/CD pipeline,
integrating with whatever CI/CD pipeline they choose to treat the infrastructure as code, essentially.
And really, it has solved a lot of problems.
So no need to manage clusters of compute environments, you've got a way to manage
all the different versions of your application, it's a very familiar
environment for a developer, infrastructure as code, right?
Yep. How much time do you see customers saving
with this sort of solution?
A lot, because, you know, what this allows you to do is
start building the CI/CD pipeline, and really allows the organization to start building
feature sets on the applications that run on the back side
and really focus on the growth of the application.
We hope to solve a lot of those problems by building in features and functionality into the ingress controller
that can be managed from one single configuration.
And so it really does aim to basically ease that overall time that a user needs to make changes
and push those changes out.
And this solution is open source as well as available on the AWS marketplace, right?
Absolutely, yeah.
Fantastic, Kevin, thanks for sharing your architecture with us.
And thank you for joining us on 'This is My Architecture'.