platform as a service

29 results back to index


pages: 540 words: 103,101

Building Microservices by Sam Newman

airport security, Amazon Web Services, anti-pattern, business process, call centre, continuous integration, create, read, update, delete, defense in depth, don't repeat yourself, Edward Snowden, fault tolerance, index card, information retrieval, Infrastructure as a Service, inventory management, job automation, Kubernetes, load shedding, loose coupling, microservices, MITM: man-in-the-middle, platform as a service, premature optimization, pull request, recommendation engine, social graph, software as a service, source of truth, sunk-cost fallacy, the built environment, web application, WebSocket

We have more servers to manage, and there might also be a cost implication of running more distinct hosts. Despite these problems, this is still the model I prefer for microservice architectures. And we’ll talk about a few things we can do to reduce the overhead of handling large numbers of hosts shortly. Platform as a Service When using a platform as a service (PaaS), you are working at a higher-level abstraction than at a single host. Most of these platforms rely on taking a technology-specific artifact, such as a Java WAR file or Ruby gem, and automatically provisioning and running it for you. Some of these platforms will transparently attempt to handle scaling the system up and down for you, although a more common (and in my experience less error-prone) way will allow you some control over how many nodes your service might run on, but it handles the rest.

OSGI (Open Source Gateway Initiative), Modules ownershipshared, Drivers for Shared Services system design and, Service Ownership P Packer, Custom Images Pact, Pact Pacto, Pact partition tolerancein CAP theorem, CAP Theorem sacrificing, Sacrificing Partition Tolerance? passwords, Go with the Well Known performance tests, Performance Tests platform as a service (PaaS), Platform as a Service platform-specific artifacts, Platform-Specific Artifacts Polly for .NET, Bulkheads Postel's Law, Defer It for as Long as Possible predictive scaling, Autoscaling principal party, Authentication and Authorization privacy issues, Be Frugal property testing, Types of Tests proxy caching, Client-Side, Proxy, and Server-Side Caching R RabbitMQ, Technology Choices RDBMS (relational database management systems), Scaling for Reads reactive extensions (Rx), Reactive Extensions reactive scaling, Autoscaling read replicas, Scaling for Reads redesign, Starting Again refactoring databases, Staging the Break remote procedure calls, Remote Procedure Calls-Is RPC Terrible?

reuse of functionality in, Composability vs. microservices, What About Service-Oriented Architecture? service-to-host mapping, Service-to-Host Mapping-Platform as a Serviceapplication containers, Application Containers multiple services per host, Multiple Services Per Host platform as a service (PaaS), Platform as a Service single service per host, Single Service Per Host terminology, Service-to-Host Mapping service-to-service authentication/authorization, Service-to-Service Authentication and Authorization-The Deputy ProblemAPI keys, API Keys client certificates, Client Certificates confused deputy problem, The Deputy Problem HMAC over HTTP, HMAC Over HTTP HTTP(S) basic, HTTP(S) Basic Authentication man-in-the-middle attacks, Allow Everything Inside the Perimeter SAML/OpenID Connect, Use SAML or OpenID Connect sharding, Scaling for Writes shared code, DRY and the Perils of Code Reuse in a Microservice World shared data, Example: Shared Data shared libraries, Shared Libraries shared models, Shared and Hidden Models shared static data, Example: Shared Static Data shared tables, Example: Shared Tables sharing behavior, The Shared Database single sign-on (SSO), Common Single Sign-On Implementations-Single Sign-On Gateway smoke test suites, Separating Deployment from Release spies, Mocking or Stubbing SSH-multiplexing, Single Service, Multiple Servers SSL certificates, HTTP(S) Basic Authentication SSL termination, Load Balancing standards enforcementexemplars, Exemplars tailored service templates, Tailored Service Template standards establishment, The Required Standard-Architectural Safetyarchitectural safety, Architectural Safety importance of, The Required Standard interfaces, Interfaces monitoring, Monitoring static data, Example: Shared Static Data Strangler Application Pattern, The Strangler Pattern, Architectural Safety Measures strategic goalsreal-world example, A Real-World Example understanding, Strategic Goals stubbing vs. mocking, Mocking or Stubbing Suro, The Future Swagger, Swagger synchronous communication, Synchronous Versus Asynchronous synthetic monitoring, Synthetic Monitoring system designaccountability and, People adapting to communication pathways, Adapting to Communication Pathways bounded contexts, Bounded Contexts and Team Structures case study, Case Study: RealEstate.com.au Conway's law of, Conway’s Law and System Design delivery bottlenecks, Delivery Bottlenecks effect on organizational structure, Conway’s Law in Reverse feature teams, Feature Teams internal open source model, Internal Open Source organizational structure and, Evidence orphaned services, The Orphaned Service?


pages: 491 words: 77,650

Humans as a Service: The Promise and Perils of Work in the Gig Economy by Jeremias Prassl

3D printing, Affordable Care Act / Obamacare, Airbnb, Amazon Mechanical Turk, Andrei Shleifer, autonomous vehicles, barriers to entry, call centre, cashless society, Clayton Christensen, collaborative consumption, collaborative economy, collective bargaining, creative destruction, crowdsourcing, disruptive innovation, Donald Trump, Erik Brynjolfsson, full employment, future of work, George Akerlof, gig economy, global supply chain, hiring and firing, income inequality, independent contractor, information asymmetry, invisible hand, Jeff Bezos, job automation, John Maynard Keynes: Economic Possibilities for our Grandchildren, John Maynard Keynes: technological unemployment, Kickstarter, low skilled workers, Lyft, Mahatma Gandhi, Mark Zuckerberg, market friction, means of production, moral hazard, Network effects, new economy, obamacare, pattern recognition, platform as a service, Productivity paradox, race to the bottom, regulatory arbitrage, remote working, ride hailing / ride sharing, Robert Gordon, Ronald Coase, Rosa Parks, Second Machine Age, secular stagnation, self-driving car, shareholder value, sharing economy, Silicon Valley, Silicon Valley ideology, Simon Singh, software as a service, Steve Jobs, TaskRabbit, The Future of Employment, The Market for Lemons, The Nature of the Firm, The Rise and Fall of American Growth, transaction costs, transportation-network company, Travis Kalanick, two tier labour market, two-sided market, Uber and Lyft, Uber for X, uber lyft, union organizing, working-age population

If we are to understand the industry’s implications for the world of work, however, we need to look further, and discover its promise for workers, consumers, and society at large—as well as the perils of insecure, low-paid work. The ultimate goal? Making the gig economy work for everyone: a sustainable business model in which we all get to enjoy the benefits of plat- form innovation—without reducing humans to a service. * * * Platforms as a Service 7 It is crucial to note that nothing in this analysis suggests that we should shut platforms down. The gig economy has great potential: improved match- ing efficiency and its associated algorithms can add value to our economy, create job opportunities, and allow all of us to enjoy access to better prod- ucts and services.

As Jeff Howe, the journalist who coined the very language of ‘crowd- sourcing’, notes in the introduction to his enthusiastic book on ‘the power of the crowd [to drive] the future of business’, companies who ‘view the crowd as a cheap labor force are doomed to fail’.15 The promise of the gig economy is great—but we need to make sure it lives up to its full potential, for everyone. Humans must never become a service; platforms should. Platforms as a Service To this end, the book is loosely structured into three parts. We will, first, explore the reality of life and work in the gig economy, before attempting to chart solutions to the problems identified. Finally, we will take a step back to think about the broader implications of the gig economy for consumers, taxpayers, and markets at large.

Depending on consumer demand, this means that the promised flexi- bility of on-demand work can quickly turn into economic insecurity, as gig income is highly unpredictable from week to week. The promise of freedom similarly rings hollow for many—not least because of carefully constructed contractual agreements, which ban some gig workers from taking platforms to court. Instead of enjoying the spoils of successful entrepreneurship, a significant * * * Platforms as a Service 9 proportion of on-demand workers find themselves trapped in precarious, low-paid work. The innovation narrative is similarly multifaceted, as we discover in Chapter 4. There is much that is innovative about the gig economy’s reliance on modern technology—but in so far as work is concerned, the business model is ancient.


pages: 307 words: 17,123

Behind the cloud: the untold story of how Salesforce.com went from idea to billion-dollar company--and revolutionized an industry by Marc Benioff, Carlye Adler

Albert Einstein, Apple's 1984 Super Bowl advert, barriers to entry, Bay Area Rapid Transit, business continuity plan, call centre, carbon footprint, Clayton Christensen, cloud computing, corporate social responsibility, crowdsourcing, iterative process, Maui Hawaii, Nicholas Carr, platform as a service, San Francisco homelessness, Silicon Valley, software as a service, Steve Ballmer, Steve Jobs

This idea to become a platform, or an operating system for the Internet (similar to how Windows is an operating system for PCs), offered a way to allow everyone to create applications online and gave us an opportunity to attract and retain more customers. This was the way to grow our company. Despite my bullish belief in Platform-as-a-Service (PaaS), the decision of whether or not to go ahead with the idea was a daunting one. Could we build an Internet operating system? There were potentially gigantic compatibility risks involved in allowing someone else’s code to operate on our system. We didn’t even know if customers would trust it.

., 143 Merrill Lynch, 95 Metaphors for marketing, 44 Methods, 226, 228 Metrics: basing marketing on, 44–45; criticisms of, 227, 228; market segmenting and, 80–81; measuring employee success, 251; monitoring success with, 101; revenue vs. profitability, 208–209 MGM, 203 Microloan Foundation, 157 Microsoft, 42, 43, 66, 172, 176, 253 Microsoft Hotmail, 20, 105 Millham, Brian, 83 Miner, Allen, 180–181 Minor, Halsey, 205 Mizuho Information Research, 185 Moellenhoff, Dave, 9–10, 11, 21, 106–107, 117–118, 139–140 Monster.com, 53 Moore, Charlie, 217–218 Morale, 245 Morgan Stanley, 123 Multiforce, 122 Murase, Haruo, 184–185 MyStarbucksIdea.com, 120, 129 N Nakada, Paul, 12, 237–238 National Geographic Society, 167 NativeEnergy, 155, 162 Negotiating sales terms, 94 Nestlé, 167 Netscape, 89 NetSuite, 161 Networking, 56 New York Stock Exchange, 153, 210–211, 212–213, 217, 258 New York Times, 41, 215–217, 220 Newsom, Gavin, 152 Nikkei, 185 No Software logo, 28–29, 32 Nucor, 255 O OASIS (Oracle Automatic Sales and Automatic Systems), 5 Obstacles: correcting, 233–236; recognizing strategic, 226–227, 228 1–1–1 Model: corporate structure for, 164–165; developing globally, 178; evolution of, 141–144; in-kind product donations, 156–158, 166; involving others in, 159–161; sharing publically, 146–147; success of, 256 Operation Smile, 141 Oprah Winfrey Show, 138 Oracle, 5, 14–16, 30–31, 63, 64, 104, 109, 137, 170–172, 179, 225–226, 253 Oracle’s Promise, 137, 140, 145 OutCast Communications, 24, 33 P PaaS (Platform-as-a-Service): AppExchange and, 125–126; developing applications with, 123–125; extending SaaS with, 122–123 Page, Larry, 160–161 PalmOne, 161 Panozza, Kevin, 190–191 Paperwork for sales, 94 Partnerships: collaborating with, 131–132; leveraging business, 59 Passion, 16 PayPal, 160, 172 275 INDEX Peek, Jeffrey, 93 PeopleFinder project, 163–164 PeopleSoft, 218 Performance incentives, 245–246 Philanthropic models: choosing cause for, 144–146; employee-inspired foundations, 161–165; Google’s philanthropic commitment, 160–161; in-kind product donations, 156–158, 166; including foundation in business model, 140–144; incorporating in existing company, 135–139; integrating with corporate organization, 139–140; involving business partners and networks in, 159–161; listening to constituents, 148–152; self-sustaining, 153–156, 166–168; sharing publically, 146–147 Pinkham, Elizabeth, 37 Planning: events, 59–60; global expansion, 182–186; headquarters and territories, 172–173; long-term revenue, 223; tax, 220; V2MOM for, 225–230 Planning.

., 143 Merrill Lynch, 95 Metaphors for marketing, 44 Methods, 226, 228 Metrics: basing marketing on, 44–45; criticisms of, 227, 228; market segmenting and, 80–81; measuring employee success, 251; monitoring success with, 101; revenue vs. profitability, 208–209 MGM, 203 Microloan Foundation, 157 Microsoft, 42, 43, 66, 172, 176, 253 Microsoft Hotmail, 20, 105 Millham, Brian, 83 Miner, Allen, 180–181 Minor, Halsey, 205 Mizuho Information Research, 185 Moellenhoff, Dave, 9–10, 11, 21, 106–107, 117–118, 139–140 Monster.com, 53 Moore, Charlie, 217–218 Morale, 245 Morgan Stanley, 123 Multiforce, 122 Murase, Haruo, 184–185 MyStarbucksIdea.com, 120, 129 N Nakada, Paul, 12, 237–238 National Geographic Society, 167 NativeEnergy, 155, 162 Negotiating sales terms, 94 Nestlé, 167 Netscape, 89 NetSuite, 161 Networking, 56 New York Stock Exchange, 153, 210–211, 212–213, 217, 258 New York Times, 41, 215–217, 220 Newsom, Gavin, 152 Nikkei, 185 No Software logo, 28–29, 32 Nucor, 255 O OASIS (Oracle Automatic Sales and Automatic Systems), 5 Obstacles: correcting, 233–236; recognizing strategic, 226–227, 228 1–1–1 Model: corporate structure for, 164–165; developing globally, 178; evolution of, 141–144; in-kind product donations, 156–158, 166; involving others in, 159–161; sharing publically, 146–147; success of, 256 Operation Smile, 141 Oprah Winfrey Show, 138 Oracle, 5, 14–16, 30–31, 63, 64, 104, 109, 137, 170–172, 179, 225–226, 253 Oracle’s Promise, 137, 140, 145 OutCast Communications, 24, 33 P PaaS (Platform-as-a-Service): AppExchange and, 125–126; developing applications with, 123–125; extending SaaS with, 122–123 Page, Larry, 160–161 PalmOne, 161 Panozza, Kevin, 190–191 Paperwork for sales, 94 Partnerships: collaborating with, 131–132; leveraging business, 59 Passion, 16 PayPal, 160, 172 275 INDEX Peek, Jeffrey, 93 PeopleFinder project, 163–164 PeopleSoft, 218 Performance incentives, 245–246 Philanthropic models: choosing cause for, 144–146; employee-inspired foundations, 161–165; Google’s philanthropic commitment, 160–161; in-kind product donations, 156–158, 166; including foundation in business model, 140–144; incorporating in existing company, 135–139; integrating with corporate organization, 139–140; involving business partners and networks in, 159–161; listening to constituents, 148–152; self-sustaining, 153–156, 166–168; sharing publically, 146–147 Pinkham, Elizabeth, 37 Planning: events, 59–60; global expansion, 182–186; headquarters and territories, 172–173; long-term revenue, 223; tax, 220; V2MOM for, 225–230 Planning. See also V2MOM Platform-as-a-Service. See Paas Playboy, 217 Positioning: developing strategies, 37–38; importance of, 23–25 Positioning (Ries and Trout), 37 Post-event responses, 56 Powell, General Colin, 136, 137, 138–139, 144, 146 Power: personal, 17 Power of Us, 146–147, 160 PowerUP, 144–145, 148 PR Week, 37 President’s Summit for America’s Future, 136–137 Pricing products, 78–79 Product development: communities of collaboration for, 131–132, 145; delivering products quickly, 107–108; ease of customer adoption, 119; encouraging customer feedback on, 13–14; finding talent for, 7–9, 15–17; harnessing customers’ ideas, 127–130; including global capabilities in, 169–170; innovative, 103–106; intelligent reaction in, 132–133; letting customers drive, 115–118; Platform-as-a-Service, 120–125; providing marketplace for solutions, 125–126; reusing infrastructure technology, 109–110; speed and simplicity in, 106–107; testing product usability, 13–14; transparency in, 110–113, 114 Product launch: choosing partners for, 179–182; cultural sensitivity for global, 192, 197; expansion without overspending, 176–177; global strategies for, 174–175; handling global disputes, 188–192; instilling corporate spirit in global leaders, 170–172; preparing for global capabilities, 169–170; projecting success for, 175–176; selecting global leadership, 186–188; sequential growth strategies, 177–178; telesales teams for, 172–173 Professional services.


pages: 328 words: 84,682

The Business of Platforms: Strategy in the Age of Digital Competition, Innovation, and Power by Michael A. Cusumano, Annabelle Gawer, David B. Yoffie

activist fund / activist shareholder / activist investor, Airbnb, AltaVista, Amazon Web Services, augmented reality, autonomous vehicles, barriers to entry, bitcoin, blockchain, Chuck Templeton: OpenTable:, cloud computing, collective bargaining, commoditize, crowdsourcing, cryptocurrency, distributed ledger, Donald Trump, en.wikipedia.org, Firefox, gig economy, Google Chrome, independent contractor, Internet of things, Jeff Bezos, Lean Startup, Lyft, Mark Zuckerberg, market fundamentalism, Metcalfe’s law, move fast and break things, move fast and break things, multi-sided market, Network effects, pattern recognition, platform as a service, Ponzi scheme, recommendation engine, Richard Feynman, ride hailing / ride sharing, Robert Metcalfe, self-driving car, sharing economy, Silicon Valley, Skype, Snapchat, software as a service, sovereign wealth fund, speech recognition, stealth mode startup, Steve Ballmer, Steve Jobs, Steven Levy, TaskRabbit, too big to fail, transaction costs, transport as a service, Travis Kalanick, two-sided market, Uber and Lyft, Uber for X, uber lyft, web application, zero-sum game

See platform failures mistiming as platform failure, 129–35 mistrust, especially in transaction platforms, 119–24 MIT Sloan Management Review, viii Moore’s law, 49 Motorola Mobility, 87 Mozilla, 125, 126 multi-homing (multiple platforms for the same purpose) overview, 25, 41–44 digital technology impact, 52–54 on quantum computers, 229 in video game arena, 44 multisided markets overview, 71 choosing your market sides, 69–71 engaging multiple sides of a market, 15–16, 41–42 future expectations, 219, 231–32 response of older industries to digital platforms, 159–60 telephone service as, 34 multisided platforms building on side to attract the other side, 75 social networks as, 71 strategy, 68, 183 National Geographic (magazine), 230–31 National Labor Relations Board, 195 negative network effects, 16–17 Netscape Navigator, 125 network effects overview, 13–14, 25, 59–60, 249n18, 249n19 Alibaba’s, 124 barriers to entry created by, 48 digital technology impact, 50–52 generation of, 16–18 with instant messaging, 41–42 Metcalfe’s law dynamic, 35, 35f as positive feedback loops, 13, 16, 32, 59, 75 and quantum computing, 228 of telephone network, 32–37 of Yellow Pages, 32–33, 37–41, 253n12 See also barriers to entry; differentiation and niche competition; multi-homing network externalities, 249n18, 252n5 Network World (magazine), 125 New York City and Uber, 118 next-generation platforms, 219 niche companies, 46, 55–56 Nintendo, 43–44 Nishi, Kazuhiko “Kay,” 3 Nokia’s Symbian, 79–80, 130, 131 nonlinear increases in utility and value, 13 Numenta, 69 Oasis (home rental platform), 142 Onefinestay, 142 one-sided platforms building one side to attract other sides, 75–76 social networks as, 71 telephone service as, 34 Open Handset Alliance (Google), viii, 45–46 openness and curation tradeoff, 191 Open Platform Initiative (Lyft + automakers), 225–26 open source software, 125–26 OpenTable, 84–85 PaaS (platform-as-a-service), 163 Palm personal digital assistant (PDA) app store, 96 Pandora, 135 Parker, Geoffrey, 82–83, 111 Path, 110 patterns in platform failures, 108–12, 242t, 243t Paul, Sunil, 113, 117, 118 PC Magazine, 131, 133–34 PCWorld (magazine), 127 personal computers (PCs) as platform vs. product business, 5–6 value of platforms associated with, 21–22, 23t, 24–25, 251nn23–24 Pharmapacks, 145–47 photographers hired by Airbnb, 75 PHV (private hire vehicle) operators in London, 148–50 physical platforms, 12 Pivotal Cloud Foundry, 162–63 platform-as-a-service (PaaS), 163 platform businesses overview, 11, 12–15, 49, 248n14 accepting their roles in modern society, 213 build vs. buy decision, 169–71 centralization of power, 235 core principles overview, 214–17, 215t decisions that drive network effects, 33 durability of, 213–14 enabling “asset-light” business models, 60, 192 generating revenue without a product or service, 17 hybrids as next phase in evolution of, 103–4 and industrial Internet of things, 161–62 next-generation platforms, 219 platform vs. product in a platform market, 5–6, 14 specialized retail platforms, 55 start-up costs, 57 successful techniques, 60 traditional rules related to, 11–12 See also network effects platform failures (common mistakes), 105–38 overview, 26–27, 107–8, 135–38 hubris, 124–29, 137–38 learning from mistakes, 136 mispricing on one side of the platform, 112–19 mistiming, 129–35 mistrust, especially in transaction platforms, 119–24 and network effects, 136–37 overly complicated platform fails to scale, 67–68 patterns in, 108–12, 242t, 243t platform governance, 173–209 overview, 27–28 anticipating antitrust and competition concerns, 180–85 balancing openness with trust, 185–91 mood change in business environment, 176–80 power and platforms, 175–76 responsibility and liability for activities on the platform, 178–79 self-regulating, 199–206 threats from megaplatforms, 177–80 workforce issues, 192–99 See also governments and regulations platform leaders, neutrality of, vii–viii Platform Leadership: How Intel, Microsoft, and Cisco Drive Industry Innovation (Cusumano, Gawer, and Yoffie), vii–viii, 10–11 platform market drivers, 29–62 overview, 25, 31–32, 49–50, 59–61 See also barriers to entry; differentiation and niche competition; multi-homing; multisided markets; network effects platform potential and future scenarios, 217–37 overview, 28, 217–20 CRISPR, 229–34 quantum computing, 226–29 voice recognition, 220–23 Platform Revolution (Parker, Van Alstyne, and Choudary), 82–83 platforms, four steps to building, 66–93 overview, 66–67, 67f choose your market sides, 67–71 design your business model, 77–85 establish and enforce ecosystem rules, 85–93 solve the “chicken-or-egg” problem, 71–77 platform thinking, 4, 5–6 Porter, Michael E., 42 positive feedback loops, 13, 16, 32, 59, 75.

Cloud Foundry was originally developed as an open-source platform by VMware, and later transferred to a joint venture called Pivotal Software that VMware formed with EMC. GE invested $105 million to take a 10 percent equity stake in Pivotal in 2013. Built on top of Pivotal Cloud Foundry, Predix was a cloud-based platform-as-a-service (PaaS). GE originally planned to build its own data centers. But the technological challenges to building an industrial cloud platform were significant: It had to be optimized for industrial applications where the stakes were much higher and mistakes much costlier. The platform needed to be scalable to handle the massive amounts of data being generated by IIoT machines and needed to be able to deliver that information under potentially adverse conditions.

GE faced serious competition as well as significant execution hurdles. For example, Siemens, GE’s biggest industrial competitor, offered its own platform, called MindSphere. Siemens described MindSphere as an “open operating system for the Internet of things.”75 MindSphere’s architecture and technology were much like that of Predix: It was a cloud-based platform-as-a-service product, built on the SAP Cloud, which in turn was based on the Pivotal Cloud Foundry.76 IBM and Microsoft also planned to compete head-to-head with GE and Siemens. In 2015, IBM announced it was launching an Internet of things division that would bring the analytical capabilities of its Watson cognitive computing service to the analysis of data generated by billions of devices that make up the IoT.


Demystifying Smart Cities by Anders Lisdorf

3D printing, artificial general intelligence, autonomous vehicles, backpropagation, bitcoin, business intelligence, business process, chief data officer, clean water, cloud computing, computer vision, continuous integration, crowdsourcing, data is the new oil, digital twin, distributed ledger, don't be evil, Elon Musk, en.wikipedia.org, facts on the ground, Google Glasses, income inequality, Infrastructure as a Service, Internet of things, Masdar, microservices, Minecraft, platform as a service, ransomware, RFID, ride hailing / ride sharing, risk tolerance, self-driving car, smart cities, smart meter, software as a service, speech recognition, Stephen Hawking, Steve Jobs, Steve Wozniak, Stuxnet, Thomas Bayes, Turing test, urban sprawl, zero-sum game

This is why you often hear about a move from capital expenditure to operational expenditure, when it comes to cloud computing. It is not necessary to make capital investments in equipment before starting. Another important point of the NIST definition is the division into three types: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS).Software as a Service – Is the ability of the consumer to access system features through a standard interface like a web browser. The consumer has no control of the underlying infrastructure except for what can be configured in the application.

The consumer has no control of the underlying infrastructure except for what can be configured in the application. The vendor provides and maintains all aspects of the product except for application-specific configurations. Well-known consumer-level examples are Gmail, Office 365, Salesforce, and Slack. An example of a SaaS storage technology is Google Docs or SharePoint Online. Platform as a Service – Is the capability to deploy to the cloud applications that are developed by the consumer. The consumer has no control of the underlying networks, operating systems, or storage, but has control of the applications that are developed. PaaS storage solutions are AWS S3, Google Cloud Spanner, and Snowflake Data Warehouse.

Block chain Bluetooth Bus topology C Chief Information Security Officer (CISO) Cities coalition for digital rights Cities, history and future civilizations data usage pack donkey technology urbanization urbanocene period Civilization Confidentiality Connecting devices cables OSI model physical connections Criminal justice data D Data governance Data management Data profiling Data refinery capability domains access data movement discovery implementations map quality storage structure Data services block chain document databases graph key value stores object storage RDBMS Data source online source sensors system of record Data storage Data value, seven dimensions data sphere improve data value metadata sphere optimization solutions Decision trees Deployment, data cloud characteristics IaaS PaaS SaaS types on premise and cloud on-premise infrastructure Device defined integrated system medical devices microcontrollers processing units sensor and actuator Devices, city central technology organization cloud platforms communication IoT platforms IoT solutions management computer systems security protection challenges botnet CISO DDoS attack device vendors difficult to interact Dyn attack low cost scale Distributed computing Distributed Denial-of-Service (DDoS) attack Domain Name System (DNS) E Employ pragmatic idealism amount of energy architecture principles assemble team artist considerations engineer general idealist grid philosopher politician revolutionary scientist specialist tactician tinkerer compromise count symptoms Energy Engagement models solution spotlights BetaNYC 100 resilient cities Waze connected cities technologies adoption curve development and implementation innovation potential risk-reward working modes work types Enterprise Service Bus (ESB) ETSI Exteros F File transfer protocol (FTP) Food G General Data Protection Regulation (GDPR) Genetic algorithms Graphical userinterface Graph theory H Habit loop Hardware vendors Health data HTTP protocol Human civilization I, J IEEE P2413 Independent researchers Information and communication technologies (ICTs) Infrastructure as a Service (IaaS) Innovation challenges habit loop low-fat yoghurt, avoid Integrity International Organization for Standardization (ISO) Internet of Things (IoT) K Kafka Key value stores K-nearest neighbors algorithm L Legacy systems, modernizing imagination architect real world example Linear regression LinkNYC Local Area Network (LAN) Logistic regression LoRaWAN M Machine learning algorithms advantages and limitations decision trees genetic algorithms K-nearest neighbors linear regression logistic regression naïve Bayes algorithm neural networks reinforcement supervised SVMs unsupervised neural networks Machine-to-machine data access Master data management (MDM) conceptual model data steward deterministic matching logical model physical model Mesh topology Mobility MQTT protocol N Naïve Bayes algorithm Near Field Communication (NFC) Network topologies Neural networks Nongovernmental organizations NYC Mesh NYCWiN network O ODBC Operational data store (ODS) OSI model P, Q Personally identifiable information (PII) Platform as a Service (PaaS) PlowNYC service Point-to-point topology Private research Publish-Subscribe pattern R Raspberry Pi Recycling Reinforcement learning algorithm Relational database management system (RDBMS) S Security standards cryptography device management FIPS 199 identity and access management risks Sensors Simple Storage Service (or S3) Smart city, actors businesses governments individuals organizations researchers vendors Software as a Service (SaaS) Software vendors Star topology features Google doc HTTP protocol point of failure publish-subscribe types Structure of data semi-structured data structured data unstructured data Supervised learning algorithm Support vector machines (SVMs) Supranational organizations Systems integrators T Technology, applications health mobility safety utilities Things Network Tree topology DNS failure vulnerabilities features structure U UDP Universities Unsupervised learning algorithm V Virtual Private Network (VPN) W, X, Y, Z Web services


pages: 757 words: 193,541

The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services, Volume 2 by Thomas A. Limoncelli, Strata R. Chalup, Christina J. Hogan

active measures, Amazon Web Services, anti-pattern, barriers to entry, business process, cloud computing, commoditize, continuous integration, correlation coefficient, database schema, Debian, defense in depth, delayed gratification, DevOps, domain-specific language, en.wikipedia.org, fault tolerance, finite state, Firefox, functional programming, Google Glasses, information asymmetry, Infrastructure as a Service, intermodal, Internet of things, job automation, job satisfaction, Kickstarter, load shedding, longitudinal study, loose coupling, Malcom McLean invented shipping containers, Marc Andreessen, place-making, platform as a service, premature optimization, recommendation engine, revision control, risk tolerance, side project, Silicon Valley, software as a service, sorting algorithm, standardized shipping container, statistical model, Steven Levy, supply-chain management, The future is already here, Toyota Production System, web application, Yogi Berra

