The Infrastructure Tier
As mentioned previously, the
infrastructure tier is where the servers that actually run the database and
logic tiers are created and maintained. At the infrastructure tier, developers
will need to think about the operating systems that best fit the choices they
make for the other levels (for example, using Linux as the operating system for
an application that uses MySQL and PHP).
Developers have a number of tools
to aid in the creation, monitoring and management of the infrastructure layers,
including:
• enStratus – A Cloud management
and governance provider
• Cloud monitoring tools – Help to
ensure servers are performing as expected; examples include CloudKick, Uptime,
Nagios and Ganglia
• Puppet – A configuration
management tool designed to automate the setup and management of
infrastructure; a key DevOps tool produced by Puppet Labs
• Chef – A configuration management
tool designed to automate the setup and management of infrastructure; a key
DevOps tool produced by Opscode, who hosts a cloud-based version of Chef called
the Opscode Platform
These three tiers – logic, data and
infrastructure – together provide the backend application; however, it is the
integration with the results of the front-end developer’s work where end users
get to enjoy the benefits of the back-end developer’s hard work.
If back-end development is primarily focused on ensuring a robust, effective and efficient application, it is at the front-end where developers attempt to build a product that interfaces to a wide variety of user types, contexts and devices.
Front-end developers take processed
data from the application and present it in a way that is in context to
individual user situations. This job is all the more complex in today’s
paradigm where end users may well be accessing data on a vast variety of device
types, screen sizes and input methods. Adding to that complexity is the fact
that for some situations developers will be able to use generic approaches
across devices (with HTML5 for example), while in others they will need to
create custom presentation offerings for different devices (iOS,
Android etc.).
Android etc.).
To add to the complexity, applications
will utilize client-side processing, and hence front-end developers will need
to understand the ramifications of a client side approach and the languages
that enable this. Client-side processing can be enabled using a number of
approaches, including 8:
• Native client platform such as
Android/Java and iOS/ObjectiveC
• Ajax – Asynchronous JavaScript,
which provides new methods of using JavaScript and other languages to improve
the user experience
• Flash – Adobe’s multimedia
platform used to add video, animation and interactivity to web pages; becoming
less relevant as time goes on
• JavaScript – A language for
creating and delivering rich Web applications that can also run across a wide
variety of devices
• JQuery – Cross-browser JavaScript
library designed to simplify and speed up the client-side scripting of HTML
• Microsoft Silverlight –
Microsoft’s browser plugin that enables animation, vector graphics and
high-definition video playback
• HTML5 and CSS3 – The latest HTML
proposed standard combined with the latest proposed standard for CSS; natively
supports much of the client-side functionality provided by other frameworks
such as Flash and Silverlight
Mobile Presentation
Currently developers are split
between those creating so-called “native” applications (applications written
entirely to run on one particular mobile operating system) and those who prefer
to use generic approaches towards presentation (HTML5 for example).
It should be noted that there is a
double pronged move away from creating native applications, first by the use of
frameworks enabling the use of HTML5 and CSS to deploy applications to multiple
devices (Sencha Touch is an example of one of these frameworks) and secondly
from tools that allow a single code base to be deployed to multiple platforms via native applications (PhoneGap being one such example).
Developers we have spoken to tend
to prefer either fully native application development or fully generic
development via HTML5. Running a single code base across multiple native applications
tends to have implications in terms of speed and efficiency.
Don’t Forget the Web
As this paper is likely going to be
used by individuals planning their career entry, it is important to introduce a
degree of balance to the “mobile first” discussion. We firmly believe that the
ever-increasing ubiquity of mobile devices, the availability of fast mobile
internet and the move away from fixed computers will increase the proportion of
traffic that goes through mobile devices.
That said, it is important to not discount the web’s ongoing utility. While mobile access to applications is useful and will continue to grow as services like geolocation become more popular, there will continue to be a need to use desktop devices for a subset of functionality – advanced photo editing, intensive research, cataloguing etc.
Entrepreneur and Venture Capitalist
Mark Suster wrote an excellent post9 in which he exhorted developers and
startups to follow a strategy of “Web Second, Mobile First.” In other words,
while mobile is undoubtedly paramount and gains lots of attention, the vast
majority of applications should continue to think about standard web interfaces
to their products.
REFERENCE
Ben Kepes - Rackspace More information on Ben and Diversity Limited can be found at http://diversity.net.nz
REFERENCE
Ben Kepes - Rackspace More information on Ben and Diversity Limited can be found at http://diversity.net.nz

No comments:
Post a Comment