
Terminal – Virtual computers that start, resize, and scale in seconds - dshankar
http://www.terminal.com
======
GregorStocks
_" Publish a fully functional working machine with your project on it_

 _Don 't worry about complex package management systems, or what environment a
consumer of your program might have._

 _Just give them a copy of your environment: it will always work in the
future. "_

I'm not convinced that a virtual machine snapshot is an adequate replacement
for wrestling with a package manager. If all you distribute is a VM image,
then:

\- Users can't easily run your software without provisioning an entire virtual
server and, as far as I can tell, giving Terminal money and their email
address.

\- Without active maintenance on your part, the other software on the image
will get out of date. Security holes will be discovered in the versions of
nginx and openssl that your image uses. Have you ever tried to upgrade a Linux
box that hasn't been touched in a few years to the latest version? After a few
years, every potential user of your software will have to go through that
first.

\- If Terminal goes out of business or pivots, your image will no longer work
(I think?).

\- Your software will not fit naturally into your users' deployment
environments. It will not by default show up in their administration tools,
know about their VPNs, integrate with their logging infrastructure, or appear
on their graphs.

I think this makes a lot of sense as a low-friction way to distribute
software, but if you're writing code that people will care about in a few
years it shouldn't be the only way.

~~~
wikqwik2
Certainly one could just create a tar ball of a terminal when logged into it
and download it, so the data is exportable, right? Terminal could make that
more convenient for sure, and probably will do so.

Software updates could be done the same way it always is: Run a script in a
terminal that updates all packages. One could snapshot first, and verify that
the updates do not break things.

~~~
GregorStocks
After a few years, it's a safe bet that updating will break _something_. At
that point, assuming you even notice the brokenness, you've got to either fix
it manually (without necessarily knowing how to distinguish a working system
from a somewhat-broken one or where to start debugging) or give up. I'd expect
most users to give up.

------
dk8996
Looks like they are running on AWS -- you can see in the video "xlarge" and
other systems types that are named the same in AWS. Interesting how they are
playing some "tricks" to enable some cool capabilities. I am willing to bet
they have a AWS box running of each type and using Docker or something like
that. Probably spinning up instance types as they are used up. I am also
willing to bet that if they got some non-significant traffic, that 5 sec will
be 5-10 min. Don't mean to throw cold water on it but over all looks cool --
not sure what I would use it for. I would love to see the architecture for
this product.

~~~
spartango
Your explanation is clever and could account for most of the behavior of the
product. Certainly the environments, rapid booting, and even hot resizing.

What's missing, however, is how they do machine state snapshots (not supported
in any container system afaik). I know Xen/VMWare support these, but if they
are running atop AWS they will not have access to the hypervisor. I can
imagine kludgily running another hypervisor atop AWS, but there would appear
to be a more clever solution.

~~~
wmf
Check out CRIU.

~~~
spartango
Cool, thanks. I hadn't seen this before.

For those wondering: CRIU is Checkpoint/Restore In Userspace.

