SlideShare a Scribd company logo
1 of 27
Download to read offline
omaha-serveromaha-server
High Fidelity, High VelocityHigh Fidelity, High Velocity
Deployments in the CloudDeployments in the Cloud
Python
Django
PostgreSQL
Redis
Technology StackTechnology Stack
WorkflowWorkflow
git commit & git push
Run tests often
Preferably on every commit
In a clean environment
Pull requests testing
Status Images
Hosted Continuous IntegrationHosted Continuous Integration
Minimal ConfigMinimal Config
language: python
python:
- "2.7"
virtualenv:
system_site_packages: true
env:
global:
- HOST_NAME: 'travis-ci'
- SECRET_KEY: 'SECRET_KEY'
services:
- redis-server
before_install:
- sudo apt-get install -qq python-lxml python-psycopg2
install: "pip install -r requirements-test.txt --use-mirrors"
script: paver test
after_success:
- coveralls --verbose
What is DockerWhat is Docker
At very basic level, think lightweight VM
Docker is an open platform for developing, shipping, and running
applications.
Run any application securely isolated in a container.
Open Source engine to commoditize LXC
Written in Go, runs as a daemon, comes with a CLI
Full REST API
Allows to build images in standard, reproducible way
Allows to share images
More infoMore info
Running a ContainerRunning a Container
$ docker run -d --name omaha -p 9090:9090 crystalnix/omaha-server
Pulls the api image: Docker checks for the presence of the omaha-server image
and, if it doesn't exist locally on the host, then Docker downloads it from docker
registry. If the image already exists, then Docker uses it for the new container.
Creates a new container: Once Docker has the image, it uses it to create a
container.
Allocates a filesystem and mounts a read-write layer: The container is created
in the file system and a read-write layer is added to the image.
Allocates a network / bridge interface: Creates a network interface that allows
the Docker container to talk to the local host.
Sets up an IP address: Finds and attaches an available IP address from a pool.
Executes a process that you specify: Runs omaha-server application
Captures and provides application output: Connects and logs standard input,
outputs and errors for you to see how your application is running.
Managing a ContainerManaging a Container
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED
a254c3d91bab omahaserver_web:latest "paver docker_run pa Up 5 minutes
STATUS PORTS NAMES
Up 5 minutes 0.0.0.0:9090->80/tcp omaha
$ docker stop omaha
$ docker start omaha
$ docker restart omaha
$ docker logs omaha
---> pavement.docker_run
---> pavement.migrate
./manage.py migrate --noinput
Operations to perform:
Synchronize unmigrated apps: django_filters, djangobower, cacheops, django_select2, suit, django_
Apply all migrations: crash, omaha, sessions, admin, auth, sparkle, contenttypes
Synchronizing apps without migrations:
Creating tables...
Installing custom SQL...
Installing indexes...
Running migrations:
No migrations to apply.
Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to app
---> pavement.loaddata
./manage.py loaddata fixtures/initial_data.json
Installed 5 object(s) from 1 fixture(s)
---> pavement.create_admin
./createadmin.py
Docker ImagesDocker Images
Docker images are the build component of Docker.
A Docker image is a read-only template.
Images are used to create Docker containers.
Docker provides a simple way to build new images or update
existing images, or you can download Docker images that other
people have already created.
Each image consists of a series of layers. Docker makes use of
union file systems to combine these layers into a single image.
When you change a Docker image – for example, update an
application to a new version – a new layer gets built.
Docker RegistriesDocker Registries
Docker registries are the distribution component of Docker.
Docker registries hold images.
These are public or private stores from which you upload or
download images.
The public Docker registry is called . It provides a
huge collection of existing images for your use.
Docker Hub
Docker ContainersDocker Containers
Docker containers are the run component of Docker.
A Docker container holds everything that is needed for an
application to run.
Each container is created from a Docker image.
The Docker image is read-only. When Docker runs a container
from an image, it adds a read-write layer on top of the image in
which your application can then run.
Docker containers can be run, started, stopped, moved, and
deleted.
FROM ubuntu:14.04.1
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y python-pip python-lxml python-psycopg2 uwsgi supervisor
RUN apt-get install -y uwsgi-plugin-python
RUN apt-get install -y nginx
# install s3fs
RUN apt-get install -y build-essential libfuse-dev libfuse-dev libfuse-dev mime-support
RUN apt-get clean
RUN wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.78.tar.gz -O /usr/src/v1.78.tar.gz
RUN tar xvz -C /usr/src -f /usr/src/v1.78.tar.gz
RUN cd /usr/src/s3fs-fuse-1.78 && ./autogen.sh
RUN ./configure --prefix=/usr && make && make install
RUN mkdir /srv/omaha_s3
ADD . /srv/omaha
# setup all the configfiles
RUN rm /etc/nginx/sites-enabled/default
RUN rm /etc/nginx/nginx.conf
RUN ln -s /srv/omaha/conf/nginx.conf /etc/nginx/
RUN ln -s /srv/omaha/conf/nginx-app.conf /etc/nginx/sites-enabled/
RUN ln -s /srv/omaha/conf/supervisord.conf /etc/supervisor/conf.d/
WORKDIR /srv/omaha
RUN pip install paver --use-mirrors
RUN pip install -r requirements.txt --use-mirrors
EXPOSE 80
ENTRYPOINT ["paver", "docker_run"]
db:
image: postgres
redis:
image: redis
web:
image: crystalnix/omaha-server
command: paver docker_run
working_dir: /srv/omaha
privileged: true
links:
- db
- redis
ports:
- "9090:80"
environment:
DB_HOST: db
DB_PORT: 5432
DB_USER: postgres
DB_NAME: postgres
DB_PASSWORD: ''
HOST_NAME: '*'
SECRET_KEY: 'SECRET_KEY'
DJANGO_SETTINGS_MODULE: 'omaha_server.settings'
REDIS_HOST: redis
REDIS_PORT: 6379
Fast, isolated development environments
using Docker
Quick and easy to start
Manages a collection of containers
Up PostgreSQL + Redis + omaha-serverUp PostgreSQL + Redis + omaha-server
Python
Django
PostgreSQL
Redis
AWS Elastic BeanstalkAWS Elastic Beanstalk
“ [...] quickly deploy and manage
applications in the AWS cloud without
worrying about the infrastructure that
runs those applications. [...] reduces
management complexity without
restricting choice or control.
What Is AWS Elastic Beanstalk and Why Do I Need It?
Deploying AWS Elastic Beanstalk Applications from Docker Containers
“ You simply upload your application,
and AWS Elastic Beanstalk automatically
handles the details of capacity
provisioning, load balancing, scaling, and
application health monitoring.
Omaha-serverOmaha-server
Deployment without DockerDeployment without Docker
Deployment with DockerDeployment with Docker
One Command to DeployOne Command to Deploy
ebs-deployebs-deploy
$ ebs-deploy deploy -e omaha-server-dev
ebs-deploy is a command line tool forebs-deploy is a command line tool for
managing application deployments onmanaging application deployments on
Amazon's Beanstalk.Amazon's Beanstalk.
Zero downtime deployment
Simple config file
Update an environment(s)
aws:
access_key: 'AWS Access Key'
secret_key: 'AWS Secret Key'
region: 'us-east-1'
bucket: 'the bucket that beanstalk apps will be stored in'
bucket_path: 'omaha-server'
app:
versions_to_keep: 10
app_name: 'omaha-server'
description: 'Omaha Server'
all_environments:
solution_stack_name: '64bit Amazon Linux 2014.09 v1.0.9 running Docker 1.2.0'
tier_name: 'WebServer'
tier_type: 'Standard'
tier_version: '1.0'
option_settings:
'aws:autoscaling:launchconfiguration':
InstanceType: 't2.small'
SecurityGroups: 'omaha_server_dev'
EC2KeyName: 'Key Name'
'aws:autoscaling:asg':
MinSize: 1
MaxSize: 10
'aws:autoscaling:trigger':
BreachDuration: 300
MeasureName: 'CPUUtilization'
Unit: 'Percent'
LowerThreshold: 20
UpperThreshold: 70
UpperBreachScaleIncrement: 1
'aws:elasticbeanstalk:application':
Application Healthcheck URL: '/admin/login/'
includes:
- 'Dockerrun.aws.json'
AWS & BeanstalkAWS & Beanstalk
Auto scaling
Auto balance
Multi regions
Integrado com RDS
Monitoring
Full API Managable
Auto ScalingAuto Scaling
Auto Scaling is a web service that enables you to automatically
launch or terminate Amazon Elastic Compute Cloud (Amazon EC2)
instances based on user-defined policies, health status checks, and
schedules.
AWS CloudWatch /MonitoringAWS CloudWatch /Monitoring
The EndThe End
1.
2.
3.
4.
5.
6.
What is Docker?
Fig
Elastic Load Balancing Deep Dive and Best
Practices
AWS Webcast - High Availability with Route 53
DNS Failover
AWS Elastic Beanstalk and Docker
Paver: easy build and deployment automation
for Python projects
provides AWS Development &
DevOps services
Crystalnix
Drop us a note to get a quote from our
experts
contacts@crystalnix.com

