99% of the time, the word “manual” may as well be synonymous with both lethargy and unpredictability; most would agree that when pursuing speed and reliability, automation is a good place to start. Whether you’re spinning up additional cloud resources to scale out an app, or deploying and configuring essential app services, it really should be as straight forward as executing an API call or making a click or two in a console. Utilizing infrastructure-as-code (IaC) is the key to success here. Working with your Infrastructure/NetOps/SecOps counterparts to establish validated definition files that detail what and how things are being deployed will allow you to provision infrastructure and services in a fast, repeatable, and reliable manner.
Leveraging this templated approach to self-service deployments will ultimately make you less dependent on other teams and prevent deployment bottlenecks caused by ticket-based requests for manual infrastructure provisioning.
Infrastructure-as-code provides a step in the right direction when trying to accelerate deployments, but there are considerably more gains to be had by exploiting the value of a complete CI/CD pipeline. Beyond the ability to integrate new application code on a more frequent basis and have those updates pushed to production automatically, did you know you can also integrate the insertion of app services into your pipeline too? By defining these services as code (IaC) and storing them within a source control tool where they can be regularly monitored, updated, and verified, your CI/CD tools (like Ansible and GitLab) can automatically pull these services into the deployment via an API call. In doing so, you’ll make sure every app goes out with the appropriate security and compliance controls without delaying deployments.
The ability to bundle the required code, libraries, and binaries for an entire application into a lightweight package that can be quickly and consistently deployed across platforms is the foundation for the recent surge in container adoption. These characteristics bode well when optimizing for speed in the cloud—providing the ability to spin up and scale out apps on the fly, accelerate CI/CD processes, and build highly dynamic and manageable microservices architectures.
Putting that hype aside, it can be all too easy to get caught up in the pursuit of speed and forget that there are still apps that require the same (or greater) levels of security and app performance optimization as the rest of your application portfolio. And unfortunately, you’re only likely to have limited success when trying to retrofit existing app services to meet the distinct needs of containers. Instead, you’ll need to identify a more dynamic set of services that integrate with your container orchestration system to truly support your containers, helping avoid undesirable outages and security/compliance issues.
Getting apps up and running quickly is one thing. Keeping them there and available to users is a different challenge altogether. There’s a myriad of possible threats to your applications’ health once in production—network disruptions, platform issues, cyberattacks, and code bugs to name just a few. This often makes the task of troubleshooting a single application outage feel like you’re looking for a needle in a haystack but consider the magnitude of multiple concurrent app failures across different cloud environments. Where would you start?
In this scenario, visibility is the precursor to knowledge, making it invaluable when seeking resolution to app problems. The greater degree of visibility you have into each layer of your applications’ stack, the greater your ability to identify operational anomalies and root causes. To this end, it’s critical to implement a centralized visibility solution that is both cloud- and app-agnostic to more quickly resolve app issues across multi-cloud architectures.
And finally, cloud agility is not all just about having the right tools and technology (yes those definitely help). It’s also about people and processes. There’s some truth to the saying that “A network is only as fast as its slowest wire.” And that quote holds true when applied to the teams responsible for building, deploying, and managing apps in the cloud. It’s a team effort usually spanning DevOps, SecOps, NetOps, and architects at a minimum, meaning individual or collaborative inefficiencies will likely impact the team as a whole.
Get the State of Application Services 2020: DevOps Edition
Breaking down siloes and enforcing a regular and robust engagement model between teams will provide a good foundation to help accelerate planning, troubleshooting, and information sharing, ensuring everybody is marching to the same beat. Not only will you be able to better leverage cross-functional expertise to make your life easier, but you’ll be able to reciprocate by advocating for things like automation and process optimization in other occupations—helping everybody move faster.
Responsibility for app dev has been shifting towards developers and away from network and security in the interest of speed.