Join the DZone community and get the full member experience.
Join For Free
Best practices for getting to continuous deployment faster and with dramatic results in reduced outage minutes, development costs, and QA testing cycles. Brought to you by Rainforest QA.
To gather insights on the state of DevOps, we spoke with 22 executives at 19 companies implementing DevOps for themselves and helping clients to implement a DevOps methodology. We asked, "What do developers need to keep in mind with regards to DevOps/CI/CD?" Here's what they told us:
- You cannot develop in a vacuum. Work with people in IT infrastructure. It’s a team effort and the parts need to work together.
- Understand the value of DevOps. While the principles may slow you down initially. Get to understand the processes so you can use them successfully. The learning phase is very important – follow other developers, good information and best practices are online. Ensure developers learn DevOps and make it a part of their life. Always look for ways to improve the process.
- Take a DBA to lunch – quit thinking you’re superior to your team members and get to know what you can do to make their jobs easier since you will ultimately be responsible for what they are doing. If you built it, you run it. Now is the time to reach out and learn why things need to be done a certain way. Work together to find ways to improve the process – that’s the way things get dramatically better.
- It’s important for developers to work closely with DevOps to ensure rollback is available with every release. DevOps allows the quick and constant deployment of software, but rollback is something development must think of.
- Learn development, operation, and security and you will be invaluable. Understand that developers are agents of change. Merge with ops teams with specific requirements to keep systems stable and reduce downtime. Build relationships across teams. Partner with teams to be monumentally successful.
- Developers traditionally look myopically at code, features, and functions. Take the time to spend a day or two in operations to understand the challenges of production. See why you need to include security best practices. Get access to production data and provide feedback to operation in a continuous fashion.
- Understand this is a different world and you have to learn new concepts. You are fully responsible. There is no safety net. You must do things securely from the beginning. Train to be ready for your power and responsibility.
- Understand you cannot just throw something over the fence to the operations team because you are now the operations team. Appreciate what operations is doing. Sit down with operations to learn and understand. Realize that cultural riffs need to be addressed – be part of the solution.
- Be curious. Hungry for new tools and new ways of doing things without repeating the same mistakes of those that have gone before you. Ask questions and learn from those who have already embarked on the journey and learn from them.
- Keep iterating. You won’t get everything right the first time but you can always iterate. Build what’s needed for the next six months, not the next five years. Things change frequently.
- You need a picture to quickly understand what dependencies are using open source. By creating the security DNA of your app, we tell you where the security friction is.
- There are good tools available – use them. There are “old school” ways of doing things but they’re not scalable. Take the time to learn the tools that will help you scale. Keep current on market, and tool, trends.
- Play around with the different tools that are available. Create value for yourself. Focus on now and iterate on DevOps pipeline as you iterate your product. Start simply and scale up.
- Think about how it will test, deploy, and redeploy. Start writing code as early as possible. Don’t hack something together. Make everything repeatable from the get-go – deployment, development, and testing are all aligned. If not, you will have to reverse engineer how what you just built runs.
- Every change has the ability to break production, so the steps and tools that we develop and use to review and test are every bit as important as the production code itself. This is something that our engineers (and managers!) understand so that for every change we must factor in the effort for testing and for changes to our development, packaging, and deployment tooling. Engineers working on our systems know that they could be required to work on any part of our system. This makes our people mindful of side effects, so our engineers are inclined to consult early and often with peers about changes and put a lot of thought into effective testing.
- Have your data work for you. Leverage metadata. Use metadata to identify what’s critical and needed at any particular time rather than keeping access to the entire footprint. Tagging data becomes important. Know where your data needs to be.
- Start with source control and create versions of your files. All tools connect to source control. Then configuration management – Chef and Ansible. Then containers – Docker and Kubernetes.
- Get much faster and more detailed feedback about issues in the software so they can be fixed quickly.
- As with the Seven Habits of Highly Successful People, begin with the end in mind. Know what you want the end state of your application to look like and have a DevOps strategy that enables you to deliver that end state to deliver value to your customer and your organization.
Here’s who we talked to:
- Gil Sever, CEO, Applitools
- Mike Tria, Head of Infrastructure, Atlassian
- John Trembley, CMO and Scott Harvey, V.P. Engineering, Atmosera
- Aruna Ravichandran, VP DevOps Products and Solutions Marketing, CA Technologies
- Flint Brenton, CEO, CollabNet
- Tom Hearn, Data Center Architect, Datalink
- Shehan Akmeemana, CTO, Data Dynamics
- Robert Reeves, Co-founder and CTO, Datical
- Anders Wallgren, CTO, Electric Cloud
- Job van der Voort, Vice President of Product, GitLab
- Ben Slater, Chief Product Officer, Instaclustr
- Ilya Pupko, Chief Architect, Jitterbit
- Tom Joyce, CEO, Pensa
- Stephanos Bacon, Chief of Product, Portfolio Strategy for Application Platforms, Red Hat
- Michael Mazyar, CTO, Samanage
- Eric Wahl, IT Director and John Joseph, Vice President of Marketing, Scribe Software
- Manish Gupta, CEO and Founder, ShiftLeft
- Martin Loewinger, Director of SaaS Operations and Jonathan Parrilla, DevOps Engineer, SmartBear
- Chris McFadden, V.P. Engineering and Operations, SparkPost
Discover how to optimize your DevOps workflows with our on-demand QA solution, brought to you in partnership with Rainforest QA.
Opinions expressed by DZone contributors are their own.