More Related Content

What's hot

Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Carlos Sanchez
 
Continuous Integration with Docker on AWS
Continuous Integration with Docker on AWSContinuous Integration with Docker on AWS
Continuous Integration with Docker on AWSAndrew Heifetz
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux ContainerBalaji Rajan
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierCarlos Sanchez
 
DCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best PracticesDCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best PracticesDocker, Inc.
 
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache MesosCI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache MesosCarlos Sanchez
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using AnsibleSonatype
 
How to Dockerize Web Application using Docker Compose
How to Dockerize Web Application using Docker ComposeHow to Dockerize Web Application using Docker Compose
How to Dockerize Web Application using Docker ComposeEvoke Technologies
 
Continuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudContinuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudIdeato
 
When Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architectureWhen Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architecture Adrien Blind
 
Docker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David LawrenceDocker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David LawrenceDocker, Inc.
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureJérôme Petazzoni
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEMario-Leander Reimer
 
Docker on Google App Engine
Docker on Google App EngineDocker on Google App Engine
Docker on Google App EngineDocker, Inc.
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Edureka!
 
Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Patrick Chanezon
 
Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentalsAlper Unal
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzurePatrick Chanezon
 
Using Docker in the Real World
Using Docker in the Real WorldUsing Docker in the Real World
Using Docker in the Real WorldTim Haak
 
