What is Cloudify

Nir Cohen @

nir0s@github

@thinkops

Agenda

  • A (very) brief history
  • Current problems
  • What Cloudify is and what it provides
  • Installing an application
  • Managing an application
  • Behind the scenes

A brief history (~11y back)

  • Application == code --> Application == Everything
  • On premise --> IaaS + PaaS + SaaS == Cloud
  • Managed services --> Self service
  • Prepay --> Pay per usage
  • Manual construction --> API based
  • SaaS scale change

Current Problems

  • Disposable environments
  • Post install management
  • Process repeatability
  • Cloud is just an API
  • Vendor Locking
  • Extensibility
  • Multi-Cloud

             's Mission Statement

Cloudify’s mission statement is to allow organizations to realize the benefits of cloud computing by simplifying the management of cloud applications at scale

             is

  • An application management framework
  • Standardized (based on TOSCA)
  • Anti vendor-locking
  • Open-source stack
  • Written in Python
  • open-source
  • Pluggable

                  provides

  • A standardized way to manage applications
  • An easy API to write abstractions
  • Strong contextual capabilities
  • Repeatable workflows
  • OOB CM plugins (Docker, Fabric, script, etc..)
  • OOB IaaS plugins (AWS, Openstack, etc..)
  • CLI, Server and visual composer
  • Healing and scaling workflows
  • Agent or agentless approach
  • A web UI

Target Audience

  • Developers
  • System Architects
  • System Administrators

Installing an application

Managing an application

CLI vs. Manager

  • Centralized management (REST)
  • Data retention
  • Concurrent executions
  • Security features
  • Multiple applications
  • Multiple deployments
  • High availability
  • Web Interface
  • Simple installation
  • Manage managers
  • Deploy applications locally or via a manager

Behind the scenes

Manager Architecture

Development Infra

  • ~60 active GitHub repositories
  • PRs and CRs for each merge
  • PEP8 fully enforced via flake8
  • Jenkins based builds with swarm nodes
  • Build flow tool developed in house
  • Python 2.7

Testing Infra

  • tox + nose for all unit tests
  • Using unittest or testtools (considering pytest)
  • Aiming for 94% unit test coverage
  • Comprehensive integration and system tests
  • TravisCI --> CircleCI (unit tests + flake8)
  • system-tests framework developed in house
  • dev-flow tool developed in house

Generic Tooling

  • Repex - used for version management
  • Wagon - used for plugin packaging
  • Surch - used for secret detection
  • Deppy - used for Python dependency and license tracking
  • Tattle - used for JIRA-GitHub issue tracking

Refs

  • GitHub Org: https://goo.gl/mx7s6c
  • Project Website: http://getcloudify.org/
  • NFV Deployment Demo: https://goo.gl/uc6Fdr
  • Our tools: http://cloudify-cosmo.github.io/

jobs@gigaspaces.com

http://jobs.gigaspaces.com

Made with Slides.com