Best Practices for Python in the Cloud: Lessons Learned @ActiveState



Similar documents
Stackato PaaS Architecture: How it works and why.

Extending your VMware Cloud Infrastructure with a Private Platform-as-a-Service

Leverage the Cloud for your Python & Perl Applications. Stackato Offers a Fast, Simple Way to Deploy Webs Apps to the Cloud

Cloud Security with Stackato

Private PaaS 101: What It Is and Why You Need It. Insulate Your Cloud with the Stackato Secure Middleware Layer

Linux/Open Source and Cloud computing Wim Coekaerts Senior Vice President, Linux and Virtualization Engineering

OpenNebula Open Souce Solution for DC Virtualization. C12G Labs. Online Webinar

Enterprise PaaS Evaluation Guide

Software AG and the AWS cloud. Past, Present and Best Practices. Jonathan Madamba Director, Solution Cloud John Fitzgerald Director, Product Marketing

Web Application Hosting Cloud Solution Architecture.

Cloud computing - Architecting in the cloud

OpenNebula Open Souce Solution for DC Virtualization

Platform as a Service and Container Clouds

OpenNebula Open Souce Solution for DC Virtualization

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing WHAT IS CLOUD COMPUTING? 2

AppStack Technology Overview Model-Driven Application Management for the Cloud

CLOUD COMPUTING An Overview

An Introduction to Cloud Computing Concepts

Oracle Applications and Cloud Computing - Future Direction

How To Use Arcgis For Free On A Gdb (For A Gis Server) For A Small Business

Web Application Hosting Cloud Architecture

PaaS solutions evaluation

Cloud Hosting. QCLUG presentation - Aaron Johnson. Amazon AWS Heroku OpenShift

Cloud Computing Technology

Jfokus PaaS Hands-On Lab

ArcGIS for Server: In the Cloud

JAVA IN THE CLOUD PAAS PLATFORM IN COMPARISON

Cloud Models and Platforms

OpenShift and Cloud Foundry PaaS: High-level Overview of Features and Architectures

Cloud powered services composition using Public Cloud PaaS platform

Cloud Computing Architecture with OpenNebula HPC Cloud Use Cases

CUMULUX WHICH CLOUD PLATFORM IS RIGHT FOR YOU? COMPARING CLOUD PLATFORMS. Review Business and Technology Series

Deploying Your Application On Public Cloud

<Insert Picture Here> Enabling Cloud Deployments with Oracle Virtualization

Why Does CA Platform Use OpenShift?

TestOps: Continuous Integration when infrastructure is the product. Barry Jaspan Senior Architect, Acquia Inc.

Intel IT s Cloud Journey. Speaker: [speaker name], Intel IT

Data Centers and Cloud Computing

Private Cloud for WebSphere Virtual Enterprise Application Hosting

<Insert Picture Here> Cloud Computing Strategy

IBM Bluemix. The Digital Innovation Platform. Simon

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

Mobile Cloud Computing T Open Source IaaS

OpenShift 3.0 in the Sogeti Services Factory

IBM Cloud Security Draft for Discussion September 12, IBM Corporation

SURFsara HPC Cloud Workshop

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

Cloud Computing: Making the right choices

WINDOWS AZURE EXECUTION MODELS

OpenShift on you own cloud. Troy Dawson OpenShift Engineer, Red Hat November 1, 2013

OpenShift on OpenStack

Plug-and-play Virtual Appliance Clusters Running Hadoop. Dr. Renato Figueiredo ACIS Lab - University of Florida

Private Clouds with Open Source

BeBanjo Infrastructure and Security Overview

The High Availability and Resiliency of the Pertino Cloud Network Engine

DevOps with Containers. for Microservices

Cloud Computing for Control Systems CERN Openlab Summer Student Program 9/9/2011 ARSALAAN AHMED SHAIKH

Platforms in the Cloud

Drive new Revenue With PaaS/IaaS. Ruslan Synytsky CTO, Jelastic

