1/27/2024 0 Comments Termius alternative windowsThe result of these efforts were significant. The final step in our rollout is to update some keys in Redis so our Rails app knows which bundles to serve. A new CircleCI script builds the bundles and uploads them to S3. We built a hybrid Amazon S3 Amazon CloudFront solution to host our Webpack bundles. Related to this, we need a way to "deploy" our frontend changes to various server environments without building & releasing the entire Ruby application. A new SSR app was created in Heroku and linked directly to the frontend repo so it stays in-sync with changes. The driving factor in this decision was mostly due to limitations imposed by Heroku specifically with how processes can't communicate with each other. In order to deploy our SSR app into a Heroku environment, we needed to split out our front-end application into a separate repo in GitHub. Up until recently, we had a mono-repo with our Rails and React code living happily together and all served from the same web process. This microservice needs to run and serve requests independent of our Rails web app. We use an in-house Node.js rendering microservice to generate this HTML. When you visit the StackShare Feed, and you aren't logged in, you are delivered the Trending feed experience. One of our objectives with the public launch of the Feed was to enable a Server-side rendered (SSR) experience for our organic search traffic. StackShare Feed is built entirely with React, Glamorous, and Apollo. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |