index [] · index numbers 512mb of memory failing to meet, 62, 342, 348 requirement for, 7 99.99%...

22
469 INDEX Numbers 512MB of memory failing to meet, 62, 342, 348 requirement for, 7 99.99% (four nines), 160 99.999999999% (eleven nines), 160 A Access Keys, 27–28, 37 accreditation, 27–28 ACID (atomicity, consistency, isolation, and durability), 158 ActiveRecord Delayed Job in, 255–256 introduction to, 162 in Ruby/Rails apps, 217 ActiveState, 352 add-ons architecture and, 117 Cassandra, 119, 222–224 CouchDB, 50, 119, 224–226 creating, 127–130 data stores in, 50 ecosystem of, 116–117 ElasticSearch, 120 Exceptional, 121 IndexTank, 120 installing from CLI, 125–127 installing from Dashboard, 122–125 introduction to, 115 LogEntries, 121 logging, 120–121 Loggly, 121 Logplex, 121 for mobile apps, 405–409 MongoDB, 118–119 monitoring, 121 Neo4j, 119 NoSQL-based data stores, 118 Papertrail, 121 popular, 117–121 Postgres. See Postgres databases Ranger, 121 Redis, 119 search, 119–120 Sentry, 121 Solr, 120 Sphinx, 120 SQL-based data stores, 118 StillAlive, 121 summary of, 131 Admin users, 198 administration of applications overview of, 146–152 tasks in, 20 users in, 198 Admins, 152 Advanced Package Tool (APT), 272 AJAX, 390–391 Akamai, 41 Akka, 335 aliases, 83 Amazon CloudFront by. See CloudFront data centers of, 25 DynamoDB by, 48, 51 EC2 by. See Amazon Elastic Compute Cloud (Amazon EC2) Elastic Block Store by, 29, 159–160 Machine Image by, 60 Relational Database Service by, 50, 118, 210–215 S3 by. See Amazon Simple Storage Service (Amazon S3) Web Services by, 38, 117, 182, 210–215 COPYRIGHTED MATERIAL

Upload: others

Post on 28-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

469

INDEX

Numbers

512MB of memoryfailing to meet, 62, 342, 348requirement for, 7

99.99% (four nines), 16099.999999999% (eleven nines), 160

A

Access Keys, 27–28, 37accreditation, 27–28ACID (atomicity, consistency, isolation, and

durability), 158ActiveRecord

Delayed Job in, 255–256introduction to, 162in Ruby/Rails apps, 217

ActiveState, 352add-ons

architecture and, 117Cassandra, 119, 222–224CouchDB, 50, 119, 224–226creating, 127–130data stores in, 50ecosystem of, 116–117ElasticSearch, 120Exceptional, 121IndexTank, 120installing from CLI, 125–127installing from Dashboard, 122–125introduction to, 115LogEntries, 121logging, 120–121Loggly, 121Logplex, 121for mobile apps, 405–409MongoDB, 118–119monitoring, 121

Neo4j, 119NoSQL-based data stores, 118Papertrail, 121popular, 117–121Postgres. See Postgres databasesRanger, 121Redis, 119search, 119–120Sentry, 121Solr, 120Sphinx, 120SQL-based data stores, 118StillAlive, 121summary of, 131

Admin users, 198administration of applications

overview of, 146–152tasks in, 20users in, 198

Admins, 152Advanced Package Tool (APT), 272AJAX, 390–391Akamai, 41Akka, 335aliases, 83Amazon

CloudFront by. See CloudFrontdata centers of, 25DynamoDB by, 48, 51EC2 by. See Amazon Elastic Compute Cloud

(Amazon EC2)Elastic Block Store by, 29, 159–160Machine Image by, 60Relational Database Service by, 50, 118,

210–215S3 by. See Amazon Simple Storage Service

(Amazon S3)Web Services by, 38, 117, 182,

210–215

bindex.indd 469bindex.indd 469 09/01/13 6:50 PM09/01/13 6:50 PM

COPYRIG

HTED M

ATERIAL

470

Amazon Elastic Compute Cloud (Amazon EC2) – AspectJ

Amazon Elastic Compute Cloud (Amazon EC2)Database.com vs., 181e-mail in, 57external data stores in, 226in Heroku, 4–6introduction to, 3–4

Amazon Machine Image (AMI), 60Amazon Simple Storage Service (Amazon S3)

buildpacks in, 369, 372Clojure apps in, 326Django apps in, 309fi le uploads in, 47Grails apps in, 342introduction to, 8Node.js apps in, 317PHP apps in, 347in release management, 104–105Scala apps in, 334snapshots of databases in, 160static assets in, 36–40

Amazon Web Services (AWS) APIs, 38, 117, 182AMI (Amazon Machine Image), 60Android devices. See mobile applicationsAnorm, 328Ant, 57, 274–275, 294AOP (aspect-oriented programming), 281Apache

Ant by, 57, 274–275, 294Cassandra by, 119, 222–224CouchDB by, 50, 119, 224–226HTTP Server by, 347Ivy by. See IvyLucene by, 119–120Maven by. See MavenSoftware Foundation of, 222Subversion by, 74

apex domains, 67, 83Apex sharing rules, 200Apex triggers, 203–204APIs

Bulk, 182Chatter. See Chatter APIsJava Persistence, 281keys for, 188leveraging, 145–146Metadata, 182REST. See REST APIsStreaming, 182usage notifi cations for, 192

AppleApp Store of, 385iPads by. See mobile applicationsiPhones by. See mobile applicationsMacs by. See Macsoperating systems by. See Mac OS XXcode Developer Tools by, 272

application portfolio management, 23–24Applications information, 150–152APT (Advanced Package Tool), 272Arab Spring, 411architecture

accreditation in, 27–28add-ons and, 117Amazon CloudFront and, 41–43Amazon S3 and, 36–40availability zones in, architecturecertifi cations in, 27–28compliance in, 27–28, 32–33content delivery networks in, 18, 36–43data at rest in, 32data in transit in, 32data retention in, 27data stores in, 18disaster recovery in, 28–29dyno isolation in, 26encryption in, 32–36frameworks in, 17–18international apps in, 41–43introduction to, 17–18languages in, 17–18logs in, 33in mobile apps, 384–389network security and, 25–26pace layering in, 21–24passwords in, 31physical security and, 25redundancy, 28–31reliability in, 28–31security and, 25–27, 31–33SSL in, 33–36stack-layer security in, 26static assets in, 18, 36–43summary of, 43third-party providers and, 32–33transparency in, 29–31in twelve-factor apps, 18–20

