DevOps Agility in the Evolving Cloud Services Landscape Kiran Chitturi CTO Architect, Sungard Availability Services @nkchitturi
Kiran Chitturi Architect in the Office of the CTO Focus on DevOps and cloud transformation Worked previously on Capital One s cloud transformation journey and helped setup AIG s next-generation incident response automation architecture 15+ years of IT experience and Masters in Computer Science Love spending time with my kids, golf and yoga kiran.chitturi@sungardas.com @nkchitturi 2
Sungard AS Portfolio Data Centers and Recovery Centers Cloud and Hosting Managed Application Cloud Recovery and Business Continuity Colocation Services Cloud Services Application Cloud Services Cloud-Based Recovery Services Network Services Managed Hosting Services Application Management Services Systems & Data Recovery Services Workplace Recovery Services Security Services Recovery Management Business Continuity Consulting Business Continuity Cloud and Infrastructure Information Security IT Disaster Recovery
Traditional Delivery Workflow Dev Ops Code Build Test Release Deploy Monitor New infrastructure and application delivery methods means that application developers cannot throw the code over the fence for Operations to support. Based on the same criteria, PaaS and IaaS infrastructure is complex and delivers more upstream capabilities. Operations must work closely with application developers to understand and solve for the end goal. Collaboration is key To improve agility, reliability & performance - enter DevOps 4
How can I adopt DevOps?
Automate Everything Infrastructure Application Automation 6
DevOps Stages Backlog Code Build Test Release Deploy Operate Continuous Feedback & Improvement Loop Mature DevOps Continuous Deployment (CD) Continuous Delivery (CD) Continuous Integration (CI) Agile Development 7
Application Architecture & Design choices 1 Service based SOA, Micro-services, REST based API 2 Design for Concurrency 3 Loosely coupled & elastic 4 Development & Testing Code, Tooling & Test Driven 5 Explore with Container technologies Serverless architectures 8
CI/CD Best Practices 1 Regular commits, automated builds & testing 2 Automate process for pre-baking, deployment, configuration management 3 Configuration & Tooling Externalize all config values into build/deployment-time properties 4 Fail fast using CD to reduce the need for lastminute fixes Blue-Green Deployments Dark Launches Self-healing CI/CD environment 5 Allow updates of individual components 9
Foundational Infrastructure Best Practices 1 Treat servers as commodities not pets Sample Infrastructure as Code 2 No patching, no manual intervention 3 Define Users & Roles Federation 4 Billing & Account Management 5 Separation of environments 6 Logging & Audit trails 7 Infrastructure as code { "AWSTemplateFormatVersion" : "2010-09-09", "Description" : Demo EC2 instance", "Resources" : { "MyEC2Instance" : { } "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : "ami-3c345678", "InstanceType" : "t2micro" }... } } 10
Embracing DevOps Requires Culture Changes 1 People must work together Culture is foundational remove any and all barriers Cross-function teams are required Provide a common set of tools Share responsibilities 2 Plan to Fail Foster an environment that encourages continuous feedback 3 Metrics Based Continuous Improvement 4 Again, Automate Everything! Create collaborative strategies for testing and deployment - + + + + + - + + How to Measure Success Deployment time Deployment frequency Feature release User feedback System availability Identify defects in testing Ticket volume Infrastructure density Infrastructure efficiency 11
DevOps Workflow COMMIT CODE CODE FETCH CONFIGURATION MANAGEMENT DEVELOPER BUILD REPOSITORY CONTINUOUS INTEGRATION QUALITY TESTS LOAD / INT BUILDS BUILD ARTIFACTS BINARIES & PACKAGES NOTIFICATIONS CLOUDFORMATION PICK USER STORY PROJECT MANAGEMENT TEST RESULTS AMIs or CONTAINERS 12
Traditional Tooling for DevOps CODE MANAGE ARTIFACTS BUILD DEPLOY 13
Traditional Tooling for DevOps on AWS COMMIT CODE CODE FETCH CONFIGURATION MANAGEMENT DEVELOPER BUILD REPOSITORY CONTINUOUS INTEGRATION QUALITY TESTS LOAD / INT BUILDS BUILD ARTIFACTS BINARIES & PACKAGES NOTIFICATIONS CLOUDFORMATION PICK USER STORY PROJECT MANAGEMENT TEST RESULTS AMIS or CONTAINERS 14
AWS Tooling for Cloud SDLC CODE BUILD TEST PROVISION DEPLOY MONITOR CODE COMMIT ELASTIC BEANSTALK MONITOR CODE PIPELINE OPSWORKS CLOUD FORMATION CODE DEPLOY CLOUDWATCH ELASTIC CONTAINER SERVICE CLOUDTRAIL 15
Demo
Demo Architecture & Workflow CLOUDFORMATION QUALITY TESTS TASK RUNNER DISTRIBUTION INFRASTRUCTURE TESTING OTHER INTEGRATIONS 17
Additional Resources GitHub AWS Marketplace sungardas.github.io Enhanced Snapshots Offering Blog Plan to Fail blog.sungardas.com/ctolabs/ DevOps Strategy 18