Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

DevOps and Continuous Delivery - TibcoStack

No description
by

Vishal Biyani

on 23 October 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of DevOps and Continuous Delivery - TibcoStack

Future
We designed a reference architecture and built a reference implementation for purpose of proving the concept- Mostly with OPEN SOURCE tools. You will see things like:
DevOps and Continuous Delivery
Today
Vision
Recommendations
Developer develops, tests locally and commits code. Goes and ask Operation folks to deploy to QA Server
Operation team finds right configuration, stops servers, deploys application, verifies configuration and boots up server
Testing is done manually, bugs reported, regression done on software which takes some time
Promote to next environment- AGAIN find the configuration, bring server down, configure, verify, deploy, bring it up.....
A bug is detected in stage which was not present in QA. After a day of investigation it is found that a configuration value was different and the story continues....
What problems exist with this?

Manual and time consuming deployment & build
Configurations handled manually
Release is a nightmare- with people sitting in calls
Issues are detected late and hard to analyze
Logs (Text data) is analyzed manually
Performance issues found and analyzed late
Developer: I will build new features multiple times a week!
Operation Team: Last release was a nightmare! Let's have only one release in a quarter so business is not impacted!
Business to IT: I had asked for this feature 3 months ago, you have built it so late and it is not what I wanted!! I would be better without any software!!
...of future
Automated build & deploy
Automated Server creation
Automated software installation
Centrally pushed & managed configuration
One click testing
Log management
Performance management
One click rollback etc.
User commits code to code repository- Github in our case.
Source code repositories enable storage, version control and collaboration within team
Examples: SVN, GitHub, Mercurial etc.
CI can:
Compile code and build package
Run unit tests and report as per tools
Run static code analysis to report code quality
Run pre and post steps and notifications
Possibilities are literally endless - due to plugin based architecture
Jenkins, Hudson, Bamboo, TeamCity etc are typical tools
Jenkins - a Continuous Integration (CI) tool notices code commit and starts building application. Only a successful build is pushed to next stage - else failure is reported. A lot happens in between
Source code repositories enable storage, version control and collaboration within team
Examples: LogStash, Splunk, PaperTrail, LogEntries etc.
Log management with tool like Logstash adds capabilities to your app- like analytics, better debugging and lesser time spent in log collection. It also helps solve issues faster!
By storing binaries - you build once and deploy in all environments for a given build number
Rollback is easy - just grab previous version
Examples: Nexus, Artifactory, Archiva etc.
Artifact Manager- Nexus in our case stores application binaries for each build.
Continuous Delivery (CD) tool has some in build actions to get typical jobs done. Can be extended with custom plugins
You can integrate existing scripts in company to gain leverage with CD tool
Rolling deployments - deployments without downtime is a key feature
Nolio, LiveRebel, DeployIT etc are some tools in market
Continuous Delivery (CD) tool Nolio orchestrates rest of the process. It calls different actors to do different jobs and eventually gets the deploy done. We are calling Nolio manually but can be integrated with Jenkins
Virtualization provides benefits of one click creation, configuration, scaling in and out of machines without the lead time typical of hardware requests
It makes environments predictable, leaves a audit trail plus can be served in matter of minutes
While some enterprises are on public cloud - you can reap benefits with a private cloud as well!
Cloud machines - We call Rackspace API to create a Linux box for us. But this can be anything including your private cloud or virtualized environment. What we get is two machines and a load balancer dividing the traffic. But what will we do bare machines? Won't we need Tomcat to deploy WAR file? Hang on for that
Configuration Mgmt tools manage state of your stack, configurations and pretty much anything you want to manage!
Audit trail of changes is maintained - you will never spend hours debugging an issue due to wrong configuration!
Other tools: Chef, Salt, Ansible, CFEngine
Configuration management tool - Puppet does some fantastic things under the hood - installs all requires software like Tibco EMS, Admin Console etc and configures properties file. Moreover keeps them in sync so even if one of admins changes something by mistake - it will be reverted
Nolio called cloud provider to create machines and load balancer
Puppet built stack and applied configurations as per instructions
Nolio agents on these machines were activated indicating their readiness
Now Nolio got a green signal to go ahead and deploy the application
Nolio gets the latest software package from repository and deploys it to Tibco
DB changes can be also integrated but for this demo we have kept things simple
Deployments can be rolling - so end user won't notice it; Again for demo we have kept this simple
Once the application is ready we call performance scripts to run tests
Apache JMeter is used as load test tool and results are reported
Nolio is still handling the flow. Nolio notifies of deployment & test success/failure in console
You can also view historical releases and reports for a 100K view of things!

Performance should not be an after thought- while you build software you should measure and analyze performance trend
Alerts help in spotting the outliers and potential issues as soon as application is deployed!
There are many tools- ICinga, Ganglia, NewRelic, AppFirst
As soon as servers came up, we added them to performance monitoring tool Ganglia!
Continuous delivery is key to delivering value to business and getting feedback
Build often, deploy often in small increments, because practice makes it perfect
Automate anything that is manual, repeated, error prone; automate everything
Functional and non functional requirements are equally important
DevOps is agility to your software delivery and hence to your Business
It's not only tools and technology - it's also culture and people
It doesn't have to be big bang. Start slow, mature with time. Small improvements pay off
Services
Evaluation and roadmap planning
Consulting and implementation
Build & release management, configuration management
Deployment architecture
Private cloud setup
Environment management
Design, implementation, testing
Agenda
Developement process AS IS & pain areas
DevOps & CD - really short introduction
Development process in DevOps & CD world
Demo
Recommendations
HCL SmartConfigManager sanitizes the configuration before deployment. You can make sure the right configuration is used for right environment
HCL SmartConfigManager acts as configuration manager - centrally managing all configuration items across your software stack.
You can change, validate and push configurations for all your environments across projects
In addition you can tag projects, export import configurations and manage complete configuration management
..is here
Tibco
IDE
Git client
Developer Machine
Continuous
Integration
Env. Orchestration
Performance
Monitor
Load test
Suite
DevOps Server
Tibco
EMS
Hawk
Agent
Functional Test Environment
Load Test Environment
Tibco
EMS
Hawk Agent
Production
Load Balancer
Code Repository
Developer Modifies app and checks code in code repository
Code check in triggers a build in CI server, followed by a invocation of CD tool
Functional Test
- Creates new server
- Deploys App
- Functional test on app
Load Test
- Create two nodes and Load Balancer
- Deploy App & Perf Test

If functional test passes - move to load test
If load test passes - move to production
Tibco
IDE
Git client
Developer Machine
Continuous
Integration
Env. Orchestration
Performance
Monitor
Load test
Suite
DevOps Server
Tibco
EMS
Hawk Agent
Functional Test Environment
Load Test Environment
Production
Load Balancer
Code Repository
Functional Test
- Creates new server
- Deploys App
- Functional test on app
Load Test
- Create two nodes and Load Balancer
- Deploy App & Perf Test

If functional test passes - move to load test
If load test passes - move to production
Continuous
Delivery
Continuous
Delivery
Time for a Running Demo!
Tibco
EMS
Hawk Agent
Tibco
EMS
Hawk Agent
Tibco
EMS
Hawk Agent
Full transcript