Argent Aspen, 5AspectJ, 281

bindex.indd 470bindex.indd 470 09/01/13 6:50 PM09/01/13 6:50 PM

471

aspect-oriented programming (AOP) – cache-hit ratios

aspect-oriented programming (AOP), 281Aspen, 5Atlassian Bamboo, 298atomicity, consistency, isolation, and durability

(ACID), 158attributes, 175authentication, 98, 198–199, 262automation

in Database.com, 201–204of Postgres health checks, 160of process management, 6–7

availability zones, architectureAWS (Amazon Web Services) APIs, 38, 117, 182,

210–215AWS Management Console, 38–40,

211–215

B

B2C (business-to-consumer), 412BaaS (back end as a service), 405BAAs (business associate agreements), 28back end, 388–394back end as a service (BaaS), 405background jobs. See also Delayed Job (DJ),

253–261BackgroundThread plugin, 343backing services, 19Backups & Jobs, 210backups in Postgres, 169–171Backups in Redis, 221Badious Bamboo, 5bare domains, 67, 83Basecamp, 102BASIC, 370–375Basic authentication, 98Beans, 281Beckwith, Burt, 342beta status add-ons, 117binary dependencies, 366–370binary large objects (BLOBs), 48bin/compile, 353–358, 373–375bin/detect, 353, 373binding to ports

in Clojure, 327, 343introduction to, 62–63, 264in Java, 297in Node.js, 318in PHP, 348

in Python, 310in Scala, 335

bin/release, 358–359, 375bit rot, 10Blackberry devices. See mobile applicationsBlassic binary, 370–375BLOBs (binary large objects), 48BoxCar, 405, 409buckets

in Amazon S3, 37–40in CloudFront, 41–43introduction to, 27in release management, 103–104

build scripts, 373build stages, 19Builder, 241–243buildpacks

BASIC interpreter in, 370–375bin/compile in, 353–358, 373–375bin/detect in, 353, 373bin/release in, 358–359, 375Blassic binary in, 370–375build scripts in, 373creating apps in, 377–380creating custom, 370–380deploying apps to Heroku in, 377–380introduction to, 351–352.NET apps and, 359–362packaging binary dependencies in,

366–370Perl apps and, 362–366pushing to public Git repositories, 376–377summary of, 380Vulcan in, 370–375workings of, 352–359

Bulk API, 182Bundler

Delayed Job in, 255–256introduction to, 235–238Rails apps and, 239–240in release management, 94–95social apps and, 440

business associate agreements (BAAs), 28business-to-consumer (B2C), 412

C

C# programs, 359–362cache-hit ratios, 167–168

bindex.indd 471bindex.indd 471 09/01/13 6:50 PM09/01/13 6:50 PM

472

caching – command-line interfaces (CLIs)

cachingin Clojure apps, 326in Groovy, 342in Java apps, 297–298in Node.js apps, 317in PHP apps, 347in porting apps, 52–53, 263in Python apps, 309in Ruby, 261–262in Scala apps, 334in session management, 296

CakePHP, 347Campfi re, 102Camping, 234cancelling queries, 176Canonical Name (CNAME), 66, 83Canvas apps

contest apps and, 416, 424creating, 412–416deploying to Heroku, 424–429Page of, 412

CAs (certifi cate authorities), 34–35Cassandra, 119, 222–224Catalina, 281Catalyst, 362CDNs (content delivery networks). See content

delivery networks (CDNs)Cedar, 4–6, 351Cedexis, 41Celadon Cedar, 4–6, 351central data repositories, 388–389centralized models, 74certifi cate authorities (CAs), 34–35certifi cations, 27–28change sets, 203Chatter APIs

Amazon Web Services and, 38, 182data stores and, generally, 182introduction to, 49release of, 411for social apps, 429–444social graphs in, 204

Chen, David E., 27chroot, 8classifi cations, 22ClearDB

introduction to, 50–51MYSQL and, 118

PHP apps and, 347SQL-based data stores and, 158third-party data stores and, 208–210

CLI (command line interface). See command-line interfaces (CLIs)

Clojurebinding to ports in, 327, 343caching in, 326confi guration variables in, 326, 342data stores in, 326dependencies in, 326, 342e-mail in, 326–327, 342external programs in, 327, 342fi lesystems in, 326logging in, 327, 342long-running processes in, 327moving domains in, 328, 343scaling up vs. scaling out in, 327, 342–343session management in, 326shutting down in, 327, 343for software development, generally, 319–328static assets in, 326Web containers in, 326, 342Web servers in, 326, 342

CloudAMPQ, 318, 327Cloudant, 119, 224–226CloudBerry Explorer, 38CloudFront

architecture and, 41–43Clojure apps in, 326Django apps in, 309Grails apps in, 342Node.js apps in, 317PHP apps in, 347Scala apps in, 334

CNAME (Canonical Name), 66, 83codebases, 18–19CoffeeScript, 331collaborators, 83–84Collections tab, 219collectstatic, 309CometD, 389command-line interfaces (CLIs)

Cassandra in, 223–224ClearDB in, 208Cloudant in, 225–226creating databases in, 163deploying apps in, 77–79

bindex.indd 472bindex.indd 472 09/01/13 6:50 PM09/01/13 6:50 PM

473

comma-separated value (CSV) spreadsheets – data retention

destroying databases in, 169followers for databases in, 165forking databases in, 164Heroku interactions via, 77–79installing apps from, 125–127maintenance mode in, 106MongoDB in, 218Proximo in, 227–229RDS tools in, 214RedisGreen in, 220–222Spring Roo in, 281

comma-separated value (CSV) spreadsheets, 189–190

compliance, 27–28, 32–33Compojure, 319–321Composer, 347Concurrent Versions System (CVS), 74confi guration variables (confi g vars)

in Clojure, 326, 342in Node.js, 317in PHP, 347in porting apps, 54–55in Python, 309in release management, 94–97in Scala, 334in session management, 296

console process type, 245containerless applications, 275–281content delivery networks (CDNs)

in architecture, 18, 36–43caching in, 262CloudFront as, 41–43introduction to, 15

contest apps, 416–424continuous integration, 107–114, 298continuous protection, 159–160Couchbase’s Memcache. See MemcacheCouchDB, 50, 119, 224–226Coyote, 286CPAN, 363, 365create, read, update, and delete

