When you first log into Cosmonic, you will be given your own constellation, which is a managed, isolated network space where you can deploy your applications. Everything running within a super constellation appears on your infrastructure or logic view on your canvas, no matter where it's running. You could have Raspberry Pis, laptops and a multitude of other resources running simultaneously in all of the major cloud providers. The best part? It is all visible and manageable as a single, flat topology.
A super constellation is simply a larger constellation formed by securely connecting multiple environments through Cosmonic.
This user guide refers to the use of super constellations on developer workstations as part of a developer loop. Please contact us for instructions on how to extend a super constellation to long-running infrastructure like your data center or cloud.
Under the hood, super constellations are powered by NATS leaf nodes. This gives us near infinite flexibility in the ways we can configure and shape our network traffic. During the open beta we are limiting the number of leaf nodes per account, so you may not want to leave a bunch of them running all the time.
The following image is a diagram that illustrates how a super constellation can be formed from smaller, securely-connected components.
The only thing you'll need in order to extend your constellation beyond the boundaries of the Cosmonic infrastructure is the cosmo CLI. If you want to build and deploy actors in your constellation, you'll also need to install the appropriate language toolchain.
Joining your Super Constellation
You'll find that joining your super constellation is incredibly simple. All you have to do is run
cosmo up. If your CLI hasn't yet logged in, you will see a URL (which should automatically open in
your default browser) that takes you to a quick login page. Once logged in,
cosmo up will do the
- Download a NATS server if it hasn't yet done so
- Download a wasmCloud host if it hasn't yet done so
- Start a local NATS server configured as a leaf node connecting to Cosmonic
- Start a wasmCloud host pre-configured to work with the freshly started leaf node
If you have your Cosmonic constellation infrastructure view open as you type
cosmo up, you'll see
a new host quickly appear. You'll know it's your host and not ours because it will have the
stargate=true label. Note that this label is just for your information and no Cosmonic code relies
on this (nor should yours).
wasmCloud hosts started without using
cosmo may appear to work properly with the leaf node, but
will not work with the super constellation at large. This is because hosts configured to work in a
super constellation are given specific cluster key configurations and other security parameters that
aren't wasmCloud defaults.
You should assume that only hosts started via
cosmo will work properly with a super constellation.
Developing in a Super Constellation
Developing in a super constellation is almost exactly the same as purely local development. Every actor you deploy locally has access to all of the capability providers running locally, in Cosmonic, or in other infrastructure you've connected. You don't need to run any proxies, open any firewall ports, connect to any bastion hosts. Just develop your app.
In fact, many of our own stress tests and demos involve securely connecting to a constellation via hotel or cafe WiFi.