Category: Blogs

  • Legacy IT Challenges Continuous Delivery

    Legacy IT Challenges Continuous Delivery

    Legacy information technology infrastructure has a strong effect on the potential success of DevOps. In environments where different teams have always used the same servers, change can be difficult due to inter-team coordination and limited server transparency and application inventories, says David Blank-Edelman, a 30-year systems administration/DevOps/SRE veteran and currently Technical Evangelist at Apcera.

    “Unraveling the Gordian knot to bring DevOps principles and practices into that environment will be quite a challenge,” he says.

    In such a legacy environment, the enterprise walks a topological tightrope stretched between one or more development machine clusters shared by multiple teams with no real isolation between teams and projects, Blank-Edelman notes. “In most cases, there is a second parallel set of machines for production and, if the business is very fortunate, for test/QA as well. There is seldom anything, however, to prevent a production workload from talking to a database server in development by mistake, which can lead to all sorts of fun.”

    How to Move to CD

    One solution is a policy system approach, in which the organization provides for a policy system to migrate a legacy information technology environment to a platform that uses continuous delivery (CD), Blank-Edelman says.

    To create the policy system, he notes, the organization will need to address questions such as:

    1. Are the workloads allocated/using only the resources that they should?
    2. What is inside the workload? What is its provenance? Is it acceptable and in good order from security, coding and business requirements perspectives?
    3. Where is the workload allowed to run? In which cloud? In which environment? In which country? Near what other containers?
    4. Can the workload communicate with only the things it should? If I move it to another location, is this still true?

    “The process of developing a policy system and then enacting it can lead an organization on a journey that brings their existing infrastructure to a much better place. If that platform can also automatically enforce the decisions that organization made during this question and answer discovery process, you can be certain that the answers to these questions stay answered,” says Blank-Edelman.

    Other approaches to moving to continuous delivery include tool-first approaches in which the organization adopts one to several CI/CD/workflow tools and then makes an effort to implement those, possibly by shoehorning existing processes and runbooks into that tool or toolset.

    A better tactic is the people-first or culture-first approach that focuses on how the development and operations personnel will work together to create a product vs. a project, says Blank-Edelman. While tools still have a role to play in the people-first approach, they are not the priority; rather, organizational change comes first. Once the people have made the commitment and the change, everything else will follow.

    Challenges During the CD Move

    It’s not the existing information technology infrastructure that presents moderate challenges to CD that is the issue; it’s the infrastructure that poses either very many challenges or very few that is the hurdle. “If you start with a more challenging situation, this will incentivize people to work very hard to reduce the associated pain points in their life,” Blank-Edelman says.

    On the other hand, he notes, when an organization begins a move to CD with an infrastructure that is already in pretty good shape, you won’t often hear its people say that they should stop working on the product and work on CD all the time instead. People will still claim they have plenty to do already.

    Continuous Deployment Can’t Exist Without CD

    Continuous delivery starts with a code base and takes logical steps through that code base to increase confidence that it is ready for production, using a process that is as smooth, automated and loosely coupled as possible, he says. With confidence in that pipeline comes confidence in moving the result of that process into production automatically, which is continuous deployment, he adds.

  • Mesosphere Democratizes the Container-Based Datacenter with DC/OS Open Source Project; Backed by Accenture, Cisco, Equinix, Hewlett Packard Enterprise, Microsoft and Many Others

    More than 60 leading technology companies collaborate to deliver first 100% open source datacenter-scale operating system for running containers and distributed apps in production.

    SAN FRANCISCO — (Marketwired, April 19, 2016) — A broad alliance of leading companies today joined forces with Mesosphere to unveil the beta release of DC/OS, the first open and comprehensive platform for building, running and scaling modern enterprise applications. Derived from Mesosphere’s revolutionary Datacenter Operating System, the 100 percent open source DC/OS offers powerful capabilities for container operations at scale and single-click, app-store-like installation of 20+ complex distributed systems (called DC/OS “services”), including HDFS, Apache Spark, Apache Kafka, Apache Cassandra and more. DC/OS lets every company deploy the automated infrastructure powering applications at some of the world’s largest technology companies.

    “The world needed a better architecture for all modern apps, not just containers,” said Florian Leibert, CEO & Co-Founder of Mesosphere. “DC/OS represents a major industry transformation, delivering today’s enterprises an open source datacenter-scale operating system that pools compute resources into what looks like one big computer, running containers, microservices, big data systems and other components of modern applications with ease. The open source community has come together around DC/OS to deliver an amazing ecosystem of products and datacenter services.”

    More than 60 partners— including Accenture, Cisco, Hewlett-Packard Enterprise and Microsoft — have had early access to DC/OS leading up to its launch and have pledged to help grow and shape the project through technology integrations and open source software contributions. DC/OS brings the industry’s most proven approach for container operations, and its Universe “app store” brings single-click deployment and simplified operations for the latest generation of services designed to run in distributed environments.

    View a list of supporting quotes from DC/OS launch partners.

    “DC/OS is the inevitable next step for Apache Mesos,” said Benjamin Hindman, Co-Creator of Mesos and Mesosphere Chief Architect and Co-Founder. “Organizations that run Mesos quickly discover they need all of the components we’ve built into DC/OS. DC/OS will democratize large-scale distributed systems and the applications they power, building on the work of the Apache Mesos kernel. By open sourcing DC/OS we’re enabling organizations of all sizes to harness the same computing infrastructure as the Twitters and Apples of the world.”

    Organizations and individuals are invited to join the DC/OS community at dcos.io. The DC/OS name and trademarks are attached to the open source community, and Mesosphere is committed to working with the community to determine the right long-term home for the project.

    Read more about DC/OS on the Mesosphere blog.

    Partners Driving Deployments

    One of the earliest DC/OS collaborators—Microsoft—announced today the general availability of Azure Container Service, including support for DC/OS. First announced in September, Azure Container Service is a completely open-source-based, production-ready container service. Azure Container Service is the easiest way to get started with DC/OS and is uniquely designed to give customers flexibility and easy deployment while taking advantage of proven technology and vibrant community support. DC/OS is also available for cloud deployment via the Azure Marketplace.

    “DC/OS takes an open source approach ideally suited for applications that will define the next decade of business,” said Mark Russinovich, Microsoft Azure Chief Technology Officer. “Microsoft selected DC/OS for the Azure Container Service so our customers can easily build, deploy and manage modern applications on our enterprise-ready Azure cloud platform, as well as in private and hybrid cloud environments.”

    Read Microsoft’s blog post about why it supports DC/OS.

    Other DC/OS partners from across the IT spectrum are already delivering strong integrations between DC/OS and their products and services. These include industry leaders such as Accenture, Equinix and HPE, as well as many innovative enterprise IT startups.

    “DC/OS is specifically designed for organizations seeking highly scalable, agile application development with continuous improvement and robust, reliable deployment,” said Edy Liongosari, managing director, Accenture Labs. “Accenture is mature in its ability to implement container-based solutions and DC/OS is a powerful underlying technology that will provide us with the implementation agility needed for custom development projects. We look forward to continuing our participation in the DC/OS open source project and supporting the evolution of the ecosystem.”

    “Hybrid and multi-cloud deployments are the new reality,” said Ihab Tarazi, CTO of Equinix. “We see DC/OS as a critical part of the true hybrid cloud. Equinix is home to 1,100 network providers across 145 datacenters in 21 countries and we will be using DC/OS to form the foundation for an open source ecosystem that innovates around multi-cloud and IoT. We believe that DC/OS, combined with other initiatives like Open Compute, will drive rapid innovation in the manageability, performance, security, and reliability of modern applications in hybrid environments.”

    “Businesses want to accelerate the development and delivery of secure and scalable cloud native services,” said Manoj Nair, Vice President, CDI Converged Product Management, Hewlett Packard Enterprise. “HPE is excited to partner with Mesosphere to simplify this process for customers by bringing together container orchestration, big data, and composable technologies for modern data centers.”

    Read HPE’s blog post about why it supports DC/OS.

    A Universe of Services

    DC/OS Universe, an app-store-like experience for exploring and installing services, is a built-in component of DC/OS. The Universe provides an open catalog of services built to run on DC/OS. making it easy for developers and operators to install and run complex distributed systems like Spark, Cassandra, Kafka and NGINX—the building blocks of modern applications—with ease. The DC/OS Universe simplifies packaging and delivery of its services for use in datacenter and cloud environments and provides a low-friction distribution path for ISVs that is analogous to app stores on desktop and mobile devices. With a single command or click within the DC/OS CLI or GUI, users can install services on the DC/OS. Any software developer can build services that run on DC/OS and publish them to Universe—thus inheriting the scalability and high availability of DC/OS.

    “We’re excited to join the DC/OS community in this launch, as developers and operators can now easily access and deploy NGINX as part of their DC/OS environment through Universe,” said Gus Robertson, CEO of NGINX, Inc. “NGINX is one of the most widely deployed application tools in containerized environments, enabling organizations to confidently build and deliver their next-generation applications at scale. We see a huge opportunity for the DC/OS Universe to bring plug-and-play services and apps such as NGINX and NGINX Plus to the distributed enterprise.”

    The Open Source Community Behind DC/OS

    DC/OS is an evolution of the Apache Mesos technology originally developed at the University of California, Berkeley, in 2009. Mesos was inspired by the types of systems that manage datacenter resources for companies such as Microsoft and Google, and simplifies the work of managing datacenters and the process deploying modern datacenter-scale applications. It works essentially by aggregating datacenter resources—tens of thousands of servers in its largest deployments—into a single logical computer on which many workloads (Docker containers, Hadoop, Spark and Kafka, to name a few) can run simultaneously.

    “Using new architectural principles such as containers at carrier-scale, Verizon is taking new applications from idea to production with greater speed than traditional deployments,” said Larry Rau, Director of Architecture & Infrastructure, Verizon Labs.  “Combining resources from the greater open source community and DC/OS technology, Verizon will be able to better standardize operations and maximize efficiencies across multiple datacenters. The launch of the DC/OS open source community is another step toward accelerating innovation in the datacenter.”

    “At Cisco we are interested in using DC/OS to deliver Mantl (mantl.io), our batteries included end to end solution for your microservices infrastructure,” said Ken Owens, Chief Technical Officer, Cloud Infrastructure Services at Cisco Systems. “The design point for Mantl is to focus a community around an end to end solution, not around an individual component; designed to solve business and team challenges, one glue, improved by the community, tested everywhere. We are very excited to be working with Mesosphere on DC/OS as this project that will greatly improve the stability and reliability of the microservices platform deployment and runtime.”

    The DC/OS platform, originally developed by Mesosphere, includes Apache Mesos as core technology (or kernel) but adds significant functionality above and around Mesos. Marathon is the native container-orchestration engine for DC/OS, and already runs large-scale Docker environments and other long-running applications at many large companies. DC/OS packages for Spark, Kafka, Cassandra, HDFS, Jenkins and other distributed systems increase operational simplicity and flexibility beyond what’s possible running them on non-Mesos platforms. Other DC/OS components—there are more than 30 overall, ranging from the build kit to the user interface—make it simpler than ever to install, run and manage modern applications on a wide range of platforms.

    “Yelp is a heavy user of DC/OS technologies for managing a large Docker environment that spans our private datacenters and the public cloud,” said Michael Stoppelman, Senior Vice President of Engineering at Yelp. “We even built our in house PaaS—PaaSTA—on top of DC/OS’s Marathon. Adopting these technologies has given Yelp’s developers and operators remarkable agility, and we believe DC/OS can bring the same results to all companies as they embrace technologies such as containers and cloud computing.”

    DC/OS is currently v1.7 and in beta. Based on the community’s confidence in the code, Mesosphere expects it to transition to general availability (GA) by Q3 of this year.

    DC/OS Founding Partners

    10th Magnitude (www.10thmagnitude.com), Accenture (www.accenture.com), Alluxio (www.alluxio.com), ArangoDB (www.arangodb.com), Autodesk (www.autodesk.com), Avi Networks (www.avinetworks.com), Big Industries (www.bigindustries.be), Big Switch (www.bigswitch.com), Buoyant (www.buoyant.io), Cake Solutions (www.cakesolutions.net), Canonical (www.canonical.com), Capgemini (www.capgemini.com), Cervoo (www.cervoo.com), Chef (www.chef.io), Cisco (www.cisco.com), Citrix (www.citrix.com), Cockroach Labs (www.cockroachlabs.com), Confluent (www.confluent.io), Container Solutions (www.container-solutions.com), Data Art (www.dataart.com), Data Dog (www.datadog.com), Data Fellas (www.data-fellas.guru), Datera (www.datera.io), Dynatrace (www.dynatrace.com), Element Analytics (www.elementanalytics.com), Elodina (www.elodina.net), EMC (www.emc.com), Equinix (www.equinix.com), HPE (www.hpe.com), Iguaz.io (www.iguaz.io), InfoSiftr (www.infosiftr.com), Ishi Systems (www.ishisystems.com), Joyent (www.joyent.com), Kovarus (www.kovarus.com), Lightbend (www.lightbend.com), Linker Networks (www.linkernetworks.com), Magnetic.io (www.magnetic.io), MapR (www.mapr.com), MemSQL (www.memsql.com), Mesosphere (www.mesosphere.com), Metaswitch (www.metaswitch.com), Microsoft (www.microsoft.com), Miracl (www.miracl.com), NetApp (www.netapp.com), NGINX (www.nginx.com), Offscale (www.offscale.io), OpenCredo (www.opencredo.com), Packet (www.packet.net), Puppet (www.puppet.com), QCT (www.qct.io), Quobyte (www.quobyte.com), Redapt (www.redapt.com), Samsung SAMIIO (www.samsungsami.io), SolidFire (www.solidfire.com), Sumologic (www.sumologic.com), Sysdig (www.sysdig.com), Vapor.io (www.vapor.io), Verizon (www.verizon.com), Weaveworks (www.weave.works), Xentaurs (www.xentaurs.com), Yelp (www.yelp.com)

    Additional Materials

    About Mesosphere

    Mesosphere (Twitter: @Mesosphere) is leading the enterprise transformation toward distributed computing and modern applications with its Datacenter Operating System, and is the principal founding member of the DC/OS open source project. DC/OS is a production-proven datacenter-scale platform for container operations and simple installation of complex distributed systems—including HDFS, Apache Spark, Apache Kafka, Apache Cassandra and more. Mesosphere was founded in 2013 by the architects of hyperscale infrastructures at Airbnb and Twitter, along with the co-creator of Apache Mesos.  Backed by A Capital, Andreessen Horowitz, Data Collective, Fuel Capital, Hewlett Packard Enterprise, Khosla Ventures, Kleiner Perkins Caufield & Byers, Triangle Peak Partners and Microsoft, Mesosphere is headquartered in San Francisco with additional offices in New York and Hamburg, Germany.

    In March, Mesosphere announced that it closed $73.5 million in a Series C funding round led by Hewlett Packard Enterprise, with Microsoft joining as a new strategic investor. The round brought Mesosphere’s total funding to date to nearly $126 million and supports the company’s accelerating growth as DC/OS becomes the de facto standard for enterprises operating containers and distributed systems in production.

  • The Transience or Permanence of Provisioning

    The Transience or Permanence of Provisioning

    I realize the title of this article may conjure up ideas about the impacts of entanglement from quantum computing, but no, we are not there yet. Instead, I am referring to the benefits an organization can achieve from determining which environments in its software development life cycle (SDLC) should remain permanent and which are better candidates to be transient to understand the discreet costs of innovation (ideally if virtualized).

    First, to keep an even playing field, make sure your DevOps services are using the “build once, deploy many” philosophy. Under this thinking there is a single build constructed that is deployed unilaterally into each class of SDLC environment (not a unique build for each class). Uniformity under test eliminates variability of results. Uniformity of the basic process of deployment, builds consistency and predictability also will reduce errors and the time it takes to resolve them.

    Second, the actual computing capacity you deliver any environment on may be virtualized, whether you provide your own bare metal assets (private cloud foundation) or if you use a public cloud entirely is less the issue. Understanding whether a class of environment is transient or permanent only affects how you plan for the costs and policies of operating it, and it leads back to the discreet cost of innovation as a result.

    The Cost of Creation

    When this topic is usually considered the first and immediate point of view is usually R&D, or the development class environment. And yes, the ability to provision a DEV class environment and then tear it down when the effort has completed is the normal use-case to justify virtual infrastructure at all (public, private or hybrid cloud usage). The obvious benefits include having no “throttle” on how many concurrent efforts might be spun up.

    Transient DEV environments also build in a concept of failure, or elongated “playing,” not intended to produce a specific result but intended to dabble with innovation to see what “might” be possible. All of this without the capital investment it would take to build and maintain an R&D lab to accommodate it, or set aside fixed computing capacity for it. DEV efforts with intent (i.e., part of a formal project) can be tracked for costs discreetly with that planned innovation. DEV efforts without intent (i.e., more like what used to occur in R&D labs) can be associated to the overhead costs of all innovation.

    The Cost of Evaluation

    But beyond DEV, the next major class of environment to consider is the integration (INT) class. If your company has more than one application, has apps that work together or has applications with upstream or downstream dependencies, you likely need an INT class environment. The major responsibility of this class environment is to provide “something to point to.” Your app (undergoing change) has an environment where it can point to all the other applications to test how the interconnections work. Logically, this class of environment is a better candidate for permanence. This is because you can rarely predict which apps may need this service at which time across the entire portfolio. Many apps undergoing change may be using this at one time to insure they all work with each other (i.e., assessing their interoperability with future versions, early, or prior to production).

    Another reason for maintaining a permanent INT class environment may involve your interaction as a vendor to other companies who “point” their apps at yours as a service provider. Even organizations who have little interaction between their own apps, may well be a significant provider to a wide swath of customer applications. If your customers need a place to point to, the INT class environment is typically the one you want. So in this instance permanence is the logical need.

    Next up, becomes the performance test (PT) class of environments. Emulating production, or being able to project differences between the platform you use, and what production provides is key to success. However, this class of environment is a perfect candidate for transience (especially if your development and production environments are already virtual). Why maintain expensive hardware on the floor, only to conduct periodic testing, which requires massive reconfiguration and preplanning. Dump it. Instead, use a virtualized platform where provisioning is near instant and can exactly mimic both development and production – remember: build once, deploy many.

    Another significant class of environment in the SDLC to examine is the User Acceptance Testing (UAT). Logically, this class environment may get a lot of usage, but ideally only after the app has passed testing in development, INT and PT. Because of this, the UAT should be transient as well. A good candidate to tear down when not in use. You may wish to plan for a setup and tear down of this class to mimic what happens in formal development efforts.

    Finally, the quality assurance (QA) or preproduction (PreProd) class environments, if in use, are designed to emulate the current state of production completely, allowing the app-under-change to run against a more sophisticated type of INT class environment (with possibly copied production data, etc.). This happens more often when the earlier INT class environment contains a great number of other applications under change. This one provide a “cleaner” place to point to, only production operating apps. The QA environment may also be used as an after action, when an error is discovered in production for debugging or more extensive monitoring. Obviously, if your organization finds a need for this class of environment, it will carry the permanence characteristic.

    The Cost of Operations

    Production is by nature permanent. Virtualizing production offers the ability to scale on demand. But a scalable production solution benefits from more mature DevOps services (whether you own the data center or not). Consider for a moment, the number of errors attributed to code post a DevOps embrace. The number of errors goes down, the time to resolve them goes down, the size of the effort gets smaller for less risk, and higher speed. This combination means production is going to suffer far less from aberrant code running amok (asking for tons of memory, CPU or disk due to error). Those kinds of problems get detected earlier (because of DevOps) in the SDLC process and hardly ever reach production after DevOps is engaged.

    With a mature use of DevOps, it means that any kind of scalable solution of capacity-on-demand will get engaged for only two reasons: a dramatic increase from customer demand (the ideal solution) or a denial of service attack attempting to drive your costs higher without real customer use. The monitoring solution you employ will help decipher the difference. If your application has logging features built into it (i.e., you produce a log detailing what customer is performing what key feature in your app and when) you should be able to avoid the latter scenario with an automated monitoring detection effort.

    New Abilities to Measure the Cost of Innovation

    Understanding the cost delta of transient and permanent environments is worth examining. It will help you understand better the cost of innovation on an annualized basis. And it may also reveal how much real effort goes into testing of each kind of class. If user adoption is suffering for example, and you determine that UAT class environments are largely unused or torn down, you know better where to address the problems earlier in the cycle. The same can be said for PT as well, how much test, for what kind of scaled performance in production.

    If your organization maintains INT or QA class environments you may want to allocate their costs to SDLC overhead as they tend to be permanent, and value shared. The development, PT, and UAT environments, if transient, represent the variable cost of a particular innovation effort and can be tracked with good discretion. When considering the timing, value, and benefits of virtualization, you may wish to factor in where you are on the DevOps continuum. If you have had DevOps running for a while, the timing for virtualization and scalable capacity on demand may be better, than if you are just starting out.

    Keep in mind that most organizations who have transitioned away from waterfall and into agile, will lose a good deal of the former financial controls that worked in waterfall, and do not work as well in agile. DevOps delivery is also capable of moving change at orders of magnitude higher speeds than former manual methods. This combination makes trying to cost innovation discreetly more difficult. Being able to associated transient environment costs with formal development efforts (ones with intent) may restore some of that financial discretion. It may also help identify the true overhead costs of innovation located in the operation of environments classed better as permanent.

    To continue the conversation, feel free to contact me.

  • The DevOps Institute, What a Difference a Year Makes

    The DevOps Institute, What a Difference a Year Makes

    It was just about a year ago that we announced the formation of the DevOps Institute (DOI) here on DevOps.com. Wow, what a difference a year makes! Some folks thought that formal training and testing for DevOps knowledge was sacrilegious, others thought it a joke, others that it was pre-mature. But here we are a year later and the idea of DevOps training seems to have taken root. So much so that even some of the old warlords of the traditional IT training space are trying to muscle their way into DevOps training as well.

    We are launching a DOI neighborhood here on DevOps.com to feature content related to DevOps training, the DevOps Institute, their partners, reps and students. We welcome your input. If you would like to contribute you can write me at editor@devops.com.

    I wanted to take a moment though and return to this past year and the state of DevOps training. I think much of the initial resistance we encountered in some quarters was to the idea of certifications of DevOps training. In fact, I would say much of it was resistance to the idea of certification in IT period. Over time the market and certainly we here at the DevOps Institute realized that while certification is something that is important for some employers or career paths, it shouldn’t take away from the real aim of the DOI’s mission.

    The DOI’s mission is to gather information, evangelize and educate the market about the emerging practices in DevOps. Notice I did not say best practices. This is because we believe that we have not had really recognized or perfected best practices. We are seeing emerging practices and watching closely to see which ones continue to emerge and offer the best state-of-the-art in DevOps training and education.

    In the meantime, we are seeing DevOps training offerings coming out of the woodwork. Many of the tools vendors are developing and putting out training and certification specific to their tools. I think this is essential for employers to be confident that an employee has the expertise with a given tool set.  Practitioners are going to want this training and certification to prove their proficiency on a given tool. I would like to see us incorporate some of these tool classes as part of the DOI offerings in the coming months.

    Some of the traditional IT training folks are taking matters into their own hands and developing one-off DevOps classes. As with everything else, some are better than others. In digging in you will find some are a quick money grab and some are actually pretty good.

    As I mentioned earlier, some of the older stakeholders behind ITSM, ITIL and Scrum training are trying to jump on the DevOps bandwagon. They promise openness, but their business models are all but open for the most part. There is more to DevOps training then putting logos on a website. In the meantime, one thing we have learned for sure is lets not repeat the mistakes of the past with some other types of IT training.

    The IT industry and IT training are well evolved global industries. It is a for profit industry obviously. My advice is, buyer beware, your mileage may vary when choosing a DevOps training provider.  DevOps is not ITIL, not ITSM and while Agile is tangential, it is not exactly the same either. In fact while Scrum Agile training is pretty well developed, it is not the same as DevOps training per se. Their are Agile methods and lessons that DevOps classes can take, especially the DevOps for Ops type of classes. But lumping DevOps and Agile together is not the right path either.

    At the DevOps Institute we have a world-wide network of registered education partners who are offering our tried and vetted DevOps Foundation class, as well as our other two classes. If testing and certification are important to you, our global partner PeopleCert will administer and deliver it for you.

    We are also hard at work to deliver the next generation of DevOps training classes. I don’t want to talk out of school, but we have spent the last year listening to the hundreds of people who have taken our classes, our partners, speaking with the leading lights in the DevOps world, I think what we have in store will once again set the bar in DevOps training and education.

    In the meantime, check here at the DOI neighborhood often. There will be a steady stream of good content related to DevOps education from many different sources. You may just learn something 😉

    Indeed the first year of the DOI has been quite a ride, but buckle in because things are really going to pick up now.

  • Rugged DevOps: Making Invisible Things Visible

    Rugged DevOps: Making Invisible Things Visible

    You might already know them from theagileadmin.com, but let me introduce you to two of the leading minds in the Rugged DevOps movement: James Wickett and Ernest Mueller. Both James and Ernest are active leaders in the DevOps space, in addition to helping organize events such as DevOpsDays Austin and LASCON. Our conversation covered a lot of bases from the founding of Rugged DevOps to aligning organizational silos to lessons learned from W. Edwards Demings.

    Wickett: Hi, I’m James Wickett. I work over at Signal Sciences. I’ve been doing stuff in the DevOps space for quite a while and am interested in security as well.

    Mueller: Hello, I’m Ernest Mueller. I work at AlienVault. I’ve also been in the DevOps world for a long time. James and I have worked together a lot in the past, and we blog together at the agile admin.com.

    Weeks: There is a lot of conversation going on around Rugged DevOps. Is this the end of traditional security as we know it, or is there a place for what security has been doing all along to coexist with some new ways?

    Mueller: Certainly. Every field has to continue to innovate to survive. And InfoSec is no exception. IT operations is no exception. The reason that we attend the RSA Conference and that there is a DevOps track is because IT infrastructure operations and systems professionals have the same issues. Right? The long lead times, bottlenecks, not being well-aligned with your customers. And we managed to find a way out of that using leading principles, using agile principles, to where we could improve the state of things.

    Can the old coexist with the new? It certainly can for a time. I think, though, there is an extent to which the new modes of thinking in the end have to be adopted or you die out, right. You’re still doing your core thing. You are providing IT operations or you are providing security, but the way you do that has to change and keep pace with business demands.

    ___

    Every field has to continue to innovate to survive. And InfoSec is no exception. IT operations is no exception.

    ___

    Wickett: We talk about this in our presentation on lean security here at the conference. It is not so much of a question of “replacement” or “is traditional security going to be around longer?” It is just going to look a lot different.

    The really cool thing (and what Ernest mentioned as well) is we both worked together in operations shops in the past. That was five or eight years ago when operations was then where security is now. Operations today looks dramatically different than it did 10 years ago. I think the same thing is going be true about security. (See slides from Ernest and James.)

    https://www.youtube.com/watch?v=D6TnKUWPqvg

    Weeks: When I talk to a security audience about how they interact with development, they are like, “Ah, we have no access to development.” When I speak to development communities about security they are like, “Ah, don’t let those guys in the room.”

    Part of the Rugged DevOps conversations is not only how do you bring security into development, but how do you bring it in early enough into the development life cycles. How have you been able to bring security in and bring it in early?

    ___

    Operations today looks dramatically different than it did 10 years ago. I think the same thing is going be true about security.

    ___

    Mueller: Again, this is one of the core problems that DevOps faced at its initiation, where that exact same dialog occurred between developers and operations.

    There are a number of techniques you can use. But what you have to understand is that you are looking at an underlying culture change. There is no silver bullet for that, and so it can take years. But aligning both the people that are trying to do the work and the management that is trying to organize it to understand—that sort of close collaboration throughout the entire pipeline is what’s important.

    And there are some times where you have to power through it. I remember early on in our DevOps implementation at National Instruments. We had started having design reviews with developers and operations personnel that were in the same room. The application architect approached me and said, “These guys keep asking us questions that we don’t really even understand or know the answers to about capacity or about reliability. Maybe we should just have separate reviews.” I said to him, “Well, you have two options. We can continue to do them separately, and we can continue to not understand each other. Or, we can do it together and power through it. And it really shouldn’t take all that long before we do start to understand each other because we all have the same goal, which is to ship these products.”

    ___

    I said to him, “Well you have two options. We can continue to do them separately, and we can continue to not understand each other. Or, we can do it together and power through it.”

    ___

    So we powered through it, and it really didn’t take that long for everybody to finally get to a good point where they could understand and collaborate with each other. But it took determination to get there.

    Wickett: I think that was really, really well said. We are having that conversation where we’re saying we do need to shift left. We are saying we do need to make it earlier. We’ve kind of seen the writing on the wall. How do we get there?

    I think there are some practical approaches. We are just taking small steps. I have seen people do this at different organizations. There have been a lot of talks on this. But when putting security into your continuous integration in your delivery chain, I think there is a huge gap.

    I work at Signal Sciences so it is one of the things we do. But there is a huge gap in the operations knowing whether we are under attack, why are they attacking and what are they trying to do. Right? And I am not saying you need to buy our product to get that done but there is …

     

    Weeks: I’ll say it. You do need to buy his product.

    Wickett: Good, please, say that.

    But it’s amazed me how often shops have no idea what’s actually going on. They don’t really know what parts are being attacked. They don’t know what’s happening on their site. They don’t have any sort of security operational telemetry coming back to developers or to management.

    As we’ve seen in lean, those are the invisible things. You’ve got to make them visible. I don’t know what that’s going to mean for people’s organizations. I could make a bunch of random recommendations, but take the principle of making those invisible things visible and start trying to apply it.

    ___

    Take the principle of making those invisible things visible and start trying to apply it.

    ___

    Weeks: Building on that: Part of the whole discussion around DevOps is rapid feedback loops. How do you get information from people as quickly as possible so that they can be informed and take action on that?

    Mueller: Absolutely. Well, I think we’ve seen a lot of fledgling successes in that area. James is the core contributor to an open source product called Gauntlet that introduces security testing into continuous integration processes. We’ve seen presentations at other conferences, from Twitter and from Etsy, where they’ve built these security warning systems very, very early on that notify the people that are actually creating the flaw as they are creating it.

    W. Edwards Deming said that we can’t ensure quality by mass inspection after the fact. We have to build integrity into the product as we create it. Unfortunately, a lot of security thinking today is built around mass inspection after all of the mistakes have already been made and then trying to go back and get somebody to do rework of a product that has already shipped, that’s already making money, that’s already out there in customer deployments, whatever. That’s always inherently going to be a much more difficult route at ensuring actual security.

    ___

    We can’t ensure quality by mass inspection after the fact. We have to build integrity into the product as we create it.

    ___

    Wickett: In some ways, we’ve built this problem ourselves. We do compliance on an annual basis. Compliance is built around the waterfall mechanism, and security is a function of compliance or something that they try to accomplish. It’s very antithetical to fast feedback loops. It’s very antithetical to rapid cycles. So we need to find ways to break that down into more discrete chunks that can happen on a daily or weekly or hourly or per-code-commit basis.

    Weeks: How did the rugged DevOps movement originate?

    Wickett: Rewind to 2009 or so, and there are the first signs of DevOps kind of coming through. There is the agile operations thing. People were talking about velocity that year. The first DevOpsDays by Patrick Dubois happened. Flickr says that we’re doing 10 deploys a day. And just everybody loses it.

    At the same time, Josh Corman came out with the Rugged Software Manifesto in 2010. I read that. And Ernest and I were both latching onto DevOps at that time, and we were trying to do some cloud-based implementations but really focused on the DevOps-centric vision around that.

    We told ourselves, “We can’t just stop at Dev and Ops. We have got to have security.” And this is while we were taking a lot of telemetry data from Internet of Things (IoT) types of devices and thinking that’s going to need to be secure if we ever wanted to get a customer on that. So we really started to try to put that together.

    ___

    We can’t just stop at Dev and Ops. We have got to have security.

    ___

    We stumbled across the rugged stuff, and at the same time, we just really felt like rugged and DevOps were two things that were moving in different tribes. They were both trying to accomplish very similar-type missions. In Austin, we run the DevOpsDays event there. We have a lot of security folks in the Austin area. It’s the capital of Texas, so there are a lot of folks related to that.

    It seems like the DevOpsDays we’ve had there have a very security-focused push every year, and the rugged language really struck more of a cord than security. To me, that’s a rough brief history of how that’s come about.

    Weeks: James, you also run LASCON in Austin, which is a great security conference. It has a DevOps track where security and development or DevOps come together.

    You are both thought leaders yourselves. But who else do you listen to? If you could tell someone reading this, “Here is someone that you should see at a conference or look for their video on YouTube,” who would you recommend?

    Mueller: Obviously, the list of presenters here at the Rugged DevOps Summit is a litany of many of the best-in-class people to hear speak, whether it’s Josh Corman, John Willis or Damon Edwards. I could list the entire set. People that aren’t here, like Pete Cheslock, have done a lot in merging both DevOps and security.

    Wickett: Throw in Nick Galbreath who I work with now. I really kind of saw him doing some of the same stuff, and I really dig that. Gene Kim, of course, would be a good fit.

    I love learning from Patrick Dubois. When he speaks on anything, I am really interested in what it is. He is doing more mobile stuff these days but always good stuff there. Anybody else?

    Zane Lackey, too. I also work with Zane.

    Weeks: That’s a great list. Thanks!

    Hey, DevOps Austin is coming up in the beginning of May. Is the call for papers still open?

    Mueller: That’s right, the 2nd and 3rd of May this year.

    The DevOpsDays Austin call for papers is open, call for sponsors is open, and tickets are being sold, although early birds are sold out already, so I recommend that people move quickly.

    We’re in our fifth year. The last couple of years, we have been filling up our venue at 500 people. We have actually moved venues to the University of Texas Darrell K. Royal-Texas Memorial Stadium this year, so we have a little bit more space, and we’re riding on more tracks. We’re riding on a hack-a-thon actually.

    It’s interesting. One of the things you have to be careful about in this whole thing is not losing the developers.

    ___

    One of the things you have to be careful about in this whole thing is not losing the developers.

    ___

    People that were very involved in OWASP for a long time saw that started off as a developers and security sort of thing. And over time, unfortunately, that relationship was lost a little bit, and they’ve had challenges as a result.

    Now we are like, “How do we get the developers back collaborating with security?” We’re trying to make really sure that there is a lot of interest in DevOps out of the operations space, and so that can sometimes start to push out the content the developers find compelling.

    We’ve added a content tract and a hack-a-thon to try to make it super compelling to developers this year.

    Weeks: Excellent. James, I think you guys just secured a Series A. Is that right? Should we tell people you are hiring at Signal Sciences? Is AlienVault hiring too?

    Wickett: Yes, I think Signal Sciences is hiring both in the L.A. area and across a lot of remote positions. The engineering team has a number of remote members.

    Mueller: Absolutely, we are hiring too. We have teams in Austin, out here on the West Coast and in Ireland. Our original office was in Madrid, Spain. So we have a lot of folks there if we have any international readers on the blog.

    Weeks: Excellent. Perfect. I appreciate you guys spending time with me. Absolutely enjoy the conference, and we’ll point people to the recording of your session as well.

    Wickett: Cool.

    Mueller: Super.

    Wickett: Thanks, Derek.

    Weeks: Thank you very much.

    If you loved this interview and are looking for more great stuff on Rugged DevOps, I invite you to download this awesome research paper from Amy DeMartine at Forrester, “The Seven Habits of Rugged DevOps.”

    Untitled2

    As Amy notes, “DevOps practices can only increase speed and quality up to a point without security and risk (S&R) pros’ expertise. Old application security practices hinder speedy releases, and security vulnerabilities represent defects that can leave a company open to cyberattacks. But DevOps practitioners can leap forward with both increased speed and quality by including S&R pros in DevOps feedback loops and including security practices in the automated life cycle. These new practices are called Rugged DevOps.”

  • Welcome to the New DevOps Institute Neighborhood

    Welcome to the New DevOps Institute Neighborhood

    The DevOps Institute (DOI) was founded in March 2015 as a global learning community for emerging DevOps practices. DOI’s goal is to establish the standard for DevOps training and certification at the enterprise scale based on the most current guidance from the most respected resources. We are guided by a Board of Regents comprised of thought leaders from the DevOps, Agile and ITSM spaces. We are establishing strong alliances with global leaders such as PEOPLECERT and DevOps.com.

    DOI is not a training organization; all education and certification is delivered through our worldwide network of Registered Education Partners (REPs) and PEOPLECERT as our examination institute. Since our launch, hundreds of candidates have sat the DevOps Foundation and Certified Agile Service Manager courses and exams with positive feedback and results.

    Why do we need a DevOps Institute?

    DevOps does not have a single body of knowledge. It literally touches almost every aspect of IT, from culture to automation to metrics and beyond. While the lack of a single body of knowledge may be frustrating to some, the evolution of an inclusive and collective body of knowledge allows DevOps to continue to grow and adapt organically.

    On a higher plane, that’s great. However, enterprises wanting to transform their environments to be faster, more collaborative and more automated are seeking a more formal approach to training and certification to ensure their teams are fully equipped with holistic knowledge, skills and competencies. That’s where DOI comes in.

    DOI strives to capture emerging DevOps guidance into meaningful and sustainable training and certification. We do this by relentlessly studying the wide DevOps’ collective body of knowledge, engaging subject matter experts, attending conferences, interviewing case studies and just plain paying attention to the evolution of DevOps at scale.  We track and trend innovations that are delivering real value in real organizations. Our working groups and subject matter experts then encapsulate all of the knowledge on a topic into practical and tangible training. Where appropriate, a certification exam will accompany the training to demonstrate an individual’s skill and qualification in a specific topic area. Successful candidates will become members of the DevOps Institute.

    What are the benefits of formal training and certification courses?

    • Creates a common mindset and vocabulary
    • Encourages dialogue, sharing and collaboration
    • Sparks ideas and innovation
    • Provides sustainable and actionable steps
    • Teaches something that can help teams, organizations and individuals to improve
    • Creates holistic expertise
    • Gives individuals a sense of pride and accomplishment when achieving certification

    Did you notice that DOI is focusing more on “emerging practices” over “best practices”? We believe that DevOps is an emerging space where new practices are being discovered, proven and promoted frequently. We also believe in the DevOps spirit of sharing and collaboration, and will never designate candidates as “masters” or “experts.”   DOI’s training and qualifications instead will support a more modern role approach that embraces DevOps’ cultural focus on adaptability, transparency and organizational agility.

    In the DevOps Institute neighborhood, we hope to provide:

    • Just-in-time knowledge articles from our REPs and others that focus on an emerging DevOps practice or related framework
    • Information about current and upcoming training courses and qualifications
    • Access to a calendar of available classes from worldwide Registered Education Partners
    • Video interviews, templates and other assets to help along your DevOps journey

    So, welcome to our neighborhood.   We hope you find value in our sharing and come back often.

  • The New Age of “Operations” in a DevOps Enterprise

    The New Age of “Operations” in a DevOps Enterprise

    My encounters with commercial clients in the DevOps space have been exciting, curious, political, and challenging. What most don’t realize is that DevOps is not just about infusing tool automation into a delivery pipeline, but it also has to do with re-mobilizing and challenging the status quo when it comes to “who does what”. As teams become more tightly integrated, functional lines blur, and uncertainty may set in.

    I find more and more, that clients and colleagues want to know:

    • What happens to the operations/run tower people if tools like UrbanCode Deploy automate the promotion of applications and releases to run-time environments?
    • What happens to our system administrators and “build out” teams, if tools like Chef, Puppet, Vagrant and pattern-based provisioning systems like IBM Cloud Orchestrator and UrbanCode Deploy with Patterns can perform solution stack build outs with minimal custom network, hardware, software, and middleware configurations?
    • If developers can provision and deploy their own apps, what do the sys admins do?
    • Will Operations Staff be replaced by tool automation?

     The truth is, now, more than ever, a savvy, astute, and innovative operations staff is essential to successfully execute effective DevOps within the enterprise.

     As development and test teams are being empowered to deploy their own applications with tool automation, Operations will need to shift the focus to enabling and empowering these teams with standardized, reusable automation assets. Design, development, maintenance and management of these automation assets will be the core foundation of DevOps success within the enterprise. A corollary to this is a set of standards and policies must be clearly defined and adopted as a framework for implementation.

    Standardization is paramount to making DevOps successful on a wide scale in the enterprise. If we were to think of our applications as a “solution stack” of network, hardware/virtual machine, operating system, middleware, and custom application components, standardized assets in each of the solution layers would enable faster assembly, development, test and delivery of a solution.

    When it comes to effectively enabling the enterprise for DevOps, you must become a hater of snowflakes. Snowflakes can be elegant, but they are unique and difficult to automate with tools. Examine applications and systems for uniqueness…and ask, can it be standardized? Typically, snowflakes occur higher up on the solution stack at the Application or Middleware layers. Network teams are not likely to implement new security policies for each application. However, moving up to OS and middleware, uniqueness is more likely to occur (OS release versions, MW versions and packages and so on).

    Once opportunities have been identified for standardized assets, operations teams must mobilize to enable the enterprise for automation:

    • Encapsulate enterprise policies in standardized automation assets (which can be reused across the enterprise).
    • Centrally manage and maintain automation assets within the enterprise (to maintain standard and policy compliance).
    • Evangelize, encourage, and incentivize the use of automation assets in delivery of applications.
    • Provide a continuous delivery pipeline tool set (preferable, as a service) providing an infrastructure to enable the automation assets for development and test teams

    Automation assets can occur at every layer in the solution stack, providing an opportunity for the new Operations team to inject enterprise influence and compliance at every level. This approach ensures standards and compliance, but also relieves application development and test teams from worrying about whether their application violates any corporate policies.

    Examples of automation assets and some enabling technologies are shown below, but this is obviously not an all-inclusive list (even a hardened shell script can be an asset). The point is, for each layer in the solution stack, assets and corresponding enabling technologies can be chosen to invest in. Some technologies can address multiple layers in the solution stack.

     img

    There is clearly a lot of good, solid, critically important work for the new age Operations team to manage and maintain. Interfacing with enterprise architecture and corporate standards groups are essential. However, the focus remains largely around empowering and enabling delivery using standardized assets.

    You can also watch this short video that I recorded recently. Please do share your feedback on this blog and how you see the evolving role of IT Operations in a DevOps Era.

    https://www.youtube.com/watch?v=TRlbiPcFOxc

    img2

    About the author

    Andrea Martinez is the DevOps Solution Leader for Cloud Services in IBM. Andrea’s mission is focused on delivery of DevOps solutions in cloud and traditionally hosted environments. Andrea has lead the solution architecture, implementation and initial adoption of one of IBM’s first DevOps Deployment Offerings. As a member of the IBM Academy of Technology, and a certified Thought Leader in application architecture, Andrea is keenly interested in enabling and empowering practitioners with innovation and technology to deliver solutions faster.

    Connect with Andrea LinkedIn | Twitter

  • Test Better, Test Faster, Test Smarter

    Test Better, Test Faster, Test Smarter

    How do you balance the need to “go fast” with the need to test everything and deliver high-quality software?

    With applications the driving force in today’s economy, the quality and release cadence of your software are critical to your business and your bottom line. You want to get software updated in the hands of your end users as quickly as possible. However, even the fastest release cycle wouldn’t make a difference if your product ends up being buggy or malfunctioning, resulting in a bad user experience or service interruption.

    I want to take a look at one of the most important (if not the most important) aspects of the software delivery process: testing! As software teams become more mature in their implementation of DevOps and continuous delivery to streamline their software delivery, testing takes a central role as a prerequisite to these practices.

    You need to have testing on your mind from the very beginning, and plan your testing as part of the initial stages of designing your software—mapping your test procedures, infrastructure configuration and acceptance criteria. As you design and develop your app, you also need to think about how you’re going to test it. The more testing is on your mind, the more you’ll have a solid understanding of what you need to test, what’s the definition of “done,” and the faster, more streamlined, your overall process will be.

    Let us review four questions every development or QA team should consider when planning their testing, as they try to balance quality with speed—managing and accelerating their testing, while ensuring a reasonable time-to-market.

    How Much Testing is Enough?

    The age-old question: How much testing do I really need to do? Unfortunately, there is no concrete answer. But with a bit of initial legwork, you can get a good feel for how much testing is necessary.

    The amount of testing that is necessary is influenced largely by the industry you’re in. If you are testing mission-critical aircraft software, let’s hope it’s very thoroughly tested! On the other hand, if you’re building a game app, the amount of necessary testing may be lower. The truth is when you run tests, the success rate is usually not 100 percent. Therefore, the key is to define what, for your specific piece of software, can reasonably be considered “done.” Instead of arbitrarily deciding at some point that your release is ready to ship, make the decision before the fact: What are we going to accept? What level of pass/fail are we willing to roll out with? What are we comfortable with based on what we have done in the past?

    The amount of testing required can sometimes be a fluid thing. A good way to measure your comfort level with your testing procedures and the amount of testing you’ve done, is to ask yourself, “If it was now 11 o’clock at night, and I needed to ship this code to my end users, am I sufficiently comfortable rolling this out, or am I not sure how it’s going to behave in the wild?” If you’re leaning toward the latter, than it’s probably an indication that you should have done some more testing. That’s a gut feeling and depending on the industry, the point at which you’ll fire off a release and not have any worries can vary greatly. And, obviously, for some regulated industries, you’ll need to prove compliance and ensure you’ve recorded that all tests were successful before you can even start thinking about releasing anything.

    What Kind of Testing Should You Invest in?

    Decide what kinds of things you really care about and what you need to verify and test for. What are the requirements that we expect from the application, and from the different stakeholders in this project?

    Every piece of software needs to be tested differently. Because of this, you have to plan what the testing will be. You can’t just say, “I’m going to unit test the heck out of my code, each and every time, no matter what.” Sometimes, unit testing isn’t the most important test you need to be running.

    The investment has to be in automation. No matter what type of tests you decide are most functional and relevant to your project—whether you’re doing a ton of unit testing or a bunch of functional stress tests—it needs to be automated.

    Particularly, as you open up your services to the world, you need to put into place the relevant performance and reliability tests so that if suddenly your load increases by 200 percent, you have a plan for how to handle that. Are you going to autoscale? Can you autoscale? And finally, do you even need to auto-scale?

    All of those questions need to be answered as part of your development cycle. Automating your tests will let you not only create tests for these scenarios, but it will let you run those tests over and over. By automating your tests, you can establish a baseline and see where you deviate.

    It can also be helpful to think of testing in a different way. Don’t look at testing as a tool to validate technical requirements, but as a way to make your customers happy. You want to make sure your tests are directly contributing to your customer’s overall experience. So start with the highest-level tests that look at things such as overall business functionality—and make sure the software works at the business level.

    How Can You Make Testing Faster?

    Automate, automate, automate! That might seem obvious, but try to think outside the box. Find things you thought couldn’t be automated and wrangle them into shape. Remember that every minute that one of your developers is sitting there running a test that could be automated, it is costing you time (and money) that he or she could have spent on more productive things. In the long run, not automating can cost much more than making the commitment to doing it right.

    Other simple things you can look at to increase the speed of your testing is to make sure your development environments are mirror images of your production environments, and that you have fidelity of configuration throughout the lower and higher environment.

    It is also helpful to make sure you’re defining user requirements that are thin vertical slices, instead of trying to test huge cumbersome pieces of functionality. The ideal situation is if you can run only tests against components that have changed. Componentization of both your application and your testing procedures is critical because you do not want to have to rebuild and re-test everything all the time. Remember, also, that if you make incremental changes to your code and frequently release them to your users (Agile, anyone?), you will get just enough feedback to improve quickly and reliably. Be cognizant of not biting off more than you can chew.

    Segregating the tests to several phases is a good way to accelerate your CI and test cycle—but make sure that both your application, build and test batteries are designed for that. With this approach, you are essentially running multiple phases of CI, starting with the fastest cycles that require the smallest build(s), with minimal dependencies, and move on to the outer/cascading cycles of tests. Following a submit, run a minimal build, so that you do not need to wait—sometimes many hours—to run an extensive set of all your tests with every single commit to see if it passes. Start with unit tests to minimize the build and provide fast feedback, then in various junctions incorporate additional tests, such as integration tests, installers and usability and performance tests.

    Another way to streamline your testing process is to take a look at the entire scope of your build and test cycle and go after the most inefficient stage. After automating your manual processes, look at the bottlenecks and what takes the most time and figure out how you can optimize that specific process. Often the answer is parallelization, but other times it is hardware. Iterate on your process and figure out where you can gain the most ground!

    Lastly, parallelization and distribution of the build and tests provide a huge time saver, so consider running tests across a cluster of CPUs to cut down the run time.

    Where Do You Start if You Want to Make Sure All Your Builds Are Green?

    Ask yourself, What are you trying to achieve? Is it a process where you can release code more quickly? Or where you can address bugs more readily? Then make sure you’re intimately aware of what you have in place. You need to know every step, task, process and tiny bit of your testing procedures and supporting infrastructure. Draw your entire end-to-end workflow on a whiteboard and find the bottlenecks that are slowing it down.

    Once you’ve defined your objectives and are aware of your current state, you can put the relevant tools in place—from development environment to your testing frameworks all the way to post-dev tools such as your analytics tools—design the right testing pipelines and hire the relevant people with the relevant skills. Don’t insist on making all the mistakes yourself (tongue firmly in cheek), but find folks who have already made the mistakes and learned from them—and hire them!

    Also, give your team a great system that gives feedback fast. Do frequent code reviews so there is accountability and a constant learning process.

    Consider the following best practices for improving your testing processes:

    1. Be sure to plan what your testing approach will be ahead of time if possible. When you’re designing your software, designing how you’re going to test it is important.
    2. The amount of testing you need to do is dependent on what industry you’re in and your specific use case.
    3. Consider what level of test pass/fail you’re comfortable with, based on what you’ve done in the past.
    4. Consider pre-commit or pre-flight builds to ensure your tests are more likely to pass once checked to Mainline
    5. Define your requirements for each test cycle
    6. Segregate your tests to “fast” and “slow” and decide which battery of tests you need to run every time, and which processes you only need to run at certain junctions.
    7. If you hire well and bring new skills to your team, your process will get better and faster.
    8. Consider what problems your customers are facing and perform an analysis. Use whatever tools are best to test your software like a customer would to achieve the highest end user satisfaction.
    9. Automate manual steps that you take for granted to accelerate cycle times and improve productivity. Speed comes second.
    10. Iterate on the testing process, and not just on the code itself. You should always be looking for new ways to test.
    11. Test your test processes. Hold regular meetings with your team to reassess if your testing strategy is working for you.
    12. Enact code reviews so that there is accountability with the rest of the team.

    As you map, design and optimize your tests, remember that your testing policies don’t need to be set in stone, and that you can—and should—adjust and tweak as you go.

    Happy testing!

    About the Author/Anders Wallgren

    Anders HeadshotAnders Wallgren is chief technology officer at Electric Cloud. Anders has more than 25 years’ experience designing and building commercial software. Prior to joining Electric Cloud, he held executive positions at Aceva, Archistra, and Impresse and management positions at Macromedia (MACR), Common Ground Software, and Verity (VRTY), where he played critical technical leadership roles in delivering awardwinning technologies such as Macromedia’s Director 7. Anders holds a B.SC from MIT. He invites you to download the community edition of ElectricFlow to build your pipelines and deploy any application, to any environment for free.