(CRUD), 199CRM (customer relationship management), 22,

158, 407cron jobs, 57–59cross-site scripting (XSS), 31CRUD (create, read, update, and

delete), 199

CSS fi les, 54CSV (comma-separated value) spreadsheets,

189–190cURL

buildpacks and, 366, 368Clojure and, 327Grails and, 342Heroku API and, 145Java and, 296PHP apps and, 348Ruby and, 264Scala apps and, 335URL transfer tasks in, 61

custom collaborators, 83–84custom domains, 83, 133–135custom error pages, 103–106customer relationship management (CRM), 22,

158, 407CVS (Concurrent Versions System), 74Cyberduck, 38

D

DaaS (data as a service), 18, 158–159, 182Dalli, 262Dancer, 362Dashboard

Cassandra in, 223ClearDB in, 208–210Cloudant in, 224–225custom collaborators in, 83–84custom domains in, 83deploying apps in, 80–87installing apps from, 122–125introduction to, 80–82JustOneDB in, 216MongoDB in, 218names of apps in, 82Proximo in, 227RedisGreen in, 221–222scaling resources in, 84–87

data as a service (DaaS), 18, 158–159, 182

data caching, 261data clips, 173–174data integrity, 200–201Data Loader, 188data retention, 27

bindex.indd 473bindex.indd 473 09/01/13 6:50 PM09/01/13 6:50 PM

474

data storage vs. fi le storage – development databases

data storage vs. fi le storage, 192data stores

in architecture, 18in Clojure, 326Database.com as. See Database.comin Groovy, 342Java and, 296in Node.js, 317in PHP, 347porting apps to Heroku and, 48–51, 263Postgres as. See Postgres databasesin Python, 309in Scala, 334third-parties for. See third-party data stores

Database Interface (DBI), 217Database Session Plugin, 342Database.com

advanced features in, 199Apex triggers in, 203–204authenticating users in, 198–199automation in, 201–204creating databases in, 183–188creating sample app in, 193–198data integrity in, 200–201as data store, generally, 181–182exporting data in, 188–191importing data in, 188–191managing change in, 202–203managing databases in, 191–192managing users in, 198–199in porting apps, 49–50profi les in, 199–200sharing in, 199–200for social apps, 430–444social graphs in, 204startup in, 182–183storing fi les in, 203summary of, 204–205test databases in, 202–203validation rules in, 200–201workfl ow rules in, 201–202

databases in Postgres. See Postgres databases

DataNucleus JPA, 56DBI (Database Interface), 217DD (deployment descriptor) fi les, 294DDoS (Distributed Denial of Service), 26de Icaza, Miguel, 359decide() method, 68

Delayed Job (DJ)deploying apps to Heroku in, 257–268introduction to, 253–255setup of, 255–257testing, 258–261

delegated authentication, 198–199deleting databases, 168–169dependencies

binary, 366–370in Clojure, 326, 342declaration of, 19in Java, 272–275in Node.js, 317in PHP, 347–348porting apps to Heroku and,

56–57, 263in Python, 310in Ruby, 235–238in Scala, 334–335in session management, 296

deploy hooks, 102–103deploying applications

buildpacks in, 377–380command-line interface in, 77–79custom collaborators in, 83–84custom domains in, 83Dashboard in, 80–87Delayed Job in, 257–268Foreman in, 75–76Git in, 74–75, 79–80Heroku clients in, 76introduction to, 73–74management of, 148names of apps in, 82post deploy hooks in, 80in Rails, 244–247in Ruby, 244–247, 251–253,

257–268scaling resources in, 84–87in Sinatra, 251–253social apps in, 424–429summary of, 87–88Toolbelt installation and, 74–76

deploying WAR fi les, 294–295deployment descriptor (DD) fi les, 294destroying databases, 168–169developer operations (DevOps), 267development architectures, 384–389development databases, 178

bindex.indd 474bindex.indd 474 09/01/13 6:50 PM09/01/13 6:50 PM

475

DevOps (developer operations) – extension method

DevOps (developer operations), 267direct uploads, 64disaster recovery, 28–29Distributed Denial of Service (DDoS), 26distributed models, 74distribution, defi ned, 7DJ (Delayed Job). See Delayed Job (DJ)Django, 302–309DNS (Domain Name Service)

cached, 67Canonical Name and, 35, 42, 66Java apps and, 297management of, 85naked domains and, 67Python apps and, 311Ruby apps and, 264updating, 83, 134–135

DNSimple, 83DoD 5220.22-M (“National Industrial Security

Program Operating Manual”), 27Dollar, David, 75Domain Name Service (DNS). See DNS (Domain

Name Service)domains

apex, 67, 83bare, 67, 83in Clojure, 328, 343custom, 83in Dashboard, 83in DNS, 67fully-qualifi ed, 54, 83in Heroku Dashboard, 83moving, 66naked, 67, 83in Node.js, 318in PHP, 349in Python, 311in Scala, 336

“don’t repeat yourself” principle, 234downtime planning, 103–106drains, 60–61Drawbridge, 327Duffy, Frank, 21dump fi les, 171–172dynos

introduction to, 6–7isolation in, 8, 26manifolds in, 6–7in multi-dyno apps, 47

E

EAR (Enterprise Archive) fi les, 270Ebean ORM, 290–291EBS (Elastic Block Store), 29, 159–160EC2 (Elastic Compute Cloud). See Amazon Elastic

Compute Cloud (Amazon EC2)ecosystems, 116–117Elastic Block Store (EBS), 29, 159–160Elastic Compute Cloud (Amazon EC2). See

Amazon Elastic Compute Cloud (Amazon EC2)

ElasticSearch, 120eleven nines (99.999999999%), 160e-mail

in Clojure, 326–327, 342Java and, 296in Node.js, 317in PHP, 348porting apps and, 57, 263in Python, 310in Scala, 335SendGrid, 87

embedded databases, 48Embedded Jetty, 275–281encryption, 32–36Endpoint, 34–36Endpoint Information, 210enterprise applications, 268–271Enterprise Archive (EAR) fi les, 270enterprise resource planning (ERP),

21, 407EntityStore, 262ephemeral fi lesystems, 47erosion resistance, 10–11ERP (enterprise resource planning),

21, 407error pages, 106event streams, 20Eventlet, 310Evolutions, 332Exceptional, 121existing applications, 47–48,

51, 67–68existing data stores, 226–229exporting data, 188–191exporting processes, 19–20Express, 312–313, 317–318extension method, 241

