[erlang-questions] Light-weight operating systems supporting Erlang in production web servers
Joe Armstrong
erlang@REDACTED
Sat Sep 16 11:29:03 CEST 2017
Old timer here :-)
Just out of interest how large is Apline? (in MB?)
Just out of interest the last time I made a minimal erlang is ended up
at 4.7 MB -
with the following files (and sizes)
> /Dropbox/experiments/erlang_embedded/tiny_erl_19.1 > tree -s
├── [ 11859] COPYRIGHT
├── [ 238] bin
│ ├── [ 2827272] beam.smp
│ ├── [ 22580] erl_child_setup
│ ├── [ 53548] erlexec
│ ├── [ 5479] start.boot
│ └── [ 6459] start.script
├── [ 896] erl
└── [ 204] lib
├── [ 429496] compiler-7.0.2.ez
├── [ 387430] kernel-5.1.ez
├── [ 109322] sasl-3.0.1.ez
└── [ 806013] stdlib-3.1.ez
The biggest file is beam.smp -- I guess with a little static analysis
many of the files
in stdlib and kernel could be removed.
In the 'old days' the size to beat was 1.44 MB (ie a floppy disk) - we
did actually have
an entire OS + Erlang that fitted onto a single floppy disk.
I also recall a time when linux kernels were so small that a
knowledgeable person knew what every file in the system did.
I also believe that "small is fast and secure"
loading/storing/cacheing MBs of *anything* is
a thousand times faster than loading/storing/caching GBs.
Security is possible (though difficult) with MBs of code - and I guess
impossible with GB
Cheers
/Joe
On Fri, Sep 15, 2017 at 10:48 PM, Tristan Sloughter <t@REDACTED> wrote:
> Same, and I have an example multi-stage docker file for building the image
> on Alpine for an example project:
> https://github.com/SpaceTime-IoT/presence-sample/blob/master/Dockerfile It
> also uses all the options relx supports to shrink the size of the tarball
> https://github.com/SpaceTime-IoT/presence-sample/blob/master/rebar.config#L26-L34
>
> One feature relx doesn't yet support that may help a little with size of the
> unpacked release would be compressed applications (.ez). Pretty sure that is
> what reltool would do by default? Not sure how much it saves.
>
> Also, it is possible to use docker scratch* to have no real base image, but
> with Alpine being so small I don't think it saves enough to be worth it --
> esp considering everything you then don't have, as Phil mentioned.
>
> * And some hacks, copying over libs and a linker. Or a statically linked
> Erlang? Never done it with a statically linked Erlang, would that work with
> SSL?
>
> --
> Tristan Sloughter
> "I am not a crackpot" - Abe Simpson
> t@REDACTED
>
>
> On Fri, Sep 15, 2017, at 10:14 AM, Phil Toland wrote:
>
> I second the vote for Alpine Linux. My application is a mix of Erlang and
> Elixir and runs in Docker containers. I use Alpine as the base and I get
> reasonably sized containers that don't have anything I don't need.
>
> As a side note, it isn't just about providing the necessary support to run
> the BEAM VM. I also want enough of a familiar environment (ls, ps, top,
> nslookup/dig, netstat) to troubleshoot issues. Alpine provides that without
> the other stuff that you don't need.
>
> ~phil
>
>
>
> On September 15, 2017 at 9:47:00 AM, felixgallo@REDACTED
> (felixgallo@REDACTED) wrote:
>
>
>
>
> FreeBSD and alpine Linux have both served me well.
>
> F.
>
> On Sep 15, 2017, at 7:20 AM, Lloyd R. Prentice <lloyd@REDACTED>
> wrote:
>
> Hi,
>
> Joe Armstrong states in his 2003 Doctor of Technology thesis:
>
> "Our system has very little need of an operating system. We make use of very
> few operating system services, thus it is relatively easy to port our system
> to specialised environments such as embedded systems."
>
> As a one-time Forth developer, software bloat offends me. I sigh and use
> Ubuntu on my development system out laziness and convenience.
>
> But I would like my production servers to be lean and mean.
>
> What light weight open-source off-the shelf operating systems would
> battle-hardened Erlang gurus recommend?
>
> All the best,
>
> LRP
>
>
> Sent from my iPad
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
More information about the erlang-questions
mailing list