AWS for Developers For Dummies. Mueller John Paul

Чтение книги онлайн.

Читать онлайн книгу AWS for Developers For Dummies - Mueller John Paul страница 4

AWS for Developers For Dummies - Mueller John Paul

Скачать книгу

basic local setups, you may not interact with them as much as you do while creating your application code. Usually there is a flurry of activity during testing and again during deployment, but developers are often left alone to do their work otherwise because administrators in other areas give them the control needed to perform tasks.

      Things work differently in the cloud. For example, you might find yourself performing some tasks normally associated with other disciplines, such as service configuration. This book helps you through the configuration tasks that developers normally do as part of working with AWS. In addition, you find tips about when you need to work with others to finish tasks. The level of interactivity between disciplines is much higher in the cloud because you have less control over the environment (you’re using someone else’s hardware and underlying software, after all). In addition, the cloud environment can become more complex than the test server setup that you may normally rely on for localized development.

Understanding process- and function-driven work flows

      In creating apps to help manage underlying services, AWS also defines workflows. A workflow is an organized method of accomplishing tasks. For example, when you want to save a file to AWS using S3, you must first create a bucket to hold the file. Only after you create a bucket can you save a file to AWS. In addition, you can’t retrieve a file from the bucket until you first save a file there, which makes sense because you can’t grab a file out of thin air. In short, a workflow defines a procedure for working with software, and the concept has been around for a long time. (The first workflows appeared in the mid-1970s with simple office automation prototypes at Xerox Parc and the University of Pennsylvania’s Wharton School of Business.)

      Workflows can consist of additional workflows. In addition, workflows manage the interaction between users and underlying services. A process is the aggregation of services managed by workflows into a cohesive whole. The workflows may perform generic tasks, but processes tend to be specific and help users accomplish particular goals. A process-driven workflow is proactive and attempts to circumvent potential problems by

      ❯❯ Spotting failure patterns and acting on them

      ❯❯ Looking for trends that tend to lead to failures

      ❯❯ Locating and extinguishing potential threats

      

In looking through the tutorials at http://aws.amazon.com/getting-started/tutorials/, you find that they all involve using some type of user interface. The user interface provides the workflow used to manage the underlying services. Each major tutorial step is a workflow that performs a specific task, such as creating a bucket. When you combine these individual workflows into an aggregate, the process can help a user perform tasks such as moving files between the cloud and the user’s system. Creating a cloud file system is an example of a process-driven workflow: The workflow exists to make the process viable. Workflows can become quite complex in large-scale operations, but viewing them helps you understand AWS better. You can find a more detailed discussion of workflows and processes at https://msdn.microsoft.com/library/bb833024.aspx.

      A function is the reactive use of services managed by workflows to address specific problems in real time. Even though it would be nice if process-driven workflows worked all the time, the reality is that even with 99.999 percent reliability, the process will fail at some point, and a function-driven workflow must be in place to address that failure. Although process-driven workflows focus on flexible completion of tasks, function-driven workflows focus on procedurally attenuating the effect of a failure. In short, function-driven workflows address needs. The AWS services and workflows also deal with this issue through the user interface, such as by manually restoring a backup to mitigate a system failure.

      

As a developer, you find yourself involved in a number of tasks that may appear at first to fall outside the realm of development. Development in the cloud isn’t quite the same as development at the desktop or development of applications using a browser strategy. When working through development tasks with AWS, you find yourself performing these kinds of tasks in order to implement workflows:

      ❯❯ Configuring the native functionality of AWS using wizards, AWS-driven scripts, or direct API calls through code

      ❯❯ Modifying AWS-driven scripts as needed to accomplish specific goals in the least amount of time possible

      ❯❯ Defining new configuration scenarios to meet workflow requirements by modifying underlying AWS configuration files, scripts, and code

      ❯❯ Using AWS-supplied tools, such as lambda functions (see https://aws.amazon.com/lambda/), to perform tasks without resorting to hard coding

      ❯❯ Developing applications that rely on API calls to perform tasks

      Discovering IaaS

      Even though this book frequently refers to virtual environments and services that you can’t physically see, these elements all exist as part of a real computer environment that Amazon hosts on your behalf. You need to understand how these elements work to some extent because they have a physical presence and impact on your personal or business needs. Three technologies enable anyone to create a virtual computer center using AWS:

      ❯❯ Infrastructure as a Service (IaaS): A form of cloud computing that provides virtualized computing resources. You essentially use IaaS to replace physical resources, such as servers, with virtual resources hosted and managed by Amazon.

      ❯❯ Software as a Service (SaaS): A software distribution service that lets you use applications without actually having the applications installed locally. Another term used to describe this service is software on demand. The host, Amazon, maintains the software, provides the required licenses, and does all the other work needed to make the software available.

      ❯❯ Platform as a Service (PaaS): A platform provides a complete solution for running software in an integrated manner on a particular piece of hardware. For example, Windows is a particular kind of platform. The virtual platform provided by PaaS allows a customer to develop, run, and manage applications of all sorts.

      The following sections provide an extended discussion of these three technologies and help you understand how they interact with each other. The point of these sections is that each element performs a different task, yet you need all three to create a complete solution.

Defining IaaS

      The simplest way to view IaaS is as a means of providing access to virtualized computer resources over an Internet connection. IaaS acts as one of three methods of sharing resources over the Internet, alongside SaaS and PaaS. AWS supports IaaS by providing access to virtualized hardware, software, servers, storage, and other infrastructure components. In short, you can use IaaS to replace every physical element in your computing setup except those required to establish and maintain Internet connectivity and those required to provide nonvirtualized services (such as printing). The advantages of IaaS are many, but here are the ones that most people consider essential:

      ❯❯ The host handles tasks such as system maintenance, backup, and resiliency planning.

      ❯❯ A client can gain immediate access to additional resources when needed and then doesn’t need to worry about getting rid of them when the need has ended.

      ❯❯ Detailed administrative tasks are handled by the host, but the client can manage overall administrative

Скачать книгу