bindex.indd 475bindex.indd 475 09/01/13 6:50 PM09/01/13 6:50 PM

476

external programs – GitHub

external programsin Clojure, 327, 342in Java, 296in Node.js, 318in PHP, 348porting apps and, 61, 264in Python, 310in Scala, 335

F

Facebook appsCanvas, 412–416for contests, 416–424deploying to Heroku, 424–429introduction to, 411–412PHP vs., 343

federated authentication, 198–199Ferret, 48fi eld updates, 201fi le storage, defi ned, 192fi le uploads, 47–48fi lesystems

caching in, 263in Clojure, 326in Groovy, 341in Java, 296in Node.js, 317in PHP, 346in Python, 309in Scala, 334traditional vs. ephemeral, 46–48

fi rewalls, 25–26Fisher, Robert, 342FlightCaster, 389Flying Sphinx, 48, 120following databases, 161Force.com, 181Foreman

confi guration variables in, 97deploying apps, 75–76Kensa and, 128–129

forking databases, 160–161, 164forks, 76four nines (99.99%), 160FQDNs (fully-qualifi ed domain names), 54, 83frameworks, defi ned, 17–18front end, 394–405

Fugu, 125–126fully-qualifi ed domain names (FQDNs), 54, 83

G

Gartner, 21Geddy, 317–318Gem Bundler, 19gems

Bundler, 235–238defi ned, 235Kensa, 127–130OAuth, 437Postgres, 239Rails, 127–130Rake, 177, 239Ruby, 76, 94–96, 108–109RubyGems for, 235–238in Sinatra apps, 251Tddium, 108–109Twilio Rbuy, 239Vulcan and, 366–368

gevent, 310Git. See also GitHub

buildpacks and, 376–377, 379in Canvas apps, 424–425in Clojure apps, 323–324command-line commands for, 78confi guration variables in, 95deploying apps in, 74–75, 79–80git remotes in, 77, 82, 91–93in release management, 91–93repositories in, 251–252, 376–377, 424–425in Sinatra apps, 251–252

git remotes, 77, 82, 91–93GitHub

binding to ports in, 62buildpacks and, 376–377, 379in Clojure apps, 327continuous integration in, 110–114gitignore in, 306in Grails apps, 343introduction to, 75–77Java and, 297in Node.js apps, 318in PHP apps, 348porting apps to Heroku and, 264in Scala apps, 335

bindex.indd 476bindex.indd 476 09/01/13 6:50 PM09/01/13 6:50 PM

477

GlassFish – International Traffi c in Arms Regulations (ITAR)

GlassFish, 55global positioning system (GPS), 385Goliath, 15Google, 311Gosling, Dr. James A., 268GovCloud (US), 28governance, 23GPS (global positioning system), 385Grails, 336–343Grails Database Session Plugin, 342graph databases, 119graphical user interfaces (GUIs), 80Graphs tab, 221Groovy

caching in, 342data stores in, 342fi lesystems in, 341introduction to, 336–343session management in, 342static assets in, 342

Growl, 409“Guidelines for Media Sanitization” (NIST

800-88), 27GUIs (graphical user interfaces), 80Gunicorn, 310

H

Hadoop, 49Hall, Ben, 359–360Hansson, David Heinemeier, 234Harris, Parker, 25Health Insurance Portability and Accountability

Act (HIPAA), 28Heapy, 310Heroku

client in, 76Dashboard in. See Dashboarddeploying apps to. See deploying applicationsdyno isolation in, 7–8dyno manifolds in, 6–7dynos in, 6–7erosion resistance in, 10–11Labs in, 55Manager in, 150–152for Mobile version of, 405Postgres in. See Postgres databasesprocess model in, 8–10

routing HTTP requests in, 13–15slug compiler in, 12–13stacks in, 4–6summary of, 15Toolbelt in. See Toolbeltversion control in, 11–12

Hibernate, 56, 281–286, 336Hiccup, 319, 322Hickey, Rich, 319higher-availability architecture, 160–161HIPAA (Health Insurance Portability and

Accountability Act), 28Homebrew, 234Hoover library, 310How Buildings Learn: What Happens After

They’re Built, 21HSQLDB (Hyper Structured Query Language

Database), 338hstore, 174–176HTML5 mobile applications

back end of, 390–394front end of, 394–405introduction to, 386–387writing, generally, 389

HTTPBasic authentication, 98caching, 52–53, 261–262porting existing apps and, 67–68requests, 13–15, 253–254

HTTParty, 440HTTPS, 67–68HTTPS over SSL, 66–68hybrid mobile applications, 387Hyper Structured Query Language Database

(HSQLDB), 338

I

importing data, 171–173, 188–191IndexTank, 120Info tab, 221integration testing, 90intelligent routing, 6IntelliJ, 329interactive voice response (IVR), 238international applications, 41–43International Traffi c in Arms Regulations

(ITAR), 28

bindex.indd 477bindex.indd 477 09/01/13 6:50 PM09/01/13 6:50 PM

478

Internet service providers (ISPs) – just-in-time (JIT) provisioning

Internet service providers (ISPs), 67Inversion of Control (IoC)

frameworks, 281I/O approaches, 286I/O bottlenecks, 167IoC (Inversion of Control)

frameworks, 281iOS devices. See mobile applicationsIronCache, 50IronMQ, 327isolation

in ACID, 158of dynos, 7–8, 26in twelve-factor apps, 19

ISPs (Internet service providers), 67ITAR (International Traffi c in Arms

Regulations), 28IVR (interactive voice response), 238Ivy

Grails and, 339, 342I/O approaches and, 286Java apps and, 294Scala apps and, 333–334

J

JAR (Java ARchive), 274Java

additional considerations in, 295–298

ARchive in, 274buildpacks in, 355–358caching in, 297–298containerless apps in, 275–281continuous integration in, 298dependencies in, 272–275Embedded Jetty and, 275–281Enterprise Edition of, 56, 268–271Hibernate and, 281–286introduction to, 267–268Linux and, 272Mac OS X and, 272memory management in, 298Naming and Directory Interface in, 270overview of, 268Persistence API in, 281Play framework and, 286–294porting apps to Heroku in, 295–297

session management in, 297–298Spring Framework and, 281–286summary of, 298–299Tomcat and, 281–286WAR fi les in, 294–295Windows and, 271

Java ARchive (JAR), 274Java Database Connectivity (JDBC),

