Welcome!

Linux Authors: Pat Romanski, Haim Koshchitzky, Liz McMillan, Gary Kaiser, Si Chen

Related Topics: DevOps Journal, Java, .NET, Linux, Virtualization, Cloud Expo

DevOps Journal: Article

DevOps Lessons for Small Businesses

Bootstrapping your developer resources

As Eric Reis, pioneer of the lean startup movement notes, a software startup's ability to succeed depends solely on how quickly and inexpensively they can try new features. The challenge is if you are a typical startup, you are your ops team and development resources are the biggest determinant of time-to-market, and developers are your most expensive and highest ROI resources.

If you could save each member of a four-person developer team 10% of his/her time, you could reduce time-to-market, reduce cost, try more experiments that increase your chances of success, delay hiring, and keep your burn rate under control. A DevOps approach can hold this promise.

For this reason, improving your DevOps workflow to eliminate inefficiencies should be a top priority for every technology-driven startup, no matter how small. And doing it sooner is more beneficial than later because more can be accomplished in less time with the right workflow in place.

Yet, according to the InformationWeek 2014 DevOps Survey, only 68% of startups are familiar with the DevOps concept. While this survey is small, it appears to be a representative figure based on firsthand experience. The numbers may be even lower among attention-stretched owners of technology-driven small businesses. In fact, when asked, most startup owners are indeed aware of DevOps and know they need to implement a DevOps approach but don't feel they have the time or knowledge.

The top barriers to implementing DevOps, according to the PuppetLabs 2013 State of DevOps survey, are cultural and hierarchical; these challenges are much less likely to exist in a small business where teams are smaller and more agile. But the pain of onboarding skilled labor with technical expertise and DevOps perspective may be greater. Many businesses are just getting on with business, and with recent price reductions in AWS costs, this number will likely increase.

While implementing a DevOps framework retroactively has challenges, it is still worth the effort. At Flux7, we recently recognized this lesson first hand during a complex "Internet of Things" project. Although we had proposed a DevOps model early on, we'd been unable to convince the client of the value in taking the time and resources up front to establish a DevOps framework that would support and streamline development workflow. As such, nearly a year into the project, with more than 100,000 lines of code produced, we were beginning to fall behind schedule and resources would need to be added to meet objectives. It was in the tenth month of the project that we convinced our client that investing in a developer productivity solution would achieve cost and resource savings. The result just may have saved thousands of dollars in development and delayed delivery.

Our engineers built an entire multi-tenancy without code change, creating a transparent DevOps solution that extended beyond a typical framework. The system is designed to auto-deploy and auto-scale using a NoSQL Cassandra database that collects time series data. Because DevOps processes were applied, developer productivity during the project was greatly increased.

The framework supports a continuous delivery model that will ease future development process and ease infrastructure management.

Why Your Devs Can't Fix These Issues?
While one of the missions of your devs is to help build your framework and make your processes easier, the question above is intentionally worded incorrectly.

Your devs are smart, and they have confidence that they can fix the issues being posed. You, as the leader, share the same confidence. However, while fixing these operational issues can be their job, you really have to ask two things.

First, is this the best use of their time? Second, will their output be the best and all encompassing? The answer to both questions is likely a "no." The reason is that at the end of the day, the value proposition of a startup is based on the features it provides to its end consumers. Your developers know your code base, and they can add features faster than anyone else. If you take them away from feature development and hand them code cleaning tasks that can be done by an outside entity, it will be a mistake.

Solving some of these tasks is an art, not just a science. It is about implementing best practices that are only learned over time from doing the same thing repeatedly. Your devs have likely not created a dozen AWS setups before now. While they will likely reach a good solution, they may miss details that can come back to haunt you later.

Pre-Canned Solutions Won't Work
Startups are an anti-pattern for pre-canned solutions. If you subscribe to the Lean model, agility is the key. Agility can only be achieved if there is freedom and flexibility. Any pre-canned solution that reduces agility will add negative value to your company. A stable application may be a perfect candidate for a pre-canned solution, but startups are not.

An outside partner with experience in DevOps consulting - one that has its finger on the pulse of configuration management solutions, ops productivity, auto-scaling implementation, and even best practices in AWS - can certainly help startups proceed in the most effective way to move DevOps projects forward within your organization.