First printing, September 2014 Contents at a Glance Contents Preface About the Authors Introduction Part I Design: Building It Chapter 1 Designing in a Distributed World Chapter 2 Designing for Operations Chapter 3 Selecting a Service Platform Chapter 4 Application Architectures Chapter 5 Design Patterns for Scaling Chapter 6 Design Patterns for Resiliency Part II Operations: Running It Chapter 7 Operations in a Distributed World Chapter 8 DevOps Culture Chapter 9 Service Delivery: The Build Phase Chapter 10 Service Delivery: The Deployment Phase Chapter 11 Upgrading Live Services Chapter 12 Automation Chapter 13 Design Documents Chapter 14 Oncall Chapter 15 Disaster Preparedness Chapter 16 Monitoring Fundamentals Chapter 17 Monitoring Architecture and Practice Chapter 18 Capacity Planning Chapter 19 Creating KPIs Chapter 20 Operational Excellence Epilogue Part III Appendices Appendix A Assessments Appendix B The Origins and Future of Distributed Computing and Clouds Appendix C Scaling Terminology and Concepts Appendix D Templates and Examples Appendix E Recommended Reading Bibliography Index Contents Preface About the Authors Introduction Part I Design: Building It 1 Designing in a Distributed World 1.1 Visibility at Scale 1.2 The Importance of Simplicity 1.3 Composition 1.3.1 Load Balancer with Multiple Backend Replicas 1.3.2 Server with Multiple Backends 1.3.3 Server Tree 1.4 Distributed State 1.5 The CAP Principle 1.5.1 Consistency 1.5.2 Availability 1.5.3 Partition Tolerance 1.6 Loosely Coupled Systems 1.7 Speed 1.8 Summary Exercises 2 Designing for Operations 2.1 Operational Requirements 2.1.1 Configuration 2.1.2 Startup and Shutdown 2.1.3 Queue Draining 2.1.4 Software Upgrades 2.1.5 Backups and Restores 2.1.6 Redundancy 2.1.7 Replicated Databases 2.1.8 Hot Swaps 2.1.9 Toggles for Individual Features 2.1.10 Graceful Degradation 2.1.11 Access Controls and Rate Limits 2.1.12 Data Import Controls 2.1.13 Monitoring 2.1.14 Auditing 2.1.15 Debug Instrumentation 2.1.16 Exception Collection 2.1.17 Documentation for Operations 2.2 Implementing Design for Operations 2.2.1 Build Features in from the Beginning 2.2.2 Request Features as They Are Identified 2.2.3 Write the Features Yourself 2.2.4 Work with a Third-Party Vendor 2.3 Improving the Model 2.4 Summary Exercises 3 Selecting a Service Platform 3.1 Level of Service Abstraction 3.1.1 Infrastructure as a Service 3.1.2 Platform as a Service 3.1.3 Software as a Service 3.2 Type of Machine 3.2.1 Physical Machines 3.2.2 Virtual Machines 3.2.3 Containers 3.3 Level of Resource Sharing 3.3.1 Compliance 3.3.2 Privacy 3.3.3 Cost 3.3.4 Control 3.4 Colocation 3.5 Selection Strategies 3.6 Summary Exercises 4 Application Architectures 4.1 Single-Machine Web Server 4.2 Three-Tier Web Service 4.2.1 Load Balancer Types 4.2.2 Load Balancing Methods 4.2.3 Load Balancing with Shared State 4.2.4 User Identity 4.2.5 Scaling 4.3 Four-Tier Web Service 4.3.1 Frontends 4.3.2 Application Servers 4.3.3 Configuration Options 4.4 Reverse Proxy Service 4.5 Cloud-Scale Service 4.5.1 Global Load Balancer 4.5.2 Global Load Balancing Methods 4.5.3 Global Load Balancing with User-Specific Data 4.5.4 Internal Backbone 4.6 Message Bus Architectures 4.6.1 Message Bus Designs 4.6.2 Message Bus Reliability 4.6.3 Example 1: Link-Shortening Site 4.6.4 Example 2: Employee Human Resources Data Updates 4.7 Service-Oriented Architecture 4.7.1 Flexibility 4.7.2 Support 4.7.3 Best Practices 4.8 Summary Exercises 5 Design Patterns for Scaling 5.1 General Strategy 5.1.1 Identify Bottlenecks 5.1.2 Reengineer Components 5.1.3 Measure Results 5.1.4 Be Proactive 5.2 Scaling Up 5.3 The AKF Scaling Cube 5.3.1 x: Horizontal Duplication 5.3.2 y: Functional or Service Splits 5.3.3 z: Lookup-Oriented Split 5.3.4 Combinations 5.4 Caching 5.4.1 Cache Effectiveness 5.4.2 Cache Placement 5.4.3 Cache Persistence 5.4.4 Cache Replacement Algorithms 5.4.5 Cache Entry Invalidation 5.4.6 Cache Size 5.5 Data Sharding 5.6 Threading 5.7 Queueing 5.7.1 Benefits 5.7.2 Variations 5.8 Content Delivery Networks 5.9 Summary Exercises 6 Design Patterns for Resiliency 6.1 Software Resiliency Beats Hardware Reliability 6.2 Everything Malfunctions Eventually 6.2.1 MTBF in Distributed Systems 6.2.2 The Traditional Approach 6.2.3 The Distributed Computing Approach 6.3 Resiliency through Spare Capacity 6.3.1 How Much Spare Capacity 6.3.2 Load Sharing versus Hot Spares 6.4 Failure Domains 6.5 Software Failures 6.5.1 Software Crashes 6.5.2 Software Hangs 6.5.3 Query of Death 6.6 Physical Failures 6.6.1 Parts and Components 6.6.2 Machines 6.6.3 Load Balancers 6.6.4 Racks 6.6.5 Datacenters 6.7 Overload Failures 6.7.1 Traffic Surges 6.7.2 DoS and DDoS Attacks 6.7.3 Scraping Attacks 6.8 Human Error 6.9 Summary Exercises Part II Operations: Running It 7 Operations in a Distributed World 7.1 Distributed Systems Operations 7.1.1 SRE versus Traditional Enterprise IT 7.1.2 Change versus Stability 7.1.3 Defining SRE 7.1.4 Operations at Scale 7.2 Service Life Cycle 7.2.1 Service Launches 7.2.2 Service Decommissioning 7.3 Organizing Strategy for Operational Teams 7.3.1 Team Member Day Types 7.3.2 Other Strategies 7.4 Virtual Office 7.4.1 Communication Mechanisms 7.4.2 Communication Policies 7.5 Summary Exercises 8 DevOps Culture 8.1 What Is DevOps?

The term “cloud” is ambiguous; it means different things to different people and has been made meaningless by marketing hype. Instead, we use the following terms to be specific: • Infrastructure as a Service (IaaS): Computer and network hardware, real or virtual, ready for you to use. • Platform as a Service (PaaS): Your software running in a vendor-provided framework or stack. • Software as a Service (SaaS): An application provided as a web site. Figure 3.1 depicts the typical consumer of each service. SaaS applications are for end users and fulfill a particular market niche. PaaS provides platforms for developers.

Some provide elastic scaling services, which automatically allocate and configure additional machines on demand as capacity is needed. Providers that offer both IaaS and PaaS often blur the line between the two by providing high-level managed services that are available to both. 3.1.2 Platform as a Service PaaS enables you to run your applications from a vendor-provided framework. These services offer you a high level of value, as they manage all aspects of the infrastructure, even much of the application stack. They offer very elastic scaling services, handling additional load without any input required from you.


pages: 234 words: 63,522

Puppet Essentials by Felix Frank

cloud computing, Debian, DevOps, domain-specific language, Infrastructure as a Service, platform as a service, web application

Taking Puppet to the cloud It's time to finally talk about the cloud, which I managed to avoid when describing the different use cases. We will focus on the Infrastructure as a Service (IaaS) paradigm. These IaaS clouds consist of a network of virtual machines connected to the Internet. Each machine runs a basic operating system, which is chosen by the administrator. If you need a Platform as a Service (PaaS) implementation, read on to learn how you can practically implement your own PaaS system on top of an IaaS cloud using Puppet. From Puppet's point of view, an IaaS cloud is not much different from a data center. After all, this kind of cloud was conceived to serve as a stand-in for physical data centers.

[ 206 ] Index A agents initializing, in cloud 185 resources, exporting to 141 anchor pattern about 90 URL 91 antipatterns avoiding 154, 155 apt-get command 8 arrays 15 autorequire feature 125 autoscaling feature about 198 certificates, managing 198-200 round trip times, limiting 200-202 autosigning URL 200 autosigning script 198 B backends selecting 165 URL, for online documentation 165 beaker about 105 URL 105 before metaparameter 19, 21, 24 C classes about 66 component classes, writing 73, 74 comprehensive classes, writing 71, 72 creating, with parameters 92 declaring 66, 67 defining 66, 67 definitions, nesting 82 differentiating, with defined types 69, 70 include keyword, preferring 93 parameterized classes, consequences 92, 93 class inheritance 149 cloud agents, initializing in 185 manifests, building for 187 cloud-provisioner module using 186 collectors used, for realizing resources 140, 141 component classes writing 73, 74 composite design 71 comprehensive classes writing 71, 72 configuration data structuring, in hierarchy 161, 162 containers events, passing between classes and defined types 83-85 limitations 86-89 limitations, mitigating 90 ordering 86 relationships, establishing among 83 containers, limitations anchor pattern 90 contain function 91 control structures adding, in manifest 13, 14 creates parameter 28 cron resource type 29 custom attribute 191 custom facts about 53 Facter, extending with 53-55 custom functions about 96 used, for refining custom module interface 126-128 custom module building 105 enhancing, through facts 125 implementing 106-109 interface, refining through custom functions 126-128 making, portable across platforms 128, 129 naming 106 using 106 utilities, creating for derived manifests 110 custom types 117 D data resources, converting to 172-174 data, defining in manifest consequences 159, 160 defined types about 66 creating 67-69 differentiating, with classes 69, 70 used, for exploiting array values 78-81 using 67-69 using, as macros 77, 78 using, as resource multiplexers 76 using, as resource wrappers 74, 75 dependency 20 documentation, modules 98, 99 domain-specific language (DSL) 8 dynamic configuration files templating 134 dynamic scoping 154 E enabled property 10 ensure property 10 environment.conf file 100 environment locations configuring 100, 101 environments maintaining 99, 100 modules, installing 101, 102 modules, obtaining 101, 102 used, for testing modules 104, 105 evaluation order circular dependencies, avoiding 21, 22 controlling 16 dependencies, declaring 17-20 error propagation 20 events about 23 passing, between classes and defined types 83-85 exec resource type 27 external facts using 55, 56 External Node Classifiers (ENCs) 174 F Faces 186 Facter example 62 extending, with custom facts 53-55 goals 57 systems, summarizing with 50, 51 facts URL, for documentation 125 used, for enhancing custom module 125 fact values accessing 52, 53 using 52, 53 flexibility, providing to classes about 148 class inheritance 149 inheriting class, naming 151 parameters, making safer through inheritance 151 [ 208 ] Forge modules' characteristics, identifying 130 URL 130 used, for searching modules 130 fqdn_rand function 41 fully qualified domain name (FQDN) 52 G group resource type 26 H hashes 14 Hiera arrays, handling 170-172 class parameter values, binding 167-169 configuring 163 data, storing 164 hashes, handling 170-172 lookups, defining 179 practical example 177, 178 using, in different contexts 175, 176 values, retrieving 165 values, using in manifest 165 working with simple values 166, 167 hiera_array function 170 hiera_hash function 171 hierarchy configuration data, structuring in 161, 162 I immutability, variables 14 include keyword preferring 93 Infrastructure as a Service (IaaS) 184 Infrastructure as Code paradigm 105 inheriting class naming 151 installation, modules 101, 102 instances method 123 M manifest about 182 control structures, adding in 13, 14 dry-testing 12 structure 9 manifest, and Hiera designs selecting between 175 manifest, building for cloud about 187 arbitrary configuration files, composing 194-196 certificate names, selecting 190, 191 distributed catalog, creating 191-194 functionality, mapping to nodes 187-189 instance deletions, handling 197, 198 metaparameters 18 model substantiating, with providers 59, 60 modules about 96 agent, enhancing through plugins 116, 117 best practices 102 content structure 97, 98 documentation 98, 99 generalization, avoiding 103 identifying, in Forge 130 important parts 96 installing 101, 102 manifest files, gathering 102, 103 obtaining 101, 102 searching, in Forge 130 testing 104 testing, with environments 104, 105 URL, for publishing 98 monolithic implementation 71 mount resource type 29, 30 N Nginx about 45 Phusion Passenger, using with 45, 46 nodes file 100 Notice keyword 20 [ 209 ] O operatingsystemrelease fact 53 output interpreting, of puppet apply command 11, 12 P Proudly sourced and uploaded by [StormRG] Kickass Torrents | TPB | ExtraTorrent | h33t parameterized classes consequences 92, 93 parameters versus properties 10 parser functions 96 performance bottlenecks avoiding, from templates 136 performance considerations about 42 basic tuning 46 Passenger, using with Nginx 45 switching, to Phusion Passenger 43, 44 Phusion Passenger switching to 43, 44 URL, for installation instructions 45 using, with Nginx 45, 46 Platform as a Service (PaaS) 184 plugins about 116 custom types, creating 118 custom types, naming 118 management commands, declaring 121 provider, adding 121 provider, allowing to prefetch existing resources 123, 124 provider functionality, implementing 122, 123 resource names, using 120 resource type interface, creating 119 sensible parameter hooks, designing 120 types, making robust 125 used, for enhancing modules agent 116, 117 plugins, types custom facts 116 parser functions 116 providers 116 types 116 processorcount fact 52 properties about 10 versus parameters 10 providerless resource types 61 provider parameter 10 providers model, substantiating with 59, 60 summarizing 61 Puppet about 182 installing 8 modules 96 typical scopes 182 URL 182 Puppet agent certificate, renewing 40 life cycle 38, 39 running, from cron 41 setting up 35-37 puppet apply command about 9, 31 output, interpreting of 11, 12 PuppetBoard 186 Puppet Dashboard 186 Puppet Explorer 186 Puppet Labs URL 8 URL, for advanced approaches 43 URL, for core resource types 61 URL, for style guide 52 URL, for system installation information 32 URL, for Troubleshooting section 47 puppetlabs-strings module URL 99 Puppet master about 31 configuration settings, inspecting 35 master machine, setting up 32 master manifest, creating 33, 34 tasks 32 puppetmaster system service 33 puppet module install command 101 Puppet support, for SSL CSR attributes URL 199 [ 210 ] Puppet, taking to cloud about 184 agents, initializing 185 cloud-provisioner module, using 186 Puppet toolchain 46 rspec-puppet module about 105 URL 105 R separate data storage need for 158 singletons 135 site manifest 33 SSL troubleshooting 47, 48 stdlib module 101 strings 15 subscribe metaparameter 23 successful provisioning, ensuring about 202 manifests, testing 204, 205 necessary relationships, adding 203 systems summarizing, with Facter 50, 51 S realize function 138, 139 redundancy saving, resource defaults used 152, 153 relationships, containers performance implications 89 require metaparameter 19 resource chaining 17 resource defaults used, for saving redundancy 152, 153 resource interaction implementing 22-24 resource parameters overriding 147, 148 resources about 10 converting, to data 172-174 exporting 142 exporting, to agents 141 importing 142 realizing, collectors used 140, 141 resources, exporting about 141 central firewall, maintaining 146 custom configuration, automating 144 hosts files, managing 144 master configuration, for storing exported resources 142 Nagios configuration, simplifying 145, 146 SSH host keys, exporting 143 resource type life cycle, agent side 58, 59 resource types cron 29 examining 25, 26 exec 27, 28 group 26 mount 29, 30 user 26 revocation 39 Roles and Profiles pattern 183 T templates performance bottlenecks, avoiding from 136 using 135, 136 template syntax learning 134, 135 transaction 57 Trusted Facts 189 types about 117 summarizing 61 type system 57 typical scopes, Puppet about 182 profiles 183, 184 roles 183, 184 U user resource type 26 utilities, custom module complexity, dealing 115, 116 configuration items, adding 111, 112 creating, for derived manifests 110 [ 211 ] customization, allowing 113 unwanted configuration items, removing 114, 115 W Warning keyword 20 V Y Vagrant 182 variables using 14 variable types about 14 arrays 15 hashes 14 strings 15 virtual resources creating 137, 138 yum command 8 [ 212 ] Thank you for buying Puppet Essentials About Packt Publishing Packt, pronounced 'packed', published its first book "Mastering phpMyAdmin for Effective MySQL Management" in April 2004 and subsequently continued to specialize in publishing highly focused books on specific technologies and solutions.