162, 281Java Development Kit (JDK), 268, 271–272,

405–409Java EE (Java Platform, Enterprise Edition), 56,

268–271Java Message Service (JMS), 343Java Naming and Directory Interface (JDNI), 270Java Persistence API (JPA), 281Java Virtual Machine (JVM)

Clojure and, 319, 327Grails and, 336introduction to, 268Scala apps in, 328

JavaMelody Grails Plugin, 342JavaScript Object Notation (JSON), 218, 328–333JavaServer Faces (JSF), 56JavaServer Pages (JSP), 56, 269JBoss, 55JBoss Netty, 286JDBC (Java Database Connectivity), 162, 281JDK (Java Development Kit), 268, 271–272,

405–409JDNI (Java Naming and Directory

Interface), 270Jenkins app, 298Jetty, 56, 327, 334Jetty Runner, 275, 342JIT (just-in-time) provisioning, 199Jitterbit Data Loader, 189JMS (Java Message Service), 343JPA (Java Persistence API), 281JPython, 268jQMobile, 386jQuery Mobile, 386, 394JRuby, 268JSF (JavaServer Faces), 56JSON (JavaScript Object Notation), 218,

328–333JSP (JavaServer Pages), 56, 269just-in-time (JIT) provisioning, 199

bindex.indd 478bindex.indd 478 09/01/13 6:50 PM09/01/13 6:50 PM

479

JustOneDB – Macs

JustOneDB, 50, 215–217JVisualVM, 327JVM (Java Virtual Machine). See Java Virtual

Machine (JVM)

K

Kensa gem, 127–130key-value pairs, 175

L

LAMP (Linux, Apache, MySQL, PHP), 343languages for software development

in architecture, generally, 17–18Clojure, 319–328Grails framework for, 336–343Groovy, 336–343introduction to, 301Java. See JavaNode.js, 311–318PHP, 343–349Python, 302–311Ruby. See Ruby appsScala, 328–336summary of, 349

Launch DB Instance Wizard, 211–213Leiningen, 319, 325–326Lerdorf, Rasmus, 343LexiLoader, 189Lifty, 334Light Database.com, 200Light users, 198Linux

Git and, 11HTTP servers in, 310in LAMP, 343Maven in, 275OpenJDK 6 in, 272PHP in, 343production environments in, 90stacks in, 4–5Toolbelt on, 73, 76

Linux Containers (LXC), 8Lisp, 319local environment variables, 97local workstations, 234–235Log4j, 270

LogEntries, 121logging

add-ons for, 120–121in architecture, 33in Clojure, 327, 342event streams and, 20Java and, 296in Node.js, 317in PHP, 348porting apps and, 59–61,

264in Python, 310in Scala, 335viewing logs in, 136–140

LogglyClojure and, 327Grails and, 342introduction to, 121Java and, 270Node.js apps and, 317Python apps in, 310

logins, 81Logplex, 60, 121, 166long-running processes

in binding to ports, 264in Clojure, 327in Java, 297in Node.js, 318in PHP, 348–349porting apps and, 63–65in Scala, 335

Lucene, 119–120Lulz Security, 27LXC (Linux Containers), 8

M

Mac OS X. See also MacsGrowl notifi cations in, 409Java and, 272Maven and, 275Maven in, 275PHP in, 343Ruby with, 234

MacPorts, 272Macs

stacks in, 5Toolbelt on, 73, 76

bindex.indd 479bindex.indd 479 09/01/13 6:50 PM09/01/13 6:50 PM

480

Mailgun – moving domains

Mailgun, 57maintenance mode, 103–106MAMP, 343–344managing applications

administration options for, 146–152Admins in, 152API leveraging in, 145–146Applications information in, 150–152custom domains in, 133–135deploys in, 148Heroku Manager for, 150–152introduction to, 20, 133Members in, 152on mobile devices, 146–148multi-account options for, 149New Relic in, 141–144Nezumi in, 147performance tuning in, 140–145status page in, 147–148summary of, 153viewing logs in, 136–140Worqbench in, 148

managing change, 202–203managing databases, 166, 191–192managing users, 198–199Matsumoto, Yukihiro “Matz,” 234Matz’s Ruby Implementation (MRI), 5Maven

buildpacks in, 355–358containerless apps in, 280dependencies in, 272–275Grails and, 336, 342Java and, 268, 270–275Scala apps and, 334–335Spring Framework and, 285

Members, 152Memcache

introduction to, 15Java and, 270PHP apps and, 347Ruby apps and,

261–262Scala apps and, 334

MemcachierDjango apps in, 309introduction to, 50, 53Java and, 297Node.js apps in, 317

PHP apps in, 347Ruby apps and, 262

memory management, 62, 298Memory Quota Exceeded (R14)

errors, 62menu method, 241Metadata API, 182Microsoft SharePoint, 411Miyagawa, Tatsuhiko, 363mobile applications

add-ons for, 405–409back end of, 390–394BoxCar for, 409central data repositories for, 388–389development architectures in, 384–389front end of, 394–405HTML5 for, 386–389hybrid, 387introduction to, 383–384managing, 146–148native, 384–386Parse for, 406–407PubNub for, 409RhoConnect for, 407–408StackMob for, 405–406summary of, 409–410toolkits for, 405–409

model-view-controller (MVC), 234, 286, 302

MongoDB, 50, 118–119, 218–220MongoHQ, 218MongoLab, 218–220monitoring applications

add-ons for, 121introduction to, 133performance tuning in, 140–145summary of, 153viewing logs in, 136–140

monitoring databases, 166Mono framework, 359–362Motorola, 407moving domains

in Clojure, 328, 343in Node.js, 318in PHP, 349in porting apps, 66, 264in Python, 311in Scala, 336

bindex.indd 480bindex.indd 480 09/01/13 6:50 PM09/01/13 6:50 PM

481

MRI (Matz’s Ruby Implementation) – outbound messages

MRI (Matz’s Ruby Implementation), 5multi-account options, 149multi-dyno applications, 47multi-ingress, 159multiple data stores, 51multiple deploys, 18–19multiple environments, 19, 90–93Murty, James, 64MVC (model-view-controller), 234, 286, 302My Apps page, 82Myspace, 411MySQL

data stores and, 158databases in. See Postgres databasesimporting from databases in, 173third-party data stores in, 208–215

mysql2psql, 173

N

naked domains, 67, 83names of applications, 82Nancy, 359–362“National Industrial Security Program Operating

