What Can We Expect in Tech Trends for 2020

As a developer, mastering certain tools can be critical if you want to have a successful career. You will likely need to use them frequently and may be expected to know them, depending on your employer. By spending time to gain experience with the right tools, you can make sure that you are ready to exceed expectations. If you don’t know where to begin, here are some tools worth focusing on.

Published in IT Infrastructure

Where is DevOps Headed for 2020

With every passing day, 2020 gets a little bit closer. Many professionals and companies use this time of year to look toward the future, often attempting to predict what is on the horizon. In the world of DevOps, 2020 has the potential to bring some major advancements. At times, this includes broader implementation of current trends. In others, it’s more closely related to new emerging technologies.

 

If you want to plan for where DevOps is headed in 2020, here’s what should be on your radar.

5 Critical Skills That Every DevOps Engineer Should Have 1

 

DevOps engineers are uniquely positioned in most companies. Typically, they straddle development and operations, allowing them to speed up the delivery of software by bridging those two worlds. 

In order to be a successful DevOps engineer, certain skills easily qualify as must-haves. If you want to further your DevOps career, here are the ones you need to bring to the table. 

Published in Recruiting

Dev Ops Mainstream

The pace of technology change is rapid, but in tech as in other areas of life, there's resistance even to beneficial changes. The first object-oriented programming language was probably Smalltalk, which became available in 1972, but object-oriented programming didn’t become mainstream until a decade later, when C++ became standard. The DevOps concept was first started in 2008 or 2009: how close is it to becoming mainstream?

DevOps Going Global

Currently, DevOps is largely used to support businesses that are heavily dependent on the cloud, where automated deployment and configuration management is crucial. According to Gartner, fully 25 percent of Global 2000 companies will integrate DevOps into their processes by 2016. It's this move away from cloud-specific utilization that will make DevOps part of the technology mainstream.

DevOps Requires More Than Tools

While the development of tools to support DevOps will grow to a $2 billion market in 2016, the key to broad acceptance is the realization that DevOps isn't just a set of tools. Companies are looking for DevOps ready tools, but they have also come to understand that DevOps is a culture of collaboration that enables continuous improvement in a business's technical environment—which benefits the bottom line.

Of necessity, DevOps requires improved communication between development and operations teams. Companies also find that using DevOps improves communication between their IT teams and business partners, which, combined with agile development methodologies, reduces the time to develop releases.

Companies that are still struggling to adopt agile software processes are likely to struggle with DevOps. Getting people to accept rapid deployments and collaboration between development and support teams is unlikely in an environment of step-wise work phases like those in a waterfall development model.

DevOps Enables Business Growth

In some companies, DevOps enables deployments to be made as often as multiple times an hour, compared to the old process of a few times per year, allowing companies to be much more responsive to business needs. Using DevOps also enables companies to scale deployments rapidly and cheaply. For companies that succeed with DevOps, growing DevOps parallels business growth.

DevOps Requirements

You may think the transition of an application from development to production happens at the end of the software lifecycle, but achieving a successful transition requires thinking about it all the way back at the start of the development process. Here are 10 things you can do during development to make it easier for the operations team to take responsibility for the app in production:

1. Make it easy to gather metrics. A key part of the operations team's job is monitoring what the application is doing and how it's doing it. That's a lot easier when the application gathers basic information and provides hooks for ops to check other performance numbers.

2. Document system dependencies. No system runs in isolation, but if the ops team doesn't know your application depends on some obscure package, that package may end up getting deleted to free up space. Put together a list of all the necessary components to make sure they get installed and stay installed to keep your app running.

3. Degrade gracefully. Don't write an application that falls apart when there's any sort of problem. Applications should flag problems and alert the support team, but continue functioning as fully as possible. This means applications shouldn't fail to come up just because the log file system is full.

4. Keep compatibility in mind. If your application can run with past and future versions of third-party products, the DevOps team will have a much easier time deploying your application and managing it, especially if it runs in a shared environment where other applications may want different versions of those components.

5. Make it easy to change configuration settings. A key responsibility of the DevOps team is keeping applications running when the environment around them is shifting. Building connection strings and other configuration settings into compiled code makes it impossible for DevOps to do that.

6. Provide configurations settings and flags for as much as possible. If a feature isn't configurable or can't be turned off and on, the DevOps team has no way to control it and manage the impact in production.

7. Build with scalability in mind. If you're lucky, your application will be wildly successful and have to grow to support more users. A well-designed application will let DevOps handle this by running the app on more nodes. If you don't design the application well, it may need to go back to the development team for a rewrite before the user base can expand.

8. Think about support scripts. The support team would love to automate as much of their job as possible. This means making sure application functionality can be invoked from a command line, rather than only by clicks within a GUI.

9. Provide a regression test suite. DevOps wants the application to keep running when the environment around it changes. A robust regression test suite lets them verify the system will still work after they make changes.

10. Document. Document. Document. There's a ton of critical information that exists only in the developers' heads. Writing it down means the DevOps team won't need to call developers in the middle of the night to find out where to change a configuration setting.

Published in IT Infrastructure