Download - 北大科研沙龍 - Openstack Titan

Transcript

北大科研沙龍

張民傑

[email protected]

Project Titan

1) Openstack mgmt tool

2) programming language

我的研究項目 Titan

發展一套openstack的管理軟件, 取得一定的用戶數

在此軟件之上加入Titan語言

Titan架構(管理軟件)

Titan

Server

Storage Network Compute

1. Java object stream, 不用設計protocol, 不算快但足夠

2. Hibernate, 不用搞DB schema, 專心編程

Java

object

stream

restful restful

MySQLHibernate

Titan語言的設計目的

用語言去表達Infrastructure, 這樣會比template engine更為強大

用語言去定義雲端的Logic

用語言去設計cloud

Titan

語言Titan

Engine雲

We changed the landscape !!!!

1) Network有network搞,system有system搞,各自為戰2) 因為雲端架構是分開架設,所以optimize, monitoring,

attack planning等都要花額外力氣去做3) 雲變成PC一樣易搞

Example 1

CreateVM(){

var vm1 as VM

vm1.cpu=100

vm1.ram=1024

return vm

}

這麼簡單的例子,用腳本/Template已經可以做到

Example 2要用一些統計數字作處理

CreateHotSpotVM(){

for x = 1 to average_loading/average_cpu

createVM()

}

這種例子其實也可以用腳本做到,但開始比較煩和欠缺

統一,因為要自己寫統計引擎(Openstack),就算在AWS上面,也不可以把統計數字直觀地寫在語言之上。

所以

Titan會自帶一個統計引擎

Titan語言會把統計數Map到語言之變量之上

因語言和統計引擎結會,所以可以很好地處理同步問題和解決數字上的沖突

新型語言concept

我叫它cloud oriented language

重新用infrastructure的角度去定義傳統的OO concept

重新定義傳統的OO concept

OOP Cloud oriented programming

Variable 代表內存的一個區

int x;

代表內存的一個區也可以代表一

種類型的infra

Var vm:VM

Inheritance 代表內存區的架構繼承 代表infra的scale up

Operator

overloading定義variable的動作 代表為infra加入新的動作

Var lb:LoadBalancer

Lb ++ (){

createVM, adjust network

setting……

}

重新定義傳統的OO concept (II)

OOP Cloud oriented programming

Template Class <template1> x; Var vm:VM<Template1>

根據一個template去創建infra

polymorphism 不解釋 代表infra的grouping

Var vm:VM – Switch

代表它同時代表一個VM和switch