Manual” (DoD 5220.22-M), 27native mobile applications, 384–386Neo4J, 50, 119.NET applications, 359–362network security, 25–26New Relic

monitoring databases in, 167in performance tuning, 141–144Python apps in, 310in session management, 297

Nezumi, 147Nginx, 347NIST 800-88 (“Guidelines for Media

Sanitization”), 27Node.js

for back end, 390–391binding to ports in, 318caching in, 317confi guration variables in, 317data stores in, 317dependencies in, 317e-mail in, 317external programs in, 318fi lesystems in, 317

logging in, 317long-running processes in, 318moving domains in, 318scaling up vs. scaling out in, 318session management in, 317shutting down in, 318for software development, generally, 311–318static assets in, 317Web containers in, 317Web servers in, 317

Nodetime, 318Noir, 326NoSQL-based data stores, 118, 217–226

O

OAuthin Database.com, 198introduction to, 49social apps and, 430–437, 440, 442

object-relational mapping (ORM)in Java, 281, 283in Python, 302in Ruby/Rails apps, 217

objectsaccess to, 182, 412in ActiveRecords, 264Beans, 281binary large, 48in Database.com, 183–188in ORM. See object-relational mapping

(ORM)in Parse, 407in Rails, 262in Scala, 328security and, 49storage of, 36–40

onStart()/onStop() methods, 291Open Java Development Kit (OpenJDK) 6,

271–272Open Web Application Security Project, 32OpenRedis, 220Oracle, 271organization-wide defaults, 199origin, 91–93ORM (object-relational mapping). See

object-relational mapping (ORM)outbound messages, 201

bindex.indd 481bindex.indd 481 09/01/13 6:50 PM09/01/13 6:50 PM

482

PaaS (platform as a service) – porting applications

P

PaaS (platform as a service), 269pace layering

application portfolio management in, 23–24

classifi cation in, 22governance in, 23introduction to, 21reliability in, 22–23security in, 22–23systems of differentiation in, 21–22, 24systems of innovation in, 22, 24systems of record in, 21, 24

packaging binary dependencies, 366–370page caching, 52–53, 261Papertrail, 121Parse, 405–407pass-throughs, 65passwords, 31performance tuning

guidelines for, 145introduction to, 140–141New Relic in, 141–144third-party data stores in, 210

Perl applications, 362–366Perl Web Server Gateway Interface (PSGI), 363personnel gaps, 20PG Backups, 169–172PHI (protected health information), 28phone numbers, 241–244PhoneGap, 388, 394PHP

binding to ports in, 348buildpacks in, 353–355caching in, 347Canvas in, 412–416confi guration variables in, 347contest app code in, 416–424data stores in, 347dependencies in, 347–348deploying apps in, 424–429e-mail in, 348external programs in, 348fi lesystems in, 346logging in, 348long-running processes in, 348–349moving domains in, 349Quick Profi ler in, 348

scaling up vs. scaling out in, 348session management in, 347shutting down in, 349for social apps, generally, 412for software development, generally,

343–349static assets in, 347Web containers in, 347Web servers in, 347

physical security, 25PicCollage, 388piggybacking, 33PINs, 248–251Pip, 19, 303–304plans for databases, 167–168platform as a service (PaaS), 269Play framework, 286–294, 328–335POM (Project Object Model), 272–275popular add-ons, 117–121port binding, 19–20porting applications

add-on data stores in, 50binding to ports in, 62–63caching in, 52–53confi guration variables in, 54–55cron jobs in, 57–59data store selection in, 48–51Database.com in, 49–50dependencies in, 56–57e-mail in, 57embedded databases in, 48ephemeral fi lesystems vs., 47existing apps in, 47–48, 51, 67–68external programs in, 61fi le uploads in, 47–48HTTPS over SSL in, 66–68introduction to, 45–46in Java, 295–297logging in, 59–61long-running processes in, 63–65moving domains in, 66multi-dyno apps in, 47multiple data stores in, 51Postgres in, 48–49Ruby apps, 263–265scaling up vs. scaling out in, 62session management in, 51–52shutting down in, 65–66storing static assets in, 54

bindex.indd 482bindex.indd 482 09/01/13 6:50 PM09/01/13 6:50 PM

483

POST – Python apps

summary of, 68–69third-party DaaS providers in, 50–51traditional fi lesystems vs., 46–48Web containers in, 55–56Web servers in, 55–56

POST, 241post deploy hooks, 80Postgres databases

adding via command-line, 85–86adding via Dashboard, 85advanced features in, 173–176automated health checks in, 160backing up, 169–171buildpacks and, 365–366cancelling queries in, 176Clojure apps and, 319continuous protection in, 159–160creating, 161–163data clips in, 173–174deleting, 168–169followers in, 164–166forking, 164Grails apps and, 338higher-availability architecture in,

160–161hstore in, 174–176importing data in, 171–173installing, 121–127introduction to, 157–159Java apps and, 290–294managing, 166mobile apps and, 393monitoring, 166Node.js apps and, 314–315PHP apps and, 345–346plans for, 167–168porting apps in, 48–49Python apps and, 305Rails apps and, 238sample app creation in, 176–179schema-free storage in, 174–176sharing information in, 173–174SQL in, 118summary of, 179third-party alternatives to,

215–217PostgresSQL (PSQL), 162, 166presentation assets, 26, 36process model, 8–10

production databasescreating apps in, 176–179followers for, 166forking, 164plans for, 167

profi les, 199–200, 348Project Object Model (POM),

272–275protected health information (PHI), 28Proximo, 26, 227–229PSGI (Perl Web Server Gateway Interface), 363PSQL (PostgresSQL), 162, 166PubNub, 389, 405, 409pull requests, 76Pusher, 14pushing apps to Heroku. See also deploying

applicationsbuildpacks and, 376–377continuous integration in, 110–114databases in, generally, 178dependencies in, 237–238git push for, 79–80introduction to, 11Postgres databases in, 197in Rails, 244–245in Ruby, 12–13in Sinatra, 98–99versioning and, 100–101WebSockets and, 63

Python appsbinding to ports in, 310caching in, 309confi guration variables in, 309data stores in, 309dependencies in, 310e-mail in, 310external programs in, 310fi lesystems in, 309introduction to, 9Java and, 268logging in, 310moving domains in, 311PHP and, 348scaling up vs. scaling out, 310session management in, 309shutting down in, 310–311static assets in, 309Web containers in, 310Web servers in, 310

