淡江大學 - 網站開發應用技術及雲端應用技術

44
網站開發應用技術及雲端應用技術 2013.12.14 @淡江大學 Taien Wang<[email protected]> 時間軸科技股份有限公司

description

淡江大學行動應用實務課程

Transcript of 淡江大學 - 網站開發應用技術及雲端應用技術

網站開發應用技術及雲端應用技術

2013.12.14 @淡江大學

Taien Wang<[email protected]>

時間軸科技股份有限公司

你們有想過自己想在網路上做什麼嗎?

一般應用

• 留言板

• 公佈欄

• 會員系統

• 部落格

• 相簿

• 聊天室

• …

基本上你有能力自己開發以上的東西你已經不愁吃穿了

進階應用

• WebMail

• 論壇

• 電子商務

• 企業資源規劃 ERP

• 顧客關係管理 CRM

• 電子公文系統

• …

有你想做的嗎?

社群網站

• Facebook

• Plurk

• Twitter

• Foursquare

• …

如果你還找不到一個目標

• 看一下流行趨勢

– http://www.alexa.com/topsites/category

• App Store 排行榜

• 各比賽的得獎作品

• …

如果,假設…

有你想做的

那我們如何開始

當今網路常用技術

層次 系統

直譯程式語言JavaScript, Node.js, Coffee Script

Python, Ruby, PHP, Perl, VB

編譯程式語言 C#, VB .NET, Java, Object-C

程式語言 ASM, C/C++

資料庫關聯式資料庫: Microsoft SQL Server, MySQL, Orcale

NoSQL: MongoDB, CouchDB, Redis, Memcahced

PHP

• 原稱 Personal Home Page

• 1997: PHP: Hypertext Preprocessor

• 腳本語言(Script Language)

• 伺服器端執行(Server side)

• 可內嵌於HTML(HTML-embedded)

• 可以 命令列(CLI)執行, 或產生圖形化(GUI)介面

• 目前最新版本為 5.5.7

– 支援 finally

– foreach 支援 list

– generator

– constant array/string dereferencing

• 跨平台, 效能差

• C語言基礎

• 硬體需求低

• 原始碼公開

PHP

• 硬體需求高

• 要有 JAVA 基礎

• 效能較好

• 大型平台, 軟體採用

JSP

•微軟平台

• C#, VB.NET, J#..

•功能多, 但要了解才

能運用

ASP.NET

PHP vs JSP vs ASP.NET

除了寫一般的Web應用程式也可以寫視窗

• 官網: www.php.net

• 參考文件

– 英文, 中文

介紹PHP網站與相關參考資料

• 網頁設計基礎

– 表格切版, CSS切版, 前端 JavaScript 控制

• 程式基本起手式與語法

• 上傳檔案

• SQL 指令

– CRUD

– 新增, 查詢

– 修改, 刪除

• 影像操作

開發相簿要具備哪些技能

在不管架構下開發了相簿系統

光鮮亮麗的外表下

• 發生了程式碼與HTML糾結不清的狀況

樣板引擎 – 簡介(1/2)

資料來源:

http://www.php5.idv.tw/documents/smarty20031225/

樣板引擎 – 實例 (1/2)

程式設計師我徘迴在詩意的邊緣我的熱愛可以走得更遠

節錄至: PHP 頂級框架 Zend Framework 開發實戰

M-V-C一般應用(1/2)

Model View

Controller

Browser

Dispatcher

Routes

Web Server

MySQL一有錯誤丟出例外

統一處理錯誤

統一處理客戶端安全問題XSS, CSRF…

統一處理伺服器安全問題SQL, 命令注入…

M-V-C進階(1/2)

Model View

Controller

Browser

Dispatcher

Routes

Web Server

Business

Data Object

Data

MySQL Cache

PHPLib’sTemplate/Smarty/

Savant…

PHP MVC Framework – 幾套流行框架(1/3)

• Zend Framework

• Pahlcon

• CakePHP

• Yii

• Symfony

• …

PHP MVC Framework – 建議(2/3)

• 使用任何框架前先了解

– 藍圖

– 生命週期

– 特性

– …

資料來源:

Zend Framework in Action

PHP MVC Framework – ZF 細節(3/3)

資料來源:

Zend Framework in Action

簡潔是智慧的靈魂冗長是膚淺的藻飾

- 莎士比亞

KISS(Keep It Simple, Stupid)

好不容易把程式與樣板分離也建好了一個網站現實才正要開始…

現實環境

網站常遇到的問題 – 問題

• 網站遇到大流量怎麼辦?

• 我的資料庫似乎不給力

– 連線數不夠

– 資料太多

• 網站上傳圖圖片要當場縮圖影響前端回應

• 聊天室可以再更即時嗎

• 結合熱門服務

網站常遇到的問題 – 解法(1/2)

• 網站遇到大流量怎麼辦?

– PHP 程式碼快取(OPCACHE, APC)

– 程式碼快取

– 資料快取

– 考慮 CDN(Akamai, 网宿, Amazon S3)

• 資料庫連線數不夠

– 透過快取減少資料庫連線

– 用完即關或考慮連線池

– 如果是 MySQL 考慮升級 MySQL 企業版

• 資料庫速度不夠與資料太多

– 讀寫分離

– 主從複製(Replication)與分片Sharding

– 拆庫與拆表

網站常遇到的問題 – 解法(2/2)

• 網站上傳圖圖片要當場縮圖影響前端回應

– 批次處理

– 任務伺服器(job server: gearman…)

• 聊天室可以再更即時嗎

– TCP/UDP

– Websocket

– Advanced Message Queuing Protocol, AMQP

– …

網站常遇到的問題 – 未雨綢繆高擴展性網站的50原則(1/2)

• 第1章 化簡方程

– 原則1:不要過度設計

– 原則2:設計時就考慮擴展性(DID方法)

– 原則3:把方案一簡再簡

– 原則4:減少DNS查找

– 原則5:盡可能減少對象

– 原則6:使用同一品牌的網絡設備

• 共有12章

• …

高擴展性網站的50原則(2/2)

資料來源:

Scalability Rules: 50 Principles for Scaling Web Sites

大型網路系統規劃

高層次的網路架構

Internal Networks

Demilitarized Zone (DMZ)

Compute Resource Pool (Virtualization)

Systems Server Farms

Networking Component

AP Dispatcher Clusters Static File Gateway Clusters

Storage Resource Pool

Firewall

Load Balance Devices

Management & Monitor Center

雲端是什麼?

雲深不知處?

雲端本質

38

XML Encryption

TLS

XML Signature

+

雲端運作模式(1/2)

39

雲端運作模式(2/2)

40

大家所知道的雲端廠商?

近代知名的雲端廠商

SaaS

軟體即服

PaaS

平台即服務

IaaS

基礎架構即服務

雲端運算五大特色

• 多租戶(Multitenancy)

• 巨大的擴充性(Massive scalability)

• 靈活性(Elasticity)

• 用多少付多少(Pay as you go)

• 自我提供其他資源(Self-provisioning of resources)

Multi-tenant hosting farm

Company A

PeopleEnterprise Metadata

Search

Services

Excel Calculation Services

Word Services

PowerPoint

NotpartitionedPartitioned services

Company B Authenticated sites (collaboration) Anonymous Internet sites (published)

Company C Company D Company E

Business Data Connectivity

Word Services

InfoPath Access Services

Subscription Settings Service

Word Viewing

Company C Company D Company E