A (Very) Minimal Charm

Aaron Bentley aaron.bentley at canonical.com
Thu Dec 1 16:27:45 UTC 2016


I hope that as you implement this, you avoid making fat charms.  Can you
use "resources" for this?

Aaron

On 2016-12-01 08:39 AM, Marco Ceppi wrote:
> On Thu, Dec 1, 2016 at 8:28 AM Free Ekanayaka
> <free.ekanayaka at canonical.com <mailto:free.ekanayaka at canonical.com>> wrote:
> 
>     On 1 December 2016 at 13:53, Marco Ceppi <marco.ceppi at canonical.com
>     <mailto:marco.ceppi at canonical.com>> wrote:
> 
>         On Thu, Dec 1, 2016 at 5:00 AM Adam Collard
>         <adam.collard at canonical.com <mailto:adam.collard at canonical.com>>
>         wrote:
> 
>             On Thu, 1 Dec 2016 at 04:02 Nate Finch
>             <nate.finch at canonical.com <mailto:nate.finch at canonical.com>>
>             wrote:
> 
>                 On IRC, someone was lamenting the fact that the Ubuntu
>                 charm takes longer to deploy now, because it has been
>                 updated to exercise more of Juju's features.  My
>                 response was - just make a minimal charm, it's easy. 
>                 And then of course, I had to figure out how minimal you
>                 can get.  Here it is:
> 
> 
>             This is neat, but doesn't detract from the bloat in the
>             ubuntu charm.
> 
> 
>         I'm happy to work though changes to the Ubuntu charm to decrease
>         "bloat".
>          
> 
>             IMHO the bloat in the ubuntu charm isn't from support for
>             Juju features, but the switch to reactive plus conflicts in
>             layer-base wanting to a) support lots of toolchains to allow
>             layers above it to be slimmer and b) be a suitable base for
>             "just deploy me" ubuntu.
> 
> 
>         But it is to support the reactive framework, where we utilize
>         newer Juju features, like status and application-version to make
>         the charm rich despite it's minimal goal set.
> 
> 
>     Yeah, and I think this is a good thing.
>      
> 
>         Honestly, a handful of cached wheelhouses and some apt packages
>         don't strike me as bloat
> 
> 
>     No it's not per-se. However I think this highlights a more general
>     issue with the current implementation of the reactive stack. It's
>     not only the ubuntu charm that has slowed done, it's any
>     reactive-based charm, because the steps required to "setup" reactive
>     take longer than they used to.
> 
> 
> The problem we're hitting with wheelhouses is exactly the one that snaps
> aim to solve:
> 
> - apt packages are not cross distro, and we have reactive centos charms
> - apt packages lag a bit meaning we can't get consistent features even
> between trusty and xenial, let alone xenial and tip
> 
>     I see a couple of (possibly alternative) ways to improve the situation:
> 
>     1) Make sure the dependencies of the base reactive layer are
>     packaged, that should be much faster than pip install, and fall back
>     to pip only for what's not there (i.e. dependencies added by the
>     consumers of the base layer). Also, package the base layer itself.
> 
> 
> I'm very keen on a development in the snap world, where an unconfined
> "classic" style package would be available. This means we could snap up
> all the dependencies of the basic layer for every architecture and skip
> the setup phase for reactive. I think this is probably our best bet
> going forward.
>  
> 
>     2) Add support for images, so when you deploy some vanilla charm
>     there's an associated "pre-built" image that will be very fast. I
>     guess this is in the juju road map anyways.
> 
> 
> Sure, a build step is an interesting one, but it still incurs the same
> wait for a setup, you just don't feel it as much.
>  
> 
>     We always need to keep in mind that this experience will be compared
>     with things like Kubernetes and Docker, and speed-y deployments
>     really unlock velocity when iterating on charm development (think
>     for instance running integration tests).
> 
> 
> Speed is just one facet of the experience, though an important one. For
> the speed of Kubernetes we win, hands down: 10 mins to deploy a full k8s
> cluster (with Juju) is only really outpaced by SAAS. I know that's not
> the point you were making, but it's the true speed comparison of what
> we're doing.
> 
> That being said, we're very keen on making charm development, and
> deployment, faster. Reactive 1.0 was a first leap in that direction, as
> we round off work in 2.0 and leveraging other technologies like
> unconfined snaps, we can start to speed up the bootstrap process of
> reactive charms.
> 
> I'll file bugs to track these items
> 
> Marco
> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/juju-dev/attachments/20161201/414aee4e/attachment.pgp>


More information about the Juju-dev mailing list