bindex.indd 483bindex.indd 483 09/01/13 6:50 PM09/01/13 6:50 PM

484

quality assurance (QA) – Ruby apps

Q

quality assurance (QA), 23, 90, 202–203queries

cancelling, 176in HSQLDB, 338in jQuery Mobile, 386, 394Slow, 221in SOQL, 183SOQL (Salesforce Object Query Language),

183in Squeryl, 328

Quick Profi ler, 348

R

R14 (Memory Quota Exceeded) errors, 62

RabbitMQ, 297Rack-based frameworks, 234Rack::Cache, 262Rails apps

ActiveRecord in, 217caching, 261–262creating, 193–198, 238–244Delayed Job in, 255–261deploying to Heroku, 244–247introduction to, 8–9Postgres and, 176–179RedisGreen in, 221Ruby and, 234, 238–244testing apps in, 247–248Twilio accounts in, 244

Rake gemsClojure and, 319, 323Postgres and, 178–179Ruby and, 239

rake process type, 245, 247Ramaze, 234Ranger, 121RDS (Relational Database Service), 50, 118,

210–215record ownership, 199Redis

add-ons, 119introduction to, 50Java and, 270as third-party data store, 220–222

Redis Queue (RQ), 310Redis To Go, 48, 53, 317RedisGreen, 220–221redundancy, 7, 28–31REE (Ruby Enterprise Edition), 5refreshing databases, 203Relational Database Service (RDS)

introduction to, 50MYSQL in, 118as third-party data store, 210–215

release managementconfi guration variables in, 94–97continuous integration in, 107–114custom error pages in, 103–106deploy hooks in, 102–103downtime planning in, 103–106introduction to, 89–90multiple environments in, 90–93rolling back releases in, 100–102securing development environments in,

97–99summary of, 114versioning in, 100–102

reliability, 22–23, 28–31Resources page, 86–87REST APIs

Chatter in, 204Database.com and, 187–188, 198for front end, 398–400introduction to, 182JustOneDB in, 217storing fi les in, 203

restoring database backups, 171RhoConnect, 405, 407–408Ring, 326role hierarchies, 200rolling back releases, 100–102RQ (Redis Queue), 310Ruby apps

ActiveRecord in, 217background jobs in, 253–261caching, 261–262confi guration variables in, 94–95Delayed Job in, 253–261dependencies in, 235–238deploying to Heroku, 244–247, 251–253,

257–268installing programs for, 234–235

bindex.indd 484bindex.indd 484 09/01/13 6:50 PM09/01/13 6:50 PM

485

Ruby Enterprise Edition (REE) – security tokens

introduction to, 12–13, 233Java and, 268Kensa, 127–130on local workstations, 234–235overview of, 234porting to Heroku, 263–265on Rails, 193–198Rails framework for, 238–248RedisGreen in, 221Sinatra framework for, 248–253summary of, 265Tddium in, 107–114testing, 247–248, 253, 258–261Twilio accounts for, 244writing, 238–244, 248–251

Ruby Enterprise Edition (REE), 5Ruby Version Manager (RVM), 235RubyGems, 235run stages, 19RVM (Ruby Version Manager), 235

S

S3 (Simple Storage Service). See Amazon Simple Storage Service (Amazon S3)

S3Fox Organizer, 38Salesforce Object Query Language

(SOQL), 183Salesforce.com

Chatter by, 411compliance and, 27Database.com by. See Database.comintroduction to, 18physical security and, 25

SAML (Security Assertion Markup Language), 198–199

Sarbanes-Oxley (SOX) Act, 27SASL (Simple Authentication and Security Layer),

262saved fi les, 48sbt (Simple Build Tool), 286Scala

binding to ports in, 335buildpacks in, 358–359caching in, 334confi guration variables in, 334data stores in, 334dependencies in, 334–335

e-mail in, 335external programs in, 335fi lesystems in, 334introduction to, 268logging in, 335long-running processes in, 335moving domains in, 336scaling up vs. scaling out in, 335session management in, 334shutting down in, 335–336for software development, generally,

328–336static assets in, 334Web containers in, 334Web servers in, 334

Scalatra, 334scaling applications

in Clojure, 327, 342–343Java and, 297managing apps and, 133in Node.js, 318in PHP, 348in porting apps, 62, 264Postgres and, 153in Python, 310in Scala, 335scalability, defi ned, 20

scaling elasticity, 6scaling resources, 84–87Scheduler, 58–59, 101Schema Builder, 187–188schema-free data storage, 174–176search add-ons, 119–120Secret Access Keys, 27–28, 37Secure Shell (SSH), 26Secure Sockets Layer (SSL). See SSL (Secure Socket

Layer)security

of apps, 31–33in architecture, 25–27in Database.com, 198–199of development environments, 97–99in pace layering, 22–23in SASL, 262Spring, 297

Security Assertion Markup Language (SAML), 198–199

security tokens, 188, 198

bindex.indd 485bindex.indd 485 09/01/13 6:50 PM09/01/13 6:50 PM

486

SendGrid – Spring Security

SendGridadding, 126Clojure and, 327introduction to, 57Node.js and, 317PHP and, 348Postgres and, 87Python and, 310Scala and, 335

Sentry, 121Service Cloud, 181service-level agreements (SLAs), 29servlet containers, 55session management

in Clojure, 326in Groovy, 342in Java, 297–298Java and, 296in Node.js, 317in PHP, 347porting apps and, 51–52, 263in Python, 309in Scala, 334

shadow objects, 430–444share-nothing models, 286SharePoint, 411sharing information, 173–174, 199–200shearing layers, 21shutting down

in Clojure, 327, 343introduction to, 20Java and, 297in Node.js, 318in PHP, 349in porting apps, 65–66in Python, 310–311in Ruby, 264in Scala, 335–336

SIGTERM. See also shutting down, 7, 65–66, 264

Simone, John, 284Simple Authentication and Security Layer

(SASL), 262Simple Build Tool (sbt), 286Simple Logging Facade for Java

(SLF4J), 270Simple Storage Service (Amazon S3).

See Amazon Simple Storage Service (Amazon S3)

Sinatra appsbuildpacks in, 359–362caching, 262Cloudant and, 226deploying to Heroku,

251–253installing, 235introduction to, 98, 108, 234Kensa and, 128porting to Heroku, 263Ruby and, 248–253testing, 253writing, 248–251

SLAs (service-level agreements), 29SLF4J (Simple Logging Facade for

Java), 270Slow Queries tab, 221slugs, 12–13, 352SOAP, 198, 203social applications

