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, the built environment, web application, WebSocket

Having an increased number of hosts has potential downsides, though. 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.

N nested bounded contexts, Turtles All the Way Down network segregation, Network Segregation nonfunctional requirements, Cross-Functional Testing normalization of deviance, Flaky and Brittle Tests O on-demand provisioning systems, Scaling on-demand virtualization, Microservices onion architecture, The Technical Boundary Open Web Application Security Project (OWASP), Baking Security In OpenID Connect, Common Single Sign-On Implementations, Use SAML or OpenID Connect operating system artifacts, Operating System Artifacts operating systems security, Operating System orchestration architecture, Orchestration Versus Choreography organizational alignment, Organizational Alignment organizational structureConway's law and, Conway’s Law and System Design effect on systems design, Evidence loose vs. tightly coupled, Loose and Tightly Coupled Organizations orphaned services, The Orphaned Service? 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?

, Synthetic Monitoring semantic versioning, Use Semantic Versioning server-side caching, Client-Side, Proxy, and Server-Side Caching service accounts, Use SAML or OpenID Connect service boundaries, Zoning(see also modeling services) service calls, data retrieval via, Data Retrieval via Service Calls service configuration, Service Configuration service discovery, Service Discovery service ownershipcomprehensive approach, Service Ownership shared, Drivers for Shared Services service provider, Common Single Sign-On Implementations service separation, staging, Staging the Break(see also database decomposition) service templates, Tailored Service Template service testsCohn's Test Pyramid, Test Scope implementation of, Implementing Service Tests mocking vs. stubbing, Mocking or Stubbing Mountebank server for, A Smarter Stub Service scope of, Service Tests service-oriented architectures (SOA)concept of, What About Service-Oriented Architecture? drawbacks of, What About Service-Oriented Architecture? 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, 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. For the industry to operate to everyone’s benefit, however, we need to ensure that platforms can no longer arbitrage around existing rules and have to bear the full cost of their business model: employment law is the key to equal and equitable conditions for all.

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. Exploring the Gig Economy The thorniest of these tasks comes first—and will take up most of the first four chapters.

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. This is the ‘Innovation Paradox’. Many platforms’ business models are built around large workforces competing over relatively low- skilled tasks, controlled by powerful intermediaries.


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, Silicon Valley, software as a service, Steve Ballmer, Steve Jobs

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.

Before long, there were more users, more activity, and more transactions moving through the Web services API than there were through the application. 119 BEHIND THE CLOUD Play #59: Transcend Technical Paradigms One of the most pivotal decisions we made as a company was to make our code available to let other companies build their own complementary online services. 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. It wasn’t surprising that there wasn’t much internal support for such an untested idea. However, creating a platform offered a way to resolve our biggest problem: customers were clamoring for more applications, and we didn’t have the resources to build everything ourselves.

., 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.


Demystifying Smart Cities by Anders Lisdorf

3D printing, artificial general intelligence, autonomous vehicles, 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

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 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.

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, 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, 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?

Strategies for choosing between these different services are summarized at the end of the chapter. 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. IaaS is for operators looking to build their own platforms on which applications will be built, thus providing the most customizability.

Many provide both local load balancing and global load balancing, as will be described in Chapter 4. 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. Generally you are not even aware of the specific resources dedicated to your application.


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

Craig has put up a comprehensive description on his blog, and the design has since been adopted by many users. 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. It just replaces rack-mounted servers with virtual machines, along with virtualized network connections.

[ 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

Messages logged on lesser levels can be logged to a file, syslog, or any other supported method by adding the proper logging handlers. 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. The application is then uploaded to the servers maintained by the provider and usually is deployed within seconds.

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).


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, 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. It is used to describe the use of two or more computers processing individual parts of an overall task. • There are three types of cloud vendors: service providers, backbones, and virtualization software providers. 437 This page intentionally left blank Chapter 29 Soaring in the Clouds This is called, using the conquered foe to augment one’s own strength.

.”, 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, 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

Salesforce, Gmail, Basecamp, and Asana are all examples of popular SaaS products. 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. Finding the best mix of these tiers and prices is a constant challenge, and SaaS companies invest considerable effort in finding ways to upsell a user to higher, more lucrative tiers.

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?


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, trade route, undersea cable, web application, WebRTC, Y2K

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. Similarly, the cloud operators use web services to expose their features and products as services. • 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.


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, 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, TaskRabbit, the built environment, total factor productivity, two-sided market, Uber and Lyft, Uber for X, uber lyft, unconventional monetary instruments, unorthodox policies, Zipcar

Varian, 2009. 24. Terranova, 2000. 25. Wittel, 2016: 86. 26. Zuboff, 2015: 78. 27. Ibid. 28. 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. CB Insights, 2016c. 47. Waters, 2016. 48. Murray, 2016. 49. Miller, 2015b. 50. Waters, 2016. 51.


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

The server must be managed and maintained by the application owner, including software and security upgrades. 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. Providers of compute slices have a strategy of over-provisioning of slices.


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

Under Whitehurst’s leadership, Red Hat has been recognized on Forbes’s “Fastest-Growing Technology Companies” list in 2011, ranked seventh on Investor’s Business Daily’s “Top 10 New American Companies” list in 2011, and ranked on Forbes’s list of “The World’s Most Innovative Companies” in 2012 and 2014. 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. The company also revealed its open hybrid cloud technology vision for the future of IT, including plans for building and managing Infrastructure-as-a-Service (IaaS) and PaaS public and private clouds.


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, 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.

She has previously written documentation for Google’s Data Center and Hardware Operations Teams in Mountain View and across its globally distributed datacenters. 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

But as soon as you learn to write any SQL beyond a single-table select and simple joins, you’ll begin to sense the shortcomings of MySQL. 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. Perhaps more importantly, we highlight feats you can achieve with PostgreSQL that are difficult or impossible to do in other databases.


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

Online shopping, flight booking, hotel booking, navigation, public transport services, government services, community services, and media services are parts of our daily lives. 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: 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

ABOUT THE AUTHOR PEDRO TEIXEIRA is a prolific open-source programmer and author of many Node.js modules. 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. In his professional life he has developed systems and products built with Visual Basic, C, C++, Java, PHP, Ruby, and JavaScript for big telecommunications companies, banks, hotel chains, and others.


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, 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, 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 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 flitted from table to table and panel to panel, collecting colorful brochures and absorbing up-to-the-minute jargon. 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. A great number of tech ninjas were not exactly black belts when it came to the actual onerous work of computer programming.


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

Affordable Care Act / Obamacare, algorithmic trading, Amazon Web Services, 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, 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. Its constraints shaped the design of applications and made it easy to do the right thing without stifling innovation.

SRE helps bring in a level of monitoring of how reliability focused our teams were beyond their recent incident history. 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.


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

Since then, the relative share of digital data has continued to grow, especially with the development of distributed storage and services through cloud computing and data centres. 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: 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, 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

A slightly confusing and technical discussion, so let’s start with the idea of cloud computing in banking. 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 Board and CEO have heard of cloud, but hear it’s dangerous.


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, 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. Ruby on Rails integrations There has been a lot of churn in the Ruby on Rails world for adding Solr support, with a number of competing libraries attempting to support Solr in the most Rails-native way.


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, 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, 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. In fact, early on, Marc Benioff and his team made up company T-shirts that had a big no-smoking-style circle and slash symbol (think Ghostbusters) over the word “software.”


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

BofA has set the target to create scaling and capability similar to that of Amazon Web Services environment too, according to Brad Spiers, Head of Compute Innovation at BofA. 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. As mentioned earlier, UBank has been an outstanding success.


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, 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, 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

However, if you’re game, there are some specific Clojure-friendly toolchains that can make application deployment a lot simpler, easier, and more automated than most other options. 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 load balancers used by EB are integrated with this provisioning mechanism, so that when your application experiences higher load (based on metrics you define, such as number of requests or aggregate bandwidth utilized per minute), the corresponding EB environment is expanded to contain more app servers to service that load.


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

Rather, plan for disruptive changes coming from every direction: new data types, competitive challenges, programming approaches, hardware, networking technology, and services offered by literally hundreds of new big data providers. 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. The same data in Hadoop can be accessed and transformed with Hive, Pig, HBase, and MapReduce code written in a variety of languages, even simultaneously.