12 Factors App with DockerOn AWS
About Me : Ma BowenThoughtWorks Senior ConsultantWeb/RoR/Java/Scala Developer, 3 years DevOpsBook Translation Scala Cookbook AWS Certified Associate Solution Architect
12facters.net
Methodology for building Web AppsUse declarative formats for setup automationMaximum portability between execution environmentsSuitable for deployment on modern cloud platformskeep environment consistence, continuous deploymentScale with few changes to tooling/architecture etc
One Codebase, Multiple Deploys
Explicitly declare & isolate dependenciesRuby Gemfile, e.g bundle install —path vendor/bundle Debian/RPM
Store Config in EnvironmentTestDB HOST: testdbDB USR: readwriteDB PASS:123456StagingProductionDB HOST: stgdbDB USR: stgrwDB PASS:passwordDB HOST: proddbDB USR: prodrwDB PASS:password&
Backing services as attached resources
Build release run
ProcessesThe app is executed in the execution environmentas one or more processes.Twelve-factor processes are stateless and sharenothing
Port BindingThe twelve-factor app is completely self-containedand does not rely on runtime injection of awebserver into the execution environment to createa web-facing service.
ConcurrencyTwelve-factor app processes shouldnever daemonize or write PID files.Instead, rely on the operating system’sprocess manager (such as Upstart, adistributed process manager on a cloud
DisposabilityMaximize robustness with fast startupand graceful shutdown
Dev/prod parity
LogsTreat logs as event streams,A twelve-factor appnever concerns itself with routing or storage of itsoutput stream.
Admin processesASGScheduled actionInstanceOne Off taskRun admin/management tasks as oneoff processes
How do we apply this on AWSwith Docker
Some ContextYears AgoNowDev OpsDevOps,Cross Functional team8 teams40 teamsmonolithsmicro services(decomissioning )2 Data Centers2 DC 100 AWS accountsOps DeployingTMI && Continuous Delivery
Some GlossariesAMI: Amazon Machine ImageELB: Elastic Load BalancerASG: Auto Scaling GroupCloudwatch: AWS Monitoring ServiceCloudFormation: Manage AWS resources with JSON templateNewrelic: Application MonitoringSplunk: Enterprise Log Aggregator
Continuous Delivery Before
ProcessesCommitCIbase AMIRPMAMIAMIuser-datastaging configuser-dataprod configstagingAppproductionApp
ConsPackaging twice, RPM/AMIDuplicated effort for automate deploymentNot good for succession planDev/Test/Staging/Prod different
Docker - FTW
Expected0-downtime deploymentCommitCIauto-rollbackDocker ImageloggingmonitoringApp
AIM of shipperStandardising and simplify the way we deployPortable between teams and account
shipper.yml
Any web applicationgeneric AMIany web-app frameworkany programming languageany Linux variantnginxSplunk supportcaptures stdout/stderrrequestsno appsupport requiredCloudWatch supportalerts you when service is downvia email or web-hooksupportingservicesNew RelicAuto-scalingmultiple serversload-balancingsupport for scaling schedules CONFIGZero-downtimedeploymentsyourapplicationsafe upgrades app/ safe config changesNew Relic supportlog collectorapplication monitoringsystem monitoringdeployment notificationSplunkdocker-registry
generic AMIrequestsnginx CONFIGyour application app/ log collectorsupportingservicesNew RelicSplunkdocker-registry
Actual Process
app imageenv varsshipper.ymlAWS resourcesapp imageshippercf templateupdatecf config
Immutable Deployment (1/2)
Immutable Deployment (2/2)
Docker V2 registry
Deployed 70 systems
Next StepSupport batched jobsECS/ECRSwarm/Kubernates
Finiambowen.github.ioiambowen.m@gmail.com
New Relic Splunk generic AMI supporting services your application docker-registry. Actual Process. shipper.yml cf template shipper cf config update app image AWS resources env vars app image. Immutable Deployment (1/2) Immutable Deployment (2/2) Docker V2 regis
Combining SDN and NFV SDN (fabric) and NFV (overlay) are managed separately Increased operational complexity / opex Difficult to optimize across different stacks Lack of visibility for troubleshoot and end-to-end optimization Separate resource pools OpenStack / K8S Ctrl App Ctrl App Ctrl App Ctrl App Ctrl App Ctrl App Ctrl App Ctrl App Ctrl App .
Once an app is loaded, right-click the app icon on the Teams app bar, and select "pin" Pin a team app Click the " " at the top of a channel and select the app to add from the list PowerPoint 2016Build & run custom apps with Power Apps Expand app screen Click the icon to expand the app to full screen Chat within the app
To build your first app with Reading App Builder: 1. Launch Reading App Builder from its icon on the desktop. 2. Click New App on the toolbar. The New App wizard will appear. 3. On the first page of the wizard, specify the App Name, such as Dogon Stories, Supyiré Proverbs, etc. This is the main title of your app and will be seen by the user.
Creating new Lightning Page using Lighting App Builder Salesforce Lightning pages can be created using Lightning App Builder. To create, navigate to Build Lightning Bolt Lightning App Builder New. Lightning App Builder - App page. In this step, select App page and click on next button as shown below. Lightning App Builder
USA YOUTH SABHA SAHAJANAND SWAMI MAHARAJ SEMESTER PART I Swami Shriji Table of Contents Aashirvād App. B Week 1 Week 2 Week 3 Week 4 App. F Week 5 Week 6 App. I 1 2 App. A 3 App. C 10 17 25 32 39 App. H
To download the Lutron App onto an Apple device, open the App Store app and using the search feature, search for the Lutron App. Select the Lutron App in the search results and click on GET to begin downloading the application. On the next screen choose Agree & Continue and the Lutron App will begin to download onto the device.
How to promote your app iPhone app review websites iPhone app review websites are hungry for new apps. Try to submit reviews of your iPhone/iPad app for free as many times as you can. Friends and family don't hesitate to promote the app to friends, neighbors, colleagues and family, they are your launching pad in App Store.
The to-do list app with Facebook Login on PhoneGap 78 Summary 80 Chapter 5: Sprucing Up the App Using Animations and Mobile Design 81 Adding animations to your web app 81 Adding mobile CSS styles to your app 85 Porting your web app to PhoneGap 88 Testing your app on iOS 90 Testing your app on Android 91 Summary 91 www.allitebooks.com