Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Getting Started with CloudScript

Getting Started with CloudScript

Overview of the CloudScript build language for the Cloud.

Avatar for nickpeterson

nickpeterson

April 01, 2013
Tweet

More Decks by nickpeterson

Other Decks in Technology

Transcript

  1. Our Story Hosting industry veterans each averaging 8+ years of

    managed hosting & cloud infrastructure experience Making infrastructure easy to deploy and manage for Developers, DevOps, and Operations folks alike Providing robust Infrastructure as a Service for high performance cloud computing applications since 2010
  2. CloudScript is a Domain Specific Language (DSL) for orchestrating application

    infrastructure. What is CloudScript? • External DSL syntax like Make or Ant • Engine has Threads, Tasks, Agents • Resources include, Keys, Scripts, Recipes, Servers, Storage Objects, Networks • Methods include, Create, Read-Or-Create, Delete • Embedded language support includes, Puppet, Chef, Shell, Python, Ruby, etc.
  3. 1. Dependency based programming model allows programmers to specify prerequisites

    2. Idempotent methods on all resource types allows repetition w/o side effects to reach the desired outcome for your environment 3. Code enveloping increases the power without reducing the expressivity of the DSL 4. Distributed agents and centralized event processing allow for software pipelines Design Principles
  4. cloudscript apache_web_server version = _LATEST result_template = apache_result_template globals server_pass

    = lib::random_password() console_pass = lib::random_password() thread provision_web_server tasks = [configure_web_server] task configure_web_server /key/password server_key read_or_create key_group = _SERVER password = server_pass /key/password console_key read_or_create key_group = _CONSOLE password = console_pass Hello World! /server/cloud web_server read_or_create hostname = 'helloworld' image = 'Linux Ubuntu 12.04 LTS 64-bit' service_type = 'CS01' keys = [server_key, console_key] recipes = [web_server_template] text_template web_server_template #!/bin/sh apt-get update; apt-get -y install apache2 /etc/init.d/apache2 start cat <<EOF>/var/www/index.html Hello World! EOF exit 0 _eof text_template apache_result_template Your web page is located at: http://{{ web_server.ipaddress_public }} _eof
  5. • Application Stacks • Distributed Systems/Clusters • Environmental Version Control

    • Environmental Scaling Up/Down • Business Process Automation • Data Pipeline Automation Use Cases