https://github.com/nginxinc/kic-reference-architectures Skip to content Sign up * Product + Features + Mobile + Actions + Codespaces + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Learning Lab + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} nginxinc / kic-reference-architectures Public * Notifications * Fork 39 * Star 229 Ingress Controller Reference Architectures License Apache-2.0 license 229 stars 39 forks Star Notifications * Code * Issues 45 * Pull requests 0 * Discussions * Actions * Projects 1 * Wiki * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Projects * Wiki * Security * Insights This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 2 branches 3 tags Code Latest commit @4141done 4141done refactor: use pipenv to manage dependencies (#150) ... 8c9a299 May 18, 2022 refactor: use pipenv to manage dependencies (#150) 8c9a299 Git stats * 154 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github refactor: use pipenv to manage dependencies (#150) May 18, 2022 bin refactor: use pipenv to manage dependencies (#150) May 18, 2022 config fix: stability and bug fixes (#138) May 5, 2022 docker Project Reorganization (#89) Feb 11, 2022 docs feat: add deployment badges (#147) May 12, 2022 extras fix: pin version of microk8s snap (#152) May 18, 2022 pulumi/python refactor: use pipenv to manage dependencies (#150) May 18, 2022 .fossa.yml Project Reorganization (#89) Feb 11, 2022 .gitignore feat: add Linode LKE support (#116) Apr 11, 2022 .gitmodules Project Reorganization (#89) Feb 11, 2022 .python-version refactor: move .python-version file to the root, increase patch versi... May 12, 2022 CODE_OF_CONDUCT.md feat: initial commit Jun 14, 2021 CONTRIBUTING.md feat: initial commit Jun 14, 2021 LICENSE feat: initial commit Jun 14, 2021 README.md feat: add jenkins build badges to readme (#148) May 16, 2022 View code [ ] NGINX Modern Reference Architectures Nomenclature Modern App Architectures What's Being Built Deployment Tools Pulumi Contribution License README.md FOSSA Status AWS Status DO Status LKE Status K3s Status MicroK8s Status Minikube Status NGINX Modern Reference Architectures This repository has the basics for a common way to deploy and manage modern apps. Over time, we'll build more example architectures using different deployment models and options - including other clouds - and you'll be able to find those here. Nomenclature Internally, we refer to this project as MARA for Modern Application Reference Architecture. The current repository name reflects the humble origins of this project, as it was started with the purpose of allowing users to build custom versions of the NGINX Ingress Controller in Kubernetes. This went so well that we expanded it to the project you're currently viewing. Modern App Architectures We define modern app architectures as those driven by four characteristics: scalability, portability, resiliency, and agility. While many different aspects of a modern architecture exist, these are fundamental. * Scalability - Quickly and seamlessly scale up or down to accommodate spikes or reductions in demand, anywhere in the world. * Portability - Easy to deploy on multiple types of devices and infrastructures, on public clouds, and on premises. * Resiliency - Can fail over to newly spun-up clusters or virtual environments in different availability regions, clouds, or data centers. * Agility - Ability to update through automated CI/CD pipelines with higher code velocity and more frequent code pushes. This diagram is an example of what we mean by a modern app architecture: Modern Apps Architecture Example Diagram To satisfy the four key characteristics, many modern app architectures employ: * Platform agnosticism * Prioritization of OSS * Everything defined by code * CI/CD automation * Security-minded development * Containerized builds * Distributed storage What's Being Built For details on the current state of this project, please see the readme in the pulumi/python subdirectory. This project is under active development, and the current work is using Pulumi with Python. Additionally, please see Status and Issues for the project's up-to-date build status and known issues. Subdirectories contained within the root directory separate reference architectures by infrastructure deployment tooling with additional subdirectories as needed. For example, Pulumi allows the use of multiple languages for deployment. As we decided to use Python in our first build, there is a python subdirectory under the pulumi directory. This project was started to provide a complete, stealable, easy to deploy, and standalone example of how a modern app architecture can be built. It was driven by the necessity to be flexible and not require a long list of dependencies to get started. It needs to provide examples of tooling used to build this sort of architecture in the real world. Most importantly, it needs to work. Hopefully this provides a 'jumping off' point for someone to build their own infrastructure. Deployment Tools Pulumi Pulumi is a modern Infrastructure as Code (IaC) tool that allows you to write code (node, Python, Go, etc.) that defines cloud infrastructure. Within the pulumi folder are examples of the pulumi being used to stand up MARA. Contribution We welcome pull requests and issues! Please refer to the Contributing Guidelines when doing a PR. License All code in this repository is licensed under the Apache License v2 license. Open source license notices for all projects in this repository can be found here. FOSSA Status About Ingress Controller Reference Architectures Topics aws nginx-ingress-controller pulumi Resources Readme License Apache-2.0 license Code of conduct Code of conduct Stars 229 stars Watchers 13 watching Forks 39 forks Releases 2 v1.0.0 Latest Feb 14, 2022 + 1 release Contributors 5 * @dekobon * @qdzlug * @4141done * @melbgirl * @sarahrivka Languages * Python 58.0% * Shell 42.0% * (c) 2022 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.