Canvas, 412–416Chatter API for, 429–444contests in, 416–424Database.com for,

430–444deploying to Heroku,

424–429for Facebook, generally, 412introduction to, 411–412PHP for, generally, 412shadow objects in,

430–444summary of, 444

social graphs, 204Socket.IO, 318software development cycle, 89–90software development languages. See languages

for software developmentsoftware erosion, 10Solr, 120SOQL (Salesforce Object Query

Language), 183SOX (Sarbanes-Oxley)

Act, 27Sphinx, 120Spring, 336Spring Framework, 281–286Spring Roo, 269, 281–286Spring Security, 297

bindex.indd 486bindex.indd 486 09/01/13 6:50 PM09/01/13 6:50 PM

487

SQL-based data stores – third-party data stores

SQL-based data stores, 158–159SQL

data store add-ons in, 118databases in. See Postgres databasesdatabases in, generally, 207MySQL, 158, 173, 208–215PostgresSQL, 162, 166third-party data stores in, 207–217

SQLite, 236–237Squeryl, 328SSH (Secure Shell), 26SSL (Secure Socket Layer)

Endpoint in, 34–36introduction to, 33piggybacking on Heroku’s certifi cate in, 33Postgres and, 166

STaaS (storage as a service), 26, 36Stackato, 352stack-layer security, 26StackMob, 405–406staging applications, 91–92staging databases, 202standard input (STDIN), 9standard output (STDOUT), 10Standard users, 198Starman, 363startup, 20stateless processes, 19static assets

in Amazon S3, 36–40in architecture, 36–43in Clojure, 326in Groovy, 342in Node.js, 317in PHP, 347porting apps and, 263in Python, 309in Scala, 334in session management, 296storage of, 18, 54

Stats tab, 219status page, 147–148status.heroku.com, 29STDIN (standard input), 9STDOUT (standard output), 10StillAlive, 121storage

in Amazon S3. See Amazon Simple Storage Service (Amazon S3)

of data. See data storesof Database.com fi les, 203of fi les, defi ned, 192of static assets, 18, 54usage of, 191–192

storage as a service (STaaS), 26, 36Streaming API, 182Subversion (SVN), 74Sun Systems, 268Support Cases, 210supported languages. See languages for software

developmentSVN (Subversion), 74Symphony, 347System Overview page, 191systems of differentiation, 21–22, 24systems of innovation, 22, 24systems of record, 21, 24

T

tag library descriptor (TLD) fi les, 294Tddium, 107–114temporary fi les, 48test databases, 202–203testing applications

in Delayed Job, 258–261in Rails, 247–248in Ruby, 247–248, 253, 258–261in Sinatra, 253

Thin, 15third-party add-ons, 32–33third-party DaaS providers, 50–51third-party data stores

Amazon Relational Database Service, 210–215

Apache Cassandra, 119, 222–224Apache CouchDB, 50, 119, 224–226attaching existing, 226–229ClearDB. See ClearDBintroduction to, 207JustOneDB, 215–217MongoDB, 218–220MySQL options for, 208–215NoSQL-based options for, 217–226Postgres alternatives for, 215–217Redis, 220–222SQL-based options for, 207–217summary of, 229

bindex.indd 487bindex.indd 487 09/01/13 6:50 PM09/01/13 6:50 PM

488

Tiggzi – WSGI (Web Server Gateway Interface)

Tiggzi, 394–402, 403time gaps, 20TLD (tag library descriptor) fi les, 294Tomcat, 56, 269, 281–286tool gaps, 20Toolbelt

Foreman in, 75–76Git in, 74–75Heroku client in, 76installing, 74–76

toolkits, 405–409Tools tab, 219Top Ten Project, 32Torvalds, Linus, 11transparency, 29–31Treasure Data, 49, 50triggers, 201–202twelve-factor applications, 18–20Twilio

Rails apps and, 238–244Ruby apps and, 244Sinatra apps and, 248–253

TwiML, 241

U

UAT (user acceptance testing), 23, 90uninterrupted power supply (UPS), 25URLs. See cURLUS-East region, 41, 51, 117user acceptance testing (UAT), 23, 90user interfaces (UIs), 385–386, 388, 402Users tab, 219

V

V8 JavaScript engine, 311valet keys, 198validation rules, 200–201Varnish, 15, 261version control, 11–12, 100–102views, 250virtual environments, 302–303virtual machines (VMs). See also Java Virtual

Machine (JVM), 75virtual private networks (VPNs), 11, 26VMs (virtual machines). See also Java Virtual

Machine (JVM), 75VPNs (virtual private networks), 11, 26

Vulcanbuildpacks and, 355, 366–375introduction to, 347

W

Wall, Larry, 362WAR fi les, 294–295Web containers

in Clojure, 326, 342in Node.js, 317in PHP, 347in porting apps, 55–56, 263in Python, 310in Scala, 334in session management, 296

web process type, 245Web Server Gateway Interface (WSGI), 302Web servers

in Clojure, 326, 342in Node.js, 317in PHP, 347in porting apps, 55–56, 263in Python, 310in Scala, 334in session management, 296

Webapp Runner, 284–285Weblogic, 268WebSockets, 389WebSolr, 120WebSphere, 55, 268Windows

Java and, 271production environments in, 90stacks in, 5Toolbelt on, 73, 76WampServer, 344

Workbench, 189–191worker process type, 245workfl ow rules, 201–202Worqbench, 148writing applications

containerless, 275–281in Play framework, 286–294in Rails, 238–244in Ruby, 238–244, 248–251in Sinatra, 248–251in Spring Framework, 281–286

WSGI (Web Server Gateway Interface), 302

bindex.indd 488bindex.indd 488 09/01/13 6:50 PM09/01/13 6:50 PM

489

Xcode Developer Tools – Zerigo DNS

X

Xcode Developer Tools, 272XDebug, 348Xeround

introduction to, 48MYSQL and, 118PHP apps in, 347in porting apps, 50–51SQL-based data stores

and, 158X-Forwarded-Proto, 68

XML, 241–244XSS (cross-site scripting), 31

Y

YAML, 94, 358Yum, 272

Z

Zend, 347Zerigo DNS, 134–135

bindex.indd 489bindex.indd 489 09/01/13 6:50 PM09/01/13 6:50 PM

bindex.indd 490bindex.indd 490 09/01/13 6:50 PM09/01/13 6:50 PM