[http://criu.org/Main_Page](http://criu.org/Main_Page) is the project, and
[http://criu.org/LXC](http://criu.org/LXC) is container support.

From a quick look, it seems that there are some limitations in CRIU,
especially with LXC support, but it is work in the right direction.

------
ykumar6
Give [http://Runnable.com](http://Runnable.com) a shot too :-) It's 100% free,
and will remain so.

~~~
ykumar6
Runnable provides containers across high-performance AWS virtual machines. We
launch millions of containers every month. Publishing your own image is as
simple as installing packages in our terminal and hitting "publish"

\- Yash (Founder, Runnable.com)

~~~
tmzt
What kind of isolation are you using between containers, if any?

------
logn
I would like to see some info on how they're counting CPUs in their pricing.
50 CPUs for $30/mo is too good to be true unless the CPU is not very powerful.
Also, most apps that could actually use 50 CPUs would be hurt by only having
800 MB of memory. I think they should just price CPUs and RAM independently.

~~~
wmf
Their pricing page has a typo; it's 50% of a CPU for $30/month. And by "CPU"
they may mean hyperthread.

[http://www.terminal.com/faq#instanceTypes](http://www.terminal.com/faq#instanceTypes)

~~~
logn
I also saw the FAQ with CPU listed as % -- but they write:

    
    
      Type      CPU (%)
    
      micro   2 (max)*
    
      *Micro instances [...] are limited to 2 CPUs at best
    

So that indicates to me the pricing page is right and the FAQ header is wrong.

------
transfire
So someone turned Docker into an online service. Interesting. It seems
promising, though not yet mature. For every day computing the cost still seems
high however, and I worry about security. Still, it smacks of the future.

~~~
tristansa
Doesn't look like this has anything to do with Docker. It's more like lipstick
on a full blown hypervisor.

~~~
ljlolel
You are right that we don't use Docker, but we also don't use hypervisors
which are too slow.

We are a lot faster than a hypervisor. Our machines start in 5 seconds.
Neither can resize a machine up and down live without a reboot. None of them
can do RAM snapshots.

~~~
cwb71
It's OpenVZ or Virtuozzo.

[http://openvz.org/](http://openvz.org/)

[http://www.parallels.com/products/pvc/](http://www.parallels.com/products/pvc/)

------
ljlolel
Thanks for the feedback everyone! We didn't expect this. If you are in SF, we
have a meetup for data scientists tomorrow evening in SoMa at ThoughtBot
offices.

[http://www.meetup.com/Terminal-com-
Developers/events/1922628...](http://www.meetup.com/Terminal-com-
Developers/events/192262892/)

~~~
SuperKlaus
[http://www.terminal.com/terminals](http://www.terminal.com/terminals) is
broken in Firefox 30.0

------
HarrietJones
Nice.

I currently use [http://nitrous.io](http://nitrous.io) for ad-hoc linux
terminal sessions with an integrated editor, and it looks like this does
pretty much the same at what will be (for me) a fraction of the price.

I like nitrous, so am unlikely to move away - but I will be checking this
offering out.

The editor could probably do with some polishing, and I'd need an obvious way
to create and set environment variables.

There's some confusion for me as to what it is you're selling. Is it an adhoc
terminal people can spin up when they need - or is it an application server?
If just the former, then why have gitlab, and ghost in your images list. If
the latter, then why the auto-shutdown on sessions, and what is relatively a
high price for hosting.

------
nitro123
I, for one, love the name. (I'm impressed they were able to get the domain.)
"Terminal" seems like a perfectly natural name for this sort of product.

Very excited to see this tech used for online computer science education. When
I took CS classes (and TA'd them) it was always a royal pain in the ass to
configure everything right on every student's personal computer / OS / etc.
Being able to pre-install all the libraries, code, and data once and then
blast it to everyone seems like a huge win. Not sure how the pricing would
work for a large CS class (or even an online version) but hopefully they can
figure that out.

------
neya
Wow, that's sure one pricey domain name :) But this service looks very
promising. I will try to update with some feedback soon.

------
jeffrey89
I really like the idea of being able to take a snapshot of my scalable
computing environment and sharing it with others. Everything looks slick -
will definitely try it the next time I'm building/tweaking a ML model. Are
there other solutions which enable the same ?

------
ilaksh
So for $61 I can access 3,200 CPUs for one day?

How does that work?

I didn't know there were any computers that had 3,200 CPUs?

How would I test that?

~~~
SuperKlaus
You get 3,200% of a CPU, not 3,200 CPUs.

~~~
JoiDegn
make that 320,000%

~~~
SuperKlaus
Looks like they finally clarified their Pricing page, it now simply says 32
CPUs.

------
walesmd
I participated in a user study for terminal, although it was a modified
version marketed toward a specific use case. We came away quite disappointed
in the product, primarily because it didn't include most of the community-
provided features/functionality provided here on their full site.

Needless to say, we all walked away from the meeting, hit terminal.com and
were puzzled as to why they didn't show us this version of the site. Our
opinions/feedback would have been drastically different.

I'm looking forward to giving this version of terminal a proper run through.
The overall concept I found very interesting.

------
hhsnopek
Do you use CPU sharing, or how do I actually get 50 CPUS? I guess I'd like to
know how fast the cpus are....

~~~
easytiger
Think that is the percentage of a CPU you get?

------
cordite
Now, the next problem is to make applications that can scale down on RAM
dependably without having to restart.

~~~
habitue
VMWare ESX solves this with a technique called ballooning[0] which is pretty
clever.

[0][https://www.usenix.org/legacy/publications/library/proceedin...](https://www.usenix.org/legacy/publications/library/proceedings/osdi02/tech/full_papers/waldspurger/waldspurger_html/node6.html)

~~~
wmf
If a process refuses to give up allocated memory (which is usually the case),
ballooning will cause the app to swap. If the app's heap is fragmented it will
thrash to death.

------
electic
Curious, what do they use to create these machines? Is there some sort of open
source package that allows you to create elastic machines?

~~~
wmf
LXC or Docker. You can resize a container by changing the parameters on the
cgroups.

~~~
spartango
Xen/VMWare also support hot resizing of CPU and RAM.

What's interesting is that neither LXC nor Docker support memory snapshots
(machine state), which Terminal.com has demonstrated. Xen, KVM, and VMWare do,
but I can't really imagine people running these atop AWS infrastructure (Xen
underneath).

------
mietek
Is there no way to create a clean instance, with a fresh OS installation,
without having to use someone else's snapshot?

~~~
wuthefwasthat
we just added some official base instances. check them out!

[http://www.terminal.com/explore#query=username%3Aterminal](http://www.terminal.com/explore#query=username%3Aterminal)

~~~
mietek
Very cool. Thanks.

------
jqm
It looks very cool. Am going to try it out.

Agree with what others are saying on the name. Terminal is spoken for.

------
outside1234
Nice job - I like it. Definitely the fastest nothing -> RoR install I've every
had.

------
CaveTech
Are these remotely accessible? Can I set up SSH/STFP with a public IP?

~~~
bgirard
I'd like to know as well. I just tried but I can't get it to work following
the documentation.

Edit: It seems that the request must be made over HTTPS.

~~~
SuperKlaus
Yeah, looks like right now they just forward http[s] requests via nginx to
your "terminal" so SSH or any other raw, non-HTTP connection won't work.

~~~
ljlolel
We are going to have SSH/SFTP access publicly soon. Email us at
support@cloudlabs.io if you need access now.

------
clarkm
Why is there a six character minimum on usernames?

------
JetSpiegel
Just because my dog is called Napoleon doesn't mean he's the king of France.
What kind of ridiculous name is that?

~~~
TrevorJ
Uh, one that seems to sum up what the product does quite nicely?

~~~
larzang
When dealing with any new and unfamiliar system, the best way to troubleshoot
unclear features or generic errors is usually to hit up Google for those who
ran into the same thing. Making your product ungooglable is a great way to
ensure developers never touch it.

~~~
rffn
This was my first thought as well. This product name is the sure way to
failure because it describes all kinds of things. Their product is one of the
least significant items called Terminal, due to being the new kid on the
block. They hide in plain sight.

