Commit graph

91 commits

Author SHA1 Message Date
joeduffy
9c1b72596c Write up a bit about Workspaces and Dependencies 2016-11-20 09:22:29 -08:00
joeduffy
14bce9804f Move aws/cf spec underneath a "resource" property
This changes the layout of the aws/cf extension to specify the CloudFormation
resource underneath a "resource" property.
2016-11-19 12:17:54 -08:00
joeduffy
a31e59fa3a Implement the aws/cf extension provider
This change implements the aws/cf extension provider, so that AWS resources
may be described and encapsulated inside of other stacks.  Each aws/cf instantiation
requires just two fields -- type and properties -- corresponding to the equivalent
AWS resource object.  The result is simply plugged in as an AWS resource, after
Mu templates have been expanded, permitting stack properties, etc. to be used.
2016-11-19 11:13:15 -08:00
joeduffy
ed0710dd0b Rename parameters to properties
The more I live with the current system, the more I prefer "properties" to
"parameters" for stacks and services.  Although it is true that these things
are essentially construction-time arguments, they manifest more like properties
in the way they are used; in fact, if you think of the world in terms of primary
constructors, the distinction is pretty subtle anyway.

For example, when creating a new service, we say the following:

        services:
                private:
                        some/service:
                                a: 0
                                b: true
                                c: foo

This looks like a, b, and c are properties of the type some/service.  If, on
the other hand, we kept calling these parameters, then you'd arguably prefer to
see the following:

        services:
                private:
                        some/service:
                                arguments:
                                        a: 0
                                        b: true
                                        c: foo

This is a more imperative than declarative view of the world, which I dislike
(especially because it is more verbose).

Time will tell whether this is the right decision or not ...
2016-11-19 10:34:51 -08:00
joeduffy
b57e4c4414 Add Stack subclassing
This change introduces the notion of "Stack subclassing" in two ways:

1. A Stack may declare that it subclasses another one using the base property:

        name: mystack
        base: other/stack
        .. as before ..

2. A Stack may declare that it is abstract; in other words, that it is meant
   solely for subclassing, and cannot be compiled and deployed independently:

        name: mystack
        abstract: true
        .. as before ..

   Note that non-abstract Stacks are required to declare at least one Service,
   whether that is public, private, or both.
