Agile Cloud Development

Transcription

Agile Cloud Development
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
Agile Cloud Development
Accelerating enterprise agility through enhancing
software productivity
PDF generated April 28, 2015 by CBPN.
1 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
Table Of Contents
Agile Cloud Development ................................................. 3
Agile Cloud Development - Fusing PaaS, DevOps and Microservices .................. 5
Nike's journey to microservices - Getting to production fast ......................... 8
DevOps with Worpress - Case study: Metro Newspaper .......................... 10
G-Cloud PaaS - Government as a Platform ................................... 11
IoT Microservices - Realizing the vision of the X Internet ......................... 13
Apprenda - Enterprise PaaS .............................................. 15
ActiveState Stackato - Enterprise PaaS with Cloud Foundry ....................... 16
CloudBees - Continuous Delivery Platform ................................... 17
Puppet Labs - DevOps automation ......................................... 18
Ravello - Cloud Application Hypervisor ...................................... 19
2 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
Agile Cloud Development
by CBPN Admin - Tuesday, October 21, 2014
http://cloudbestpractices.net/guides/agile-cloud/
Accelerating enterprise agility through enhancing software development productivity
Agile Cloud Development describes the evolution of software development that is enabled by using
Cloud services.
The Cloud is not only changing how software is hosted and executed, it's also changing ow it is written
and maintained.
Agile Cloud Development refers to using the Cloud for hosting new application software and also the
process of creating, uploading and maintaining this software, where the combination of the two enables
more Agile methods of software development.
Topics covered include:
DevOps tools - Populate tool sets like Puppet are increasingly used to manage the life cycle of
deploying software to Cloud environments
PaaS - Hosted services and internal PaaS solutions that provide the building blocks for ACD
Microservices - How software is breaking up into small micro units of code rather than one big
monolithic application
White paper download
Agile Cloud Development
A comprehensive overview of best practices with case study examples and vendor directory.
3 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
Next event
Microservices - Innovations and Best Practices
With keynote presentation from highly acclaimed industry expert Bernard Golden, this presentation will
provide an introduction and overview to beginning a microservices initiative, covering monolithic stacks
vs microservices, key application design decisions in moving to microservices, application monitoring
and management changes imposed by microservices.
Learn more and sign up here.
_______________________________________________
4 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
Agile Cloud Development - Fusing PaaS, DevOps and
Microservices
by neilmcevoy - Saturday, October 25, 2014
http://cloudbestpractices.net/blog/devops-wordpress/
One of our headline Cloud best practice themes is PaaS & Agile DevOps, refering to the combination of
the Platform as a Service model with new modes of software development that unite Agile practices with
‘DevOps‘, the integration of Development and Operations.
DevOps
In their introductory white paper Puppet Labs detail the best practices of ‘Continuous Integration’ and
‘Continuous Deployment’ that are central to the ability to rapidly deploy new software iterations via a
much faster cycle.
In their white paper ‘State of DevOps report Puppet Labs introduce the broad aspects of DevOps, such as
the organizational and personnel aspects, and how they can be improved through the right tools that
encourage ‘high performance’ workflow patterns.
In particular this is headlined by ‘Continuous Integration’ and ‘Continuous Deployment’, the much
faster software development and deployment cycles that DevOps focuses on, to achieve the higher
throughput rates with fewer code failures.
From research they conducted with the IT Process Institute, they benchmarked over 1,500 IT
organizations and concluded that high-performing IT organizations were on average:
5-7x times more productive than their non-high performing peers.
They were making 14x more changes, with one-half the change failure rate with 4x higher first fix
rates, and 10x shorter Severity 1 outages times.
They had 4x fewer repeat audit findings,
they were 5x more likely to detect breaches by an automated internal control, and
had 8x better project due date performance!
Agile DevOps
Agile software practices are introduced in the Agile Manifesto, and described here by the here by the
Scrum Alliance explaining the relationship to ‘DevOps’, the integration of software development and
operations management.
As the vendor DB Maesro describes in this blog, DevOps builds on the software development best
practices like version control and Application Lifecycle Management, with additional functions to further
automate the deployment to Cloud procedures.
5 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
This integration is conveyed through the idea of ‘Infrastructure as Code’, explained by one of the GCloud Digital team Gareth Rushgrove in this presentation: Continuous Integration for Infrastructure.
In this blog Stackify make this great observation, that Agile and DevOps combine to holistically address
the full lifecyle of translating business ideas into working code running in the Cloud hosting delivery
environment.
PaaS – an Agile Architecture
So the fundamental aspect to understand and define is what is the relationship between these software
development practices, and the Cloud hosting environment that the software will be deployed to.
In short how can a PaaS environment provide a supporting ‘Agile Architecture‘?
Ravello describes implementing Continuous Integration across a hybrid VMware ESXi and AWS EC2
environment, and one particular interesting way to achieve these methods is via an open source platform,
such as Openstack.
Their how to resources include the list of relevant Openstack modules, a panel session discussing the
associated best practices. This is a particularly powerful way to achieve this capability, because as an
open source platform Openstack itself is developed via a highly agile mode, a global collaboration of
thousands of developers all contributing to it rapidly and in parallel.
Microservices and Containers
6 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
For an overall context of the technology trends shaping these developments, key ideas include
“Microservices“, a software system achieved through lots of little application components rather than one
big one.
In essence this represents the realization of the original vision of XML Web services, not just a method of
standardizing interfaces between software applications but also about making software design more
modular. InfoQ describes how this aids software deployment agility.
However since the modern day technology giants like Netflix began making use ‘microservices’ they
have quickly become the hottest topic for Cloud thought leaders, alongside ‘container’ technologies like
Docker.
Rather than building monolithic applications that try and contain all the required business
functionality, microservices is instead more about distributed computing models where lots of small
application components perform specific functions, and in unison they combine to form the same sum
total.
Javaworld proposes 2015 will be the year of microservices, nothing that “microservices poster child,
Netfilx, also uses AWS – in other words, microservices and the cloud go hand in hand.”
They also make the point that “microservices and Docker are a perfect fit”. Nate Slater of Amazon
Startups agrees and describes how in this great educational article – Using Containers to Build
a Microservices Architecture.
As Active State writes here innovation leaders like Netflix are harnessing this approach to speed their
ability to deploy new updates to production, and it’s a key benefit of moving to the PaaS model.
Open source PaaS options are available like Gilliam.
_______________________________________________
7 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
Nike's journey to microservices - Getting to production fast
by neilmcevoy - Monday, March 16, 2015
http://cloudbestpractices.net/blog/nikes-journey-to-microservices/
Nike is an organization that understands the shift described by Michael Porter, to a
third generation of competitive advantage where technology becomes an integral part of product value.
Fitness is a key area where IoT wearable technologies combined with new apps will become
differentiating factors that influence which new sports shoes and clothes we buy.
Code red
It’s therefore essential that the corporate IT team recognizes and keeps up with this shift, and how Nike is
doing so is described in this video of their presentation at Amazon’s 2014 Re:invent conference, where
Jason Robey talks through their move to a ‘microservices’ approach to application development.
In this presentation he describes how the firm is committed to a fast pace of innovation and that digital is
a top priority for the company, however upon starting his role he inherited a situation that proved contrary
to these goals.
He recalls being presented with a ‘code red’ scenario, a production system that was barely stable, servers
that wouldn’t start, very little test and validation so that nearly every release contained defects, and
despite engineers working 24/7 the new feature deployment cycle was months long.
At first they tried to tackle the situation by moving into a deep vertical stack using expensive technology,
which tackled some issues but ultimately ended up ‘building a monolith’. While this made many
improvements including stabilizing the systems they still experienced issues like configuration
management delaying the software cycle, database deployments were still too manual, and in general they
were still moving too slowly, especially due to factors like slow organizational decision making.
Now they were down to a three week development cycle, but of which only two days was pure coding,
the bulk was tied up in the stabilization processes.
Continuous Delivery and microservices
So Jason then began them on their journey towards a microservices approach.
They embraced the Phoenix pattern to implement immutable servers, via Amazon AMI instances, and
8 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
adopted the shared nothing architecture. They also began making extensive use of the Netflix OSS stack,
where tools Conformity Monkey combined very effectively with AWS features, like the management
console and Amazon SNS & SQS for notification messaging, to provide them powerful architecture and
tools, like dynamic discovery with Eureka.
Indeed their case study highlights just how powerful the combination of Cloud and microservices can be
– For example at 25:00 he explains how “scaling concerns do not cross functional boundaries”, meaning
that capacity for one service can expand elastically without affecting any other services.
All of this was part of an overall goal of achieving a Continuous Delivery model, so that they could ‘Get
to Production Fast’. Now the delivery of new features can be achieved in days and weeks not months as
their SCRUM team model works much more effectively, with more innovation projects possible while
still also reducing the number of lines of code they work with, thanks to working with microservices not a
big monolith.
_______________________________________________
9 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
DevOps with Worpress - Case study: Metro Newspaper
by neilmcevoy - Tuesday, April 28, 2015
http://cloudbestpractices.net/blog/devops-with-worpress-metro/
With the media sector and WordPress in mind, a great case study example of this is the Metro
Newspaper.
This WordPress case study describes the various ‘hacks’ they employed to grow the site to millions of
visitors, achieved through the use of WordPress software off the shelf, which is then augmented with
additional modules and ongoing software development and maintenance.
The Head of Development for the site Dave Jensen discusses his philosophy towards this methodology, as
well as a number of insightful articles about these improved software practices more rapidly advance the
digital products that the web site delivers.
This includes a review of their newsfeed works, and development of their Android app Metro 10.
With the right platforms and tools software developers can build and release software faster, bringing new
online digital services to market quicker and more cost efficiently.
_______________________________________________
10 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
G-Cloud PaaS - Government as a Platform
by neilmcevoy - Tuesday, April 28, 2015
http://cloudbestpractices.net/blog/g-cloud-paas/
As Michael Krigsman describes in this ZDNet article,
the UK Government is one case study example of an organization pioneering these new models, to
achieve Digital transformation.
Mike Bracken, Executive Director for Digital in the UK Cabinet Office, writes here that the future of
public sector IT is ‘Government as a Platform’ (GaaP), and describes how it will enable the next phase of
digital transformation for government. The Cabinet Office recently published this video to easily describe
the concept.
Inspired by the vision of Tim O’Reilly, who described how traditional IT for government should become
more like Facebook, Twitter and the other Internet pioneers who have been harnessing the evolution of
the Cloud to become ‘platforms’, doing so for government would enable a shared infrastructure that
enables more rapid digital transformations.
The UK G-Cloud program began initially as a means of creating a central procurement catalogue, the
Cloudstore where providers could list Cloud services available for sale to the UK public sector via
standardized agreements.
Since then it has evolved considerably and is now intended to function as an ‘Agile Services Marketplace
‘, achieved through a second e-market for suppliers who offer people skills and services, most notably
Agile software development practices.
11 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
G-Cloud PaaS
This is more than just ‘Government PaaS’, referring to the Cloud industry term standing for Platform as
a Service., although this does begin to set the scene.
Where IaaS provides Infrastructure as a Service for IT managers to access as a utility service rather than
buy and install more servers, and SaaS provides Software as a Service for business users so they don’t
have to install and manage software, PaaS sits in between the two and is intended for software developers
in the same fashion.
Providing them common components like operating systems and middleware the goal is to accelerate
their software production rates through encouraging reuse of these components rather than always
building them from scratch.
There is even a specific G-Cloud category. G-Cloud PaaS, which includes an array of platform
applications ranging from Identity through Sharepoint to Unified Communications, among many others.
Their service manual documents Agile best practices, including:
How development is centred around User Stories
How the practices can enable Continuous Delivery
Supporting best practices such as Configuration Management
_______________________________________________
12 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
IoT Microservices - Realizing the vision of the X Internet
by neilmcevoy - Thursday, March 05, 2015
http://cloudbestpractices.net/blog/iot-microservices/
An explosive combination of technology trends will be where ‘microservices’ and the IoT Internet of
Things intersect, a concept we can describe by comparing it with a previous theme, the ‘X Internet’.
The X Internet – Harnessing
distributed microservices for big data applications
How to build the enterprise part of IoT solutions is fairly well understood now, with a maturing set of
components, such as messaging protocols like MQTT or XMPP, implemented by software systems
like Mosquito, and then Big Data software platforms for storing this data and performing the analytics,
such as the examples given of Hadoop, Storm, and Couchbase.
With IoT scenarios of course the scope of the challenge is broadened and defined by the fact that the
source of these data feeds will be a myriad of new ‘occasionally connected‘ devices, presenting
associated challenges.
With this in mind there are also approaches that don’t store all the data in one big database. As Phil
Windley describes about Fuse, a IoT technology platform intended for the ‘Connected Car’ scenario, and
how it employs a ‘microservices architecture‘, using ‘Picos’ that store the data for each individual user.
This is more of a ‘Personal Cloud’ data approach, a distributed computing big data design if you will.
The apps can be hosted in the Cloud and Phil is developing a Docker-based install highlighting this
connection again.
Other technologies targeting this same scenario include Canadian poster child Blackberry’s spin off
QNX, who have an ‘embedded’ operating system for device scenarios such as in-car entertainment.
13 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
There are also other development tools ideally suited to the
microservices approach, created long before the concept, such as Rebol, an application development
language and toolset from Carl Sassenrath, inventor of the Amiga operating system.
It was also originated with this new age in mind, enabling developers to create ‘Reblets’ – Small
distributed apps that can run across many different devices and are ‘network-centric’, hence ideal for
IoT.
Or as Carl described ideal for what the similar buzz term at the time was, the ‘X Internet’. As Forrester
write here they actually predicted another vision of a similar concept and term to the IoT, the ‘X
Internet’. Others working around the same idea included Motorola, this white paper actually making for a
good Internet of Things primer: The X Internet: Connecting the physical world with the Cyber world.
The X Internet stood for ‘Executable Internet’, or ‘Extended Internet’, referring to the evolution from
not just distributed content, the web, but also distributed applications, what we now think of as the
Internet of Things.
Carl said “As a result, REBOL is optimal for X Internet distributed applications. It provides more
effective solutions to modern network distributed applications. When compared to traditional languages,
REBOL offers greater expressive power with less code. Most applications are typically measured in 10’s
of KB, not 10’s of MB. And, when it comes to software development and support costs, smaller is better”.
This sounds like a sound philosophy for IoT application development in general, given the myriad of
challenging device scenarios that code will need to operate in, and so one thing seems certain, the general
microservices approach is likely to be hugely important to the trend and consequently explosively
popular.
_______________________________________________
14 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
Apprenda - Enterprise PaaS
by CBPN Admin - Sunday, March 01, 2015
http://cloudbestpractices.net/directory/757/apprenda-enterprise-paas/
Apprenda brings PaaS to the enterprise rather than the enterprise to the PaaS. Apprenda is a PaaS solution
used by McKesson and JPMorgan Chase to deploy a truly multi-tenant PaaS on existing infrastructure.
For organizations that have already built a PaaS, many peers have found immense cost, structural, and
efficiency gains by using Apprenda instead. Apprenda works with existing technology and is easily
extensible. This architecture design allows organizations to use existing investments and expertise. It is
the only enterprise PaaS on the market that supports both Red Hat’s JBoss and Apache Tomcat servers.
Apprenda works with public cloud investments like AWS’ data warehousing RedShift, Azure’s
messaging bus, and others to provide developers with servers beyond compute and storage.
The Apprenda platform pools together infrastructure resources such as servers and networking
components and exposes them to developers through a self-service mechanism, like a command line or
graphical user interface. Apprenda’s middleware components include high availability, scalability, loadbalancing, and multi-tenancy to decrease development time for existing and new custom applications.
_______________________________________________
15 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
ActiveState Stackato - Enterprise PaaS with Cloud Foundry
by ActiveState - Thursday, October 30, 2014
http://cloudbestpractices.net/directory/427/activestate/
Stackato is a private Platform-as-a-Service (PaaS) software based on Cloud Foundry, Docker and other
open-source components. It can be installed on your internal infrastructure or public cloud. Stackato
allows developers to automatically packages applications into their own Docker containers and scales
instances up or down on demand, all without assistance from IT. Stackato provisions all required
components, including languages, frameworks and service bindings, automates logging and monitoring,
and allows for automated application versioning and rollback.
With Stackato developers can deploy their application to any cloud (private or public) and it will work the
same in production as it did in development. Additionally, administrators can monitor the applications
once they are deployed and configure settings, such as user roles, application components, scaling, and
memory usage. Stackato makes it easier for development and IT to work together and deploy applications
to the cloud faster.
_______________________________________________
16 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
CloudBees - Continuous Delivery Platform
by CBPN Admin - Thursday, October 30, 2014
http://cloudbestpractices.net/directory/409/cloudbees/
CloudBees offers a hosted or on-premise Jenkins service to offer a platform for implementing Continuous
Delivery best practices.
They extend the core Jenkins software with extensions that tailor it for the demanding requirements of the
enterprise software development market. This enables the ability to move and track work across delivery
stages, from build and test, to staging and deployment, connecting to existing systems using native and
integrated and partner-supplied capabilities. such as specific deployment tools like Chef and Puppet Labs,
deploying to services such as the Google App Engine or AWS Elastic Beanstalk.
_______________________________________________
17 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
Puppet Labs - DevOps automation
by CBPN Admin - Thursday, October 30, 2014
http://cloudbestpractices.net/directory/402/puppet-labs/
Puppet Labs helps sysadmins automate configuration and management of machines and the software
running on them. With their software, businesses can make rapid, repeatable changes and automatically
enforce the consistency of systems and devices, across physical and virtual machines, on prem or in the
cloud.
Puppet Enterprise is a complete configuration management platform, with an optimized set of
components proven to work well together. It combines Puppet (including a preconfigured productiongrade puppet master stack), a web console for analyzing reports and controlling your infrastructure,
powerful orchestration features, cloud provisioning tools, and professional support.
_______________________________________________
18 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
Ravello - Cloud Application Hypervisor
by CBPN Admin - Thursday, October 30, 2014
http://cloudbestpractices.net/directory/412/ravello-cloud-application-hypervisor/
Ravello has developed a distributed hypervisor infrastructure called HVX. It enables an enterprise to
completely encapsulate a multi-VM application and run it on any cloud (e.g., Amazon AWS and Google
Compute Engine) without any changes whatsoever.
HVX consists of three technology components and a management layer, wrapped up and offered as a
SaaS. The technology components are a high-performance nested virtualization engine (or nested
hypervisor), a software-defined network, and a storage overlay. The management layer manages the
technology components, provides the user interface and API, handles image management and enables
monitoring – all as a SaaS service.
_______________________________________________
19 / 20
Agile Cloud Development
Global best practice standards for adopting Cloud Computing - http://cloudbestpractices.net
Cloud Best Practices
Global best practice standards for adopting Cloud Computing
PDF generated April 28, 2015 at 11:07 AM by CBPN.
20 / 20
Powered by TCPDF (www.tcpdf.org)