London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long
PIE - The Programmable Infrastructure Environment
-
Upload
ernest-mueller -
Category
Technology
-
view
3.126 -
download
0
description
Transcript of PIE - The Programmable Infrastructure Environment
PIE: The Programmable
Infrastructure Environment
Ernest Mueller Peco KarayanevNational Instruments theagileadmin.com
What is PIE?
a framework to define, provision, monitor, and control cloud-based systems
written in Java, uses SSH as transport, currently supports Amazon AWS (Linux
and Windows)
takes an XML-based model from source control and creates a full running
system
Why is PIE tasty?
model driven automation
infrastructure as code
DevOps
dynamic scaling
agility
Model
XML descriptions of the system as ‘specs’
system (top level) environment (instance of a system) role (“tier” within a system) image (specific base box config) service (specific software or application) commands (for various levels) templates (files to be parsed)
Registry
uses Apache Zookeeper (part of Hadoop project)
the registry contains information about the running system
specific addressing scheme:/fcc/test1/external-services/2/tomcat
[/<system>/<environment>/<role>/<instance>/<service>]
pie registry.register /fcc/test1/external-services/2pie registry.bind /fcc/test1pie registry.list /fcc/test1
Control
create, terminate, start, stop instances using the AWS API
enforce scaling policy
execute remote commandspie control.create /fcc/test1/external-services/2pie control.stop /fcc/test1/external-services/2pie control.enforce /fcc/test1pie control.remote.service.restart /fcc/test1/external-services/2/external-tomcatpie control.remote.execute /fcc/test1/external-services/2 –i exe[0]=“ls –l /etc/init.d”
Provisioning
deploy services and apps
two-phase for fast deploys
update config files and parse templates
pie provision.deploy.stage /fcc/test1/external-services/2 –i pack[0]=lvdotcom-authpie provision.deploy.run /fcc/test1/external-services/2 –i pack[0]=lvdotcom-authpie provision.remote.updateConfig /fcc/test1
Monitoring
integrated with third party SaaS monitoring provider Cloudkick
systems register with Cloudkick as they come online and immediately have appropriate monitors applied based on tags set from the model
Results
repeatable – no manual errors
reviewable – model in source control
rapid – bring up, install, configure, and test dozens of systems in a morning
resilient – automated reconfiguration to swap servers (throw away
infrastructure)
What’s next
Azure support
Faster performance
Robust runtime (parallel, transactional, event-driven)
Scripting( search, map, regex, orchestration semantics)
Data in the Model
theagileadmin.com