Microservices is the latest architectural approach to scaling applications. Their smaller, more atomic size, allows for greater agility as the impact of each iteration is more contained. This makes continuous integration and development easier as the burden of testing is less and deployment iterations are more limited in scope.
As we look to utilize Mule, and other systems, in this environment, we need to make sure that their configurations can automatically reflect their environment. As we build applications at scale and move out of the development lab, this becomes a real need. Luckily, the Spring Cloud Configuration server lets us do exactly that.
As success with DevOps continues to make progress, it ventures into taking on other areas where traditional SDLC / IT practices have been less than optimal. Alongside this need, the IT Security technical landscape has been in rapid transition, making it near impossible for security teams to keep up with both increased DevOps velocity and the changing security landscape. Now, teaming up security in the continuous integration (CI) and continuous delivery (CD) model has a potential to be a game changer.
In the beginning, the movement started out being called DevOpsSec. ‘Sec’ was appended on to the end – almost like a caboose on a train – an afterthought. But in reality, security must be thought of, designed, and practiced throughout the process. In light of this, the more current term is DevSecOps – one where we weave security into our integration. Originally, marketing hype from each security software vendor clouded the concept. But, the movement is less about tools, and more about the way in which we work together, in parallel.
Here at TeraThink, we are currently building an internal application that will allow us to better track new business opportunities. Simultaneously, we are exposing more of our staff to agile and continuous integration/continuous deployment (CI/CD) principles. Among the many concepts we are trying to inculcate in our team is the “layer cake” user story.
The layer cake idea has been around for over a decade. However, I’ve found on nearly all agile engagements that I’ve been on, teams either discard this idea early in the project or completely ignore it from the outset. It is up to the triumvirate of the Product Owner, Scrum Master, and Business Analyst to ensure that the scrum team writes user stories in such a manner that the outcome of each story is working software that delivers tangible value to the end user.
Last month, I attended the 2016 Amazon Web Services re:Invent conference with Jed Carr, TeraThink’s Director of IT. I went primarily with a DevOps focus, trying to expand our continuous integration and continuous delivery (CI/CD) capabilities by picking up some best practices by a leader in the market.
While I did attend some excellent break-out sessions, the specifics of each could bear it’s own blog post, there was a singular idea that came up during every session, keynote, or chat around the coffee pot.
Software moves faster than ever.
Successful software delivery is no longer measured in years, quarters, or months. We measure it in weeks, days, and hours. According to Puppet and their 2016 State of DevOps Report, high-performing IT organizations deployed 200 times more frequently than their low performing counterparts. So if you’re an organization pushing out quarterly releases, you’re trying to keep pace with the front-runners pushing out twice daily.
This year marked the 15-year anniversary of the writing of the Manifesto for Agile Software Development. Today, I can’t help but marvel at the impact this collection of simple, yet elegantly stated principles continue to have, especially here in Washington, D.C.. Agile has not only changed how we build working software, it has fundamentally changed how we understand our organizations and how we define the business value we produce. With agile, many of us have learned new approaches to prioritizing our work at an enterprise scale, how we can organize our businesses, and even how we can build deeper relationships in the process. Agile development has sparked a new wave of innovation, especially in the Federal market and it’s incredible to think what 2017 will bring.
For those who are doing it successfully, being agile requires the adoption of both an agile-mindset and the incorporation of new software architectures and delivery practices. At TeraThink, we recognize that our clients have very specific needs and objectives for their implementation of agile solutions. We work closely with each client to provide their desired results. Agile is, of course, not without its challenges. Whether it is initial adoption, sustaining agility at scale, or breaking into a more effective CI/CD model, these challenges are significant. I’d like to share a few key observations and strategies that have helped our clients hit their stride with agile.