[User-committee] [app] What is an App?

Michael Krotscheck krotscheck at gmail.com
Wed Jun 22 18:29:29 UTC 2016


Good question! Let me use a simple Wordpress Blog as an example.

By itself, WordPress is compute agnostic; It doesn't care if it runs on
metal, in a container, or in a VM. It only cares that it has a MySQL
database available, as well as a web server and a PHP runtime. We can't,
and shouldn't, help you with that, because this problem has already been
solved. So let's look at some examples where we can help:

   - If you'd like to authenticate to your Wordpress Blog using keystone
   (suspension of disbelief please), we'll provide you with a PHP SDK
   recommendation, some examples on how to use it, training (if feasible), and
   recommend that you check the wordpress plugin guide on how to properly
   integrate the two.
   - If you'd like to automatically deploy your Wordpress Blog using
   Ansible, we'd step back. Installing wordpress is the same whether you're
   installing on a VM or on metal.
   - If you'd like to provision the VM for your blog, we'd refer you (since
   you're already using it) to the Ansible Core Cloud modules, which contain
   tons of examples already on how to launch an instance, setup a network, and
   attach a volume.
   - If you discover that the Ansible Core Cloud modules don't support
   Trove, and you'd like to add that, we'd provide you with documentation for
   shade, our FirstApp examples, a link to the Ansible Core Contributor
   documents, a large squeaky rubber mallet, and Monty's personal home address.

Michael
Rubber mallet will take 6-12 weeks for delivery, aka Monty needs a head
start.

On Wed, Jun 22, 2016 at 11:26 AM Jimmy Mcarthur <jimmy at tipit.net> wrote:

> How would classify apps (and where would you point users) that only use
> OpenStack as infrastructure and don't touch the API's?
>
> Jimmy
>
> Michael Krotscheck wrote:
>
> Let me try to clarify:
>
> I'm proposing that the App Ecosystem WG does not try to define the meaning
> of "App" at all. The term is too generic, anyone can overload it to mean
> what they want. Case and point: You (the App Catalog) already have a
> definition.
>
> We need to sidestep this argument altogether, and focus instead on what an
> "app" uses. We will train and support you on how to talk to the OpenStack
> API's. In many cases, we'll be able to refer you to existing tools and/or
> SDK's (such as Ansible and/or python-openstacksdk) that have already solved
> 80% of your problem. For anything else, we'll happily refer you to the
> correct community.
>
> Does that provide the necessary context?
>
> Michael
>
> On Wed, Jun 22, 2016 at 9:34 AM Fox, Kevin M <Kevin.Fox at pnnl.gov> wrote:
>
>> I've worked for the OpenStack Applications Catalog project for a while,
>> and we've been using a definition of OpenStack Application closer to "Is it
>> an app deployed on OpenStack instances". For a long time now.
>>
>> There is software, and there are Apps. "Apps" got redefined in most
>> peoples minds when mobile world hit.
>>
>> Software is something that is hard to install. The installer asks a lot
>> of questions, it needs to be tuned, etc.
>>
>> An App, is something my grandmother or young child can deploy and use
>> with a click or two. Thats something OpenStack needs more of.
>>
>> If you go ask random person on the street what an App was, I'd be willing
>> to bet you would get a definition that is similar the mobile one. "I go to
>> the store/catalog/market, search, click install, and then go to "run" and
>> start working/playing".
>>
>> So I disagree with the definition you laid out as a general term. It is
>> unintuitive in that form. I'd suggest any tagging sorts of endeavours use a
>> different or more specific term like OpenStack API Application or something.
>>
>> As for what the App Ecosystem WG wants to focus on, I think its great to
>> focus on getting software talking to OpenStack via apis.  No issue there. I
>> just want to make sure that we don't cause further confusion with multiple
>> projects using the same term drastically differently. Its something users
>> have suffered a lot with already.
>>
>> Thanks,
>> Kevin
>> ------------------------------
>> *From:* Michael Krotscheck [krotscheck at gmail.com]
>> *Sent:* Wednesday, June 22, 2016 9:16 AM
>> *To:* user-committee
>> *Subject:* [User-committee] [app] What is an App?
>>
>> As asked 2 meetings ago (and then totally forgotten until I was reminded
>> last week), I wrote down my thoughts on the purpose on the App Ecosystem
>> WG, as well as how I believe an "App" should be defined. I'd like to open
>> the following for discussion, as an update to the mission statement of the
>> App Ecosystem WG. We'll also discuss it on the phone on Monday.
>>
>> =====================
>> TL/DR:
>> - "To create an ecosystem where a diverse array of applications built for
>> OpenStack can thrive."
>> - "An OpenStack App is a software project that relies on an OpenStack
>> SDK."
>>
>> Our purpose is to create an ecosystem where a diverse array of
>> applications built for OpenStack can thrive.
>>
>> A simple statement, which leaves too much undefined. What exactly is an
>> OpenStack App? Is it a deployment tool? Is it a web UI? Is it an app
>> deployed on OpenStack instances? Is it a cron job? Who is the user? Is it a
>> Heat template? Which cloud are they using? Has that cloud been customized?
>>
>> As the App Ecosystem Working Group, we believe that the common, defining
>> element of an "OpenStack App" is not whether it is deployed on OpenStack,
>> but whether it relies on direct access to the OpenStack API's. For
>> example, we consider Ansible to be an OpenStack app, as its OpenStack
>> cloud core modules rely on shade's API implementations.
>>
>> A more nuanced example is that of Pantheon. Their wordpress/django
>> provisioning may be considered an OpenStack app, if they use the magnum API
>> to provision their customers' requested instances. Wordpress, however,
>> would not be, as it is unaware of its compute environment.
>>
>> We in the App Ecosystem WG cannot, and should not, predict what our users
>> want to do with OpenStack; the best we can do is provide the tools and
>> training they need to meet their own business objectives. Tools means
>> SDK's. Training means tutorials, classes, and sample projects.
>>
>> "An OpenStack App is a software project that is built on an OpenStack
>> SDK."
>>
>> What is an SDK? It is a set of tools, in a specific language, that are
>> easy to use for an engineer working in that language. More importantly, it
>> supports applications that are built with OpenStack in mind, but _outside_
>> of the CLA walled garden. An SDK should make an effort to adhere to the
>> tooling and conventions common in the community it is trying to serve.
>>
>> Furthermore, SDK's often define usage patterns. Some might be focused on
>> building User Interfaces, others may be focused on CLI and automation
>> tooling, yet more are there for API's and business logic. Usage patterns
>> vary greatly, and it is worth neither the time nor the effort to
>> provide exhaustive support for every potential use of every API call ever.
>>
>> Each SDK knows its community; it is not our job to prescribe that
>> community's needs, nor to tell them what that SDK should, or should not,
>> support. If asked, we may certainly help them refine their mission, however
>> providing any form of engineering support, or a
>> one-size-fits-all certification program, is well out of scope (And futile
>> besides).
>>
>> Training and Tutorials, however, are our responsibility. Since we have
>> very limited resources, we should set some acceptance criteria for FirstApp
>> and Training resources. In this, as in all things Open Source, contribution
>> is the only criteria that matters: Is someone willing to do the work?
>>
>> =====================
>> Thoughts? Edits? Add them here:
>> https://etherpad.openstack.org/p/app-ecosystem-wg-mission
>> =====================
>>
>> I've got a few more thoughts on what I feel makes a good SDK which came
>> out of writing this, but they're not really relevant to the scope of the WG
>> (They're super relevant to my JS SDK work though). Some of the SDK's we
>> train for will live in the Big Tent, others outside it, yet ultimately
>> they're all outside of our control. My criteria break down as follows:
>>
>> "A Good SDK ..."
>> - ...meets a software engineer on their own turf.
>> - ...provides convenience methods for the 80% most common use cases.
>> - ...provides low-level API access for custom calls.
>>
>> That's it for me. Let the discussion begin!
>>
>> Michael
>>
> _______________________________________________
> User-committee mailing listUser-committee at lists.openstack.orghttp://lists.openstack.org/cgi-bin/mailman/listinfo/user-committee
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/user-committee/attachments/20160622/6effd95c/attachment.html>


More information about the User-committee mailing list