Skip to content

Commit

Permalink
Merge pull request #19 from Lidemy/Week14
Browse files Browse the repository at this point in the history
Week14
  • Loading branch information
zoeaeen13 authored Jul 21, 2021
2 parents f1a0f3d + 794385c commit 18b5a13
Show file tree
Hide file tree
Showing 3 changed files with 206 additions and 2 deletions.
Binary file added homeworks/week14/hw1-tinyurl.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
184 changes: 184 additions & 0 deletions homeworks/week14/hw2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
## 部屬心得

[部屬成果:Week11部落格](http://b612isreal.tw/blog/index.php)
資料庫測試登入 帳號:admin 密碼:admin

這作業看其他同學一兩天就搞定
但作業二整個部屬花了我四天的時間

我第一選擇毫不猶豫地用GCP
從頭開始研究起GCP完全是個無底洞(主機也算是個專業吧)
有點盲目的不確定地試著去拼湊我要的樣子
但是實在是太多東西了,自己對於主機的基本觀念又不太夠
盲目探索下效率確實有限,但不可否認也意外認識一些東西

同學、或指定文章的學長姐筆記,甚至是老師的檢討影片都使用AWS
雖然虛擬主機概念差不多,但GCP有著些微的差異
加上基礎觀念不熟,我幾乎是沒有什麼資源可以參考
加上網路上的其他文章相當發散,
各種方法都有,若要重頭研究需要花大量的時間

中間一度想要放棄GCP,直接跟著影片AWS做
但又覺得很不甘心

可能程式大神的保佑吧
我一步一步的建置到教學筆記的後半段
慢慢地有資源可以參考指引
做起來也相對順利
但操作上也稍微不同需要另外去試不同的方法
(GCP的SSH可以在瀏覽器內執行或另外下載gcloud SDK,所以夾帶金鑰的方式不太一樣)

跌跌撞撞的終於完成了
老實說我完全不覺得這次我的方法是**有效率的學習**
但是這整個過程好像是我學習程式之路上必須的經歷
相信未來可能也會碰到

### 心境疑問

我覺得自己太容易受 BUG 影響

初步審閱問題,**覺得自己毫無頭緒無從下手無法解決時**
(這感覺其實不常出現,可能關係到當天狀態,參7/14進度)

我覺得**我的世界愁雲慘霧**
隔天完全不想碰電腦,沉浸在其他娛樂影片中不想面對
要我解決問題?好像就是要我去面對那注定會失敗結果一樣
就算逼自己做其他課外支線也很沒勁

當真的面對問題,慢慢抽絲剝繭最終解決了
然後我的世界又豁然開朗了!
心情完全不同了!

我覺得這樣受影響的情緒好像不太穩定
想請教助教有過類似的感覺或建言嗎?
是不是我程式寫太少,面對的BUG太少還沒辦法泰然自若😅


### lidemy learning system 部屬每日進度紀錄

#### 2021-07-11 人果真還是需要壓力
網站佈署算是滿期待的一個章節
之前自己架網站的時候
(歡迎蒞臨我的部落格Immortalité,
只是近幾個月專心寫CODE後,就暫時停更了)

那時就有碰到買主機、買網域的作業,
雖然wordpress很多都一鍵式的安裝連結沒什麼難度
但是以我不太會使用wordpress到現在
搞得他又肥又大,速度超慢,
一直很想讓他瘦身、換環境或從頭打造
如果這章節所實際接觸到的內容及使用感覺不錯
之後想先搬主機(合併到GCP),在慢慢看如何能讓網站效能更好

因為自己之前就有買HostGator虛擬主機加上GoDaddy網域了
這次就試用GCP的免費方案(手動設定VM執行個體,超低配的規格有點怕不夠用)
加上GoDaddy特價另外買一個網域(我還有一組優惠碼如果有需要可以私訊)

前置作業大概告一段落,接下來可能就是我完全不理解的暗黑領域吧....
(在開GCP的時候就一大堆不知道在幹嘛的東西ㄌ)

---

#### 2021-07-12 今天花了一整天,然後不太知道究竟在幹嘛

一直在研究GCP
一下Compute Engine 一下App Engine
然後又一堆我不清楚原理的東西 等等的
(我也可以將HTML 檔案丟到 cloud storage上 也能夠順利執行,這步就不用到deploy,所以原理?跟VM有關係?)

找不太到我符合我想要的資料
就跟著官方文件一步一步操作
下載Google Cloud SDK
一步一步建資料夾下指令
有成功跑出我丟上去的測試檔
但是他的教學及原理我就是不明白阿
藉由app.yaml檔去啟用?
server.js下的指令都不太明白原理 我要怎麼客製化

然後我需要資料庫,我又該如何連接到資料庫?

一整天的時間看似有些什麼,但又什麼都沒有
照這緩慢的速度我這周時間絕對不夠用

於是....

我快速預覽了指定文章
清一色都是AWS + ubantu
半路殺出個 ubantu 又是啥?
不用手動建置整個環境而可以方便執行的程式?

所以是我搞GCP整個方向錯了嗎?
應該也要在GCP裡找個類似ubantu 的套件程式去執行?
不然以我現在對主機的理解程度只是在茫盲忙的沒什麼效率?

**我整個不知道我做了什麼,做這些是不是值得的感覺**

明天再給自己半天到一天的時間去研究GCP
還是沒頭緒的話 就照著文章跑吧
照著文章跑至少現成的先弄好 未來對與虛擬主機應該會慢慢理解的
而且統一大家的步調 未來在設定上出現BUG也能壓到最低不影響基礎課程內的學習

但是會不甘心

---

#### 2021-07-13 盲目地摸索雖然無助,但能一步一步理解並打造這世界也算是有趣

嚴格來說今天也是沒什麼進度
但是延續昨天 GCP 一步一步好像跟指定文章(學長姐部署筆記)越來越像

主機其實只是分 GCP 跟 AWS (或其他)
但剛好GCP自己從頭花了很多時間在摸索這複雜的玩意兒
建完VM後,最後大概都是需要去執行LAMP

透過SSH去建置環境(ubuntu 系統、LAMP)
接著再去安裝UI介面的資料庫管理(phpmyadmin)
最後上傳檔案
大概就是這樣(應該吧?)

截至目前進度到
安裝phpmyadmin還有修改測試檔案都順利成功

但一天又過了,真是可惡,
真的是時間怎樣都不夠用
(還好下周是複習週,可以讓我稍微任性一下慢慢摸索)

雖然太多太多東西不懂到底在幹嘛
盲目地摸索也感到有點無助
但能越來越明白他的輪廓其實還算是有趣啦

❓截至目前進度到
安裝phpmyadmin還有修改測試檔案都順利成功

但是GCP有自己做瀏覽器超方便的SSH(不用金鑰)
以及下載到電腦上的gcloud SDK SSH (按幾下連到網路也不用金鑰登入 )
因為不斷的測試我這兩個都有使用
但是發現這是兩個不同的使用者在共用這個VM
還有權限問題,除非到root否則沒有權限修改檔案

於是我試著要使用FTP上傳檔案時
我到底是要用哪個使用者名稱與密碼(金鑰檔)❓
又該怎麼取得❓
這兩個使用者不能同步嗎❓或是我可以在任何平台上切換嗎❓

---

#### 2021-07-14 在興奮喜悅中瞬間跌落,腦袋直接登出

眼看部署不多都成功後(靜態能跑、動態能連接資料庫)
卻在上傳某一個網站裡的某個檔案中的sql語法執行不過沒辦法顯示
這個語法在之前XAMPP本地端跟老師架的mentor伺服器都沒問題
卻在這裡執行不了
我大略想一遍完全找不到原因甚至不知道從何下手(不是short_tag問題)
今天累ㄌ,有點絕望
最後一根壓倒我的稻草,讓我完全沒力氣再想了
掰掰7/14

看大家部署都一天輕鬆搞定
我搞個GCP摸索了好久
部署搞了三天,希望明天能抓出這個問題解決徹底結案

然後我還想玩玩看 GCP 上的 cloud SQL
搞不好可以不用特別去建置資料庫環境,
全部功能都能在GCP跑

24 changes: 22 additions & 2 deletions homeworks/week14/hw3.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,30 @@
## 什麼是 DNS?Google 有提供的公開的 DNS,對 Google 的好處以及對一般大眾的好處是什麼?
DNS(Domain Name Server)網域名稱系統,將機器理解的192.0.0.0等等的IP位址(IPv4與IPv6)轉譯為人好讀好記的特定英文組合,執行時使用者只要輸入特定的英文組合即可透過瀏覽器及伺服器轉譯成機器看懂的IP位址進而訪問。

一般DNS因為應付眾多的使用者,DNS重載通常會非常擁塞而降低速度
而Google 的 Public DNS 利用全球範圍的伺服器來達到效能與速度的改善及提高安全標準(減少層層的造訪)
對我們來說有使用體驗上的一大優點,同時也有資料蒐集的隱私顧慮

## 什麼是資料庫的 lock?為什麼我們需要 lock?

交易資料鎖定,當多筆資料同時讀取的時候,彼此會產生影響
例如A與B同時搶最後一張的票券,同時處理時可能會造成超賣的後果
透過lock(鎖定)可以讓先擷取(先進入頁面的)執行擷取,同時暫時關掉所有其他擷取請求(或可以說標記這個功能正在被讀取中)直到這次擷取完成
可以避免多方同時購物交易讀取資料等等所衍伸的競爭問題,但同時也要考慮有可會造成效能上的損耗。

## NoSQL 跟 SQL 的差別在哪裡?
關聯式資料庫與非關聯式資料庫(Not Only SQL)
NoSQL可以處理大量非結構化的資料,並且靈活運用
但也因為非結構化,缺少 SQL 的 ACID 標準,會讓維護上更加不容易


## 資料庫的 ACID 是什麼?
關聯式資料庫所具備的四項特性

Atomicity(原子性):交易中的所有指令按照順序及步驟執行,若其中出錯則回到最原先的狀態,來確保每次的擷取結果都是正確的(只有成立與不成立)。
*例如我要進行刷卡扣款,到最後一步時伺服器當機,此時交易狀態會回到我未結帳的狀態重新來過,而不會因為當機重來後重複扣款。*

Consistency (一致性):資料的完整性受到一定的規範,在交易時不會被破壞影響。

Isolation (隔離性):多筆擷取(交易)同時進行,未完成的交易資料並不會被其他交易使用,直到此交易完成。

## 資料庫的 ACID 是什麼?
Durability(持續性):寫入資料後,數據是永久存在的,不會因故障而改變。

0 comments on commit 18b5a13

Please sign in to comment.