Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design Concept: Hosting & Continuous Deployment #46

Open
arcticicestudio opened this issue Nov 25, 2018 · 1 comment
Open

Design Concept: Hosting & Continuous Deployment #46

arcticicestudio opened this issue Nov 25, 2018 · 1 comment

Comments

@arcticicestudio
Copy link
Contributor

arcticicestudio commented Nov 25, 2018

This epic documents the design concept for the continuous deployment & hosting of Nord Docs with Netlify, a fantastic and one of the most popular services providing a single, simplified deployment workflow and a great hosting performance through a ultra-redundant global Application Delivery Network. They invest a lot into the open source community by hosting public projects for free with a lot of features like HTTPS with a free TLS certificate via Let's Encrypt, custom domain, automated preview deployments through integrations with GitHub and many more awesome features.
Listing all of the almost endless features is out-of-scope of this document. The well-written and really extensive documentation contains all information to get started. It also includes a lot of videos in sections to introduce a feature or guide the user through a setup with a tutorial.

🚧 This is a living document which means it is work in progress, not completed yet and will be extended!

All implementation details and requirements are documented and tracked in the corresponding issues:

Hosting

Nord Docs will be hosted through Netlify with a custom domain, structured in the primary (apex/root/naked), the www subdomain and the Netlify domain. The primary domain will be the recommended Netlify hosting by using the www domain instead of using the naked domain.

To provide a even better insight and community integration, Netlify's great branch subdomain deployments will also be used, including deploy previews of pull requests.

To take full advantage of Netlify's ultra-redundant global Application Delivery Network (ADN), Nord Docs will used the managed DNS feature.

Continuous Deployment

Nord Docs will use the fantastic continuous deployment features of Netlify. This is divided into the multiple deploy types: production-, branch- and preview.
All deployments are highly configurable to e.g. skip deployments on specific conditions, dependency caching, deploy contexts, build environment variables, language specific setup and many more.

Primary Domain & Subdomain Deployments

During the major version zero (0.x.x*) the main development branch develop will be deployed including all of its branch & pull request deployments. This approach allows to always see the current development state of Nord Docs so the community can test the latest changes, give feedback, report bugs and submit enhancements suggestions.

Starting from the initial launch only the master branch will be deployed to the primary prodution domain to reflect tagged and stable release versions. The develop branch will continue to be available as branch subdomain to provide deployments of the latest development changes.

All deployments will also take advantage over the GitHub integration with fine-grained permissions.

Security with HTTPS

To provide the best security for all users, Nord Docs will adapt to the up-to-date security standards and best practices by hosting the domain with HTTPS through Netlify's awesome free SSL support via the awesome Let's Encrypt project.

@arcticicestudio arcticicestudio added this to the 0.1.0 milestone Nov 25, 2018
@arcticicestudio arcticicestudio self-assigned this Nov 25, 2018
@arcticicestudio arcticicestudio removed this from the 0.1.0 milestone Nov 26, 2018
arcticicestudio added a commit that referenced this issue Nov 27, 2018
This commit implements a part of the implementation of the "hosting &
continuous deployment concept" (1) with Netlify's configuration
file (2). It initially defines the `command` and `publish` keys of the
`[build]` section for production builds.

See the "Hosting" and "Continuous Deployment" (sub)sections of the
related epic issue for more details about the architecture.

References:
  (1) #46
  (2) https://www.netlify.com/docs/netlify-toml-reference

Related epics: GH-46
Resolves GH-48
arcticicestudio added a commit that referenced this issue Dec 19, 2018
Integrated gatsby-plugin-netlify like documented in the "Hosting &
Continuous Deployment"”" design concept. It allows to automatically
generate a `_headers` file and a `_redirects` file at the root of the
public folder to configure HTTP headers (3) and redirects (4) on
Netlify.

One of the main advantages is that it also enables HTTP/2 server push of
critical Gatsby assets through the `Link` headers. By default, the
plugin adds HTTP/2 assets to server push the critical Gatsby scripts
(ones that have the `preload` attribute already) and also adds some
basic security and caching headers.

References:
  (1) https://www.npmjs.com/package/gatsby-plugin-netlify
  (2) #46
  (3) https://www.netlify.com/docs/headers-and-basic-auth
  (4) https://www.netlify.com/docs/redirects

Associated epic: GH-46
GH-89
@ghost
Copy link

ghost commented Jun 14, 2019

I understand the ease of use of Netlify is a big advantage and motives towards having it as a platform. I believe they are offering an above average service but I was unable to test the added benefit against other performance metrics. One thing is for certain that they save time. But the trade-off of having handed over a black box is important.

^^ don't mind me looking around trying to find a document and got interested on this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant