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)