The Most Important Elements of Cloud Development and Deployment
Speed, automation, integration, and scalability, not to mention enhancing DevOps, rank the highest among more than a dozen companies involved.
Join the DZone community and get the full member experience.Join For Free
To gather insights on the state of cloud development and deployment today, we spoke with 15 executives from 13 companies that develop tools and services for companies to develop in, and deploy to, the cloud.
We spoke to:
Nishant Patel, CTO, and Gaurav Purandare, Senior DevOps Engineer, Built.io.
Sacha Labourey, CEO and Founder, CloudBees.
Jeff Williams, co-founder and CTO, Contrast Security.
Samer Fallouh, V.P. Engineering, and Andrew Turner, Senior Engineer, Dialexa.
Anders Wallgren, CTO, Electric Cloud.
Jack Norris, S.V.P. Data and Applications, MapR.
Michael Elliott, Cloud Evangelist, NetApp.
Faisal Memon, Technical Product Marketing, NGINX.
Seth Proctor, CTO, NuoDB.
Pedro Verruma, CEO, rethumb.
Pete Chadwick, Director of Cloud Product Management, SUSE.
Nick Kephart, Senior Director Product Marketing, Thousand Eyes.
Dmitry Sotnikov, V.P. of Cloud, WSO2.
Here's what they told us when we asked, "What do you see as the most important elements of cloud-based development and deployment?"
The big advantages are speed and agility. Use of the cloud helps to enable our DevOps process. We can quickly and easily build, test, and push new environments to production with bug fixes and new features. This makes our customers happy and keeps our engineering teams focused on important features.
Understand what clients want to use and how customers want to integrate. This enables developers to be self-sufficient, manage costs, understand the environment where customers will deploy, test in real environments, have more confidence on testing, and share more effectively with customers.
Understanding workflow is essential. Faster debugging. The architecture is in place from day one to enhance efficiencies. We already have a framework and a decision on how we’re going to build. Continuous delivery makes the code available for manual deployment after thorough testing while continuous deployment results in code being deployed automatically after automated testing.
The underlying layer of Internet-as-a-service has become less important as AWS, Azure, Google, and VMware are just technical versus strategic preferences. We’re more interested in products like Docker and Kubernetes that will let us leverage the cloud. We’re also interested in the digital transfer capabilities that include security and real-time batch processing so we can apply knowledge to situations.
When we search for a new cloud partner, we always look for scalability, stability, and ease of use. These factors are important for giving us some room to grow, without any major downtime and with easy APIs or web panels.
Tools and processes. You need the right tools and processes to automate in the cloud which results in deterministic and logical decisions. Define the process and automate, or you’re failing to leverage the benefits of the cloud. This enables you to go very fast since you are not waiting for people to deploy. The proof is in the process. Putting the container in the cloud and locking away access enables you to check a lot of compliance boxes regarding QA, security, and testing.
The decision where to run the data is driven by regulation, latency, efficiency, and cost. The cloud is an important infrastructure option for customers with data layer dictating agility and ability to take advantage of new applications.
Metered licensing on demand. Leverage the ability to call for resources on demand. Very disposable. Easy to create and destroy resources on a consistent infrastructure.
Managing the code lifecycle and the deployment lifecycle. Issue tracking systems provide input for customers and employees monitoring at the code level. Automated monitoring helps develop and push new code at two-week intervals, or more frequently. Problems that are introduced are raised and resolved in an automated fashion if it’s a code issue, a human must make a pull request on the code base. Application delivery with a lot of DDOS attacks over the last six to 12 months with instrumentation and monitoring detecting problems.
A consistent way to deploy regardless of the target – cloud or VM. When doing a production deployment, you do not want the way you are doing it to be the first time you’re tried it. You want the same self-service deployment so you’ll see the same errors you’ve seen earlier and know how to address them. The more consistency the better.
1) Ensure ability to use anywhere the client wants to use it: public or private cloud with update servers with all cloud providers. 2) Lifecycle: 10+ years of full support and three years of additional support available. Created modules for apps since they won’t last more than two or three years. 3) Tools for customer to build apps: easy for customers to build and deploy compliant workloads. Move up the stack with platform-as-a-service (PaaS).
Scalability and reliability. Be aware of infrastructure costs. Make sure the initial deployment starts low and can grow. Periodically review infrastructure costs. Auto-scale down services as needed. Disaster recovery with all backups.
Speed: ability to deploy, back-up, and implement multi-cloud replication and fail-over without sacrificing complexity or ease of management or increasing latency. Scalability: trusting that your infrastructure can keep up with the workload generation and processing. Control: having a unified line of sight on all of your data in the hybrid cloud to keep.
What are the most important elements of cloud-based development and deployment from your perspective?
Opinions expressed by DZone contributors are their own.