Such a consultant is fully focused on helping an organization build, maintain and optimize DevOps processes. They are capable of evaluating your needs and creating a DevOps plan that will identify skills shortage and cope to meet demands with limited resources, while meeting head on the technical requirements, as well as the practical and political challenges.

As a result, they will have a strong understanding about how to make the best use of your experienced developers. They will effectively improve communication between dev and ops. Quickly, redundancies will disappear within the developer environment, and visibility will increase as the process unfolds. Cost savings will mount, starting with minimizing expensive bug fixes that are usually found in pre-production, and too often in production.

Finally, all of this can begin to produce a streamlined DevOps team by first eliminating the need for an ops guy. Your dev team will be fully functional and self-sufficient employing best practices in AWS, saving unnecessary headaches and time-wasting Googling. Then there's the anticipated and celebrated reduction in your AWS costs from using advanced techniques you may have been previously too busy to put in place.

Seven ways consultants can help

  1. Make the best use of your existing developers
  2. Minimize the time wasted due to lack of DevOps communication
  3. Minimize cruft in your environment and increase visibility into the process
  4. Minimize expensive bugs that are caught pre-production or, God forbid, in production
  5. Eliminate the need for an ops guy
  6. Employ AWS best practices to save you the headache and googling
  7. Reduce your AWS costs using advanced techniques you may be too busy to implement

Conclusion: DevOps and Small Business Are Like PB&J
Peanut butter and jelly are a match made in flavor heaven. They belong together, just like, yes ... DevOps and startups.

The continuity and seamless technology abound in a development environment ripe with a framework launched from a DevOps plan. Startups benefit from this because of the realization of the better managing and streamlining of their IT and developer resources and getting to market faster. Now, who wouldn't like such a delicious taste as that.

This kind of approach effectively works for a startup because devs become immensely productive by continuing to create using their native machines with all their tools and IDEs. Meanwhile, compute requirements are minimal, therefore existing hardware is utilized. The expected result is no bugs due to mismatches between local production environments. What's more, devs can work offline at any time, won't pollute their machines with packages and different versions, and repeal the tendency to learn new commands, all while running your website locally and accessing logs natively in real-time for immediate feedback.

As for the ops team, requests from the dev team are eliminated that normally hold up development environments. And, thankfully, there will be fewer debates around "this passed on my machine" due to parity in development and production, as well as fewer queries in regard to the production environment.

And, guess what... C-level decision-makers benefit in such a flavorable approach. Consider that new developers can now be productive within an hour by running a single command. There's the leveraging of higher quality software and the excitement of a reduced time-to-market. As for saving dollars, the existing dev team becomes more productive, while erasing the need to deal with talent shortages and adding salaries; there are reductions in overall spending, lowering the need to raise capital; and, best of all, this allows you to focus on other important areas, such as thought leadership, development and brand management, instead of spending so much time on code.

Whats in It for the Devs?

  • Devs are immensely productive because they work on their native machines with all their tools and IDEs
  • Compute requirements are minimal so existing hardware is used
  • No bugs due to mismatch between local production environments
  • Dev can work offline
  • Devs do not pollute their machines with packages and different versions
  • Devs do not have to learn new commands
  • Website is run locally and logs are accessible natively in real-time for fast feedback

Whats in It for the Ops?

  • No requests from devs to standup dev environments
  • Fewer debates around "this passed on my machine" due to parity in dev and production
  • Fewer queries about the production environment

Whats in It for the CXOs?

  • New developers to be productive within an hour by running a single command
  • Higher quality software
  • Reduced time to market
  • Tackles the  talent shortage by making the existing team more productive
  • Reduces spending lowering the need raise capital
  • Less time spent on code allows CXOs to focus on other tasks like thought leadership development and brand management

Be aware that the next rush of business innovation is happening now as it rides the wave of reduced AWS costs. You don't want to be left out because of an ineffective development team. Do the hard yards first. Then get valuable help, so you can definitely ensure your business is set up for success as early as possible.

More Stories By Aater Suleman

Aater Suleman, CEO & Co-Founder at Flux7, is an industry veteran in performance optimization on servers and distributed systems. He earned his PhD at the University of Texas at Austin, where he also currently teaches computer systems design and architecture. His current interests are in optimizing DevOps and reducing cloud costs.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.