From Monolith to Docker Distributed Applications
From Monolith to Docker Distributed ApplicationsFrom Monolith to Docker Distributed Applications
From Monolith to Docker Distributed ApplicationsCarlos Sanchez
 

What's hot (20)

Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
 
Continuous Integration with Docker on AWS
Continuous Integration with Docker on AWSContinuous Integration with Docker on AWS
Continuous Integration with Docker on AWS
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
 
DCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best PracticesDCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best Practices
 
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache MesosCI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using Ansible
 
How to Dockerize Web Application using Docker Compose
How to Dockerize Web Application using Docker ComposeHow to Dockerize Web Application using Docker Compose
How to Dockerize Web Application using Docker Compose
 
Continuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudContinuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in Cloud
 
When Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architectureWhen Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architecture
 
Docker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David LawrenceDocker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David Lawrence
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EE
 
Docker on Google App Engine
Docker on Google App EngineDocker on Google App Engine
Docker on Google App Engine
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
 
Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016
 
Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentals
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
 
Using Docker in the Real World
Using Docker in the Real WorldUsing Docker in the Real World
Using Docker in the Real World
 
From Monolith to Docker Distributed Applications
From Monolith to Docker Distributed ApplicationsFrom Monolith to Docker Distributed Applications
From Monolith to Docker Distributed Applications
 

Similar to Omaha (Google Update) server

Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Arun prasath
 
Docker module 1
Docker module 1Docker module 1
Docker module 1Liang Bo
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Developmentmsyukor
 
Dockerization of Azure Platform
Dockerization of Azure PlatformDockerization of Azure Platform
Dockerization of Azure Platformnirajrules
 
Docker intro
Docker introDocker intro
Docker introspiddy
 
Docker 進階實務班
Docker 進階實務班Docker 進階實務班
Docker 進階實務班Philip Zheng
 
廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班Paul Chao
 
Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationSuresh Balla
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java binOlve Hansen
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Patrick Chanezon
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET DevelopersTaswar Bhatti
 
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...Codemotion
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with DockerPatrick Mizer
 
Continous delivery at docker age
Continous delivery at docker ageContinous delivery at docker age
Continous delivery at docker ageAdrien Blind
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...Amazon Web Services
 
Continuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSContinuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSAmazon Web Services
 

Similar to Omaha (Google Update) server (20)

Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Development
 
Dockerization of Azure Platform
Dockerization of Azure PlatformDockerization of Azure Platform
Dockerization of Azure Platform
 
Docker intro
Docker introDocker intro
Docker intro
 
Docker intro
Docker introDocker intro
Docker intro
 
Docker 進階實務班
Docker 進階實務班Docker 進階實務班
Docker 進階實務班
 
廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班
 
Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualization
 
Docker
DockerDocker
Docker
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
Docker In Brief
Docker In BriefDocker In Brief
Docker In Brief
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 
Docker Starter Pack
Docker Starter PackDocker Starter Pack
Docker Starter Pack
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
 
