Top Banner
北大科研沙龍 張民傑 [email protected]
16

北大科研沙龍 - Openstack Titan

Jul 13, 2015

Download

Technology

Peter Cheung
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 北大科研沙龍 - Openstack Titan

北大科研沙龍

張民傑

[email protected]

Page 2: 北大科研沙龍 - Openstack Titan

Project Titan

1) Openstack mgmt tool

2) programming language

Page 3: 北大科研沙龍 - Openstack Titan

我的研究項目 Titan

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

在此軟件之上加入Titan語言

Page 4: 北大科研沙龍 - Openstack Titan
Page 5: 北大科研沙龍 - Openstack Titan
Page 6: 北大科研沙龍 - Openstack Titan
Page 7: 北大科研沙龍 - Openstack Titan
Page 8: 北大科研沙龍 - Openstack Titan

Titan架構(管理軟件)

Titan

Server

Storage Network Compute

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

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

Java

object

stream

restful restful

MySQLHibernate

Page 9: 北大科研沙龍 - Openstack Titan

Titan語言的設計目的

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

用語言去定義雲端的Logic

Page 10: 北大科研沙龍 - Openstack Titan

用語言去設計cloud

Titan

語言Titan

Engine雲

We changed the landscape !!!!

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

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

Page 11: 北大科研沙龍 - Openstack Titan

Example 1

CreateVM(){

var vm1 as VM

vm1.cpu=100

vm1.ram=1024

return vm

}

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

Page 12: 北大科研沙龍 - Openstack Titan

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

CreateHotSpotVM(){

for x = 1 to average_loading/average_cpu

createVM()

}

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

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

Page 13: 北大科研沙龍 - Openstack Titan

所以

Titan會自帶一個統計引擎

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

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

Page 14: 北大科研沙龍 - Openstack Titan

新型語言concept

我叫它cloud oriented language

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

Page 15: 北大科研沙龍 - Openstack Titan

重新定義傳統的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……

}

Page 16: 北大科研沙龍 - Openstack Titan

重新定義傳統的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