Servers. Servers. NAT Public Subnet: 172.30.128.0/20. Internet Gateway. VPC Gateway VPC: 172.30.0.0/16



Similar documents
Alfresco Enterprise on AWS: Reference Architecture

Application Security Best Practices. Matt Tavis Principal Solutions Architect

Introduction to DevOps on AWS

TECHNOLOGY WHITE PAPER Jan 2016

319 MANAGED HOSTING TECHNICAL DETAILS

Deploy Remote Desktop Gateway on the AWS Cloud

Every Silver Lining Has a Vault in the Cloud

How To Create A Virtual Private Cloud On Amazon.Com

How To Set Up Wiremock In Anhtml.Com On A Testnet On A Linux Server On A Microsoft Powerbook 2.5 (Powerbook) On A Powerbook 1.5 On A Macbook 2 (Powerbooks)

Cloud Computing with Amazon Web Services and the DevOps Methodology.

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Migration Scenario: Migrating Backend Processing Pipeline to the AWS Cloud

Amazon Elastic Beanstalk

Building Energy Security Framework

TECHNOLOGY WHITE PAPER Jun 2012

Using ArcGIS for Server in the Amazon Cloud

Razvoj Java aplikacija u Amazon AWS Cloud: Praktična demonstracija

Using ArcGIS for Server in the Amazon Cloud

Primex Wireless OneVue Architecture Statement

Netop Environment Security. Unified security to all Netop products while leveraging the benefits of cloud computing

Deploy XenApp 7.5 and 7.6 and XenDesktop 7.5 and 7.6 with Amazon VPC

The steps will take about 4 hours to fully execute, with only about 60 minutes of user intervention. Each of the steps is discussed below.

Active Directory Domain Services on the AWS Cloud: Quick Start Reference Deployment Mike Pfeiffer

KeyControl Installation on Amazon Web Services

Hudson configuration manual

Securing the Microsoft Platform on Amazon Web Services

Famly ApS: Overview of Security Processes

RED HAT CLOUDFORMS ENTERPRISE- GRADE MANAGEMENT FOR AMAZON WEB SERVICES

Managing Multi-Tiered Applications with AWS OpsWorks

Deploying for Success on the Cloud: EBS on Amazon VPC. Phani Kottapalli Pavan Vallabhaneni AST Corporation August 17, 2012

Simone Brunozzi, AWS Technology Evangelist, APAC. Fortress in the Cloud

Amazon Web Services Primer. William Strickland COP 6938 Fall 2012 University of Central Florida

unisys Unisys Stealth(cloud) for Amazon Web Services Deployment Guide Release 1.0 January

OpenStack. Orgad Kimchi. Principal Software Engineer. Oracle ISV Engineering. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Auto-Scaling WebApplication. Securityinthe Cloud. Stephen Coty. Chief Security Evangelist

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

GIS and the Cloud. Richard Cantwell

Deploying Virtual Cyberoam Appliance in the Amazon Cloud Version 10

ArcGIS 10.3 Server on Amazon Web Services

Financial Services Grid Computing on Amazon Web Services January 2013 Ian Meyers

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

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

WE RUN SEVERAL ON AWS BECAUSE WE CRITICAL APPLICATIONS CAN SCALE AND USE THE INFRASTRUCTURE EFFICIENTLY.

AWS CodePipeline. User Guide API Version

CLOUD COMPUTING WITH AWS An INTRODUCTION. John Hildebrandt Solutions Architect ANZ

Cloud Computing Disaster Recovery (DR)

Networking Configurations for NetApp Cloud ONTAP TM for AWS

FortiGate-AWS Deployment Guide

Enterprise Cloud Security via DevSecOps

APP DEVELOPMENT ON THE CLOUD MADE EASY WITH PAAS

RemoteApp Publishing on AWS

TechNote. Configuring SonicOS for Amazon VPC

EEDC. Scalability Study of web apps in AWS. Execution Environments for Distributed Computing

JAVA IN THE CLOUD PAAS PLATFORM IN COMPARISON

