From e6de2ee3cb40f23292fb688cd670cb537c3a5608 Mon Sep 17 00:00:00 2001 From: winwiz1 Date: Sat, 25 Jan 2020 12:43:11 +1100 Subject: [PATCH] Support deployment on Google Cloud Run --- Dockerfile | 11 ++++++- README.md | 48 +++++++++++++++++++++++----- app.json | 6 ++++ docs/cloudrun.png | Bin 0 -> 3591 bytes docs/screenshots/NameLookupPage.png | Bin 41180 -> 42086 bytes docs/screenshots/api.png | Bin 0 -> 7698 bytes server/yarn.lock | 16 +++++----- start-container.sh | 2 +- 8 files changed, 65 insertions(+), 18 deletions(-) create mode 100644 app.json create mode 100644 docs/cloudrun.png create mode 100644 docs/screenshots/api.png diff --git a/Dockerfile b/Dockerfile index ccb7500..ad4bf3c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,18 @@ FROM node:12.8.1-slim as build RUN apt-get update -y && apt-get upgrade -y +WORKDIR /crisp-react/server +COPY --chown=node:node ./server/ . WORKDIR /crisp-react/client COPY --chown=node:node ./client/ . -RUN yarn && yarn build:prod + +# Development build with uncompressed and not minified bundle - slow +# Comment out next line when Google fixes issuetracker.google.com/issues/147185337 +RUN yarn && yarn build + +# Production build with compressed and minified bundle - fast +# Uncomment next line when Google fixes the above bug +#RUN yarn && yarn build:prod FROM build as prod diff --git a/README.md b/README.md index 2a84448..afa91c8 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,28 @@ ## Project Highlights * Performance. A script bundle with size 3.5 MB in development cut to ~70 KB in production for fast loading. -* The backend implements HTTP caching and allows long term storage of script bundles in browser's cache that further enhances performance yet supports smooth deployment of versioning changes in production (eliminating the risk of stale bundles getting stuck in the cache). -* Ability to optionally split your React Application into multiple Single Page Applications (SPA). For example, one SPA can offer an introductory set of screens for the first-time user or handle login. Another SPA could implement the rest of the application, except for Auditing or Reporting that can be catered for by yet another SPA. + +* Caching. The backend implements HTTP caching and allows long term storage of script bundles in browser's cache that further enhances performance yet supports smooth deployment of versioning changes in production (eliminating the risk of stale bundles getting stuck in the cache). + +* Code splitting. Ability to optionally split your React Application into multiple Single Page Applications (SPA). For example, one SPA can offer an introductory set of screens for the first-time user or handle login. Another SPA could implement the rest of the application, except for Auditing or Reporting that can be catered for by yet another SPA. This approach would be beneficial for medium-to-large React applications that can be split into several domains of functionality, development and testing. + * Seamless debugging. Debug a minified/obfuscated, compressed production bundle and put breakpoints in its TypeScript code using both VS Code and Chrome DevTools. Development build debugging: put breakpoints in the client and backend code and debug both simultaneously using a single instance of VS Code. -* API. The backend communicates with a cloud service on behalf of clients and makes data available via an API endpoint. It's consumed by the clients. The Name lookup and gender discovery API is used as a sample, see a screenshot in the [Getting Started](#getting-started) section. The implementation provides reusable code, both client-side and backend, making it easier to switch to another API. In fact this approach has been taken by the sibling Crisp BigQuery repository created by cloning and renaming this solution - it uses Google BigQuery API instead. + +* API. The backend communicates with a cloud service on behalf of clients and makes data available via an API endpoint. It's consumed by the clients. The Name Lookup API is used as a sample: + ![API Screenshot](docs/screenshots/api.png) + + The implementation provides reusable code, both client-side and backend, making it easier to switch to another API. In fact this approach has been taken by the sibling Crisp BigQuery repository created by cloning and renaming this solution - it uses Google BigQuery API instead.
+This arrangement brings a security benefit: The clients running inside a browser in a non-trusted environment do not have credentials to access a cloud service that holds sensitive data. The backend runs in the trusted environment you control and does have the credentials. + * Containerisation. Docker multi-staged build is used to ensure the backend run-time environment doesn't contain the client build-time dependencies e.g. `client/node_modules/`. It improves security and reduces container's storage footprint. + - As a container deployment option suitable for a demonstration, you can build and deploy the container on Cloud Run. The prerequisites are to have a Google Cloud account with at least one project created and billing enabled.
+[![Run on Google Cloud](docs/cloudrun.png)](https://deploy.cloud.run?git_repo=https://github.com/winwiz1/crisp-react)
+The build will take a while due to free Cloud Shell using a free cloud VM with modest specs. After the build and deployment are finished you can click on the provided link and see the page rendered by the client.

+:heavy_exclamation_mark: It is highly recommended to delete the created service when the demo is finished. The explanation why this is needed can be found in the [Containerisation](#containerisation) section. Delete the service by executing the following command:
+`gcloud run services delete crisp-react --platform=managed --region=us-central1 --project=`
+It can be conveniently executed from the Cloud Shell session opened during the deployment. Update the `region` with the one chosen during the deployment and replace `` with your project name. Alternatively delete the service using Cloud Run [Console](https://console.cloud.google.com/run). + ## Table of Contents - [Getting Started](#getting-started) - [Features](#features) @@ -44,7 +60,7 @@ Install `yarn` if not already installed: `npm install yarn -g`
With VS Code
- Prerequisites: Chrome and VS Code with 'Debugger for Chrome' extension.
+ Prerequisites: Chrome and VS Code with 'Debugger for Chrome' extension.

  • Clone the crisp-react repository:

    @@ -95,6 +111,8 @@ Install `yarn` if not already installed: `npm install yarn -g`
+The section can be concluded by optionally renaming the solution. Rename the top-level directory from `crisp-react` to `your-project` and set the `SPAs.appTitle` variable in the [`spa.config.js`](https://github.com/winwiz1/crisp-react/blob/master/client/config/spa.config.js) file accordingly. Ignore the rest of the file for a moment, it's covered in depth in the [SPA Configuration](#spa-configuration) section. + ## Features ### Client and Backend Subprojects Each subproject supports execution of the following commands/scripts: @@ -121,7 +139,7 @@ The optional splitting of a React application into multiple SPAs (each rendered Every SPA has a landing page displayed during initial rendering by the component included into the SPA. In webpack terminology such a component is called entry point. An SPA (and its bundle) is comprised of this component, the components it imports and their dependencies. Let's see how Crisp React defines the SPAs. -The client subproject builds an application with SPAs defined by the SPA Configuration block in the `client/config/spa.config.js` file: +The client subproject builds an application with SPAs defined by the SPA Configuration block in the [`spa.config.js`](https://github.com/winwiz1/crisp-react/blob/master/client/config/spa.config.js) file: ```js /****************** Start SPA Configuration ******************/ var SPAs = [ @@ -288,9 +306,23 @@ Start the debugging configuration `Debug Production Client and Backend (workspa Wait until an instance of Chrome starts. You should see the overview page. Now you can use VS Code to set breakpoints in both client and backend provided the relevant process is highlighted/selected as explained in the previous scenario. You can also use Chrome DevTools to debug the client application as shown above.
To finish stop the running debugging configuration (use the Debugging toolbar or press `Control+F5` once). ## Containerisation -To build and run a Docker container execute [`start-container.cmd`](https://github.com/winwiz1/crisp-react/blob/master/start-container.cmd) or [`start-container.sh`](https://github.com/winwiz1/crisp-react/blob/master/start-container.sh). The file can also be executed from an empty directory in which case uncomment the two lines at the top. +### Using Docker +To build a Docker container image and start it, execute [`start-container.cmd`](https://github.com/winwiz1/crisp-react/blob/master/start-container.cmd) or [`start-container.sh`](https://github.com/winwiz1/crisp-react/blob/master/start-container.sh). Both files can also be executed from an empty directory in which case uncomment the two lines at the top. Moreover, it can be copied to a computer or VM that doesn't have NodeJS installed. The only prerequisites are Docker and Git. + +The `Dockerfile` produces the development build of the client. This is a workaround for the Cloud Run bug explained below. If you are not using Cloud Run, switch to the production build as explained in the [`Dockerfile`](https://github.com/winwiz1/crisp-react/blob/master/Dockerfile) comments. + +>Once the container image is built, you can upload it into a private container registry supported by all cloud vendors and run it from there using one of their container offerings. One such option, Google Cloud Run, is described below since it was used for the demonstration in the [Project Highlights](#project-highlights) section. Also note that all vendors allow you to build the image in the cloud so there is no need to upload it. + +### Using Google Cloud Run +This section contains additional considerations that apply to deploying the solution on Cloud Run. The considerations are not specific to this solution and would be relevant for any React SPA. + +1. Although Cloud Run provides an ample free tier usage in terms of bandwidth and number of requests, you are billed for the incoming requests once the free usage threshold, 2 million calls per month, is exceeded. This scenario wouldn't be infeasible if the service URL is discovered and used to mount a DoS attack (or come close to it by emulating a significant workload). Deleting the service promptly after a demonstration helps to mitigate this risk. Hopefully Google will make a configurable firewall available soon for Cloud Run running in the public access mode. + +2. The security of the deployment can be improved by switching to the private mode. This can be done by changing the `allow-unauthenticated` setting in the `app.json` file to `false`. The switch impacts usability due to the service becoming inaccessible to non-authenticated users. The access to the service can be enabled by an additionally deployed [endpoint](https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-run). However the endpoint requires users to authenticate using [Google Sign-In](https://developers.google.com/identity/sign-in/web/) or other methods. Obviously this authentication cannot be facilitated by the React application because any access to it is controlled by the endpoint. + +3. The Google provided alternatives to container deployment on Cloud Run with ability to control networking ingress include Cloud Run for Anthos. This option allows to have an ingress controller but is more expensive and technically involved. Google App Engine Flexible Environment is yet another option, it has access to a configurable firewall but [lacks](https://cloud.google.com/appengine/docs/flexible/nodejs/managing-projects-apps-billing) ability to set spending limits. -Moreover, it can be copied to a computer or VM that doesn't have NodeJS installed. The only prerequisites are Docker and Git. +4. There is a Cloud Run [bug](https://issuetracker.google.com/issues/147185337) that makes it impossible to deploy a production build of the client on Cloud Run. The reason for it is that production builds of React applications typically produce compressed script bundles. The bug causes Cloud Run to strip the `Content-Encoding` HTTP header from the response sent by the backend. As a result, the browser doesn't know the downloaded bundle was compressed and doesn't uncompress it making the bundle unusable. The workaround is to opt for development builds with uncompressed bundles. ## What's Next Consider the following steps to add the desired functionality: * Start with [Client Usage Scenarios](#client-usage-scenarios) to develop UI in absence of API data. For example, develop the initial look and feel of the login page. Take advantage of the Live Reloading to speed up the development. The client scenarios ensure the backend is not started needlessly. @@ -306,7 +338,7 @@ One of the goals pursued by the [Backend Usage Scenarios](#backend-usage-scenari The webpack-dev-server is never started in production. This is hardly a good idea. The server, as its name suggests, is meant to be used in development only. ## Q & A -Q: I have changed both SPA names in the SPA Configuration block and kept the rest including the entry points intact. I expect everything to keep working using my new names for the SPA landing pages instead of the old `/first.html` and `second.html`. However navigation via the menu and Back/Forward browser buttons seems to be broken. How can it be fixed.
+Q: I have changed both SPA names in the SPA Configuration block and kept the rest including the entry points intact. I expect everything to keep working using my new names for the SPA landing pages instead of the old `/first.html` and `/second.html`. However navigation via the menu and Back/Forward browser buttons seems to be broken. How can it be fixed.
A: Clear the browser's history and cache. Alternatively use an incognito tab. The client, the backend and the tests should work with the new names. Q: Can I use dynamic imports in addition to multiple SPAs for code splitting?
diff --git a/app.json b/app.json new file mode 100644 index 0000000..bed8f7c --- /dev/null +++ b/app.json @@ -0,0 +1,6 @@ +{ + "name": "crisp-react", + "options": { + "allow-unauthenticated": true + } +} diff --git a/docs/cloudrun.png b/docs/cloudrun.png new file mode 100644 index 0000000000000000000000000000000000000000..76ef57caa433c07865d300ba9acb2fc5dc92b2b9 GIT binary patch literal 3591 zcmV+i4*2njP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T&t;TjFSy^4`QIXrJwTu!KFNbh#0oN|(Tn$N#UNW)r&{BDFTBYT9T zdXYMO+@l(VpZ8J<1%x8Or5iFZBwRS zQKYiW(EuAmzH4MyiNNe-ak*!oF_j?SnB zHezyi?JIkNh}I2FRUp5ONiL1J$GG6)Fy_&`(*|j z-rbT>XN06f6H_J*w&h~Hr+X_4=S#@GgWgFzw1o1F?H7`#-jB&w-(`>0$>9JRwc|Ri_8h^`E|%PcdtxW>qSHf)A8Rl#+5*#lF@W@WYeUJILH1+qX`f1p zV6O()G68Edv`a_^b+(k{JspnX)g^`5DaB61C@h55Z*xgOkO*18Gz_-2V$oQusGH+!750K)_PFf=8zfK2 zguh2*5;Dm_Cn-~g+X!ew%`Ztm5&`=7yN+D?SVaEvW>gW40Ym%Y2j};W3&YY00(HZ) z5%qrB$}xRy>6+1%qr$dnWXfll`ycj~FIt%x*~5}+LD<)qyX$bn%&63@ZpghLHs_C^ zD5k9?_S-`IYI$q<%bu1D>}<-zZ#!!2FD{Hh076pdNLih)cO_DaTpvYGi~8>ANX}fU zK+x{o1d`o8EUcafl!dxD-`%6as%6S;97y;m$g7E;4_FYtzse=wqIC&bw=IDQ&AuiJ zwv*}_a{E7{Q0RnGmD&3R+sa2;zQ*w1L4AN`p9?szFGpKfvo@-ec*A76LWoE3`0BL3l^qFChwO@GV5 z!o*a7%$VmuLGvd)v2bl%b(b_a@kLPLO!URXt_Mk&{{2{uqOCd9RJUdK97rm{Ys3&B zx!RLEVJm2->STN=@DV81A7(|>b`J_&1{~22_KA&xUB2t{zUiUs)o}gwS#2%(1jP4~ zm^N?my0~1g7k3_JST}m>-5YuMX8NJM2qJ~0@ozz+xcp_ zd_c>>ZSnd<+B(plajt27D+04Z7;~Iy89)1)7BhQX`QosM->j~gBE?Qj%qFj>rKKsW zUrq8o^lwN0G$)!xG(Six`n&mS;_~hnan%;AT~3C`g@bu^y1v<+Op(wJ5`*`vvlkc7 zzkp?d{`LUKHmqAnsig+hdBb*h>kL~(&rR$_Fg5o&B7RWCfv)eTJxoFyUBQ`%c=A|GnEeS1VzTmtuI5RB?n-s+m zAf0K-g9`KniQwE%+5jl4k&HPZ=R3JJ0Nnd0xuV+HuS74 zglKp4^%z+6^crU(ZPHg4f|XQOsB_=;huX4SoZ;}t%QI9qA8d!>v#@0?!!1(;*bum? zpDnYOfvLdfD3EE7dbT;V99&qYcq%xp4=u=mPNwRTY0$3pX=lnJkdh+uEdqEDys-Ap z1pR$35n_GDta>J{$;QN9WHWC4Pd3$gGx5RdxUyQz5FMJNTRDoxlo7TPCx4*x{Ot0v zF~IspgBgmMKwC13CeNwCT1(e}ock?5B-Pp%dE?+u&R=F`stip(0n=q=}mRac_{&dD)dH`tc*@Os)@3V?ebTd}akAS=5?^xbU{ z&^HYYt9ppumZCvYGZ5I(;dQ&a5Ta>d5vp&+{S3NL#4EBK-`Ihr#hJ3gxx9 z4xgh?n7B>@ku{cXaMhilePQr2@b-aV6dU~nHW#?A9kJ&8LSi#qi>ki%`y?{cq1JOR z1P|ApmX2T$4#IVt*1`P40#clq{dFc~c4J}Ql52_2EkfPGM#=hZZh#UkAws<%aLjmI zzxS{<-7&8$$P2+w_LT*y6szz;zOoRY@}T;WJdKf+Ui{eY}nj=kkPTdsO4B0FHg z0=P)IB>m-`e8Gnu8vITUK?UrKiDtDuV_rst#{OP+fB;nu{M*}< z;uFsPo!(ygV8O+28M5&3Q=AWc0@4RK8j$v177Fd|1PD;o!9OHB>b2oT_iAqNl3BfJZd{{w%K;^rcvk757- N002ovPDHLkV1oMU?Hm9A literal 0 HcmV?d00001 diff --git a/docs/screenshots/NameLookupPage.png b/docs/screenshots/NameLookupPage.png index e8416415637c4457e9b90a635bf8e59b7a2cbc3d..c82d9ad3c11408f1f246285e158026045cf8226c 100644 GIT binary patch literal 42086 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 literal 41180 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 GLK6TM_!Z6o diff --git a/docs/screenshots/api.png b/docs/screenshots/api.png new file mode 100644 index 0000000000000000000000000000000000000000..7926a16a0aa266b4718583bcae7fec629767fc0b GIT binary patch literal 7698 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