Continous delivery at docker age
Continous delivery at docker ageContinous delivery at docker age
Continous delivery at docker age
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Continuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSContinuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECS
 

Recently uploaded

SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 

Recently uploaded (20)

SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 

Omaha (Google Update) server

  • 1. omaha-serveromaha-server High Fidelity, High VelocityHigh Fidelity, High Velocity Deployments in the CloudDeployments in the Cloud
  • 4. Run tests often Preferably on every commit In a clean environment Pull requests testing Status Images Hosted Continuous IntegrationHosted Continuous Integration
  • 5. Minimal ConfigMinimal Config language: python python: - "2.7" virtualenv: system_site_packages: true env: global: - HOST_NAME: 'travis-ci' - SECRET_KEY: 'SECRET_KEY' services: - redis-server before_install: - sudo apt-get install -qq python-lxml python-psycopg2 install: "pip install -r requirements-test.txt --use-mirrors" script: paver test after_success: - coveralls --verbose
  • 6.
  • 7. What is DockerWhat is Docker At very basic level, think lightweight VM Docker is an open platform for developing, shipping, and running applications. Run any application securely isolated in a container. Open Source engine to commoditize LXC Written in Go, runs as a daemon, comes with a CLI Full REST API Allows to build images in standard, reproducible way Allows to share images More infoMore info
  • 8. Running a ContainerRunning a Container $ docker run -d --name omaha -p 9090:9090 crystalnix/omaha-server Pulls the api image: Docker checks for the presence of the omaha-server image and, if it doesn't exist locally on the host, then Docker downloads it from docker registry. If the image already exists, then Docker uses it for the new container. Creates a new container: Once Docker has the image, it uses it to create a container. Allocates a filesystem and mounts a read-write layer: The container is created in the file system and a read-write layer is added to the image. Allocates a network / bridge interface: Creates a network interface that allows the Docker container to talk to the local host. Sets up an IP address: Finds and attaches an available IP address from a pool. Executes a process that you specify: Runs omaha-server application Captures and provides application output: Connects and logs standard input, outputs and errors for you to see how your application is running.
  • 9. Managing a ContainerManaging a Container $ docker ps CONTAINER ID IMAGE COMMAND CREATED a254c3d91bab omahaserver_web:latest "paver docker_run pa Up 5 minutes STATUS PORTS NAMES Up 5 minutes 0.0.0.0:9090->80/tcp omaha $ docker stop omaha $ docker start omaha $ docker restart omaha $ docker logs omaha ---> pavement.docker_run ---> pavement.migrate ./manage.py migrate --noinput Operations to perform: Synchronize unmigrated apps: django_filters, djangobower, cacheops, django_select2, suit, django_ Apply all migrations: crash, omaha, sessions, admin, auth, sparkle, contenttypes Synchronizing apps without migrations: Creating tables... Installing custom SQL... Installing indexes... Running migrations: No migrations to apply. Your models have changes that are not yet reflected in a migration, and so won't be applied. Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to app ---> pavement.loaddata ./manage.py loaddata fixtures/initial_data.json Installed 5 object(s) from 1 fixture(s) ---> pavement.create_admin ./createadmin.py
  • 10. Docker ImagesDocker Images Docker images are the build component of Docker. A Docker image is a read-only template. Images are used to create Docker containers. Docker provides a simple way to build new images or update existing images, or you can download Docker images that other people have already created. Each image consists of a series of layers. Docker makes use of union file systems to combine these layers into a single image. When you change a Docker image – for example, update an application to a new version – a new layer gets built.
  • 11. Docker RegistriesDocker Registries Docker registries are the distribution component of Docker. Docker registries hold images. These are public or private stores from which you upload or download images. The public Docker registry is called . It provides a huge collection of existing images for your use. Docker Hub
  • 12. Docker ContainersDocker Containers Docker containers are the run component of Docker. A Docker container holds everything that is needed for an application to run. Each container is created from a Docker image. The Docker image is read-only. When Docker runs a container from an image, it adds a read-write layer on top of the image in which your application can then run. Docker containers can be run, started, stopped, moved, and deleted.
  • 13. FROM ubuntu:14.04.1 RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y python-pip python-lxml python-psycopg2 uwsgi supervisor RUN apt-get install -y uwsgi-plugin-python RUN apt-get install -y nginx # install s3fs RUN apt-get install -y build-essential libfuse-dev libfuse-dev libfuse-dev mime-support RUN apt-get clean RUN wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.78.tar.gz -O /usr/src/v1.78.tar.gz RUN tar xvz -C /usr/src -f /usr/src/v1.78.tar.gz RUN cd /usr/src/s3fs-fuse-1.78 && ./autogen.sh RUN ./configure --prefix=/usr && make && make install RUN mkdir /srv/omaha_s3 ADD . /srv/omaha # setup all the configfiles RUN rm /etc/nginx/sites-enabled/default RUN rm /etc/nginx/nginx.conf RUN ln -s /srv/omaha/conf/nginx.conf /etc/nginx/ RUN ln -s /srv/omaha/conf/nginx-app.conf /etc/nginx/sites-enabled/ RUN ln -s /srv/omaha/conf/supervisord.conf /etc/supervisor/conf.d/ WORKDIR /srv/omaha RUN pip install paver --use-mirrors RUN pip install -r requirements.txt --use-mirrors EXPOSE 80 ENTRYPOINT ["paver", "docker_run"]
  • 14. db: image: postgres redis: image: redis web: image: crystalnix/omaha-server command: paver docker_run working_dir: /srv/omaha privileged: true links: - db - redis ports: - "9090:80" environment: DB_HOST: db DB_PORT: 5432 DB_USER: postgres DB_NAME: postgres DB_PASSWORD: '' HOST_NAME: '*' SECRET_KEY: 'SECRET_KEY' DJANGO_SETTINGS_MODULE: 'omaha_server.settings' REDIS_HOST: redis REDIS_PORT: 6379 Fast, isolated development environments using Docker Quick and easy to start Manages a collection of containers
  • 15. Up PostgreSQL + Redis + omaha-serverUp PostgreSQL + Redis + omaha-server
  • 17. AWS Elastic BeanstalkAWS Elastic Beanstalk “ [...] quickly deploy and manage applications in the AWS cloud without worrying about the infrastructure that runs those applications. [...] reduces management complexity without restricting choice or control. What Is AWS Elastic Beanstalk and Why Do I Need It? Deploying AWS Elastic Beanstalk Applications from Docker Containers “ You simply upload your application, and AWS Elastic Beanstalk automatically handles the details of capacity provisioning, load balancing, scaling, and application health monitoring.
  • 21. One Command to DeployOne Command to Deploy ebs-deployebs-deploy $ ebs-deploy deploy -e omaha-server-dev ebs-deploy is a command line tool forebs-deploy is a command line tool for managing application deployments onmanaging application deployments on Amazon's Beanstalk.Amazon's Beanstalk. Zero downtime deployment Simple config file Update an environment(s)
  • 22. aws: access_key: 'AWS Access Key' secret_key: 'AWS Secret Key' region: 'us-east-1' bucket: 'the bucket that beanstalk apps will be stored in' bucket_path: 'omaha-server' app: versions_to_keep: 10 app_name: 'omaha-server' description: 'Omaha Server' all_environments: solution_stack_name: '64bit Amazon Linux 2014.09 v1.0.9 running Docker 1.2.0' tier_name: 'WebServer' tier_type: 'Standard' tier_version: '1.0' option_settings: 'aws:autoscaling:launchconfiguration': InstanceType: 't2.small' SecurityGroups: 'omaha_server_dev' EC2KeyName: 'Key Name' 'aws:autoscaling:asg': MinSize: 1 MaxSize: 10 'aws:autoscaling:trigger': BreachDuration: 300 MeasureName: 'CPUUtilization' Unit: 'Percent' LowerThreshold: 20 UpperThreshold: 70 UpperBreachScaleIncrement: 1 'aws:elasticbeanstalk:application': Application Healthcheck URL: '/admin/login/' includes: - 'Dockerrun.aws.json'
  • 23. AWS & BeanstalkAWS & Beanstalk Auto scaling Auto balance Multi regions Integrado com RDS Monitoring Full API Managable
  • 24. Auto ScalingAuto Scaling Auto Scaling is a web service that enables you to automatically launch or terminate Amazon Elastic Compute Cloud (Amazon EC2) instances based on user-defined policies, health status checks, and schedules.
  • 25. AWS CloudWatch /MonitoringAWS CloudWatch /Monitoring
  • 26. The EndThe End 1. 2. 3. 4. 5. 6. What is Docker? Fig Elastic Load Balancing Deep Dive and Best Practices AWS Webcast - High Availability with Route 53 DNS Failover AWS Elastic Beanstalk and Docker Paver: easy build and deployment automation for Python projects
  • 27. provides AWS Development & DevOps services Crystalnix Drop us a note to get a quote from our experts contacts@crystalnix.com