Why DevOps is easier with AWS
DevOps is becoming a popular buzzword. On many occasions people mention it not fully understanding what it means. Sometimes it carries a different meaning for different people, even if they are having one conversation. I’m not going to go into the benefits of DevOps in length but rather hoping to share a positive experience that highlights some of them. However, for this post to make sense in context, I would like to quote Wikipedia’s definition because I think it is spot on:
https://en.wikipedia.org/wiki/DevOps)DevOps (a clipped compound of "development" and "operations") is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other IT professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software, can happen rapidly, frequently, and more reliably. (
Every business owner would recognise that there are tangible benefits resulting directly from being able to quickly translate customer requirements or customer feedback into solutions and features. In many cases it involves an implementation of CI/CD (Continuous Integration and/or Continuous Deployment) processes and tools to facilitate rapid deployments. And while this is by no means the only benefit of DevOps, it is the one that I personally favor the most.
Recently I had the pleasure of effecting change by introducing this exact capability into a core system that is customer facing. For me, it is extremely rewarding to know that in the very near future we will be in a position to respond more quickly to customer requests and customer feedback and also, rapidly introduce the features and capabilities that make our solutions better for them.
Going through this project is not without its challenges. Introducing DevOps capabilities into an organisation requires introducing changes and new capabilities into systems but also to teams. Going through this project I found that I have to spend most of my time managing the change within the teams and people while managing the technology change was far easier. Although I somewhat expected that, I still found myself being surprised by how relatively straightforward was the implementation of the technology change, mostly due to the benefits of AWS. This is why:
- AWS understand DevOps - every person we interact with at AWS understand DevOps well. Actually, AWS live and breath DevOps themselves and build their platform to cater for DevOps methodologies. As an AWS customer, you have access to many support channels that can help you introduce DevOps capabilities into your organisation - from self-service online materials to architecture advice and free tools, AWS will help you become a better DevOps style enterprise.
- The breadth of the platform services - the number of services and features within the AWS platform is staggering and the vast majority of them are DevOps friendly. Even the traditional services include DevOps friendly features. Without going into too much detail, by DevOps friendly I mean that they have attributes that make it easy to implement DevOps methodologies. For example, services can interact with each other, communicate with each other and can be utilised in a completely automated manner. There are even pure event driven computing services that don’t need any servers to run on. Essentially, if you need to create a function in a DevOps like manner, there is likely to be more than one AWS service or tool that will help you to do that.
- Easy to automate - automation, automation, automation. Automation is a critical component of DevOps and with the AWS platform is it very easy to ensure that you don’t have to do anything more than twice (if you do, just automate it). Not only most AWS services are DevOps friendly but AWS also make available a variety of automation tools, most of which are free. Knowing that you can automate everything when your start designing a function within your application is likely to impact the way you architect it (in a very positive way).
- Low cost of experimentation - spinning up and tearing down entire environments is almost as easy as doing the same with single resources. Combine that with the automation of your deployments and the subsequent testing and you have a winning combination. Many know that with AWS “failing is cheap†because you pay for the resources by the hour so once you’re done with the experiment, you stop paying. However, with AWS failing is also cheap because it can happen really quickly. If you fail quickly, you can learn more quickly how to get it right which means innovation and productivity just happened faster (and we all know, time is money!)
Something that becomes clearer and clearer the more you deal with AWS and their platform is that the platform is designed with developers in mind. As a friend and a colleague pointed out to me recently: “with the release of event driven computing services like Lambda, the idea of ‘operating’ and environment is becoming a legacy concept. Developers can now consume resources and respond to events directly through the code they write. The Ops part has the potential to become a distant memory in light of the fact we can now pretty much automate every aspect of the application lifecycle.†He is right and to me it also seems to be a principle that drives AWS’ thinking and philosophy when it comes to the design and release of their services.
In my humble opinion, if you are considering adopting DevOps you should consider taking advantage of the benefits of the AWS platform. Your organisation will be in a much better position to respond quickly to your customers’ input.
One final note - as always, this is my personal view. Some may have a different view. I really welcome your feedback.
Director at Computing Alchemy Pty Ltd
9 å¹´Clear .. articulate .. excellent zack
Principal Solutions Architect at Amazon Web Services (AWS) - Helping AWS customers move fast AND stay secure
9 å¹´Fantastic post!