The Programmable Infrastructure Environment (PIE) is an in-house developed system which uses model driven automation to provision, control, deploy, and monitor our cloud systems. It was written to maximally enable DevOps within our team and to handle our cross-platform (Windows, Linux) requirements.
2. 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
5. 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)
6.
7.
8. 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/2
pie registry.bind /fcc/test1
pie registry.list /fcc/test1
9.
10. create, terminate, start, stop instances
using the AWS API
enforce scaling policy
execute remote commands
pie control.create /fcc/test1/external-services/2
pie control.stop /fcc/test1/external-services/2
pie control.enforce /fcc/test1
pie control.remote.service.restart
/fcc/test1/external-services/2/external-tomcat
pie control.remote.execute /fcc/test1/external-
services/2 âi exe[0]=âls âl /etc/init.dâ
11. 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-auth
pie provision.deploy.run /fcc/test1/external-
services/2 âi pack[0]=lvdotcom-auth
pie provision.remote.updateConfig /fcc/test1
12. 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
13.
14. 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)
15. Azure support
Faster performance
Robust runtime
(parallel, transactional, event-driven)
Scripting
( search, map, regex, orchestration
semantics)
Data in the Model