The points raised are certainly valid from an enterprise networking
standpoint, and don't fall on deaf ears, but we should keep things in
perspective. To provide the aforementioned features would be
relatively uncharted territory in the cloud orchestration world (at
least not considering vendor provided networking solutions that only
handle the network part of the equation), so while it would be good to
aspire to providing those things, it should be no surprise that the
platform works that way and lacks such features.

For further perspective, keep in mind that cloud orchestration in
general has been a pitch to software developers and management for
"easy infrastructure". Cloud consumers are end users, web developers,
application developers, so again it should be no surprise that the
product provides features that cater to that, rather than providing
the bells and whistles that a network admin would want to see in their
infrastructure. CloudStack was never built to be pitched to network
teams as a cure for managing their infra deployments, the only cloud
product providers doing that are network vendors who have cloud
networking products. This is of course why a VPC needs IPs defined, as
applications care more about how to serve up a web page than network
engineering and managing distinct layer 2 and 3, so the whole network
stack is sandwiched into a simple orchestration mechanism that gets
the application what it needs.

In designing and deploying cloud, the most common complaint I see from
people who are infrastructure maintainers is "why can't I just build
the infrastructure the way I want and then have it orchestrated?".
Unfortunately, we can't just automate and integrate with anyone's pet
design. CloudStack supports many novel and custom network designs
simply by allowing the option of letting you manage the network
hardware and being hands-off (shared/public networks), while also
being pluggable to allow vendors to take over whatever features and
they wish. I've seen some pretty advanced overlay networking provided
through third party plugins to CloudStack that take over all network
functionality and provide more.

What's really being asked for here is for CloudStack to provide and
maintain a fully fledged and featured router distribution in its
provided virtual router. It's an admirable project to have if we can
get support for it. My guess is there's a bit of a disconnect in
interest though, because many (but not all) enterprises who want
CloudStack for infrastructure automation are skeptical about a VM as
software router and prefer to bring in aforementioned enterprise
vendors who have their own plugins. People who provide cloud hosting
and other services tend to use the routers, but their interest in
enterprise level routing and redundancy varies greatly, and their
customers are designing their apps to be resilient to infrastructure
loss (e.g. most AWS customers). That's of course not entirely the
whole truth, as is evidenced by the work we are seeing on redundant
routers, but I do believe that's why we haven't seen these things from
the beginning. They just haven't been all that important to the target
customers, even though infrastructure engineers are used to providing
them.

So now comes my philosophy. In the end, I think the great thing about
open source communities is that if there's the right level of
interest, it will happen.  I'm the kind of person who feels a pang of
stress at the idea that something I work on can't be all things to all
people, but after building a hosting business over the last few years
I've begun to realize that it's really only practical to try to be
good for a subset of the market and focus on that. You'll never please
everyone, there are limits to what you can accomplish, and sometimes
it's OK to just concede that your product is not going to work for
everyone. If you don't, you'll spread yourself too thin and fail
everyone. In order to make something great you have to have a limit on
your scope. That's not to say you don't listen to your customers, but
you sometimes have to make hard choices on who to listen to and who to
upset.

None of this should be taken as a discouragement to the topics at
hand, but again as someone to takes it personally when I don't deliver
I wanted to provide some follow up to address the "rant" and try to
provide perspective on why the things are the way they are.

On Sat, Feb 21, 2015 at 1:58 PM, Somesh Naidu <somesh.na...@citrix.com> wrote:
> Adrian,
>
> Rant or not, I believe you have raised a valid point and reflect certain 
> group of peoples requirement.
>
> Based on your requirement, I believe you are looking for something like 
> Vyatta.
>
> Regards,
> Somesh
>
> -----Original Message-----
> From: Adrian Lewis [mailto:adr...@alsiconsulting.co.uk]
> Sent: Friday, February 20, 2015 8:50 PM
> To: us...@cloudstack.apache.org
> Subject: RE: Network QoS (not bandwidth limiting)
>
> Tempted to suggest some sort of special interest group where networking
> people can have some input into the dev process despite not necessarily
> being able to produce any code themselves. As an example, Schuberg Philis
> have recently done some great work on the redundant VPC VR but to a
> network person, this sort of functionality is almost taken for granted
> (please don't take this as a lack of appreciation). Similarly, the lack of
> end-to-end QoS for applications running on ACS seems to me at least to be
> a fairly significant oversight. ACS is known as having very flexible
> networking compared with some of the alternatives but there does still
> appear to be an enterprise focus on most elements that a 'typical'
> developer (dare I say it, web developer) faces but more of a home network
> approach to the networking side (aside from some pretty impressive niche
> features).
>
> We shouldn't need to rely on proprietary 3rd party products to provide a
> similar level of versatility for networking in ACS in my opinion. It seems
> bizarre to me that we have load balancing, distributed routing & ACLs with
> the OVS controller, PVLANs for isolation,  etc, but yet still don't have
> what I would consider basic functions such as better control over NAT,
> firewalling, routing (no dynamic routing protocols at all), IPsec, having
> to specify IP related attributes to what should simply be L2 constructs
> (why does a VPC need to be given a CIDR?!?) etc. AWS had a similar issue
> that lead to the VPC being introduced - enterprises consistently rejected
> the weird and illogical way that they did networking back in the day that
> was overly focussed on web/cloudy workloads.
>
> This sounds like a rant and to an extent it is but I'd like to turn it
> into a positive. I feel fairly helpless when the typical response to
> feedback like this is that I should just contribute code. There are a
> number of people that embrace the concept that the community should be a
> collective of not just developers, but at the same time it's pretty
> difficult to feel part of a community that's run almost uniquely by
> developers; it's even a bit intimidating at times. I've seen too many
> commercial companies that abandon innovation in favour of satisfying the
> 'large account' RFC/RFPs and in my opinion the same may apply to a project
> driven largely by the needs of those that can contribute code.
>
> To flip the concept on its head, it would be like a network guy creating
> an amazing cloud orchestration platform but where you can only run centos
> 6 with a LAMP stack - yes this might work for a lot of people (and it
> would likely only be adopted by those people) but for those that just want
> to do something a bit different, it would be a fairly frustrating
> experience.
>
> Am I simply being a spoilt kid here or is there room for input that might
> be constructive? Is there anyone here on the list with a networking focus
> that can corroborate these concerns?
>
> Adrian
>
> -----Original Message-----
> From: Somesh Naidu [mailto:somesh.na...@citrix.com]
> Sent: 20 February 2015 18:31
> To: us...@cloudstack.apache.org
> Subject: RE: Network QoS (not bandwidth limiting)
>
> I don't think we can. QoS in CS is mostly throttling traffic on the
> virtual interface.
>
> Regards,
> Somesh
>
>
> -----Original Message-----
> From: len.bellem...@alternativenetworks.com
> [mailto:len.bellem...@alternativenetworks.com]
> Sent: Friday, February 20, 2015 5:18 AM
> To: us...@cloudstack.apache.org
> Subject: Network QoS (not bandwidth limiting)
>
> Hi All,
>
> Does anyone know if it's possible to do network QoS in Cloudstack?  I
> don't mean bandwidth limiting, but rather, prioritising different traffic
> types for voice, etc.
>
> Thanks
> Len

Reply via email to