How To Create A Virtual Private Cloud In A Lab On Ec2 (Vpn)

ArcGIS for Server in the Amazon Cloud. Michele Lundeen Esri

IAN MASSINGHAM. Technical Evangelist Amazon Web Services

Implementing Microsoft Windows Server Failover Clustering (WSFC) and SQL Server 2012 AlwaysOn Availability Groups in the AWS Cloud

Chapter 9 PUBLIC CLOUD LABORATORY. Sucha Smanchat, PhD. Faculty of Information Technology. King Mongkut s University of Technology North Bangkok

Microsoft Windows Server Failover Clustering (WSFC) and SQL Server AlwaysOn Availability Groups on the AWS Cloud: Quick Start Reference Deployment

Deep Dive: Infrastructure as Code

AWS Security. Security is Job Zero! CJ Moses Deputy Chief Information Security Officer. AWS Gov Cloud Summit II

How to Grow and Transform your Security Program into the Cloud

Extending your Enterprise IT with Amazon Virtual Private Cloud. Oyvind Roti Principal Solutions Architect, AWS

About the VM-Series Firewall

Cloud computing - Architecting in the cloud

Oracle Database 11g on Amazon EC2 Implementation Guide

Scalable Architecture on Amazon AWS Cloud

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

AWS at Telenor Digital. Internet Services for the next Billion

ITIL Asset and Configuration Management in the Cloud. January 2016

How To Use Aws.Com

Fault-Tolerant Computer System Design ECE 695/CS 590. Putting it All Together

Cloud models and compliance requirements which is right for you?

Automation & Open Source. How to tame the Cloud?

Running Oracle Applications on AWS

Lets SAAS-ify that Desktop Application

Fundamentals of Continuous Integration

Cloud Models and Platforms

Storage Options in the AWS Cloud: Use Cases

AWS Directory Service. Simple AD Administration Guide Version 1.0

DevOps Course Content

Azure Day Application Development

Introduction to AWS in Higher Ed

Architecture Statement

Git Branching for Continuous Delivery

AWS Database Migration Service. User Guide Version API Version

Windows PowerShell Desired State Configuration (DSC) on the AWS Cloud: Quick Start Reference Deployment Mike Pfeiffer


November 12 th 13 th London: Mastering Continuous Integration with Jenkins

Migrating a running service to AWS

HADOOP BIG DATA DEVELOPER TRAINING AGENDA

Cloud & DevOps Program Vision and Strategy. Jason Snyder, Steve Martino, and Erica Bradshaw

Meister Going Beyond Maven

The Virtualization Practice

Transcription:

.0 Why Use the Cloud? REFERENCE MODEL Cloud Development April 0 Traditionally, deployments require applications to be bound to a particular infrastructure. This results in low utilization, diminished efficiency, and inflexibility. The cloud enables applications to be dynamically deployed onto the appropriate infrastructure at runtime, an elastic aspect that allows applications to scale and grow on demand without needing traditional patches or upgrades. This IAM Development describes the key infrastructure components required for Cloud adoption..0 Network View: Infrastructure Hosted on Amazon Web Services (AWS) In this model, the bulk of traffic including all user traffic passes across the internet gateway to AWS publicly routable network space. (Some privileged traffic is allowed over a back-end VPN connection to Harvard network space.) Most of this traffic is PAT d through a single IP address on Harvard network space, but direct one-to-one NATing is also available if needed. This model has only a loose dependence on internal Harvard network services, but access is still required. Ideally, these dependencies are not required for normal runtime functioning of hosted applications, but instead are limited to management traffic, secure data movement, and other cron or batch jobs. Note: Single AZ depicted. Host 0.x.y. Host 0.x.y. 0.x.y. Harvard Data Center Harvard 8.0.a.b - NAT VPN PNAT Virtual Private.0.. Host.0.. RDS Databases Host.0.. Private Subnet:.0.0.0/ VPC:.0.0.0/ AWS Services Outside VPC VPC NAT Public Subnet:.0.8.0/0 S Storage Elastic IP Addressing VPC:.0.[0.-.], mask..0.0 Private Subnet:.0. [0.0-.], mask..8.0 Public Subnet:.0. [8.0-.], mask..0.0 Private Route Table Local:.0.0.0/ VGW: 0.0.0.0/8 NAT: 0.0.0.0/0 Public Route Table Local:.0.0.0/ IGW: 0.0.0.0/0 Note: Single AZ depicted. Addressing VPC:.0.[0.-.], mask..0.0 Private Subnet:.0.[0.0-.], mask..8.0 Public Subnet:.0.[8.0-.], mask..0.0. Multiple Availability Zones Private Route Table Local:.0.0.0/ VGW: 0.0.0.0/8 NAT: 0.0.0.0/0 Public Route Table Local:.0.0.0/ IGW: 0.0.0.0/0 Diagram.0.: Network View: Infrastructure Hosted on AWS For production applications, infrastructure components and instances should span more than one availability zone (AZ) in an AWS region at least two. This protects against loss at the data center level. For each AZ, you will need to duplicate subnets, instance pools, NAT instances, and storage. Objects such as load balancers and databases will need to be spanned across AZs, and auto-scaling groups should be defined to assure that instances are distributed across AZs, usually with at least one instance available in each AZ.