Cloud Computing; What is it, How long has it been here, and Where is it going?

OpenStack Introduction. November 4, 2015

<Insert Picture Here> Private Cloud with Fusion Middleware

Cloud Computing and Open Source: Watching Hype meet Reality

CHAPTER 8 CLOUD COMPUTING

Private Cloud Database Consolidation with Exadata. Nitin Vengurlekar Technical Director/Cloud Evangelist

SkySQL Data Suite. A New Open Source Approach to MySQL Distributed Systems. Serge Frezefond V

21/09/11. Introduction to Cloud Computing. First: do not be scared! Request for contributors. ToDO list. Revision history

Electronic Records Storage Options and Overview

NCTA Cloud Architecture

ABRAHAM ARCHITECTURE OF A CLOUD SERVICE USING PYTHON TECHNOLOGIES

Migration Scenario: Migrating Backend Processing Pipeline to the AWS Cloud

<Insert Picture Here> Enterprise Cloud Computing: What, Why and How

Building Success on Acquia Cloud:

PeopleSoft Cloud Architecture Automating PeopleSoft Deployment

Cloud Courses Description

Deploy Your First CF App on Azure with Template and Service Broker. Thomas Shao, Rita Zhang, Bin Xia Microsoft Azure Team

Oracle s Cloud Computing Strategy

Getting Started Hacking on OpenNebula

Last time. Today. IaaS Providers. Amazon Web Services, overview

Building Clouds with OpenNebula 3.4

Private Cloud in Educational Institutions: An Implementation using UEC

Cloud Computing Security Issues

Week Overview. Installing Linux Linux on your Desktop Virtualization Basic Linux system administration

Open Cloud System. (Integration of Eucalyptus, Hadoop and AppScale into deployment of University Private Cloud)

Sistemi Operativi e Reti. Cloud Computing

CloudCenter Full Lifecycle Management. An application-defined approach to deploying and managing applications in any datacenter or cloud environment

Solution for private cloud computing

CA Automation Suite for Data Centers

Transcription:

Best Practices for Python in the Cloud: Lessons Learned @ActiveState Best Practices for Python in the Cloud Presented by: Gisle Aas, Senior Developer, ActiveState

whoami? Gisle Aas! gisle@activestate.com! @gisle! github.com/gisle

Agenda! About ActiveState! What s a Cloud Anyway?! Python in the Cloud! The ActiveState Experience! Best Practices! Building for PaaS (Stackato)

About ActiveState! Founded 1997! 2 million developers, 97% of Fortune 1000 rely on ActiveState! Development, management, distribution solutions for dynamic languages! Core languages: Python, Perl, Tcl! Other languages: PHP, Ruby, Javascript! Related products: Komodo IDE, Stackato

ActiveState Solutions help developers

Just What Is A Cloud?

Essential Characteristics:! On-demand self-service! Broad network access! Resource pooling! Rapid elasticity! Measured Service

Service models: IaaS, PaaS, SaaS

Deployment models:! Private cloud! Community cloud! Public cloud! Hybrid cloud

The Cloud http://xkcd.com/908/

Python in the Cloud

Who is using Python in the Cloud? even michaelmoore.com uses python!

What ActiveState Learned along the way

Our Cloud Experience

Our Best Practices Guidelines 1. Simple 2. Isolated 3. Disposable 4. Relocatable 5. Portable 6. Open

Keep it Simple

Keep Your App Simple! Keep your code and concepts simple! Use simplest database that can possibly work! LAMP Stacks work

ActivePython AMI LAMP Stack for Python Web Applications! Ubuntu 10.04LTS 64-bit! Nginx! For static content and route web-traffic to multiple worker instances! Apache (2.2.16), running mod_wsgi (3.3.7)! ActivePython, with PyPM packaging manager! virtualenv (1.5.1) & virtualenvwrapper! Django (1.2.3)! SQLite3, MySQL 5.1, memcached! State of the art 1 year ago!! The art changes quickly in the cloud