pages: 420 words: 61,808

Flask Web Development: Developing Web Applications With Python by Miguel Grinberg

database schema, Firefox, full text search, Minecraft, platform as a service, web application

The logging method to use for these messages largely depends on the hosting platform. Tip If you have cloned the application’s Git repository on GitHub, you can run git checkout 17b to check out this version of the application. Cloud Deployment The latest trend in application hosting is to host in the “cloud.” This technology, which is formally known as Platform as a Service (PaaS), frees the application developer from the mundane tasks of installing and maintaining the hardware and software platforms on which the application runs. In the PaaS model, a service provider offers a fully managed platform in which applications can run. The application developer uses tools and libraries from the provider to integrate the application with the platform.

Index Symbols .env file, Testing with Foreman , Importing Environment Variables A application programming interfaces (APIs) resources, Implementing Resource Endpoints versioning, Versioning authentication, User Authentication with Flask-HTTPAuth , Token-Based Authentication C cloud, Cloud Deployment code coverage, Obtaining Code Coverage Reports configuration, Logging Slow Database Performance , Logging of Errors During Production , Setting Up Logging D database association table, Many-to-Many Relationships filter_by query filter, Query Followed Posts Using a Database Join join query filter, Query Followed Posts Using a Database Join joins, Query Followed Posts Using a Database Join migrations, Database Migrations with Flask-Migrate NoSQL, NoSQL Databases performance, Logging Slow Database Performance relational model, SQL Databases relationships, Relationships , Querying Rows , Database Relationships Revisited , Database Representation of Comments SQL, SQL Databases debugging, Logging of Errors During Production decorators, Role Verification E email, Configuring email error handling, Error Handling F Flask, Installation abort function, Responses, Error Handling add_url_route function, Request Dispatching after_app_request hook, Logging Slow Database Performance application factory function, Using an Application Factory app_errorhandler decorator, Implementing Application Functionality in a Blueprint , Error Handling before_app_request hook, Sending Confirmation Emails before_request hook, Request Hooks, User Authentication with Flask-HTTPAuth blueprints, Implementing Application Functionality in a Blueprint , Creating an Authentication Blueprint , Creating an API Blueprint configuration object, Using an Application Factory context processors, Integration with the Python Shell , Role Verification contexts, Application and Request Contexts, Unit Tests cookies, Show Followed Posts on the Home Page current_app context variable, Application and Request Contexts, Unit Tests debug argument, Server Startup dynamic routes, Routes and View Functions errorhandler decorator, Custom Error Pages, Implementing Application Functionality in a Blueprint , Implementing Application Functionality in a Blueprint , Serializing Resources to and from JSON extension registry, Finding Flask Extensions flash function, Message Flashing Flask class, Initialization flask.ext namespace, Command-Line Options with Flask-Script , Twitter Bootstrap Integration with Flask-Bootstrap g context variable, Application and Request Contexts, Request Hooks get_flashed_messages template function, Message Flashing jsonify function, RESTful Web Services with Flask make_response function, Responses, Show Followed Posts on the Home Page methods argument, Form Handling in View Functions redirect function, Responses, Redirects and User Sessions render_template function, Rendering Templates , Redirects and User Sessions request context variable, Application and Request Contexts, Application and Request Contexts Response class, Responses route decorator, Routes and View Functions, Request Dispatching , Implementing Application Functionality in a Blueprint run method, Server Startup SECRET_KEY configuration, Configuration Options server shutdown, End-to-End Testing with Selenium session context variable, Application and Request Contexts, Redirects and User Sessions set_cookie method, Responses static files, Static Files static folder, Static Files templates folder, Rendering Templates test client, The Flask Test Client URL map, Request Dispatching url_for function, Links, Redirects and User Sessions, Implementing Application Functionality in a Blueprint , Sending Confirmation Emails url_prefix argument, Creating an Authentication Blueprint Flask-Bootstrap, Twitter Bootstrap Integration with Flask-Bootstrap blocks, Twitter Bootstrap Integration with Flask-Bootstrap quick_form macro, HTML Rendering of Forms Flask-HTTPAuth, User Authentication with Flask-HTTPAuth Flask-Login, User Authentication with Flask-Login AnonymousUserMixin class, Role Verification current_user context variable, Adding a Login Form LoginManager class, Preparing the User Model for Logins login_required decorator, Protecting Routes , Sending Confirmation Emails login_user function, Signing Users In logout_user function, Signing Users Out UserMixin class, Preparing the User Model for Logins user_loader decorator, Preparing the User Model for Logins Flask-Mail, Email Support with Flask-Mail asynchronous sending, Sending Asynchronous Email Gmail configuration, Email Support with Flask-Mail Flask-Migrate, Creating a Migration Repository Flask-Moment, Localization of Dates and Times with Flask-Moment format method, Localization of Dates and Times with Flask-Moment fromNow method, Localization of Dates and Times with Flask-Moment lang method, Localization of Dates and Times with Flask-Moment Flask-Script, Command-Line Options with Flask-Script Flask-SQLAlchemy, Database Management with Flask-SQLAlchemy add session method, Inserting Rows , Modifying Rows column options, Model Definition column types, Model Definition create_all method, Creating the Tables delete session method, Deleting Rows drop_all method, Creating the Tables filter_by query filter, Database Use in View Functions get_debug_queries function, Logging Slow Database Performance models, Model Definition MySQL configuration, Database Management with Flask-SQLAlchemy paginate query method, Pagination of Large Resource Collections Postgres configuration, Database Management with Flask-SQLAlchemy query executors, Querying Rows query filters, Querying Rows query object, Querying Rows SQLALCHEMY_COMMIT_ON_TEARDOWN configuration, Database Management with Flask-SQLAlchemy SQLALCHEMY_DATABASE_URI configuration, Database Management with Flask-SQLAlchemy , Configuration Options SQLite configuration, Database Management with Flask-SQLAlchemy Flask-SSLify, Enabling Secure HTTP with Flask-SSLify Flask-WTF, Web Forms BooleanField class, Adding a Login Form Cross-Site Request Forgery (CSRF), Cross-Site Request Forgery (CSRF) Protection custom validators, Adding a User Registration Form Email validator, Adding a Login Form EqualTo validator, Adding a User Registration Form Form class, Form Classes form fields, Form Classes PasswordField class, Adding a Login Form Regexp validator, Adding a User Registration Form rendering, HTML Rendering of Forms Required validator, Form Classes StringField class, Form Classes SubmitField class, Form Classes validate_on_submit function, Signing Users In validate_on_submit method, Form Handling in View Functions validators, Form Classes, Form Classes Foreman, Installing the Heroku Toolbelt , Testing with Foreman G Git, How to Work with the Example Code , Preparing the Application, Deploying with git push Gunicorn, Running a production web server , Adding a Procfile H Heroku, The Heroku Platform Heroku client, Installing the Heroku Toolbelt Heroku toolbelt, Installing the Heroku Toolbelt HTTP status codes, Error Handling HTTPie, Testing Web Services with HTTPie I integrated development environments (IDEs), Using an Integrated Development Environment (IDE) itsdangerous, Generating Confirmation Tokens with itsdangerous, Token-Based Authentication J JavaScript Object Notation (JSON), Request and Response Bodies serialization, Serializing Resources to and from JSON Jinja2, Installation, The Jinja2 Template Engine block directive, Control Structures, Twitter Bootstrap Integration with Flask-Bootstrap extends directive, Control Structures, Twitter Bootstrap Integration with Flask-Bootstrap filters, Variables for directive, Control Structures if directive, Control Structures, HTML Rendering of Forms import directive, Control Structures, HTML Rendering of Forms include directive, Control Structures macro directive, Control Structures safe filter, Variables set directive, Comment Moderation super macro, Control Structures template inheritance, Control Structures variables, Variables L logging, Logging Slow Database Performance , Logging Slow Database Performance , Logging of Errors During Production , Configuring logging , Reviewing Logs , Setting Up Logging M manage.py, Project Structure, Launch Script , Importing Environment Variables coverage command, Obtaining Code Coverage Reports db command, Creating a Migration Repository deploy command, Deployment Workflow , Testing with Foreman profile command, Source Code Profiling runserver command, Command-Line Options with Flask-Script shell command, Command-Line Options with Flask-Script , Integration with the Python Shell test command, Unit Tests P pagination, Pagination of Large Resource Collections password security, hashing, Password Security performance, Source Code Profiling permissions, Database Representation of Roles pip, Installing Python Packages with pip platform as a service (PaaS), Cloud Deployment post/redirect/get pattern, Redirects and User Sessions Procfile, Adding a Procfile profiling source code, Source Code Profiling proxy servers, Enabling Secure HTTP with Flask-SSLify R Representational State Transfer (REST), Introduction to REST requirements file, Project Structure, Requirements File , Adding a requirements file Rich Internet Applications (RIAs), Application Programming Interfaces S secure HTTP, Enabling Secure HTTP with Flask-SSLify Selenium, End-to-End Testing with Selenium source code profiler, Source Code Profiling syslog, Setting Up Logging T testing, Testing Web Services with HTTPie , Obtaining Code Coverage Reports unit tests, Unit Tests , Hashing Passwords with Werkzeug , Role Verification web applications, Testing Web Applications web services, Testing Web Services Twitter Bootstrap, Twitter Bootstrap Integration with Flask-Bootstrap U unittest, Unit Tests URL fragment, Comment Submission and Display user roles, User Roles uWSGI, Running a production web server V virtualenv, Using Virtual Environments activate command, Using Virtual Environments deactivate command, Using Virtual Environments W Web Server Gateway Interface (WSGI), Initialization Werkzeug, Installation, Hashing Passwords with Werkzeug , Source Code Profiling , Logging of Errors During Production ProxyFix WSGI middleware, Enabling Secure HTTP with Flask-SSLify Colophon The animal on the cover of Flask Web Development is a Pyrenean Mastiff (a breed of Canis lupus familiaris).


pages: 232 words: 71,237

Kill It With Fire: Manage Aging Computer Systems by Marianne Bellotti

anti-pattern, barriers to entry, cloud computing, cognitive bias, computer age, continuous integration, create, read, update, delete, Daniel Kahneman / Amos Tversky, database schema, DevOps, fault tolerance, fear of failure, Google Chrome, iterative process, loose coupling, microservices, minimum viable product, platform as a service, pull request, QWERTY keyboard, Richard Stallman, risk tolerance, Schrödinger's Cat, side project, software as a service, Steven Levy, web application, Y Combinator, Y2K

This should give you a clearer picture of where there are likely to be problems. If you can put these problems on a road map, they have less dramatic impact on morale. You might be tempted to think that modern software development is improving this situation. Cross-compatibility is much better than it used to be, that’s true, but the growth of the platform as a service (PaaS) market for commercial cloud is increasing the options to program for specific platform features. For example, the more you build things with Amazon’s managed services, the more the application will conform to fit Amazon-specific characteristics, and the more overgrowth there will be to contend with if the organization later wants to migrate away.

See cellphones momentum, 75–90, 117, 122, 130 monoliths, 50–51, 56, 85–87, 101–108, 148 Moravec, Hans, 63 morse code, 20 Mozilla, 204 MTTR (mean time to recovery), 113, 220 Multics, 21 murder boards, 125–127 MVP (minimum viable product), 32, 39, 76, 79 Mythical Man-Month, The, 140, 213 N NASA, 198 NASA’s Ames Research Center, 125 National Science Foundation Network, 10 Netflix, 204 networks, 13 nationalization, 11 nines of availability, 113 normal accidents, 46 O Obama administration, the, 79 objectives and key results (OKRs), 182 object-oriented, 70 object relational mapping (ORM), 105 observability, 52 on-call rotations, 109, 208 Operation Aurora, 119 opportunity costs, 90–94 optimizing, 83, 105 ORM (object relational mapping), 105 overgrowth, 64 P performance, 42–44, 52, 92, 113, 144 Perrow, Charles, 46 personal computer (PC), 10 Pew Research, 5 physical view, 173 Pinterest, 204 platform as a service (PaaS), 69 POSIX, 27 postmortem, 100, 167–168, 187–190 probabilistic outcome-based decision-making, 138 problem setting, 129–130, 159 processing power, 13 process view, 173 programming languages, 36 ALGOL60, 28–31 Assembly, 29, 40, 66 bash, 65 BASIC, 30 BCPL, 28 C, 28, 31 COBOL, 28–31, 39–41, 61, 70 CoffeeScript, 70 CPL, 31 CSS, 150 FORTRAN, 30 HTML, 150 Java, 30, 68, 70 JavaScript, 36, 67, 70, 150 JCL, 65 Lisps, 31 Python, 30, 69 SQL, 65, 105 Typescript, 70 protocols, 67 FTP, 67 HTTP, 209 NTP, 197 SMTP, 67 TCP/IP, 67 TLS/SSL, 206 pull requests, 23 Q Qantas Airways, 204 QWERTY, 27 R railroad tickets, 18 Reddit, 204 refactoring, 51–52, 71, 103 reorgs, 141, 151–152, 156 research institutions, 11 resilience, 112, 169 resilience engineering, 172 responsibility gaps, 99, 207 resulting, 60 retrospectives, 188 reverse engineering, 71 rewrites, 34, 54–55, 145–147 risk, 34, 88, 146, 162–171 Ritchie, Dennis, 23 Robert’s Rules of Order, 193 Rumelt, Richard, 184 S SaaS (software as a service), 95 Salus, Peter, 23 sandbox, 174–175 scaling, 62–63, 78, 110, 149, 195 Schrödinger’s cat, 124 SDK (software development kits), 67 second system syndrome, 33 security, 89 Selectric, 27 Service Dominate Logic (S-D Logic), 8 service level agreements (SLAs), 94 service level objectives (SLOs), 94, 106, 113, 144, 149, 169, 220 service-oriented architecture (SOA), 101, 148 service recovery paradox, 170 shell scripts, 65 Sholes, Christopher Latham, 19 site reliability engineering (SRE), 99, 113, 150, 157, 218 Slack, 102 SLAs (service level agreements), 94 SLOs (service level objectives), 94, 106, 113, 144, 149, 169, 220 SOA (service-oriented architecture), 101, 148 software as a service (SaaS), 95 software development kits (SDK), 67 software renovation, 71 Soule, Samuel W., 19 source code, 23 split in place, 56 Spolsky, Joel, 33, 145 SRE (site reliability engineering), 218 Stack Overflow, 33 Stallman, Richard, 25–26 standards, 11, 66, 77, 103, 107 static analysis, 69, 71–72 stocks, 210 storage capacity, 13 stored procedures, 65 Stricker, Gabriel, 119 success criteria, 83, 182–185 supercomputers, 10 Surprising Power of Liberating Structures, 135 system stability, 89, 169 T tabulating machines, 18–20 technical debt, 38–40, 55, 79, 106, 210–215 telegraphs, 19–21 testing, 51, 55, 57, 70, 85, 109, 124 Texas Instruments, 198 Thompson, Ken, 23 TOPS-10, 197 Torvalds, Linus, 25 trade-offs, 42, 83 transpilers, 69–71 true but irrelevant, 82 trust, 54, 100, 108, 123, 168–170, 219 Twitter, 62, 204 typewriters, 19 U United Nations (UN), 181 United Parcel Service (UPS), 203 University of Cambridge, 31 University of North Carolina at Chapel Hill, 140 Unix, 21–27, 197 UNIX-HATERS Handbook, The, 26 US Army/Marine Corps Counterinsurgency Field Manual, The, 129 US Digital Service (USDS), 68, 144, 164–165 V virtual machines (VM), 49–50, 85–87, 111, 176 W Working Effectively with Legacy Code, 55 working groups, 191–193 World Computer Corporation, 197 Y Y2K, 196, 200 yak shaving, 153 YouTube, 102 Z Zajonc, Robert, 22, 34


