{"id":14,"date":"2022-10-13T18:42:17","date_gmt":"2022-10-13T18:42:17","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/dansarran\/?p=14"},"modified":"2022-10-13T18:42:17","modified_gmt":"2022-10-13T18:42:17","slug":"blog-post-2-exploring-hosting-options","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/dansarran\/2022\/10\/13\/blog-post-2-exploring-hosting-options\/","title":{"rendered":"Blog Post # 2: Exploring hosting options"},"content":{"rendered":"\n<p><strong>Goal<\/strong><\/p>\n\n\n\n<p>Identify and evaluate viability of hosting and deployment options for application considering research costs versus mid-term benefits.<\/p>\n\n\n\n<p><strong>Background<\/strong><\/p>\n\n\n\n<p>Part of my research this week has been looking into various hosting options. There&#8217;s a few components involved here.<br><br>The primary is going to be physically how\/where to host our full stack application. The second is going to be where\/how to store database.<br><br><strong>Criteria<br><\/strong>&#8211; Free<br>&#8211; Some optimal balance of tradeoffs &#8212; e.g. &#8220;saves time later&#8221; against &#8220;learning curve now&#8221;<br><br>RIP Heroku. Free tier ends soon. Godspeed old chap.<br><br><strong>Option 1: FLIP<br><\/strong>+ Free<br>+ Familiar<br>+ Easy to deploy (backend, at least)<br>&#8211; Thought I read some additional work about where to place frontend and how to route incoming traffic to that, unclear at this time<br>&#8211; In 290\/340 MySQL came pre-baked &#8212; can&#8217;t recall if there&#8217;s setup or requests needed to setup in Capstone<br>&#8211; Since FLIP is tied to individual accounts, the responsibility of deployment and database management would fall onto ONE person, not ideal<br>&#8211; No built-in CI\/CD<br><br>Summary: Flip is great because it&#8217;s a free student resource, but there&#8217;s some research related to frontend placement and routing, as well as DB &amp; deployment responsibilities that are not able to be spread across all teammates.<br><br><strong>Option 2: AWS<br><\/strong>+ Well communicated Free Tier options<br>+ Cloud DB has options for both NoSQL and SQL <br>+ Cloud DB means all team members can help with data setup, debugging, connections, etc.<br>+ Multiple deployment options<br>+ CI\/CD functionality available<br>&#8211; High learning curve, too many options<br>&#8211; EC2 instance deployment requires setting up nginx for server proxy for incoming traffic, what a pain &#8212; also if we are using EC2, we are literally just provisioning a machine to host the entire application &#8212; how is this different\/more beneficial than FLIP other than guaranteed uptime?<br>&#8211; Alternatively can setup EC2 for backend, S3 bucket\/Cloudfront for frontend,<br>&#8211; Security everywhere means many places for possible error in just &#8220;getting setup&#8221;<br>&#8211; Using serverless backend (e.g. lambda) or amplify frontend doesn&#8217;t even feel like real code, what is this drag and drop programming stuff about<br>&#8211; Creating initial architecture requires further research<br><br>Summary: many options are available which requires greater startup cost in research. But, after the initial (possibly painful) setup &#8212; all the pieces are made to work with each other seamlessly. Generous free tier means unlikely to incur costs, but need to be judicious with the fine print.<br><br><strong>Option 3: GCP<br><\/strong>Mostly same as AWS services but with these additions:<br>+ Greater emphasis on containerized deployment makes &#8220;works here works everywhere&#8221; easy<br>&#8211; no free-tier SQL cloud DB (free tier is NoSQL only)<br><br>Summary: higher research as with AWS but seems to have friendlier containerized option via Cloud Run service. Although initial setup cost could be higher, if a docker container can be setup appropriately it is basically guaranteed to work on all team machines AND for deployment. <br><br>Note: I recognize I am a neophyte and many parts of this could be (completely?) incorrect. I accept that and wave my Student ID in return. This was one week&#8217;s research.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Goal Identify and evaluate viability of hosting and deployment options for application considering research costs versus mid-term benefits. Background Part of my research this week has been looking into various hosting options. There&#8217;s a few components involved here. The primary is going to be physically how\/where to host our full stack application. The second is [&hellip;]<\/p>\n","protected":false},"author":12710,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-14","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/dansarran\/wp-json\/wp\/v2\/posts\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/dansarran\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/dansarran\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/dansarran\/wp-json\/wp\/v2\/users\/12710"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/dansarran\/wp-json\/wp\/v2\/comments?post=14"}],"version-history":[{"count":2,"href":"https:\/\/blogs.oregonstate.edu\/dansarran\/wp-json\/wp\/v2\/posts\/14\/revisions"}],"predecessor-version":[{"id":17,"href":"https:\/\/blogs.oregonstate.edu\/dansarran\/wp-json\/wp\/v2\/posts\/14\/revisions\/17"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/dansarran\/wp-json\/wp\/v2\/media?parent=14"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/dansarran\/wp-json\/wp\/v2\/categories?post=14"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/dansarran\/wp-json\/wp\/v2\/tags?post=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}