. ELB Subnets AWS recommends as best practice placing elastic load balancers (ELBs) into AWS s own subnets, separate from instances. This simplifies configuration, since ELBs host no data or application logic.. Data Subnets For ease of auditing and securing sensitive data, it may make sense to place databases and instances hosting sensitive data at rest on dedicated subnets. This allows for explicit ACLs and rules limiting access to these target services.. Public Versus Private Subnets In general, placing hosts on the public subnet is a simpler, cleaner configuration, since each host is automatically NAT d to the ; this simplifies patching, upgrading, and access to services and data stored outside the VPC (such as S buckets, SQS queues, etc.). Using security groups on these hosts in the public subnet provides strong isolation from publicly routed traffic while also allowing for traffic egress. The use of the private subnet should, in general, be limited to guests that require more complete isolation from the. In order to access data and services outside the VPC, NAT instances are required in each AZ, and currently are single points of failure. Because of this, access to the and publicly routed AWS networks would not be in the critical path for production functioning of these hosts.. Use of NAT and Proxy Instances For instances hosted on private subnets, the general model is to use NAT hosts and routes to provide access to services outside the VPC, which then are single points of failure. While you can place a NAT instance into an auto-scaling group that assures that it is restarted if terminated, the use of a single guest limits bandwidth.. Planning VPC Network Space for Growth Even if you are using a VPC model that is isolated from the data center network, if there is a chance you may want to link multiple VPCs in the future (using a VPN connection) and allow routing between the two VPCs, you should plan for this now in how you choose your network space. One example is to use.0.0.0/ for one VPC, and.9.0.0/ for the next. This allows for more than 0 VPCs to be interconnected without IP overlap. Similarly, for VPCs isolated from the Harvard network, network spaces such as 0.X. 0.0/ allow for upwards of non-overlapping VPC networks..0 Web Application Network View Users Bastion ELB: appportal.iam.harvard.edu Public Zone S Storage Data Batch PostgreSQL Application PIN Auto-Scaling Group Private Zone VPN VPN Connection Firewall Auth-LDAP Diagram.0.: Web Application Network View

