What is Titan?

Titan is a cloud research project from Peking University – it aims to develop a new programming language that unify the control of cloud, we will use openstack to be the first cloud platform that runs titan engine.

What is our Vision?

We think the cloud is not “dynamic”. When you create an infrastructure on AWS or Azure, you can scale it out and scale it up, but can you scale it by using a mathematic formula or a programming way based on a real time behavior of your cloud, we believe you can’t do that. By using a new programming language to describe the cloud, we can have many benefit, such as:

1. We can real time modify the cloud in a more flexible way. For example, if I have 10 vm instances, and i want to order my cloud to scale it out if it is under DDos attack and if all instance’s CPUs is running higher then 80%, then we can execute the following code to titan

if VM.cpu.average>=80 and VM.attack==true then
    VM.create(Attack.size/10)
end if

As you can see, we can have a lot of combination to describe the cloud, and the cloud will act based on my own *logic*, not but a batch of settings, this giving it a soul.

2. Whatever how many advanced settings you can have in the cloud, it must not fit all scenarios. Nowadays, if you deploy an app on cloud (AWS/Azure), you have to trust their infrastructure, you got no way to test it. If you webapp is under attack,  attack can be in so many different forms, in traditional cloud, you cannot define a effective reaction plan because “settings” are limited, whatever how many “settings” your cloud provides, but if the cloud engine support a programming language to do it, language is unlimit. You can have unlimited reaction plan that defined to your cloud to fit for your own scenarios.

3. If the cloud works based on a programming language, we can debug it. This will create a completely new software market : “cloud debugger”, “cloud optimizer”, “cloud profiler”. Programmer will love it because they will extra ability to mix up the cloud infrastructure into their application design, they can dynamically adjust the cloud infrastructure to enhance the performance/security/reliability.