Hi,

On Wed, Nov 13, 2013 at 5:11 AM, Steve Wilson <steve.wil...@citrix.com>wrote:

> Hi All,
>
> As we ramp towards freeze on 4.3 and start talking about 4.4, I thought it
> would be fun to queue up a discussion here on the list before Collab next
> week.
>
> What do you envision in the next MAJOR release of CloudStack?  Call it 5.0
> or whatever you like, but


If we're not changing/breaking APIs and since we had adopted semantic
versioning, we should not change the major version.


> what would you like to see there?  What would you change?


Few things I'm personally looking forward to is to have CloudStack have
better abilities and ease for controlling containers (lxc using docker or
what have you) and a being able to act as a container coordinator between
baremetal/virtual machines. I guess this is not a new request and we know
ACS already supports LXC but I would like to use ACS as a tool that works
for me to configure, deploy and manage containers using docker. In essence,
we can have something like a recipe, a DSL or infra-management-as-code to
automate infrastructure at a higher level just like we use Puppet or Chef,
we could have something for our infrastructure that just works.

 What would you enhance?


Probably next iteration of cloudmonkey and add tests (in my free time).


> Are there big bets we should be placing as a community?
>

There is a lot of architectural debt that CloudStack is paying for, maybe
we could introduce and implement cloud engine, new api services and the
other next gen stuff that we had discussed in that past; I would like to
contribute if that happens.

The cluster management service and the way agents and ACS mgmt server
communicate can be improved, things like Raft could be implemented as our
consensus problem is not solved (in case of network/io issue, the agents
and ACS mgmt server may have different view of the world, for example).

The codebase is monstrous, we can maybe bet of splitting every part as a
plugin and maybe move some code to other languages that are interoperable
and run on JVM like Scala. One motivation for this is the fact that a lot
of infrastructure code in the last one year has been written in Scala which
works perfectly with existing Java based ecosystem. Since I've some
experience of Scala and ACS's API layer, web services, plugin system, ACS's
ORM and build system I can think refactoring and rewriting stuff in Scala
would greatly reduce a lot of code while it would be still interoperable
with the rest of the components.

If you think about ACS from a top level bird's eye view, ACS is a big
resource consuming poorly written web app that takes in some request, spits
answers for read queries (sync commands) or enqueues in its job queue
(async jobs) and stores information what it knows about (from MySQL) and/or
cache (in/via DAOs). There are a lot of moving parts and SPOFs. If all
these components could be a ran as a separate service which could run on
different or same server, they could be cleanly separated and they can
become more testable, easier to understand, enhance and develop.

Just my views :)

Regards.



>
> Feel free to post any thoughts here and I'll look forward to talking to
> many of you in person at Collab next week.  You are coming to Collab, right?
>
> -Steve
>
> Steve Wilson
> VP, Cloud Engineering
> Citrix
> twitter: @virtualsteve
>

Reply via email to