The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise by Martin L. Abbott, Michael T. Fisher

always be closing, anti-pattern, barriers to entry, Bernie Madoff, business climate, business continuity plan, business intelligence, business process, call centre, cloud computing, combinatorial explosion, commoditize, Computer Numeric Control, conceptual framework, database schema, discounted cash flows, en.wikipedia.org, fault tolerance, finite state, friendly fire, functional programming, hiring and firing, Infrastructure as a Service, inventory management, new economy, packet switching, performance metric, platform as a service, Ponzi scheme, RFC: Request For Comment, risk tolerance, Rubik’s Cube, Search for Extraterrestrial Intelligence, SETI@home, shareholder value, Silicon Valley, six sigma, software as a service, the scientific method, transaction costs, Vilfredo Pareto, web application, Y2K

Nov 13, 2006. http://www.businessweek.com/magazine/content/ 06_46/b4009001.htm. 427 428 C HAPTER 28 C LOUDS AND G RIDS • Software as a Service (SaaS). This was the original Blah as a Service term and started with software such as customer relationship management (CRM) software as some of the earliest offerings. Almost any form of software can be offered in this manner and it can be done either over the Web or via download. • Platform as a Service (PaaS). This model provides all the required components for developing and deploying Web applications and services. These components include workflow management, integrated development environments, testing, deployment, and hosting. • Infrastructure as a Service (IaaS). This is the concept of offering computing infrastructure such as servers, storage, network, and bandwidth for use as necessary by clients.

. • Developing alongside the idea of cloud computing was the concept of Software as a Service, Infrastructure as a Service, and many more “as a Service” concepts. • Software as a Service refers to almost any form of software that is offered in a pay as you use model. • Infrastructure as a Service is the idea of offering infrastructure such as storage, servers, network, and bandwidth in a pay as you use model. • Platform as a Service provides all the required components for developing and deploying Web applications and services. • Everything as a Service is the idea of being able to have small components that can be pieced together to provide a new service. • Grid computing as a concept has been around for almost two decades.

.”, 447 control, 444 IP address limitations, 444–445 limitations, 444–445 load balancing, 444–445 performance, 445–446 portability, 443 security, 443 summary of, 446–447 third-party software certification, 444–445 top ten obstacles, 447 Cloud computing, history of Artificial Intelligence, 427–428 dot com bubble, 427 IaaS (Infrastructure as a Service), 427–428 IBM, Autonomic Computing Manifesto, 427–428 PaaS (Platform-as-a-Service), 427–428 SaaS (Software as a Service), 427–428 XaaS (Everything as a Service), 427–428 Cloud computing, pros cost, 440–441 flexibility, 442 speed, 441–442 summary of, 442 Clouds backbones, 435–436 definition, 426 vs. grids, 434–436 hypervisors, 433 541 542 I NDEX Clouds (continued) public vs. private, 426 service providers, 435–436 types of, 435–436 virtualization software, 435–436 Clouds, characteristics of multiple tenants, 432–433, 434 pay by usage, 431, 434 in private clouds, 434 scale on demand, 431–432, 434 summary of, 433 virtualization, 433, 434 CMM (Capability Maturity Model), 124–125 CMMI (Capability Maturity Model Integrated), 124–125 COBIT (Control Objectives and related Technology), 133–134 Code complexity, AKF Scale Cube for applications, 346 Code reviews, as barrier conditions, 274 Codebase increases, scaling for, 343–344 Collins, Jim, 71 Commoditization over time, 301–302 Commodity hardware, architectural principles, 203 Communication breakdown from the business end, 106–107 destructive interference, 105–106, 212 educational mismatch, 106 the experiential chasm, 105–108 between management and technical teams, 105–108 matrix organization teams, 59 team size, warning sign, 50–51 from the technical end, 107–108 Communications improvement check lists and guidelines, 107–108 organizational design, influences on, 44 team size, 48 Communications and control, crisis management, 157–158 Comparing pros and cons, making tradeoff decisions, 291–292 real vs. ideal situations, 504 Compassion, leadership, 68 Competitive components, identifying, 239 Complexity business processes, managing, 128–130 grid drawback, 459–460 Concepts vs. rules, AKF Scale Cube, 325–326 Conditional approval by the ARB, 226, 229 Configuration management AKF Scale Cube for applications, 342 x-axis splits, databases, 361 Conflicts, organizational design, 17 Consensus, JAD (Joint Architecture Design), 218 Consulted persons, RASCI, 38 Content delivery networks (CDNs), 389–390 Control, cloud computing drawback, 444 Control Objectives and related Technology (COBIT), 133–134 Corporate mindset.


pages: 779 words: 116,439

Test-Driven Development With Python by Harry J. W. Percival

continuous integration, database schema, Debian, DevOps, don't repeat yourself, Firefox, loose coupling, MVC pattern, platform as a service, pull request, web application, WebSocket

Send email to index@oreilly.com. 443 www.it-ebooks.info code smell, 59, 65, 193, 301 collectstatic, 127–129 comments, 15, 86 commits, 18, 24, 30, 110 configuration management tools, 167 (see also Fabric) context managers, 177 continuous integration (CI), 365–385, cdvii adding required plugins, 368 best practices, 385 configuring Jenkins, 367 debugging with screenshots, 374–378 installing Jenkins, 365 JavaScript tests, 381–384 project setup, 369 Selenium race conditions, 378–381 for staging server test automation, 384 virtual display setup, 372–374 contracts, implicit, 356 cookies, 282, 304 Cross-Site Request Forgery (CSRF) error, 53 CSS (Cascading Style Sheets) framework, 116, 118 (see also Bootstrap) where Bootstrap won’t work, 126 cutting corners, cdvii D data migrations, 428–431 database deployment issues, 132 database location, 141 De-spiking, 251, 285–293 debugging, 21, 52, 249 Ajax, 249 Django debug screen, 146 improving error messages, 57 in continuous integration, 374–378 in JavaScript, 261 staging for, 306–310 switching DEBUG to false, 151 screenshots, for debugging, 374–378 dependencies and deployment, 132 mocking out, 278 virtualenv, 142 deployment, 411 adjusting database location, 141 automating, 152–155, 157–166 danger areas, 132 444 | dependencies and, 132 deploying to live, 163 further reading, 166 key points, 155 to live, 237 migrate, 147 Nginx, 144–146 overview, 152 production-ready, 148–152 vs. provisioning, 140 sample script, 158–161 saving progress, 156 staging, 237, 427 virtualenvs, 142–144 deployment testing, 131–156 domain name for, 135 manual provisioning for hosting, 136–140 overview, 133 design (see layout and style) Django, 4 admin site, 434 apps, 22 authentication in, 245–248, 282 class-based views, 413–421 (see also class-based views) collectstatic, 127–129 custom user model, 293–297 debugging screen, 146, 151 field types, 64 foreign key relationship, 99 forms in (see forms) FormView, 414 functional tests (FT) in (see functional tests/ testing (FT)) and Gunicorn, 148 LiveServerTestCase, 77 management commands, 311–314, 320 migrations, 62–64, 71–74, 237 model adjustment in, 97 model-layer validation, 175–187 Model-View-Controller (MVC), 24 notifications, 433 Object-Relational Mapper (ORM), 60–64 POST requests (see POST requests) as PythonAnywhere app, 410 startproject, 6 static files in, 122 static live server case, 124 template inheritance, 120–121 Index www.it-ebooks.info templates, 69–71, 90 test class in, 93 test client, 88, 93 test fixtures, 304 TestCase, 23 unit testing in, 23 URLs in, 24–30, 88, 94, 96, 102, 106, 108, 110 validation quirk, 178 view functions in, 24, 89, 94, 105–108, 326 and virtualenvs, 142–144 Django-BrowserID, 243 documentation, tests as, 296 domain names, 135 Don’t Test Constants rule, 40 double-loop TDD, 47, 323 DRY (don’t repeat yourself), 59, 396 duplicates, eliminating, 58, 211–221 E encryption, 436 end-to-end test (see functional tests/testing (FT)) error messages, 435 error pages, 434 evaluating third-party systems, 252 expected failure, 16, 19 explicit waits, 253 exploratory coding, 195, 242 (see also spiking) F Fabric, 167, 314, 426 configuration, 163 installing, 157 sample deployment script, 158–161 Fake XMLHttpRequest, 268 fixtures in functional tests, 303 in JavaScript tests, 229 on staging server, 311–317 foreign key relationship, 99 forms advanced, 211–223 autogeneration, 195 customising form field input, 194 experimenting with, 194 ModelForm, 195 save methods, 208 simple, 193–210 thin views, 210 tips for, 210 using in views, 198–207 validation testing and customising, 196 Fuctional Core, Imperative Shell architecture, 403 functional tests/testing (FT), 5, 398 automation of (see continuous integration (CI)) cleanup, 77–80, 95, 387 de-duplication, 320 defining, 14 for de-spiking, 251 for duplicate items, 211–221 isolation in, 77–80, 112 in JavaScript, 232–234 for layout and style, 115–118, 148, 173 multiple users, 387, 393–394 pros and cons, 364 in provisioning, 139 running unit tests only, 80 safeguards with, 317 splitting, 171 for staging sites, 132, 133 unittest module, 13–19 vs. unit tests, 22, 303 in views, 223 G generator expression, 39 GET requests, 198, 205 get_user, 291 Git repository setup, 8–11 reset --hard, 118 tags, 166, 238 global variables, 228 greedy regular expressions, 106 Gunicorn, 148–155, 165, 307, 425 H headless browsers, 372 helper functions/methods, 59, 172, 175, 206, 226, 350, 390–393 hexagonal architecture, 403 hosting options, 136 Index www.it-ebooks.info | 445 hosting, manual provisioning, 136–140 L Idempotency, 167 implicit waits, 18 in-memory model objects, 352 integrated tests, 351–363, 403 vs. integration test, 342 vs. isolated tests, 362, 398 pros and cons, 364 vs. unit tests, 61 integration tests, 342, 398 integrity errors, 217 isolated tests, 337, 403 (see also test isolation) vs. integrated tests, 362, 398 problems with, 400 pros and cons, 364 layout and style, 115–130 Bootstrap for (see Bootstrap) functional tests (FT) for, 173 large inputs, 125 overview, 130 rows and columns, 122 static files, 122, 127–129 table styling, 126 using a CSS framework for, 118 (see also Bootstrap) using our own CSS in, 126 what to functionally test for, 115 list comprehension, 39 LiveServerTestCase, 77 log messages, 320 logging, 307, 320 logging configuration, 318–320 J M I JavaScript, 225 de-spiking in, 251 debug console, 261 functional test (FT) building in, 232–234 jQuery and Fixtures Div, 229–231 linters, 228 MVC frameworks, 435 onload boilerplate and namespacing, 234 QUnit, 227 running tests in continuous integration, 381–384 spiking with, 242–255 (see also spiking) in TDD Cycle, 234 test runner setup, 226 testing notes, 235 Jenkins Security, 365–384 (see also continuous integration (CI)) adding required plugins, 368 configuring, 367 installing, 365 jQuery, 229–231, 234, 235 JSON fixtures, 304, 320 jumbotron, 125 446 | manage.py, 6, 24, 63, 72, 127 Meta, 196 meta-comments, 86 migrate, 147 migrations, 62–64, 71–74, 99, 237, 238 (see also data migrations) database, 427–431 deleting, 99 testing, 427–431 minimum viable application, 13–16, 81 MockMyID, 252 mocks/mocking callbacks, 272–275 checking call arguments, 267 implicit contracts, 356 in JavaScript, 241, 257–275 initialize function test, 258–264 Internet requests, 285–293 for isolation, 338–341 mock library, 301 Mock side_effects, 339 namespacing, 258 in Outside-In TDD, 331 in Python, 278–284 risks, 354 sinon.js, 265 testing Django login, 284 Index www.it-ebooks.info model-layer validation, 175–187 changes to test, 216 enforcing, 186 errors in View, 178–182 integrity errors, 217 POST requests, 183–187 preventing duplicates, 212 refactoring, 175, 184–186 unit testing, 177–178 at views level, 218 Model-View-Controller (MVC), 24, 435 ModelForm, 195 Mozilla Persona, 242 MVC frameworks, 24, 435 N namespacing, 258 Nginx, 138, 144–146, 149, 165, 424 nonroot user creation, 137 notifications, 433 O Q QuerySet, 61, 214–216 QUnit, 227, 235, 263, 268 ORM (Object-Relational Mapper), 60–64 Outside-In TDD, 323–335 advantages, 323 controller layer, 326 defined, 335 vs. Inside-Out, 323 model layer, 331–333 pitfalls, 335 presentation layer, 325 template hierarchy, 327–329 views layer, 326–331, 333 P PaaS (Platform-as-a-Service), 136 Page pattern, 390–393, 396 patch decorator, 278, 301 patching, 287 payment systems, testing for, 252 performance testing, 435 Persona, 242, 252, 308–310, 435 PhantomJS, 381–384, 434 Platform-as-a-Service (PaaS), 136 POST requests, 203 processing, 54, 183–187 redirect after, 68 saving to database, 65–67 sending, 51–54, 92 Postgres, 433 private key authentication, 137 programming by wishful thinking, 328, 335 (see also Outside-In TDD) property Decorator, 334 provisioning, 136–140 with Ansible, 423–426 automation in, 166 functional tests (FT) in, 139 overview, 152 vs. deployment, 140 pure unit tests (see isolated tests) py.test, 436 Python adding to Jenkins, 369 PythonAnywhere, 136, 409 R race conditions, 374, 389 Red, Green, Refactor, 58, 89, 170 redirects, 68, 188 refactoring, 40–45 at application level, 183–186 Red, Green, Refactor, 58, 89, 170 removing hard-coded URLs, 187 and test isolation, 341, 362 tips, 190 unit tests, 175 Refactoring Cat, 44, 112 relative import, 161, 173 render to string, 56 REST (Representational Site Transfer), 82 S screenshots, 411 scripts, automated, 132 secret key, 160 Security Engineering (Anderson), 53 security tests, 435 sed (stream editor), 165 Index www.it-ebooks.info | 447 Selenium, 4 and JavaScript, 235 best practices, 385 in continuous integration, 378–381 in continuous integration, 372 race conditions, 389 race conditions in, 378–381 upgrading, 86 for user interaction testing, 37–40 wait patterns, 18, 253, 387, 389 waits in, 379–381, 385 server configuration, 155 server options, 137 servers, 136–140 (see also staging server) session key, 304 sessions, 282 Shining Panda, 369 sinon.js, 265, 268, 272 skips, 170 spiking, 242–255, 275 browser-ID protocol, 244 de-spiking, 251 frontend and JavaScript code, 243 logging, 250 server-side authentication, 245–248 with JavaScript, 242 SQLite, 433 staging server creating sessions, 311 debugging in, 306–310 managing database on, 311–306 test automation with CI, 384 staging sites, 132, 133, 135 static files, 116, 122, 132, 149 static folder, site-wide, 256 static live server case, 124 string representation, 215 string substitutions, 103 style (see layout and style) superlists, 8 superusers, 73 system boundaries, 403 system tests, 398 T table styling, 126 template inheritance, 120–121 template inheritance hierarchy, 327 448 | template tag, 53 templates, 40, 55 rendering items in, 69–71 separate, 90 test fixtures, 304, 320 test isolation, 112, 337–363 cleanup after, 359–362 collaborators, 343–345 complexity in, 363 forms layer, 347–350 full isolation, 342 interactions between layers, 355 isolated vs. integrated tests, 362 mocks/mocking for, 338–341 models layer, 351–353 ORM code, 347–351, 364 refactoring in, 341, 362 views layer, 337, 338–347, 353 test methods, 17 test organisation, 190 test skips, 170 test types, 364, 397 test-driven development (TDD) advanced considerations in, 397–404 and developer stupidity, 213 double-loop, 47, 323 further reading on, 404 Inside-Out, 323 iterating towards new design, 86 Java testing in, 234 justifications for, 35–37 new design implementation with, 83–86 Outside-In, 323–335 (see also Outside-In TDD) process flowchart, 83 process recap, 47–50 trivial tests, 36–37 Working state to working state, 86, 110, 112 testing best practices, 397 Testing Goat, 3, 110, 112, cdvii tests, as documentation, 296 thin views, 210 time.sleep, 52 tracebacks, 26, 56 triangulation, 58 U Ubuntu, 137 Index www.it-ebooks.info unit tests architectural solutions for, 402 context manager, 177 desired features of, 401 in Django, 23 for simple home page, 21–33 vs. functional tests, 303 vs. functional tests (FT), 22 vs. integrated tests, 61 pros and cons of, 398–401 refactoring, 175 unit-test/code cycle, 31–33 unittest, 134 Unix sockets, 150 Upstart, 151 URLs capturing parameters in, 103 distinct, 102 in Django, 24–30, 88, 94, 96, 102, 106, 108 pointing forms to, 96 urls.py, 27–30 user authentication (see authentication) user creation, 291 user input, saving, 51–75 user interaction testing, 37–40 user stories, 19, 170 validation, 169 (see also functional tests/testing (FT)) model-layer, 175–187 (see also model-layer validation) VCS (version control system), 8–11 view functions, in Django, 24, 89, 94, 105–108 views layer, 337, 338–347, 353 model validation errors in, 178–182 views, what to test in, 223 virtual displays, 372 Virtualbox, 426 virtualenvs, 132, 142–144 W waits, 18, 253, 379–381, 385, 387, 389 warnings, 17 watch function, 265 websockets, 435 widgets, 194, 196 X Xvfb, 369, 373, 410 Y YAGNI, 82 V Vagrant, 426 Index www.it-ebooks.info | 449 About the Author After an idyllic childhood spent playing with BASIC on French 8-bit computers like the Thomson T-07 whose keys go “boop” when you press them, Harry spent a few years being deeply unhappy with economics and management consultancy.

So, rather than trying to remember the specifics of what I’m doing here, you should be trying to understand the rationale, so that you can apply the same kind of thinking in the specific future circumstances you encounter. Choosing Where to Host Our Site There are loads of different solutions out there these days, but they broadly fall into two camps: • Running your own (possibly virtual) server • Using a Platform-As-A-Service (PaaS) offering like Heroku, DotCloud, OpenShift, or PythonAnywhere Particularly for small sites, a PaaS offers a lot of advantages, and I would definitely recommend looking into them. We’re not going to use a PaaS in this book however, for several reasons. Firstly, I have a conflict of interest, in that I think PythonAnywhere is the best, but then again I would say that because I work there.


pages: 567 words: 122,311

Lean Analytics: Use Data to Build a Better Startup Faster by Alistair Croll, Benjamin Yoskovitz

Airbnb, Amazon Mechanical Turk, Amazon Web Services, Any sufficiently advanced technology is indistinguishable from magic, barriers to entry, Bay Area Rapid Transit, Ben Horowitz, bounce rate, business intelligence, call centre, cloud computing, cognitive bias, commoditize, constrained optimization, en.wikipedia.org, Firefox, Frederick Winslow Taylor, frictionless, frictionless market, game design, Google X / Alphabet X, hockey-stick growth, Infrastructure as a Service, Internet of things, inventory management, Kickstarter, lateral thinking, Lean Startup, lifelogging, longitudinal study, Marshall McLuhan, minimum viable product, Network effects, pattern recognition, Paul Graham, performance metric, place-making, platform as a service, recommendation engine, ride hailing / ride sharing, rolodex, sentiment analysis, skunkworks, Skype, social graph, social software, software as a service, Steve Jobs, subscription business, telemarketer, transaction costs, two-sided market, Uber for X, web application, Y Combinator

If you’re running a SaaS business, here’s what you need to know about metrics. Most SaaS providers generate revenue from a monthly (or yearly) subscription that users pay. Some charge on a consumption basis—for storage, for bandwidth, or for compute cycles—although this is largely confined to Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) cloud computing companies today. Many SaaS providers offer a tiered model of their service, where the monthly fee varies depending on some dimension of the application. This might be the number of projects in a project management tool, or the number of customers in a customer relationship management application.

exercise for, The Squeeze Toy optimizing, Model + Stage Drives the Metric You Track picking, Solare Focuses on a Few Key Metrics, Measuring the MVP reasons for using, Moz Tracks Fewer KPIs to Increase Focus, Get Executive Buy-in SEOmoz case study, The Discipline of One Metric That Matters Solare Ristorante case study, Four Reasons to Use the One Metric That Matters squeeze toy aspect of, Drawing Lines in the Sand Open Leadership (Li), Engagement Funnel Changes open rate metric, Mailing List Effectiveness optimization about, Data-Driven Versus Data-Informed constrained, Data-Driven Versus Data-Informed diminishing returns for, What to Do When You Don’t Have a Baseline OMTM and, Model + Stage Drives the Metric You Track revenue, Pricing Metrics Orbitz travel agency, Data-Driven Versus Data-Informed, Pricing Metrics organizational culture, instilling, How to Instill a Culture of Data in Your Company ORID approach, How Rally Builds New Features with a Lean Approach Osterwalder, Alex, The Lean Canvas outliers, pitfalls to avoid, Data-Driven Versus Data-Informed OutSight service, How Coradiant Found a Market Ozzie, Ray, Skunk Works for Intrapreneurs O’Donnell, Christopher, Freemium Versus Paid P P&G (Proctor & Gamble), Stars, Dogs, Cows, and Question Marks PaaS (Platform as a Service) model, Model Two: Software as a Service (SaaS) Pacheco, Carlos, Sharing with Others Pacific Crest study, Paid Enrollment paid engine (engines of growth), Virality Engine paid enrollment fremium models versus, Freemium Versus Paid in SaaS model, Paid Enrollment Palihapitiya, Chamath, Attacking the Leading Indicator, Causality Hacks the Future Parmar, Jay, A/B and Multivariate Testing Parse.ly case study, Customer Lifetime Value > Customer Acquisition Cost Patil, DJ, Incumbents patterns and pattern recognition identifying in people’s feedback, Running Lean and How to Conduct a Good Interview ProductPlanner site, Timehop Experiments with Content Sharing to Achieve Virality qualitative data and, Finding a Problem to Fix (or, How to Validate a Problem) paywall model, Wrinkles: Hidden Affiliates, Background Noise, Ad Blockers, and Paywalls Pelletier-Normand, Alexandre, Model Three: Free Mobile App, Mobile Download Size, Bottom Line penny machine example, Metrics for the Revenue Stage percent active mobile users/players metric, Sincerely Learns the Challenges of Mobile Customer Acquisition percent of flagged listings metric, Conversion Rates and Segmentation percentage of active users/players metric, Model Three: Free Mobile App percentage of mobile users who pay metric, Percent Active Mobile Users/Players percentage of users who pay metric, Model Three: Free Mobile App, Average Revenue Per User Perez, Sarah, Mobile Customer Lifetime Value Photoshop application, The Minimum Viable Vision Picatic site, A/B and Multivariate Testing Pinterest site affiliate relationships and, Wrinkles: Hidden Affiliates, Background Noise, Ad Blockers, and Paywalls e-commerce model and, What Mode of E-commerce Are You?

value of created content, Engagement Funnel Changes Pirate Metrics model, Analytics Frameworks pivot tables, Creating an Answers-at-Scale Campaign pivoting products and markets enterprise startup lifecycle and, The Enterprise Startup Lifecycle Parse.ly case study, Customer Lifetime Value > Customer Acquisition Cost Revenue stage on, Market/Product Fit Socialight case study, Socialight Discovers the Underlying Metrics of Pricing Platform as a Service (PaaS) model, Model Two: Software as a Service (SaaS) platform model, The Minimum Viable Vision Please Stay Calm app, Model Three: Free Mobile App PM Solutions study, Slower Cycle Time Porter, Michael, Stage Five: Scale post-sales support metric, Support Costs predict-before model, Empathy: Find Problems, Don’t Test Demand predictive analysis, Keywords and Search Terms price elasticity of demand, Number of Engaged Visitors, Socialight Discovers the Underlying Metrics of Pricing Price Intelligently service, Pricing Metrics price sensitivity testing, Socialight Discovers the Underlying Metrics of Pricing Price, Richard, Attacking the Leading Indicator Priceline site, Model Six: Two-Sided Marketplaces pricing metrics determining normal values for, Number of Engaged Visitors setting pricing correctly, What Mode of E-commerce Are You?


pages: 1,409 words: 205,237

Architecting Modern Data Platforms: A Guide to Enterprise Hadoop at Scale by Jan Kunigk, Ian Buss, Paul Wilkinson, Lars George

Amazon Web Services, barriers to entry, bitcoin, business intelligence, business process, cloud computing, commoditize, computer vision, continuous integration, create, read, update, delete, database schema, Debian, DevOps, domain-specific language, fault tolerance, Firefox, functional programming, Google Chrome, Induced demand, Infrastructure as a Service, Internet of things, job automation, Kickstarter, Kubernetes, loose coupling, microservices, natural language processing, Network effects, platform as a service, source of truth, statistical model, web application

In practice, the setup mode is the most prevalent one, and it mitigates the need for having separate database systems, considerably reducing the operational overhead. See “Database HA” for an in-depth discussion on the HA setup for service databases. Hosted database mode If your Hadoop installation is hosted—that is, deployed in a private or public cloud infrastructure, providing infrastructure as a service (IaaS) and, optionally, platform as a service (PaaS)–you might be able to defer all of the complexities to the service provider. For example, Amazon Relational Database Service (Amazon RDS) provides hosted RDBMSs that can be configured to run in a replicated, HA-enabled mode. Following the same principles as with non-hosted setups, you have the choice of not owning the infrastructure but paying for what you need on a per-usage basis.

Cloud technology enables the entire stack of information technology to be consumed as fully programmable and automated services. For example, storage, networking, and servers become infrastructure as a service (IaaS), and platform-level software such as database deployments or access management software becomes platform as a service (PaaS). The high degree of programmability and automation allows almost complete self-service for the customer to control and customize each layer, from IaaS to PaaS. Before large-scale public cloud computing became part of the mainstream in IT, virtualization for Hadoop was mostly considered an antipattern.

Kubernetes allows you to easily deploy and manage many pods as large-scale distributed applications across multiple physical servers, which it refers to as nodes. The plurality of all nodes and pods form a Kubernetes cluster. OpenShift can significantly simplify the process of building applications and platform-as-a-service environments. For many enterprises, OpenShift and Kubernetes pave the way toward scalable microservices. They are actually used to build public clouds as well, like Deutsche Telekom’s AppAgile service. Let’s apply our three assessment criteria to see how OpenShift can support Hadoop environments.


Industry 4.0: The Industrial Internet of Things by Alasdair Gilchrist

3D printing, additive manufacturing, Amazon Web Services, augmented reality, autonomous vehicles, barriers to entry, business intelligence, business process, chief data officer, cloud computing, connected car, cyber-physical system, deindustrialization, DevOps, digital twin, fault tolerance, global value chain, Google Glasses, hiring and firing, industrial robot, inflight wifi, Infrastructure as a Service, Internet of things, inventory management, job automation, low cost airline, low skilled workers, microservices, millennium bug, pattern recognition, peer-to-peer, platform as a service, pre–internet, race to the bottom, RFID, Skype, smart cities, smart grid, smart meter, smart transportation, software as a service, stealth mode startup, supply-chain management, The future is already here, trade route, undersea cable, web application, WebRTC, Y2K

What this means is that is you request a level of compute and storage and then find that demand far exceeds this. The cloud will stretch to accommodate the demand without any customer interaction; the cloud will manage the demand dynamically by assigning more resources. There are three categories of service—IaaS (Infrastructure as a Service), PaaS (Platform as a Service), and SaaS (Software as a Service). Each category defines a set of services available to the customer, and this is key to the cloud— everything is offered as a service. This is based on the earlier SOA (service orientated architecture), where web services were used to access application functions.

. • IaaS (Infrastructure as a Service)—AWS’s basic product back in 2005 and it offered their excess infrastructure for lease to companies. Instead of buying hardware and establishing a server room or data center a SME could rent compute, storage, and network from Amazon, the beauty being they would only pay for what they used. • PaaS (Platform as a Service)—Came about as Microsoft and others realized that developers required not just infrastructure but access to software development languages, libraries, APIs, and microservices in order to build Windows-based applications. Google also supplies PaaS to support its many homegrown applications such as Android and Google Apps.


pages: 116 words: 31,356

Platform Capitalism by Nick Srnicek

3D printing, additive manufacturing, Airbnb, Amazon Mechanical Turk, Amazon Web Services, Capital in the Twenty-First Century by Thomas Piketty, cloud computing, collaborative economy, collective bargaining, deindustrialization, deskilling, disintermediation, future of work, gig economy, independent contractor, Infrastructure as a Service, Internet of things, Jean Tirole, Jeff Bezos, knowledge economy, knowledge worker, liquidity trap, low skilled workers, Lyft, Mark Zuckerberg, means of production, mittelstand, multi-sided market, natural language processing, Network effects, new economy, Oculus Rift, offshore financial centre, pattern recognition, platform as a service, quantitative easing, RFID, ride hailing / ride sharing, Robert Gordon, self-driving car, sharing economy, Shoshana Zuboff, Silicon Valley, Silicon Valley startup, software as a service, surveillance capitalism, TaskRabbit, the built environment, total factor productivity, two-sided market, Uber and Lyft, Uber for X, uber lyft, unconventional monetary instruments, unorthodox policies, Zipcar