2016-11-18 17:30:32 -08:00
joeduffy
623702f474 Make a few minor edits to the docs 2016-11-16 18:08:32 -08:00
joeduffy
43fe8de15b Add a reminder to decide on "local" flavors 2016-11-07 11:26:07 -08:00
joeduffy
d71e7e8315 Describe more of the compilation process 2016-11-07 10:47:15 -08:00
joeduffy
c6cdb9a7ae Add a note on AWS IAM mapping
...plus a handful of random TODOs.
2016-11-06 10:02:06 -08:00
joeduffy
a90b16f34d Add a note about Groups being members of other Groups 2016-11-06 09:51:23 -08:00
joeduffy
be0097ed85 Add a document on the cloud-neutral Mu abstractions 2016-11-06 09:32:46 -08:00
joeduffy
371429a95a Add a small informative note on security personas 2016-11-04 16:06:53 -07:00
joeduffy
ea707cab68 Add a reminder to figure out Security metadata in Mufiles 2016-11-04 15:43:03 -07:00
joeduffy
d8ac8efa80 Start a new Security doc
This change refactors the Architecture doc, splitting out Security into its
own design document.
2016-11-04 15:37:12 -07:00
joeduffy
d8ea7de341 Add some thoughts on security to the architecture doc 2016-11-04 15:34:50 -07:00
joeduffy
695573d211 Sketch out a few more necessary concepts 2016-11-04 13:50:10 -07:00
joeduffy
216b2867eb Add a reminder to figure out "secret" storage as a service 2016-11-04 13:21:47 -07:00
joeduffy
b176a3b314 Reorganize some remaining TODOs 2016-11-04 13:19:24 -07:00
joeduffy
2226584cff Add a note about IAM, credentials, region, etc. flowing from AWS IaaS to CaaS 2016-11-04 13:10:50 -07:00
joeduffy
25e0979da3 Add initial thoughts on EC2 Container Service (ECS) targeting 2016-11-04 12:53:45 -07:00
joeduffy
7bd27e9036 Add a note to consider mu/job and mu/daemon types 2016-11-04 12:43:31 -07:00
joeduffy
9836600e73 Do a bit of random wordsmithing as I proofread 2016-11-04 11:34:30 -07:00
joeduffy
97d251772d Clean up out of date documentation 2016-11-04 11:27:09 -07:00
joeduffy
47d8044e9a Split the metadata spec from the targets doc
This change separates the metadata specification from the targets doc,
since they are both meant to be consumable independent of one another
and will evolve at their own paces.
2016-11-04 11:23:59 -07:00
joeduffy
a270a9e0fc Eliminate TODO stacking; it kills MarkDown readability 2016-11-03 18:29:23 -07:00
joeduffy
cb2726dfb7 Flesh out more of the AWS CloudFormation transformations 2016-11-03 18:27:21 -07:00
joeduffy
047bc0aae2 Add a few AWS-specific TODOs to the Metadata doc 2016-11-03 16:18:23 -07:00
joeduffy
ab35057316 Sketch out the nested Stacks section 2016-11-03 16:11:28 -07:00
joeduffy
792e90fe17 Add a brief note about subclassing 2016-11-03 15:52:03 -07:00
joeduffy
523a55ed1e Articulate the parameters section 2016-11-03 15:47:52 -07:00
joeduffy
1742d0ecf1 Sketch out the Metadata spec; start on the AWS IaaS
This sketches out some more details in the Metadata format, in addition to
starting to articulate what the AWS IaaS provider looks like.  Sadly, more
questions than answers, but it's good to have the placeholders...
2016-11-03 15:12:22 -07:00
joeduffy
969294aad6 Introduce the notion of a Clusters
Simple developer scenarios can be done solely in terms of Stacks.  However, to
support more sophisticated cases -- where multiplexing many Stacks onto a shared
set of resources is preferred (for cost savings, provisioning time savings,
control, etc) -- we need to introduce the concept of a Cluster.  Each Cluster has
a fixed combination of IaaS/CaaS provider, decided at provisioning time.
2016-11-03 12:13:51 -07:00
joeduffy
fe2f52c436 Link to prioritized platform list 2016-11-03 12:06:46 -07:00
joeduffy
55ab75b222 Clarify the IaaS/CaaS relationship 2016-11-02 13:33:48 -07:00
joeduffy
0232dd3a08 Refactor the Architecture doc, and start a Metadata specification
This just contains primarily scaffolding, however lays out a general direction
and table of contents for the metadata specification document (marapongo/mu#1).
2016-11-02 13:04:27 -07:00
joeduffy
48e178d0d2 Create the start of an Architecture doc
This doc will describe the overall architecture for the Mu tools, platform,
and related artifacts.  It will be a companion to the more detailed drill-down
into the Mufile format and its specific target transformations (marapongo/mu#1).

There are tons of todos, etc., however this is at least a start, with some
amount of conceptual overview plus scaffolding and structure to fill out.
2016-11-01 17:04:34 -07:00
joeduffy
23f8908efd Add an "overview2" document
This snapshots thinking as of maybe two weeks ago.  I'm preparing to
do a big overhaul of all of the write-ups, and specifically start on the
Mu.yaml file format spec, and so I want to archive everything that's in flight.
2016-11-01 10:35:57 -07:00
joeduffy
e0af9a4d6a Reorder the topics slightly
Instead of leading in with the Service-based voting application, and then
simplifying it to a serverless Function-based one, do it in the reverse order.
This allows us to "grow" the sample, motivating each change as we go.
2016-10-15 08:36:38 -07:00
joeduffy
eed7db741e Articulate multi-instancing of Services
This updates the doc to demonstrate how multi-instancing a Service
is as easy as `new`ing up many objects.
2016-10-15 08:27:55 -07:00
joeduffy
36a94fa107 Jot down a few more thoughts on how this might work 2016-10-14 14:20:11 -07:00
joeduffy
9aed189c5a Add some "in progress" thinking on programming model 2016-10-14 13:26:29 -07:00