Make Deploying Apps Simple! Developers just want to Develop! Developers want to leverage familiar tools! VCS, IDE, etc.! Resolve Dependencies Automatically! Developers do not want to be sysadmins! No firewall management! No database installs! No network management

Manage your Packages!! Use package managers such as! yum and aptitude for tools such as Apache! PyPM and Pip for Python package dependencies! Use pre-built package repositories! PyPM pulls from a single central repository of pre-built binaries that have been tested to work on a number of platforms.! pip pulls resources from multiple sources, potentially delaying an install if one of the dependencies is temporarily inaccessible.

Keep it Isolated

Create in Isolated Environments! Compartmentalize and isolate your build environment! Dominant tools are virtualenv and virtualenvwrapper! http://pypi.python.org/pypi/virtualenv! http://www.doughellmann.com/projects/virtualenvwrapper/.! Easily setup and switch between multiple, isolated python environments! Developers like the isolation! Fearlessly install new tools for experimentation without corrupting other environments! Allows incompatible version dependencies

Enable Security by Isolation! The only truly trusted solution: Security by Isolation! Natural borders, like OS system boundaries are the strongest security borders you can create for application deployment. http://theinvisiblethings.blogspot.com/2008/09/three-approaches-to-computer-security.html

A Choice of Solutions! FreeBSD Jail! Solaris Containers! IBM AIX Partitions! Linux-VServer! Parallels Virtuozzo! OpenVZ! LXC! Full OS virtualization

Make it Disposable

Disposable Instances! Treat instances as temporary, disposable things that can easily be rebuilt from scratch! Manage state changes from a build script! Avoid logging-in via ssh to run installs or to edit configurations! Tools like Fabric are designed to handle multi-step, multi-machine deployment! A fabfile becomes executable documentation of how to build your instance, run tests, and bring the system live! Simplifies software updates or altering configurations! Useful for adjusting instance sizes or replication for loadbalancing

Disposable Data! What parts of your data is disposable! How to persist data! Locally managed data! Off-system data stores! Mirroring! For high-availability! For safety! Backups need I say more?

Make it Relocatable

Relocatable Components! Communicate through sockets! Use distinct hostnames, no IP addresses! Make cloning easy that allows retargeting hostnames! Separate primary services (e.g. db and web app)! Allows cloning the right services for scaling! Backups can happen only for key components! Fail-over and recovery become easier to implement! Nginx front-end should be able to run separately from the underlying web server(s)

ake it Portable

Portability! Between IaaS providers! Amazon, Linode, RackSpace,! Between PaaS systems! Minimize Dependencies! Rely on the web app framework! It provides many abstractions already

Object Relational Mappers! Abstracts working with databases! Change in response to load or storage needs! Decouple the database from the application! An adapter between different styles of database access! Design for scalability from the outset

Keep it Open

6 Simple Rules to Live By! Simple! Isolated! Disposable! Relocatable! Portable! Open Source

Working with a PaaS Platform The Stackato Experience

Stackato in 6 Simple Rules! Simple! 3 step application deployment! Automatic dependency resolution! Isolated! Each instance get their own environment! Security by isolation! Disposable! Reusable VMs! Code separated from instances

Stackato in 6 Simple Rules! Relocatable! Concept of "Services"! Portable! Options of VMs or AMI! Both with the VM and code by design! Open Source! Based on Cloud Foundry! LAMPy stack

Stackato Client and VM

Stackato Architecture

Stackato from a Developer Perspective! 3 Step App Deployment! Install the 'stackato' client with pypm! Set the 'target' URL! Run 'stackato push! Client bundles the application and pushes it to the server! Config files in the application directory tell the cloud controller what additional software is required! The application environment is assembled, and the application is deployed to one or more worker nodes

Any Questions?

! Questions?! Next Steps:! Find out more about Stackato! activestate.com/cloud! Request Information:! Business-Solutions@activestate.com! 1-866-510-2914