For one example of a data value chain, see Dumbill, 2014. 29. Finnegan, 2014. 30. Davidson, 2016. 31. CB Insights, 2016b. 32. Henwood, 2003: 30. 33. Hook, 2016. 34. Clark and Young, 2013. 35. Burrington, 2016. 36. In the industry, these are known respectively as ‘infrastructure as a service’ (IaaS), ‘platform as a service’ (Paas), and ‘software as a service’ (SaaS). 37. Clark, 2016. 38. Miller, 2016. 39. Asay, 2015. 40. McBride and Medhora, 2016. 41. Webb, 2015; Bughin, Chui, and Manyika, 2015. 42. Bughin, Chui, and Manyika, 2015. 43. Alessi, 2014. 44. World Economic Forum, 2015: 4. 45. Zaske, 2015. 46.


pages: 139 words: 35,022

Roads and Bridges by Nadia Eghbal

AGPL, Airbnb, Amazon Web Services, barriers to entry, Benevolent Dictator For Life (BDFL), corporate social responsibility, crowdsourcing, cryptocurrency, David Heinemeier Hansson, Debian, DevOps, en.wikipedia.org, Firefox, GnuPG, Guido van Rossum, Khan Academy, Kickstarter, Marc Andreessen, market design, Network effects, platform as a service, pull request, Richard Stallman, Ruby on Rails, side project, Silicon Valley, Skype, software is eating the world, Tragedy of the Commons, Y Combinator

A couple of examples are as follows: Docker, perhaps the best-known contemporary example, helps software applications run inside containers. (Containers provide a clean, tidy environment for software applications that make them easier to run anywhere). Docker started as an internal project within dotCloud, a platform-as-a-service company, but became so popular that the founders decided to make Docker the main focus of the company. The Docker project was open sourced in 2013. Docker has raised $180M with an estimated valuation of over $1B.[51] Their business model is based on support, private plans, and services. Docker’s 2014 revenue was less than $10 million.[52] Npm is a package manager to help Node.js developers share and manage their projects, released in 2010.


pages: 255 words: 55,018

Architecting For Scale by Lee Atchison

Amazon Web Services, business process, cloud computing, continuous integration, DevOps, Internet of things, microservices, platform as a service, risk tolerance, software as a service, web application

Optimized Use Cases Cloud-based servers are good for a wide variety of general-purpose use cases and can be utilized for most scaling needs. Compute Slices Compute slices are an alternative execution model that involves executing applications without knowledge of which server they are running on. They involve taking an application’s software and deploying it to a Platform-as-a-Service (PaaS) infrastructure that will execute the stack in a managed way. This is done without exposing the specifics of the server on which software is running. There are several examples of compute slice–based compute engines, but Heroku Dynos is a classic example. Advantages Easy to vary allocated capacity at a relatively granular scale.


pages: 247 words: 63,208

The Open Organization: Igniting Passion and Performance by Jim Whitehurst

Airbnb, cloud computing, crowdsourcing, en.wikipedia.org, Google Hangouts, Infrastructure as a Service, job satisfaction, market design, Network effects, new economy, place-making, platform as a service, post-materialism, profit motive, risk tolerance, shareholder value, side project, Silicon Valley, Skype, Snapchat, Steve Jobs, subscription business, The Wisdom of Crowds, Tony Hsieh

Red Hat was selected for inclusion in the Standard & Poor’s (S&P) 500 stock index in 2009, and named by Glassdoor in 2014 as one of the best places to work. Red Hat’s product portfolio has expanded through several strategic acquisitions since Whitehurst joined the company, including Qumranet, Inc. (virtualization), Makara (Platform-as-a-Service [PaaS]), Gluster (storage), FuseSource (middleware), Polymita (middleware), ManageIQ (cloud management), Inktank (storage), eNovance (OpenStack), and FeedHenry (middleware). By incorporating these technologies, Red Hat has become the only open source company that can offer an open source cloud stack that includes an operating system, middleware, and virtualization.


pages: 232 words: 71,024

The Decline and Fall of IBM: End of an American Icon? by Robert X. Cringely

AltaVista, Bernie Madoff, business cycle, business process, cloud computing, commoditize, compound rate of return, corporate raider, full employment, if you build it, they will come, immigration reform, interchangeable parts, invention of the telephone, Khan Academy, knowledge worker, low skilled workers, Paul Graham, platform as a service, race to the bottom, remote working, Robert Metcalfe, Robert X Cringely, shareholder value, Silicon Valley, six sigma, software as a service, Steve Jobs, Toyota Production System, Watson beat the top human players on Jeopardy!, web application

Beyond leaving SoftLayer alone, what IBM needs to do to be successful with its Cloud investments is to fix other parts of the company. Cloud by itself is not enough. IBM has a fighting chance to be profitable with Cloud, but the big question is "how much can IBM really make?" IBM needs to provide value-added services to its Cloud platform to increase both revenue and profit. There isn’t enough money in Platform as a Service (PaaS) for IBM to get a good return on its $1.2 billion investment. IBM needs to provide Software as a Service (SaaS), and to do that IBM needs to have software applications that the market needs. This market is not comprised of IBM’s huge legacy customers; it is the other 80 percent of the market, consisting of not-so-big companies that IBM has served poorly (if at all) in recent years.


pages: 719 words: 181,090

Site Reliability Engineering: How Google Runs Production Systems by Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy

Air France Flight 447, anti-pattern, barriers to entry, business intelligence, business process, Checklist Manifesto, cloud computing, combinatorial explosion, continuous integration, correlation does not imply causation, crowdsourcing, database schema, defense in depth, DevOps, en.wikipedia.org, fault tolerance, Flash crash, George Santayana, Google Chrome, Google Earth, information asymmetry, job automation, job satisfaction, Kubernetes, linear programming, load shedding, loose coupling, meta-analysis, microservices, minimum viable product, MVC pattern, performance metric, platform as a service, revision control, risk tolerance, side project, six sigma, the scientific method, Toyota Production System, trickle-down economics, web application, zero day

Once you’ve found the factors that caused the problem, it’s time to write up notes on what went wrong with the system, how you tracked down the problem, how you fixed the problem, and how to prevent it from happening again. In other words, you need to write a postmortem (although ideally, the system is alive at this point!). Case Study App Engine,16 part of Google’s Cloud Platform, is a platform-as-a-service product that allows developers to build services atop Google’s infrastructure. One of our internal customers filed a problem report indicating that they’d recently seen a dramatic increase in latency, CPU usage, and number of running processes needed to serve traffic for their app, a content-management system used to build documentation for developers.17 The customer couldn’t find any recent changes to their code that correlated with the increase in resources, and there hadn’t been an increase in traffic to their app (see Figure 12-3), so they were wondering if a change in the App Engine service was responsible.

Before moving to New York, Betsy was a lecturer on technical writing at Stanford University. En route to her current career, Betsy studied International Relations and English Literature, and holds degrees from Stanford and Tulane. Chris Jones is a Site Reliability Engineer for Google App Engine, a cloud platform-as-a-service product serving over 28 billion requests per day. Based in San Francisco, he has previously been responsible for the care and feeding of Google’s advertising statistics, data warehousing, and customer support systems. In other lives, Chris has worked in academic IT, analyzed data for political campaigns, and engaged in some light BSD kernel hacking, picking up degrees in Computer Engineering, Economics, and Technology Policy along the way.


PostgreSQL: Up and Running, 3rd Edition by Unknown

cloud computing, database schema, full text search, job automation, platform as a service, profit maximization, web application

Since the first edition of this book, virtualization has resown the landscape of commerical hosting, so having your own dedicated server is no longer a luxury, but the norm. And when you have your own server, you’re free to choose what you wish to have installed. PostgreSQL bodes well with the popularity of cloud computing such as Platform as a service (PaaS) and Database As a Service (DbaaS). Most of the major PaaS and DbaaS providers offer PostgreSQL, notably Heroku, Engine Yard, Red Hat OpenShift, and Amazon RDS. As of late, you can even install PostgreSQL on a Microsoft Azure server. Audience For migrants from other database engines, we’ll point out parellels that PostgreSQL shares with other leading products.


Mastering Structured Data on the Semantic Web: From HTML5 Microdata to Linked Open Data by Leslie Sikos

AGPL, Amazon Web Services, bioinformatics, business process, cloud computing, create, read, update, delete, Debian, en.wikipedia.org, fault tolerance, Firefox, Google Chrome, Google Earth, information retrieval, Infrastructure as a Service, Internet of things, linked data, natural language processing, openstreetmap, optical character recognition, platform as a service, search engine result page, semantic web, Silicon Valley, social graph, software as a service, SPARQL, text mining, Watson beat the top human players on Jeopardy!, web application, wikimedia commons

However, the range of service offerings is widening. In the information technology (IT) industry, for example, there is also an endless variety of services. In the more and more popular cloud computing environments, the fundamental service models are Infrastructure as a Service (IaaS), such as Amazon EC2 and Google Cloud Storage; Platform as a Service (PaaS), such as WHM, Microsoft Azure, and the Google App Engine; and Software as a Service (SaaS), such as Hosted Exchange, GoogleApps, and NetSuite. Further services in the IT industry contain, but are not limited to, Database as a Service (DBaaS), Graph as a Service (GaaS), Storage as a Service (STaaS), Test Environment as a Service (TEaaS), API as a Service (APIaaS), Network as a Service (NaaS), and Unified Communications as a Service (UCaaS).


pages: 240 words: 78,436

Open for Business Harnessing the Power of Platform Ecosystems by Lauren Turner Claire, Laure Claire Reillier, Benoit Reillier

Airbnb, Amazon Mechanical Turk, Amazon Web Services, augmented reality, autonomous vehicles, barriers to entry, basic income, blockchain, carbon footprint, Chuck Templeton: OpenTable:, cloud computing, collaborative consumption, commoditize, crowdsourcing, Diane Coyle, disintermediation, distributed ledger, future of work, George Akerlof, independent contractor, intangible asset, Internet of things, Jean Tirole, Jeff Bezos, Kickstarter, knowledge worker, Lean Startup, Lyft, Mark Zuckerberg, market design, Metcalfe’s law, minimum viable product, multi-sided market, Network effects, Paul Graham, peer-to-peer lending, performance metric, Peter Thiel, platform as a service, price discrimination, profit motive, ride hailing / ride sharing, Sam Altman, self-driving car, shareholder value, sharing economy, Silicon Valley, Skype, smart contracts, Snapchat, software as a service, Steve Jobs, Steve Wozniak, TaskRabbit, The Market for Lemons, Tim Cook: Apple, transaction costs, two-sided market, Uber and Lyft, uber lyft, universal basic income, Y Combinator

Mirakl, Izberg, Near-me, Sharetribe and Marketplace Lab offer off-the-shelf marketplace solutions for retailers, while Upwork offers white-label freelancer marketplace solutions to large corporates. As the platform market matures, we anticipate enterprise software vendors to develop platform solutions tailored to specific verticals (telecoms, health, professional services, etc.) and offer platform as a service – or PaaS – solutions. Design a platform as an add-on to an existing business Many established businesses now understand the impact of platforms and are keen to add or replicate platform capabilities to their own activities. In such cases, the platform design stage needs to take into account a range of additional considerations that are related to the overall strategy of the company.


pages: 282 words: 81,873

Live Work Work Work Die: A Journey Into the Savage Heart of Silicon Valley by Corey Pein

23andMe, 4chan, affirmative action, Affordable Care Act / Obamacare, Airbnb, Amazon Mechanical Turk, Anne Wojcicki, artificial general intelligence, bank run, barriers to entry, Benevolent Dictator For Life (BDFL), Bernie Sanders, bitcoin, Bitcoin Ponzi scheme, Build a better mousetrap, California gold rush, cashless society, colonial rule, computer age, cryptocurrency, data is the new oil, disruptive innovation, Donald Trump, Douglas Hofstadter, Elon Musk, Extropian, gig economy, Google bus, Google Glasses, Google X / Alphabet X, hacker house, hive mind, illegal immigration, immigration reform, independent contractor, Internet of things, invisible hand, Isaac Newton, Jeff Bezos, job automation, Kevin Kelly, Khan Academy, Law of Accelerating Returns, Lean Startup, life extension, Lyft, Mahatma Gandhi, Marc Andreessen, Mark Zuckerberg, Menlo Park, minimum viable product, move fast and break things, move fast and break things, mutually assured destruction, obamacare, passive income, patent troll, Paul Graham, peer-to-peer lending, Peter H. Diamandis: Planetary Resources, Peter Thiel, platform as a service, Plutocrats, plutocrats, Ponzi scheme, post-work, Ray Kurzweil, regulatory arbitrage, rent control, RFID, Robert Mercer, rolodex, Ronald Reagan, Ross Ulbricht, Ruby on Rails, Sam Altman, Sand Hill Road, Scientific racism, self-driving car, sharing economy, side project, Silicon Valley, Silicon Valley startup, Singularitarianism, Skype, Snapchat, social software, software as a service, source of truth, South of Market, San Francisco, Startup school, stealth mode startup, Steve Bannon, Steve Jobs, Steve Wozniak, TaskRabbit, technological singularity, technoutopianism, telepresence, too big to fail, Travis Kalanick, tulip mania, Uber for X, uber lyft, ubercab, upwardly mobile, Vernor Vinge, X Prize, Y Combinator

I sampled passions like I was shopping for a new pair of blue jeans: I am passionate about the internet of things. I am passionate about big data. I am passionate about machine learning. I am passionate about key-value stores. I am passionate about a native ticketing experience. I am passionate about an integration platform-as-a-service. I had an important realization at DevWeek: I wasn’t the only one bluffing my way through the tech scene. Everyone was doing it, even the much-sought-after engineering talent. I was struck by how many developers were, like myself, not really programmers, but rather this, that, and the other.


pages: 325 words: 85,599

Professional Node.js: Building Javascript Based Scalable Software by Pedro Teixeira

en.wikipedia.org, Firefox, Google Chrome, node package manager, platform as a service, web application, WebSocket

After graduating with a degree in Software Engineering more than 14 years ago, he has been a consultant, a programmer, and an active and internationally known Node.js community member. He is a founding partner of The Node Firm and a Senior Programmer at Nodejitsu Inc., the leading Node.js platform-as-a-service provider. He is also the author of the popular Node Tuts screencasts. When Pedro was 10 years old, his father taught him how to program a ZX Spectrum, and since then he has never wanted to stop. He taught himself how to program his father’s Apple IIc and then entered the PC era. In college he was introduced to the universe of UNIX and open-source, becoming seriously addicted to it.


Seeking SRE: Conversations About Running Production Systems at Scale by David N. Blank-Edelman

