Stackato- a developers experiences and evaluationby jonasbn for the German Perl Workshop 2013 in Berlin, Germany
Disclaimer• I am jonasbn - like almost everywhere• Long time Perl and web developer• Open Source/CPAN contributor and previously freelance developer in logicLAB• Currently employed with DK Hostmaster• I have no afﬁliation with ActiveState
(My) Developer Needs• Easy access to platform, runtimes and frameworks• The least possible gap between development, test and production• Minimal differences between deployed code and the code in my editor• reproducibility for transparency
What do we have TDY?• Unit-tests• Mocked objects and classes, stubs a.s.o• Local servers / emulators• Dedicated environments (dev/test/prod)• Virtualization• And code - lots of code...
complexity• We require magic• We rely on tribal knowledge• We need to jump through hoops
silver bullet• Then somebody offers a silver bullet• They call it the “cloud”
the Cloud• What is the cloud?• What problem do the cloud solve?• What needs do the cloud address?• So lets talk cloud!
Points from Dr. Matt Wood• 30-70% divide• IT infrastructure friction• Focus on your core competences• Focus on delivering value• http://www.slideshare.net/FDIHdk/ahead-in- the-cloud-matt-wood-amazon
Amazon EC2• BUT Amazon EC2 however does not get us there - no matter how elastic it is• BUT http://aws.amazon.com/• BUT luckily...
JS/Ruby/Perl in the cloud?• @ActiveState have introduced #stackato based on phenona and Cloud Foundry• http://www.activestate.com/stackato• http://www.cloudfoundry.com/
Stackato• A micro-cloud • current version: 2.8.2 • ﬁrst ofﬁcial release 2012.02.29• Strong in the Platform as a Service (PaaS) area, both private and public• Supporting several languages, their frameworks and commonly-used services
Hello World!ﬁrst demo: in Perl using Mojolicious $ mojo generate app HelloWorld
initial deployment• target, where do we want to deploy• login, it is all a matter of permissions• push, a “one-click” CLI deployment• stackato.yml - a conﬁguration ﬁle for assisting deployment• stackato -n ...
inspecting deployment• logs, our classical log ﬁles• crashes, possible crashes• crashlogs, and their logs• ﬁles, our sandbox • ﬁles app, our application
operating• start, start a service• stop, stop a service• restart, restart a service• this is about it, for what I can provide for now, I have no experience with long time operation of a Stackato deployed service• Oh there is one more thing...
updating• update, when an application has been pushed (deployed) this is the command you will use...• Or you can integrate with your IDE and possible other tools in the future, more on this later...
All the little things• binding DNS, going beyond mDNS• binding services (databases et al.)• resource allocation, memory, instances etc.• logging (more on this later...)
Support• @ActiveState fora• #stackato on irc://irc.freenode.org with users and ActiveState staff• Webcasts + white papers• ActiveState are incredibly open and cooperative
Open Source Examples• @ActiveState examples on Github• my own fork is on Github• Github is nice!
Stackato is not... or?• Open Source? - it is closed and proprietary • @ActiveState is however dedicated to keeping the micro-cloud solution free • the command-line client stackato is open source and available on Github• https://github.com/ActiveState/stackato-cli
Targets!• Multiple targets • development / test / production• Targets make sense in SCM context • trunk / branches / tags (releases)• You could just go for the micro-cloud, but you would loose some of the beneﬁts
App Store• Simply a matter of conﬁguration • Your complete application portfolio one click away • Operations - go shopping!• https://github.com/ActiveState/stackato-app-store
My Current Road Map• Oracle as a service (Perl driver DBD::Oracle and Oracle driver distribution issue) works!• Cryptographic components (export of PPMs, Perl packages) works!• Deployment of custom components works!• Full blown examples (Mojolicious over Mojolicious::Lite etc.) works!• Central logging (syslog) works!• Service integration (PostgreSQL) works?• mDNS and dynamic DNS (might be a .local problem)
Conclusion• The Stackato cloud is awesome• @ActiveState mean serious business• I am going to present and propose Stackato as a part of our future infrastructure
Beneﬁts• Easy and controlled access to platform, runtimes and frameworks• The least possible gap between development, test and production and minimal differences between deployed code and the code in the editor depending on your cloud deployment• reproducibility for transparency since the amount of magic is kept at a minimum
More Beneﬁts• Your developers can become self-driving when it comes to infrastructure• This is as close as you can get to one-click deployment• You can have uniformity between all your environments and procedures and practices• And it is unintrusive• And it does scale into the cloud
jonasbn!• @jonasbn, jonasbn@logicLAB.dk• Blogs: logicLAB.org and logicLAB.dk• Presentation on Slideshare.com• logicLAB Open Wiki