Author: Stephen Withers

  • DevOps as a Service at base2Services

    DevOps as a Service at base2Services

    Given DevOps’ emphasis on close collaboration, what are we to make of the idea of DevOps as a Service? Aaron Walker, cloud and integration principal at base2Services explains.

    base2Services started as a consultancy service specializing in open source software (especially middleware), but also developed software for its clients. Over time, the pendulum swung towards development, but clients also wanted the company to provide hosting services and ongoing delivery management.

    In the late 2000s, “We gravitated towards cloud because it was a natural fit… we could manage infrastructure as if it were software,” says Walker. “We were a big Agile shop, so it made sense to apply those practices to operations.”

    By 2012 base2Services realized it had built significant capabilities in this area, and so abandoned software development to concentrate on infrastructure management with a focus on ‘infrastructure as code,’ and migrating clients’ systems to the cloud and then providing ongoing management.

    “We don’t do anything that doesn’t have a cloud element,” says Walker, who explains that base2Services can help clients take advantage of the cloud even if they are still using a traditional piece of software.

    Because of the company’s history, “the DevOps thing was something we just did,” says Walker.

    base2Services’ goal is to enable its clients to move more quickly, and it does this by carrying out the tasks that a client is not yet ready for, by working to minimise any gap between its own and the client’s teams, and through skills transfer.

    The company focuses on continuous improvement, and on the development of a continuous integration and delivery environment for the client.

    base2Services’ clients come from a broad range of sectors, says Walker, but especially e-commerce as well as traditional enterprises and government departments that are moving into the cloud. The former “get the fact that they need to be in the cloud,” while “we’re bringing traditional IT departments along on the DevOps story.”

    In some cases, base2Services is brought in to challenge an internal IT team. This makes it important to show “we’re here to help and we’re not there to replicate what they already do,” he says.

    This approach has proved successful in helping other IT organizations become more agile so they can focus on serving their colleagues on the business side through much shorter cycles.

    Physical proximity of development and operations staff tends to be a characteristic of DevOps, and that would seem to work against base2Services’ strategy of providing the Ops part as a service.

    Not so — “We’re very hands on,” says Walker. When working remotely, base2Services staff take advantage of ChatOps and also attend customer standups via Skype or similar technologies.

    “It all depends on the customer and its maturity,” he explains. More maturity means more daily interaction; less maturity means base2Services people are more likely to physically attend the customer’s premises on the days they are required during each sprint. “We’re pretty flexible… we’ll work with customers how they want to work.”

    base2Services customers include fashion e-tailers Cotton On and The Iconic, utility service provider Service Stream, and state government agency Emergency Management Victoria (EMV).

    EMV is “a really great story of DevOps working to deliver a platform very quickly,” says Walker, as the new system had to be deployed between bushfire seasons. Multiple partners were involved in the project, with base2Services providing full automation for the environment, plus ongoing management including the deployment of new features and capabilities. “It wouldn’t have been able to happen so quickly under a normal government structure — they would have still been at the requirements specification stage.”

    The challenge with new customers is that they need to understand that DevOps is a process, Walker explains. “I cringe when I see job ads for a DevOps engineer,” he says. “DevOps is not a person or a set of tools, it’s a culture. You have to facilitate the culture and the processes when introducing it to an organisation, and use DevOps as a guiding principle to get people to work effectively together.”

    Sometimes the customer does not have the right internal structures for the successful adoption of DevOps, in which case base2Services assists with the transformation.

    “The biggest problem we find is that while teams naturally self-organize in smaller organizations, enterprises and government departments tend to be quite rigidly structured with defined roles and responsibilities — but by its nature, DevOps has to be cross-functional.” This leads to conflicts, because people become unsure of their place in the team and exactly what they are responsible for.

    The answer is education, combined with gradually introducing the various stakeholders to DevOps at an early stage of the project, he says. “You want them to take shared ownership, and the way to do that is to carve out one piece at a time rather than trying to change the whole organisation at once. This approach builds energy and enthusiasm, which encourages other stakeholders to engage with the process.”

    It is also important to avoid being over-prescriptive: “Pick one aspect — perhaps automation of a certain task — and adopt that as a starting point.” That way, even large and traditionally structured organizations can benefit from DevOps.

    For some people, “it becomes religious… ‘You have to follow all these practices or it’s not DevOps’,” but that is not constructive according to Walker. His advice is to avoid getting stuck in the details, and instead make a start and commit to constant improvement. Seeing through small but meaningful changes will deliver value, he says, because the introduction of DevOps is one of many situations where it does not make sense to try to boil the ocean.

  • DevOps at REA Group

    DevOps at REA Group

    “DevOps is 100 years old, and probably invented by a British engineer in the 1920s,” according to Nigel Dalton, CIO at REA Group, the company behind realestate.com.au and other leading real estate sites in Australia, Hong Kong and Europe.

    He was referring to the work of Frank Woollard at Morris Motors in the UK. In 1925, Woollard produced a paper titled Some Notes on British Methods of Continuous Production in which he wrote “The ideal of continuous flow must be present from the design and raw material stages up to and even beyond the sales stage.” (This paper can be found in Bob Emiliani’s annotated reprint of Woollard’s Principles of Mass and Flow Production.)

    “There’s nothing new under the sun with DevOps — we’re doing the same thing [as Woollard],” said Dalton. “We’re reproducing practices that are 100 years old.”

    They might be even older, he said, pointing to research suggesting China’s Terracotta Warriors were made using flow manufacturing around 200BC.

    While the principles are old, “the cutting edge today is DevOps.”

    REA’s DevOps journey began around three years ago when the company’s applications and website covering commercial and residential sales, rentals and shared accommodation were being moved to a new Java-based platform. It was “an epic migration” involving a large team from REA and consultancy ThoughtWorks, and one that triggered consideration of how to do things even better.

    People like REA’s Trent Hornibrook (then infrastructure lead, but now delivery lead) realised greater changes were needed, Dalton said. “I doubt that bosses could tell people to do DevOps — they’d find a million reasons to avoid it. It’s a practitioner, grass-roots thing.”

    Hornibrook likened the situation that results from separate development and operations groups to working on a car production line and finding that a door doesn’t fit the body. Production grinds to a halt, but that could have been avoided with better collaboration further back in the process, so it’s largely about making the feedback cycle quicker.

    The idea of a monthly development cycle where operations signs off at the end of the month “couldn’t go on in a world where things were moving faster,” said Dalton.

    The company was still organised in functional groups: IT development, IT operations, marketing, sales, and so on. But as it moved to customer-segmented operations, these divisions were no longer appropriate.

    So REA reorganised into business units covering its commercial, residential and property developer customers. “We got rid of IT operations, and put operations people into the teams,” he said.

    The only centralised IT development workers are the global infrastructure and architecture team of around 12 people who build tools and measurement technology, manage the company’s use of Amazon Web Services, and provide consulting services. “They’re not high and mighty enterprise architects, they’re hands-on.”

    The approximately 180 developers are part of the delivery teams that focus on the entire lifecycle of their applications, Hornibrook explained. “We’ve driven the autonomy and accountability down to individual teams,” and this has resulted in high levels of staff engagement.

    Scaling IT is difficult, he observed, so it is necessary to provide that autonomy. While it does mean some work is duplicated, that’s a worthwhile trade-off for the increased throughput.

    Dalton agreed, pointing out that the real estate business is changing rapidly, and REA’s ability to match that speed makes the organisation more resilient.

    “The business benefits of adopting DevOps are significant,” said Dalton. The lean approach focuses on value, flow and waste, and DevOps improves flow and reduces waste. It is not logical to block flow by addressing operational issues at the end of a cycle — it’s much better to embed that function along the development process.

    Another factor that allows IT at REA to keep pace with the business is that “we don’t have vendor dependency.” Rather than being locked in to the development cycles, the company uses a lot of open source software. “The tooling around DevOps is incredible… I reckon we use 50 tools that I know about across the teams,” Dalton said.

    Similarly, REA employees are actively involved in Meetups, DevOps Days and other community events. In addition to gaining and sharing knowledge, this helps make REA an employer of choice, said Hornibrook.

    The introduction of DevOps does require attention to various organisational issues, including governance. For example, the idea of separation of duties as a defence against certain kinds of malpractice goes out the window. “It’s a good concept, but an old concept,” Dalton said, and one that can be largely replaced by peer checking. He suggested it was much easier to make ‘unauthorised’ changes to code 20 years ago when it was commonplace for developers to work independently on a routine or module, but greater peer involvement and teamwork has made a big difference

    “It’s all about outcomes,” he said. “We have controls.”

    The adoption of DevOps does mean “the guardians of compliance have to learn more skills,” Dalton said. Tools such as GitHub record the changes that are made, but auditors need to learn how to use them. “All the evidence is there, they just have to find it.”

    “Think about security at the beginning of the process and it’ll probably be better,” he added.

    And when it comes to the functionality and quality of the software developed, accountability is an important motivator: if a particular component breaks, then the people who caused the problem will be the ones that have to fix it.

    “DevOps is human behaviour and collaboration, yet it’s deeply technical,” said Dalton. REA’s biggest problem is finding people who will work collaboratively and take responsibility. Also — and how many times have we heard this about IT staff? — “Communication skills are really vital.”

    Another important attribute that Hornibrook looks for is malleability, because “change is so confronting.”

    “A focus on individuals within a work culture and mindset is a key element that prevents the adoption of DevOps,” he said. An important first step for someone in a role like his is to shepherd employees into a shared vision and purpose.

    That, suggested Dalton, is helped by the way REA does not have a highfalutin mission statement, just a simple raison d’être: ‘Our purpose is to empower people by making property simple, efficient and stress-free.’

    There’s also a benefit from one of the most basic Agile tools — cards on walls. This turns a binary ‘you versus me’ situation such as one person asking another whether a certain change has been made correctly into a ‘you and me versus the cards’ situation, and that’s a very different dynamic, according to Dalton.

    The deeper collaboration is spreading from within IT into other functions such as marketing and sales. Dalton calls this ‘product DevOps,’ and added “we can lead that if we get our own house in order.” It helps that REA has already adopted Agile principles across several functional areas, including the call centre and the legal team.

    “That’s how this organisation succeeds at pace and with flow,” he said. “Learn, learn, learn, with a relentless focus on the customer.”

    That customer focus addresses the question of whether REA is building the right products, Hornibrook pointed out. Dalton agreed, observing “with DevOps and Agile, we can make the wrong thing really fast, but that’s not helpful.”

  • The benefits of micro-services

    The benefits of micro-services

    The adoption of a micro-services architecture has two main advantages, according to ThoughtWorks technologist Sam Newman.

    One is that micro-services increase the autonomy of individual development teams within an organization, as ideas can be implemented and deployed without having to coordinate with a wider IT delivery function.

    This allows new or changed features to be delivered more quickly. Organizations that understand they make money through technology – Netflix is one example Newman cited – know they need to get new features out the door as quickly as possible.

    The other main advantage is that micro-services aids the adoption of new technologies, although this is arguably a subset of the autonomy argument.

    Since a micro-service is by definition a small, self-contained function, it provides a low-risk opportunity to try a new technology. That is definitely not the case where monolithic systems are concerned, Newman said, as greater care is required when all the eggs are in one basket. But where a less-critical element is concerned, there are fewer barriers to experimenting with a new programming language or database, for example.

    So which organizations are setting the pace? “Netflix is a very good example,” said Newman, observing that the driver for its adoption of micro-services was to ship new features quickly, rather than handling scaling issues.

    Locally, REA (the company behind realestate.com.au and related real-estate sites) “is probably a couple of years ahead” in the use of micro-services, he said, noting that REA has been a ThoughtWorks client for many years, and has also embraced DevOps and automation. Its technology architecture is aligned with its organizational architecture, so REA can readily absorb companies that it acquires and therefore grow more easily. Organizational issues are key to understanding the significance of micro-services, he said.

    REA approached micro-services progressively. In the first three months it made sure the foundations were in place and put two micro-services into production. But in the second trimester it was able to deploy around a dozen more, and in 18 months more than 60 were live.

    Other micro-services adopters mentioned by Newman included MYOB (see DevOps in Action: MYOB) and PwC (which is progressively migrating its system for handling expatriates’ tax returns and related issues from a traditional enterprise system to a finer-grained, more decomposed architecture using micro-services, to reflect the way some parts of the system are common to all geographies while others are country-specific).

    There is a very real risk that building micro-services will lead to duplication, but that is not necessarily a bad thing, Newman said. Many SOA (service-oriented architecture) implementations have been hamstrung by efforts to optimize services for reuse slowing the pace of change, so organizations may choose to accept a degree of duplication in order to speed delivery.

    An Australian bank is currently exploring this issue, realizing that it previously made a mistake by emphasizing reuse over time to market, he said. “It has to be a balance… [but] reuse in itself shouldn’t be the goal.”

    That said, it can be beneficial to eliminate at least some of this duplication over time in order to improve the maintainability of the systems. Otherwise the result can be “quite a chaotic environment.”

    “It’s a governance thing,” Newman explained – organizations need to detect any duplicate micro-services, and then make a deliberate decision to either continue as they are or to converge them. This is healthier than simply forbidding divergence and duplication as that can negatively affect time to market.

    Allowing duplication – even if only in the first instance – also mitigates questions of ownership, allowing the team developing a micro-service to proceed without the need for ‘sign off’ from other parties that may be potentially affected.

    In any case, developing a micro-service typically takes around two weeks, so there is no great loss if duplicates are retired. It is a different situation when monolithic systems are involved, as they are very hard to retire in an SOA environment – an enterprise application may be grossly underused, but it can’t be removed as long as other programs are consuming its services.

    The idea behind SOA was good, he said, but it became dominated by software vendors rather than by consideration of what works well for their customers.

    The micro-service architecture can be thought of as ‘SOA done well,’ Newman suggested, especially as it provides a mechanism for surfacing capabilities in multiple different ways, such as (in the case of a retailer) via web sites, native and web apps for mobile devices, and in-store software. When different capabilities are to be combined in different ways, working with smaller pieces is easier than larger ones.

    Newman’s book Building Micro-services is published by O’Reilly Media. It is now available as an ebook and will appear in print shortly.