Affordable Care Act / Obamacare, algorithmic trading, Amazon Web Services, backpropagation, bounce rate, business continuity plan, business process, cloud computing, cognitive bias, cognitive dissonance, commoditize, continuous integration, crowdsourcing, dark matter, database schema, Debian, defense in depth, DevOps, domain-specific language, en.wikipedia.org, fault tolerance, fear of failure, friendly fire, game design, Grace Hopper, information retrieval, Infrastructure as a Service, Internet of things, invisible hand, iterative process, Kubernetes, loose coupling, Lyft, Marc Andreessen, microaggression, microservices, minimum viable product, MVC pattern, performance metric, platform as a service, pull request, RAND corporation, remote working, Richard Feynman, risk tolerance, Ruby on Rails, search engine result page, self-driving car, sentiment analysis, Silicon Valley, single page application, Snapchat, software as a service, software is eating the world, source of truth, the scientific method, Toyota Production System, web application, WebSocket, zero day

For example, adding more servers to the Rails monolith, at the time still the biggest single service by far, required multiple hand-offs between SysOps and the backend development team to provision the servers, add an initial set of configuration management to prepare for the deployment, deploy the code, and then change configuration management to actually create the processes. To deal with this situation, a handful of engineers had already begun to create a container-based deployment platform that would empower all developers to build, deploy, and operate their services. It was, by design, superficially similar to the popular Heroku Platform as a Service. It supported 12-factor applications, which was luckily not a big step for many existing services. To build a new version and make it ready to deploy, developers would push to a Git repository. This made the deployment system immediately accessible to application developers without the steep learning curve of configuration management.

Through testing and analysis, both manually and through tools, SRE is able to help the teams understand their reliability risks and help prioritize them. The SRE teams are also able to commit time to building cross-cutting tooling and services that support all the engineering teams in ensuring the reliability of their products. Just as DevOps and PaaS [Platform as a Service] can coexist so I believe DevOps and Reliability as a Service (SRE) can coexist. — Bennie Johnston, head of SRE, Just Eat ◆ ◆ ◆ The largest difference is that DevOps is an approach and SRE is a specific job role. Despite that it typically manifests as a guardian of the “Deployment System,” DevOps is rooted in the multidisciplinary examination of delivery flow and overall effectiveness of managing services.


pages: 329 words: 95,309

Digital Bank: Strategies for Launching or Becoming a Digital Bank by Chris Skinner

algorithmic trading, AltaVista, Amazon Web Services, Any sufficiently advanced technology is indistinguishable from magic, augmented reality, bank run, Basel III, bitcoin, Bitcoin Ponzi scheme, business cycle, business intelligence, business process, business process outsourcing, buy and hold, call centre, cashless society, clean water, cloud computing, corporate social responsibility, credit crunch, crowdsourcing, cryptocurrency, demand response, disintermediation, don't be evil, en.wikipedia.org, fault tolerance, fiat currency, financial innovation, Google Glasses, high net worth, informal economy, Infrastructure as a Service, Internet of things, Jeff Bezos, Kevin Kelly, Kickstarter, M-Pesa, margin call, mass affluent, MITM: man-in-the-middle, mobile money, Mohammed Bouazizi, new economy, Northern Rock, Occupy movement, Pingit, platform as a service, Ponzi scheme, prediction markets, pre–internet, QR code, quantitative easing, ransomware, reserve currency, RFID, Satoshi Nakamoto, Silicon Valley, smart cities, social intelligence, software as a service, Steve Jobs, strong AI, Stuxnet, trade route, unbanked and underbanked, underbanked, upwardly mobile, We are the 99%, web application, WikiLeaks, Y2K

Cloud Computing is a wide and diverse operation that has gained a panacea status of being all things to all people. It’s Salesforce.com, Azure, Exalogic, Amazon and more. Put in “Cloud Computing” to Google, who also provide clouds, and you get sponsored adverts from HP, Intel, Siemens and more all talking about clouds. It’s Software as a Service, Platform as a Service, and Infrastructure as a Service. It’s public clouds, private clouds, hybrid clouds. It’s every and any darned thing you want and, as a result, it’s lost its meaning. As a result, bank CIO’s have heard about Cloud Computing, but have no idea how to articulate what it is to their Board and CEO, how to justify it, how to present it as meaningful and how to get a decision.


The Data Revolution: Big Data, Open Data, Data Infrastructures and Their Consequences by Rob Kitchin

Bayesian statistics, business intelligence, business process, cellular automata, Celtic Tiger, cloud computing, collateralized debt obligation, conceptual framework, congestion charging, corporate governance, correlation does not imply causation, crowdsourcing, discrete time, disruptive innovation, George Gilder, Google Earth, Infrastructure as a Service, Internet Archive, Internet of things, invisible hand, knowledge economy, late capitalism, lifelogging, linked data, longitudinal study, Masdar, means of production, Nate Silver, natural language processing, openstreetmap, pattern recognition, platform as a service, recommendation engine, RFID, semantic web, sentiment analysis, slashdot, smart cities, Smart Cities: Big Data, Civic Hackers, and the Quest for a New Utopia, smart grid, smart meter, software as a service, statistical model, supply-chain management, the scientific method, The Signal and the Noise by Nate Silver, transaction costs

Cloud computing takes two forms that often work cooperatively: utility clouds and data clouds (Farber et al. 2011). Utility clouds provide IT capabilities as locationindependent, on-demand services accessible via the Internet, including ‘infrastructure as a service’ (IaaS) such as storage, servers and networks, ‘platform as a service’ (PaaS) comprising an execution environment for the development of custom applications and databases, and ‘software as a service’ (SaaS) that enables users to access their applications and to process data remotely (Farber et al. 2011; Hancke et al. 2012). Data clouds enable massive volumes of data, that might be generated across an enterprise, to be linked, stored and processed remotely, drawing on the computational power of hundreds of machines, and analysed via utility services (Farber et al. 2011).


pages: 324 words: 89,875

Modern Monopolies: What It Takes to Dominate the 21st Century Economy by Alex Moazed, Nicholas L. Johnson

3D printing, Affordable Care Act / Obamacare, Airbnb, altcoin, Amazon Web Services, barriers to entry, basic income, bitcoin, blockchain, Chuck Templeton: OpenTable:, cloud computing, commoditize, connected car, disintermediation, future of work, gig economy, hockey-stick growth, if you build it, they will come, information asymmetry, Infrastructure as a Service, intangible asset, Internet of things, invisible hand, jimmy wales, John Gruber, Kickstarter, Lean Startup, Lyft, Marc Andreessen, Mark Zuckerberg, Marshall McLuhan, means of production, Metcalfe’s law, money market fund, multi-sided market, Network effects, patent troll, peer-to-peer lending, Peter Thiel, pets.com, platform as a service, QWERTY keyboard, Ray Kurzweil, ride hailing / ride sharing, road to serfdom, Robert Metcalfe, Ronald Coase, self-driving car, sharing economy, Silicon Valley, Skype, Snapchat, social graph, software as a service, software is eating the world, source of truth, Startup school, Steve Jobs, TaskRabbit, the medium is the message, transaction costs, transportation-network company, traveling salesman, Travis Kalanick, two-sided market, Uber and Lyft, Uber for X, uber lyft, white flight, winner-take-all economy, Y Combinator

., Symbian) Product platforms: Common design, formula, or versatile product, upon which a family or line of products is built (e.g., a car chassis used across many different models) Industry platform: Products, services or technologies that serve as foundations upon which complementary products, services, or technologies can be built (e.g., Intel) Platform as a service: Category of cloud computing services that provides computing platform and solution stack as an online service (e.g., Amazon Web Services) Each of these instances of the word “platform” refers to an underlying product or technology that allows modular components to be built on top of it.


pages: 470 words: 109,589

Apache Solr 3 Enterprise Search Server by Unknown

bioinformatics, continuous integration, database schema, en.wikipedia.org, fault tolerance, Firefox, full text search, functional programming, information retrieval, natural language processing, performance metric, platform as a service, Ruby on Rails, web application

Multi-site search is a strength of Drupal and provides the support of running multiple sites on a single codebase, such as drupal.org, groups.drupal.org, and api.drupal.org. Currently, part of the Apache Solr module is the ability to track where a document came from when indexed, and as a result, add the various sites as new filters in the search interface. Acquia's hosted search product is a great example of Platform as a Service (PaaS), and hosted Solr search is a very common integration approach for many organizations that don't wish to manage their own Java infrastructure or need to customize the behavior of Solr drastically. For a list of all the companies offering hosted Solr search please visit http://wiki.apache.org/solr/SolrHostingProviders.


pages: 409 words: 112,055

The Fifth Domain: Defending Our Country, Our Companies, and Ourselves in the Age of Cyber Threats by Richard A. Clarke, Robert K. Knake

A Declaration of the Independence of Cyberspace, Affordable Care Act / Obamacare, Airbnb, Albert Einstein, Amazon Web Services, autonomous vehicles, barriers to entry, bitcoin, Black Swan, blockchain, borderless world, business cycle, business intelligence, call centre, Cass Sunstein, cloud computing, cognitive bias, commoditize, computer vision, corporate governance, cryptocurrency, data acquisition, DevOps, disinformation, don't be evil, Donald Trump, Edward Snowden, Exxon Valdez, global village, immigration reform, Infrastructure as a Service, Internet of things, Jeff Bezos, Julian Assange, Kubernetes, Mark Zuckerberg, Metcalfe’s law, MITM: man-in-the-middle, move fast and break things, move fast and break things, Network effects, open borders, platform as a service, Ponzi scheme, ransomware, Richard Thaler, Sand Hill Road, Schrödinger's Cat, self-driving car, shareholder value, Silicon Valley, Silicon Valley startup, Skype, smart cities, Snapchat, software as a service, Steven Levy, Stuxnet, technoutopianism, The future is already here, Tim Cook: Apple, undersea cable, WikiLeaks, Y2K, zero day

Instead of a company building its own data center or stuffing servers into its closet, Amazon builds and maintains the computing environment and leases it to the company on a metered rate. It has proven the perfect solution for start-ups that need infrastructure on which they can build their own applications. This type of cloud computing is known as infrastructure as a service (IAAS). Amazon and other leaders have also started to sell platform-as-a-service offerings that provide the coding environments on which to build applications. Far and away the best way to rapidly increase security is to move from local computing to software as a service (SaaS). Salesforce, one of the early successful SaaS providers, never sold its customer relationship management platform as a software package you could install on your own computer.


pages: 382 words: 120,064

Bank 3.0: Why Banking Is No Longer Somewhere You Go but Something You Do by Brett King

3D printing, additive manufacturing, Airbus A320, Albert Einstein, Amazon Web Services, Any sufficiently advanced technology is indistinguishable from magic, asset-backed security, augmented reality, barriers to entry, bitcoin, bounce rate, business intelligence, business process, business process outsourcing, call centre, capital controls, citizen journalism, Clayton Christensen, cloud computing, credit crunch, crowdsourcing, disintermediation, en.wikipedia.org, fixed income, George Gilder, Google Glasses, high net worth, I think there is a world market for maybe five computers, Infrastructure as a Service, invention of the printing press, Jeff Bezos, jimmy wales, Kickstarter, London Interbank Offered Rate, M-Pesa, Mark Zuckerberg, mass affluent, Metcalfe’s law, microcredit, mobile money, more computing power than Apollo, Northern Rock, Occupy movement, optical character recognition, peer-to-peer, performance metric, Pingit, platform as a service, QR code, QWERTY keyboard, Ray Kurzweil, recommendation engine, RFID, risk tolerance, Robert Metcalfe, self-driving car, Skype, speech recognition, stem cell, telepresence, Tim Cook: Apple, transaction costs, underbanked, US Airways Flight 1549, web application

Interesting to note is that BofA is heavily investing in graphics processing capability, solid-state storage and in-memory databases, with large, fast processing and decision-making capability as the objective. NAB (previously National Australia Bank) of Australia has also committed extensively to private cloud infrastructure as it has moved to a platform-as-a-service concept as part of its programmes built around what it calls NextGen. NAB’s Next Generation Platform programme started as a core systems replacement, but has quickly morphed to encompass cloud capability. UBank, NAB’s online direct banking brand that launched in 2010, was the first to be deployed on this platform in the market.


Mastering Blockchain, Second Edition by Imran Bashir

3D printing, altcoin, augmented reality, autonomous vehicles, bitcoin, blockchain, business process, carbon footprint, centralized clearinghouse, cloud computing, connected car, cryptocurrency, data acquisition, Debian, disintermediation, disruptive innovation, distributed ledger, Dogecoin, domain-specific language, en.wikipedia.org, Ethereum, ethereum blockchain, fault tolerance, fiat currency, Firefox, full stack developer, general-purpose programming language, gravity well, interest rate swap, Internet of things, litecoin, loose coupling, MITM: man-in-the-middle, MVC pattern, Network effects, new economy, node package manager, Oculus Rift, peer-to-peer, platform as a service, prediction markets, QR code, RAND corporation, Real Time Gross Settlement, reversible computing, RFC: Request For Comment, RFID, ride hailing / ride sharing, Satoshi Nakamoto, single page application, smart cities, smart contracts, smart grid, smart meter, supply-chain management, transaction costs, Turing complete, Turing machine, web application, x509 certificate

First IoT was discussed, which is another revolutionary technology on its own; and by combining it with the blockchain, several fundamental limitations can be addressed, which brings about tremendous benefits to the IoT industry. More focus has been given to IoT as it is the most prominent and most ready candidate for adapting blockchain technology. Already, practical use cases and platforms have emerged in the form of Platform as a Service (PaaS) for blockchain-based IoT such as the IBM Watson IoT blockchain. IBM Blue Horizon is also now available for experimentation, which is a decentralized blockchain-based IoT network. Second, applications in the government sector were discussed whereby various government processes such as homeland security, identification cards, and benefit disbursements can be made transparent, secure, and more robust.


pages: 999 words: 194,942

Clojure Programming by Chas Emerick, Brian Carper, Christophe Grand

Amazon Web Services, Benoit Mandelbrot, cloud computing, continuous integration, database schema, domain-specific language, don't repeat yourself, en.wikipedia.org, failed state, finite state, Firefox, functional programming, game design, general-purpose programming language, Guido van Rossum, Larry Wall, mandelbrot fractal, Paul Graham, platform as a service, premature optimization, random walk, Ruby on Rails, Schrödinger's Cat, semantic web, software as a service, sorting algorithm, Turing complete, type inference, web application

We’ll take a look at one, Amazon’s Elastic Beanstalk service, that is broadly applicable to Clojure web applications, automating the provisioning and configuration of servers and deployment of applications to those servers. Deploying Clojure Apps to Amazon’s Elastic Beanstalk Amazon’s Elastic Beanstalk (EB) is a platform as a service that provides a thin layer of automation and deployment management tools on top of Amazon Web Services’s (AWS) lower-level EC2 compute and load balancer services. EB allows you to programmatically provision and control environments (collections of one or more application servers fronted by a load balancer), to which you can deploy different versions of your application.


The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling by Ralph Kimball, Margy Ross

active measures, Albert Einstein, business intelligence, business process, call centre, cloud computing, data acquisition, discrete time, inventory management, iterative process, job automation, knowledge worker, performance metric, platform as a service, side project, zero-sum game

For the foreseeable future, maintain a balance among several implementation approaches including Hadoop, traditional grid computing, pushdown optimization in an RDBMS, on-premise computing, cloud computing, and even the mainframe. None of these approaches will be the single winner in the long run. Platform as a service (PaaS) providers offer an attractive option that can help assemble a compatible set of tools. Think of Hadoop as a flexible, general purpose environment for many forms of ETL processing, where the goal is to add sufficient structure and context to big data so that it can be loaded into an RDBMS.