. Key Points The Web application interacts with end users via an elastic load balancer hosted in the public zone and accessed via gateway The ELB is set with an SSL certificate stored within AWS IAM All data resides in a PostgreSQL RDS instance, hosted in the private zone of the VPC, which has a connection to the HUIT data center via a VPN connection Initial data loads and incremental updates are supplied from internal HUIT resources via the S bucket The batch server creates Initial data structures and populates the database with initial data and incremental updates from the HUIT data center The application interacts with the database and private HUIT data center resources, and resides in an auto-scaling group in order to provide scalability and redundancy across two AZs The application is configured and deployed by a puppet module. Major Configuration Components Web server: Apache. mod_auth_cas apache module for CAS based authentication Shibboleth service provider for SAML-based authentication The Web application resides in a Java container hosted by Apache Tomcat (requires jdk).0 Continuous Delivery Continuous delivery enables the automation of the entire software delivery system from development build and deployment to test and release to production through a series of steps known as the delivery pipeline.the diagram below describes the continuous delivery workflow for creating an AWS AMI from the development environment and using it in upper environments. The Jenkins continuous integration (CI) server pulls the code changes in the source repository and does the deployment in the development environment. When development reaches a milestone (a stable state), the CI server creates an AWS AMI based on a predefined trigger. This AMI is used in all upper environments with environment-specific configuration. Administrators Gi Administrators Check in code Pull code changes for build Run tests, generate builds, and orchestrate releases Store artifacts Deploy to dev Create AMI GitHub Jenkins CI Server Artifactory Maven Repository AMI AWS QA Stack Check in code Pull code changes for build Run tests, generate builds, and orchestrate releases Store artifacts Deploy to dev Create AMI Deploy to QA Deploy to QA AWS Dev Stack S Bucket Diagram.0.: Continuous Delivery Workflow

.0 Web Application Deployment Workflow Deployment activity follows the completed development process, including all operations necessary to prepare a system for assembly and transfer to the stack running on AWS. CloudFormation templates determine the resources required to operate the stack. The Jenkins orchestrator collects information from resources that are already running on AWS, as well as external resources running at Harvard, for carrying out subsequent activities in the deployment process. When an application has gone through all development and quality assurance steps, the AMI that is provisioned by the development process can be released to a stage environment for final validation. The AMI is then released to a production AWS account and ready for final testing; if critical bugs are found, we return to development release workflow iterations. In the diagram below, differences in workflow between development and production environments are represented in yellow and green, respectively. b DevOps Credential Repository Infrastructure Definitions a Jenkins Orchestrator Build Artifacts & Configurations Configurations Developers Source Code Configurations Software Repositories AMI Set credentials and keys and commit infrastructure definitions Set credentials and keys a Push build artifacts, configs, and commit Commit infrastructure code or configuration changes and software to storage definitions Release Git hook; initiate orchestrator buildor b Commit Set code credentials or configuration and infrastructure definitions Bundle via CloudFormation and publish templates AMI for changes the deployment in production Retrieve info about existing CloudFormation environments resources to configure infrastructure Release Push Git hook; build artifacts, initiate configurations, and software to storage orchestrator a Bundle build Orchestrator initiates and Publish AMI for the deployment in Production Environments deployment b Orchestrator initiates deployment Set credentials and 8 infrastructure CloudFormation definitions creates via CloudFormation creates or or updates stack CloudFormation templates updates stack 8 Pull artifacts, software, and configurations 9a Retrieve 9 Bundle info about image with existing deployed software Pull artifacts, software, and CloudFormation a resources to configurations 9 configure b infrastructure OR 9b Bundle image with deployed software CloudFormation 8 9a CloudFormation Stack 9b Diagram.0.: Web Application Deployment Workflow

. Key Points: Deployment Flow in Development Environment Deployment is initiated by changes in Git source control repositories and processed by the orchestrator, which represents a set of tools (discussed below) Generated artifacts and configurations are stored on S as a WAR archive and set of configuration templates Configurations are generated based on external sources including Credential Store (to store passwords and certificates), a git repository with configurations for puppet modules, the current state of the existing environment (captured from outputs of running CloudFormation stacks), and tagged resources of the given environment The application stack is deployed by a CloudFormation template based on artifacts and configurations captured earlier in the process An Amazon Machine Image (AMI) is created from application server built as part of the application stack after all tests are executed and passed against the given stack The released AMI is shared with all IAM AWS accounts and ready for the release process represented on the diagram above. Key Points: Deployment Flow in Production Environment In the process of the AMI release, the orchestrator collects configurations from the credentials repository and runs CloudFormation stack for the application that is to be deployed A release is done by updating auto-scaling groups with the new AMI and trigger update of the given CloudFormation stack